<?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>204392</bug_id>
          
          <creation_ts>2019-11-19 19:10:06 -0800</creation_ts>
          <short_desc>Remove &quot;patch&quot; struct from StructureStubInfo because it adds unnecessary padding</short_desc>
          <delta_ts>2019-12-03 19:05:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>202767</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Saam Barati">saam</reporter>
          <assigned_to name="Saam Barati">saam</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>fpizlo</cc>
    
    <cc>ggaren</cc>
    
    <cc>gskachkov</cc>
    
    <cc>guijemont</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>ticaiolima</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1591838</commentid>
    <comment_count>0</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-11-19 19:10:06 -0800</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595162</commentid>
    <comment_count>1</comment_count>
      <attachid>384748</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-12-03 13:30:53 -0800</bug_when>
    <thetext>Created attachment 384748
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595164</commentid>
    <comment_count>2</comment_count>
      <attachid>384748</attachid>
    <who name="Tadeu Zagallo">tzagallo</who>
    <bug_when>2019-12-03 13:33:03 -0800</bug_when>
    <thetext>Comment on attachment 384748
patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595328</commentid>
    <comment_count>3</comment_count>
      <attachid>384748</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 19:04:26 -0800</bug_when>
    <thetext>Comment on attachment 384748
patch

Clearing flags on attachment: 384748

Committed r253083: &lt;https://trac.webkit.org/changeset/253083&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595329</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2019-12-03 19:04:28 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1595330</commentid>
    <comment_count>5</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-12-03 19:05:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/57611901&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>384748</attachid>
            <date>2019-12-03 13:30:53 -0800</date>
            <delta_ts>2019-12-03 19:04:26 -0800</delta_ts>
            <desc>patch</desc>
            <filename>c-backup.diff</filename>
            <type>text/plain</type>
            <size>35013</size>
            <attacher name="Saam Barati">saam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjUzMDYwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDYzIEBA
