<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.webkit.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.4.1"
          urlbase="https://bugs.webkit.org/"
          
          maintainer="admin@webkit.org"
>

    <bug>
          <bug_id>213978</bug_id>
          
          <creation_ts>2020-07-05 16:40:48 -0700</creation_ts>
          <short_desc>[LFC][BFC][Quirk] Handle non-direct, collapsed quirk margins inside table cells</short_desc>
          <delta_ts>2020-08-03 09:40:23 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>215087</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1668943</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2020-07-05 16:40:48 -0700</bug_when>
    <thetext>ssia</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1668944</commentid>
    <comment_count>1</comment_count>
      <attachid>403565</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-07-05 17:12:26 -0700</bug_when>
    <thetext>Created attachment 403565
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1669659</commentid>
    <comment_count>2</comment_count>
      <attachid>403756</attachid>
    <who name="alan">zalan</who>
    <bug_when>2020-07-07 21:07:38 -0700</bug_when>
    <thetext>Created attachment 403756
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403565</attachid>
            <date>2020-07-05 17:12:26 -0700</date>
            <delta_ts>2020-07-07 21:07:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213978-20200705171226.patch</filename>
            <type>text/plain</type>
            <size>37222</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlMjZlZmRjYmZlZmUz
YzM1NzU2M2NiZmU0ZGIyMGEwMTA0YWUxYS4uZjg3ODVkMjFkOGIyOThjNjU4MDkwZDYzYWMyN2U4
NzNiMmM5NDYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTA3LTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXVtRdWlya10g
SGFuZGxlIG5vbi1kaXJlY3QsIGNvbGxhcHNlZCBxdWlyayBtYXJnaW5zIGluc2lkZSB0YWJsZSBj
ZWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
OTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGNhc2VzIHdoZW4gdGhlIGFkam9pbmluZyBxdWlyayBt
YXJnaW4gaXMgbm90IGEgbWFyZ2luIG9mIGEgZGlyZWN0IGNoaWxkIG9mIHRoZSB0YWJsZSBjZWxs
LgorICAgICAgICBlLmcuIDx0ZD48ZGl2PjxwPnRoaXMgcCdzIG1hcmdpbiBjb2xsYXBzZXMgaW50
byB0aGUgcGFyZW50IGRpdidzIG1hcmdpbiB3aGljaCBpcyBhIGRpcmVjdCBjaGlsZCBvZiB0aGUg
dGFibGUgY2VsbDwvZGl2PjwvdGQ+CisgICAgICAgIDwtIExldCdzIGlnbm9yZSB0aGUgPHA+J3Mg
YmVmb3JlL2FmdGVyIG1hcmdpbiBzbyB0aGF0IHRoZSBjZWxsJ3MgY29udGVudCBib3ggdXNlZCBo
ZWlnaHQgaXMgbm90IGV4cGFuZGVkIGJ5IHRob3NlIDFlbSBtYXJnaW5zLiAgCisKKyAgICAgICAg
VGhlIHByZXZpb3VzIGFwcHJvYWNoIG9ubHkgZGVhbHQgd2l0aCBkaXJlY3RseSBhZGpvaW5pbmcg
bWFyZ2lucy4gSGVyZSB3ZSBvdmVycmlkZSB0aGUgcmVndWxhciBibG9jayBtYXJnaW4gY29sbGFw
c2luZyBhbmQKKyAgICAgICAgaGFuZGxlIHRoZSBjYXNlIHdoZW4gYSBxdWlyayBiZWZvcmUvYWZ0
ZXIgbWFyZ2luIGFkam9pbmluZyB0aGUgdGFibGUgY2VsbCdzIChub24tZXhpc3RpbmcpIGJlZm9y
ZS9hZnRlciBtYXJnaW5zLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0
aW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4
dDo6aXNUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBs
YXlvdXQvTGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91
dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKiBsYXlvdXQvVmVy
aWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TWlzbWF0Y2hp
bmdCbG9ja0JveEluZm9ybWF0aW9uSWZOZWVkZWQpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
SGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmxheW91dFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Omxh
eW91dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bWFyZ2luQ29s
bGFwc2UgY29uc3QpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dFF1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c3RyZXRjaGVkSW5GbG93SGVpZ2h0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtz
OjpzdHJldGNoZWRJbkZsb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnNob3VsZENvbGxhcHNlTWFyZ2lu
QmVmb3JlV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c2hvdWxkQ29s
bGFwc2VNYXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRlciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Ok1hcmdpbkNvbGxhcHNlOjpjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
OjptYXJnaW5CZWZvcmVJZ25vcmluZ0NvbGxhcHNpbmdUaHJvdWdoKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFw
c2U6OmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxh
cHNlOjpwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRl
ZE1hcmdpbkJlZm9yZSk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW5Gb3JUYWJsZUJveCk6CisgICAgICAgICogbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6UXVpcmtzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpjZWxsSGVpZ2ggY29uc3QpOgorICAgICAgICAqIGxheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA6IFJlbW92
ZWQuCisKIDIwMjAtMDctMDQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTEZDXVtCRkNdIE1vdmUgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luIHRv
IFVzZWRWZXJ0aWNhbE1hcmdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0NjU1NWFmYWJlYTRiNjRlNDI3
YzM2NWYwOGYwYzJlZDBiMzRhMTgwLi45MmU2YzUyZGY2MmY5ZjRmOTk2ZjdmMTJiNjA3MzRiZDQx
MTUyNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQ2Miw2ICsxNDYyLDcgQEAgbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29t
cHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJs
ZWNlbGwvVGFibGVDZWxsQmxvY2tRdWlya01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxh
eUJveC5jcHAKQEAgLTE0OTMsNyArMTQ5NCw2IEBAIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFJl
cGxhY2VkQm94LmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCiBs
YXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKLWxheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKIGxheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nU3RhdGUuY3BwCiBsYXlvdXQvdGFibGVm
b3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAKIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVMYXlv
dXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMDU4MzNhOTk5ZjZhNzE1MDJhMDllODFlNTg3ZTRiZmM5MDY3NWE4Mi4uZDc3
MzJiZGIyNjcwZDlhYzJlYjcxNWRlMGE1MzZmOGQwMzdhOGM2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA0Nyw2ICsyMDQ3
LDcgQEAKIAkJNkY3Nzg2ODgyMzQ5MUFEODAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjc3ODY4NzIzNDkx
QUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5
b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0NBMjA4QzJCMkUwMDJG
MjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNkY4MUZCOUMyNEIxNEE1OTAwRkJBNDVFIC8qIFRhYmxlQ2VsbEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZGODFGQjlCMjRCMTRBNTEwMEZCQTQ1RSAvKiBUYWJsZUNlbGxCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkY5NURFNEQyMzdCODg5QzAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGOTVERTRC
MjM3Qjg4OUIwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25Db250ZXh0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY5NURFNEUyMzdCODg5QzAwRTUx
N0UxIC8qIEludmFsaWRhdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2Rjk1REU0QzIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxpZGF0aW9u
U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2Rjk5NUExNjFBNzA3NTYyMDBBNzM1RjQgLyogV2ViR0xTeW5jLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjk5NUExNDFBNzA3NTYyMDBBNzM1RjQg
LyogV2ViR0xTeW5jLmggKi87IH07CkBAIC05NDM3LDYgKzk0MzgsNyBAQAogCQk2RjdDQTNDNTIw
OEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5
b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdDQTNDODIwOEMy
QjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY4MUZCOUIyNEIxNEE1MTAwRkJBNDVFIC8qIFRhYmxlQ2Vs
bEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVDZWxsQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjhGNDYw
MTIxQjAzQkI0MDA0MUFDM0EgLyogRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RjhGNDYwMzIxQjAzQkM2MDA0MUFDM0EgLyogQmxvY2tGb3JtYXR0aW5n
Q29udGV4dFF1aXJrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0UXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5NURFNEIyMzdC
ODg5QjAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW52YWxpZGF0aW9uQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTQ3NSwxMiArOTQ3NywxMiBAQAogCQk2RkI0N0U2MTIyNzc0MjVBMDBDN0JD
QjAgLyogRGlzcGxheUxpbmVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlzcGxheUxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCNUUyMTIy
MjFGMjQ0NzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkZCQjg2MDUyMEI0NjRCNjAwREFEOTM4IC8qIEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGQzUzQUVCMjRBRjdBOEUwMDYwNTlGRSAvKiBUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxlRm9y
bWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RkM1Q0E5MjIyRTM1OTkzMDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nU3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGFibGVGb3JtYXR0aW5nU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RkM1Q0E5NDIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDNUNBOTUyMkUzNTk5NDAwQjEzRTEx
IC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0
aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkM1Q0E5NjIyRTM1
OTk1MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFi
bGVGb3JtYXR0aW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDRTFB
MTgyMjYxOEFCMzAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxh
eVJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RkQxRkI3NzI0QjE0RDYyMDBF
OTNBRTUgLyogVGFibGVDZWxsQmxvY2tRdWlya01hcmdpbkNvbGxhcHNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRhYmxlQ2VsbEJsb2NrUXVpcmtNYXJnaW5Db2xsYXBzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRDlDRDUyMjI3RTIxQzgwMEU1Mzk1NyAvKiBEaXNwbGF5
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyog
SW5saW5lTGluZUJyZWFrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5saW5lTGluZUJyZWFrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lTGluZUJyZWFrZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZUJyZWFrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDk0LDYgKzE3MDk2LDcgQEAKIAkJMTE1Q0ZBOTkyMDhCQzA5
QTAwMUU2OTkxIC8qIGJsb2NrZm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNkY4MUZCOTkyNEIxNEEwNjAwRkJBNDVFIC8qIHRhYmxlY2Vs
bCAqLywKIAkJCQk2RkQ0RkUzRTI0NzBCM0FEMDA3Mzc0Q0MgLyogdGFibGV3cmFwcGVyICovLAog
CQkJCTExNUNGQTZEMjA4QUZBQjYwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNw
cCAqLywKIAkJCQkxMTVDRkE2QzIwOEFGQUI2MDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oICovLApAQCAtMjEyODgsNiArMjEyOTEsMTUgQEAKIAkJCXBhdGggPSBhbmdsZTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTZGODFGQjk5MjRCMTRBMDYwMEZCQTQ1
RSAvKiB0YWJsZWNlbGwgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTZGODFGQjlCMjRCMTRBNTEwMEZCQTQ1RSAvKiBUYWJsZUNlbGxCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmggKi8sCisJCQkJNkZEMUZCNzcyNEIxNEQ2MjAwRTkzQUU1IC8qIFRhYmxlQ2Vs
bEJsb2NrUXVpcmtNYXJnaW5Db2xsYXBzZS5jcHAgKi8sCisJCQkpOworCQkJcGF0aCA9IHRhYmxl
Y2VsbDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTZGOTVERTRBMjM3Qjg4
MzAwMEU1MTdFMSAvKiBpbnZhbGlkYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMjEzMDUsNyArMjEzMTcsNiBAQAogCQkJCTZGQzVDQTk0MjJFMzU5
OTQwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RkM1Q0E5
NTIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTEx
RDE5QzJFMjMxNTlCQUUwMDhGMjREMyAvKiBUYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwICovLAotCQkJCTZGQzUzQUVCMjRBRjdBOEUwMDYwNTlGRSAvKiBUYWJsZUZvcm1hdHRpbmdD
b250ZXh0UXVpcmtzLmNwcCAqLywKIAkJCQk2RkM1Q0E5MjIyRTM1OTkzMDBCMTNFMTEgLyogVGFi
bGVGb3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTZGQzVDQTk2MjJFMzU5OTUwMEIxM0UxMSAv
KiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5oICovLAogCQkJCTZGNUI3RUFBMjMwMEE3OUUwMDY3RDlD
MyAvKiBUYWJsZUdyaWQuY3BwICovLApAQCAtMzMzNjIsNiArMzMzNzMsNyBAQAogCQkJCUU0RThC
NEVDMjE2Qjc5RTUwMEI4ODM0RCAvKiBTeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYwM0MwNzQxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUQ1OTc1QjMxOTYzNUYxMTAwRDAwODc4IC8qIFN5c3RlbVZl
cnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTZGODFGQjlDMjRCMTRBNTkwMEZCQTQ1RSAvKiBU
YWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENG
RjA1MTBBMTU0RjA5MDAwQTQyMzQgLyogVGFibGVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZGMTcyNjRGMjQ3MEM2MEIwMDUxOEM5NiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzQkI2QjgxMTIyQTdEMzEzMDAzQTJBNjkgLyog
VGFiU2l6ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dC5oCmluZGV4IGYyYzY1NjI4MjhiMzEzOWQ0ZTE5OTJlMzNjNGEwNjllMjZhMjVlOTQu
LmUwNTIyMTRiMGZkNGMwNDI1MjFhOWQwZTJiMTc4Mzg5Y2Y1NWQ2YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290
KCkuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpOyB9CiAgICAgYm9vbCBpc1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCkuZXN0YWJsaXNoZXNU
YWJsZUZvcm1hdHRpbmdDb250ZXh0KCk7IH0KICAgICBib29sIGlzVGFibGVXcmFwcGVyQmxvY2tG
b3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGlzQmxvY2tGb3JtYXR0aW5nQ29udGV4
dCgpICYmIHJvb3QoKS5pc1RhYmxlV3JhcHBlckJveCgpOyB9CisgICAgYm9vbCBpc1RhYmxlQ2Vs
bEJsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBpc0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQoKSAmJiByb290KCkuaXNUYWJsZUNlbGwoKTsgfQogCiAgICAgZW51bSBjbGFzcyBF
c2NhcGVSZWFzb24gewogICAgICAgICBOZWVkc0dlb21ldHJ5RnJvbUVzdGFibGlzaGVkRm9ybWF0
dGluZ0NvbnRleHQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXgg
M2I1NjE5Zjc2NDA1NTI5OWRmZWE3MjcxZDc4NjYxZWE5Yjk1YWQwNi4uODRiMzdmNjM0NDgwMjM4
ZGM5ZjdkZmVkZTkzOGU5NmFjMTdkYWE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRD
b250ZXh0LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3Rh
bnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRhYmxlRm9y
bWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oIgpAQCAtMTI2LDYgKzEyNyw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29u
dGV4dD4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QKICAgICAg
ICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5lbnN1cmVCbG9ja0Zv
cm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogICAgICAgICBpZiAoZm9ybWF0
dGluZ0NvbnRleHRSb290LmlzVGFibGVXcmFwcGVyQm94KCkpCiAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuaXF1ZTxUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Pihmb3JtYXR0aW5n
Q29udGV4dFJvb3QsIGJsb2NrRm9ybWF0dGluZ1N0YXRlKTsKKyAgICAgICAgaWYgKGZvcm1hdHRp
bmdDb250ZXh0Um9vdC5pc1RhYmxlQ2VsbCgpKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8VGFibGVDZWxsQmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oZm9ybWF0dGluZ0NvbnRleHRSb290
LCBibG9ja0Zvcm1hdHRpbmdTdGF0ZSk7CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ+KGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgYmxvY2tGb3JtYXR0aW5n
U3RhdGUpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1Zlcmlm
aWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAppbmRl
eCBhZDc5MGE3NjQ1ZjA5NDc3MTU5NzFlMjcxNThmMWY5ZGY3NzE1Nzk0Li5iMzhmMzYyNWM0ZDcw
MjhiYTZiOTkyMGIxZWExMGQyYTFjMzA4ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvVmVyaWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZp
Y2F0aW9uLmNwcApAQCAtMzE4LDcgKzMxOCw5IEBAIHN0YXRpYyBib29sIG91dHB1dE1pc21hdGNo
aW5nQmxvY2tCb3hJbmZvcm1hdGlvbklmTmVlZGVkKFRleHRTdHJlYW0mIHN0cmVhbSwgY29uCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmICghYXJlRXNzZW50aWFsbHlFcXVh
bChyZW5kZXJlci5tYXJnaW5Cb3hSZWN0KCksIHJlbmRlckJveExpa2VNYXJnaW5Cb3goZGlzcGxh
eUJveCkpKSB7CisgICAgLy8gUXVpcmsgbWFyZ2lucyB3aXRoIHRhYmxlIGNlbGxzIGRvbid0IGNv
bGxhcHNlLgorICAgIGF1dG8gc2hvdWxkQ2hlY2tNYXJnaW5Cb3ggPSAhbGF5b3V0U3RhdGUuaW5R
dWlya3NNb2RlKCkgfHwgbGF5b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygpIHx8ICFs
YXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkuaXNUYWJsZUNlbGwoKTsKKyAgICBpZiAoc2hvdWxk
Q2hlY2tNYXJnaW5Cb3ggJiYgIWFyZUVzc2VudGlhbGx5RXF1YWwocmVuZGVyZXIubWFyZ2luQm94
UmVjdCgpLCByZW5kZXJCb3hMaWtlTWFyZ2luQm94KGRpc3BsYXlCb3gpKSkgewogICAgICAgICAv
LyBJbiBjZXJ0YWluIGNhc2VzLCBsaWtlIG91dC1vZi1mbG93IGJveGVzIHdpdGggbWFyZ2luIGF1
dG8sIG1hcmdpbkJveFJlY3QoKSByZXR1cm5zIDAuIEl0J3MgY2xlYXJseSBpbmNvcnJlY3QsCiAg
ICAgICAgIC8vIHNvIGxldCdzIGNoZWNrIHRoZSBpbmRpdmlkdWFsIG1hcmdpbiB2YWx1ZXMgaW5z
dGVhZCAoYW5kIGF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGFsbCBvdGhlciBib3hlcyBtYXRj
aCkuCiAgICAgICAgIGF1dG8gbWFyZ2luc01hdGNoID0gZGlzcGxheUJveC5tYXJnaW5CZWZvcmUo
KSA9PSByZW5kZXJlci5tYXJnaW5CZWZvcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAKaW5kZXggYWM1MTI4OGNiZmNiOGFmZDgzZTM1YWFhMjk0ZDM5OTcxNGRlYmE1Mi4uYWJjNTBh
NGZhMmVlMTM4MjVmMjM5OGIwZWZjM2Y1ZGEzZTdiOWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENv
bnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgorI2luY2x1ZGUgIlRhYmxlQ2VsbEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+
CkBAIC01MCw2ICs1MSw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0KTsKIAogQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dChjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgQmxvY2tG
b3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKICAgICA6IEZvcm1hdHRpbmdDb250ZXh0
KGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgZm9ybWF0dGluZ1N0YXRlKQorICAgICwgbV9tYXJnaW5D
b2xsYXBzZShtYWtlVW5pcXVlUmVmPE1hcmdpbkNvbGxhcHNlPigqdGhpcykpCiB7CiB9CiAKQEAg
LTM2NSw3ICszNjcsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWln
aHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0CiAgICAgLy8gMS4gQ29tcHV0
ZSBjb2xsYXBzZWQgbWFyZ2lucy4KICAgICAvLyAyLiBBZGp1c3QgdmVydGljYWwgcG9zaXRpb24g
dXNpbmcgdGhlIGNvbGxhcHNlZCB2YWx1ZXMuCiAgICAgLy8gMy4gQWRqdXN0IHByZXZpb3VzIGlu
LWZsb3cgc2libGluZyBtYXJnaW4gYWZ0ZXIgdXNpbmcgdGhpcyBtYXJnaW4uCi0gICAgYXV0byBt
YXJnaW5Db2xsYXBzZSA9IHRoaXMtPm1hcmdpbkNvbGxhcHNlKCk7CisgICAgYXV0byYgbWFyZ2lu
Q29sbGFwc2UgPSB0aGlzLT5tYXJnaW5Db2xsYXBzZSgpOwogICAgIGF1dG8gdmVydGljYWxNYXJn
aW4gPSBtYXJnaW5Db2xsYXBzZS5jb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyhsYXlvdXRCb3gsIGNv
bnRlbnRIZWlnaHRBbmRNYXJnaW4ubm9uQ29sbGFwc2VkTWFyZ2luKTsKICAgICAvLyBDYWNoZSB0
aGUgY29tcHV0ZWQgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdpbiB2YWx1ZSBwYWlyLgogICAg
IGZvcm1hdHRpbmdTdGF0ZSgpLnNldFVzZWRWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gsIHZlcnRp
Y2FsTWFyZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggNTA3ZmEyOTdhMGNm
NzRkMmYxNmVhYWQ1Yjk3ZWU2NTk1ZjVlN2EzYy4uYjdhYzljM2M5NmNkODU0NjkwMzI1Y2FlNzI1
ZGFhNGU5ZTIzYzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTMxLDYgKzMx
LDggQEAKICNpbmNsdWRlICJGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTk4LDExICsxMDAsMTUgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gVGhpcyBj
bGFzcyBpbXBsZW1lbnRzIG1hcmdpbiBjb2xsYXBzaW5nIGZvciBibG9jayBmb3JtYXR0aW5nIGNv
bnRleHQuCiAgICAgY2xhc3MgTWFyZ2luQ29sbGFwc2UgeworICAgICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lOTElORShNYXJnaW5Db2xsYXBzZSk7CiAgICAgcHVibGljOgotICAgICAgICBV
c2VkVmVydGljYWxNYXJnaW4gY29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3QgQm94JiwgVXNl
ZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOworICAgICAgICBNYXJnaW5Db2xs
YXBzZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CisgICAgICAgIHZpcnR1YWwgfk1h
cmdpbkNvbGxhcHNlKCkgPSBkZWZhdWx0OworCisgICAgICAgIHZpcnR1YWwgVXNlZFZlcnRpY2Fs
TWFyZ2luIGNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1h
cmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKIAotICAgICAgICBQcmVjb21wdXRlZE1h
cmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVydGlj
YWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAgICAgIExheW91dFVuaXQgbWFyZ2lu
QmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBCb3gmLCBVc2VkVmVydGljYWxN
YXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CisgICAgICAgIHZpcnR1YWwgUHJlY29tcHV0ZWRN
YXJnaW5CZWZvcmUgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNlZFZlcnRp
Y2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OworICAgICAgICBMYXlvdXRVbml0
IG1hcmdpbkJlZm9yZUlnbm9yaW5nQ29sbGFwc2luZ1Rocm91Z2goY29uc3QgQm94JiwgVXNlZFZl
cnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwogICAgICAgICBzdGF0aWMg
dm9pZCB1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZyhCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0JiwgY29uc3QgTWFyZ2luQ29sbGFwc2UmLCBjb25zdCBCb3gmKTsKIAogICAgICAgICBi
b29sIG1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUoY29uc3QgQm94
JikgY29uc3Q7CkBAIC0xMTgsMTAgKzEyNCwxMiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgYm9v
bCBtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKGNvbnN0IEJveCYpIGNvbnN0OwogCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgZnJpZW5kIGNsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgICAg
IE1hcmdpbkNvbGxhcHNlKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKKyAgICBwcm90
ZWN0ZWQ6CisgICAgICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fYmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9CisgICAgICAgIGNvbnN0IExheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5sYXlvdXRTdGF0ZSgpOyB9CisgICAgICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdD
b250ZXh0OyB9CiAKKyAgICBwcml2YXRlOgogICAgICAgICBlbnVtIGNsYXNzIE1hcmdpblR5cGUg
eyBCZWZvcmUsIEFmdGVyIH07CiAgICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVB
bmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYs
IE1hcmdpblR5cGUpIGNvbnN0OwogICAgICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZl
QW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25z
dCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7CkBA
IC0xMzUsMjQgKzE0MywxOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgYm9vbCBoYXNDbGVhcmFu
Y2UoY29uc3QgQm94JikgY29uc3Q7CiAKLSAgICAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
KCkgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KLSAg
ICAgICAgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9i
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KLSAgICAgICAgY29uc3QgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ7IH0KLQogICAgICAgICBjb25zdCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0JiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ7CiAgICAgfTsKLSAgICBNYXJnaW5D
b2xsYXBzZSBtYXJnaW5Db2xsYXBzZSgpIGNvbnN0IHsgcmV0dXJuIE1hcmdpbkNvbGxhcHNlKCp0
aGlzKTsgfQorICAgIHZpcnR1YWwgY29uc3QgTWFyZ2luQ29sbGFwc2UmIG1hcmdpbkNvbGxhcHNl
KCkgY29uc3QgeyAgcmV0dXJuIG1fbWFyZ2luQ29sbGFwc2UuZ2V0KCk7IH0KIAogICAgIGNsYXNz
IFF1aXJrcyA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFF1aXJrcyhjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CiAKICAgICAg
ICAgYm9vbCBuZWVkc1N0cmV0Y2hpbmcoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAgIExheW91
dFVuaXQgc3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYsIENvbnRlbnRIZWlnaHRBbmRN
YXJnaW4pOworICAgICAgICBMYXlvdXRVbml0IHN0cmV0Y2hlZEluRmxvd0hlaWdodChjb25zdCBC
b3gmLCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luKSBjb25zdDsKIAogICAgICAgICBib29sIHNob3Vs
ZElnbm9yZUNvbGxhcHNlZFF1aXJrTWFyZ2luKGNvbnN0IEJveCYpIGNvbnN0OwotICAgICAgICBi
b29sIHNob3VsZENvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmKSBjb25zdDsKLSAgICAgICAgYm9vbCBzaG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0
aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0IEJveCYpIGNvbnN0OwogCiAgICAgICAgIGNvbnN0IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
ZG93bmNhc3Q8QmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJr
czo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KICAgICAgICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnkgZ2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgp
Lmdlb21ldHJ5KCk7IH0KQEAgLTE3MCw3ICsxNzIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgUHJlY29t
cHV0ZWRNYXJnaW5CZWZvcmUgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmVMaXN0LmdldCgm
bGF5b3V0Qm94KTsgfQogICAgIGJvb2wgaGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3Qg
Qm94JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmVM
aXN0LmNvbnRhaW5zKCZsYXlvdXRCb3gpOyB9CiAjZW5kaWYKKwogcHJpdmF0ZToKKyAgICBVbmlx
dWVSZWY8TWFyZ2luQ29sbGFwc2U+IG1fbWFyZ2luQ29sbGFwc2U7CiAgICAgSGFzaE1hcDxjb25z
dCBCb3gqLCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZT4gbV9wcmVjb21wdXRlZE1hcmdpbkJlZm9y
ZUxpc3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcApp
bmRleCBkNDhiMzU0MGE0ZTI4NGZiNWI4ODM1MDAxZTJkMGMyNTkwOGZlOGUyLi45N2Y2YTgwOGMy
YTE1NzkyMmYyNTYwMDkyZDI2YTFkMzhkMThiMWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dFF1aXJrcy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpRdWlya3M6Om5lZWRzU3RyZXRjaGluZyhjb25zdCBCb3gmIGxheW91dEJveCkg
Y29uc3QKICAgICByZXR1cm4gbGF5b3V0Qm94LnN0eWxlKCkubG9naWNhbEhlaWdodCgpLmlzQXV0
bygpOwogfQogCi1MYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c3Ry
ZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBDb250ZW50SGVpZ2h0QW5k
TWFyZ2luIGNvbnRlbnRIZWlnaHRBbmRNYXJnaW4pCitMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OlF1aXJrczo6c3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIGNvbnRlbnRIZWlnaHRBbmRNYXJnaW4pIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG5lZWRzU3RyZXRjaGluZyhsYXlvdXRCb3gpKTsKICAgICBhdXRvJiBm
b3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7CkBAIC0xMDQsMTYg
KzEwNCw2IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzaG91bGRJZ25v
cmVDb2xsYXBzZWRRdWlya01hcmdpbihjb25zdCBCb3gmCiAgICAgcmV0dXJuIGxheW91dFN0YXRl
KCkuaW5RdWlya3NNb2RlKCkgJiYgaXNRdWlya0NvbnRhaW5lcihsYXlvdXRCb3gpOwogfQogCi1i
b29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c2hvdWxkQ29sbGFwc2VNYXJnaW5C
ZWZvcmVXaXRoUGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAot
ewotICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmluUXVpcmtzTW9kZSgpICYmIGxheW91dEJveC5z
dHlsZSgpLmhhc01hcmdpbkJlZm9yZVF1aXJrKCkgJiYgaXNRdWlya0NvbnRhaW5lcihsYXlvdXRC
b3guY29udGFpbmluZ0Jsb2NrKCkpOwotfQotCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OlF1aXJrczo6c2hvdWxkQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRlcihj
b25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKLXsKLSAgICByZXR1cm4gbGF5b3V0U3RhdGUoKS5p
blF1aXJrc01vZGUoKSAmJiBsYXlvdXRCb3guc3R5bGUoKS5oYXNNYXJnaW5BZnRlclF1aXJrKCkg
JiYgaXNRdWlya0NvbnRhaW5lcihsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpOwotfQotCiB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4IDcxYzc2YTU2MzFiODgxODhlZWRi
ZGY3OWNhMWZjZGNlZjYyZTIxOWMuLjEzZmQwNGJiNTA1MGE5MTdlMTM0MDE4NGIxNjkzYmFhMmIz
MTg3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtMTE2LDkgKzExNiw2IEBAIGJv
b2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNv
bGxhcHNlc1dpdGhQYXJlbnRNYXJnCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIx
L2JveC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucwogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9j
a0xldmVsQm94KCkpOwogCi0gICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkuc2hv
dWxkQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoUGFyZW50TWFyZ2luQmVmb3JlKGxheW91dEJveCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgLy8gTWFyZ2lucyBiZXR3ZWVuIGEgZmxvYXRl
ZCBib3ggYW5kIGFueSBvdGhlciBib3ggZG8gbm90IGNvbGxhcHNlLgogICAgIGlmIChsYXlvdXRC
b3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjU0
LDkgKzI1MSw2IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6
Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpCiB7CiAgICAgQVNTRVJUKGxheW91
dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAKLSAgICBpZiAoZm9ybWF0dGluZ0NvbnRleHQoKS5x
dWlya3MoKS5zaG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0aFBhcmVudE1hcmdpbkFmdGVyKGxh
eW91dEJveCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgLy8gTWFyZ2lucyBiZXR3ZWVu
IGEgZmxvYXRlZCBib3ggYW5kIGFueSBvdGhlciBib3ggZG8gbm90IGNvbGxhcHNlLgogICAgIGlm
IChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtNTcwLDEzICs1NjQsMTMgQEAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5l
Z2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmcKICAgICByZXR1
cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKGxhc3RDaGlsZENvbGxhcHNlZE1h
cmdpbkFmdGVyKCksIG5vbkNvbGxhcHNlZEFmdGVyKTsKIH0KIAotTGF5b3V0VW5pdCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xs
YXBzaW5nVGhyb3VnaChjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQorTGF5b3V0VW5pdCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xs
YXBzaW5nVGhyb3VnaChjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VS
VChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogICAgIHJldHVybiBtYXJnaW5WYWx1ZShw
b3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwgbm9uQ29sbGFwc2VkVmFsdWVz
KSkudmFsdWVPcihub25Db2xsYXBzZWRWYWx1ZXMuYmVmb3JlKTsKIH0KIAotVXNlZFZlcnRpY2Fs
TWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb2xsYXBzZWRW
ZXJ0aWNhbFZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQorVXNlZFZlcnRpY2FsTWFyZ2lu
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb2xsYXBzZWRWZXJ0aWNh
bFZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xs
YXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlv
dXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogICAgIC8vIDEuIEdldCBtaW4vbWF4IG1hcmdpbiB0
b3AgdmFsdWVzIGZyb20gdGhlIGZpcnN0IGluLWZsb3cgY2hpbGQgaWYgd2UgYXJlIGNvbGxhcHNp
bmcgbWFyZ2luIHRvcCB3aXRoIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2lu
Q29sbGFwc2UuY3BwCmluZGV4IGRlZmIzZDU1NGZlNjhkZTQyNzMxZmY4ZTJkNGIyMGVhYmY2NTll
YzIuLmE3MDk2ZDQyYmZiZGYyY2RhNzU1MjNkMzRjODlkZDA3ZmU0OWEwZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29tcHV0ZWRCbG9ja01h
cmdpbkNvbGxhcHNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAg
VXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmcKICAgICByZXR1cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5l
Z2F0aXZlTWFyZ2luKGNvbGxhcHNlZE1hcmdpbkJlZm9yZSwgbm9uQ29sbGFwc2VkQmVmb3JlKTsK
IH0KIAotUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFy
Z2luQ29sbGFwc2U6OnByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB1c2VkTm9uQ29sbGFwc2Vk
TWFyZ2luKQorUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB1c2VkTm9uQ29sbGFw
c2VkTWFyZ2luKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94
KCkpOwogICAgIC8vIERvbid0IHByZS1jb21wdXRlIHZlcnRpY2FsIG1hcmdpbnMgZm9yIG91dCBv
ZiBmbG93IGJveGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL3RhYmxld3JhcHBlci9U
YWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAppbmRleCBhNmQxOTkyYTI1YWU0
MDlmZDQzOTZhZGE4NzRhYjFjMDFjZTg1MTMyLi4zODJiMWFlNzkzODYwYzBiMjQzNGM5YjkxZDY2
ZjVmZDkxYWY1MWMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL3RhYmxld3JhcHBlci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL3RhYmxld3JhcHBl
ci9UYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcApAQCAtMjE5LDcgKzIxOSw3
IEBAIHZvaWQgVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6Y29tcHV0ZUhlaWdo
dEFuZE1hcmdpbkZvclRhYmxlQm94KGNvbnN0CiAgICAgLy8gYWxyZWFkeSBiZWVuIHRha2VuIGlu
dG8gYWNjb3VudCBkdXJpbmcgdGhlIFRGQyBsYXlvdXQuCiAgICAgYXV0byBoZWlnaHRBbmRNYXJn
aW4gPSBnZW9tZXRyeSgpLmluRmxvd0hlaWdodEFuZE1hcmdpbih0YWJsZUJveCwgY29uc3RyYWlu
dHMuaG9yaXpvbnRhbCwgeyBxdWlya3MoKS5vdmVycmlkZVRhYmxlSGVpZ2h0KHRhYmxlQm94KSB9
KTsKIAotICAgIGF1dG8gbWFyZ2luQ29sbGFwc2UgPSB0aGlzLT5tYXJnaW5Db2xsYXBzZSgpOwor
ICAgIGF1dG8mIG1hcmdpbkNvbGxhcHNlID0gdGhpcy0+bWFyZ2luQ29sbGFwc2UoKTsKICAgICBh
dXRvIHZlcnRpY2FsTWFyZ2luID0gbWFyZ2luQ29sbGFwc2UuY29sbGFwc2VkVmVydGljYWxWYWx1
ZXModGFibGVCb3gsIGhlaWdodEFuZE1hcmdpbi5ub25Db2xsYXBzZWRNYXJnaW4pOwogICAgIC8v
IENhY2hlIHRoZSBjb21wdXRlZCBwb3NpdGl2ZSBhbmQgbmVnYXRpdmUgbWFyZ2luIHZhbHVlIHBh
aXIuCiAgICAgZm9ybWF0dGluZ1N0YXRlKCkuc2V0VXNlZFZlcnRpY2FsTWFyZ2luKHRhYmxlQm94
LCB2ZXJ0aWNhbE1hcmdpbik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFi
bGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oCmluZGV4IDM0NzI2
YThhZmJlNGQwODhkNWMwNjIxNDFlNjFlNzY3M2JhOWNmZjMuLjllMzJjYWIxMTllN2MwNzMyZmNj
OTU1Yjc3MjEyZTYwZWM5MWRmYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oCkBAIC04
MCwxNyArODAsNiBAQCBwcml2YXRlOgogICAgIH07CiAgICAgVGFibGVGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnkgZ2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBHZW9tZXRyeSgqdGhpcywgZm9y
bWF0dGluZ1N0YXRlKCkudGFibGVHcmlkKCkpOyB9CiAKLSAgICBjbGFzcyBRdWlya3MgOiBwdWJs
aWMgRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyB7Ci0gICAgcHVibGljOgotICAgICAgICBRdWly
a3MoY29uc3QgVGFibGVGb3JtYXR0aW5nQ29udGV4dCYpOwotCi0gICAgICAgIGJvb2wgc2hvdWxk
SWdub3JlQ2hpbGRDb250ZW50VmVydGljYWxNYXJnaW4oY29uc3QgQ29udGFpbmVyQm94JikgY29u
c3Q7Ci0KLSAgICAgICAgY29uc3QgVGFibGVGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0Nv
bnRleHQoKSBjb25zdCB7IHJldHVybiBkb3duY2FzdDxUYWJsZUZvcm1hdHRpbmdDb250ZXh0PihG
b3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpmb3JtYXR0aW5nQ29udGV4dCgpKTsgfQotICAgICAg
ICBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeSBnZW9tZXRyeSgpIGNvbnN0IHsgcmV0
dXJuIGZvcm1hdHRpbmdDb250ZXh0KCkuZ2VvbWV0cnkoKTsgfQotICAgIH07Ci0gICAgVGFibGVG
b3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHF1aXJrcygpIGNvbnN0IHsgcmV0dXJuIFF1aXJrcygq
dGhpcyk7IH0KLQogICAgIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OlRhYmxlTGF5b3V0IHRhYmxl
TGF5b3V0KCkgY29uc3QgeyByZXR1cm4gVGFibGVMYXlvdXQoKnRoaXMsIGZvcm1hdHRpbmdTdGF0
ZSgpLnRhYmxlR3JpZCgpKTsgfQogCiAgICAgSW50cmluc2ljV2lkdGhDb25zdHJhaW50cyBjb21w
dXRlZEludHJpbnNpY1dpZHRoQ29uc3RyYWludHMoKSBvdmVycmlkZTsKQEAgLTExMiwxMSArMTAx
LDYgQEAgaW5saW5lIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpHZW9tZXRyeShj
b25zdCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0JgogewogfQogCi1pbmxpbmUgVGFibGVGb3JtYXR0
aW5nQ29udGV4dDo6UXVpcmtzOjpRdWlya3MoY29uc3QgVGFibGVGb3JtYXR0aW5nQ29udGV4dCYg
dGFibGVGb3JtYXR0aW5nQ29udGV4dCkKLSAgICA6IEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3Mo
dGFibGVGb3JtYXR0aW5nQ29udGV4dCkKLXsKLX0KLQogfQogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRH
ZW9tZXRyeS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKaW5kZXggZGVhMWYxNjc2YjM4MzEzNjJhZjZl
Y2VlYTY0NDQ3ZDlkM2M4OTQ1MC4uMWQ1MjYwM2NmNTNkMzdhZmRkY2Q1YTYyN2U3M2M0NWZhNzkx
ZDVjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9U
YWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xh
eW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5LmNwcApA
QCAtNDEsMjEgKzQxLDcgQEAgbmFtZXNwYWNlIExheW91dCB7CiBMYXlvdXRVbml0IFRhYmxlRm9y
bWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpjZWxsSGVpZ2goY29uc3QgQ29udGFpbmVyQm94JiBj
ZWxsQm94KSBjb25zdAogewogICAgIEFTU0VSVChjZWxsQm94LmlzSW5GbG93KCkpOwotICAgIGF1
dG8gY29udGVudEhlaWdodCA9IExheW91dFVuaXQgeyB9OwotICAgIGlmIChmb3JtYXR0aW5nQ29u
dGV4dCgpLnF1aXJrcygpLnNob3VsZElnbm9yZUNoaWxkQ29udGVudFZlcnRpY2FsTWFyZ2luKGNl
bGxCb3gpKSB7Ci0gICAgICAgIEFTU0VSVChjZWxsQm94LmZpcnN0SW5GbG93Q2hpbGQoKSk7Ci0g
ICAgICAgIGF1dG8gZm9ybWF0dGluZ0NvbnRleHQgPSB0aGlzLT5mb3JtYXR0aW5nQ29udGV4dCgp
OwotICAgICAgICBhdXRvJiBmaXJzdEluRmxvd0NoaWxkID0gKmNlbGxCb3guZmlyc3RJbkZsb3dD
aGlsZCgpOwotICAgICAgICBhdXRvJiBsYXN0SW5GbG93Q2hpbGQgPSAqY2VsbEJveC5sYXN0SW5G
bG93Q2hpbGQoKTsKLSAgICAgICAgYXV0byYgZmlyc3RJbkZsb3dDaGlsZEdlb21ldHJ5ID0gZm9y
bWF0dGluZ0NvbnRleHQuZ2VvbWV0cnlGb3JCb3goZmlyc3RJbkZsb3dDaGlsZCwgRXNjYXBlUmVh
c29uOjpOZWVkc0dlb21ldHJ5RnJvbUVzdGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQpOwotICAg
ICAgICBhdXRvJiBsYXN0SW5GbG93Q2hpbGRHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdl
b21ldHJ5Rm9yQm94KGxhc3RJbkZsb3dDaGlsZCwgRXNjYXBlUmVhc29uOjpOZWVkc0dlb21ldHJ5
RnJvbUVzdGFibGlzaGVkRm9ybWF0dGluZ0NvbnRleHQpOwotCi0gICAgICAgIGF1dG8gdG9wID0g
Zmlyc3RJbkZsb3dDaGlsZC5zdHlsZSgpLmhhc01hcmdpbkJlZm9yZVF1aXJrKCkgPyBmaXJzdElu
Rmxvd0NoaWxkR2VvbWV0cnkudG9wKCkgOiBmaXJzdEluRmxvd0NoaWxkR2VvbWV0cnkucmVjdFdp
dGhNYXJnaW4oKS50b3AoKTsKLSAgICAgICAgYXV0byBib3R0b20gPSBsYXN0SW5GbG93Q2hpbGQu
c3R5bGUoKS5oYXNNYXJnaW5BZnRlclF1aXJrKCkgPyBsYXN0SW5GbG93Q2hpbGRHZW9tZXRyeS5i
b3R0b20oKSA6IGxhc3RJbkZsb3dDaGlsZEdlb21ldHJ5LnJlY3RXaXRoTWFyZ2luKCkuYm90dG9t
KCk7Ci0gICAgICAgIGNvbnRlbnRIZWlnaHQgPSBib3R0b20gLSB0b3A7Ci0gICAgfSBlbHNlCi0g
ICAgICAgIGNvbnRlbnRIZWlnaHQgPSBjb250ZW50SGVpZ2h0Rm9yRm9ybWF0dGluZ0NvbnRleHRS
b290KGNlbGxCb3gpOwotICAgIHJldHVybiBzdGQ6Om1heChjb21wdXRlZEhlaWdodChjZWxsQm94
KS52YWx1ZU9yKDBfbHUpLCBjb250ZW50SGVpZ2h0KTsKKyAgICByZXR1cm4gc3RkOjptYXgoY29t
cHV0ZWRIZWlnaHQoY2VsbEJveCkudmFsdWVPcigwX2x1KSwgY29udGVudEhlaWdodEZvckZvcm1h
dHRpbmdDb250ZXh0Um9vdChjZWxsQm94KSk7CiB9CiAKIEVkZ2VzIFRhYmxlRm9ybWF0dGluZ0Nv
bnRleHQ6Okdlb21ldHJ5Ojpjb21wdXRlZENlbGxCb3JkZXIoY29uc3QgVGFibGVHcmlkOjpDZWxs
JiBjZWxsKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9y
bWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAK
ZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI2NGE2MmRmZjA3MTRhZDY4ZmE3ODk2ODVm
YmJiMjEzNzRmZjE1MzIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAK
LS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRp
bmdDb250ZXh0UXVpcmtzLmNwcAorKysgL2Rldi9udWxsCkBAIC0xLDU3ICswLDAgQEAKLS8qCi0g
KiBDb3B5cmlnaHQgKEMpIDIwMjAgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoK
LSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQg
SVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVE
IFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJ
RUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElD
VUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUg
SU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5U
SUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFO
RCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNU
UklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
LSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiVGFibGVGb3JtYXR0aW5nQ29u
dGV4dC5oIgotCi0jaWYgRU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCi0KLSNpbmNs
dWRlICJMYXlvdXRCb3guaCIKLSNpbmNsdWRlICJMYXlvdXRDb250YWluZXJCb3guaCIKLSNpbmNs
dWRlICJMYXlvdXRTdGF0ZS5oIgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci1uYW1lc3BhY2UgTGF5
b3V0IHsKLQotYm9vbCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnNob3VsZElnbm9y
ZUNoaWxkQ29udGVudFZlcnRpY2FsTWFyZ2luKGNvbnN0IENvbnRhaW5lckJveCYgY2VsbEJveCkg
Y29uc3QKLXsKLSAgICAvLyBOb3JtYWxseSBCRkMgcm9vdCBjb250ZW50IGhlaWdodCB0YWtlcyB0
aGUgbWFyZ2luIGJveCBvZiB0aGUgY2hpbGQgY29udGVudCBhcyB2ZXJ0aWNhbCBtYXJnaW5zIGRv
bid0IGNvbGxhcHNlIHdpdGggQkZDIHJvb3RzLAotICAgIC8vIGJ1dCB0YWJsZSBjZWxsIGJveGVz
IGRvIGNvbGxhcHNlIHRoZWlyIChub24tZXhpc3RpbmcpIG1hcmdpbnMgd2l0aCBjaGlsZCBxdWly
ayBtYXJnaW5zIChzbyBtdWNoIHF1aXJrKSwgc28gaGVyZSB3ZSBjaGVjawotICAgIC8vIGlmIHRo
ZSBjb250ZW50IGhlaWdodCBzaG91bGQgaW5jbHVkZSBtYXJnaW5zIG9yIG5vdC4KLSAgICAvLyBl
LmcgPHRhYmxlPjx0cj48dGQ+PHA+dGV4dCBjb250ZW50PC90ZD48L3RyPjwvdGFibGU+IDwtIDxw
PidzIHF1aXJrIG1hcmdpbiBjb2xsYXBzZXMgd2l0aCB0aGUgPHRkPiBzbyBpdHMgY29udGVudAot
ICAgIC8vIGhlaWdodCBzaG91bGQgbm90IGluY2x1ZGUgdmVydGljYWwgbWFyZ2lucy4KLSAgICBp
ZiAoIWxheW91dFN0YXRlKCkuaW5RdWlya3NNb2RlKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LSAgICBpZiAoY2VsbEJveC5lc3RhYmxpc2hlc0lubGluZUZvcm1hdHRpbmdDb250ZXh0KCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBpZiAoIWNlbGxCb3guaGFzSW5GbG93Q2hpbGQoKSkK
LSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIHJldHVybiBjZWxsQm94LmZpcnN0SW5GbG93Q2hp
bGQoKS0+c3R5bGUoKS5oYXNNYXJnaW5CZWZvcmVRdWlyaygpIHx8IGNlbGxCb3gubGFzdEluRmxv
d0NoaWxkKCktPnN0eWxlKCkuaGFzTWFyZ2luQWZ0ZXJRdWlyaygpOwotfQotCi19Ci19Ci0KLSNl
bmRpZgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDhmNzA1OTM4ZTJjYzhmMDc3ODQzN2Q2OWE1NGY3YjlhYjU5NGM1YTIuLjBj
MmJjOTAwNzg3MWRkMTRmNTY5MTBhNTZhNTY4ZmMwOWNkYzMxNjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMC0wNy0wNSAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgorCisgICAg
ICAgIFtMRkNdW0JGQ11bUXVpcmtdIEhhbmRsZSBub24tZGlyZWN0LCBjb2xsYXBzZWQgcXVpcmsg
bWFyZ2lucyBpbnNpZGUgdGFibGUgY2VsbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMzk3OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgICogZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC90YWJsZS1x
dWlyay12ZXJ0aWNhbC1tYXJnaW4tc2ltcGxlMi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBmYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L3RhYmxlLXF1aXJrLXZlcnRpY2FsLW1h
cmdpbi1zaW1wbGUyLmh0bWw6IEFkZGVkLgorCiAyMDIwLTA3LTAzICBaYWxhbiBCdWp0YXMgIDx6
YWxhbkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bVEZDXVtRdWlya10gSW5mbG93IGNoaWxk
IGJveCBxdWlyayB2ZXJ0aWNhbCBtYXJnaW5zIHNob3VsZCBjb2xsYXBzZSB3aXRoIHRhYmxlIGNl
bGwuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0
L3RhYmxlLXF1aXJrLXZlcnRpY2FsLW1hcmdpbi1zaW1wbGUyLWV4cGVjdGVkLmh0bWwgYi9MYXlv
dXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L3RhYmxlLXF1aXJrLXZlcnRpY2Fs
LW1hcmdpbi1zaW1wbGUyLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2UyNGIyYTg4ZjBiZTll
MGUyMmZhMTMzYzg4MDY0OTljNTIzZjM0MwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvdGFibGUtcXVpcmstdmVydGljYWwtbWFyZ2lu
LXNpbXBsZTItZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDEwIEBACis8IURPQ1RZUEUgaHRtbD48
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGludGVybmFsOkxheW91dEZvcm1hdHRpbmdDb250ZXh0
RW5hYmxlZD10cnVlIGludGVybmFsOkxheW91dEZvcm1hdHRpbmdDb250ZXh0SW50ZWdyYXRpb25F
bmFibGVkPWZhbHNlIF0gLS0+Cis8c3R5bGU+CisuZmlyc3QgeworICAgIHdpZHRoOiAxMDBweDsK
KyAgICBoZWlnaHQ6IDUwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9CisKKzwv
c3R5bGU+Cis8ZGl2IGNsYXNzPWZpcnN0PjwvZGl2PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC90YWJsZS1xdWlyay12ZXJ0aWNhbC1tYXJnaW4t
c2ltcGxlMi5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC90
YWJsZS1xdWlyay12ZXJ0aWNhbC1tYXJnaW4tc2ltcGxlMi5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiMTYx
Mzk3MGM0MWIxNmEwNjRlYWVlYmEwMDg0ZmQzZjAxNmY0YzQKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0L3RhYmxlLXF1aXJrLXZlcnRp
Y2FsLW1hcmdpbi1zaW1wbGUyLmh0bWwKQEAgLTAsMCArMSwyMSBAQAorPCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBpbnRlcm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4dEVuYWJsZWQ9dHJ1ZSBp
bnRlcm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZD1mYWxzZSBd
IC0tPgorPHN0eWxlPgordGFibGUgeworICAgIHdpZHRoOiAxMDBweDsKKyAgICBmb250LXNpemU6
IDEwcHg7CisgICAgYm9yZGVyLXNwYWNpbmc6IDBweDsKK30KKworcCB7CisgICAgaGVpZ2h0OiA1
MHB4OworICAgIGNvbG9yOiBncmVlbjsKK30KKwordGQgeworICAgIHBhZGRpbmc6IDBweDsKKyAg
ICBiYWNrZ3JvdW5kLWNvbG9yOiBncmVlbjsKK30KKworPC9zdHlsZT4KKworPHRhYmxlPjx0cj48
dGQ+PGRpdj48cD5jb2xsYXBzZSBxdWlyayBtYXJnaW5zPC9kaXY+PC90ZD48L3RyPjwvdGFibGU+
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>403756</attachid>
            <date>2020-07-07 21:07:38 -0700</date>
            <delta_ts>2020-07-07 21:07:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213978-20200707210738.patch</filename>
            <type>text/plain</type>
            <size>45344</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYyNDE5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmZlMjZlZmRjYmZlZmUz
YzM1NzU2M2NiZmU0ZGIyMGEwMTA0YWUxYS4uZjg3ODVkMjFkOGIyOThjNjU4MDkwZDYzYWMyN2U4
NzNiMmM5NDYyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIwLTA3LTA1ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgW0xGQ11bQkZDXVtRdWlya10g
SGFuZGxlIG5vbi1kaXJlY3QsIGNvbGxhcHNlZCBxdWlyayBtYXJnaW5zIGluc2lkZSB0YWJsZSBj
ZWxscworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEz
OTc4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCBhZGRzIHN1cHBvcnQgZm9yIGNhc2VzIHdoZW4gdGhlIGFkam9pbmluZyBxdWlyayBt
YXJnaW4gaXMgbm90IGEgbWFyZ2luIG9mIGEgZGlyZWN0IGNoaWxkIG9mIHRoZSB0YWJsZSBjZWxs
LgorICAgICAgICBlLmcuIDx0ZD48ZGl2PjxwPnRoaXMgcCdzIG1hcmdpbiBjb2xsYXBzZXMgaW50
byB0aGUgcGFyZW50IGRpdidzIG1hcmdpbiB3aGljaCBpcyBhIGRpcmVjdCBjaGlsZCBvZiB0aGUg
dGFibGUgY2VsbDwvZGl2PjwvdGQ+CisgICAgICAgIDwtIExldCdzIGlnbm9yZSB0aGUgPHA+J3Mg
YmVmb3JlL2FmdGVyIG1hcmdpbiBzbyB0aGF0IHRoZSBjZWxsJ3MgY29udGVudCBib3ggdXNlZCBo
ZWlnaHQgaXMgbm90IGV4cGFuZGVkIGJ5IHRob3NlIDFlbSBtYXJnaW5zLiAgCisKKyAgICAgICAg
VGhlIHByZXZpb3VzIGFwcHJvYWNoIG9ubHkgZGVhbHQgd2l0aCBkaXJlY3RseSBhZGpvaW5pbmcg
bWFyZ2lucy4gSGVyZSB3ZSBvdmVycmlkZSB0aGUgcmVndWxhciBibG9jayBtYXJnaW4gY29sbGFw
c2luZyBhbmQKKyAgICAgICAgaGFuZGxlIHRoZSBjYXNlIHdoZW4gYSBxdWlyayBiZWZvcmUvYWZ0
ZXIgbWFyZ2luIGFkam9pbmluZyB0aGUgdGFibGUgY2VsbCdzIChub24tZXhpc3RpbmcpIGJlZm9y
ZS9hZnRlciBtYXJnaW5zLgorCisgICAgICAgICogU291cmNlcy50eHQ6CisgICAgICAgICogV2Vi
Q29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAgICAqIGxheW91dC9Gb3JtYXR0
aW5nQ29udGV4dC5oOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpGb3JtYXR0aW5nQ29udGV4
dDo6aXNUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAgICAgICAgKiBs
YXlvdXQvTGF5b3V0Q29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkxheW91
dENvbnRleHQ6OmNyZWF0ZUZvcm1hdHRpbmdDb250ZXh0KToKKyAgICAgICAgKiBsYXlvdXQvVmVy
aWZpY2F0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6b3V0cHV0TWlzbWF0Y2hp
bmdCbG9ja0JveEluZm9ybWF0aW9uSWZOZWVkZWQpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zv
cm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQpOgor
ICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Ojpjb21wdXRl
SGVpZ2h0QW5kTWFyZ2luKToKKyAgICAgICAgKiBsYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaDoKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3Jt
YXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmxheW91dFN0YXRlKToKKyAgICAgICAgKFdl
YkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Omxh
eW91dFN0YXRlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6OmZvcm1hdHRpbmdDb250ZXh0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6bWFyZ2luQ29s
bGFwc2UgY29uc3QpOgorICAgICAgICAqIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dFF1aXJrcy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c3RyZXRjaGVkSW5GbG93SGVpZ2h0IGNvbnN0KToK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtz
OjpzdHJldGNoZWRJbkZsb3dIZWlnaHQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6TGF5
b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpRdWlya3M6OnNob3VsZENvbGxhcHNlTWFyZ2lu
QmVmb3JlV2l0aFBhcmVudE1hcmdpbkJlZm9yZSBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c2hvdWxkQ29s
bGFwc2VNYXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRlciBjb25zdCk6IERlbGV0ZWQuCisg
ICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2U6Om1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpN
YXJnaW5Db2xsYXBzZTo6bWFyZ2luQWZ0ZXJDb2xsYXBzZXNXaXRoUGFyZW50TWFyZ2luQWZ0ZXIg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6TGF5b3V0OjpCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaCBj
b25zdCk6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
Ok1hcmdpbkNvbGxhcHNlOjpjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyBjb25zdCk6CisgICAgICAg
IChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNl
OjptYXJnaW5CZWZvcmVJZ25vcmluZ0NvbGxhcHNpbmdUaHJvdWdoKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYkNvcmU6OkxheW91dDo6QmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFw
c2U6OmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKiBsYXlvdXQv
YmxvY2tmb3JtYXR0aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpMYXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxh
cHNlOjpwcmVjb21wdXRlZE1hcmdpbkJlZm9yZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpM
YXlvdXQ6OkJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpwcmVjb21wdXRl
ZE1hcmdpbkJlZm9yZSk6IERlbGV0ZWQuCisgICAgICAgICogbGF5b3V0L2Jsb2NrZm9ybWF0dGlu
Zy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlV3JhcHBlckJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW5Gb3JUYWJsZUJveCk6CisgICAgICAgICogbGF5b3V0
L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0Lmg6CisgICAgICAgIChXZWJD
b3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6UXVpcmtzKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBsYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0Nv
bnRleHRHZW9tZXRyeS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpMYXlvdXQ6OlRhYmxlRm9ybWF0
dGluZ0NvbnRleHQ6Okdlb21ldHJ5OjpjZWxsSGVpZ2ggY29uc3QpOgorICAgICAgICAqIGxheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHA6IFJlbW92
ZWQuCisKIDIwMjAtMDctMDQgIFphbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbTEZDXVtCRkNdIE1vdmUgUG9zaXRpdmVBbmROZWdhdGl2ZVZlcnRpY2FsTWFyZ2luIHRv
IFVzZWRWZXJ0aWNhbE1hcmdpbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA0NjU1NWFmYWJlYTRiNjRlNDI3
YzM2NWYwOGYwYzJlZDBiMzRhMTgwLi45MmU2YzUyZGY2MmY5ZjRmOTk2ZjdmMTJiNjA3MzRiZDQx
MTUyNzY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMTQ2Miw2ICsxNDYyLDcgQEAgbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcAogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdTdGF0ZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRp
bmcvQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29t
cHV0ZWRCbG9ja01hcmdpbkNvbGxhcHNlLmNwcAorbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJs
ZWNlbGwvVGFibGVDZWxsQmxvY2tRdWlya01hcmdpbkNvbGxhcHNlLmNwcAogbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4
dC5jcHAKIGxheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3JhcHBlckJs
b2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCiBsYXlvdXQvZGlzcGxheXRyZWUvRGlzcGxh
eUJveC5jcHAKQEAgLTE0OTMsNyArMTQ5NCw2IEBAIGxheW91dC9sYXlvdXR0cmVlL0xheW91dFJl
cGxhY2VkQm94LmNwcAogbGF5b3V0L2xheW91dHRyZWUvTGF5b3V0VHJlZUJ1aWxkZXIuY3BwCiBs
YXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHQuY3BwCiBsYXlvdXQv
dGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKLWxheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKIGxheW91
dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nU3RhdGUuY3BwCiBsYXlvdXQvdGFibGVm
b3JtYXR0aW5nL1RhYmxlR3JpZC5jcHAKIGxheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVMYXlv
dXQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMDU4MzNhOTk5ZjZhNzE1MDJhMDllODFlNTg3ZTRiZmM5MDY3NWE4Mi4uZDc3
MzJiZGIyNjcwZDlhYzJlYjcxNWRlMGE1MzZmOGQwMzdhOGM2NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMjA0Nyw2ICsyMDQ3
LDcgQEAKIAkJNkY3Nzg2ODgyMzQ5MUFEODAwNEQ5NjM2IC8qIERpc3BsYXlQYWludGVyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjc3ODY4NzIzNDkx
QUQ3MDA0RDk2MzYgLyogRGlzcGxheVBhaW50ZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2RjdDQTNDNjIwOEMyOTU3MDAyRjI5QUIgLyogTGF5
b3V0U3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDZGN0NBM0M0MjA4QzI5NTYwMDJGMjlBQiAvKiBMYXlvdXRTdGF0ZS5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTZGN0NBM0NBMjA4QzJCMkUwMDJG
MjlBQiAvKiBJbmxpbmVGb3JtYXR0aW5nQ29udGV4dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNkY3Q0EzQzgyMDhDMkIyRTAwMkYyOUFCIC8qIElubGlu
ZUZvcm1hdHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKKwkJNkY4MUZCOUMyNEIxNEE1OTAwRkJBNDVFIC8qIFRhYmxlQ2VsbEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDZGODFGQjlCMjRCMTRBNTEwMEZCQTQ1RSAvKiBUYWJsZUNlbGxCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNkY5NURFNEQyMzdCODg5QzAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDZGOTVERTRC
MjM3Qjg4OUIwMEU1MTdFMSAvKiBJbnZhbGlkYXRpb25Db250ZXh0LmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNkY5NURFNEUyMzdCODg5QzAwRTUx
N0UxIC8qIEludmFsaWRhdGlvblN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA2Rjk1REU0QzIzN0I4ODlDMDBFNTE3RTEgLyogSW52YWxpZGF0aW9u
U3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk2Rjk5NUExNjFBNzA3NTYyMDBBNzM1RjQgLyogV2ViR0xTeW5jLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2Rjk5NUExNDFBNzA3NTYyMDBBNzM1RjQg
LyogV2ViR0xTeW5jLmggKi87IH07CkBAIC05NDM3LDYgKzk0MzgsNyBAQAogCQk2RjdDQTNDNTIw
OEMyOTU2MDAyRjI5QUIgLyogTGF5b3V0U3RhdGUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGF5
b3V0U3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjdDQTNDODIwOEMy
QjJFMDAyRjI5QUIgLyogSW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
SW5saW5lRm9ybWF0dGluZ0NvbnRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkY3Q0EzQzkyMDhDMkIyRTAwMkYyOUFCIC8qIElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IElubGluZUZvcm1hdHRpbmdDb250ZXh0LmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNkY4MUZCOUIyNEIxNEE1MTAwRkJBNDVFIC8qIFRhYmxlQ2Vs
bEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVDZWxsQmxvY2tG
b3JtYXR0aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RjhGNDYw
MTIxQjAzQkI0MDA0MUFDM0EgLyogRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAu
Y3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RjhGNDYwMzIxQjAzQkM2MDA0MUFDM0EgLyogQmxvY2tGb3JtYXR0aW5n
Q29udGV4dFF1aXJrcy5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0UXVpcmtzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkY5NURFNEIyMzdC
ODg5QjAwRTUxN0UxIC8qIEludmFsaWRhdGlvbkNvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW52YWxpZGF0aW9uQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwpAQCAtOTQ3NSwxMiArOTQ3NywxMiBAQAogCQk2RkI0N0U2MTIyNzc0MjVBMDBDN0JD
QjAgLyogRGlzcGxheUxpbmVCb3guaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
RGlzcGxheUxpbmVCb3guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZCNUUyMTIy
MjFGMjQ0NzAwMzk4OUNGIC8qIENvbnRlbnRDaGFuZ2VPYnNlcnZlci5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBDb250ZW50Q2hhbmdlT2JzZXJ2ZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NkZCQjg2MDUyMEI0NjRCNjAwREFEOTM4IC8qIEZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gRm9ybWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCTZGQzUzQUVCMjRBRjdBOEUwMDYwNTlGRSAvKiBUYWJs
ZUZvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFRhYmxlRm9y
bWF0dGluZ0NvbnRleHRRdWlya3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RkM1Q0E5MjIyRTM1OTkzMDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nU3RhdGUuY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVGFibGVGb3JtYXR0aW5nU3RhdGUuY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk2RkM1Q0E5NDIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5n
Q29udGV4dC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNw
cDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDNUNBOTUyMkUzNTk5NDAwQjEzRTEx
IC8qIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFibGVGb3JtYXR0
aW5nQ29udGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkM1Q0E5NjIyRTM1
OTk1MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVGFi
bGVGb3JtYXR0aW5nU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNkZDRTFB
MTgyMjYxOEFCMzAwNEYwMzQzIC8qIERpc3BsYXlSdW4uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRGlzcGxh
eVJ1bi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk2RkQxRkI3NzI0QjE0RDYyMDBF
OTNBRTUgLyogVGFibGVDZWxsQmxvY2tRdWlya01hcmdpbkNvbGxhcHNlLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IFRhYmxlQ2VsbEJsb2NrUXVpcmtNYXJnaW5Db2xsYXBzZS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTZGRDlDRDUyMjI3RTIxQzgwMEU1Mzk1NyAvKiBEaXNwbGF5
UmVjdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBEaXNwbGF5UmVjdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2RkUxOTgxMzIxNzgzOTdCMDA0NDZGMDggLyog
SW5saW5lTGluZUJyZWFrZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gSW5saW5lTGluZUJyZWFrZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk2
RkUxOTgxNTIxNzgzOTdDMDA0NDZGMDggLyogSW5saW5lTGluZUJyZWFrZXIuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5saW5lTGluZUJyZWFrZXIuaDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKQEAgLTE3MDk0LDYgKzE3MDk2LDcgQEAKIAkJMTE1Q0ZBOTkyMDhCQzA5
QTAwMUU2OTkxIC8qIGJsb2NrZm9ybWF0dGluZyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwog
CQkJY2hpbGRyZW4gPSAoCisJCQkJNkY4MUZCOTkyNEIxNEEwNjAwRkJBNDVFIC8qIHRhYmxlY2Vs
bCAqLywKIAkJCQk2RkQ0RkUzRTI0NzBCM0FEMDA3Mzc0Q0MgLyogdGFibGV3cmFwcGVyICovLAog
CQkJCTExNUNGQTZEMjA4QUZBQjYwMDFFNjk5MSAvKiBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNw
cCAqLywKIAkJCQkxMTVDRkE2QzIwOEFGQUI2MDAxRTY5OTEgLyogQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oICovLApAQCAtMjEyODgsNiArMjEyOTEsMTUgQEAKIAkJCXBhdGggPSBhbmdsZTsKIAkJ
CXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJCX07CisJCTZGODFGQjk5MjRCMTRBMDYwMEZCQTQ1
RSAvKiB0YWJsZWNlbGwgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxkcmVuID0g
KAorCQkJCTZGODFGQjlCMjRCMTRBNTEwMEZCQTQ1RSAvKiBUYWJsZUNlbGxCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0LmggKi8sCisJCQkJNkZEMUZCNzcyNEIxNEQ2MjAwRTkzQUU1IC8qIFRhYmxlQ2Vs
bEJsb2NrUXVpcmtNYXJnaW5Db2xsYXBzZS5jcHAgKi8sCisJCQkpOworCQkJcGF0aCA9IHRhYmxl
Y2VsbDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTZGOTVERTRBMjM3Qjg4
MzAwMEU1MTdFMSAvKiBpbnZhbGlkYXRpb24gKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJ
CWNoaWxkcmVuID0gKApAQCAtMjEzMDUsNyArMjEzMTcsNiBAQAogCQkJCTZGQzVDQTk0MjJFMzU5
OTQwMEIxM0UxMSAvKiBUYWJsZUZvcm1hdHRpbmdDb250ZXh0LmNwcCAqLywKIAkJCQk2RkM1Q0E5
NTIyRTM1OTk0MDBCMTNFMTEgLyogVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oICovLAogCQkJCTEx
RDE5QzJFMjMxNTlCQUUwMDhGMjREMyAvKiBUYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnku
Y3BwICovLAotCQkJCTZGQzUzQUVCMjRBRjdBOEUwMDYwNTlGRSAvKiBUYWJsZUZvcm1hdHRpbmdD
b250ZXh0UXVpcmtzLmNwcCAqLywKIAkJCQk2RkM1Q0E5MjIyRTM1OTkzMDBCMTNFMTEgLyogVGFi
bGVGb3JtYXR0aW5nU3RhdGUuY3BwICovLAogCQkJCTZGQzVDQTk2MjJFMzU5OTUwMEIxM0UxMSAv
KiBUYWJsZUZvcm1hdHRpbmdTdGF0ZS5oICovLAogCQkJCTZGNUI3RUFBMjMwMEE3OUUwMDY3RDlD
MyAvKiBUYWJsZUdyaWQuY3BwICovLApAQCAtMzMzNjIsNiArMzMzNzMsNyBAQAogCQkJCUU0RThC
NEVDMjE2Qjc5RTUwMEI4ODM0RCAvKiBTeXN0ZW1Gb250RGF0YWJhc2VDb3JlVGV4dC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJMEYwM0MwNzQxODg0Njk1RTAwQTVGOENBIC8qIFN5c3RlbU1lbW9yeS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNUQ1OTc1QjMxOTYzNUYxMTAwRDAwODc4IC8qIFN5c3RlbVZl
cnNpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTZGODFGQjlDMjRCMTRBNTkwMEZCQTQ1RSAvKiBU
YWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlBOENG
RjA1MTBBMTU0RjA5MDAwQTQyMzQgLyogVGFibGVMYXlvdXQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTZGMTcyNjRGMjQ3MEM2MEIwMDUxOEM5NiAvKiBUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQkzQkI2QjgxMTIyQTdEMzEzMDAzQTJBNjkgLyog
VGFiU2l6ZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvRm9ybWF0dGluZ0NvbnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5n
Q29udGV4dC5oCmluZGV4IGYyYzY1NjI4MjhiMzEzOWQ0ZTE5OTJlMzNjNGEwNjllMjZhMjVlOTQu
LmUwNTIyMTRiMGZkNGMwNDI1MjFhOWQwZTJiMTc4Mzg5Y2Y1NWQ2YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL2xheW91dC9Gb3JtYXR0aW5nQ29udGV4dC5oCkBAIC05NSw2ICs5NSw3IEBAIHB1YmxpYzoK
ICAgICBib29sIGlzSW5saW5lRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290
KCkuZXN0YWJsaXNoZXNJbmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpOyB9CiAgICAgYm9vbCBpc1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiByb290KCkuZXN0YWJsaXNoZXNU
YWJsZUZvcm1hdHRpbmdDb250ZXh0KCk7IH0KICAgICBib29sIGlzVGFibGVXcmFwcGVyQmxvY2tG
b3JtYXR0aW5nQ29udGV4dCgpIGNvbnN0IHsgcmV0dXJuIGlzQmxvY2tGb3JtYXR0aW5nQ29udGV4
dCgpICYmIHJvb3QoKS5pc1RhYmxlV3JhcHBlckJveCgpOyB9CisgICAgYm9vbCBpc1RhYmxlQ2Vs
bEJsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBpc0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQoKSAmJiByb290KCkuaXNUYWJsZUNlbGwoKTsgfQogCiAgICAgZW51bSBjbGFzcyBF
c2NhcGVSZWFzb24gewogICAgICAgICBOZWVkc0dlb21ldHJ5RnJvbUVzdGFibGlzaGVkRm9ybWF0
dGluZ0NvbnRleHQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvTGF5b3V0Q29udGV4dC5jcHAKaW5kZXgg
M2I1NjE5Zjc2NDA1NTI5OWRmZWE3MjcxZDc4NjYxZWE5Yjk1YWQwNi4uODRiMzdmNjM0NDgwMjM4
ZGM5ZjdkZmVkZTkzOGU5NmFjMTdkYWE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5
b3V0L0xheW91dENvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9MYXlvdXRD
b250ZXh0LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIlJlbmRlclN0eWxlQ29uc3Rh
bnRzLmgiCiAjaW5jbHVkZSAiUmVuZGVyVmlldy5oIgogI2luY2x1ZGUgIlJ1bnRpbWVFbmFibGVk
RmVhdHVyZXMuaCIKKyNpbmNsdWRlICJUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Lmgi
CiAjaW5jbHVkZSAiVGFibGVGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgIlRhYmxlRm9y
bWF0dGluZ1N0YXRlLmgiCiAjaW5jbHVkZSAiVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5oIgpAQCAtMTI2LDYgKzEyNyw4IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb3JtYXR0aW5nQ29u
dGV4dD4gTGF5b3V0Q29udGV4dDo6Y3JlYXRlRm9ybWF0dGluZ0NvbnRleHQoY29uc3QKICAgICAg
ICAgYXV0byYgYmxvY2tGb3JtYXR0aW5nU3RhdGUgPSBsYXlvdXRTdGF0ZS5lbnN1cmVCbG9ja0Zv
cm1hdHRpbmdTdGF0ZShmb3JtYXR0aW5nQ29udGV4dFJvb3QpOwogICAgICAgICBpZiAoZm9ybWF0
dGluZ0NvbnRleHRSb290LmlzVGFibGVXcmFwcGVyQm94KCkpCiAgICAgICAgICAgICByZXR1cm4g
bWFrZVVuaXF1ZTxUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Pihmb3JtYXR0aW5n
Q29udGV4dFJvb3QsIGJsb2NrRm9ybWF0dGluZ1N0YXRlKTsKKyAgICAgICAgaWYgKGZvcm1hdHRp
bmdDb250ZXh0Um9vdC5pc1RhYmxlQ2VsbCgpKQorICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmlx
dWU8VGFibGVDZWxsQmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oZm9ybWF0dGluZ0NvbnRleHRSb290
LCBibG9ja0Zvcm1hdHRpbmdTdGF0ZSk7CiAgICAgICAgIHJldHVybiBtYWtlVW5pcXVlPEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ+KGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgYmxvY2tGb3JtYXR0aW5n
U3RhdGUpOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L1Zlcmlm
aWNhdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZpY2F0aW9uLmNwcAppbmRl
eCBhZDc5MGE3NjQ1ZjA5NDc3MTU5NzFlMjcxNThmMWY5ZGY3NzE1Nzk0Li5iMzhmMzYyNWM0ZDcw
MjhiYTZiOTkyMGIxZWExMGQyYTFjMzA4ZDVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
YXlvdXQvVmVyaWZpY2F0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvVmVyaWZp
Y2F0aW9uLmNwcApAQCAtMzE4LDcgKzMxOCw5IEBAIHN0YXRpYyBib29sIG91dHB1dE1pc21hdGNo
aW5nQmxvY2tCb3hJbmZvcm1hdGlvbklmTmVlZGVkKFRleHRTdHJlYW0mIHN0cmVhbSwgY29uCiAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIGlmICghYXJlRXNzZW50aWFsbHlFcXVh
bChyZW5kZXJlci5tYXJnaW5Cb3hSZWN0KCksIHJlbmRlckJveExpa2VNYXJnaW5Cb3goZGlzcGxh
eUJveCkpKSB7CisgICAgLy8gUXVpcmsgbWFyZ2lucyB3aXRoIHRhYmxlIGNlbGxzIGRvbid0IGNv
bGxhcHNlLgorICAgIGF1dG8gc2hvdWxkQ2hlY2tNYXJnaW5Cb3ggPSAhbGF5b3V0U3RhdGUuaW5R
dWlya3NNb2RlKCkgfHwgbGF5b3V0Qm94LmlzSW5pdGlhbENvbnRhaW5pbmdCbG9jaygpIHx8ICFs
YXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkuaXNUYWJsZUNlbGwoKTsKKyAgICBpZiAoc2hvdWxk
Q2hlY2tNYXJnaW5Cb3ggJiYgIWFyZUVzc2VudGlhbGx5RXF1YWwocmVuZGVyZXIubWFyZ2luQm94
UmVjdCgpLCByZW5kZXJCb3hMaWtlTWFyZ2luQm94KGRpc3BsYXlCb3gpKSkgewogICAgICAgICAv
LyBJbiBjZXJ0YWluIGNhc2VzLCBsaWtlIG91dC1vZi1mbG93IGJveGVzIHdpdGggbWFyZ2luIGF1
dG8sIG1hcmdpbkJveFJlY3QoKSByZXR1cm5zIDAuIEl0J3MgY2xlYXJseSBpbmNvcnJlY3QsCiAg
ICAgICAgIC8vIHNvIGxldCdzIGNoZWNrIHRoZSBpbmRpdmlkdWFsIG1hcmdpbiB2YWx1ZXMgaW5z
dGVhZCAoYW5kIGF0IHRoaXMgcG9pbnQgd2Uga25vdyB0aGF0IGFsbCBvdGhlciBib3hlcyBtYXRj
aCkuCiAgICAgICAgIGF1dG8gbWFyZ2luc01hdGNoID0gZGlzcGxheUJveC5tYXJnaW5CZWZvcmUo
KSA9PSByZW5kZXJlci5tYXJnaW5CZWZvcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5j
cHAKaW5kZXggYWM1MTI4OGNiZmNiOGFmZDgzZTM1YWFhMjk0ZDM5OTcxNGRlYmE1Mi4uYWJjNTBh
NGZhMmVlMTM4MjVmMjM5OGIwZWZjM2Y1ZGEzZTdiOWM1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGlu
Z0NvbnRleHQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiTGF5b3V0SW5pdGlhbENv
bnRhaW5pbmdCbG9jay5oIgogI2luY2x1ZGUgIkxheW91dFN0YXRlLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgorI2luY2x1ZGUgIlRhYmxlQ2VsbEJsb2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKICNp
bmNsdWRlICJUYWJsZVdyYXBwZXJCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgiCiAjaW5jbHVkZSA8
d3RmL0lzb01hbGxvY0lubGluZXMuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9UZXh0U3RyZWFtLmg+
CkBAIC01MCw2ICs1MSw3IEBAIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0KTsKIAogQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6QmxvY2tGb3JtYXR0aW5n
Q29udGV4dChjb25zdCBDb250YWluZXJCb3gmIGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgQmxvY2tG
b3JtYXR0aW5nU3RhdGUmIGZvcm1hdHRpbmdTdGF0ZSkKICAgICA6IEZvcm1hdHRpbmdDb250ZXh0
KGZvcm1hdHRpbmdDb250ZXh0Um9vdCwgZm9ybWF0dGluZ1N0YXRlKQorICAgICwgbV9tYXJnaW5D
b2xsYXBzZShtYWtlVW5pcXVlUmVmPE1hcmdpbkNvbGxhcHNlPigqdGhpcykpCiB7CiB9CiAKQEAg
LTM2NSw3ICszNjcsNyBAQCB2b2lkIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWln
aHRBbmRNYXJnaW4oY29uc3QgQm94JiBsYXlvdXRCb3gsIGNvbnN0CiAgICAgLy8gMS4gQ29tcHV0
ZSBjb2xsYXBzZWQgbWFyZ2lucy4KICAgICAvLyAyLiBBZGp1c3QgdmVydGljYWwgcG9zaXRpb24g
dXNpbmcgdGhlIGNvbGxhcHNlZCB2YWx1ZXMuCiAgICAgLy8gMy4gQWRqdXN0IHByZXZpb3VzIGlu
LWZsb3cgc2libGluZyBtYXJnaW4gYWZ0ZXIgdXNpbmcgdGhpcyBtYXJnaW4uCi0gICAgYXV0byBt
YXJnaW5Db2xsYXBzZSA9IHRoaXMtPm1hcmdpbkNvbGxhcHNlKCk7CisgICAgYXV0byYgbWFyZ2lu
Q29sbGFwc2UgPSB0aGlzLT5tYXJnaW5Db2xsYXBzZSgpOwogICAgIGF1dG8gdmVydGljYWxNYXJn
aW4gPSBtYXJnaW5Db2xsYXBzZS5jb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcyhsYXlvdXRCb3gsIGNv
bnRlbnRIZWlnaHRBbmRNYXJnaW4ubm9uQ29sbGFwc2VkTWFyZ2luKTsKICAgICAvLyBDYWNoZSB0
aGUgY29tcHV0ZWQgcG9zaXRpdmUgYW5kIG5lZ2F0aXZlIG1hcmdpbiB2YWx1ZSBwYWlyLgogICAg
IGZvcm1hdHRpbmdTdGF0ZSgpLnNldFVzZWRWZXJ0aWNhbE1hcmdpbihsYXlvdXRCb3gsIHZlcnRp
Y2FsTWFyZ2luKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1h
dHRpbmcvQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKaW5kZXggNTA3ZmEyOTdhMGNm
NzRkMmYxNmVhYWQ1Yjk3ZWU2NTk1ZjVlN2EzYy4uYjdhYzljM2M5NmNkODU0NjkwMzI1Y2FlNzI1
ZGFhNGU5ZTIzYzgwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5
b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0LmgKQEAgLTMxLDYgKzMx
LDggQEAKICNpbmNsdWRlICJGb3JtYXR0aW5nQ29udGV4dC5oIgogI2luY2x1ZGUgPHd0Zi9IYXNo
TWFwLmg+CiAjaW5jbHVkZSA8d3RmL0lzb01hbGxvYy5oPgorI2luY2x1ZGUgPHd0Zi9Jc29NYWxs
b2NJbmxpbmVzLmg+CisjaW5jbHVkZSA8d3RmL1VuaXF1ZVJlZi5oPgogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKQEAgLTk4LDExICsxMDAsMTUgQEAgcHJvdGVjdGVkOgogCiAgICAgLy8gVGhpcyBj
bGFzcyBpbXBsZW1lbnRzIG1hcmdpbiBjb2xsYXBzaW5nIGZvciBibG9jayBmb3JtYXR0aW5nIGNv
bnRleHQuCiAgICAgY2xhc3MgTWFyZ2luQ29sbGFwc2UgeworICAgICAgICBXVEZfTUFLRV9JU09f
QUxMT0NBVEVEX0lOTElORShNYXJnaW5Db2xsYXBzZSk7CiAgICAgcHVibGljOgotICAgICAgICBV
c2VkVmVydGljYWxNYXJnaW4gY29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3QgQm94JiwgVXNl
ZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpOworICAgICAgICBNYXJnaW5Db2xs
YXBzZShjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CisgICAgICAgIHZpcnR1YWwgfk1h
cmdpbkNvbGxhcHNlKCkgPSBkZWZhdWx0OworCisgICAgICAgIHZpcnR1YWwgVXNlZFZlcnRpY2Fs
TWFyZ2luIGNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGNvbnN0IEJveCYsIFVzZWRWZXJ0aWNhbE1h
cmdpbjo6Tm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdDsKIAotICAgICAgICBQcmVjb21wdXRlZE1h
cmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2VkVmVydGlj
YWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7Ci0gICAgICAgIExheW91dFVuaXQgbWFyZ2lu
QmVmb3JlSWdub3JpbmdDb2xsYXBzaW5nVGhyb3VnaChjb25zdCBCb3gmLCBVc2VkVmVydGljYWxN
YXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyk7CisgICAgICAgIHZpcnR1YWwgUHJlY29tcHV0ZWRN
YXJnaW5CZWZvcmUgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiwgVXNlZFZlcnRp
Y2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OworICAgICAgICBMYXlvdXRVbml0
IG1hcmdpbkJlZm9yZUlnbm9yaW5nQ29sbGFwc2luZ1Rocm91Z2goY29uc3QgQm94JiwgVXNlZFZl
cnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OwogICAgICAgICBzdGF0aWMg
dm9pZCB1cGRhdGVNYXJnaW5BZnRlckZvclByZXZpb3VzU2libGluZyhCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0JiwgY29uc3QgTWFyZ2luQ29sbGFwc2UmLCBjb25zdCBCb3gmKTsKIAogICAgICAgICBi
b29sIG1hcmdpbkJlZm9yZUNvbGxhcHNlc1dpdGhQYXJlbnRNYXJnaW5CZWZvcmUoY29uc3QgQm94
JikgY29uc3Q7CkBAIC0xMTgsMTAgKzEyNCwxMiBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgYm9v
bCBtYXJnaW5zQ29sbGFwc2VUaHJvdWdoKGNvbnN0IEJveCYpIGNvbnN0OwogCi0gICAgcHJpdmF0
ZToKLSAgICAgICAgZnJpZW5kIGNsYXNzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ7Ci0gICAgICAg
IE1hcmdpbkNvbGxhcHNlKGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmKTsKKyAgICBwcm90
ZWN0ZWQ6CisgICAgICAgIExheW91dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIHsgcmV0dXJuIG1fYmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5sYXlvdXRTdGF0ZSgpOyB9CisgICAgICAgIGNvbnN0IExheW91
dFN0YXRlJiBsYXlvdXRTdGF0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5sYXlvdXRTdGF0ZSgpOyB9CisgICAgICAgIGNvbnN0IEJsb2NrRm9ybWF0dGluZ0NvbnRl
eHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdD
b250ZXh0OyB9CiAKKyAgICBwcml2YXRlOgogICAgICAgICBlbnVtIGNsYXNzIE1hcmdpblR5cGUg
eyBCZWZvcmUsIEFmdGVyIH07CiAgICAgICAgIFVzZWRWZXJ0aWNhbE1hcmdpbjo6UG9zaXRpdmVB
bmROZWdhdGl2ZVBhaXI6OlZhbHVlcyBwb3NpdGl2ZU5lZ2F0aXZlVmFsdWVzKGNvbnN0IEJveCYs
IE1hcmdpblR5cGUpIGNvbnN0OwogICAgICAgICBVc2VkVmVydGljYWxNYXJnaW46OlBvc2l0aXZl
QW5kTmVnYXRpdmVQYWlyOjpWYWx1ZXMgcG9zaXRpdmVOZWdhdGl2ZU1hcmdpbkJlZm9yZShjb25z
dCBCb3gmLCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7CkBA
IC0xMzUsMjQgKzE0MywxOCBAQCBwcm90ZWN0ZWQ6CiAKICAgICAgICAgYm9vbCBoYXNDbGVhcmFu
Y2UoY29uc3QgQm94JikgY29uc3Q7CiAKLSAgICAgICAgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRl
KCkgeyByZXR1cm4gbV9ibG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KLSAg
ICAgICAgY29uc3QgTGF5b3V0U3RhdGUmIGxheW91dFN0YXRlKCkgY29uc3QgeyByZXR1cm4gbV9i
bG9ja0Zvcm1hdHRpbmdDb250ZXh0LmxheW91dFN0YXRlKCk7IH0KLSAgICAgICAgY29uc3QgQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dCYgZm9ybWF0dGluZ0NvbnRleHQoKSBjb25zdCB7IHJldHVybiBt
X2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ7IH0KLQogICAgICAgICBjb25zdCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0JiBtX2Jsb2NrRm9ybWF0dGluZ0NvbnRleHQ7CiAgICAgfTsKLSAgICBNYXJnaW5D
b2xsYXBzZSBtYXJnaW5Db2xsYXBzZSgpIGNvbnN0IHsgcmV0dXJuIE1hcmdpbkNvbGxhcHNlKCp0
aGlzKTsgfQorICAgIHZpcnR1YWwgY29uc3QgTWFyZ2luQ29sbGFwc2UmIG1hcmdpbkNvbGxhcHNl
KCkgY29uc3QgeyAgcmV0dXJuIG1fbWFyZ2luQ29sbGFwc2UuZ2V0KCk7IH0KIAogICAgIGNsYXNz
IFF1aXJrcyA6IHB1YmxpYyBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzIHsKICAgICBwdWJsaWM6
CiAgICAgICAgIFF1aXJrcyhjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0Jik7CiAKICAgICAg
ICAgYm9vbCBuZWVkc1N0cmV0Y2hpbmcoY29uc3QgQm94JikgY29uc3Q7Ci0gICAgICAgIExheW91
dFVuaXQgc3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYsIENvbnRlbnRIZWlnaHRBbmRN
YXJnaW4pOworICAgICAgICBMYXlvdXRVbml0IHN0cmV0Y2hlZEluRmxvd0hlaWdodChjb25zdCBC
b3gmLCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luKSBjb25zdDsKIAogICAgICAgICBib29sIHNob3Vs
ZElnbm9yZUNvbGxhcHNlZFF1aXJrTWFyZ2luKGNvbnN0IEJveCYpIGNvbnN0OwotICAgICAgICBi
b29sIHNob3VsZENvbGxhcHNlTWFyZ2luQmVmb3JlV2l0aFBhcmVudE1hcmdpbkJlZm9yZShjb25z
dCBCb3gmKSBjb25zdDsKLSAgICAgICAgYm9vbCBzaG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0
aFBhcmVudE1hcmdpbkFmdGVyKGNvbnN0IEJveCYpIGNvbnN0OwogCiAgICAgICAgIGNvbnN0IEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4g
ZG93bmNhc3Q8QmxvY2tGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJr
czo6Zm9ybWF0dGluZ0NvbnRleHQoKSk7IH0KICAgICAgICAgQmxvY2tGb3JtYXR0aW5nQ29udGV4
dDo6R2VvbWV0cnkgZ2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgp
Lmdlb21ldHJ5KCk7IH0KQEAgLTE3MCw3ICsxNzIsOSBAQCBwcm90ZWN0ZWQ6CiAgICAgUHJlY29t
cHV0ZWRNYXJnaW5CZWZvcmUgcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3QgQm94JiBsYXlv
dXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmVMaXN0LmdldCgm
bGF5b3V0Qm94KTsgfQogICAgIGJvb2wgaGFzUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUoY29uc3Qg
Qm94JiBsYXlvdXRCb3gpIGNvbnN0IHsgcmV0dXJuIG1fcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmVM
aXN0LmNvbnRhaW5zKCZsYXlvdXRCb3gpOyB9CiAjZW5kaWYKKwogcHJpdmF0ZToKKyAgICBVbmlx
dWVSZWY8TWFyZ2luQ29sbGFwc2U+IG1fbWFyZ2luQ29sbGFwc2U7CiAgICAgSGFzaE1hcDxjb25z
dCBCb3gqLCBQcmVjb21wdXRlZE1hcmdpbkJlZm9yZT4gbV9wcmVjb21wdXRlZE1hcmdpbkJlZm9y
ZUxpc3Q7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9CbG9ja0Zvcm1hdHRpbmdDb250ZXh0UXVpcmtzLmNwcApp
bmRleCBkNDhiMzU0MGE0ZTI4NGZiNWI4ODM1MDAxZTJkMGMyNTkwOGZlOGUyLi45N2Y2YTgwOGMy
YTE1NzkyMmYyNTYwMDkyZDI2YTFkMzhkMThiMWNmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL0Jsb2NrRm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvQmxvY2tGb3JtYXR0
aW5nQ29udGV4dFF1aXJrcy5jcHAKQEAgLTU2LDcgKzU2LDcgQEAgYm9vbCBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpRdWlya3M6Om5lZWRzU3RyZXRjaGluZyhjb25zdCBCb3gmIGxheW91dEJveCkg
Y29uc3QKICAgICByZXR1cm4gbGF5b3V0Qm94LnN0eWxlKCkubG9naWNhbEhlaWdodCgpLmlzQXV0
bygpOwogfQogCi1MYXlvdXRVbml0IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c3Ry
ZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYgbGF5b3V0Qm94LCBDb250ZW50SGVpZ2h0QW5k
TWFyZ2luIGNvbnRlbnRIZWlnaHRBbmRNYXJnaW4pCitMYXlvdXRVbml0IEJsb2NrRm9ybWF0dGlu
Z0NvbnRleHQ6OlF1aXJrczo6c3RyZXRjaGVkSW5GbG93SGVpZ2h0KGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBDb250ZW50SGVpZ2h0QW5kTWFyZ2luIGNvbnRlbnRIZWlnaHRBbmRNYXJnaW4pIGNvbnN0
CiB7CiAgICAgQVNTRVJUKG5lZWRzU3RyZXRjaGluZyhsYXlvdXRCb3gpKTsKICAgICBhdXRvJiBm
b3JtYXR0aW5nQ29udGV4dCA9IHRoaXMtPmZvcm1hdHRpbmdDb250ZXh0KCk7CkBAIC0xMDQsMTYg
KzEwNCw2IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzOjpzaG91bGRJZ25v
cmVDb2xsYXBzZWRRdWlya01hcmdpbihjb25zdCBCb3gmCiAgICAgcmV0dXJuIGxheW91dFN0YXRl
KCkuaW5RdWlya3NNb2RlKCkgJiYgaXNRdWlya0NvbnRhaW5lcihsYXlvdXRCb3gpOwogfQogCi1i
b29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6c2hvdWxkQ29sbGFwc2VNYXJnaW5C
ZWZvcmVXaXRoUGFyZW50TWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94KSBjb25zdAot
ewotICAgIHJldHVybiBsYXlvdXRTdGF0ZSgpLmluUXVpcmtzTW9kZSgpICYmIGxheW91dEJveC5z
dHlsZSgpLmhhc01hcmdpbkJlZm9yZVF1aXJrKCkgJiYgaXNRdWlya0NvbnRhaW5lcihsYXlvdXRC
b3guY29udGFpbmluZ0Jsb2NrKCkpOwotfQotCi1ib29sIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OlF1aXJrczo6c2hvdWxkQ29sbGFwc2VNYXJnaW5BZnRlcldpdGhQYXJlbnRNYXJnaW5BZnRlcihj
b25zdCBCb3gmIGxheW91dEJveCkgY29uc3QKLXsKLSAgICByZXR1cm4gbGF5b3V0U3RhdGUoKS5p
blF1aXJrc01vZGUoKSAmJiBsYXlvdXRCb3guc3R5bGUoKS5oYXNNYXJnaW5BZnRlclF1aXJrKCkg
JiYgaXNRdWlya0NvbnRhaW5lcihsYXlvdXRCb3guY29udGFpbmluZ0Jsb2NrKCkpOwotfQotCiB9
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3Jt
YXR0aW5nL0Jsb2NrTWFyZ2luQ29sbGFwc2UuY3BwCmluZGV4IDcxYzc2YTU2MzFiODgxODhlZWRi
ZGY3OWNhMWZjZGNlZjYyZTIxOWMuLjEzZmQwNGJiNTA1MGE5MTdlMTM0MDE4NGIxNjkzYmFhMmIz
MTg3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcv
QmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2Nr
Zm9ybWF0dGluZy9CbG9ja01hcmdpbkNvbGxhcHNlLmNwcApAQCAtMTE2LDkgKzExNiw2IEBAIGJv
b2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6Om1hcmdpbkJlZm9yZUNv
bGxhcHNlc1dpdGhQYXJlbnRNYXJnCiAgICAgLy8gaHR0cHM6Ly93d3cudzMub3JnL1RSL0NTUzIx
L2JveC5odG1sI2NvbGxhcHNpbmctbWFyZ2lucwogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9j
a0xldmVsQm94KCkpOwogCi0gICAgaWYgKGZvcm1hdHRpbmdDb250ZXh0KCkucXVpcmtzKCkuc2hv
dWxkQ29sbGFwc2VNYXJnaW5CZWZvcmVXaXRoUGFyZW50TWFyZ2luQmVmb3JlKGxheW91dEJveCkp
Ci0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgLy8gTWFyZ2lucyBiZXR3ZWVuIGEgZmxvYXRl
ZCBib3ggYW5kIGFueSBvdGhlciBib3ggZG8gbm90IGNvbGxhcHNlLgogICAgIGlmIChsYXlvdXRC
b3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwpAQCAtMjU0
LDkgKzI1MSw2IEBAIGJvb2wgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2luQ29sbGFwc2U6
Om1hcmdpbkFmdGVyQ29sbGFwc2VzV2l0aFBhcmVudE1hcmdpCiB7CiAgICAgQVNTRVJUKGxheW91
dEJveC5pc0Jsb2NrTGV2ZWxCb3goKSk7CiAKLSAgICBpZiAoZm9ybWF0dGluZ0NvbnRleHQoKS5x
dWlya3MoKS5zaG91bGRDb2xsYXBzZU1hcmdpbkFmdGVyV2l0aFBhcmVudE1hcmdpbkFmdGVyKGxh
eW91dEJveCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCiAgICAgLy8gTWFyZ2lucyBiZXR3ZWVu
IGEgZmxvYXRlZCBib3ggYW5kIGFueSBvdGhlciBib3ggZG8gbm90IGNvbGxhcHNlLgogICAgIGlm
IChsYXlvdXRCb3guaXNGbG9hdGluZ1Bvc2l0aW9uZWQoKSkKICAgICAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtNTcwLDEzICs1NjQsMTMgQEAgVXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5l
Z2F0aXZlUGFpcjo6VmFsdWVzIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmcKICAgICByZXR1
cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5lZ2F0aXZlTWFyZ2luKGxhc3RDaGlsZENvbGxhcHNlZE1h
cmdpbkFmdGVyKCksIG5vbkNvbGxhcHNlZEFmdGVyKTsKIH0KIAotTGF5b3V0VW5pdCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xs
YXBzaW5nVGhyb3VnaChjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQorTGF5b3V0VW5pdCBCbG9ja0Zv
cm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6bWFyZ2luQmVmb3JlSWdub3JpbmdDb2xs
YXBzaW5nVGhyb3VnaChjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VS
VChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogICAgIHJldHVybiBtYXJnaW5WYWx1ZShw
b3NpdGl2ZU5lZ2F0aXZlTWFyZ2luQmVmb3JlKGxheW91dEJveCwgbm9uQ29sbGFwc2VkVmFsdWVz
KSkudmFsdWVPcihub25Db2xsYXBzZWRWYWx1ZXMuYmVmb3JlKTsKIH0KIAotVXNlZFZlcnRpY2Fs
TWFyZ2luIEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb2xsYXBzZWRW
ZXJ0aWNhbFZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpO
b25Db2xsYXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKQorVXNlZFZlcnRpY2FsTWFyZ2lu
IEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlOjpjb2xsYXBzZWRWZXJ0aWNh
bFZhbHVlcyhjb25zdCBCb3gmIGxheW91dEJveCwgVXNlZFZlcnRpY2FsTWFyZ2luOjpOb25Db2xs
YXBzZWRWYWx1ZXMgbm9uQ29sbGFwc2VkVmFsdWVzKSBjb25zdAogewogICAgIEFTU0VSVChsYXlv
dXRCb3guaXNCbG9ja0xldmVsQm94KCkpOwogICAgIC8vIDEuIEdldCBtaW4vbWF4IG1hcmdpbiB0
b3AgdmFsdWVzIGZyb20gdGhlIGZpcnN0IGluLWZsb3cgY2hpbGQgaWYgd2UgYXJlIGNvbGxhcHNp
bmcgbWFyZ2luIHRvcCB3aXRoIGl0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy9QcmVjb21wdXRlZEJsb2NrTWFyZ2lu
Q29sbGFwc2UuY3BwCmluZGV4IGRlZmIzZDU1NGZlNjhkZTQyNzMxZmY4ZTJkNGIyMGVhYmY2NTll
YzIuLmE3MDk2ZDQyYmZiZGYyY2RhNzU1MjNkMzRjODlkZDA3ZmU0OWEwZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvUHJlY29tcHV0ZWRCbG9ja01h
cmdpbkNvbGxhcHNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0
aW5nL1ByZWNvbXB1dGVkQmxvY2tNYXJnaW5Db2xsYXBzZS5jcHAKQEAgLTgzLDcgKzgzLDcgQEAg
VXNlZFZlcnRpY2FsTWFyZ2luOjpQb3NpdGl2ZUFuZE5lZ2F0aXZlUGFpcjo6VmFsdWVzIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmcKICAgICByZXR1cm4gY29tcHV0ZWRQb3NpdGl2ZUFuZE5l
Z2F0aXZlTWFyZ2luKGNvbGxhcHNlZE1hcmdpbkJlZm9yZSwgbm9uQ29sbGFwc2VkQmVmb3JlKTsK
IH0KIAotUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFy
Z2luQ29sbGFwc2U6OnByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB1c2VkTm9uQ29sbGFwc2Vk
TWFyZ2luKQorUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6
TWFyZ2luQ29sbGFwc2U6OnByZWNvbXB1dGVkTWFyZ2luQmVmb3JlKGNvbnN0IEJveCYgbGF5b3V0
Qm94LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyB1c2VkTm9uQ29sbGFw
c2VkTWFyZ2luKSBjb25zdAogewogICAgIEFTU0VSVChsYXlvdXRCb3guaXNCbG9ja0xldmVsQm94
KCkpOwogICAgIC8vIERvbid0IHByZS1jb21wdXRlIHZlcnRpY2FsIG1hcmdpbnMgZm9yIG91dCBv
ZiBmbG93IGJveGVzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9y
bWF0dGluZy90YWJsZWNlbGwvVGFibGVDZWxsQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5oIGIvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZWNlbGwvVGFibGVDZWxsQmxv
Y2tGb3JtYXR0aW5nQ29udGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNhNjI4M2Q2NDc5ZmQ5ZjQ0ZjM2MjU5
ZmFjNjU3ZjUzNWY4YzVhNGUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlv
dXQvYmxvY2tmb3JtYXR0aW5nL3RhYmxlY2VsbC9UYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250
ZXh0LmgKQEAgLTAsMCArMSw3NyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMCBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKExBWU9VVF9GT1JNQVRUSU5HX0NPTlRFWFQpCisKKyNpbmNsdWRlICJCbG9ja0Zvcm1h
dHRpbmdDb250ZXh0LmgiCisjaW5jbHVkZSA8d3RmL0lzb01hbGxvY0lubGluZXMuaD4KKworbmFt
ZXNwYWNlIFdlYkNvcmUgeworbmFtZXNwYWNlIExheW91dCB7CisKKy8vIFRoaXMgY2xhc3MgaW1w
bGVtZW50cyB0aGUgc3BlY2lhbCBibG9jayBmb3JtYXR0aW5nIGNvbnRleHQgbGF5b3V0IGxvZ2lj
IGZvciB0aGUgdGFibGUgY2VsbCBib3ggKDx0ZD4pLgorY2xhc3MgVGFibGVDZWxsQmxvY2tGb3Jt
YXR0aW5nQ29udGV4dCBmaW5hbCA6IHB1YmxpYyBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0IHsKKyAg
ICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lOTElORShUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdD
b250ZXh0KTsKK3B1YmxpYzoKKyAgICBUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0KGNv
bnN0IENvbnRhaW5lckJveCYgY2VsbEJveCwgQmxvY2tGb3JtYXR0aW5nU3RhdGUmKTsKKworcHJp
dmF0ZToKKyAgICBjbGFzcyBRdWlya01hcmdpbkNvbGxhcHNlIGZpbmFsIDogcHVibGljIEJsb2Nr
Rm9ybWF0dGluZ0NvbnRleHQ6Ok1hcmdpbkNvbGxhcHNlIHsKKyAgICAgICAgV1RGX01BS0VfSVNP
X0FMTE9DQVRFRF9JTkxJTkUoUXVpcmtNYXJnaW5Db2xsYXBzZSk7CisgICAgcHVibGljOgorICAg
ICAgICBRdWlya01hcmdpbkNvbGxhcHNlKGNvbnN0IFRhYmxlQ2VsbEJsb2NrRm9ybWF0dGluZ0Nv
bnRleHQmLCBjb25zdCBDb250YWluZXJCb3gmIHJvb3RDZWxsQm94KTsKKworICAgICAgICBVc2Vk
VmVydGljYWxNYXJnaW4gY29sbGFwc2VkVmVydGljYWxWYWx1ZXMoY29uc3QgQm94JiwgVXNlZFZl
cnRpY2FsTWFyZ2luOjpOb25Db2xsYXBzZWRWYWx1ZXMpIGNvbnN0OworICAgICAgICBQcmVjb21w
dXRlZE1hcmdpbkJlZm9yZSBwcmVjb21wdXRlZE1hcmdpbkJlZm9yZShjb25zdCBCb3gmLCBVc2Vk
VmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3Q7CisKKyAgICBwcml2YXRl
OgorICAgICAgICBjb25zdCBDb250YWluZXJCb3gmIG1fcm9vdENlbGxCb3g7CisgICAgfTsKKyAg
ICBjb25zdCBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZSYgbWFyZ2luQ29s
bGFwc2UoKSBjb25zdCB7IHJldHVybiBtX3F1aXJrTWFyZ2luQ29sbGFwc2UuZ2V0KCk7IH0KKwor
cHJpdmF0ZToKKyAgICBVbmlxdWVSZWY8UXVpcmtNYXJnaW5Db2xsYXBzZT4gbV9xdWlya01hcmdp
bkNvbGxhcHNlOworfTsKKworaW5saW5lIFRhYmxlQ2VsbEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6
OlRhYmxlQ2VsbEJsb2NrRm9ybWF0dGluZ0NvbnRleHQoY29uc3QgQ29udGFpbmVyQm94JiBjZWxs
Qm94LCBCbG9ja0Zvcm1hdHRpbmdTdGF0ZSYgZm9ybWF0dGluZ1N0YXRlKQorICAgIDogQmxvY2tG
b3JtYXR0aW5nQ29udGV4dChjZWxsQm94LCBmb3JtYXR0aW5nU3RhdGUpCisgICAgLCBtX3F1aXJr
TWFyZ2luQ29sbGFwc2UobWFrZVVuaXF1ZVJlZjxRdWlya01hcmdpbkNvbGxhcHNlPigqdGhpcywg
Y2VsbEJveCkpCit7Cit9CisKK2lubGluZSBUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0
OjpRdWlya01hcmdpbkNvbGxhcHNlOjpRdWlya01hcmdpbkNvbGxhcHNlKGNvbnN0IFRhYmxlQ2Vs
bEJsb2NrRm9ybWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0LCBjb25zdCBDb250YWlu
ZXJCb3gmIHJvb3RDZWxsQm94KQorICAgIDogQmxvY2tGb3JtYXR0aW5nQ29udGV4dDo6TWFyZ2lu
Q29sbGFwc2UoZm9ybWF0dGluZ0NvbnRleHQpCisgICAgLCBtX3Jvb3RDZWxsQm94KHJvb3RDZWxs
Qm94KQoreworfQorCit9Cit9CisKK1NQRUNJQUxJWkVfVFlQRV9UUkFJVFNfTEFZT1VUX0ZPUk1B
VFRJTkdfQ09OVEVYVChUYWJsZUNlbGxCbG9ja0Zvcm1hdHRpbmdDb250ZXh0LCBpc1RhYmxlQ2Vs
bEJsb2NrRm9ybWF0dGluZ0NvbnRleHQoKSkKKworI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9sYXlvdXQvYmxvY2tmb3JtYXR0aW5nL3RhYmxlY2VsbC9UYWJsZUNlbGxCbG9ja1F1
aXJrTWFyZ2luQ29sbGFwc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0
dGluZy90YWJsZWNlbGwvVGFibGVDZWxsQmxvY2tRdWlya01hcmdpbkNvbGxhcHNlLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NmZiMGUyZjI0MzQ5ZjI1NmJhOTQ1OTM2YjEwOWU0NTE2YzI5MzhlCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZWNl
bGwvVGFibGVDZWxsQmxvY2tRdWlya01hcmdpbkNvbGxhcHNlLmNwcApAQCAtMCwwICsxLDc3IEBA
CisvKgorICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1Ig
SU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRI
RSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBB
IFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElS
RUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09O
U0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VS
RU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBE
QVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBP
VEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBT
T0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorI2luY2x1ZGUgIlRhYmxlQ2VsbEJs
b2NrRm9ybWF0dGluZ0NvbnRleHQuaCIKKworI2lmIEVOQUJMRShMQVlPVVRfRk9STUFUVElOR19D
T05URVhUKQorCituYW1lc3BhY2UgV2ViQ29yZSB7CituYW1lc3BhY2UgTGF5b3V0IHsKKworVXNl
ZFZlcnRpY2FsTWFyZ2luIFRhYmxlQ2VsbEJsb2NrRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrTWFy
Z2luQ29sbGFwc2U6OmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKGNvbnN0IEJveCYgbGF5b3V0Qm94
LCBVc2VkVmVydGljYWxNYXJnaW46Ok5vbkNvbGxhcHNlZFZhbHVlcyBub25Db2xsYXBzZWRWYWx1
ZXMpIGNvbnN0Cit7CisgICAgYXV0byB1c2VkVmVydGljYWxNYXJnaW4gPSBCbG9ja0Zvcm1hdHRp
bmdDb250ZXh0OjpNYXJnaW5Db2xsYXBzZTo6Y29sbGFwc2VkVmVydGljYWxWYWx1ZXMobGF5b3V0
Qm94LCBub25Db2xsYXBzZWRWYWx1ZXMpOworICAgIGlmICghbGF5b3V0U3RhdGUoKS5pblF1aXJr
c01vZGUoKSkKKyAgICAgICAgcmV0dXJuIHVzZWRWZXJ0aWNhbE1hcmdpbjsKKyAgICBpZiAoIWxh
eW91dEJveC5pc0luRmxvdygpKQorICAgICAgICByZXR1cm4gdXNlZFZlcnRpY2FsTWFyZ2luOwor
ICAgIC8vIEluIHF1aXJrcyBtb2RlLCBpbi1mbG93IGNvbnRlbnQncyBxdWlyayBtYXJnaW4gaXMg
aWdub3JlZCB3aGVuIGl0IGlzIGFkam9pbmluZyB3aXRoIHRoZSBjZWxsIGJveCdzIChub24tZXhp
c3RlbnQpIG1hcmdpbiAobm9uLWV4aXN0ZW50IGFzIGludGVybmFsIHRhYmxlIGJveGVzIGRvIG5v
dCBoYXZlIG1hcmdpbnMpLgorICAgIC8vIDx0ZD48ZGl2PjxwPnAncyBxdWlyayBtYXJnaW4gaXMg
aWdub3JlZDwvZGl2PjwvdGQ+CisgICAgYXV0byBpc0ZpcnN0SW5GbG93Q2hpbGQgPSBtX3Jvb3RD
ZWxsQm94LmZpcnN0SW5GbG93Q2hpbGQoKSA9PSAmbGF5b3V0Qm94OworICAgIGF1dG8gaXNNYXJn
aW5CZWZvcmVRdWlyayA9IHVzZWRWZXJ0aWNhbE1hcmdpbi5wb3NpdGl2ZUFuZE5lZ2F0aXZlVmFs
dWVzLmJlZm9yZS5pc1F1aXJrOworICAgIGlmIChpc0ZpcnN0SW5GbG93Q2hpbGQgJiYgaXNNYXJn
aW5CZWZvcmVRdWlyaykgeworICAgICAgICB1c2VkVmVydGljYWxNYXJnaW4uY29sbGFwc2VkVmFs
dWVzLmJlZm9yZSA9IHsgfTsKKyAgICAgICAgdXNlZFZlcnRpY2FsTWFyZ2luLm5vbkNvbGxhcHNl
ZFZhbHVlcy5iZWZvcmUgPSB7IH07CisgICAgfQorICAgIGF1dG8gaXNMYXN0SW5GbG93Q2hpbGQg
PSBtX3Jvb3RDZWxsQm94Lmxhc3RJbkZsb3dDaGlsZCgpID09ICZsYXlvdXRCb3g7CisgICAgYXV0
byBpc01hcmdpbkFmdGVyUXVpcmsgPSB1c2VkVmVydGljYWxNYXJnaW4ucG9zaXRpdmVBbmROZWdh
dGl2ZVZhbHVlcy5hZnRlci5pc1F1aXJrOworICAgIGlmIChpc0xhc3RJbkZsb3dDaGlsZCAmJiBp
c01hcmdpbkFmdGVyUXVpcmspIHsKKyAgICAgICAgdXNlZFZlcnRpY2FsTWFyZ2luLmNvbGxhcHNl
ZFZhbHVlcy5hZnRlciA9IHsgfTsKKyAgICAgICAgdXNlZFZlcnRpY2FsTWFyZ2luLm5vbkNvbGxh
cHNlZFZhbHVlcy5hZnRlciA9IHsgfTsKKyAgICB9CisgICAgcmV0dXJuIHVzZWRWZXJ0aWNhbE1h
cmdpbjsKK30KKworUHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgVGFibGVDZWxsQmxvY2tGb3JtYXR0
aW5nQ29udGV4dDo6UXVpcmtNYXJnaW5Db2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUo
Y29uc3QgQm94JiBsYXlvdXRCb3gsIFVzZWRWZXJ0aWNhbE1hcmdpbjo6Tm9uQ29sbGFwc2VkVmFs
dWVzIG5vbkNvbGxhcHNlZFZhbHVlcykgY29uc3QKK3sKKyAgICBBU1NFUlQobGF5b3V0Qm94Lmlz
SW5GbG93KCkgfHwgbGF5b3V0Qm94LmlzRmxvYXRpbmdQb3NpdGlvbmVkKCkpOworICAgIGF1dG8g
cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUgPSBCbG9ja0Zvcm1hdHRpbmdDb250ZXh0OjpNYXJnaW5D
b2xsYXBzZTo6cHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUobGF5b3V0Qm94LCBub25Db2xsYXBzZWRW
YWx1ZXMpOworICAgIGlmICghbGF5b3V0U3RhdGUoKS5pblF1aXJrc01vZGUoKSkKKyAgICAgICAg
cmV0dXJuIHByZWNvbXB1dGVkTWFyZ2luQmVmb3JlOworICAgIC8vIFNlZSBRdWlya01hcmdpbkNv
bGxhcHNlOjpjb2xsYXBzZWRWZXJ0aWNhbFZhbHVlcy4KKyAgICBhdXRvIGlzRmlyc3RJbkZsb3dD
aGlsZCA9IG1fcm9vdENlbGxCb3guZmlyc3RJbkZsb3dDaGlsZCgpID09ICZsYXlvdXRCb3g7Cisg
ICAgYXV0byBpc01hcmdpbkJlZm9yZVF1aXJrID0gcHJlY29tcHV0ZWRNYXJnaW5CZWZvcmUucG9z
aXRpdmVBbmROZWdhdGl2ZU1hcmdpbkJlZm9yZS5pc1F1aXJrOworICAgIGlmIChpc0ZpcnN0SW5G
bG93Q2hpbGQgJiYgaXNNYXJnaW5CZWZvcmVRdWlyaykgeworICAgICAgICBwcmVjb21wdXRlZE1h
cmdpbkJlZm9yZS5ub25Db2xsYXBzZWRWYWx1ZSA9IHsgfTsKKyAgICAgICAgcHJlY29tcHV0ZWRN
YXJnaW5CZWZvcmUuY29sbGFwc2VkVmFsdWUgPSB7IH07CisgICAgfQorICAgIHJldHVybiBwcmVj
b21wdXRlZE1hcmdpbkJlZm9yZTsKK30KKworCit9Cit9CisjZW5kaWYKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC9ibG9ja2Zvcm1hdHRpbmcvdGFibGV3cmFwcGVyL1RhYmxlV3Jh
cHBlckJsb2NrRm9ybWF0dGluZ0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0L2Js
b2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5nQ29u
dGV4dC5jcHAKaW5kZXggYTZkMTk5MmEyNWFlNDA5ZmQ0Mzk2YWRhODc0YWIxYzAxY2U4NTEzMi4u
MzgyYjFhZTc5Mzg2MGMwYjI0MzRjOWI5MWQ2NmY1ZmQ5MWFmNTFjMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbGF5b3V0L2Jsb2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFw
cGVyQmxvY2tGb3JtYXR0aW5nQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbGF5b3V0
L2Jsb2NrZm9ybWF0dGluZy90YWJsZXdyYXBwZXIvVGFibGVXcmFwcGVyQmxvY2tGb3JtYXR0aW5n
Q29udGV4dC5jcHAKQEAgLTIxOSw3ICsyMTksNyBAQCB2b2lkIFRhYmxlV3JhcHBlckJsb2NrRm9y
bWF0dGluZ0NvbnRleHQ6OmNvbXB1dGVIZWlnaHRBbmRNYXJnaW5Gb3JUYWJsZUJveChjb25zdAog
ICAgIC8vIGFscmVhZHkgYmVlbiB0YWtlbiBpbnRvIGFjY291bnQgZHVyaW5nIHRoZSBURkMgbGF5
b3V0LgogICAgIGF1dG8gaGVpZ2h0QW5kTWFyZ2luID0gZ2VvbWV0cnkoKS5pbkZsb3dIZWlnaHRB
bmRNYXJnaW4odGFibGVCb3gsIGNvbnN0cmFpbnRzLmhvcml6b250YWwsIHsgcXVpcmtzKCkub3Zl
cnJpZGVUYWJsZUhlaWdodCh0YWJsZUJveCkgfSk7CiAKLSAgICBhdXRvIG1hcmdpbkNvbGxhcHNl
ID0gdGhpcy0+bWFyZ2luQ29sbGFwc2UoKTsKKyAgICBhdXRvJiBtYXJnaW5Db2xsYXBzZSA9IHRo
aXMtPm1hcmdpbkNvbGxhcHNlKCk7CiAgICAgYXV0byB2ZXJ0aWNhbE1hcmdpbiA9IG1hcmdpbkNv
bGxhcHNlLmNvbGxhcHNlZFZlcnRpY2FsVmFsdWVzKHRhYmxlQm94LCBoZWlnaHRBbmRNYXJnaW4u
bm9uQ29sbGFwc2VkTWFyZ2luKTsKICAgICAvLyBDYWNoZSB0aGUgY29tcHV0ZWQgcG9zaXRpdmUg
YW5kIG5lZ2F0aXZlIG1hcmdpbiB2YWx1ZSBwYWlyLgogICAgIGZvcm1hdHRpbmdTdGF0ZSgpLnNl
dFVzZWRWZXJ0aWNhbE1hcmdpbih0YWJsZUJveCwgdmVydGljYWxNYXJnaW4pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdD
b250ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9y
bWF0dGluZ0NvbnRleHQuaAppbmRleCAzNDcyNmE4YWZiZTRkMDg4ZDVjMDYyMTQxZTYxZTc2NzNi
YTljZmYzLi45ZTMyY2FiMTE5ZTdjMDczMmZjYzk1NWI3NzIxMmU2MGVjOTFkZmFjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9ybWF0dGlu
Z0NvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1Rh
YmxlRm9ybWF0dGluZ0NvbnRleHQuaApAQCAtODAsMTcgKzgwLDYgQEAgcHJpdmF0ZToKICAgICB9
OwogICAgIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6Okdlb21ldHJ5IGdlb21ldHJ5KCkgY29uc3Qg
eyByZXR1cm4gR2VvbWV0cnkoKnRoaXMsIGZvcm1hdHRpbmdTdGF0ZSgpLnRhYmxlR3JpZCgpKTsg
fQogCi0gICAgY2xhc3MgUXVpcmtzIDogcHVibGljIEZvcm1hdHRpbmdDb250ZXh0OjpRdWlya3Mg
ewotICAgIHB1YmxpYzoKLSAgICAgICAgUXVpcmtzKGNvbnN0IFRhYmxlRm9ybWF0dGluZ0NvbnRl
eHQmKTsKLQotICAgICAgICBib29sIHNob3VsZElnbm9yZUNoaWxkQ29udGVudFZlcnRpY2FsTWFy
Z2luKGNvbnN0IENvbnRhaW5lckJveCYpIGNvbnN0OwotCi0gICAgICAgIGNvbnN0IFRhYmxlRm9y
bWF0dGluZ0NvbnRleHQmIGZvcm1hdHRpbmdDb250ZXh0KCkgY29uc3QgeyByZXR1cm4gZG93bmNh
c3Q8VGFibGVGb3JtYXR0aW5nQ29udGV4dD4oRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6Zm9y
bWF0dGluZ0NvbnRleHQoKSk7IH0KLSAgICAgICAgVGFibGVGb3JtYXR0aW5nQ29udGV4dDo6R2Vv
bWV0cnkgZ2VvbWV0cnkoKSBjb25zdCB7IHJldHVybiBmb3JtYXR0aW5nQ29udGV4dCgpLmdlb21l
dHJ5KCk7IH0KLSAgICB9OwotICAgIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrcyBxdWly
a3MoKSBjb25zdCB7IHJldHVybiBRdWlya3MoKnRoaXMpOyB9Ci0KICAgICBUYWJsZUZvcm1hdHRp
bmdDb250ZXh0OjpUYWJsZUxheW91dCB0YWJsZUxheW91dCgpIGNvbnN0IHsgcmV0dXJuIFRhYmxl
TGF5b3V0KCp0aGlzLCBmb3JtYXR0aW5nU3RhdGUoKS50YWJsZUdyaWQoKSk7IH0KIAogICAgIElu
dHJpbnNpY1dpZHRoQ29uc3RyYWludHMgY29tcHV0ZWRJbnRyaW5zaWNXaWR0aENvbnN0cmFpbnRz
KCkgb3ZlcnJpZGU7CkBAIC0xMTIsMTEgKzEwMSw2IEBAIGlubGluZSBUYWJsZUZvcm1hdHRpbmdD
b250ZXh0OjpHZW9tZXRyeTo6R2VvbWV0cnkoY29uc3QgVGFibGVGb3JtYXR0aW5nQ29udGV4dCYK
IHsKIH0KIAotaW5saW5lIFRhYmxlRm9ybWF0dGluZ0NvbnRleHQ6OlF1aXJrczo6UXVpcmtzKGNv
bnN0IFRhYmxlRm9ybWF0dGluZ0NvbnRleHQmIHRhYmxlRm9ybWF0dGluZ0NvbnRleHQpCi0gICAg
OiBGb3JtYXR0aW5nQ29udGV4dDo6UXVpcmtzKHRhYmxlRm9ybWF0dGluZ0NvbnRleHQpCi17Ci19
Ci0KIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbGF5b3V0L3RhYmxlZm9ybWF0
dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3BwIGIvU291cmNlL1dlYkNvcmUv
bGF5b3V0L3RhYmxlZm9ybWF0dGluZy9UYWJsZUZvcm1hdHRpbmdDb250ZXh0R2VvbWV0cnkuY3Bw
CmluZGV4IGRlYTFmMTY3NmIzODMxMzYyYWY2ZWNlZWE2NDQ0N2Q5ZDNjODk0NTAuLjFkNTI2MDNj
ZjUzZDM3YWZkZGNkNWE2MjdlNzNjNDVmYTc5MWQ1Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dEdlb21ldHJ5
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxlRm9y
bWF0dGluZ0NvbnRleHRHZW9tZXRyeS5jcHAKQEAgLTQxLDIxICs0MSw3IEBAIG5hbWVzcGFjZSBM
YXlvdXQgewogTGF5b3V0VW5pdCBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y2Vs
bEhlaWdoKGNvbnN0IENvbnRhaW5lckJveCYgY2VsbEJveCkgY29uc3QKIHsKICAgICBBU1NFUlQo
Y2VsbEJveC5pc0luRmxvdygpKTsKLSAgICBhdXRvIGNvbnRlbnRIZWlnaHQgPSBMYXlvdXRVbml0
IHsgfTsKLSAgICBpZiAoZm9ybWF0dGluZ0NvbnRleHQoKS5xdWlya3MoKS5zaG91bGRJZ25vcmVD
aGlsZENvbnRlbnRWZXJ0aWNhbE1hcmdpbihjZWxsQm94KSkgewotICAgICAgICBBU1NFUlQoY2Vs
bEJveC5maXJzdEluRmxvd0NoaWxkKCkpOwotICAgICAgICBhdXRvIGZvcm1hdHRpbmdDb250ZXh0
ID0gdGhpcy0+Zm9ybWF0dGluZ0NvbnRleHQoKTsKLSAgICAgICAgYXV0byYgZmlyc3RJbkZsb3dD
aGlsZCA9ICpjZWxsQm94LmZpcnN0SW5GbG93Q2hpbGQoKTsKLSAgICAgICAgYXV0byYgbGFzdElu
Rmxvd0NoaWxkID0gKmNlbGxCb3gubGFzdEluRmxvd0NoaWxkKCk7Ci0gICAgICAgIGF1dG8mIGZp
cnN0SW5GbG93Q2hpbGRHZW9tZXRyeSA9IGZvcm1hdHRpbmdDb250ZXh0Lmdlb21ldHJ5Rm9yQm94
KGZpcnN0SW5GbG93Q2hpbGQsIEVzY2FwZVJlYXNvbjo6TmVlZHNHZW9tZXRyeUZyb21Fc3RhYmxp
c2hlZEZvcm1hdHRpbmdDb250ZXh0KTsKLSAgICAgICAgYXV0byYgbGFzdEluRmxvd0NoaWxkR2Vv
bWV0cnkgPSBmb3JtYXR0aW5nQ29udGV4dC5nZW9tZXRyeUZvckJveChsYXN0SW5GbG93Q2hpbGQs
IEVzY2FwZVJlYXNvbjo6TmVlZHNHZW9tZXRyeUZyb21Fc3RhYmxpc2hlZEZvcm1hdHRpbmdDb250
ZXh0KTsKLQotICAgICAgICBhdXRvIHRvcCA9IGZpcnN0SW5GbG93Q2hpbGQuc3R5bGUoKS5oYXNN
YXJnaW5CZWZvcmVRdWlyaygpID8gZmlyc3RJbkZsb3dDaGlsZEdlb21ldHJ5LnRvcCgpIDogZmly
c3RJbkZsb3dDaGlsZEdlb21ldHJ5LnJlY3RXaXRoTWFyZ2luKCkudG9wKCk7Ci0gICAgICAgIGF1
dG8gYm90dG9tID0gbGFzdEluRmxvd0NoaWxkLnN0eWxlKCkuaGFzTWFyZ2luQWZ0ZXJRdWlyaygp
ID8gbGFzdEluRmxvd0NoaWxkR2VvbWV0cnkuYm90dG9tKCkgOiBsYXN0SW5GbG93Q2hpbGRHZW9t
ZXRyeS5yZWN0V2l0aE1hcmdpbigpLmJvdHRvbSgpOwotICAgICAgICBjb250ZW50SGVpZ2h0ID0g
Ym90dG9tIC0gdG9wOwotICAgIH0gZWxzZQotICAgICAgICBjb250ZW50SGVpZ2h0ID0gY29udGVu
dEhlaWdodEZvckZvcm1hdHRpbmdDb250ZXh0Um9vdChjZWxsQm94KTsKLSAgICByZXR1cm4gc3Rk
OjptYXgoY29tcHV0ZWRIZWlnaHQoY2VsbEJveCkudmFsdWVPcigwX2x1KSwgY29udGVudEhlaWdo
dCk7CisgICAgcmV0dXJuIHN0ZDo6bWF4KGNvbXB1dGVkSGVpZ2h0KGNlbGxCb3gpLnZhbHVlT3Io
MF9sdSksIGNvbnRlbnRIZWlnaHRGb3JGb3JtYXR0aW5nQ29udGV4dFJvb3QoY2VsbEJveCkpOwog
fQogCiBFZGdlcyBUYWJsZUZvcm1hdHRpbmdDb250ZXh0OjpHZW9tZXRyeTo6Y29tcHV0ZWRDZWxs
Qm9yZGVyKGNvbnN0IFRhYmxlR3JpZDo6Q2VsbCYgY2VsbCkgY29uc3QKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2xheW91dC90YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4
dFF1aXJrcy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sYXlvdXQvdGFibGVmb3JtYXR0aW5nL1RhYmxl
Rm9ybWF0dGluZ0NvbnRleHRRdWlya3MuY3BwCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCBiNjRhNjJkZmYwNzE0YWQ2OGZhNzg5Njg1ZmJiYjIxMzc0ZmYxNTMyLi4wMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJDb3JlL2xheW91dC90
YWJsZWZvcm1hdHRpbmcvVGFibGVGb3JtYXR0aW5nQ29udGV4dFF1aXJrcy5jcHAKKysrIC9kZXYv
bnVsbApAQCAtMSw1NyArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDIwIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwot
ICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0g
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgot
I2luY2x1ZGUgIlRhYmxlRm9ybWF0dGluZ0NvbnRleHQuaCIKLQotI2lmIEVOQUJMRShMQVlPVVRf
Rk9STUFUVElOR19DT05URVhUKQotCi0jaW5jbHVkZSAiTGF5b3V0Qm94LmgiCi0jaW5jbHVkZSAi
TGF5b3V0Q29udGFpbmVyQm94LmgiCi0jaW5jbHVkZSAiTGF5b3V0U3RhdGUuaCIKLQotbmFtZXNw
YWNlIFdlYkNvcmUgewotbmFtZXNwYWNlIExheW91dCB7Ci0KLWJvb2wgVGFibGVGb3JtYXR0aW5n
Q29udGV4dDo6UXVpcmtzOjpzaG91bGRJZ25vcmVDaGlsZENvbnRlbnRWZXJ0aWNhbE1hcmdpbihj
b25zdCBDb250YWluZXJCb3gmIGNlbGxCb3gpIGNvbnN0Ci17Ci0gICAgLy8gTm9ybWFsbHkgQkZD
IHJvb3QgY29udGVudCBoZWlnaHQgdGFrZXMgdGhlIG1hcmdpbiBib3ggb2YgdGhlIGNoaWxkIGNv
bnRlbnQgYXMgdmVydGljYWwgbWFyZ2lucyBkb24ndCBjb2xsYXBzZSB3aXRoIEJGQyByb290cywK
LSAgICAvLyBidXQgdGFibGUgY2VsbCBib3hlcyBkbyBjb2xsYXBzZSB0aGVpciAobm9uLWV4aXN0
aW5nKSBtYXJnaW5zIHdpdGggY2hpbGQgcXVpcmsgbWFyZ2lucyAoc28gbXVjaCBxdWlyayksIHNv
IGhlcmUgd2UgY2hlY2sKLSAgICAvLyBpZiB0aGUgY29udGVudCBoZWlnaHQgc2hvdWxkIGluY2x1
ZGUgbWFyZ2lucyBvciBub3QuCi0gICAgLy8gZS5nIDx0YWJsZT48dHI+PHRkPjxwPnRleHQgY29u
dGVudDwvdGQ+PC90cj48L3RhYmxlPiA8LSA8cD4ncyBxdWlyayBtYXJnaW4gY29sbGFwc2VzIHdp
dGggdGhlIDx0ZD4gc28gaXRzIGNvbnRlbnQKLSAgICAvLyBoZWlnaHQgc2hvdWxkIG5vdCBpbmNs
dWRlIHZlcnRpY2FsIG1hcmdpbnMuCi0gICAgaWYgKCFsYXlvdXRTdGF0ZSgpLmluUXVpcmtzTW9k
ZSgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYgKGNlbGxCb3guZXN0YWJsaXNoZXNJ
bmxpbmVGb3JtYXR0aW5nQ29udGV4dCgpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgaWYg
KCFjZWxsQm94Lmhhc0luRmxvd0NoaWxkKCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICBy
ZXR1cm4gY2VsbEJveC5maXJzdEluRmxvd0NoaWxkKCktPnN0eWxlKCkuaGFzTWFyZ2luQmVmb3Jl
UXVpcmsoKSB8fCBjZWxsQm94Lmxhc3RJbkZsb3dDaGlsZCgpLT5zdHlsZSgpLmhhc01hcmdpbkFm
dGVyUXVpcmsoKTsKLX0KLQotfQotfQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA4ZjcwNTkzOGUyY2M4ZjA3
Nzg0MzdkNjlhNTRmN2I5YWI1OTRjNWEyLi4wYzJiYzkwMDc4NzFkZDE0ZjU2OTEwYTU2YTU2OGZj
MDljZGMzMTYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMjAtMDctMDUgIFphbGFuIEJ1anRh
cyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBbTEZDXVtCRkNdW1F1aXJrXSBIYW5kbGUg
bm9uLWRpcmVjdCwgY29sbGFwc2VkIHF1aXJrIG1hcmdpbnMgaW5zaWRlIHRhYmxlIGNlbGxzCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTM5NzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvbGF5
b3V0Zm9ybWF0dGluZ2NvbnRleHQvdGFibGUtcXVpcmstdmVydGljYWwtbWFyZ2luLXNpbXBsZTIt
ZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29u
dGV4dC90YWJsZS1xdWlyay12ZXJ0aWNhbC1tYXJnaW4tc2ltcGxlMi5odG1sOiBBZGRlZC4KKwog
MjAyMC0wNy0wMyAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtM
RkNdW1RGQ11bUXVpcmtdIEluZmxvdyBjaGlsZCBib3ggcXVpcmsgdmVydGljYWwgbWFyZ2lucyBz
aG91bGQgY29sbGFwc2Ugd2l0aCB0YWJsZSBjZWxsLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
ZmFzdC9sYXlvdXRmb3JtYXR0aW5nY29udGV4dC90YWJsZS1xdWlyay12ZXJ0aWNhbC1tYXJnaW4t
c2ltcGxlMi1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0aW5n
Y29udGV4dC90YWJsZS1xdWlyay12ZXJ0aWNhbC1tYXJnaW4tc2ltcGxlMi1leHBlY3RlZC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjNlMjRiMmE4OGYwYmU5ZTBlMjJmYTEzM2M4ODA2NDk5YzUyM2YzNDMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2xheW91dGZvcm1hdHRpbmdjb250ZXh0
L3RhYmxlLXF1aXJrLXZlcnRpY2FsLW1hcmdpbi1zaW1wbGUyLWV4cGVjdGVkLmh0bWwKQEAgLTAs
MCArMSwxMCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpbnRl
cm5hbDpMYXlvdXRGb3JtYXR0aW5nQ29udGV4dEVuYWJsZWQ9dHJ1ZSBpbnRlcm5hbDpMYXlvdXRG
b3JtYXR0aW5nQ29udGV4dEludGVncmF0aW9uRW5hYmxlZD1mYWxzZSBdIC0tPgorPHN0eWxlPgor
LmZpcnN0IHsKKyAgICB3aWR0aDogMTAwcHg7CisgICAgaGVpZ2h0OiA1MHB4OworICAgIGJhY2tn
cm91bmQtY29sb3I6IGdyZWVuOworfQorCis8L3N0eWxlPgorPGRpdiBjbGFzcz1maXJzdD48L2Rp
dj4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQv
dGFibGUtcXVpcmstdmVydGljYWwtbWFyZ2luLXNpbXBsZTIuaHRtbCBiL0xheW91dFRlc3RzL2Zh
c3QvbGF5b3V0Zm9ybWF0dGluZ2NvbnRleHQvdGFibGUtcXVpcmstdmVydGljYWwtbWFyZ2luLXNp
bXBsZTIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iYjE2MTM5NzBjNDFiMTZhMDY0ZWFlZWJhMDA4NGZkM2Yw
MTZmNGM0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9sYXlvdXRmb3JtYXR0
aW5nY29udGV4dC90YWJsZS1xdWlyay12ZXJ0aWNhbC1tYXJnaW4tc2ltcGxlMi5odG1sCkBAIC0w
LDAgKzEsMjEgQEAKKzwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaW50ZXJuYWw6TGF5b3V0Rm9y
bWF0dGluZ0NvbnRleHRFbmFibGVkPXRydWUgaW50ZXJuYWw6TGF5b3V0Rm9ybWF0dGluZ0NvbnRl
eHRJbnRlZ3JhdGlvbkVuYWJsZWQ9ZmFsc2UgXSAtLT4KKzxzdHlsZT4KK3RhYmxlIHsKKyAgICB3
aWR0aDogMTAwcHg7CisgICAgZm9udC1zaXplOiAxMHB4OworICAgIGJvcmRlci1zcGFjaW5nOiAw
cHg7Cit9CisKK3AgeworICAgIGhlaWdodDogNTBweDsKKyAgICBjb2xvcjogZ3JlZW47Cit9CisK
K3RkIHsKKyAgICBwYWRkaW5nOiAwcHg7CisgICAgYmFja2dyb3VuZC1jb2xvcjogZ3JlZW47Cit9
CisKKzwvc3R5bGU+CisKKzx0YWJsZT48dHI+PHRkPjxkaXY+PHA+Y29sbGFwc2UgcXVpcmsgbWFy
Z2luczwvZGl2PjwvdGQ+PC90cj48L3RhYmxlPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>