CisyMDE5LTEyLTAzICBTYWFtIEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgorCisgICAgICAg
IFJlbW92ZSAicGF0Y2giIHN0cnVjdCBmcm9tIFN0cnVjdHVyZVN0dWJJbmZvIGJlY2F1c2UgaXQg
YWRkcyB1bm5lY2Vzc2FyeSBwYWRkaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMDQzOTIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBCeSBkb2luZyB0aGlzLCB3ZSByZWR1Y2UgdGhlIHNpemUgb2YgU3Ry
dWN0dXJlU3R1YkluZm8gZnJvbSAxMjAgYnl0ZXMgdG8gMTEyCisgICAgICAgIGJ5dGVzLgorCisg
ICAgICAgICogYnl0ZWNvZGUvQWNjZXNzQ2FzZS5jcHA6CisgICAgICAgIChKU0M6OkFjY2Vzc0Nh
c2U6OmdlbmVyYXRlV2l0aEd1YXJkKToKKyAgICAgICAgKEpTQzo6QWNjZXNzQ2FzZTo6Z2VuZXJh
dGVJbXBsKToKKyAgICAgICAgKiBieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmNwcDoK
KyAgICAgICAgKEpTQzo6R2V0dGVyU2V0dGVyQWNjZXNzQ2FzZTo6ZW1pdERPTUpJVEdldHRlcik6
CisgICAgICAgICogYnl0ZWNvZGUvSW5saW5lQWNjZXNzLmNwcDoKKyAgICAgICAgKEpTQzo6bGlu
a0NvZGVJbmxpbmUpOgorICAgICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU2VsZlBy
b3BlcnR5QWNjZXNzKToKKyAgICAgICAgKEpTQzo6Z2V0U2NyYXRjaFJlZ2lzdGVyKToKKyAgICAg
ICAgKEpTQzo6SW5saW5lQWNjZXNzOjpnZW5lcmF0ZVNlbGZQcm9wZXJ0eVJlcGxhY2UpOgorICAg
ICAgICAoSlNDOjpJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlQXJyYXlMZW5ndGgpOgorICAgICAgICAo
SlNDOjpJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU3RyaW5nTGVuZ3RoKToKKyAgICAgICAgKEpTQzo6
SW5saW5lQWNjZXNzOjpnZW5lcmF0ZVNlbGZJbkFjY2Vzcyk6CisgICAgICAgIChKU0M6OklubGlu
ZUFjY2Vzczo6cmV3aXJlU3R1YkFzSnVtcCk6CisgICAgICAgICogYnl0ZWNvZGUvUG9seW1vcnBo
aWNBY2Nlc3MuY3BwOgorICAgICAgICAoSlNDOjpQb2x5bW9ycGhpY0FjY2Vzczo6cmVnZW5lcmF0
ZSk6CisgICAgICAgICogYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8uaDoKKyAgICAgICAgKEpT
Qzo6U3RydWN0dXJlU3R1YkluZm86OmlubGluZVNpemUgY29uc3QpOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmVTdHViSW5mbzo6cGF0Y2hhYmxlSnVtcCk6CisgICAgICAgIChKU0M6OlN0cnVjdHVy
ZVN0dWJJbmZvOjp2YWx1ZVJlZ3MgY29uc3QpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHVi
SW5mbzo6cHJvcGVydHlSZWdzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1Yklu
Zm86OmJhc2VSZWdzIGNvbnN0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlU3R1YkluZm86OmJh
c2VHUFIgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVTdHViSW5mbzo6
c2xvd1BhdGhDYWxsTG9jYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVT
dHViSW5mbzo6ZG9uZUxvY2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKEpTQzo6U3RydWN0dXJl
U3R1YkluZm86OnNsb3dQYXRoU3RhcnRMb2NhdGlvbik6IERlbGV0ZWQuCisgICAgICAgICogZGZn
L0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHA6CisgICAgICAgIChKU0M6OkRGRzo6Y2FsbGVy
UmV0dXJuUEMpOgorICAgICAgICAqIGppdC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHA6Cisg
ICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpKSVRJbmxpbmVDYWNoZUdlbmVy
YXRvcik6CisgICAgICAgIChKU0M6OkpJVElubGluZUNhY2hlR2VuZXJhdG9yOjpmaW5hbGl6ZSk6
CisgICAgICAgIChKU0M6OkpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IpOgorICAg
ICAgICAoSlNDOjpKSVRHZXRCeUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5SWRXaXRoVGhp
c0dlbmVyYXRvcik6CisgICAgICAgIChKU0M6OkpJVFB1dEJ5SWRHZW5lcmF0b3I6OkpJVFB1dEJ5
SWRHZW5lcmF0b3IpOgorICAgICAgICAoSlNDOjpKSVRJbnN0YW5jZU9mR2VuZXJhdG9yOjpKSVRJ
bnN0YW5jZU9mR2VuZXJhdG9yKToKKyAgICAgICAgKEpTQzo6SklUR2V0QnlWYWxHZW5lcmF0b3I6
OkpJVEdldEJ5VmFsR2VuZXJhdG9yKToKKyAgICAgICAgKiBqaXQvUmVwYXRjaC5jcHA6CisgICAg
ICAgIChKU0M6OnRyeUNhY2hlR2V0QnkpOgorICAgICAgICAoSlNDOjpyZXBhdGNoR2V0QnkpOgor
ICAgICAgICAoSlNDOjpyZXBhdGNoQXJyYXlHZXRCeVZhbCk6CisgICAgICAgIChKU0M6OnRyeUNh
Y2hlUHV0QnlJRCk6CisgICAgICAgIChKU0M6OnJlcGF0Y2hQdXRCeUlEKToKKyAgICAgICAgKEpT
Qzo6dHJ5Q2FjaGVJbkJ5SUQpOgorICAgICAgICAoSlNDOjpyZXBhdGNoSW5CeUlEKToKKyAgICAg
ICAgKEpTQzo6cmVwYXRjaEluc3RhbmNlT2YpOgorICAgICAgICAoSlNDOjpyZXNldEdldEJ5KToK
KyAgICAgICAgKEpTQzo6cmVzZXRQdXRCeUlEKToKKyAgICAgICAgKEpTQzo6cmVzZXRQYXRjaGFi
bGVKdW1wKToKKyAgICAgICAgKEpTQzo6cmVzZXRJbkJ5SUQpOgorCiAyMDE5LTEyLTAyICBTYWFt
IEJhcmF0aSAgPHNiYXJhdGlAYXBwbGUuY29tPgogCiAgICAgICAgIFByb3BlcnR5U2xvdCBzaG91
bGQgbm90IGhhdmUgQ3VzdG9tcyBoYXZlIGEgUHJvcGVydHlPZmZzZXQgb2YgemVybwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2UuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9BY2Nlc3NDYXNlLmNwcAkocmV2aXNp
b24gMjUzMDYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL0FjY2Vzc0Nhc2Uu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC04NzAsNyArODcwLDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpn
ZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAgICAgaml0LmxvYWQ4KENDYWxsSGVscGVyczo6QWRkcmVz
cyhiYXNlR1BSLCBKU0NlbGw6OnR5cGVJbmZvVHlwZU9mZnNldCgpKSwgc2NyYXRjaEdQUik7CiAg
ICAgICAgIGZhbGxUaHJvdWdoLmFwcGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpOb3RF
cXVhbCwgc2NyYXRjaEdQUiwgQ0NhbGxIZWxwZXJzOjpUcnVzdGVkSW1tMzIoU2NvcGVkQXJndW1l
bnRzVHlwZSkpKTsKIAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9y
KHN0dWJJbmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOworICAgICAgICBTY3JhdGNoUmVnaXN0ZXJB
bGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwogICAgICAgICBhbGxv
Y2F0b3IubG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2so
dmFsdWVSZWdzKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdz
KCkpOwpAQCAtOTY1LDcgKzk2NSw3IEBAIHZvaWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3Vh
cmQoCiAgICAgICAgIGppdC5sb2FkMzIoQ0NhbGxIZWxwZXJzOjpBZGRyZXNzKGJhc2VHUFIsIEpT
QXJyYXlCdWZmZXJWaWV3OjpvZmZzZXRPZkxlbmd0aCgpKSwgc2NyYXRjaEdQUik7CiAgICAgICAg
IHN0YXRlLmZhaWxBbmRSZXBhdGNoLmFwcGVuZChqaXQuYnJhbmNoMzIoQ0NhbGxIZWxwZXJzOjpB
Ym92ZU9yRXF1YWwsIHByb3BlcnR5R1BSLCBzY3JhdGNoR1BSKSk7CiAKLSAgICAgICAgU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJz
KTsKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51
c2VkUmVnaXN0ZXJzKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3Mo
KSk7CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7CiAgICAgICAgIGFsbG9jYXRv
ci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygpKTsKQEAgLTEwNDcsNyArMTA0Nyw3IEBAIHZv
aWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAKICAgICAgICAgZmFsbFRocm91Z2gu
YXBwZW5kKGppdC5icmFuY2hJZk5vdFN0cmluZyhiYXNlR1BSKSk7CiAKLSAgICAgICAgU2NyYXRj
aFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJz
KTsKKyAgICAgICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby51
c2VkUmVnaXN0ZXJzKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVJlZ3Mo
KSk7CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7CiAgICAgICAgIGFsbG9jYXRv
ci5sb2NrKHN0dWJJbmZvLnByb3BlcnR5UmVncygpKTsKQEAgLTExMDcsNyArMTEwNyw3IEBAIHZv
aWQgQWNjZXNzQ2FzZTo6Z2VuZXJhdGVXaXRoR3VhcmQoCiAgICAgICAgIENDYWxsSGVscGVyczo6
SnVtcCBpc091dE9mQm91bmRzOwogICAgICAgICBDQ2FsbEhlbHBlcnM6Okp1bXAgaXNFbXB0eTsK
IAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnBh
dGNoLnVzZWRSZWdpc3RlcnMpOworICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxs
b2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwogICAgICAgICBhbGxvY2F0b3IubG9jayhz
dHViSW5mby5iYXNlUmVncygpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVSZWdzKTsK
ICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdzKCkpOwpAQCAtMTIx
OCw3ICsxMjE4LDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZVdpdGhHdWFyZCgKICAgICAg
ICAgCiAgICAgICAgIEdQUlJlZyB2YWx1ZUdQUiA9IHZhbHVlUmVncy5wYXlsb2FkR1BSKCk7CiAg
ICAgICAgIAotICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0dWJJ
bmZvLnBhdGNoLnVzZWRSZWdpc3RlcnMpOworICAgICAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0
b3IgYWxsb2NhdG9yKHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwogICAgICAgICBhbGxvY2F0b3Iu
bG9jayhzdHViSW5mby5iYXNlUmVncygpKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2sodmFsdWVS
ZWdzKTsKICAgICAgICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8ucHJvcGVydHlSZWdzKCkpOwpA
QCAtMTczMSw3ICsxNzMxLDcgQEAgdm9pZCBBY2Nlc3NDYXNlOjpnZW5lcmF0ZUltcGwoQWNjZXNz
R2VuZQogICAgICAgICBib29sIHJlYWxsb2NhdGluZyA9IGFsbG9jYXRpbmcgJiYgc3RydWN0dXJl
KCktPm91dE9mTGluZUNhcGFjaXR5KCk7CiAgICAgICAgIGJvb2wgYWxsb2NhdGluZ0lubGluZSA9
IGFsbG9jYXRpbmcgJiYgIXN0cnVjdHVyZSgpLT5jb3VsZEhhdmVJbmRleGluZ0hlYWRlcigpOwog
Ci0gICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxvY2F0b3Ioc3R1YkluZm8ucGF0
Y2gudXNlZFJlZ2lzdGVycyk7CisgICAgICAgIFNjcmF0Y2hSZWdpc3RlckFsbG9jYXRvciBhbGxv
Y2F0b3Ioc3R1YkluZm8udXNlZFJlZ2lzdGVycyk7CiAgICAgICAgIGFsbG9jYXRvci5sb2NrKHN0
dWJJbmZvLmJhc2VSZWdzKCkpOwogICAgICAgICBhbGxvY2F0b3IubG9jayh2YWx1ZVJlZ3MpOwog
ICAgICAgICBhbGxvY2F0b3IubG9jayhzY3JhdGNoR1BSKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ieXRlY29kZS9HZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZS5j
cHAJKHJldmlzaW9uIDI1MzA2MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ieXRlY29kZS9H
ZXR0ZXJTZXR0ZXJBY2Nlc3NDYXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM4LDcgKzEzOCw3
IEBAIHZvaWQgR2V0dGVyU2V0dGVyQWNjZXNzQ2FzZTo6ZW1pdERPTUpJVEcKICAgICBWZWN0b3I8
RlBSUmVnPiBmcFNjcmF0Y2g7CiAgICAgVmVjdG9yPFNuaXBwZXRQYXJhbXM6OlZhbHVlPiByZWdz
OwogCi0gICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby5wYXRj
aC51c2VkUmVnaXN0ZXJzKTsKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9y
KHN0dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwogICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJh
c2VSZWdzKCkpOwogICAgIGFsbG9jYXRvci5sb2NrKHZhbHVlUmVncyk7CiAgICAgYWxsb2NhdG9y
LmxvY2soc2NyYXRjaEdQUik7CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUv
SW5saW5lQWNjZXNzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0
ZWNvZGUvSW5saW5lQWNjZXNzLmNwcAkocmV2aXNpb24gMjUzMDYwKQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2J5dGVjb2RlL0lubGluZUFjY2Vzcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1
Miw5ICsxNTIsOSBAQCB2b2lkIElubGluZUFjY2Vzczo6ZHVtcENhY2hlU2l6ZXNBbmRDcmFzCiB0
ZW1wbGF0ZSA8dHlwZW5hbWUgRnVuY3Rpb24+CiBBTFdBWVNfSU5MSU5FIHN0YXRpYyBib29sIGxp
bmtDb2RlSW5saW5lKGNvbnN0IGNoYXIqIG5hbWUsIENDYWxsSGVscGVycyYgaml0LCBTdHJ1Y3R1
cmVTdHViSW5mbyYgc3R1YkluZm8sIGNvbnN0IEZ1bmN0aW9uJiBmdW5jdGlvbikKIHsKLSAgICBp
ZiAoaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVTaXplKCkgPD0gc3R1YkluZm8ucGF0Y2gu
aW5saW5lU2l6ZSgpKSB7CisgICAgaWYgKGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6
ZSgpIDw9IHN0dWJJbmZvLmlubGluZVNpemUoKSkgewogICAgICAgICBib29sIG5lZWRzQnJhbmNo
Q29tcGFjdGlvbiA9IHRydWU7Ci0gICAgICAgIExpbmtCdWZmZXIgbGlua0J1ZmZlcihqaXQsIHN0
dWJJbmZvLnBhdGNoLnN0YXJ0LCBzdHViSW5mby5wYXRjaC5pbmxpbmVTaXplKCksIEpJVENvbXBp
bGF0aW9uTXVzdFN1Y2NlZWQsIG5lZWRzQnJhbmNoQ29tcGFjdGlvbik7CisgICAgICAgIExpbmtC
dWZmZXIgbGlua0J1ZmZlcihqaXQsIHN0dWJJbmZvLnN0YXJ0LCBzdHViSW5mby5pbmxpbmVTaXpl
KCksIEpJVENvbXBpbGF0aW9uTXVzdFN1Y2NlZWQsIG5lZWRzQnJhbmNoQ29tcGFjdGlvbik7CiAg
ICAgICAgIEFTU0VSVChsaW5rQnVmZmVyLmlzVmFsaWQoKSk7CiAgICAgICAgIGZ1bmN0aW9uKGxp
bmtCdWZmZXIpOwogICAgICAgICBGSU5BTElaRV9DT0RFKGxpbmtCdWZmZXIsIE5vUHRyVGFnLCAi
SW5saW5lQWNjZXNzVHlwZTogJyVzJyIsIG5hbWUpOwpAQCAtMTY5LDcgKzE2OSw3IEBAIEFMV0FZ
U19JTkxJTkUgc3RhdGljIGJvb2wgbGlua0NvZGVJbmxpbmUKICAgICBjb25zdGV4cHIgYm9vbCBm
YWlsSWZDYW50SW5saW5lID0gZmFsc2U7CiAgICAgaWYgKGZhaWxJZkNhbnRJbmxpbmUpIHsKICAg
ICAgICAgZGF0YUxvZygiRmFpbHVyZSBmb3I6ICIsIG5hbWUsICJcbiIpOwotICAgICAgICBkYXRh
TG9nKCJyZWFsIHNpemU6ICIsIGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpLCAi
IGlubGluZSBzaXplOiIsIHN0dWJJbmZvLnBhdGNoLmlubGluZVNpemUoKSwgIlxuIik7CisgICAg
ICAgIGRhdGFMb2coInJlYWwgc2l6ZTogIiwgaml0Lm1fYXNzZW1ibGVyLmJ1ZmZlcigpLmNvZGVT
aXplKCksICIgaW5saW5lIHNpemU6Iiwgc3R1YkluZm8uaW5saW5lU2l6ZSgpLCAiXG4iKTsKICAg
ICAgICAgQ1JBU0goKTsKICAgICB9CiAKQEAgLTE4Myw3ICsxODMsNyBAQCBib29sIElubGluZUFj
Y2Vzczo6Z2VuZXJhdGVTZWxmUHJvcGVydHlBCiAKICAgICBDQ2FsbEhlbHBlcnMgaml0OwogICAg
IAotICAgIEdQUlJlZyBiYXNlID0gc3R1YkluZm8uYmFzZUdQUigpOworICAgIEdQUlJlZyBiYXNl
ID0gc3R1YkluZm8uYmFzZUdQUjsKICAgICBKU1ZhbHVlUmVncyB2YWx1ZSA9IHN0dWJJbmZvLnZh
bHVlUmVncygpOwogCiAgICAgYXV0byBicmFuY2hUb1Nsb3dQYXRoID0gaml0LnBhdGNoYWJsZUJy
YW5jaDMyKApAQCAtMjAyLDE5ICsyMDIsMTkgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRl
U2VsZlByb3BlcnR5QQogICAgICAgICBNYWNyb0Fzc2VtYmxlcjo6QWRkcmVzcyhzdG9yYWdlLCBv
ZmZzZXRSZWxhdGl2ZVRvQmFzZShvZmZzZXQpKSwgdmFsdWUpOwogCiAgICAgYm9vbCBsaW5rZWRD
b2RlSW5saW5lID0gbGlua0NvZGVJbmxpbmUoInByb3BlcnR5IGFjY2VzcyIsIGppdCwgc3R1Yklu
Zm8sIFsmXSAoTGlua0J1ZmZlciYgbGlua0J1ZmZlcikgewotICAgICAgICBsaW5rQnVmZmVyLmxp
bmsoYnJhbmNoVG9TbG93UGF0aCwgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkpOwor
ICAgICAgICBsaW5rQnVmZmVyLmxpbmsoYnJhbmNoVG9TbG93UGF0aCwgc3R1YkluZm8uc2xvd1Bh
dGhTdGFydExvY2F0aW9uKTsKICAgICB9KTsKICAgICByZXR1cm4gbGlua2VkQ29kZUlubGluZTsK
IH0KIAogQUxXQVlTX0lOTElORSBzdGF0aWMgR1BSUmVnIGdldFNjcmF0Y2hSZWdpc3RlcihTdHJ1
Y3R1cmVTdHViSW5mbyYgc3R1YkluZm8pCiB7Ci0gICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9y
IGFsbG9jYXRvcihzdHViSW5mby5wYXRjaC51c2VkUmVnaXN0ZXJzKTsKLSAgICBhbGxvY2F0b3Iu
bG9jayhzdHViSW5mby5iYXNlR1BSKCkpOwotICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBh
dGNoLnZhbHVlR1BSKTsKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0
dWJJbmZvLnVzZWRSZWdpc3RlcnMpOworICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLmJhc2VH
UFIpOworICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnZhbHVlR1BSKTsKICNpZiBVU0UoSlNW
QUxVRTMyXzY0KQotICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBhdGNoLmJhc2VUYWdHUFIp
OwotICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBhdGNoLnZhbHVlVGFnR1BSKTsKKyAgICBh
bGxvY2F0b3IubG9jayhzdHViSW5mby5iYXNlVGFnR1BSKTsKKyAgICBhbGxvY2F0b3IubG9jayhz
dHViSW5mby52YWx1ZVRhZ0dQUik7CiAjZW5kaWYKICAgICBHUFJSZWcgc2NyYXRjaCA9IGFsbG9j
YXRvci5hbGxvY2F0ZVNjcmF0Y2hHUFIoKTsKICAgICBpZiAoYWxsb2NhdG9yLmRpZFJldXNlUmVn
aXN0ZXJzKCkpCkBAIC0yNDcsNyArMjQ3LDcgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRl
U2VsZlByb3BlcnR5UgogCiAgICAgQ0NhbGxIZWxwZXJzIGppdDsKIAotICAgIEdQUlJlZyBiYXNl
ID0gc3R1YkluZm8uYmFzZUdQUigpOworICAgIEdQUlJlZyBiYXNlID0gc3R1YkluZm8uYmFzZUdQ
UjsKICAgICBKU1ZhbHVlUmVncyB2YWx1ZSA9IHN0dWJJbmZvLnZhbHVlUmVncygpOwogCiAgICAg
YXV0byBicmFuY2hUb1Nsb3dQYXRoID0gaml0LnBhdGNoYWJsZUJyYW5jaDMyKApAQCAtMjY4LDcg
KzI2OCw3IEBAIGJvb2wgSW5saW5lQWNjZXNzOjpnZW5lcmF0ZVNlbGZQcm9wZXJ0eVIKICAgICAg
ICAgdmFsdWUsIE1hY3JvQXNzZW1ibGVyOjpBZGRyZXNzKHN0b3JhZ2UsIG9mZnNldFJlbGF0aXZl
VG9CYXNlKG9mZnNldCkpKTsKIAogICAgIGJvb2wgbGlua2VkQ29kZUlubGluZSA9IGxpbmtDb2Rl
SW5saW5lKCJwcm9wZXJ0eSByZXBsYWNlIiwgaml0LCBzdHViSW5mbywgWyZdIChMaW5rQnVmZmVy
JiBsaW5rQnVmZmVyKSB7Ci0gICAgICAgIGxpbmtCdWZmZXIubGluayhicmFuY2hUb1Nsb3dQYXRo
LCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CisgICAgICAgIGxpbmtCdWZmZXIu
bGluayhicmFuY2hUb1Nsb3dQYXRoLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9jYXRpb24pOwog
ICAgIH0pOwogICAgIHJldHVybiBsaW5rZWRDb2RlSW5saW5lOwogfQpAQCAtMjk1LDcgKzI5NSw3
IEBAIGJvb2wgSW5saW5lQWNjZXNzOjpnZW5lcmF0ZUFycmF5TGVuZ3RoKFMKIAogICAgIENDYWxs
SGVscGVycyBqaXQ7CiAKLSAgICBHUFJSZWcgYmFzZSA9IHN0dWJJbmZvLmJhc2VHUFIoKTsKKyAg
ICBHUFJSZWcgYmFzZSA9IHN0dWJJbmZvLmJhc2VHUFI7CiAgICAgSlNWYWx1ZVJlZ3MgdmFsdWUg
PSBzdHViSW5mby52YWx1ZVJlZ3MoKTsKICAgICBHUFJSZWcgc2NyYXRjaCA9IGdldFNjcmF0Y2hS
ZWdpc3RlcihzdHViSW5mbyk7CiAKQEAgLTMwOCw3ICszMDgsNyBAQCBib29sIElubGluZUFjY2Vz
czo6Z2VuZXJhdGVBcnJheUxlbmd0aChTCiAgICAgaml0LmJveEludDMyKHZhbHVlLnBheWxvYWRH
UFIoKSwgdmFsdWUpOwogCiAgICAgYm9vbCBsaW5rZWRDb2RlSW5saW5lID0gbGlua0NvZGVJbmxp
bmUoImFycmF5IGxlbmd0aCIsIGppdCwgc3R1YkluZm8sIFsmXSAoTGlua0J1ZmZlciYgbGlua0J1
ZmZlcikgewotICAgICAgICBsaW5rQnVmZmVyLmxpbmsoYnJhbmNoVG9TbG93UGF0aCwgc3R1Yklu
Zm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkpOworICAgICAgICBsaW5rQnVmZmVyLmxpbmsoYnJh
bmNoVG9TbG93UGF0aCwgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKTsKICAgICB9KTsK
ICAgICByZXR1cm4gbGlua2VkQ29kZUlubGluZTsKIH0KQEAgLTMzMCw3ICszMzAsNyBAQCBib29s
IElubGluZUFjY2Vzczo6Z2VuZXJhdGVTdHJpbmdMZW5ndGgoCiAKICAgICBDQ2FsbEhlbHBlcnMg
aml0OwogCi0gICAgR1BSUmVnIGJhc2UgPSBzdHViSW5mby5iYXNlR1BSKCk7CisgICAgR1BSUmVn
IGJhc2UgPSBzdHViSW5mby5iYXNlR1BSOwogICAgIEpTVmFsdWVSZWdzIHZhbHVlID0gc3R1Yklu
Zm8udmFsdWVSZWdzKCk7CiAgICAgR1BSUmVnIHNjcmF0Y2ggPSBnZXRTY3JhdGNoUmVnaXN0ZXIo
c3R1YkluZm8pOwogCkBAIC0zNTEsNyArMzUxLDcgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmdlbmVy
YXRlU3RyaW5nTGVuZ3RoKAogICAgIGppdC5ib3hJbnQzMih2YWx1ZS5wYXlsb2FkR1BSKCksIHZh
bHVlKTsKIAogICAgIGJvb2wgbGlua2VkQ29kZUlubGluZSA9IGxpbmtDb2RlSW5saW5lKCJzdHJp
bmcgbGVuZ3RoIiwgaml0LCBzdHViSW5mbywgWyZdIChMaW5rQnVmZmVyJiBsaW5rQnVmZmVyKSB7
Ci0gICAgICAgIGxpbmtCdWZmZXIubGluayhicmFuY2hUb1Nsb3dQYXRoLCBzdHViSW5mby5zbG93
UGF0aFN0YXJ0TG9jYXRpb24oKSk7CisgICAgICAgIGxpbmtCdWZmZXIubGluayhicmFuY2hUb1Ns
b3dQYXRoLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9jYXRpb24pOwogICAgIH0pOwogICAgIHJl
dHVybiBsaW5rZWRDb2RlSW5saW5lOwogfQpAQCAtMzY0LDcgKzM2NCw3IEBAIGJvb2wgSW5saW5l
QWNjZXNzOjpnZW5lcmF0ZVNlbGZJbkFjY2VzcygKICAgICBpZiAoIXN0dWJJbmZvLmhhc0NvbnN0
YW50SWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgR1BSUmVnIGJhc2Ug
PSBzdHViSW5mby5iYXNlR1BSKCk7CisgICAgR1BSUmVnIGJhc2UgPSBzdHViSW5mby5iYXNlR1BS
OwogICAgIEpTVmFsdWVSZWdzIHZhbHVlID0gc3R1YkluZm8udmFsdWVSZWdzKCk7CiAKICAgICBh
dXRvIGJyYW5jaFRvU2xvd1BhdGggPSBqaXQucGF0Y2hhYmxlQnJhbmNoMzIoCkBAIC0zNzQsNyAr
Mzc0LDcgQEAgYm9vbCBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU2VsZkluQWNjZXNzKAogICAgIGpp
dC5ib3hCb29sZWFuKHRydWUsIHZhbHVlKTsKIAogICAgIGJvb2wgbGlua2VkQ29kZUlubGluZSA9
IGxpbmtDb2RlSW5saW5lKCJpbiBhY2Nlc3MiLCBqaXQsIHN0dWJJbmZvLCBbJl0gKExpbmtCdWZm
ZXImIGxpbmtCdWZmZXIpIHsKLSAgICAgICAgbGlua0J1ZmZlci5saW5rKGJyYW5jaFRvU2xvd1Bh
dGgsIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbigpKTsKKyAgICAgICAgbGlua0J1ZmZl
ci5saW5rKGJyYW5jaFRvU2xvd1BhdGgsIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbik7
CiAgICAgfSk7CiAgICAgcmV0dXJuIGxpbmtlZENvZGVJbmxpbmU7CiB9CkBAIC0zODcsNyArMzg3
LDcgQEAgdm9pZCBJbmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoU3RydQogCiAgICAgLy8g
V2UgZG9uJ3QgbmVlZCBhIG5vcCBzbGVkIGhlcmUgYmVjYXVzZSBub2JvZHkgc2hvdWxkIGJlIGp1
bXBpbmcgaW50byB0aGUgbWlkZGxlIG9mIGFuIElDLgogICAgIGJvb2wgbmVlZHNCcmFuY2hDb21w
YWN0aW9uID0gZmFsc2U7Ci0gICAgTGlua0J1ZmZlciBsaW5rQnVmZmVyKGppdCwgc3R1YkluZm8u
cGF0Y2guc3RhcnQsIGppdC5tX2Fzc2VtYmxlci5idWZmZXIoKS5jb2RlU2l6ZSgpLCBKSVRDb21w
aWxhdGlvbk11c3RTdWNjZWVkLCBuZWVkc0JyYW5jaENvbXBhY3Rpb24pOworICAgIExpbmtCdWZm
ZXIgbGlua0J1ZmZlcihqaXQsIHN0dWJJbmZvLnN0YXJ0LCBqaXQubV9hc3NlbWJsZXIuYnVmZmVy
KCkuY29kZVNpemUoKSwgSklUQ29tcGlsYXRpb25NdXN0U3VjY2VlZCwgbmVlZHNCcmFuY2hDb21w
YWN0aW9uKTsKICAgICBSRUxFQVNFX0FTU0VSVChsaW5rQnVmZmVyLmlzVmFsaWQoKSk7CiAgICAg
bGlua0J1ZmZlci5saW5rKGp1bXAsIHRhcmdldCk7CiAKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9Qb2x5bW9ycGhpY0FjY2Vzcy5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNjZXNzLmNwcAkocmV2aXNpb24g
MjUzMDYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2J5dGVjb2RlL1BvbHltb3JwaGljQWNj
ZXNzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzkyLDggKzM5Miw4IEBAIEFjY2Vzc0dlbmVyYXRp
b25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3MKICAgICBzdGF0ZS5hY2Nlc3MgPSB0aGlzOwogICAg
IHN0YXRlLnN0dWJJbmZvID0gJnN0dWJJbmZvOwogICAgIAotICAgIHN0YXRlLmJhc2VHUFIgPSBz
dHViSW5mby5iYXNlR1BSKCk7Ci0gICAgc3RhdGUudS50aGlzR1BSID0gc3R1YkluZm8ucGF0Y2gu
dS50aGlzR1BSOworICAgIHN0YXRlLmJhc2VHUFIgPSBzdHViSW5mby5iYXNlR1BSOworICAgIHN0
YXRlLnUudGhpc0dQUiA9IHN0dWJJbmZvLnJlZ3MudGhpc0dQUjsKICAgICBzdGF0ZS52YWx1ZVJl
Z3MgPSBzdHViSW5mby52YWx1ZVJlZ3MoKTsKIAogICAgIC8vIFJlZ2VuZXJhdGluZyBpcyBvdXIg
b3Bwb3J0dW5pdHkgdG8gZmlndXJlIG91dCB3aGF0IG91ciBsaXN0IG9mIGNhc2VzIHNob3VsZCBs
b29rIGxpa2UuIFdlCkBAIC00NDQsMTYgKzQ0NCwxNiBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0
IFBvbHltb3JwaGljQWNjZXNzCiAgICAgfQogICAgIG1fbGlzdC5yZXNpemUoZHN0SW5kZXgpOwog
Ci0gICAgU2NyYXRjaFJlZ2lzdGVyQWxsb2NhdG9yIGFsbG9jYXRvcihzdHViSW5mby5wYXRjaC51
c2VkUmVnaXN0ZXJzKTsKKyAgICBTY3JhdGNoUmVnaXN0ZXJBbGxvY2F0b3IgYWxsb2NhdG9yKHN0
dWJJbmZvLnVzZWRSZWdpc3RlcnMpOwogICAgIHN0YXRlLmFsbG9jYXRvciA9ICZhbGxvY2F0b3I7
CiAgICAgYWxsb2NhdG9yLmxvY2soc3RhdGUuYmFzZUdQUik7CiAgICAgaWYgKHN0YXRlLnUudGhp
c0dQUiAhPSBJbnZhbGlkR1BSUmVnKQogICAgICAgICBhbGxvY2F0b3IubG9jayhzdGF0ZS51LnRo
aXNHUFIpOwogICAgIGFsbG9jYXRvci5sb2NrKHN0YXRlLnZhbHVlUmVncyk7CiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKLSAgICBhbGxvY2F0b3IubG9jayhzdHViSW5mby5wYXRjaC5iYXNlVGFnR1BS
KTsKLSAgICBpZiAoc3R1YkluZm8ucGF0Y2gudi50aGlzVGFnR1BSICE9IEludmFsaWRHUFJSZWcp
Ci0gICAgICAgIGFsbG9jYXRvci5sb2NrKHN0dWJJbmZvLnBhdGNoLnYudGhpc1RhZ0dQUik7Cisg
ICAgYWxsb2NhdG9yLmxvY2soc3R1YkluZm8uYmFzZVRhZ0dQUik7CisgICAgaWYgKHN0dWJJbmZv
LnYudGhpc1RhZ0dQUiAhPSBJbnZhbGlkR1BSUmVnKQorICAgICAgICBhbGxvY2F0b3IubG9jayhz
dHViSW5mby52LnRoaXNUYWdHUFIpOwogI2VuZGlmCiAKICAgICBzdGF0ZS5zY3JhdGNoR1BSID0g
YWxsb2NhdG9yLmFsbG9jYXRlU2NyYXRjaEdQUigpOwpAQCAtNTI3LDcgKzUyNyw3IEBAIEFjY2Vz
c0dlbmVyYXRpb25SZXN1bHQgUG9seW1vcnBoaWNBY2Nlc3MKICNpZiBVU0UoSlNWQUxVRTY0KSAK
ICAgICAgICAgICAgICAgICAgICAgbm90SW50MzIgPSBqaXQuYnJhbmNoSWZOb3RJbnQzMihzdGF0
ZS51LnByb3BlcnR5R1BSKTsKICNlbHNlCi0gICAgICAgICAgICAgICAgICAgIG5vdEludDMyID0g
aml0LmJyYW5jaElmTm90SW50MzIoc3RhdGUuc3R1YkluZm8tPnBhdGNoLnYucHJvcGVydHlUYWdH
UFIpOworICAgICAgICAgICAgICAgICAgICBub3RJbnQzMiA9IGppdC5icmFuY2hJZk5vdEludDMy
KHN0YXRlLnN0dWJJbmZvLT52LnByb3BlcnR5VGFnR1BSKTsKICNlbmRpZgogICAgICAgICAgICAg
ICAgIH0KICAgICAgICAgICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSBjYXNlcy5zaXplKCk7IGkt
LTspIHsKQEAgLTU1Myw3ICs1NTMsNyBAQCBBY2Nlc3NHZW5lcmF0aW9uUmVzdWx0IFBvbHltb3Jw
aGljQWNjZXNzCiAgICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5R1BSID0gc3RhdGUudS5w
cm9wZXJ0eUdQUjsKICAgICAgICAgICAgICAgICBpZiAoIXN0dWJJbmZvLnByb3BlcnR5SXNTdHJp
bmcpIHsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICAgICAgICAgICAgICBHUFJSZWcg
cHJvcGVydHlUYWdHUFIgPSBzdGF0ZS5zdHViSW5mby0+cGF0Y2gudi5wcm9wZXJ0eVRhZ0dQUjsK
KyAgICAgICAgICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5VGFnR1BSID0gc3RhdGUuc3R1Yklu
Zm8tPnYucHJvcGVydHlUYWdHUFI7CiAgICAgICAgICAgICAgICAgICAgIG5vdFN0cmluZy5hcHBl
bmQoaml0LmJyYW5jaElmTm90Q2VsbChwcm9wZXJ0eVRhZ0dQUikpOwogI2Vsc2UKICAgICAgICAg
ICAgICAgICAgICAgbm90U3RyaW5nLmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHByb3BlcnR5
R1BSKSk7CkBAIC01ODUsNyArNTg1LDcgQEAgQWNjZXNzR2VuZXJhdGlvblJlc3VsdCBQb2x5bW9y
cGhpY0FjY2VzcwogICAgICAgICAgICAgICAgIGlmICghc3R1YkluZm8ucHJvcGVydHlJc1N5bWJv
bCkgewogICAgICAgICAgICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlHUFIgPSBzdGF0ZS51LnBy
b3BlcnR5R1BSOwogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICAgICAgICAgIEdQ
UlJlZyBwcm9wZXJ0eVRhZ0dQUiA9IHN0YXRlLnN0dWJJbmZvLT5wYXRjaC52LnByb3BlcnR5VGFn
R1BSOworICAgICAgICAgICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlUYWdHUFIgPSBzdGF0ZS5z
dHViSW5mby0+di5wcm9wZXJ0eVRhZ0dQUjsKICAgICAgICAgICAgICAgICAgICAgbm90U3ltYm9s
LmFwcGVuZChqaXQuYnJhbmNoSWZOb3RDZWxsKHByb3BlcnR5VGFnR1BSKSk7CiAjZWxzZQogICAg
ICAgICAgICAgICAgICAgICBub3RTeW1ib2wuYXBwZW5kKGppdC5icmFuY2hJZk5vdENlbGwocHJv
cGVydHlHUFIpKTsKQEAgLTcwMiwxMSArNzAyLDExIEBAIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQg
UG9seW1vcnBoaWNBY2Nlc3MKICAgICAgICAgcmV0dXJuIEFjY2Vzc0dlbmVyYXRpb25SZXN1bHQ6
OkdhdmVVcDsKICAgICB9CiAKLSAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFn
PiBzdWNjZXNzTGFiZWwgPSBzdHViSW5mby5kb25lTG9jYXRpb24oKTsKKyAgICBDb2RlTG9jYXRp
b25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBzdWNjZXNzTGFiZWwgPSBzdHViSW5mby5kb25lTG9j
YXRpb247CiAKICAgICBsaW5rQnVmZmVyLmxpbmsoc3RhdGUuc3VjY2Vzcywgc3VjY2Vzc0xhYmVs
KTsKIAotICAgIGxpbmtCdWZmZXIubGluayhmYWlsdXJlLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0
TG9jYXRpb24oKSk7CisgICAgbGlua0J1ZmZlci5saW5rKGZhaWx1cmUsIHN0dWJJbmZvLnNsb3dQ
YXRoU3RhcnRMb2NhdGlvbik7CiAgICAgCiAgICAgaWYgKFBvbHltb3JwaGljQWNjZXNzSW50ZXJu
YWw6OnZlcmJvc2UpCiAgICAgICAgIGRhdGFMb2coRnVsbENvZGVPcmlnaW4oY29kZUJsb2NrLCBz
dHViSW5mby5jb2RlT3JpZ2luKSwgIjogR2VuZXJhdGluZyBwb2x5bW9ycGhpYyBhY2Nlc3Mgc3R1
YiBmb3IgIiwgbGlzdER1bXAoY2FzZXMpLCAiXG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0
Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9K
YXZhU2NyaXB0Q29yZS9ieXRlY29kZS9TdHJ1Y3R1cmVTdHViSW5mby5oCShyZXZpc2lvbiAyNTMw
NjApCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYnl0ZWNvZGUvU3RydWN0dXJlU3R1YkluZm8u
aAkod29ya2luZyBjb3B5KQpAQCAtMTk2LDgwICsxOTYsNjkgQEAgcHJpdmF0ZToKICAgICBIYXNo
U2V0PHN0ZDo6cGFpcjxTdHJ1Y3R1cmUqLCBSZWZQdHI8VW5pcXVlZFN0cmluZ0ltcGw+Pj4gYnVm
ZmVyZWRTdHJ1Y3R1cmVzOwogcHVibGljOgogICAgIAotICAgIHN0cnVjdCB7Ci0gICAgICAgIENv
ZGVMb2NhdGlvbkxhYmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiBzdGFydDsgLy8gVGhpcyBpcyBl
aXRoZXIgdGhlIHN0YXJ0IG9mIHRoZSBpbmxpbmUgSUMgZm9yICpieUlkIGNhY2hlcy4gb3IgdGhl
IGxvY2F0aW9uIG9mIHBhdGNoYWJsZSBqdW1wIGZvciAnaW5zdGFuY2VvZicgY2FjaGVzLgotICAg
ICAgICBDb2RlTG9jYXRpb25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBkb25lTG9jYXRpb247Ci0g
ICAgICAgIENvZGVMb2NhdGlvbkNhbGw8SlNJbnRlcm5hbFB0clRhZz4gc2xvd1BhdGhDYWxsTG9j
YXRpb247Ci0gICAgICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVFN0dWJSb3V0aW5lUHRyVGFnPiBz
bG93UGF0aFN0YXJ0TG9jYXRpb247Ci0KLSAgICAgICAgUmVnaXN0ZXJTZXQgdXNlZFJlZ2lzdGVy
czsKLQotICAgICAgICB1aW50MzJfdCBpbmxpbmVTaXplKCkgY29uc3QKLSAgICAgICAgewotICAg
ICAgICAgICAgaW50MzJfdCBpbmxpbmVTaXplID0gTWFjcm9Bc3NlbWJsZXI6OmRpZmZlcmVuY2VC
ZXR3ZWVuQ29kZVB0cihzdGFydCwgZG9uZUxvY2F0aW9uKTsKLSAgICAgICAgICAgIEFTU0VSVChp
bmxpbmVTaXplID49IDApOwotICAgICAgICAgICAgcmV0dXJuIGlubGluZVNpemU7Ci0gICAgICAg
IH0KLQotICAgICAgICBHUFJSZWcgYmFzZUdQUjsKLSAgICAgICAgR1BSUmVnIHZhbHVlR1BSOwot
ICAgICAgICB1bmlvbiB7Ci0gICAgICAgICAgICBHUFJSZWcgdGhpc0dQUjsKLSAgICAgICAgICAg
IEdQUlJlZyBwcm90b3R5cGVHUFI7Ci0gICAgICAgICAgICBHUFJSZWcgcHJvcGVydHlHUFI7Ci0g
ICAgICAgIH0gdTsKLSNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAgICAgICBHUFJSZWcgdmFsdWVU
YWdHUFI7Ci0gICAgICAgIC8vIEZJWE1FOiBbMzItYml0c10gQ2hlY2sgaWYgU3RydWN0dXJlU3R1
YkluZm86OnBhdGNoLmJhc2VUYWdHUFIgaXMgdXNlZCBzb21ld2hlcmUuCi0gICAgICAgIC8vIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDQ3MjYKLSAgICAgICAgR1BS
UmVnIGJhc2VUYWdHUFI7Ci0gICAgICAgIHVuaW9uIHsKLSAgICAgICAgICAgIEdQUlJlZyB0aGlz
VGFnR1BSOwotICAgICAgICAgICAgR1BSUmVnIHByb3BlcnR5VGFnR1BSOwotICAgICAgICB9IHY7
Ci0jZW5kaWYKLSAgICB9IHBhdGNoOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVFN0dWJSb3V0
aW5lUHRyVGFnPiBzdGFydDsgLy8gVGhpcyBpcyBlaXRoZXIgdGhlIHN0YXJ0IG9mIHRoZSBpbmxp
bmUgSUMgZm9yICpieUlkIGNhY2hlcy4gb3IgdGhlIGxvY2F0aW9uIG9mIHBhdGNoYWJsZSBqdW1w
IGZvciAnaW5zdGFuY2VvZicgY2FjaGVzLgorICAgIENvZGVMb2NhdGlvbkxhYmVsPEpTSW50ZXJu
YWxQdHJUYWc+IGRvbmVMb2NhdGlvbjsKKyAgICBDb2RlTG9jYXRpb25DYWxsPEpTSW50ZXJuYWxQ
dHJUYWc+IHNsb3dQYXRoQ2FsbExvY2F0aW9uOworICAgIENvZGVMb2NhdGlvbkxhYmVsPEpJVFN0
dWJSb3V0aW5lUHRyVGFnPiBzbG93UGF0aFN0YXJ0TG9jYXRpb247CisKKyAgICBSZWdpc3RlclNl
dCB1c2VkUmVnaXN0ZXJzOwogCi0gICAgR1BSUmVnIGJhc2VHUFIoKSBjb25zdAorICAgIHVpbnQz
Ml90IGlubGluZVNpemUoKSBjb25zdAogICAgIHsKLSAgICAgICAgcmV0dXJuIHBhdGNoLmJhc2VH
UFI7CisgICAgICAgIGludDMyX3QgaW5saW5lU2l6ZSA9IE1hY3JvQXNzZW1ibGVyOjpkaWZmZXJl
bmNlQmV0d2VlbkNvZGVQdHIoc3RhcnQsIGRvbmVMb2NhdGlvbik7CisgICAgICAgIEFTU0VSVChp
bmxpbmVTaXplID49IDApOworICAgICAgICByZXR1cm4gaW5saW5lU2l6ZTsKICAgICB9CiAKLSAg
ICBDb2RlTG9jYXRpb25DYWxsPEpTSW50ZXJuYWxQdHJUYWc+IHNsb3dQYXRoQ2FsbExvY2F0aW9u
KCkgeyByZXR1cm4gcGF0Y2guc2xvd1BhdGhDYWxsTG9jYXRpb247IH0KLSAgICBDb2RlTG9jYXRp
b25MYWJlbDxKU0ludGVybmFsUHRyVGFnPiBkb25lTG9jYXRpb24oKSB7IHJldHVybiBwYXRjaC5k
b25lTG9jYXRpb247IH0KLSAgICBDb2RlTG9jYXRpb25MYWJlbDxKSVRTdHViUm91dGluZVB0clRh
Zz4gc2xvd1BhdGhTdGFydExvY2F0aW9uKCkgeyByZXR1cm4gcGF0Y2guc2xvd1BhdGhTdGFydExv
Y2F0aW9uOyB9CisgICAgR1BSUmVnIGJhc2VHUFI7CisgICAgR1BSUmVnIHZhbHVlR1BSOworICAg
IHVuaW9uIHsKKyAgICAgICAgR1BSUmVnIHRoaXNHUFI7CisgICAgICAgIEdQUlJlZyBwcm90b3R5
cGVHUFI7CisgICAgICAgIEdQUlJlZyBwcm9wZXJ0eUdQUjsKKyAgICB9IHJlZ3M7CisjaWYgVVNF
KEpTVkFMVUUzMl82NCkKKyAgICBHUFJSZWcgdmFsdWVUYWdHUFI7CisgICAgLy8gRklYTUU6IFsz
Mi1iaXRzXSBDaGVjayBpZiBTdHJ1Y3R1cmVTdHViSW5mbzo6YmFzZVRhZ0dQUiBpcyB1c2VkIHNv
bWV3aGVyZS4KKyAgICAvLyBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjA0NzI2CisgICAgR1BSUmVnIGJhc2VUYWdHUFI7CisgICAgdW5pb24geworICAgICAgICBHUFJS
ZWcgdGhpc1RhZ0dQUjsKKyAgICAgICAgR1BSUmVnIHByb3BlcnR5VGFnR1BSOworICAgIH0gdjsK
KyNlbmRpZgogCiAgICAgQ29kZUxvY2F0aW9uSnVtcDxKU0ludGVybmFsUHRyVGFnPiBwYXRjaGFi
bGVKdW1wKCkKICAgICB7IAogICAgICAgICBBU1NFUlQoYWNjZXNzVHlwZSA9PSBBY2Nlc3NUeXBl
OjpJbnN0YW5jZU9mKTsKLSAgICAgICAgcmV0dXJuIHBhdGNoLnN0YXJ0Lmp1bXBBdE9mZnNldDxK
U0ludGVybmFsUHRyVGFnPigwKTsKKyAgICAgICAgcmV0dXJuIHN0YXJ0Lmp1bXBBdE9mZnNldDxK
U0ludGVybmFsUHRyVGFnPigwKTsKICAgICB9CiAKICAgICBKU1ZhbHVlUmVncyB2YWx1ZVJlZ3Mo
KSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIEpTVmFsdWVSZWdzKAogI2lmIFVTRShKU1ZB
TFVFMzJfNjQpCi0gICAgICAgICAgICBwYXRjaC52YWx1ZVRhZ0dQUiwKKyAgICAgICAgICAgIHZh
bHVlVGFnR1BSLAogI2VuZGlmCi0gICAgICAgICAgICBwYXRjaC52YWx1ZUdQUik7CisgICAgICAg
ICAgICB2YWx1ZUdQUik7CiAgICAgfQogCiAgICAgSlNWYWx1ZVJlZ3MgcHJvcGVydHlSZWdzKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBKU1ZhbHVlUmVncygKICNpZiBVU0UoSlNWQUxV
RTMyXzY0KQotICAgICAgICAgICAgcGF0Y2gudi5wcm9wZXJ0eVRhZ0dQUiwKKyAgICAgICAgICAg
IHYucHJvcGVydHlUYWdHUFIsCiAjZW5kaWYKLSAgICAgICAgICAgIHBhdGNoLnUucHJvcGVydHlH
UFIpOworICAgICAgICAgICAgcmVncy5wcm9wZXJ0eUdQUik7CiAgICAgfQogCiAgICAgSlNWYWx1
ZVJlZ3MgYmFzZVJlZ3MoKSBjb25zdAogICAgIHsKICAgICAgICAgcmV0dXJuIEpTVmFsdWVSZWdz
KAogI2lmIFVTRShKU1ZBTFVFMzJfNjQpCi0gICAgICAgICAgICBwYXRjaC5iYXNlVGFnR1BSLAor
ICAgICAgICAgICAgYmFzZVRhZ0dQUiwKICNlbmRpZgotICAgICAgICAgICAgcGF0Y2guYmFzZUdQ
Uik7CisgICAgICAgICAgICBiYXNlR1BSKTsKICAgICB9CiAKICAgICBib29sIHRoaXNWYWx1ZUlz
SW5UaGlzR1BSKCkgY29uc3QgeyByZXR1cm4gYWNjZXNzVHlwZSA9PSBBY2Nlc3NUeXBlOjpHZXRC
eUlkV2l0aFRoaXM7IH0KSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhp
dENvbXBpbGVyQ29tbW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
ZGZnL0RGR09TUkV4aXRDb21waWxlckNvbW1vbi5jcHAJKHJldmlzaW9uIDI1MzA2MCkKKysrIFNv
dXJjZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHT1NSRXhpdENvbXBpbGVyQ29tbW9uLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjA2LDcgKzIwNiw3IEBAIHZvaWQqIGNhbGxlclJldHVyblBDKENvZGVC
bG9jayogYmFzZWxpbmUKICAgICAgICAgICAgICAgICBiYXNlbGluZUNvZGVCbG9ja0ZvckNhbGxl
ci0+ZmluZFN0dWJJbmZvKENvZGVPcmlnaW4oY2FsbEJ5dGVjb2RlSW5kZXgpKTsKICAgICAgICAg
ICAgIFJFTEVBU0VfQVNTRVJUKHN0dWJJbmZvKTsKIAotICAgICAgICAgICAganVtcFRhcmdldCA9
IHN0dWJJbmZvLT5kb25lTG9jYXRpb24oKS51bnRhZ2dlZEV4ZWN1dGFibGVBZGRyZXNzKCk7Cisg
ICAgICAgICAgICBqdW1wVGFyZ2V0ID0gc3R1YkluZm8tPmRvbmVMb2NhdGlvbi51bnRhZ2dlZEV4
ZWN1dGFibGVBZGRyZXNzKCk7CiAgICAgICAgICAgICBicmVhazsKICAgICAgICAgfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2VuZXJhdG9yLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvaml0L0pJVElubGluZUNhY2hlR2Vu
ZXJhdG9yLmNwcAkocmV2aXNpb24gMjUzMDYwKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2pp
dC9KSVRJbmxpbmVDYWNoZUdlbmVyYXRvci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUxLDE4ICs1
MSwxOCBAQCBKSVRJbmxpbmVDYWNoZUdlbmVyYXRvcjo6SklUSW5saW5lQ2FjaGVHCiAgICAgbV9z
dHViSW5mby0+Y29kZU9yaWdpbiA9IGNvZGVPcmlnaW47CiAgICAgbV9zdHViSW5mby0+Y2FsbFNp
dGVJbmRleCA9IGNhbGxTaXRlOwogCi0gICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVy
cyA9IHVzZWRSZWdpc3RlcnM7CisgICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVycyA9IHVzZWRS
ZWdpc3RlcnM7CiB9CiAKIHZvaWQgSklUSW5saW5lQ2FjaGVHZW5lcmF0b3I6OmZpbmFsaXplKAog
ICAgIExpbmtCdWZmZXImIGZhc3RQYXRoLCBMaW5rQnVmZmVyJiBzbG93UGF0aCwgQ29kZUxvY2F0
aW9uTGFiZWw8SklUU3R1YlJvdXRpbmVQdHJUYWc+IHN0YXJ0KQogewotICAgIG1fc3R1YkluZm8t
PnBhdGNoLnN0YXJ0ID0gc3RhcnQ7CisgICAgbV9zdHViSW5mby0+c3RhcnQgPSBzdGFydDsKIAot
ICAgIG1fc3R1YkluZm8tPnBhdGNoLmRvbmVMb2NhdGlvbiA9IGZhc3RQYXRoLmxvY2F0aW9uT2Y8
SlNJbnRlcm5hbFB0clRhZz4obV9kb25lKTsKKyAgICBtX3N0dWJJbmZvLT5kb25lTG9jYXRpb24g
PSBmYXN0UGF0aC5sb2NhdGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KG1fZG9uZSk7CiAKLSAgICBt
X3N0dWJJbmZvLT5wYXRjaC5zbG93UGF0aENhbGxMb2NhdGlvbiA9IHNsb3dQYXRoLmxvY2F0aW9u
T2Y8SlNJbnRlcm5hbFB0clRhZz4obV9zbG93UGF0aENhbGwpOwotICAgIG1fc3R1YkluZm8tPnBh
dGNoLnNsb3dQYXRoU3RhcnRMb2NhdGlvbiA9IHNsb3dQYXRoLmxvY2F0aW9uT2Y8SklUU3R1YlJv
dXRpbmVQdHJUYWc+KG1fc2xvd1BhdGhCZWdpbik7CisgICAgbV9zdHViSW5mby0+c2xvd1BhdGhD
YWxsTG9jYXRpb24gPSBzbG93UGF0aC5sb2NhdGlvbk9mPEpTSW50ZXJuYWxQdHJUYWc+KG1fc2xv
d1BhdGhDYWxsKTsKKyAgICBtX3N0dWJJbmZvLT5zbG93UGF0aFN0YXJ0TG9jYXRpb24gPSBzbG93
UGF0aC5sb2NhdGlvbk9mPEpJVFN0dWJSb3V0aW5lUHRyVGFnPihtX3Nsb3dQYXRoQmVnaW4pOwog
fQogCiBKSVRCeUlkR2VuZXJhdG9yOjpKSVRCeUlkR2VuZXJhdG9yKApAQCAtNzIsMTMgKzcyLDEz
IEBAIEpJVEJ5SWRHZW5lcmF0b3I6OkpJVEJ5SWRHZW5lcmF0b3IoCiAgICAgLCBtX2Jhc2UoYmFz
ZSkKICAgICAsIG1fdmFsdWUodmFsdWUpCiB7Ci0gICAgbV9zdHViSW5mby0+cGF0Y2guYmFzZUdQ
UiA9IGJhc2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnBhdGNoLnZhbHVlR1BSID0g
dmFsdWUucGF5bG9hZEdQUigpOwotICAgIG1fc3R1YkluZm8tPnBhdGNoLnUudGhpc0dQUiA9IElu
dmFsaWRHUFJSZWc7CisgICAgbV9zdHViSW5mby0+YmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigp
OworICAgIG1fc3R1YkluZm8tPnZhbHVlR1BSID0gdmFsdWUucGF5bG9hZEdQUigpOworICAgIG1f
c3R1YkluZm8tPnJlZ3MudGhpc0dQUiA9IEludmFsaWRHUFJSZWc7CiAjaWYgVVNFKEpTVkFMVUUz
Ml82NCkKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsK
LSAgICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZVRhZ0dQUiA9IHZhbHVlLnRhZ0dQUigpOwotICAg
IG1fc3R1YkluZm8tPnBhdGNoLnYudGhpc1RhZ0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgbV9z
dHViSW5mby0+YmFzZVRhZ0dQUiA9IGJhc2UudGFnR1BSKCk7CisgICAgbV9zdHViSW5mby0+dmFs
dWVUYWdHUFIgPSB2YWx1ZS50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT52LnRoaXNUYWdHUFIg
PSBJbnZhbGlkR1BSUmVnOwogI2VuZGlmCiB9CiAKQEAgLTEyMiw5ICsxMjIsOSBAQCBKSVRHZXRC
eUlkV2l0aFRoaXNHZW5lcmF0b3I6OkpJVEdldEJ5SWRXCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQo
dGhpc1JlZ3MucGF5bG9hZEdQUigpICE9IHRoaXNSZWdzLnRhZ0dQUigpKTsKIAotICAgIG1fc3R1
YkluZm8tPnBhdGNoLnUudGhpc0dQUiA9IHRoaXNSZWdzLnBheWxvYWRHUFIoKTsKKyAgICBtX3N0
dWJJbmZvLT5yZWdzLnRoaXNHUFIgPSB0aGlzUmVncy5wYXlsb2FkR1BSKCk7CiAjaWYgVVNFKEpT
VkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC52LnRoaXNUYWdHUFIgPSB0aGlzUmVn
cy50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT52LnRoaXNUYWdHUFIgPSB0aGlzUmVncy50YWdH
UFIoKTsKICNlbmRpZgogfQogCkBAIC0xNDIsNyArMTQyLDcgQEAgSklUUHV0QnlJZEdlbmVyYXRv
cjo6SklUUHV0QnlJZEdlbmVyYXRvcgogICAgICwgbV9lY21hTW9kZShlY21hTW9kZSkKICAgICAs
IG1fcHV0S2luZChwdXRLaW5kKQogewotICAgIG1fc3R1YkluZm8tPnBhdGNoLnVzZWRSZWdpc3Rl
cnMuY2xlYXIoc2NyYXRjaCk7CisgICAgbV9zdHViSW5mby0+dXNlZFJlZ2lzdGVycy5jbGVhcihz
Y3JhdGNoKTsKIH0KIAogdm9pZCBKSVRQdXRCeUlkR2VuZXJhdG9yOjpnZW5lcmF0ZUZhc3RQYXRo
KE1hY3JvQXNzZW1ibGVyJiBqaXQpCkBAIC0xODQsMjAgKzE4NCwyMCBAQCBKSVRJbnN0YW5jZU9m
R2VuZXJhdG9yOjpKSVRJbnN0YW5jZU9mR2VuCiAgICAgOiBKSVRJbmxpbmVDYWNoZUdlbmVyYXRv
cigKICAgICAgICAgY29kZUJsb2NrLCBjb2RlT3JpZ2luLCBjYWxsU2l0ZUluZGV4LCBBY2Nlc3NU
eXBlOjpJbnN0YW5jZU9mLCB1c2VkUmVnaXN0ZXJzKQogewotICAgIG1fc3R1YkluZm8tPnBhdGNo
LmJhc2VHUFIgPSB2YWx1ZTsKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZUdQUiA9IHJlc3Vs
dDsKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC51LnByb3RvdHlwZUdQUiA9IHByb3RvdHlwZTsKKyAg
ICBtX3N0dWJJbmZvLT5iYXNlR1BSID0gdmFsdWU7CisgICAgbV9zdHViSW5mby0+dmFsdWVHUFIg
PSByZXN1bHQ7CisgICAgbV9zdHViSW5mby0+cmVncy5wcm90b3R5cGVHUFIgPSBwcm90b3R5cGU7
CiAjaWYgVVNFKEpTVkFMVUUzMl82NCkKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC5iYXNlVGFnR1BS
ID0gSW52YWxpZEdQUlJlZzsKLSAgICBtX3N0dWJJbmZvLT5wYXRjaC52YWx1ZVRhZ0dQUiA9IElu
dmFsaWRHUFJSZWc7Ci0gICAgbV9zdHViSW5mby0+cGF0Y2gudi50aGlzVGFnR1BSID0gSW52YWxp
ZEdQUlJlZzsKKyAgICBtX3N0dWJJbmZvLT5iYXNlVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKKyAg
ICBtX3N0dWJJbmZvLT52YWx1ZVRhZ0dQUiA9IEludmFsaWRHUFJSZWc7CisgICAgbV9zdHViSW5m
by0+di50aGlzVGFnR1BSID0gSW52YWxpZEdQUlJlZzsKICNlbmRpZgogCi0gICAgbV9zdHViSW5m
by0+cGF0Y2gudXNlZFJlZ2lzdGVycy5jbGVhcihyZXN1bHQpOworICAgIG1fc3R1YkluZm8tPnVz
ZWRSZWdpc3RlcnMuY2xlYXIocmVzdWx0KTsKICAgICBpZiAoc2NyYXRjaDEgIT0gSW52YWxpZEdQ
UlJlZykKLSAgICAgICAgbV9zdHViSW5mby0+cGF0Y2gudXNlZFJlZ2lzdGVycy5jbGVhcihzY3Jh
dGNoMSk7CisgICAgICAgIG1fc3R1YkluZm8tPnVzZWRSZWdpc3RlcnMuY2xlYXIoc2NyYXRjaDEp
OwogICAgIGlmIChzY3JhdGNoMiAhPSBJbnZhbGlkR1BSUmVnKQotICAgICAgICBtX3N0dWJJbmZv
LT5wYXRjaC51c2VkUmVnaXN0ZXJzLmNsZWFyKHNjcmF0Y2gyKTsKKyAgICAgICAgbV9zdHViSW5m
by0+dXNlZFJlZ2lzdGVycy5jbGVhcihzY3JhdGNoMik7CiAKICAgICBtX3N0dWJJbmZvLT5wcm90
b3R5cGVJc0tub3duT2JqZWN0ID0gcHJvdG90eXBlSXNLbm93bk9iamVjdDsKIApAQCAtMjI2LDEz
ICsyMjYsMTMgQEAgSklUR2V0QnlWYWxHZW5lcmF0b3I6OkpJVEdldEJ5VmFsR2VuZXJhdAogewog
ICAgIG1fc3R1YkluZm8tPmhhc0NvbnN0YW50SWRlbnRpZmllciA9IGZhbHNlOwogCi0gICAgbV9z
dHViSW5mby0+cGF0Y2guYmFzZUdQUiA9IGJhc2UucGF5bG9hZEdQUigpOwotICAgIG1fc3R1Yklu
Zm8tPnBhdGNoLnUucHJvcGVydHlHUFIgPSBwcm9wZXJ0eS5wYXlsb2FkR1BSKCk7Ci0gICAgbV9z
dHViSW5mby0+cGF0Y2gudmFsdWVHUFIgPSByZXN1bHQucGF5bG9hZEdQUigpOworICAgIG1fc3R1
YkluZm8tPmJhc2VHUFIgPSBiYXNlLnBheWxvYWRHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT5yZWdz
LnByb3BlcnR5R1BSID0gcHJvcGVydHkucGF5bG9hZEdQUigpOworICAgIG1fc3R1YkluZm8tPnZh
bHVlR1BSID0gcmVzdWx0LnBheWxvYWRHUFIoKTsKICNpZiBVU0UoSlNWQUxVRTMyXzY0KQotICAg
IG1fc3R1YkluZm8tPnBhdGNoLmJhc2VUYWdHUFIgPSBiYXNlLnRhZ0dQUigpOwotICAgIG1fc3R1
YkluZm8tPnBhdGNoLnZhbHVlVGFnR1BSID0gcmVzdWx0LnRhZ0dQUigpOwotICAgIG1fc3R1Yklu
Zm8tPnBhdGNoLnYucHJvcGVydHlUYWdHUFIgPSBwcm9wZXJ0eS50YWdHUFIoKTsKKyAgICBtX3N0
dWJJbmZvLT5iYXNlVGFnR1BSID0gYmFzZS50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT52YWx1
ZVRhZ0dQUiA9IHJlc3VsdC50YWdHUFIoKTsKKyAgICBtX3N0dWJJbmZvLT52LnByb3BlcnR5VGFn
R1BSID0gcHJvcGVydHkudGFnR1BSKCk7CiAjZW5kaWYKIH0KIApJbmRleDogU291cmNlL0phdmFT
Y3JpcHRDb3JlL2ppdC9SZXBhdGNoLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvaml0L1JlcGF0Y2guY3BwCShyZXZpc2lvbiAyNTMwNjApCisrKyBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvaml0L1JlcGF0Y2guY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDUsNyArMjA1LDcg
QEAgc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlR2V0QnkoSgogCiAgICAgICAgICAg
ICAgICAgICAgIGJvb2wgZ2VuZXJhdGVkQ29kZUlubGluZSA9IElubGluZUFjY2Vzczo6Z2VuZXJh
dGVBcnJheUxlbmd0aChzdHViSW5mbywganNDYXN0PEpTQXJyYXkqPihiYXNlQ2VsbCkpOwogICAg
ICAgICAgICAgICAgICAgICBpZiAoZ2VuZXJhdGVkQ29kZUlubGluZSkgewotICAgICAgICAgICAg
ICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8u
c2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0QnlGdW5jdGlv
bihraW5kKSk7CisgICAgICAgICAgICAgICAgICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENh
bGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbiwgYXBwcm9wcmlhdGVP
cHRpbWl6aW5nR2V0QnlGdW5jdGlvbihraW5kKSk7CiAgICAgICAgICAgICAgICAgICAgICAgICBz
dHViSW5mby5pbml0QXJyYXlMZW5ndGgoKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVy
biBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAgLTIxNiw3ICsyMTYs
NyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVHZXRCeShKCiAgICAgICAgICAg
ICAgICAgaWYgKHN0dWJJbmZvLmNhY2hlVHlwZSgpID09IENhY2hlVHlwZTo6VW5zZXQgJiYgSW5s
aW5lQWNjZXNzOjppc0NhY2hlYWJsZVN0cmluZ0xlbmd0aChzdHViSW5mbykpIHsKICAgICAgICAg
ICAgICAgICAgICAgYm9vbCBnZW5lcmF0ZWRDb2RlSW5saW5lID0gSW5saW5lQWNjZXNzOjpnZW5l
cmF0ZVN0cmluZ0xlbmd0aChzdHViSW5mbyk7CiAgICAgICAgICAgICAgICAgICAgIGlmIChnZW5l
cmF0ZWRDb2RlSW5saW5lKSB7Ci0gICAgICAgICAgICAgICAgICAgICAgICBmdGxUaHVua0F3YXJl
UmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBh
cHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUZ1bmN0aW9uKGtpbmQpKTsKKyAgICAgICAgICAgICAg
ICAgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNs
b3dQYXRoQ2FsbExvY2F0aW9uLCBhcHByb3ByaWF0ZU9wdGltaXppbmdHZXRCeUZ1bmN0aW9uKGtp
bmQpKTsKICAgICAgICAgICAgICAgICAgICAgICAgIHN0dWJJbmZvLmluaXRTdHJpbmdMZW5ndGgo
KTsKICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAg
ICAgICAgICAgICAgICAgIH0KQEAgLTI3MSw3ICsyNzEsNyBAQCBzdGF0aWMgSW5saW5lQ2FjaGVB
Y3Rpb24gdHJ5Q2FjaGVHZXRCeShKCiAgICAgICAgICAgICAgICAgaWYgKGdlbmVyYXRlZENvZGVJ
bmxpbmUpIHsKICAgICAgICAgICAgICAgICAgICAgTE9HX0lDKChJQ0V2ZW50OjpHZXRCeVNlbGZQ
YXRjaCwgc3RydWN0dXJlLT5jbGFzc0luZm8oKSwgcHJvcGVydHlOYW1lLCBzbG90LnNsb3RCYXNl
KCkgPT0gYmFzZVZhbHVlKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZS0+c3RhcnRX
YXRjaGluZ1Byb3BlcnR5Rm9yUmVwbGFjZW1lbnRzKHZtLCBzbG90LmNhY2hlZE9mZnNldCgpKTsK
LSAgICAgICAgICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywg
c3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0
QnlGdW5jdGlvbihraW5kKSk7CisgICAgICAgICAgICAgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBh
dGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uLCBhcHByb3By
aWF0ZU9wdGltaXppbmdHZXRCeUZ1bmN0aW9uKGtpbmQpKTsKICAgICAgICAgICAgICAgICAgICAg
c3R1YkluZm8uaW5pdEdldEJ5SWRTZWxmKGNvZGVCbG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hl
ZE9mZnNldCgpLCBwcm9wZXJ0eU5hbWUpOwogICAgICAgICAgICAgICAgICAgICByZXR1cm4gUmV0
cnlDYWNoZUxhdGVyOwogICAgICAgICAgICAgICAgIH0KQEAgLTQwNyw3ICs0MDcsNyBAQCB2b2lk
IHJlcGF0Y2hHZXRCeShKU0dsb2JhbE9iamVjdCogZ2xvYmFsCiAgICAgU3VwZXJTYW1wbGVyU2Nv
cGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIAogICAgIGlmICh0cnlDYWNoZUdldEJ5
KGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCBiYXNlVmFsdWUsIHByb3BlcnR5TmFtZSwgc2xvdCwg
c3R1YkluZm8sIGtpbmQpID09IEdpdmVVcE9uQ2FjaGUpCi0gICAgICAgIGZ0bFRodW5rQXdhcmVS
ZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uKCksIGFw
cHJvcHJpYXRlR2V0QnlGdW5jdGlvbihraW5kKSk7CisgICAgICAgIGZ0bFRodW5rQXdhcmVSZXBh
dGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uLCBhcHByb3By
aWF0ZUdldEJ5RnVuY3Rpb24oa2luZCkpOwogfQogCiAKQEAgLTUwMyw3ICs1MDMsNyBAQCBzdGF0
aWMgSW5saW5lQ2FjaGVBY3Rpb24gdHJ5Q2FjaGVBcnJheUdlCiB2b2lkIHJlcGF0Y2hBcnJheUdl
dEJ5VmFsKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIENvZGVCbG9jayogY29kZUJsb2Nr
LCBKU1ZhbHVlIGJhc2UsIEpTVmFsdWUgaW5kZXgsIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5m
bykKIHsKICAgICBpZiAodHJ5Q2FjaGVBcnJheUdldEJ5VmFsKGdsb2JhbE9iamVjdCwgY29kZUJs
b2NrLCBiYXNlLCBpbmRleCwgc3R1YkluZm8pID09IEdpdmVVcE9uQ2FjaGUpCi0gICAgICAgIGZ0
bFRodW5rQXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExv
Y2F0aW9uKCksIG9wZXJhdGlvbkdldEJ5VmFsR2VuZXJpYyk7CisgICAgICAgIGZ0bFRodW5rQXdh
cmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9uLCBv
cGVyYXRpb25HZXRCeVZhbEdlbmVyaWMpOwogfQogCiBzdGF0aWMgVl9KSVRPcGVyYXRpb25fR1Nz
aUpKSSBhcHByb3ByaWF0ZUdlbmVyaWNQdXRCeUlkRnVuY3Rpb24oY29uc3QgUHV0UHJvcGVydHlT
bG90ICZzbG90LCBQdXRLaW5kIHB1dEtpbmQpCkBAIC01NzcsNyArNTc3LDcgQEAgc3RhdGljIElu
bGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlUHV0QnlJRAogICAgICAgICAgICAgICAgICAgICBib29s
IGdlbmVyYXRlZENvZGVJbmxpbmUgPSBJbmxpbmVBY2Nlc3M6OmdlbmVyYXRlU2VsZlByb3BlcnR5
UmVwbGFjZShzdHViSW5mbywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAg
ICAgICAgICAgICAgICAgaWYgKGdlbmVyYXRlZENvZGVJbmxpbmUpIHsKICAgICAgICAgICAgICAg
ICAgICAgICAgIExPR19JQygoSUNFdmVudDo6UHV0QnlJZFNlbGZQYXRjaCwgc3RydWN0dXJlLT5j
bGFzc0luZm8oKSwgaWRlbnQsIHNsb3QuYmFzZSgpID09IGJhc2VWYWx1ZSkpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1Yklu
Zm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nUHV0QnlJZEZ1
bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKKyAgICAgICAgICAgICAgICAgICAgICAgIGZ0bFRodW5r
QXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9u
LCBhcHByb3ByaWF0ZU9wdGltaXppbmdQdXRCeUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOwog
ICAgICAgICAgICAgICAgICAgICAgICAgc3R1YkluZm8uaW5pdFB1dEJ5SWRSZXBsYWNlKGNvZGVC
bG9jaywgc3RydWN0dXJlLCBzbG90LmNhY2hlZE9mZnNldCgpKTsKICAgICAgICAgICAgICAgICAg
ICAgICAgIHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAgICAgIH0KQEAg
LTcxMyw3ICs3MTMsNyBAQCB2b2lkIHJlcGF0Y2hQdXRCeUlEKEpTR2xvYmFsT2JqZWN0KiBnbG9i
CiAgICAgU3VwZXJTYW1wbGVyU2NvcGUgc3VwZXJTYW1wbGVyU2NvcGUoZmFsc2UpOwogICAgIAog
ICAgIGlmICh0cnlDYWNoZVB1dEJ5SUQoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VWYWx1
ZSwgc3RydWN0dXJlLCBwcm9wZXJ0eU5hbWUsIHNsb3QsIHN0dWJJbmZvLCBwdXRLaW5kKSA9PSBH
aXZlVXBPbkNhY2hlKQotICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2Nr
LCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbigpLCBhcHByb3ByaWF0ZUdlbmVyaWNQdXRC
eUlkRnVuY3Rpb24oc2xvdCwgcHV0S2luZCkpOworICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRj
aENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbiwgYXBwcm9wcmlh
dGVHZW5lcmljUHV0QnlJZEZ1bmN0aW9uKHNsb3QsIHB1dEtpbmQpKTsKIH0KIAogc3RhdGljIElu
bGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5CeUlEKApAQCAtNzU1LDcgKzc1NSw3IEBAIHN0YXRp
YyBJbmxpbmVDYWNoZUFjdGlvbiB0cnlDYWNoZUluQnlJRCgKICAgICAgICAgICAgICAgICBpZiAo
Z2VuZXJhdGVkQ29kZUlubGluZSkgewogICAgICAgICAgICAgICAgICAgICBMT0dfSUMoKElDRXZl
bnQ6OkluQnlJZFNlbGZQYXRjaCwgc3RydWN0dXJlLT5jbGFzc0luZm8oKSwgaWRlbnQsIHNsb3Qu
c2xvdEJhc2UoKSA9PSBiYXNlKSk7CiAgICAgICAgICAgICAgICAgICAgIHN0cnVjdHVyZS0+c3Rh
cnRXYXRjaGluZ1Byb3BlcnR5Rm9yUmVwbGFjZW1lbnRzKHZtLCBzbG90LmNhY2hlZE9mZnNldCgp
KTsKLSAgICAgICAgICAgICAgICAgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9j
aywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgb3BlcmF0aW9uSW5CeUlkT3B0aW1p
emUpOworICAgICAgICAgICAgICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJs
b2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbiwgb3BlcmF0aW9uSW5CeUlkT3B0aW1p
emUpOwogICAgICAgICAgICAgICAgICAgICBzdHViSW5mby5pbml0SW5CeUlkU2VsZihjb2RlQmxv
Y2ssIHN0cnVjdHVyZSwgc2xvdC5jYWNoZWRPZmZzZXQoKSk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBSZXRyeUNhY2hlTGF0ZXI7CiAgICAgICAgICAgICAgICAgfQpAQCAtODI1LDcgKzgy
NSw3IEBAIHZvaWQgcmVwYXRjaEluQnlJRChKU0dsb2JhbE9iamVjdCogZ2xvYmEKICAgICBTdXBl
clNhbXBsZXJTY29wZSBzdXBlclNhbXBsZXJTY29wZShmYWxzZSk7CiAKICAgICBpZiAodHJ5Q2Fj
aGVJbkJ5SUQoZ2xvYmFsT2JqZWN0LCBjb2RlQmxvY2ssIGJhc2VPYmplY3QsIHByb3BlcnR5TmFt
ZSwgd2FzRm91bmQsIHNsb3QsIHN0dWJJbmZvKSA9PSBHaXZlVXBPbkNhY2hlKQotICAgICAgICBm
dGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxM
b2NhdGlvbigpLCBvcGVyYXRpb25JbkJ5SWQpOworICAgICAgICBmdGxUaHVua0F3YXJlUmVwYXRj
aENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxMb2NhdGlvbiwgb3BlcmF0aW9u
SW5CeUlkKTsKIH0KIAogc3RhdGljIElubGluZUNhY2hlQWN0aW9uIHRyeUNhY2hlSW5zdGFuY2VP
ZigKQEAgLTg5Nyw3ICs4OTcsNyBAQCB2b2lkIHJlcGF0Y2hJbnN0YW5jZU9mKAogewogICAgIFN1
cGVyU2FtcGxlclNjb3BlIHN1cGVyU2FtcGxlclNjb3BlKGZhbHNlKTsKICAgICBpZiAodHJ5Q2Fj
aGVJbnN0YW5jZU9mKGdsb2JhbE9iamVjdCwgY29kZUJsb2NrLCB2YWx1ZVZhbHVlLCBwcm90b3R5
cGVWYWx1ZSwgc3R1YkluZm8sIHdhc0ZvdW5kKSA9PSBHaXZlVXBPbkNhY2hlKQotICAgICAgICBm
dGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENhbGxM
b2NhdGlvbigpLCBvcGVyYXRpb25JbnN0YW5jZU9mR2VuZXJpYyk7CisgICAgICAgIGZ0bFRodW5r
QXdhcmVSZXBhdGNoQ2FsbChjb2RlQmxvY2ssIHN0dWJJbmZvLnNsb3dQYXRoQ2FsbExvY2F0aW9u
LCBvcGVyYXRpb25JbnN0YW5jZU9mR2VuZXJpYyk7CiB9CiAKIHN0YXRpYyB2b2lkIGxpbmtTbG93
Rm9yKFZNJiwgQ2FsbExpbmtJbmZvJiBjYWxsTGlua0luZm8sIE1hY3JvQXNzZW1ibGVyQ29kZVJl
ZjxKSVRTdHViUm91dGluZVB0clRhZz4gY29kZVJlZikKQEAgLTEzNTAsMTMgKzEzNTAsMTMgQEAg
dm9pZCBsaW5rUG9seW1vcnBoaWNDYWxsKEpTR2xvYmFsT2JqZWN0KgogCiB2b2lkIHJlc2V0R2V0
QnkoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbywgR2V0
QnlLaW5kIGtpbmQpCiB7Ci0gICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywg
c3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24oKSwgYXBwcm9wcmlhdGVPcHRpbWl6aW5nR2V0
QnlGdW5jdGlvbihraW5kKSk7Ci0gICAgSW5saW5lQWNjZXNzOjpyZXdpcmVTdHViQXNKdW1wKHN0
dWJJbmZvLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9jYXRpb24oKSk7CisgICAgZnRsVGh1bmtB
d2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1YkluZm8uc2xvd1BhdGhDYWxsTG9jYXRpb24s
IGFwcHJvcHJpYXRlT3B0aW1pemluZ0dldEJ5RnVuY3Rpb24oa2luZCkpOworICAgIElubGluZUFj
Y2Vzczo6cmV3aXJlU3R1YkFzSnVtcChzdHViSW5mbywgc3R1YkluZm8uc2xvd1BhdGhTdGFydExv
Y2F0aW9uKTsKIH0KIAogdm9pZCByZXNldFB1dEJ5SUQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0
cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKIHsKLSAgICBWX0pJVE9wZXJhdGlvbl9HU3NpSkpJ
IHVub3B0aW1pemVkRnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0PFZfSklUT3BlcmF0aW9uX0dT
c2lKSkk+KHJlYWRQdXRJQ0NhbGxUYXJnZXQoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0aENh
bGxMb2NhdGlvbigpKS5leGVjdXRhYmxlQWRkcmVzcygpKTsKKyAgICBWX0pJVE9wZXJhdGlvbl9H
U3NpSkpJIHVub3B0aW1pemVkRnVuY3Rpb24gPSByZWludGVycHJldF9jYXN0PFZfSklUT3BlcmF0
aW9uX0dTc2lKSkk+KHJlYWRQdXRJQ0NhbGxUYXJnZXQoY29kZUJsb2NrLCBzdHViSW5mby5zbG93
UGF0aENhbGxMb2NhdGlvbikuZXhlY3V0YWJsZUFkZHJlc3MoKSk7CiAgICAgVl9KSVRPcGVyYXRp
b25fR1NzaUpKSSBvcHRpbWl6ZWRGdW5jdGlvbjsKICAgICBpZiAodW5vcHRpbWl6ZWRGdW5jdGlv
biA9PSBvcGVyYXRpb25QdXRCeUlkU3RyaWN0IHx8IHVub3B0aW1pemVkRnVuY3Rpb24gPT0gb3Bl
cmF0aW9uUHV0QnlJZFN0cmljdE9wdGltaXplKQogICAgICAgICBvcHRpbWl6ZWRGdW5jdGlvbiA9
IG9wZXJhdGlvblB1dEJ5SWRTdHJpY3RPcHRpbWl6ZTsKQEAgLTEzNjksMTkgKzEzNjksMTkgQEAg
dm9pZCByZXNldFB1dEJ5SUQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIAogICAgICAgICBvcHRpbWl6
ZWRGdW5jdGlvbiA9IG9wZXJhdGlvblB1dEJ5SWREaXJlY3ROb25TdHJpY3RPcHRpbWl6ZTsKICAg
ICB9CiAKLSAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5z
bG93UGF0aENhbGxMb2NhdGlvbigpLCBvcHRpbWl6ZWRGdW5jdGlvbik7Ci0gICAgSW5saW5lQWNj
ZXNzOjpyZXdpcmVTdHViQXNKdW1wKHN0dWJJbmZvLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9j
YXRpb24oKSk7CisgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1Yklu
Zm8uc2xvd1BhdGhDYWxsTG9jYXRpb24sIG9wdGltaXplZEZ1bmN0aW9uKTsKKyAgICBJbmxpbmVB
Y2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoc3R1YkluZm8sIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRM
b2NhdGlvbik7CiB9CiAKIHN0YXRpYyB2b2lkIHJlc2V0UGF0Y2hhYmxlSnVtcChTdHJ1Y3R1cmVT
dHViSW5mbyYgc3R1YkluZm8pCiB7Ci0gICAgTWFjcm9Bc3NlbWJsZXI6OnJlcGF0Y2hKdW1wKHN0
dWJJbmZvLnBhdGNoYWJsZUp1bXAoKSwgc3R1YkluZm8uc2xvd1BhdGhTdGFydExvY2F0aW9uKCkp
OworICAgIE1hY3JvQXNzZW1ibGVyOjpyZXBhdGNoSnVtcChzdHViSW5mby5wYXRjaGFibGVKdW1w
KCksIHN0dWJJbmZvLnNsb3dQYXRoU3RhcnRMb2NhdGlvbik7CiB9CiAKIHZvaWQgcmVzZXRJbkJ5
SUQoQ29kZUJsb2NrKiBjb2RlQmxvY2ssIFN0cnVjdHVyZVN0dWJJbmZvJiBzdHViSW5mbykKIHsK
LSAgICBmdGxUaHVua0F3YXJlUmVwYXRjaENhbGwoY29kZUJsb2NrLCBzdHViSW5mby5zbG93UGF0
aENhbGxMb2NhdGlvbigpLCBvcGVyYXRpb25JbkJ5SWRPcHRpbWl6ZSk7Ci0gICAgSW5saW5lQWNj
ZXNzOjpyZXdpcmVTdHViQXNKdW1wKHN0dWJJbmZvLCBzdHViSW5mby5zbG93UGF0aFN0YXJ0TG9j
YXRpb24oKSk7CisgICAgZnRsVGh1bmtBd2FyZVJlcGF0Y2hDYWxsKGNvZGVCbG9jaywgc3R1Yklu
Zm8uc2xvd1BhdGhDYWxsTG9jYXRpb24sIG9wZXJhdGlvbkluQnlJZE9wdGltaXplKTsKKyAgICBJ
bmxpbmVBY2Nlc3M6OnJld2lyZVN0dWJBc0p1bXAoc3R1YkluZm8sIHN0dWJJbmZvLnNsb3dQYXRo
U3RhcnRMb2NhdGlvbik7CiB9CiAKIHZvaWQgcmVzZXRJbnN0YW5jZU9mKFN0cnVjdHVyZVN0dWJJ
bmZvJiBzdHViSW5mbykK
</data>

          </attachment>
      

    </bug>

</bugzilla>