<?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>229366</bug_id>
          
          <creation_ts>2021-08-21 11:16:29 -0700</creation_ts>
          <short_desc>Remove GenericCallback</short_desc>
          <delta_ts>2021-09-22 19:45:27 -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>New Bugs</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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>berto</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>joepeck</cc>
    
    <cc>luiz</cc>
    
    <cc>pangle</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zeno</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1786149</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-21 11:16:29 -0700</bug_when>
    <thetext>Remove GenericCallback</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786151</commentid>
    <comment_count>1</comment_count>
      <attachid>436078</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-21 11:18:56 -0700</bug_when>
    <thetext>Created attachment 436078
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786430</commentid>
    <comment_count>2</comment_count>
      <attachid>436197</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-23 08:31:21 -0700</bug_when>
    <thetext>Created attachment 436197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786453</commentid>
    <comment_count>3</comment_count>
      <attachid>436204</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-23 09:37:15 -0700</bug_when>
    <thetext>Created attachment 436204
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786455</commentid>
    <comment_count>4</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-08-23 09:38:32 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See https://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786490</commentid>
    <comment_count>5</comment_count>
      <attachid>436215</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-23 11:42:48 -0700</bug_when>
    <thetext>Created attachment 436215
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786494</commentid>
    <comment_count>6</comment_count>
      <attachid>436218</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-23 11:58:22 -0700</bug_when>
    <thetext>Created attachment 436218
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786562</commentid>
    <comment_count>7</comment_count>
      <attachid>436238</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-23 14:32:26 -0700</bug_when>
    <thetext>Created attachment 436238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1786585</commentid>
    <comment_count>8</comment_count>
      <attachid>436241</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-08-23 15:20:26 -0700</bug_when>
    <thetext>Created attachment 436241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1788320</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-08-28 11:17:23 -0700</bug_when>
    <thetext>&lt;rdar://problem/82477798&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795821</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-21 15:47:27 -0700</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 436241 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795852</commentid>
    <comment_count>11</comment_count>
      <attachid>438886</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-21 16:39:11 -0700</bug_when>
    <thetext>Created attachment 438886
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795885</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-09-21 17:34:54 -0700</bug_when>
    <thetext>Committed r282856 (241987@main): &lt;https://commits.webkit.org/241987@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 438886.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1796328</commentid>
    <comment_count>13</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-09-22 19:45:27 -0700</bug_when>
    <thetext>Reverted in https://bugs.webkit.org/show_bug.cgi?id=230634</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436078</attachid>
            <date>2021-08-21 11:18:56 -0700</date>
            <delta_ts>2021-08-23 08:31:19 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210821111855.patch</filename>
            <type>text/plain</type>
            <size>47562</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiN2ZlZDE4NDVkZDA1N2Nm
NDEyOWZkMDkwYjgzMDZmOTQyZDc1MDguLjU3MzI5YTg0ZDgwM2I4MzcxNzY1OTE1MzNmNWYxMzIy
Y2IwMDIxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDgtMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAg
ICAgVGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3lu
Y1JlcGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5j
b2RlZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29k
ZSB3aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1
dCB3ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0
aW9uLgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJY29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VD
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0Zv
clBhaW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlv
bi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmlu
Z0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVy
Rmx1c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbToKKwogMjAyMS0wOC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgVUlFdmVudEF0dHJpYnV0aW9uIHRlc3RzIGxl
c3MgcGxhdGZvcm0gZGVwZW5kZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
YWxsYmFja0lELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmgKaW5kZXggMGFk
MzIxM2YxN2Y0MGU5MDhkYjZjNmU0ZWM5NTcxOGU3ZmYyZjEyOS4uNjJkNTc0MDliMTMyMDJkN2Rm
NzhmNDAzMzNjNzViYmI3NjQxMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2FsbGJhY2tJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhbGxiYWNrSUQuaApAQCAt
OTgsNyArOTgsNiBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQobmV3SUQgIT0gSGFzaFRyYWl0
czx1aW50NjRfdD46OmVtcHR5VmFsdWUoKSk7CiAgICAgfQogCi0gICAgZnJpZW5kIGNsYXNzIENh
bGxiYWNrTWFwOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja1R5cGU+IGZyaWVuZCBj
bGFzcyBTcGVjaWZpY0NhbGxiYWNrTWFwOwogICAgIGZyaWVuZCBjbGFzcyBPcHRpb25hbENhbGxi
YWNrSUQ7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkNhbGxiYWNrSURIYXNoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA5Y2YyN2UxZjRjNDg1ZjkyNWFlMmQ4ZGYxYTc3
MWExZDE4Mjg1NzJiLi4xNjc3MGVjZmY2NzAzNGQ1NTg1OWIxYTQ5YzNkNmQwZjYyM2JhMDMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMjUsMTAgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdp
bmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNp
bmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCmluZGV4IGFmYTkyOWNmMDkzZDIyZWM3
NmFkODZmZGEwM2I1MDFiYmZkMjlkYzMuLmZiYWFlOTczMDVhZmQ1YWM2NzUxMmU2YzcyZTBhYWIx
NmNhNGI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRh
Y2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQu
aApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJY29u
TG9hZGluZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2Fk
aW5nQ2xpZW50LmgKaW5kZXggYjFiMTFmNWM1MWEyYTQ2OGVhMGFjYTUyZTI2MzRmMGViZmFhMjFh
NS4uOTNjMTEwNmFiOTVkZjYzZmI2ZTEyMWEyN2NkMjE4N2QzNDAxZjE4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKQEAgLTI1
LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2su
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtJY29uLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCmluZGV4IDg2
MjY3MjA4OGViMjk3MmY2ZDU1ZTIzNmNlN2YzMDljNzJkNWQxNzUuLjE4NmQ2YjI0NmI2YzE2NzZl
ZDk2MzY4MWFlNjBhM2MzNzZlMWU5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKKyNpbmNsdWRlICJBUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EZXRhaWxzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDJkYjBmNTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFmYjVh
NmE0ZTdiZjAuLjJlZjJlN2U3MGEzOTAyYTM1NzhhNGQ3ZDA3NDY5MzYwM2M0MmEzNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSUluc3BlY3RvckNvbmZpZ3VyYXRpb24uaCIK
KyNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGM3N2EzYTYyMTNiMTY4
Y2Q3Yzk2MDQ4NDYyODFhYzM1ZjM1OTRjODkuLjUzYWQyZTI1OTA0ZDc0MTMxZjRlNGNhOWM5NGI2
ZTE0ZDdhMDU3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApA
QCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVu
dC5oIgorI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkFQ
SVNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgpAQCAtMzAwNSw4ICszMDA2LDggQEAgdm9pZCBXS1Bh
Z2VDbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcihXS1BhZ2VSZWYgcGFnZVJlZikKIHZvaWQgV0tQ
YWdlQ2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9p
ZCogY29udGV4dCwgV0tQYWdlUG9zdFByZXNlbnRhdGlvblVwZGF0ZUZ1bmN0aW9uIGNhbGxiYWNr
KQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPmNhbGxB
ZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbnRleHQsIGNhbGxiYWNrXShXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgY2FsbGJhY2soZXJyb3IgIT0gV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lID8gdG9BUEkoQVBJOjpFcnJvcjo6Y3JlYXRl
KCkucHRyKCkpIDogMCwgY29udGV4dCk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5jYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb250ZXh0LCBjYWxsYmFja10oKSB7CisgICAgICAgIGNh
bGxiYWNrKG51bGxwdHIsIGNvbnRleHQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5tbQppbmRleCBlMDcxMjZhYmJkOTQxMWFmZGMxMmIyYWJmZDA4YTRkMTA3MjQy
MTkzLi5mNTNjOTJhNzE0YmE2M2ExYjVkZWJhNmFmN2ZjZjc1NTlkNDAzNzdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlBhZ2VM
b2FkU3RhdGVPYnNlcnZlci5oIgogI2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKICNp
bXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldLQVBJQ2Fz
dC5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tC
YWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0
R3JvdXBJbnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRXJyb3JJbnRlcm5hbC5oCmluZGV4IDExYmQxZjVkMjI3NDMyMjA5ZGFjMDgxYTZlYjIy
ZmNjODQzNjFkNzAuLjk2MjkwMTZiY2Y1ZWJhMjNiYjFiNTY2MTIzMzMzNGZkNjEzYzZlMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvckludGVy
bmFsLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgIldLRXJyb3JQcml2YXRlLmgiCiAKICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogCiBS
ZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihXS0Vycm9yQ29kZSwgTlNFcnJvciogdW5k
ZXJseWluZ0Vycm9yID0gbmlsKTsKIE5TU3RyaW5nICpsb2NhbGl6ZWREZXNjcmlwdGlvbkZvckVy
cm9yQ29kZShXS0Vycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCAxZTM3ZGJlMWNhYTU3N2M0OTdhMTM5NTMwYzNiZDYzNjBk
MDQyYTkwLi4xZDYwMWMyYjY2OTY5OTQ5NDM1OTdkODc0MzA2MjJjNjhjNmQzM2NjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEyMzgs
MTMgKzEyMzgsNyBAQCBzdGF0aWMgV0tNZWRpYVBsYXliYWNrU3RhdGUgdG9XS01lZGlhUGxheWJh
Y2tTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWJhY2tTdGF0ZSBtZQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgX3BhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NhbGxT
bmFwc2hvdFJlY3QgPSBXVEZNb3ZlKGNhbGxTbmFwc2hvdFJlY3QpLCBoYW5kbGVyXShXZWJLaXQ6
OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3Ig
IT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7Ci0gICAgICAgICAgICB0cmFj
ZVBvaW50KFRha2VTbmFwc2hvdEVuZCwgc25hcHNob3RGYWlsZWRUcmFjZVZhbHVlKTsKLSAgICAg
ICAgICAgIGhhbmRsZXIobmlsLCBjcmVhdGVOU0Vycm9yKFdLRXJyb3JVbmtub3duKS5nZXQoKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQorICAgIF9wYWdlLT5jYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxsU25hcHNob3RSZWN0ID0gV1RGTW92ZShjYWxsU25h
cHNob3RSZWN0KSwgaGFuZGxlcl0oKSBtdXRhYmxlIHsKICAgICAgICAgLy8gQ3JlYXRlIGFuIGlt
cGxpY2l0IHRyYW5zYWN0aW9uIHRvIGVuc3VyZSBhIGNvbW1pdCB3aWxsIGhhcHBlbiBuZXh0Lgog
ICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhY3RpdmF0ZV07CiAKQEAgLTE1MTQsNyArMTUwOCw3IEBA
IGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gdG9GaW5kT3B0aW9ucyhXS0Zp
bmRDb25maWd1cmF0aW9uICpjb25maWd1CiAgICAgYXV0byB1cGRhdGVCbG9ja0NvcHkgPSBtYWtl
QmxvY2tQdHIodXBkYXRlQmxvY2spOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gc3Ryb25n
U2VsZiA9IHNlbGY7Ci0gICAgX3BhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUo
W3VwZGF0ZUJsb2NrQ29weSwgd2l0aG91dFdhaXRpbmdGb3JBbmltYXRlZFJlc2l6ZSwgc3Ryb25n
U2VsZl0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX3BhZ2UtPmNh
bGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0ZUJsb2NrQ29weSwgd2l0aG91dFdh
aXRpbmdGb3JBbmltYXRlZFJlc2l6ZSwgc3Ryb25nU2VsZl0gewogICAgICAgICBpZiAoIXVwZGF0
ZUJsb2NrQ29weSkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KaW5k
ZXggNDY1NjFkMzQzMTRhNzlkNDJjNTdlNTliZjc5MjdhZDFmYTQ1MTA0NS4uYmE1YmU3MDcwZGU0
MGYwNjNkMzZiODhmOWM0YzRmOWUwY2VlZTllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKKyNpbXBv
cnQgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiSW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIkluc3BlY3RvckV4dGVuc2lvblR5cGVzLmgiCiAjaW1w
b3J0ICJXS0Vycm9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
CmluZGV4IDQyYjQ0MzUwNGM4MmMyYjJhZmRlNzUwZDk2Y2E3MzdkMzNlM2MxNDIuLmY5MmU3NWZj
OTcxZjVlNmU0YzNhNDRkYmY3YjczMmE2M2JmOTAzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xNjg3LDcgKzE2ODcsNyBAQCBzdGF0aWMgV2ViQ29y
ZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24oTlNVcwogLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQg
KF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiB7CiAgICAgYXV0byB1cGRhdGVCbG9ja0NvcHkgPSBtYWtl
QmxvY2tQdHIodXBkYXRlQmxvY2spOwotICAgIF9kYXRhLT5faW1wbC0+cGFnZSgpLmNhbGxBZnRl
ck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0ZUJsb2NrQ29weV0oV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX2RhdGEtPl9pbXBsLT5wYWdlKCkuY2FsbEFmdGVy
TmV4dFByZXNlbnRhdGlvblVwZGF0ZShbdXBkYXRlQmxvY2tDb3B5XSB7CiAgICAgICAgIGlmICh1
cGRhdGVCbG9ja0NvcHkpCiAgICAgICAgICAgICB1cGRhdGVCbG9ja0NvcHkoKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggOWNiM2Y2NWFhMDQxYWUwZTVjNTgzNDdlYmQ0N2Rh
NmQ1ZDlhNjJiNC4uOWM4Nzc4YjU5MWMyZTU5Y2NiZTQ3NDkyOTUwNjM1NWFiODIzMDllYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBUElBdXRv
bWF0aW9uU2Vzc2lvbkNsaWVudC5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNs
dWRlICJBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCiAj
aW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgIkNvb3JkaW5h
dGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgpAQCAt
MjIwNSw5ICsyMjA2LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNo
b3QoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjoKIAogI2lmIFBMQVRGT1JN
KEdUSykKICAgICBGdW5jdGlvbjx2b2lkKFdlYlBhZ2VQcm94eSYsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6SW50UmVjdD4mJiwgUmVmPFRha2VTY3JlZW5zaG90Q2FsbGJhY2s+JiYpPiB0YWtlVmll
d1NuYXBzb3QgPSBbXShXZWJQYWdlUHJveHkmIHBhZ2UsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
SW50UmVjdD4mJiByZWN0LCBSZWY8VGFrZVNjcmVlbnNob3RDYWxsYmFjaz4mJiBjYWxsYmFjaykg
ewotICAgICAgICBwYWdlLmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3BhZ2UgPSBt
YWtlUmVmKHBhZ2UpLCByZWN0ID0gV1RGTW92ZShyZWN0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0oQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgICAg
ICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihJbnRlcm5hbEVycm9yKTsKKyAgICAg
ICAgcGFnZS5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtwYWdlID0gbWFrZVJlZihw
YWdlKSwgcmVjdCA9IFdURk1vdmUocmVjdCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KCkgbXV0YWJsZSB7CiAKICAgICAgICAgICAgIGF1dG8gc25hcHNob3QgPSBwYWdlLT50YWtlVmll
d1NuYXBzaG90KFdURk1vdmUocmVjdCkpOwogICAgICAgICAgICAgaWYgKCFzbmFwc2hvdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9t
YXRpb25TZXNzaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9t
YWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KaW5kZXggNWZjZDgxZDE0ZmYyNmMxZjRkYWM3
NjU4N2Q4YmI3NWI0NDc2NWU3ZC4uMmQwZDUzOTA2YTdhM2RiZjgzNWMzNjE4ODUxYWZlYWMyYTA3
NzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMv
V2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFj
cm9zLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JVSVByb3h5LmgiCisjaW1wb3J0ICJXZWJNb3Vz
ZUV2ZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRp
b25TZXNzaW9uLmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGRj
YWRmOGU5MmJiNDhkMDA1NmY3ZDIwMWM5NWQ4YmRhOTZhOGE1ZWUuLjIxZjVmNjNhN2Q0NGYzNmVl
MzMwZjEzYjcwZDM5MGQzYzhiYTVkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0zMyw2ICszMyw3IEBACiAj
aW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbXBvcnQgIldLQVBJQ2Fz
dC5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNp
bXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVHlw
ZVJlZldyYXBwZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggNDk1NTQ5ZTM4MmRmMDVlYjA4ZTgwZGZlMjAzNzYxYmEzMDk5YThjMi4uNmJi
ZTUyODdjYzQ2NDY0MzU2ZDMwYzhlNWQ5ZWM3OTkzZDQ0ZWRmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM1LDcgKzM1LDYgQEAKICNpbXBv
cnQgIkNvcmVUZXh0SGVscGVycy5oIgogI2ltcG9ydCAiRm9udEluZm8uaCIKICNpbXBvcnQgIkZ1
bGxzY3JlZW5DbGllbnQuaCIKLSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCAi
SW5zZXJ0VGV4dE9wdGlvbnMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdGl2
ZVdlYkdlc3R1cmVFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
RHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eS5oCmluZGV4IDgyNmM0MTdjNmM5YmExYzdlNmMyYzMyYTZhYjBmM2FiOGQ3MmYwZTAuLjM0
Y2RkYjViZmVlMzExODRkOWQ5MmIwNjgxZGVmNmE2NGQ3MjdjYTggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTI2LDggKzI2LDggQEAKIAogI3ByYWdt
YSBvbmNlCiAKKyNpbmNsdWRlICJDYWxsYmFja0lELmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJ
bmZvLmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUgPFdlYkNvcmUv
RmxvYXRSZWN0Lmg+CkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZpcnR1YWwgdm9p
ZCB3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXRlQ2hhbmdlSUQpIHsg
fQogICAgIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdU
Rjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIHsgQVNTRVJUX05PVF9S
RUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2lu
ZyhGdW5jdGlvbjx2b2lkKCk+JiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KIAogICAgIC8v
IEhpZGUgdGhlIGNvbnRlbnQgdW50aWwgdGhlIGN1cnJlbnRseSBwZW5kaW5nIHVwZGF0ZSBhcnJp
dmVzLgogICAgIHZpcnR1YWwgdm9pZCBoaWRlQ29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSgpIHsg
QVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0dlbmVyaWNDYWxsYmFjay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2VuZXJpY0Nh
bGxiYWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3OThkNzc3YmU2Y2ZlNzU3
ZmJkZGNhZDA5OWY5MGRlOGNiNGUyZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgK
KysrIC9kZXYvbnVsbApAQCAtMSwyMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaW5jbHVkZSAiQVBJRXJyb3IuaCIKLSNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0
VmFsdWUuaCIKLSNpbmNsdWRlICJDYWxsYmFja0lELmgiCi0jaW5jbHVkZSAiUHJvY2Vzc1Rocm90
dGxlci5oIgotI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgotI2luY2x1ZGUgIldLQVBJQ2Fz
dC5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVmQ291bnRlZC5o
PgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLWNs
YXNzIENhbGxiYWNrQmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPENhbGxiYWNrQmFzZT4gewotcHVi
bGljOgotICAgIGVudW0gY2xhc3MgRXJyb3IgewotICAgICAgICBOb25lLAotICAgICAgICBVbmtu
b3duLAotICAgICAgICBQcm9jZXNzRXhpdGVkLAotICAgICAgICBPd25lcldhc0ludmFsaWRhdGVk
LAotICAgIH07Ci0KLSAgICB2aXJ0dWFsIH5DYWxsYmFja0Jhc2UoKQotICAgIHsKLSAgICB9Ci0K
LSAgICBDYWxsYmFja0lEIGNhbGxiYWNrSUQoKSBjb25zdCB7IHJldHVybiBtX2NhbGxiYWNrSUQ7
IH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgVCogYXMoKQotICAgIHsKLSAgICAgICAg
aWYgKFQ6OnR5cGUoKSA9PSBtX3R5cGUpCi0gICAgICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
VCo+KHRoaXMpOwotCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQotICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlKEVycm9yKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAgICBzdHJ1Y3Qg
VHlwZVRhZyB7IH07Ci0gICAgdHlwZWRlZiBjb25zdCBUeXBlVGFnKiBUeXBlOwotCi0gICAgZXhw
bGljaXQgQ2FsbGJhY2tCYXNlKFR5cGUgdHlwZSwgUHJvY2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlW
YXJpYW50JiYgYWN0aXZpdHkpCi0gICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAgICAgICwgbV9j
YWxsYmFja0lEKENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKSkKLSAgICAgICAgLCBtX2FjdGl2aXR5
KFdURk1vdmUoYWN0aXZpdHkpKQotICAgIHsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgVHlwZSBt
X3R5cGU7Ci0gICAgQ2FsbGJhY2tJRCBtX2NhbGxiYWNrSUQ7Ci0gICAgUHJvY2Vzc1Rocm90dGxl
cjo6QWN0aXZpdHlWYXJpYW50IG1fYWN0aXZpdHk7Ci19OwotCi10ZW1wbGF0ZTx0eXBlbmFtZS4u
LiBUPgotY2xhc3MgR2VuZXJpY0NhbGxiYWNrIDogcHVibGljIENhbGxiYWNrQmFzZSB7Ci1wdWJs
aWM6Ci0gICAgdHlwZWRlZiBGdW5jdGlvbjx2b2lkIChULi4uLCBFcnJvcik+IENhbGxiYWNrRnVu
Y3Rpb247Ci0KLSAgICBzdGF0aWMgUmVmPEdlbmVyaWNDYWxsYmFjaz4gY3JlYXRlKENhbGxiYWNr
RnVuY3Rpb24mJiBjYWxsYmFjaywgUHJvY2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50JiYg
YWN0aXZpdHkgPSBudWxscHRyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcg
R2VuZXJpY0NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGFjdGl2aXR5KSkpOwot
ICAgIH0KLQotICAgIHZpcnR1YWwgfkdlbmVyaWNDYWxsYmFjaygpCi0gICAgewotICAgICAgICBB
U1NFUlQobV9vcmlnaW5UaHJlYWQucHRyKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKLSAgICAg
ICAgQVNTRVJUKCFtX2NhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICB2b2lkIHBlcmZvcm1DYWxsYmFj
a1dpdGhSZXR1cm5WYWx1ZShULi4uIHJldHVyblZhbHVlKQotICAgIHsKLSAgICAgICAgQVNTRVJU
KG1fb3JpZ2luVGhyZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0KLSAgICAgICAg
aWYgKCFtX2NhbGxiYWNrKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAgIGF1dG8gY2Fs
bGJhY2sgPSBzdGQ6OmV4Y2hhbmdlKG1fY2FsbGJhY2ssIHN0ZDo6bnVsbG9wdCk7Ci0gICAgICAg
IGNhbGxiYWNrLnZhbHVlKCkocmV0dXJuVmFsdWUuLi4sIEVycm9yOjpOb25lKTsKLSAgICB9Ci0K
LSAgICB2b2lkIHBlcmZvcm1DYWxsYmFjaygpCi0gICAgewotICAgICAgICBwZXJmb3JtQ2FsbGJh
Y2tXaXRoUmV0dXJuVmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoRXJyb3Ig
ZXJyb3IgPSBFcnJvcjo6VW5rbm93bikgZmluYWwKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX29y
aWdpblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotCi0gICAgICAgIGlmICgh
bV9jYWxsYmFjaykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIGNhbGxiYWNr
ID0gc3RkOjpleGNoYW5nZShtX2NhbGxiYWNrLCBzdGQ6Om51bGxvcHQpOwotICAgICAgICBjYWxs
YmFjay52YWx1ZSgpKHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUPjo6dHlwZSgpLi4u
LCBlcnJvcik7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEdlbmVyaWNDYWxsYmFjayhDYWxsYmFj
a0Z1bmN0aW9uJiYgY2FsbGJhY2ssIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYm
IGFjdGl2aXR5KQotICAgICAgICA6IENhbGxiYWNrQmFzZSh0eXBlKCksIFdURk1vdmUoYWN0aXZp
dHkpKQotICAgICAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCi0gICAgewotICAg
IH0KLQotICAgIGZyaWVuZCBjbGFzcyBDYWxsYmFja0Jhc2U7Ci0gICAgc3RhdGljIFR5cGUgdHlw
ZSgpCi0gICAgewotICAgICAgICBzdGF0aWMgVHlwZVRhZyB0YWc7Ci0gICAgICAgIHJldHVybiAm
dGFnOwotICAgIH0KLQotICAgIHN0ZDo6b3B0aW9uYWw8Q2FsbGJhY2tGdW5jdGlvbj4gbV9jYWxs
YmFjazsKLQotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgUmVmPFRocmVhZD4gbV9vcmlnaW5UaHJl
YWQgeyBUaHJlYWQ6OmN1cnJlbnQoKSB9OwotI2VuZGlmCi19OwotCi10eXBlZGVmIEdlbmVyaWND
YWxsYmFjazw+IFZvaWRDYWxsYmFjazsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4KLXZvaWQgaW52
YWxpZGF0ZUNhbGxiYWNrTWFwKEhhc2hNYXA8dWludDY0X3QsIFQ+JiBjYWxsYmFja01hcCwgQ2Fs
bGJhY2tCYXNlOjpFcnJvciBlcnJvcikKLXsKLSAgICBhdXRvIG1hcCA9IFdURk1vdmUoY2FsbGJh
Y2tNYXApOwotICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtYXAudmFsdWVzKCkpCi0gICAgICAg
IGNhbGxiYWNrLT5pbnZhbGlkYXRlKGVycm9yKTsKLX0KLQotY2xhc3MgQ2FsbGJhY2tNYXAgewot
cHVibGljOgotICAgIENhbGxiYWNrSUQgcHV0KFJlZjxDYWxsYmFja0Jhc2U+JiYgY2FsbGJhY2sp
Ci0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAg
ICAgIGF1dG8gY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0gICAgICAgIFJF
TEVBU0VfQVNTRVJUKGNhbGxiYWNrSUQuaXNWYWxpZCgpKTsKLSAgICAgICAgUkVMRUFTRV9BU1NF
UlQoIW1fbWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQubV9pZCkpOwotICAgICAgICBtX21hcC5zZXQo
Y2FsbGJhY2tJRC5tX2lkLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIHJldHVybiBjYWxs
YmFja0lEOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHVuc2lnbmVkIEksIHR5cGVuYW1lIFQsIHR5
cGVuYW1lLi4uIFU+Ci0gICAgc3RydWN0IEdlbmVyaWNDYWxsYmFja1R5cGUgewotICAgICAgICB0
eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNDYWxsYmFja1R5cGU8SSAtIDEsIFUuLi4sIFQ+Ojp0eXBl
IHR5cGU7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFU+Ci0gICAgc3RydWN0
IEdlbmVyaWNDYWxsYmFja1R5cGU8MSwgQ2FsbGJhY2tCYXNlOjpFcnJvciwgVS4uLj4gewotICAg
ICAgICB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxVLi4uPiB0eXBlOwotICAgIH07Ci0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPgotICAgIENhbGxiYWNrSUQgcHV0KEZ1bmN0aW9uPHZvaWQo
VC4uLik+JiYgZnVuY3Rpb24sIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFj
dGl2aXR5KQotICAgIHsKLSAgICAgICAgYXV0byBjYWxsYmFjayA9IEdlbmVyaWNDYWxsYmFja1R5
cGU8c2l6ZW9mLi4uKFQpLCBULi4uPjo6dHlwZTo6Y3JlYXRlKFdURk1vdmUoZnVuY3Rpb24pLCBX
VEZNb3ZlKGFjdGl2aXR5KSk7Ci0gICAgICAgIHJldHVybiBwdXQoV1RGTW92ZShjYWxsYmFjaykp
OwotICAgIH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgUmVmUHRyPFQ+IHRha2UoQ2Fs
bGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoY2FsbGJh
Y2tJRC5pc1ZhbGlkKCkpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7Ci0gICAgICAgIGF1dG8gYmFzZSA9IG1fbWFwLnRha2UoY2FsbGJhY2tJRC5tX2lkKTsKLSAg
ICAgICAgaWYgKCFiYXNlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0KLSAgICAgICAg
cmV0dXJuIGFkb3B0UmVmKGJhc2UubGVha1JlZigpLT5hczxUPigpKTsKLSAgICB9Ci0KLSAgICB2
b2lkIGludmFsaWRhdGUoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikKLSAgICB7Ci0gICAgICAg
IFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAgaW52YWxpZGF0ZUNh
bGxiYWNrTWFwKG1fbWFwLCBlcnJvcik7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEhhc2hNYXA8
dWludDY0X3QsIFJlZlB0cjxDYWxsYmFja0Jhc2U+PiBtX21hcDsKLX07Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQ
cm94eS5jcHAKaW5kZXggMjM1MTJhZjBmMWQ1ZWFmMWZlYThlZmMzYjg1Yzk0MmM2YmY1MzZmZi4u
YmU1ZTY2YzBmYTU1MzJkYjVlYjMzMmI3YjkwNWQyNTJkZjgwY2Y3OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29u
dHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3
IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCiAjaW5jbHVkZSAiQVBJSW5z
cGVjdG9yRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyTWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eU1lc3NhZ2Vz
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRy
b2xsZXIubW0KaW5kZXggZjBkYzJmYTNlMWY3YjFkZTk2ODk3YjEwYjE2ZGU3OGYyZmZmMjZiNS4u
MjkyODdiYTJmYjcyMTJlMDBkMjZkNDVlN2NhNmFjNTg1ZjNhZGUxYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9s
bGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjksNyBAQAogI2lmIFBMQVRGT1JNKE1B
QykKIAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgotI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJ
bmZvLmg+CisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yUmVzb3Vy
Y2VVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW1wb3J0ICJXS0luc3BlY3RvcldLV2ViVmlldy5oIgog
I2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvbi5oPgpAQCAtNDUsNiArNDUsNyBAQAog
I2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JDb25maWd1cmF0
aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgorI2ltcG9y
dCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIAog
c3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tJbnNwZWN0b3JSZXNvdXJjZVNjaGVtZSA9IEAiaW5z
cGVjdG9yLXJlc291cmNlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNw
cAppbmRleCA3NjA2MzFjNDkwZjY0MzNmMzQxYTQzYmQ4ODFkNTQ1ZjRhOWI3M2FlLi45YTczNGFk
YjFlNjI5YTViYjg3NjUwMzkzNmQzYjZlNDIwOTA3ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmlj
YXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJQXJy
YXkuaCIKICNpbmNsdWRlICJBUElOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIkFQ
SVNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVk
ZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlck1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCBlMzJiZjdiMzU5MjZmYzhhYjMwZTli
NDVlMDI0NTBiMGZlNmExMmNlLi43YjZkNTBlMzJmZTA3YzFjNTI4M2U5N2QxMTdiNmRhZWIxOGYw
OWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQ
cm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJSZW1vdGVM
YXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiVHJhbnNhY3Rpb25JRC5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvQW5pbWF0aW9uRnJhbWVSYXRlLmg+CkBAIC02Nyw3ICs2OCw3IEBAIHByaXZhdGU6CiAg
ICAgCiAgICAgLy8gRm9yIG5vdywgYWxsIGNhbGxiYWNrcyBhcmUgY2FsbGVkIGJlZm9yZSBjb21t
aXR0aW5nIGNoYW5nZXMsIGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlIG9ubHkgY2xpZW50IHJlcXVp
cmVzLgogICAgIC8vIE9uY2Ugd2UgaGF2ZSBvdGhlciBjYWxsYmFja3MsIGl0IG1heSBtYWtlIHNl
bnNlIHRvIGhhdmUgYSBiZWZvcmUtY29tbWl0L2FmdGVyLWNvbW1pdCBvcHRpb24uCi0gICAgdm9p
ZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCkgb3ZlcnJpZGU7CkBAIC0x
MTksNyArMTIwLDcgQEAgcHJpdmF0ZToKICAgICBUcmFuc2FjdGlvbklEIG1fdHJhbnNhY3Rpb25J
REZvclVuaGlkaW5nQ29udGVudDsKICAgICBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQgbV9hY3Rpdml0
eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0eVN0YXRlQ2hhbmdlQXN5bmNocm9ub3VzIH07CiAKLSAg
ICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSUQsIHN0ZDo6
cGFpcjxGdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6
QmFja2dyb3VuZEFjdGl2aXR5Pj4+IG1fY2FsbGJhY2tzOwogCiAgICAgUmV0YWluUHRyPFdLT25l
U2hvdERpc3BsYXlMaW5rSGFuZGxlcj4gbV9kaXNwbGF5TGlua0hhbmRsZXI7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBiNGU0YzZj
MGRhODAzMjYxMjk1YmRkYWZkNDU1YjdjYTk5Yzg1M2EwLi5mZjY1NGZhZTc5MTUzNjM0YTc4ODBl
ZWIwZDFjOTdlYzk2MWUxMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJh
d2luZ0FyZWFQcm94eS5tbQpAQCAtMTI3LDcgKzEyNyw2IEBAIFJlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkoV2ViUGFnZVByb3h5
JiB3CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6On5SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICBtX2NhbGxiYWNrcy5pbnZhbGlkYXRlKENhbGxiYWNr
QmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwogICAgIHByb2Nlc3MoKS5yZW1vdmVN
ZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKIAogI2lmIFBMQVRGT1JNKElP
U19GQU1JTFkpCkBAIC0yNjksOCArMjY4LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICAg
ICAgICAgbV93ZWJQYWdlUHJveHkuZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUobWlsZXN0b25lcyk7
CiAKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrSUQgOiBsYXllclRyZWVUcmFuc2FjdGlvbi5jYWxs
YmFja0lEcygpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFr
ZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpKQotICAgICAgICAgICAgY2FsbGJhY2stPnBlcmZv
cm1DYWxsYmFjaygpOworICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRh
a2UoY2FsbGJhY2tJRCkuZmlyc3QpCisgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgIH0KIH0K
IApAQCAtNDcxLDE0ICs0NzAsMTYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXQKICAgICB9CiB9
CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hBZnRlckVu
c3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
IGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNr
RnVuY3Rpb24pCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2Vzcygp
KSB7Ci0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJX
YXNJbnZhbGlkYXRlZCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2Fj
dGlvbkNhbGxiYWNrSUQobV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiks
IHByb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmciX3MpKSkpOwor
ICAgIGF1dG8gY2FsbGJhY2tJRCA9IENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKTsKKyAgICBtX2Nh
bGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgc3RkOjptYWtlX3BhaXIoV1RGTW92ZShjYWxsYmFja0Z1
bmN0aW9uKSwgcHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eSgiUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyJf
cykubW92ZVRvVW5pcXVlUHRyKCkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6
QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpoaWRlQ29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSgp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGEy
NTI4YzJjMGUwZDdlMTMwOTg2MTZiMzE1MDg4NjZlZjk4NDc2MTMuLmU4NTYwNmFkMDUyNDVkNWIx
YTEwM2YyMmIwY2IwNjBkNjA0OTgxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5oIgogCisjaW5jbHVkZSAiV0tBUElDYXN0Lmgi
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDNk
Y2Y1NGFkN2M4YmFiMWI1YWI2YTZlYzI4ZjVhMWY4NzFhNDE5MWMuLmI5ZGMzYjc0OWY4NGNjMjk3
YzNhZGE2NjRiMDdjYjI2ZjQxMWE1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC0yNiw5ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UK
IAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgog
I2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVt
ZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5j
bHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVk
ZSA8d3RmL0hhc2hNYXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApp
bmRleCAzOTFiMDI3MzYyODM0MWVkYWE4ODMwYjM3NGYwZmIxMzEyNDAxNzJhLi5kYzhjZDg1NGU1
MTAyNDVhMDMwYWNiZWU0OGFkMmMxOTlmOTQ2ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViRnJhbWVQcm94eS5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpbmNsdWRlICJBUElPYmplY3Qu
aCIKICNpbmNsdWRlICJGcmFtZUxvYWRTdGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFj
ay5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgpA
QCAtNDEsNiArNDAsNyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE5hdmlnYXRpb247Citj
bGFzcyBVUkw7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHAKaW5kZXggNzBlZDlkYTRkNDVkZDNiNTE0YTNlYTA5MjJmOWQ2ZThmNGY1
MzBkOS4uYzhjY2FlMGU3MTRlMzU3NWYwZjI5YjM5MDUxMWM4OTgxMTg5OWVkYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5j
bHVkZSAiQVBJUG9saWN5Q2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJUmVzb3VyY2VMb2FkQ2xpZW50
LmgiCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJBUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJBUElVSUNsaWVudC5oIgogI2luY2x1ZGUgIkFQ
SVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJBUElXZWJzaXRlUG9saWNpZXMuaCIKQEAgLTQ0NjMs
OSArNDQ2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb3JjZVJlcGFpbnQoQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgIG1fZHJhd2luZ0FyZWEtPndhaXRGb3JCYWNr
aW5nU3RvcmVVcGRhdGVPbk5leHRQYWludCgpOwogCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJQYWdlOjpGb3JjZVJlcGFpbnQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBt
YWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7
Ci0gICAgICAgIGNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NhbGxiYWNrID0gV1RG
TW92ZShjYWxsYmFjayldIChhdXRvKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7
Ci0gICAgICAgIH0pOworICAgICAgICBjYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdU
Rk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApAQCAtOTc1NiwxMiArOTc1NSwxMCBAQCB2
b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJXaGVlbEV2ZW50VGVzdE1vbml0b3IoKQogICAgIHNlbmQo
TWVzc2FnZXM6OldlYlBhZ2U6OkNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12
b2lkIFdlYlBhZ2VQcm94eTo6Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXVEY6OkZ1
bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJQ
YWdlUHJveHk6OmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoRnVuY3Rpb248dm9pZCgp
PiYmIGNhbGxiYWNrKQogewotICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSB8fCAhbV9kcmF3
aW5nQXJlYSkgewotICAgICAgICBjYWxsYmFjayhDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldh
c0ludmFsaWRhdGVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAoIWhhc1J1bm5p
bmdQcm9jZXNzKCkgfHwgIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVybiBjYWxsYmFjaygp
OwogCiAgICAgbV9kcmF3aW5nQXJlYS0+ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEZN
b3ZlKGNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmlu
ZGV4IGJiZTYzNDA4NmNhYmYxNjE3MWMwNDU5M2E2YjkwMGUwMjE3N2E3YmUuLjliYWNjNDU5YmQ1
YTE4MmMzMDRmZWJiMTllOTEzZTJkZTc2OGY3MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5oCkBAIC0xOTUsNiArMTk1LDcgQEAgaW50ZXJmYWNlIElEM0QxMURldmljZTE7
CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7CitjbGFzcyBBcnJheTsKIGNsYXNzIEF0dGFjaG1l
bnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CiBjbGFzcyBDb250ZXh0TWVudUNsaWVudDsKQEAgLTIw
NSwxMyArMjA2LDE5IEBAIGNsYXNzIEZpbmRNYXRjaGVzQ2xpZW50OwogY2xhc3MgRm9ybUNsaWVu
dDsKIGNsYXNzIEZ1bGxzY3JlZW5DbGllbnQ7CiBjbGFzcyBIaXN0b3J5Q2xpZW50OworY2xhc3Mg
SGl0VGVzdFJlc3VsdDsKIGNsYXNzIEljb25Mb2FkaW5nQ2xpZW50OwogY2xhc3MgTG9hZGVyQ2xp
ZW50OwogY2xhc3MgTmF2aWdhdGlvbjsKK2NsYXNzIE5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBO
YXZpZ2F0aW9uQ2xpZW50OworY2xhc3MgTmF2aWdhdGlvblJlc3BvbnNlOworY2xhc3MgUGFnZUNv
bmZpZ3VyYXRpb247CiBjbGFzcyBQb2xpY3lDbGllbnQ7CiBjbGFzcyBSZXNvdXJjZUxvYWRDbGll
bnQ7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7CiBjbGFzcyBVSUNsaWVudDsKK2NsYXNz
IFVSTDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CiAKQEAgLTMzMiw3ICszMzksMTAgQEAgdHlwZWRl
ZiBIV05EIFBsYXRmb3JtVmlld1dpZGdldDsKIG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBB
dWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5OworY2xhc3MgQXV0aGVudGljYXRpb25D
aGFsbGVuZ2VQcm94eTsKK2NsYXNzIENhbGxiYWNrSUQ7CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5
OworY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdhbWVwYWREYXRhOwogY2xhc3MgTWVkaWFV
c2FnZU1hbmFnZXI7CiBjbGFzcyBOYXRpdmVXZWJHZXN0dXJlRXZlbnQ7CkBAIC0zNjMsNiArMzcz
LDcgQEAgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZENhY2hlOwogY2xh
c3MgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OworY2xhc3MgV2ViSW5z
cGVjdG9yVUlQcm94eTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2
ZW50OwogY2xhc3MgV2ViTmF2aWdhdGlvblN0YXRlOwpAQCAtNDA3LDYgKzQxOCw3IEBAIHN0cnVj
dCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBvcHVwSXRlbTsKIHN0cnVjdCBX
ZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsKIAorZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQx
Nl90OwogZW51bSBjbGFzcyBJbWFnZUFuYWx5c2lzVHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNz
IFRhcEhhbmRsaW5nUmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dFJlY29nbml0aW9u
VXBkYXRlUmVzdWx0IDogdWludDhfdDsKQEAgLTQxNiw2ICs0MjgsOCBAQCBlbnVtIGNsYXNzIFF1
aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFVuZG9PclJlZG8g
OiBib29sOwogZW51bSBjbGFzcyBXZWJDb250ZW50TW9kZSA6IHVpbnQ4X3Q7CiAKK3R5cGVkZWYg
dWludDMyX3QgU25hcHNob3RPcHRpb25zOworCiAjaWYgSEFWRShWSVNJQklMSVRZX1BST1BBR0FU
SU9OX1ZJRVcpCiB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKICNlbmRp
ZgpAQCAtMTYxNCw3ICsxNjI4LDcgQEAgcHVibGljOgogCiAgICAgLy8gRm9yIHRlc3RpbmcKICAg
ICB2b2lkIGNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKCk7Ci0gICAgdm9pZCBjYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpF
cnJvcik+JiYpOworICAgIHZvaWQgY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShGdW5j
dGlvbjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRp
b25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMxZDc4MzZjZDJjNDRmMmQ4
NzZkYzkzMzA0MTMxLi5lNzJjZThmNTlhNGEyYjJhMGY1N2VjOGY3MmE3NGI1ZjI2M2VhZWQ1IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zNiw2ICsz
Niw4IEBACiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBhZ2VDb25m
aWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCisj
aW5jbHVkZSAiQVBJU3RyaW5nLmgiCisjaW5jbHVkZSAiQVBJVVJMUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkF1eGlsaWFyeVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHku
aCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKQEAgLTU1LDYgKzU3LDcgQEAK
ICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1
ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVk
ZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgi
CiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMDUzNTlhN2RkNDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3
MzU1Y2E4YS4uNzQ2NmIwMWEwYzE5MGJmY2MzYTg3ZDQyZDZhYTUwYTMyMjYwNzMyZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yOSw3ICsyOSw2IEBACiAj
aW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0Nh
bGxiYWNrLmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291
bnRlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VS
ZWNlaXZlck1hcC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9W
aWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KaW5kZXggZDE0ZGQ0YzcyYjgxZTQ1N2YxNmMwZDk5
OGRiZjcyODRiMjg1ZDM3ZC4uZjdmZDFlNjc4NDdiNzY3NjExODk2ZTI5NmIyYTQxNjhjMDY4MzVi
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1
cmVDb250cm9sbGVySU9TLm1tCkBAIC0zNzEsNyArMzcxLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNv
bnRyb2xsZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJ
dGVtLAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZHJhd2luZ0Fy
ZWEtPmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoW3BhZ2VJRCwgZ2VzdHVyZUlEXSAoQ2Fs
bGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBkcmF3aW5nQXJlYS0+ZGlzcGF0Y2hB
ZnRlckVuc3VyaW5nRHJhd2luZyhbcGFnZUlELCBnZXN0dXJlSURdIHsKICAgICAgICAgICAgIGlm
IChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gY29udHJvbGxlckZvckdlc3R1cmUocGFnZUlELCBn
ZXN0dXJlSUQpKQogICAgICAgICAgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT53aWxsQ29tbWl0
UG9zdFN3aXBlVHJhbnNpdGlvbkxheWVyVHJlZShlcnJvciA9PSBDYWxsYmFja0Jhc2U6OkVycm9y
OjpOb25lKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQppbmRleCA2N2JmZjA0MmM0ZjQ5OTNi
MTA5Mjc4YjczZTRlM2VkOTQ4MzE4NTU4Li5iNWQ0NThhZDkwZmQ0YzQ5ZjJkNDM1ZTk3MWYyMmUz
YTdkMWUyMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250
ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ5OTMsNyArNDk5Myw3IEBAIHN0YXRpYyB2
b2lkIHNlbGVjdGlvbkNoYW5nZWRXaXRoVG91Y2goV0tDb250ZW50VmlldyAqdmlldywgY29uc3Qg
V2ViQ29yZTo6SW50UG9pCiB7CiAgICAgX2lnbm9yZVNlbGVjdGlvbkNvbW1hbmRGYWRlQ291bnQr
KzsKICAgICBfcGFnZS0+c2NoZWR1bGVGdWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsKLSAgICBfcGFn
ZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0
cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0gKGF1dG8pIHsKKyAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4
dFByZXNlbnRhdGlvblVwZGF0ZShbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3
PihzZWxmKV0gewogICAgICAgICBpZiAoYXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkp
CiAgICAgICAgICAgICBzdHJvbmdTZWxmLT5faWdub3JlU2VsZWN0aW9uQ29tbWFuZEZhZGVDb3Vu
dC0tOwogICAgIH0pOwpAQCAtOTEwNyw3ICs5MTA3LDcgQEAgc3RhdGljIFZlY3RvcjxXZWJDb3Jl
OjpJbnRTaXplPiBzaXplc09mUGxhY2Vob2xkZXJFbGVtZW50c1RvSW5zZXJ0V2hlbkRyb3BwaW5n
SXQKICAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERyb3AsICJEcmFnIGludGVyYWN0aW9uIHdp
bGxBbmltYXRlQ2FuY2VsV2l0aEFuaW1hdG9yIChhbmltYXRpb24gY29tcGxldGlvbiBibG9jayBm
aXJlZCkiKTsKICAgICAgICAgcGFnZS0+ZHJhZ0NhbmNlbGxlZCgpOwogICAgICAgICBpZiAoYXV0
byBjb21wbGV0aW9uID0gcHJvdGVjdGVkU2VsZi0+X2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS50
YWtlRHJhZ0NhbmNlbFNldERvd25CbG9jaygpKSB7Ci0gICAgICAgICAgICBwYWdlLT5jYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb21wbGV0aW9uLCBwcm90ZWN0ZWRTZWxmXSAoV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CisgICAgICAgICAgICBwYWdlLT5jYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb21wbGV0aW9uLCBwcm90ZWN0ZWRTZWxmXSB7CiAgICAg
ICAgICAgICAgICAgY29tcGxldGlvbigpOwogICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYt
Pl9pc0FuaW1hdGluZ0RyYWdDYW5jZWwgPSBOTzsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggZTIyODJlYjNmOWZhZjRmNjAxZTJjMGM2NDFjYTc2
ZmFmOGY4Y2I0Yy4uNGI5MWI5YWY4NWE4YWE5YzZjNDI5OWQ4NzQyYTkwZmIxODAwN2M2YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6Rmxv
YXRQb2ludCBvcmlnaW4pIG92ZXJyaWRlOwogCiAgICAgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlQWN0
aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXRlQ2hhbmdlSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlz
cGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0Ry
YXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmKSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoUHJl
c2VudGF0aW9uQ2FsbGJhY2tzQWZ0ZXJGbHVzaGluZ0xheWVycyhjb25zdCBWZWN0b3I8Q2FsbGJh
Y2tJRD4mKSBmaW5hbDsKIAogICAgIHZvaWQgd2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpIG92ZXJy
aWRlOwpAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgogICAgIC8vIFRoZSBsYXN0IG1heG1pdW0g
c2l6ZSBmb3Igc2l6ZS10by1jb250ZW50IGF1dG8tc2l6aW5nIHdlIHNlbnQgdG8gdGhlIHdlYiBw
cm9jZXNzLgogICAgIFdlYkNvcmU6OkludFNpemUgbV9sYXN0U2VudFNpemVUb0NvbnRlbnRBdXRv
U2l6ZU1heGltdW1TaXplOwogCi0gICAgQ2FsbGJhY2tNYXAgbV9jYWxsYmFja3M7CisgICAgSGFz
aE1hcDxDYWxsYmFja0lELCBGdW5jdGlvbjx2b2lkKCk+PiBtX2NhbGxiYWNrczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQppbmRl
eCBlNjE2YWZmZGUzNmRmNGEwMWY4YmJiYmZmMDhhMzBjZTdmZDE0YjU5Li4yYTc2Y2FiNWZhZTVk
OTNmNWVhZTViNzk3NGVhM2JmN2U1MzdkZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eS5tbQpAQCAtNTAsNyArNTAsNiBAQCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVBy
b3h5OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5KFdlYlBhZ2VQcgogCiBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eSgpCiB7Ci0gICAgbV9jYWxsYmFja3MuaW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6
OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5OjpkZXZpY2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCkBAIC0yMDMs
MjEgKzIwMiwyMyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmNv
bW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBGbG9hdAogICAgIHNlbmQoTWVzc2FnZXM6
OkRyYXdpbmdBcmVhOjpDb21taXRUcmFuc2llbnRab29tKHNjYWxlLCBvcmlnaW4pKTsKIH0KIAot
dm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5z
dXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYg
Y2FsbGJhY2spCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogewog
ICAgIGlmICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBj
YWxsYmFjayhDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKKyAgICAg
ICAgY2FsbGJhY2soKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2Fn
ZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQobV9jYWxsYmFja3MucHV0
KFdURk1vdmUoY2FsbGJhY2spLCBudWxscHRyKSkpOworICAgIGF1dG8gY2FsbGJhY2tJRCA9IENh
bGxiYWNrSUQ6OmdlbmVyYXRlSUQoKTsKKyAgICBtX2NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwg
V1RGTW92ZShjYWxsYmFjaykpOworICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRU
cmFuc2FjdGlvbkNhbGxiYWNrSUQoY2FsbGJhY2tJRCkpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoUHJlc2VudGF0aW9uQ2FsbGJhY2tzQWZ0
ZXJGbHVzaGluZ0xheWVycyhjb25zdCBWZWN0b3I8Q2FsbGJhY2tJRD4mIGNhbGxiYWNrSURzKQog
ewogICAgIGZvciAoYXV0byYgY2FsbGJhY2tJRCA6IGNhbGxiYWNrSURzKSB7Ci0gICAgICAgIGlm
IChhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNr
SUQpKQotICAgICAgICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOworICAgICAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCkpCisgICAgICAg
ICAgICBjYWxsYmFjaygpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgKaW5kZXggZDE5
NzI5MjY1NWM2MWJhNmM2YmIzOGExMzg4NTdmNGRlNTY3MWM5OC4uYmQ1MzlkMjJjMTUyYTQ0MTk4
NWM4NzA2MzgwOWJhMmIyNDUzZGEwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oCkBAIC0yNiw3ICsy
Niw2IEBACiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJKSAmJiBQTEFURk9STShNQUMpCiAKICNp
bXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KLSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogI2lt
cG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQg
PHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1RleHRGaW5kZXJDbGllbnQubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tU
ZXh0RmluZGVyQ2xpZW50Lm1tCmluZGV4IGMwMzdkNjViMmJjMGYzYzBhMWVhMTI2ZWZkMjE4Mjdk
YTIxYWFiYjkuLjc0MTQ1MjE4MmFiMjExMWQ2YWRhZGVkMzZlZTkwYjAyY2VhNDM2MTAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQpA
QCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0ICJBUElGaW5kQ2xpZW50LmgiCiAjaW1wb3J0ICJB
UElGaW5kTWF0Y2hlc0NsaWVudC5oIgorI2ltcG9ydCAiV2ViRmluZE9wdGlvbnMuaCIKICNpbXBv
cnQgIldlYkltYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPGFsZ29y
aXRobT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9q
CmluZGV4IDJhM2EwZDRlNDZjYzRlNjU3OTU3Mjg3ZDI2Yzg4YmMzYTA2NGQxMDUuLjU5NGE5ZDg0
ZmEwNjYxMThlZDE2NTkxNDU2ZDIzY2JkMjA5YWJlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTY4OCw3ICsxNjg4LDYgQEAKIAkJ
QkMxNERGOUYxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTRERjlEMTIwQjYzNUYw
MDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxNEUxMEExMjBCOTA1RTAwODI2QzBDIC8qIElu
amVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTRFMTA4MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1
bmRsZVBhZ2VGb3JtQ2xpZW50LmggKi87IH07CiAJCUJDMTc3NDY1MTE4QjlGRjQwMDdEOUU5QSAv
KiBXS1BhZ2VQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzE3NzQ2NDExOEI5RkY0MDA3RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0JCUJDMTc3NTNGMTE4
QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5l
cmljQ2FsbGJhY2suaCAqLzsgfTsKIAkJQkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nl
c3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMxQTdDNTcxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oICovOyB9Owog
CQlCQzFCNDE5ODExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oIGluIEhl
YWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQjQxOTcxMUQ0MUQ1
NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFnZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzFCRTFFMDEyRDU0QTQxMDAwNEEyMjggLyog
V2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMUJFMURFMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNs
aWVudC5oICovOyB9OwpAQCAtNTI3Myw3ICs1MjcyLDYgQEAKIAkJQkMxNEUxMDcxMjBCOTA1RTAw
ODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTRFMTA4MTIwQjkwNUUwMDgyNkMwQyAv
KiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQkMxNzc0NjQxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tQYWdlUHJpdmF0ZS5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzE3NzUzRTExOEJBQkYwMDA3RDlFOUEgLyogR2Vu
ZXJpY0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWND
YWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFBN0M1NzExMzZFMTlD
MDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFByb2Nlc3NMYXVuY2hlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzFCNDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRsZVBhZ2VQcml2YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUJFMURFMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9s
b2NhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNTYsNyAr
MTAwNTQsNiBAQAogCQkJCTFBNjQyMkZDMTJERDA4RkUwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVBy
b3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFBRTAwRDVFMTgzMTc5MjEwMDA4N0RENyAvKiBGcmFt
ZUxvYWRTdGF0ZS5jcHAgKi8sCiAJCQkJMUFFMDBENUYxODMxNzkyMTAwMDg3REQ3IC8qIEZyYW1l
TG9hZFN0YXRlLmggKi8sCi0JCQkJQkMxNzc1M0UxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWND
YWxsYmFjay5oICovLAogCQkJCTlFQzUzMkEyMjQ0N0ZCQUQwMDIxNTIxNiAvKiBHZW9sb2NhdGlv
bklkZW50aWZpZXIuaCAqLywKIAkJCQlCQzA2RjQ0OTEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9j
YXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMwNkY0NDgx
MkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuaCAqLywKQEAgLTEyMDcxLDcgKzEyMDY4LDYgQEAKIAkJCQlDRDE5RDJFQTIwNDY0MDZGMDAx
NzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlDREE5M0RCMDIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGlj
UGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE1QkUxQjMxRDU5MDJERDAwREQ3QzY4
IC8qIEdhbWVwYWREYXRhLmggaW4gSGVhZGVycyAqLywKLQkJCQlCQzE3NzUzRjExOEJBQkYwMDA3
RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKIAkJCQk5RUM1MzJBMzI0
NDdGQkFEMDAyMTUyMTYgLyogR2VvbG9jYXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlCQzA2RjQyRjEyREJCOUI2MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVx
dWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhE
RSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0K
aW5kZXggMDc4NmNjNTMzMWYzNTA5MWVlYmE1NTU5MDcwNzdhMzE1NzY4MDhlOC4uNDViNThkNjNi
YzA5NGQwZjIwZGNlOTI2NmZmOWI2NzRlMzlmMGFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQg
ImNvbmZpZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogCi0jaW1wb3J0
ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBvcnQgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgog
I2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllckJh
Y2tpbmdTdG9yZUNvbGxlY3Rpb24uaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436197</attachid>
            <date>2021-08-23 08:31:21 -0700</date>
            <delta_ts>2021-08-23 09:38:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210823083121.patch</filename>
            <type>text/plain</type>
            <size>51329</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiN2ZlZDE4NDVkZDA1N2Nm
NDEyOWZkMDkwYjgzMDZmOTQyZDc1MDguLjU3MzI5YTg0ZDgwM2I4MzcxNzY1OTE1MzNmNWYxMzIy
Y2IwMDIxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDgtMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAg
ICAgVGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3lu
Y1JlcGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5j
b2RlZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29k
ZSB3aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1
dCB3ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0
aW9uLgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJY29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VD
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0Zv
clBhaW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlv
bi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmlu
Z0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVy
Rmx1c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbToKKwogMjAyMS0wOC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgVUlFdmVudEF0dHJpYnV0aW9uIHRlc3RzIGxl
c3MgcGxhdGZvcm0gZGVwZW5kZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
YWxsYmFja0lELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmgKaW5kZXggMGFk
MzIxM2YxN2Y0MGU5MDhkYjZjNmU0ZWM5NTcxOGU3ZmYyZjEyOS4uNjJkNTc0MDliMTMyMDJkN2Rm
NzhmNDAzMzNjNzViYmI3NjQxMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2FsbGJhY2tJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhbGxiYWNrSUQuaApAQCAt
OTgsNyArOTgsNiBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQobmV3SUQgIT0gSGFzaFRyYWl0
czx1aW50NjRfdD46OmVtcHR5VmFsdWUoKSk7CiAgICAgfQogCi0gICAgZnJpZW5kIGNsYXNzIENh
bGxiYWNrTWFwOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja1R5cGU+IGZyaWVuZCBj
bGFzcyBTcGVjaWZpY0NhbGxiYWNrTWFwOwogICAgIGZyaWVuZCBjbGFzcyBPcHRpb25hbENhbGxi
YWNrSUQ7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkNhbGxiYWNrSURIYXNoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA5Y2YyN2UxZjRjNDg1ZjkyNWFlMmQ4ZGYxYTc3
MWExZDE4Mjg1NzJiLi4xNjc3MGVjZmY2NzAzNGQ1NTg1OWIxYTQ5YzNkNmQwZjYyM2JhMDMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMjUsMTAgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdp
bmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNp
bmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCmluZGV4IGFmYTkyOWNmMDkzZDIyZWM3
NmFkODZmZGEwM2I1MDFiYmZkMjlkYzMuLmZiYWFlOTczMDVhZmQ1YWM2NzUxMmU2YzcyZTBhYWIx
NmNhNGI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRh
Y2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQu
aApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJY29u
TG9hZGluZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2Fk
aW5nQ2xpZW50LmgKaW5kZXggYjFiMTFmNWM1MWEyYTQ2OGVhMGFjYTUyZTI2MzRmMGViZmFhMjFh
NS4uOTNjMTEwNmFiOTVkZjYzZmI2ZTEyMWEyN2NkMjE4N2QzNDAxZjE4NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKQEAgLTI1
LDcgKzI1LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2su
aCIKICNpbmNsdWRlIDxXZWJDb3JlL0xpbmtJY29uLmg+CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRp
b25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL0Z1bmN0aW9uLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCmluZGV4IDg2
MjY3MjA4OGViMjk3MmY2ZDU1ZTIzNmNlN2YzMDljNzJkNWQxNzUuLjE4NmQ2YjI0NmI2YzE2NzZl
ZDk2MzY4MWFlNjBhM2MzNzZlMWU5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKKyNpbmNsdWRlICJBUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EZXRhaWxzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDJkYjBmNTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFmYjVh
NmE0ZTdiZjAuLjJlZjJlN2U3MGEzOTAyYTM1NzhhNGQ3ZDA3NDY5MzYwM2M0MmEzNDQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSUluc3BlY3RvckNvbmZpZ3VyYXRpb24uaCIK
KyNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IGM3N2EzYTYyMTNiMTY4
Y2Q3Yzk2MDQ4NDYyODFhYzM1ZjM1OTRjODkuLjUzYWQyZTI1OTA0ZDc0MTMxZjRlNGNhOWM5NGI2
ZTE0ZDdhMDU3YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApA
QCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVu
dC5oIgorI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkFQ
SVNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgpAQCAtMzAwNSw4ICszMDA2LDggQEAgdm9pZCBXS1Bh
Z2VDbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcihXS1BhZ2VSZWYgcGFnZVJlZikKIHZvaWQgV0tQ
YWdlQ2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9p
ZCogY29udGV4dCwgV0tQYWdlUG9zdFByZXNlbnRhdGlvblVwZGF0ZUZ1bmN0aW9uIGNhbGxiYWNr
KQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPmNhbGxB
ZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbnRleHQsIGNhbGxiYWNrXShXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgY2FsbGJhY2soZXJyb3IgIT0gV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lID8gdG9BUEkoQVBJOjpFcnJvcjo6Y3JlYXRl
KCkucHRyKCkpIDogMCwgY29udGV4dCk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5jYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb250ZXh0LCBjYWxsYmFja10oKSB7CisgICAgICAgIGNh
bGxiYWNrKG51bGxwdHIsIGNvbnRleHQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVy
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0
Q29udHJvbGxlci5tbQppbmRleCBlMDcxMjZhYmJkOTQxMWFmZGMxMmIyYWJmZDA4YTRkMTA3MjQy
MTkzLi5mNTNjOTJhNzE0YmE2M2ExYjVkZWJhNmFmN2ZjZjc1NTlkNDAzNzdiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dz
aW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlBhZ2VM
b2FkU3RhdGVPYnNlcnZlci5oIgogI2ltcG9ydCAiUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKICNp
bXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldLQVBJQ2Fz
dC5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tC
YWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0
R3JvdXBJbnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRXJyb3JJbnRlcm5hbC5oCmluZGV4IDExYmQxZjVkMjI3NDMyMjA5ZGFjMDgxYTZlYjIy
ZmNjODQzNjFkNzAuLjk2MjkwMTZiY2Y1ZWJhMjNiYjFiNTY2MTIzMzMzNGZkNjEzYzZlMDkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJu
YWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvckludGVy
bmFsLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgIldLRXJyb3JQcml2YXRlLmgiCiAKICNp
bXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogCiBS
ZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihXS0Vycm9yQ29kZSwgTlNFcnJvciogdW5k
ZXJseWluZ0Vycm9yID0gbmlsKTsKIE5TU3RyaW5nICpsb2NhbGl6ZWREZXNjcmlwdGlvbkZvckVy
cm9yQ29kZShXS0Vycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlldy5tbQppbmRleCAxZTM3ZGJlMWNhYTU3N2M0OTdhMTM5NTMwYzNiZDYzNjBk
MDQyYTkwLi4xZDYwMWMyYjY2OTY5OTQ5NDM1OTdkODc0MzA2MjJjNjhjNmQzM2NjIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTEyMzgs
MTMgKzEyMzgsNyBAQCBzdGF0aWMgV0tNZWRpYVBsYXliYWNrU3RhdGUgdG9XS01lZGlhUGxheWJh
Y2tTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWJhY2tTdGF0ZSBtZQogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgX3BhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NhbGxT
bmFwc2hvdFJlY3QgPSBXVEZNb3ZlKGNhbGxTbmFwc2hvdFJlY3QpLCBoYW5kbGVyXShXZWJLaXQ6
OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIG11dGFibGUgewotICAgICAgICBpZiAoZXJyb3Ig
IT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKSB7Ci0gICAgICAgICAgICB0cmFj
ZVBvaW50KFRha2VTbmFwc2hvdEVuZCwgc25hcHNob3RGYWlsZWRUcmFjZVZhbHVlKTsKLSAgICAg
ICAgICAgIGhhbmRsZXIobmlsLCBjcmVhdGVOU0Vycm9yKFdLRXJyb3JVbmtub3duKS5nZXQoKSk7
Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQorICAgIF9wYWdlLT5jYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxsU25hcHNob3RSZWN0ID0gV1RGTW92ZShjYWxsU25h
cHNob3RSZWN0KSwgaGFuZGxlcl0oKSBtdXRhYmxlIHsKICAgICAgICAgLy8gQ3JlYXRlIGFuIGlt
cGxpY2l0IHRyYW5zYWN0aW9uIHRvIGVuc3VyZSBhIGNvbW1pdCB3aWxsIGhhcHBlbiBuZXh0Lgog
ICAgICAgICBbQ0FUcmFuc2FjdGlvbiBhY3RpdmF0ZV07CiAKQEAgLTE1MTQsNyArMTUwOCw3IEBA
IGlubGluZSBPcHRpb25TZXQ8V2ViS2l0OjpGaW5kT3B0aW9ucz4gdG9GaW5kT3B0aW9ucyhXS0Zp
bmRDb25maWd1cmF0aW9uICpjb25maWd1CiAgICAgYXV0byB1cGRhdGVCbG9ja0NvcHkgPSBtYWtl
QmxvY2tQdHIodXBkYXRlQmxvY2spOwogCiAgICAgUmV0YWluUHRyPFdLV2ViVmlldz4gc3Ryb25n
U2VsZiA9IHNlbGY7Ci0gICAgX3BhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUo
W3VwZGF0ZUJsb2NrQ29weSwgd2l0aG91dFdhaXRpbmdGb3JBbmltYXRlZFJlc2l6ZSwgc3Ryb25n
U2VsZl0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX3BhZ2UtPmNh
bGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0ZUJsb2NrQ29weSwgd2l0aG91dFdh
aXRpbmdGb3JBbmltYXRlZFJlc2l6ZSwgc3Ryb25nU2VsZl0gewogICAgICAgICBpZiAoIXVwZGF0
ZUJsb2NrQ29weSkKICAgICAgICAgICAgIHJldHVybjsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KaW5k
ZXggNDY1NjFkMzQzMTRhNzlkNDJjNTdlNTliZjc5MjdhZDFmYTQ1MTA0NS4uYmE1YmU3MDcwZGU0
MGYwNjNkMzZiODhmOWM0YzRmOWUwY2VlZTllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCkBAIC0y
OCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKKyNpbXBv
cnQgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2ltcG9ydCAiSW5zcGVjdG9yRXh0ZW5z
aW9uRGVsZWdhdGUuaCIKICNpbXBvcnQgIkluc3BlY3RvckV4dGVuc2lvblR5cGVzLmgiCiAjaW1w
b3J0ICJXS0Vycm9yLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
bWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
CmluZGV4IDQyYjQ0MzUwNGM4MmMyYjJhZmRlNzUwZDk2Y2E3MzdkMzNlM2MxNDIuLmY5MmU3NWZj
OTcxZjVlNmU0YzNhNDRkYmY3YjczMmE2M2JmOTAzMzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xNjg3LDcgKzE2ODcsNyBAQCBzdGF0aWMgV2ViQ29y
ZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJl
Y3Rpb24oTlNVcwogLSAodm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQg
KF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiB7CiAgICAgYXV0byB1cGRhdGVCbG9ja0NvcHkgPSBtYWtl
QmxvY2tQdHIodXBkYXRlQmxvY2spOwotICAgIF9kYXRhLT5faW1wbC0+cGFnZSgpLmNhbGxBZnRl
ck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0ZUJsb2NrQ29weV0oV2ViS2l0OjpDYWxsYmFj
a0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX2RhdGEtPl9pbXBsLT5wYWdlKCkuY2FsbEFmdGVy
TmV4dFByZXNlbnRhdGlvblVwZGF0ZShbdXBkYXRlQmxvY2tDb3B5XSB7CiAgICAgICAgIGlmICh1
cGRhdGVCbG9ja0NvcHkpCiAgICAgICAgICAgICB1cGRhdGVCbG9ja0NvcHkoKTsKICAgICB9KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggOWNiM2Y2NWFhMDQxYWUwZTVjNTgzNDdlYmQ0N2Rh
NmQ1ZDlhNjJiNC4uOWM4Nzc4YjU5MWMyZTU5Y2NiZTQ3NDkyOTUwNjM1NWFiODIzMDllYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJB
dXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBUElBdXRv
bWF0aW9uU2Vzc2lvbkNsaWVudC5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNs
dWRlICJBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCiAj
aW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgIkNvb3JkaW5h
dGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgpAQCAt
MjIwNSw5ICsyMjA2LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNo
b3QoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjoKIAogI2lmIFBMQVRGT1JN
KEdUSykKICAgICBGdW5jdGlvbjx2b2lkKFdlYlBhZ2VQcm94eSYsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6SW50UmVjdD4mJiwgUmVmPFRha2VTY3JlZW5zaG90Q2FsbGJhY2s+JiYpPiB0YWtlVmll
d1NuYXBzb3QgPSBbXShXZWJQYWdlUHJveHkmIHBhZ2UsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
SW50UmVjdD4mJiByZWN0LCBSZWY8VGFrZVNjcmVlbnNob3RDYWxsYmFjaz4mJiBjYWxsYmFjaykg
ewotICAgICAgICBwYWdlLmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3BhZ2UgPSBt
YWtlUmVmKHBhZ2UpLCByZWN0ID0gV1RGTW92ZShyZWN0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNh
bGxiYWNrKV0oQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgICAg
ICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgICAg
ICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihJbnRlcm5hbEVycm9yKTsKKyAgICAg
ICAgcGFnZS5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtwYWdlID0gbWFrZVJlZihw
YWdlKSwgcmVjdCA9IFdURk1vdmUocmVjdCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KCkgbXV0YWJsZSB7CiAKICAgICAgICAgICAgIGF1dG8gc25hcHNob3QgPSBwYWdlLT50YWtlVmll
d1NuYXBzaG90KFdURk1vdmUocmVjdCkpOwogICAgICAgICAgICAgaWYgKCFzbmFwc2hvdCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9t
YXRpb25TZXNzaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9t
YWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KaW5kZXggNWZjZDgxZDE0ZmYyNmMxZjRkYWM3
NjU4N2Q4YmI3NWI0NDc2NWU3ZC4uMmQwZDUzOTA2YTdhM2RiZjgzNWMzNjE4ODUxYWZlYWMyYTA3
NzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMv
V2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KQEAgLTMxLDYgKzMxLDcg
QEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFj
cm9zLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JVSVByb3h5LmgiCisjaW1wb3J0ICJXZWJNb3Vz
ZUV2ZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRp
b25TZXNzaW9uLmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGRj
YWRmOGU5MmJiNDhkMDA1NmY3ZDIwMWM5NWQ4YmRhOTZhOGE1ZWUuLjIxZjVmNjNhN2Q0NGYzNmVl
MzMwZjEzYjcwZDM5MGQzYzhiYTVkYjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0zMyw2ICszMyw3IEBACiAj
aW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIK
ICNpbXBvcnQgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbXBvcnQgIldLQVBJQ2Fz
dC5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNp
bXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVHlw
ZVJlZldyYXBwZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29h
L1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0lt
cGwubW0KaW5kZXggNDk1NTQ5ZTM4MmRmMDVlYjA4ZTgwZGZlMjAzNzYxYmEzMDk5YThjMi4uNmJi
ZTUyODdjYzQ2NDY0MzU2ZDMwYzhlNWQ5ZWM3OTkzZDQ0ZWRmMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAgLTM1LDcgKzM1LDYgQEAKICNpbXBv
cnQgIkNvcmVUZXh0SGVscGVycy5oIgogI2ltcG9ydCAiRm9udEluZm8uaCIKICNpbXBvcnQgIkZ1
bGxzY3JlZW5DbGllbnQuaCIKLSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCAi
SW5zZXJ0VGV4dE9wdGlvbnMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdGl2
ZVdlYkdlc3R1cmVFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdB
cmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcAppbmRleCAwMzhkOWVlMmY0MWNkZWJhNGFl
N2I1OTczMTFiNjYzYTU4YjZkNjI5Li5mOTU1NjI4MDE4ODNkNWE4MzVjZDg5YTU0NjdlNjQ0NTFl
NTVlZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlD
b29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtNDE3LDcgKzQxNyw3IEBAIGludCBEcmF3aW5nQXJl
YVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OndlYlZpZXdEcmF3Q2Fs
bGJhY2soRHJhCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12b2lkIERyYXdpbmdBcmVhUHJveHlD
b29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6c3RhcnQoV1RGOjpGdW5jdGlvbjx2
b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBEcmF3aW5nQXJlYVBy
b3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OnN0YXJ0KEZ1bmN0aW9uPHZv
aWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5v
dygpOwogICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKQEAgLTQ0MSwxMCArNDQx
LDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01v
bml0b3I6OnN0b3AoKQogICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyht
X3dlYlBhZ2Uudmlld1dpZGdldCgpLCByZWludGVycHJldF9jYXN0PGdwb2ludGVyPih3ZWJWaWV3
RHJhd0NhbGxiYWNrKSwgdGhpcyk7CiAjZW5kaWYKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25p
Y1RpbWUoKTsKLSAgICBpZiAobV9jYWxsYmFjaykgewotICAgICAgICBtX2NhbGxiYWNrKENhbGxi
YWNrQmFzZTo6RXJyb3I6Ok5vbmUpOwotICAgICAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKLSAg
ICB9CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBzdGQ6OmV4Y2hhbmdlKG1fY2FsbGJhY2ssIG51
bGxwdHIpKQorICAgICAgICBjYWxsYmFjaygpOwogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHlD
b29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6ZGlkRHJhdygpCkBAIC00NTgsMTIg
KzQ1NiwxMCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3
aW5nTW9uaXRvcjo6ZGlkRHJhdygpCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDE2X21z
KTsKIH0KIAotdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6ZGlzcGF0
Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpF
cnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5h
dGVkR3JhcGhpY3M6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgp
PiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5u
aW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpF
cnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAg
aWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm4g
Y2FsbGJhY2tGdW5jdGlvbigpOwogCiAgICAgaWYgKCFtX2RyYXdpbmdNb25pdG9yKQogICAgICAg
ICBtX2RyYXdpbmdNb25pdG9yID0gbWFrZVVuaXF1ZTxEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0
ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I+KG1fd2ViUGFnZVByb3h5KTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQ
cm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuaAppbmRl
eCBiMjNhNDVmZjdkMzEzMzE3ZDhiYTY0ZmI0MzBlYmJhM2I2YWRlZjcxLi40ZTdlZWYyY2M4YThi
YzM3MjA3OGE2YWJkZDJlNjMwZWU0NmQ3OTc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdy
YXBoaWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5oCkBAIC04OCw3ICs4OCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaXNjYXJkQmFja2luZ1N0b3JlKCk7CiAjZW5kaWYKIAotICAg
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQoQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVu
c3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogCiAgICAgY2xhc3Mg
RHJhd2luZ01vbml0b3IgewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmF3aW5nTW9u
aXRvcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRl
OgogICAgICAgICBEcmF3aW5nTW9uaXRvcihXZWJQYWdlUHJveHkmKTsKICAgICAgICAgfkRyYXdp
bmdNb25pdG9yKCk7CiAKLSAgICAgICAgdm9pZCBzdGFydChXVEY6OkZ1bmN0aW9uPHZvaWQoQ2Fs
bGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgICAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQo
KT4mJik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0aWMgaW50IHdlYlZpZXdEcmF3Q2Fs
bGJhY2soRHJhd2luZ01vbml0b3IqKTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAg
ICAgICB2b2lkIGRpZERyYXcoKTsKIAogICAgICAgICBNb25vdG9uaWNUaW1lIG1fc3RhcnRUaW1l
OwotICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+IG1fY2Fs
bGJhY2s7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoRXJyb3IpPiBtX2NhbGxiYWNrOwogICAgICAg
ICBSdW5Mb29wOjpUaW1lcjxEcmF3aW5nTW9uaXRvcj4gbV90aW1lcjsKICNpZiBQTEFURk9STShH
VEspCiAgICAgICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IDgyNmM0MTdjNmM5YmExYzdlNmMyYzMyYTZh
YjBmM2FiOGQ3MmYwZTAuLjM0Y2RkYjViZmVlMzExODRkOWQ5MmIwNjgxZGVmNmE2NGQ3MjdjYTgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTI2LDgg
KzI2LDggQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYWxsYmFja0lELmgiCiAjaW5j
bHVkZSAiRHJhd2luZ0FyZWFJbmZvLmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAj
aW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgog
I2luY2x1ZGUgPFdlYkNvcmUvRmxvYXRSZWN0Lmg+CkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0
eVN0YXRlQ2hhbmdlSUQpIHsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEFmdGVy
RW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hB
ZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIHsgQVNTRVJUX05PVF9SRUFD
SEVEKCk7IH0KIAogICAgIC8vIEhpZGUgdGhlIGNvbnRlbnQgdW50aWwgdGhlIGN1cnJlbnRseSBw
ZW5kaW5nIHVwZGF0ZSBhcnJpdmVzLgogICAgIHZpcnR1YWwgdm9pZCBoaWRlQ29udGVudFVudGls
UGVuZGluZ1VwZGF0ZSgpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDQ3OThkNzc3YmU2Y2ZlNzU3ZmJkZGNhZDA5OWY5MGRlOGNiNGUyZTUuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R2VuZXJpY0NhbGxiYWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMTAgKzAsMCBAQAotLyoKLSAq
IENvcHlyaWdodCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgot
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1
dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQg
V0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElF
RCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNV
TEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJ
TkMuIE9SIElUUyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9G
Ci0gKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1Ig
UFJPRklUUzsgT1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNF
KQotICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUs
IEVWRU4gSUYgQURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQVBJRXJyb3IuaCIKLSNpbmNsdWRlICJB
UElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJDYWxsYmFja0lELmgiCi0jaW5j
bHVkZSAiUHJvY2Vzc1Rocm90dGxlci5oIgotI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgot
I2luY2x1ZGUgIldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1
ZGUgPHd0Zi9IYXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRl
IDx3dGYvUmVmQ291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNw
YWNlIFdlYktpdCB7Ci0KLWNsYXNzIENhbGxiYWNrQmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPENh
bGxiYWNrQmFzZT4gewotcHVibGljOgotICAgIGVudW0gY2xhc3MgRXJyb3IgewotICAgICAgICBO
b25lLAotICAgICAgICBVbmtub3duLAotICAgICAgICBQcm9jZXNzRXhpdGVkLAotICAgICAgICBP
d25lcldhc0ludmFsaWRhdGVkLAotICAgIH07Ci0KLSAgICB2aXJ0dWFsIH5DYWxsYmFja0Jhc2Uo
KQotICAgIHsKLSAgICB9Ci0KLSAgICBDYWxsYmFja0lEIGNhbGxiYWNrSUQoKSBjb25zdCB7IHJl
dHVybiBtX2NhbGxiYWNrSUQ7IH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgVCogYXMo
KQotICAgIHsKLSAgICAgICAgaWYgKFQ6OnR5cGUoKSA9PSBtX3R5cGUpCi0gICAgICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KHRoaXMpOwotCi0gICAgICAgIHJldHVybiBudWxscHRyOwot
ICAgIH0KLQotICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKEVycm9yKSA9IDA7Ci0KLXByb3Rl
Y3RlZDoKLSAgICBzdHJ1Y3QgVHlwZVRhZyB7IH07Ci0gICAgdHlwZWRlZiBjb25zdCBUeXBlVGFn
KiBUeXBlOwotCi0gICAgZXhwbGljaXQgQ2FsbGJhY2tCYXNlKFR5cGUgdHlwZSwgUHJvY2Vzc1Ro
cm90dGxlcjo6QWN0aXZpdHlWYXJpYW50JiYgYWN0aXZpdHkpCi0gICAgICAgIDogbV90eXBlKHR5
cGUpCi0gICAgICAgICwgbV9jYWxsYmFja0lEKENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKSkKLSAg
ICAgICAgLCBtX2FjdGl2aXR5KFdURk1vdmUoYWN0aXZpdHkpKQotICAgIHsKLSAgICB9Ci0KLXBy
aXZhdGU6Ci0gICAgVHlwZSBtX3R5cGU7Ci0gICAgQ2FsbGJhY2tJRCBtX2NhbGxiYWNrSUQ7Ci0g
ICAgUHJvY2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50IG1fYWN0aXZpdHk7Ci19OwotCi10
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPgotY2xhc3MgR2VuZXJpY0NhbGxiYWNrIDogcHVibGljIENh
bGxiYWNrQmFzZSB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBGdW5jdGlvbjx2b2lkIChULi4uLCBF
cnJvcik+IENhbGxiYWNrRnVuY3Rpb247Ci0KLSAgICBzdGF0aWMgUmVmPEdlbmVyaWNDYWxsYmFj
az4gY3JlYXRlKENhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaywgUHJvY2Vzc1Rocm90dGxlcjo6
QWN0aXZpdHlWYXJpYW50JiYgYWN0aXZpdHkgPSBudWxscHRyKQotICAgIHsKLSAgICAgICAgcmV0
dXJuIGFkb3B0UmVmKCpuZXcgR2VuZXJpY0NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spLCBXVEZN
b3ZlKGFjdGl2aXR5KSkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgfkdlbmVyaWNDYWxsYmFjaygp
Ci0gICAgewotICAgICAgICBBU1NFUlQobV9vcmlnaW5UaHJlYWQucHRyKCkgPT0gJlRocmVhZDo6
Y3VycmVudCgpKTsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICB2
b2lkIHBlcmZvcm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShULi4uIHJldHVyblZhbHVlKQotICAg
IHsKLSAgICAgICAgQVNTRVJUKG1fb3JpZ2luVGhyZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1cnJl
bnQoKSk7Ci0KLSAgICAgICAgaWYgKCFtX2NhbGxiYWNrKQotICAgICAgICAgICAgcmV0dXJuOwot
Ci0gICAgICAgIGF1dG8gY2FsbGJhY2sgPSBzdGQ6OmV4Y2hhbmdlKG1fY2FsbGJhY2ssIHN0ZDo6
bnVsbG9wdCk7Ci0gICAgICAgIGNhbGxiYWNrLnZhbHVlKCkocmV0dXJuVmFsdWUuLi4sIEVycm9y
OjpOb25lKTsKLSAgICB9Ci0KLSAgICB2b2lkIHBlcmZvcm1DYWxsYmFjaygpCi0gICAgewotICAg
ICAgICBwZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lk
IGludmFsaWRhdGUoRXJyb3IgZXJyb3IgPSBFcnJvcjo6VW5rbm93bikgZmluYWwKLSAgICB7Ci0g
ICAgICAgIEFTU0VSVChtX29yaWdpblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkp
OwotCi0gICAgICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAg
ICAgICBhdXRvIGNhbGxiYWNrID0gc3RkOjpleGNoYW5nZShtX2NhbGxiYWNrLCBzdGQ6Om51bGxv
cHQpOwotICAgICAgICBjYWxsYmFjay52YWx1ZSgpKHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVy
ZW5jZTxUPjo6dHlwZSgpLi4uLCBlcnJvcik7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEdlbmVy
aWNDYWxsYmFjayhDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2ssIFByb2Nlc3NUaHJvdHRsZXI6
OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5KQotICAgICAgICA6IENhbGxiYWNrQmFzZSh0eXBl
KCksIFdURk1vdmUoYWN0aXZpdHkpKQotICAgICAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxs
YmFjaykpCi0gICAgewotICAgIH0KLQotICAgIGZyaWVuZCBjbGFzcyBDYWxsYmFja0Jhc2U7Ci0g
ICAgc3RhdGljIFR5cGUgdHlwZSgpCi0gICAgewotICAgICAgICBzdGF0aWMgVHlwZVRhZyB0YWc7
Ci0gICAgICAgIHJldHVybiAmdGFnOwotICAgIH0KLQotICAgIHN0ZDo6b3B0aW9uYWw8Q2FsbGJh
Y2tGdW5jdGlvbj4gbV9jYWxsYmFjazsKLQotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgUmVmPFRo
cmVhZD4gbV9vcmlnaW5UaHJlYWQgeyBUaHJlYWQ6OmN1cnJlbnQoKSB9OwotI2VuZGlmCi19Owot
Ci10eXBlZGVmIEdlbmVyaWNDYWxsYmFjazw+IFZvaWRDYWxsYmFjazsKLQotdGVtcGxhdGU8dHlw
ZW5hbWUgVD4KLXZvaWQgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKEhhc2hNYXA8dWludDY0X3QsIFQ+
JiBjYWxsYmFja01hcCwgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikKLXsKLSAgICBhdXRvIG1h
cCA9IFdURk1vdmUoY2FsbGJhY2tNYXApOwotICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtYXAu
dmFsdWVzKCkpCi0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKGVycm9yKTsKLX0KLQotY2xh
c3MgQ2FsbGJhY2tNYXAgewotcHVibGljOgotICAgIENhbGxiYWNrSUQgcHV0KFJlZjxDYWxsYmFj
a0Jhc2U+JiYgY2FsbGJhY2spCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7Ci0gICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFj
a0lEKCk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxiYWNrSUQuaXNWYWxpZCgpKTsKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoIW1fbWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQubV9pZCkpOwot
ICAgICAgICBtX21hcC5zZXQoY2FsbGJhY2tJRC5tX2lkLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0g
ICAgICAgIHJldHVybiBjYWxsYmFja0lEOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHVuc2lnbmVk
IEksIHR5cGVuYW1lIFQsIHR5cGVuYW1lLi4uIFU+Ci0gICAgc3RydWN0IEdlbmVyaWNDYWxsYmFj
a1R5cGUgewotICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNDYWxsYmFja1R5cGU8SSAt
IDEsIFUuLi4sIFQ+Ojp0eXBlIHR5cGU7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1l
Li4uIFU+Ci0gICAgc3RydWN0IEdlbmVyaWNDYWxsYmFja1R5cGU8MSwgQ2FsbGJhY2tCYXNlOjpF
cnJvciwgVS4uLj4gewotICAgICAgICB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxVLi4uPiB0eXBl
OwotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPgotICAgIENhbGxiYWNrSUQg
cHV0KEZ1bmN0aW9uPHZvaWQoVC4uLik+JiYgZnVuY3Rpb24sIFByb2Nlc3NUaHJvdHRsZXI6OkFj
dGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5KQotICAgIHsKLSAgICAgICAgYXV0byBjYWxsYmFjayA9
IEdlbmVyaWNDYWxsYmFja1R5cGU8c2l6ZW9mLi4uKFQpLCBULi4uPjo6dHlwZTo6Y3JlYXRlKFdU
Rk1vdmUoZnVuY3Rpb24pLCBXVEZNb3ZlKGFjdGl2aXR5KSk7Ci0gICAgICAgIHJldHVybiBwdXQo
V1RGTW92ZShjYWxsYmFjaykpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAg
UmVmUHRyPFQ+IHRha2UoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHsKLSAgICAgICAgUkVM
RUFTRV9BU1NFUlQoY2FsbGJhY2tJRC5pc1ZhbGlkKCkpOwotICAgICAgICBSRUxFQVNFX0FTU0VS
VChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIGF1dG8gYmFzZSA9IG1fbWFwLnRha2UoY2Fs
bGJhY2tJRC5tX2lkKTsKLSAgICAgICAgaWYgKCFiYXNlKQotICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7Ci0KLSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKGJhc2UubGVha1JlZigpLT5hczxUPigp
KTsKLSAgICB9Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJv
cikKLSAgICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAg
ICAgICAgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKG1fbWFwLCBlcnJvcik7Ci0gICAgfQotCi1wcml2
YXRlOgotICAgIEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxDYWxsYmFja0Jhc2U+PiBtX21hcDsK
LX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKaW5kZXggMjM1MTJhZjBmMWQ1ZWFmMWZlYThlZmMz
Yjg1Yzk0MmM2YmY1MzZmZi4uYmU1ZTY2YzBmYTU1MzJkYjVlYjMzMmI3YjkwNWQyNTJkZjgwY2Y3
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHku
Y3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQog
CiAjaW5jbHVkZSAiQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiQVBJU2VyaWFs
aXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250
cm9sbGVyTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmll
d0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dL
SW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjBkYzJmYTNlMWY3YjFkZTk2ODk3YjEw
YjE2ZGU3OGYyZmZmMjZiNS4uMjkyODdiYTJmYjcyMTJlMDBkMjZkNDVlN2NhNmFjNTg1ZjNhZGUx
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0lu
c3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjksNyBA
QAogI2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgotI2ltcG9y
dCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQg
IldLSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW1wb3J0ICJXS0luc3Bl
Y3RvcldLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvbi5oPgpA
QCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJfV0tJ
bnNwZWN0b3JDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lv
bkNoZWNrcy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CiAjaW1wb3J0IDx3dGYv
V2Vha09iakNQdHIuaD4KIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tJbnNwZWN0b3JSZXNv
dXJjZVNjaGVtZSA9IEAiaW5zcGVjdG9yLXJlc291cmNlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0
aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCA3NjA2MzFjNDkwZjY0MzNmMzQxYTQzYmQ4ODFkNTQ1
ZjRhOWI3M2FlLi45YTczNGFkYjFlNjI5YTViYjg3NjUwMzkzNmQzYjZlNDIwOTA3ZjI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNh
dGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBA
CiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElOb3RpZmljYXRpb25Qcm92aWRl
ci5oIgogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV0tTaGFyZWRB
UElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90
aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCBlMzJi
ZjdiMzU5MjZmYzhhYjMwZTliNDVlMDI0NTBiMGZlNmExMmNlLi43YjZkNTBlMzJmZTA3YzFjNTI4
M2U5N2QxMTdiNmRhZWIxOGYwOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVE
cmF3aW5nQXJlYVByb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5j
bHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIK
ICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiVHJhbnNhY3Rpb25J
RC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uRnJhbWVSYXRlLmg+CkBAIC02Nyw3ICs2
OCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgLy8gRm9yIG5vdywgYWxsIGNhbGxiYWNrcyBhcmUg
Y2FsbGVkIGJlZm9yZSBjb21taXR0aW5nIGNoYW5nZXMsIGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhl
IG9ubHkgY2xpZW50IHJlcXVpcmVzLgogICAgIC8vIE9uY2Ugd2UgaGF2ZSBvdGhlciBjYWxsYmFj
a3MsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGhhdmUgYSBiZWZvcmUtY29tbWl0L2FmdGVyLWNvbW1p
dCBvcHRpb24uCi0gICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVu
Y3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQg
ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRl
OwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0
KCkgb3ZlcnJpZGU7CkBAIC0xMTksNyArMTIwLDcgQEAgcHJpdmF0ZToKICAgICBUcmFuc2FjdGlv
bklEIG1fdHJhbnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudDsKICAgICBBY3Rpdml0eVN0YXRl
Q2hhbmdlSUQgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0eVN0YXRlQ2hhbmdlQXN5
bmNocm9ub3VzIH07CiAKLSAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKKyAgICBIYXNoTWFw
PENhbGxiYWNrSUQsIHN0ZDo6cGFpcjxGdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OnVuaXF1ZV9wdHI8
UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5Pj4+IG1fY2FsbGJhY2tzOwogCiAg
ICAgUmV0YWluUHRyPFdLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxlcj4gbV9kaXNwbGF5TGlua0hh
bmRsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5tbQppbmRleCBiNGU0YzZjMGRhODAzMjYxMjk1YmRkYWZkNDU1YjdjYTk5Yzg1M2EwLi5mZjY1
NGZhZTc5MTUzNjM0YTc4ODBlZWIwZDFjOTdlYzk2MWUxMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUv
UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMTI3LDcgKzEyNyw2IEBAIFJl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHkoV2ViUGFnZVByb3h5JiB3CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6
On5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICBtX2NhbGxiYWNrcy5p
bnZhbGlkYXRlKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwogICAg
IHByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsK
IAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yNjksOCArMjY4LDggQEAgdm9pZCBSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3Rl
TGF5ZXJUcmVlVHJhbnMKICAgICAgICAgbV93ZWJQYWdlUHJveHkuZGlkUmVhY2hMYXlvdXRNaWxl
c3RvbmUobWlsZXN0b25lcyk7CiAKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrSUQgOiBsYXllclRy
ZWVUcmFuc2FjdGlvbi5jYWxsYmFja0lEcygpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNr
ID0gbV9jYWxsYmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpKQotICAgICAgICAg
ICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOworICAgICAgICBpZiAoYXV0byBjYWxsYmFj
ayA9IG1fY2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCkuZmlyc3QpCisgICAgICAgICAgICBjYWxs
YmFjaygpOwogICAgIH0KIH0KIApAQCAtNDcxLDE0ICs0NzAsMTYgQEAgdm9pZCBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rp
dml0eVN0YXQKICAgICB9CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFJlbW90ZUxheWVyVHJl
ZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248
dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5o
YXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tC
YXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rp
b24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdp
bmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQobV9jYWxsYmFja3MucHV0KFdURk1vdmUo
Y2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZp
dHkoIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmlu
Z0RyYXdpbmciX3MpKSkpOworICAgIGF1dG8gY2FsbGJhY2tJRCA9IENhbGxiYWNrSUQ6OmdlbmVy
YXRlSUQoKTsKKyAgICBtX2NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgc3RkOjptYWtlX3BhaXIo
V1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgcHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91
bmRBY3Rpdml0eSgiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hBZnRl
ckVuc3VyaW5nRHJhd2luZyJfcykubW92ZVRvVW5pcXVlUHRyKCkpKTsKKyAgICBzZW5kKE1lc3Nh
Z2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKGNhbGxiYWNrSUQpKTsK
IH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpoaWRlQ29udGVudFVu
dGlsUGVuZGluZ1VwZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRD
bGllbnQuY3BwCmluZGV4IGEyNTI4YzJjMGUwZDdlMTMwOTg2MTZiMzE1MDg4NjZlZjk4NDc2MTMu
LmU4NTYwNmFkMDUyNDVkNWIxYTEwM2YyMmIwY2IwNjBkNjA0OTgxNmMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5oIgogCisjaW5j
bHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAogbmFtZXNw
YWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29r
aWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFn
ZXJQcm94eS5oCmluZGV4IDNkY2Y1NGFkN2M4YmFiMWI1YWI2YTZlYzI4ZjVhMWY4NzFhNDE5MWMu
LmI5ZGMzYjc0OWY4NGNjMjk3YzNhZGE2NjRiMDdjYjI2ZjQxMWE1NDIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC0yNiw5ICsyNiw5
IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkdl
bmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUg
IldlYkNvbnRleHRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNj
ZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9G
b3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkZyYW1lUHJveHkuaAppbmRleCAzOTFiMDI3MzYyODM0MWVkYWE4ODMwYjM3NGYwZmIxMzEy
NDAxNzJhLi5kYzhjZDg1NGU1MTAyNDVhMDMwYWNiZWU0OGFkMmMxOTlmOTQ2ZDJmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRTdGF0ZS5oIgotI2luY2x1
ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQ
cm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJh
bWVMb2FkZXJUeXBlcy5oPgpAQCAtNDEsNiArNDAsNyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIGNs
YXNzIE5hdmlnYXRpb247CitjbGFzcyBVUkw7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzBlZDlkYTRkNDVkZDNiNTE0
YTNlYTA5MjJmOWQ2ZThmNGY1MzBkOS4uYzhjY2FlMGU3MTRlMzU3NWYwZjI5YjM5MDUxMWM4OTgx
MTg5OWVkYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01
Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiQVBJUG9saWN5Q2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJ
UmVzb3VyY2VMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKKyNp
bmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJBUElVSUNsaWVu
dC5oIgogI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJBUElXZWJzaXRlUG9s
aWNpZXMuaCIKQEAgLTQ0NjMsOSArNDQ2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb3JjZVJl
cGFpbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgIG1fZHJhd2lu
Z0FyZWEtPndhaXRGb3JCYWNraW5nU3RvcmVVcGRhdGVPbk5leHRQYWludCgpOwogCiAgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpGb3JjZVJlcGFpbnQoKSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIGNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRh
dGUoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChhdXRvKSBtdXRhYmxlIHsKLSAgICAg
ICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOworICAgICAgICBjYWxsQWZ0ZXJOZXh0UHJl
c2VudGF0aW9uVXBkYXRlKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApAQCAtOTc1
NiwxMiArOTc1NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJXaGVlbEV2ZW50VGVzdE1v
bml0b3IoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsZWFyV2hlZWxFdmVudFRlc3RN
b25pdG9yKCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y2FsbEFmdGVyTmV4dFByZXNlbnRh
dGlvblVwZGF0ZShXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrKQordm9pZCBXZWJQYWdlUHJveHk6OmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRh
dGUoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIGlmICghaGFzUnVubmluZ1By
b2Nlc3MoKSB8fCAhbV9kcmF3aW5nQXJlYSkgewotICAgICAgICBjYWxsYmFjayhDYWxsYmFja0Jh
c2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0K
KyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkgfHwgIW1fZHJhd2luZ0FyZWEpCisgICAgICAg
IHJldHVybiBjYWxsYmFjaygpOwogCiAgICAgbV9kcmF3aW5nQXJlYS0+ZGlzcGF0Y2hBZnRlckVu
c3VyaW5nRHJhd2luZyhXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IGJiZTYzNDA4NmNhYmYxNjE3MWMwNDU5M2E2YjkwMGUwMjE3
N2E3YmUuLmExNjM4MmNmMmVhMzQ0NjQyMTU1MDc4OTI4YmU1YjliODZiYzQyZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVk
ZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIgorI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUg
IldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlRGlhZ25vc3Rp
Y0xvZ2dpbmdDbGllbnQuaCIKQEAgLTE5NSw2ICsxOTYsNyBAQCBpbnRlcmZhY2UgSUQzRDExRGV2
aWNlMTsKICNlbmRpZgogCiBuYW1lc3BhY2UgQVBJIHsKK2NsYXNzIEFycmF5OwogY2xhc3MgQXR0
YWNobWVudDsKIGNsYXNzIENvbnRlbnRXb3JsZDsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwpA
QCAtMjA1LDEzICsyMDcsMTkgQEAgY2xhc3MgRmluZE1hdGNoZXNDbGllbnQ7CiBjbGFzcyBGb3Jt
Q2xpZW50OwogY2xhc3MgRnVsbHNjcmVlbkNsaWVudDsKIGNsYXNzIEhpc3RvcnlDbGllbnQ7Citj
bGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSWNvbkxvYWRpbmdDbGllbnQ7CiBjbGFzcyBMb2Fk
ZXJDbGllbnQ7CiBjbGFzcyBOYXZpZ2F0aW9uOworY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNs
YXNzIE5hdmlnYXRpb25DbGllbnQ7CitjbGFzcyBOYXZpZ2F0aW9uUmVzcG9uc2U7CitjbGFzcyBQ
YWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBvbGljeUNsaWVudDsKIGNsYXNzIFJlc291cmNlTG9h
ZENsaWVudDsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFVJQ2xpZW50Owor
Y2xhc3MgVVJMOwogY2xhc3MgVVJMUmVxdWVzdDsKIH0KIApAQCAtMzMyLDcgKzM0MCwxMCBAQCB0
eXBlZGVmIEhXTkQgUGxhdGZvcm1WaWV3V2lkZ2V0OwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk7CitjbGFzcyBBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZVByb3h5OworY2xhc3MgQ2FsbGJhY2tJRDsKIGNsYXNzIERyYXdpbmdBcmVh
UHJveHk7CitjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2FtZXBhZERhdGE7CiBjbGFzcyBN
ZWRpYVVzYWdlTWFuYWdlcjsKIGNsYXNzIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDsKQEAgLTM2Myw2
ICszNzQsNyBAQCBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkQ2FjaGU7
CiBjbGFzcyBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk7CitjbGFzcyBX
ZWJJbnNwZWN0b3JVSVByb3h5OwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1v
dXNlRXZlbnQ7CiBjbGFzcyBXZWJOYXZpZ2F0aW9uU3RhdGU7CkBAIC00MDcsNiArNDE5LDcgQEAg
c3RydWN0IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwogc3Ry
dWN0IFdlYlNwZWVjaFN5bnRoZXNpc1ZvaWNlOwogCitlbnVtIGNsYXNzIEZpbmRPcHRpb25zIDog
dWludDE2X3Q7CiBlbnVtIGNsYXNzIEltYWdlQW5hbHlzaXNUeXBlIDogdWludDhfdDsKIGVudW0g
Y2xhc3MgVGFwSGFuZGxpbmdSZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0UmVjb2du
aXRpb25VcGRhdGVSZXN1bHQgOiB1aW50OF90OwpAQCAtNDE2LDYgKzQyOSw4IEBAIGVudW0gY2xh
c3MgUXVpY2tMb29rUHJldmlld0FjdGl2aXR5IDogdWludDhfdDsKIGVudW0gY2xhc3MgVW5kb09y
UmVkbyA6IGJvb2w7CiBlbnVtIGNsYXNzIFdlYkNvbnRlbnRNb2RlIDogdWludDhfdDsKIAordHlw
ZWRlZiB1aW50MzJfdCBTbmFwc2hvdE9wdGlvbnM7CisKICNpZiBIQVZFKFZJU0lCSUxJVFlfUFJP
UEFHQVRJT05fVklFVykKIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90Owog
I2VuZGlmCkBAIC0xNjE0LDcgKzE2MjksNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGb3IgdGVzdGlu
ZwogICAgIHZvaWQgY2xlYXJXaGVlbEV2ZW50VGVzdE1vbml0b3IoKTsKLSAgICB2b2lkIGNhbGxB
ZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jh
c2U6OkVycm9yKT4mJik7CisgICAgdm9pZCBjYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
KEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGRpZFJlYWNoTGF5b3V0TWlsZXN0b25l
KE9wdGlvblNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IDFmODNkNDAzMjQ5YzFkNzgzNmNkMmM0
NGYyZDg3NmRjOTMzMDQxMzEuLmU3MmNlOGY1OWE0YTJiMmEwZjU3ZWM4ZjcyYTc0YjVmMjYzZWFl
ZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTM2
LDYgKzM2LDggQEAKICNpbmNsdWRlICJBUElOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiQVBJUGFn
ZUNvbmZpZ3VyYXRpb24uaCIKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24u
aCIKKyNpbmNsdWRlICJBUElTdHJpbmcuaCIKKyNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQ
cm94eS5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgpAQCAtNTUsNiArNTcs
NyBAQAogI2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkLmgiCiAj
aW5jbHVkZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNp
bmNsdWRlICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Np
b24uaCIKICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAwNTM1OWE3ZGQ0MTEwNTgxMTg3ZDBmMDk3ZTVh
ZmQ2MjczNTVjYThhLi43NDY2YjAxYTBjMTkwYmZjYzNhODdkNDJkNmFhNTBhMzIyNjA3MzJkIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI5LDcgKzI5LDYg
QEAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJHZW5l
cmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFz
ZXNDb3VudGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVz
c2FnZVJlY2VpdmVyTWFwLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQppbmRleCBkMTRkZDRjNzJiODFlNDU3ZjE2
YzBkOTk4ZGJmNzI4NGIyODVkMzdkLi5mN2ZkMWU2Nzg0N2I3Njc2MTE4OTZlMjk2YjJhNDE2OGMw
NjgzNWJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1
cmVDb250cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3
R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KQEAgLTM3MSw3ICszNzEsNyBAQCB2b2lkIFZpZXdHZXN0
dXJlQ29udHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRh
cmdldEl0ZW0sCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBkcmF3
aW5nQXJlYS0+ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhbcGFnZUlELCBnZXN0dXJlSURd
IChDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgIGRyYXdpbmdBcmVhLT5kaXNw
YXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFtwYWdlSUQsIGdlc3R1cmVJRF0gewogICAgICAgICAg
ICAgaWYgKGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyRm9yR2VzdHVyZShwYWdl
SUQsIGdlc3R1cmVJRCkpCiAgICAgICAgICAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPndpbGxD
b21taXRQb3N0U3dpcGVUcmFuc2l0aW9uTGF5ZXJUcmVlKGVycm9yID09IENhbGxiYWNrQmFzZTo6
RXJyb3I6Ok5vbmUpOwogICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCmluZGV4IDY3YmZmMDQyYzRm
NDk5M2IxMDkyNzhiNzNlNGUzZWQ5NDgzMTg1NTguLmI1ZDQ1OGFkOTBmZDRjNDlmMmQ0MzVlOTcx
ZjIyZTNhN2QxZTIzMzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9X
S0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
aW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQpAQCAtNDk5Myw3ICs0OTkzLDcgQEAgc3Rh
dGljIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZFdpdGhUb3VjaChXS0NvbnRlbnRWaWV3ICp2aWV3LCBj
b25zdCBXZWJDb3JlOjpJbnRQb2kKIHsKICAgICBfaWdub3JlU2VsZWN0aW9uQ29tbWFuZEZhZGVD
b3VudCsrOwogICAgIF9wYWdlLT5zY2hlZHVsZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpOwotICAg
IF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt3ZWFrU2VsZiA9IFdlYWtP
YmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSAoYXV0bykgeworICAgIF9wYWdlLT5jYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVu
dFZpZXc+KHNlbGYpXSB7CiAgICAgICAgIGlmIChhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5n
ZXQoKSkKICAgICAgICAgICAgIHN0cm9uZ1NlbGYtPl9pZ25vcmVTZWxlY3Rpb25Db21tYW5kRmFk
ZUNvdW50LS07CiAgICAgfSk7CkBAIC05MTA3LDcgKzkxMDcsNyBAQCBzdGF0aWMgVmVjdG9yPFdl
YkNvcmU6OkludFNpemU+IHNpemVzT2ZQbGFjZWhvbGRlckVsZW1lbnRzVG9JbnNlcnRXaGVuRHJv
cHBpbmdJdAogICAgICAgICBSRUxFQVNFX0xPRyhEcmFnQW5kRHJvcCwgIkRyYWcgaW50ZXJhY3Rp
b24gd2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0b3IgKGFuaW1hdGlvbiBjb21wbGV0aW9uIGJs
b2NrIGZpcmVkKSIpOwogICAgICAgICBwYWdlLT5kcmFnQ2FuY2VsbGVkKCk7CiAgICAgICAgIGlm
IChhdXRvIGNvbXBsZXRpb24gPSBwcm90ZWN0ZWRTZWxmLT5fZHJhZ0Ryb3BJbnRlcmFjdGlvblN0
YXRlLnRha2VEcmFnQ2FuY2VsU2V0RG93bkJsb2NrKCkpIHsKLSAgICAgICAgICAgIHBhZ2UtPmNh
bGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbXBsZXRpb24sIHByb3RlY3RlZFNlbGZd
IChXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IpIHsKKyAgICAgICAgICAgIHBhZ2UtPmNhbGxB
ZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbXBsZXRpb24sIHByb3RlY3RlZFNlbGZdIHsK
ICAgICAgICAgICAgICAgICBjb21wbGV0aW9uKCk7CiAgICAgICAgICAgICAgICAgcHJvdGVjdGVk
U2VsZi0+X2lzQW5pbWF0aW5nRHJhZ0NhbmNlbCA9IE5POwogICAgICAgICAgICAgfSk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAppbmRleCBlMjI4MmViM2Y5ZmFmNGY2MDFlMmMwYzY0
MWNhNzZmYWY4ZjhjYjRjLi40YjkxYjlhZjg1YThhYTljNmM0Mjk5ZDg3NDJhOTBmYjE4MDA3YzZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGNvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3Jl
OjpGbG9hdFBvaW50IG9yaWdpbikgb3ZlcnJpZGU7CiAKICAgICB2b2lkIHdhaXRGb3JEaWRVcGRh
dGVBY3Rpdml0eVN0YXRlKEFjdGl2aXR5U3RhdGVDaGFuZ2VJRCkgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0
Y2hQcmVzZW50YXRpb25DYWxsYmFja3NBZnRlckZsdXNoaW5nTGF5ZXJzKGNvbnN0IFZlY3RvcjxD
YWxsYmFja0lEPiYpIGZpbmFsOwogCiAgICAgdm9pZCB3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KCkg
b3ZlcnJpZGU7CkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgLy8gVGhlIGxhc3QgbWF4
bWl1bSBzaXplIGZvciBzaXplLXRvLWNvbnRlbnQgYXV0by1zaXppbmcgd2Ugc2VudCB0byB0aGUg
d2ViIHByb2Nlc3MuCiAgICAgV2ViQ29yZTo6SW50U2l6ZSBtX2xhc3RTZW50U2l6ZVRvQ29udGVu
dEF1dG9TaXplTWF4aW11bVNpemU7CiAKLSAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKKyAg
ICBIYXNoTWFwPENhbGxiYWNrSUQsIEZ1bmN0aW9uPHZvaWQoKT4+IG1fY2FsbGJhY2tzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1t
CmluZGV4IGU2MTZhZmZkZTM2ZGY0YTAxZjhiYmJiZmYwOGEzMGNlN2ZkMTRiNTkuLjJhNzZjYWI1
ZmFlNWQ5M2Y1ZWFlNWI3OTc0ZWEzYmY3ZTUzN2RmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lm1tCkBAIC01MCw3ICs1MCw2IEBAIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHk6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkoV2ViUGFnZVByCiAK
IFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6On5UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICBtX2NhbGxiYWNrcy5pbnZhbGlkYXRlKENhbGxiYWNr
QmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRldmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkKQEAg
LTIwMywyMSArMjAyLDIzIEBAIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eTo6Y29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIEZsb2F0CiAgICAgc2VuZChNZXNz
YWdlczo6RHJhd2luZ0FyZWE6OkNvbW1pdFRyYW5zaWVudFpvb20oc2NhbGUsIG9yaWdpbikpOwog
fQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0
ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFjaykKK3ZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6
ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2sp
CiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAg
ICAgIGNhbGxiYWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwor
ICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZChN
ZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRChtX2NhbGxiYWNr
cy5wdXQoV1RGTW92ZShjYWxsYmFjayksIG51bGxwdHIpKSk7CisgICAgYXV0byBjYWxsYmFja0lE
ID0gQ2FsbGJhY2tJRDo6Z2VuZXJhdGVJRCgpOworICAgIG1fY2FsbGJhY2tzLnNldChjYWxsYmFj
a0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6
OkFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRChjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hQcmVzZW50YXRpb25DYWxsYmFj
a3NBZnRlckZsdXNoaW5nTGF5ZXJzKGNvbnN0IFZlY3RvcjxDYWxsYmFja0lEPiYgY2FsbGJhY2tJ
RHMpCiB7CiAgICAgZm9yIChhdXRvJiBjYWxsYmFja0lEIDogY2FsbGJhY2tJRHMpIHsKLSAgICAg
ICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlPFZvaWRDYWxsYmFjaz4oY2Fs
bGJhY2tJRCkpCi0gICAgICAgICAgICBjYWxsYmFjay0+cGVyZm9ybUNhbGxiYWNrKCk7CisgICAg
ICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZShjYWxsYmFja0lEKSkKKyAg
ICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgfQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaAppbmRl
eCBkMTk3MjkyNjU1YzYxYmE2YzZiYjM4YTEzODg1N2Y0ZGU1NjcxYzk4Li5iZDUzOWQyMmMxNTJh
NDQxOTg1Yzg3MDYzODA5YmEyYjI0NTNkYTBjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgKQEAgLTI2
LDcgKzI2LDYgQEAKICNpZiBFTkFCTEUoRlVMTFNDUkVFTl9BUEkpICYmIFBMQVRGT1JNKE1BQykK
IAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5oPgotI2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgi
CiAjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4KICNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2lt
cG9ydCA8d3RmL1JldGFpblB0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1RleHRGaW5kZXJDbGllbnQubW0KaW5kZXggYzAzN2Q2NWIyYmMwZjNjMGExZWExMjZlZmQy
MTgyN2RhMjFhYWJiOS4uNzQxNDUyMTgyYWIyMTExZDZhZGFkZWQzNmVlOTBiMDJjZWE0MzYxMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVu
dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50
Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbXBvcnQgIkFQSUZpbmRDbGllbnQuaCIKICNpbXBv
cnQgIkFQSUZpbmRNYXRjaGVzQ2xpZW50LmgiCisjaW1wb3J0ICJXZWJGaW5kT3B0aW9ucy5oIgog
I2ltcG9ydCAiV2ViSW1hZ2UuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCA8
YWxnb3JpdGhtPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2oKaW5kZXggMmEzYTBkNGU0NmNjNGU2NTc5NTcyODdkMjZjODhiYzNhMDY0ZDEwNS4uNTk0
YTlkODRmYTA2NjExOGVkMTY1OTE0NTZkMjNjYmQyMDlhYmUxYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xNjg4LDcgKzE2ODgsNiBA
QAogCQlCQzE0REY5RjEyMEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNERGOUQxMjBC
NjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzE0RTEwQTEyMEI5MDVFMDA4MjZDMEMg
LyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNEUxMDgxMjBCOTA1RTAwODI2QzBDIC8qIEluamVj
dGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCAqLzsgfTsKIAkJQkMxNzc0NjUxMThCOUZGNDAwN0Q5
RTlBIC8qIFdLUGFnZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTc3NDY0MTE4QjlGRjQwMDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkMxNzc1
M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNzc1M0UxMThCQUJGMDAwN0Q5RTlBIC8q
IEdlbmVyaWNDYWxsYmFjay5oICovOyB9OwogCQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyog
UHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzFBN0M1NzExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggKi87
IH07CiAJCUJDMUI0MTk4MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFCNDE5NzEx
RDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMUJFMUUwMTJENTRBNDEwMDA0QTIy
OCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0
aW9uQ2xpZW50LmggKi87IH07CkBAIC01MjczLDcgKzUyNzIsNiBAQAogCQlCQzE0RTEwNzEyMEI5
MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHAgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxNEUxMDgxMjBCOTA1RTAwODI2
QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlCQzE3NzQ2NDExOEI5RkY0MDA3RDlFOUEgLyogV0tQYWdlUHJp
dmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BhZ2VQcml2YXRlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAv
KiBHZW5lcmljQ2FsbGJhY2suaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2Vu
ZXJpY0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUE3QzU3MTEz
NkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gUHJvY2Vzc0xhdW5jaGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMUI0MTk3MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLQnVuZGxlUGFnZVByaXZhdGUuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdl
Ykdlb2xvY2F0aW9uQ2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
Ykdlb2xvY2F0aW9uQ2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDA1
Niw3ICsxMDA1NCw2IEBACiAJCQkJMUE2NDIyRkMxMkREMDhGRTAwQ0FBRTJDIC8qIERyYXdpbmdB
cmVhUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJCQkJMUFFMDBENUUxODMxNzkyMTAwMDg3REQ3IC8q
IEZyYW1lTG9hZFN0YXRlLmNwcCAqLywKIAkJCQkxQUUwMEQ1RjE4MzE3OTIxMDAwODdERDcgLyog
RnJhbWVMb2FkU3RhdGUuaCAqLywKLQkJCQlCQzE3NzUzRTExOEJBQkYwMDA3RDlFOUEgLyogR2Vu
ZXJpY0NhbGxiYWNrLmggKi8sCiAJCQkJOUVDNTMyQTIyNDQ3RkJBRDAwMjE1MjE2IC8qIEdlb2xv
Y2F0aW9uSWRlbnRpZmllci5oICovLAogCQkJCUJDMDZGNDQ5MTJEQkQxRjUwMDJENzhERSAvKiBH
ZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQlCQzA2
RjQ0ODEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5oICovLApAQCAtMTIwNzEsNyArMTIwNjgsNiBAQAogCQkJCUNEMTlEMkVBMjA0NjQw
NkYwMDE3MDc0QSAvKiBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWMuaCBpbiBIZWFkZXJzICov
LAogCQkJCUNEQTkzREIwMjJGOEJDRjQwMDQ5MEE2OSAvKiBGdWxsc2NyZWVuVG91Y2hTZWNoZXVy
aXN0aWNQYXJhbWV0ZXJzLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTVCRTFCMzFENTkwMkREMDBE
RDdDNjggLyogR2FtZXBhZERhdGEuaCBpbiBIZWFkZXJzICovLAotCQkJCUJDMTc3NTNGMTE4QkFC
RjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCBpbiBIZWFkZXJzICovLAogCQkJCTlFQzUz
MkEzMjQ0N0ZCQUQwMDIxNTIxNiAvKiBHZW9sb2NhdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDZGNDJGMTJEQkI5QjYwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwNkY0NEExMkRCRDFGNTAw
MkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBI
ZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dC5tbQppbmRleCAwNzg2Y2M1MzMxZjM1MDkxZWViYTU1NTkwNzA3N2EzMTU3NjgwOGU4Li40NWI1
OGQ2M2JjMDk0ZDBmMjBkY2U5MjY2ZmY5YjY3NGUzOWYwYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQpAQCAtMjYsNyArMjYsNiBAQAogI2lt
cG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllclRyZWVDb250ZXh0LmgiCiAKLSNp
bXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCAiR3JhcGhpY3NMYXllckNBUmVtb3Rl
LmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5ZXJSZW1vdGUuaCIKICNpbXBvcnQgIlJlbW90ZUxh
eWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5oIgo=
</data>
<flag name="commit-queue"
          id="459182"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436204</attachid>
            <date>2021-08-23 09:37:15 -0700</date>
            <delta_ts>2021-08-23 11:42:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210823093714.patch</filename>
            <type>text/plain</type>
            <size>54198</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiN2ZlZDE4NDVkZDA1N2Nm
NDEyOWZkMDkwYjgzMDZmOTQyZDc1MDguLjU3MzI5YTg0ZDgwM2I4MzcxNzY1OTE1MzNmNWYxMzIy
Y2IwMDIxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDgtMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAg
ICAgVGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3lu
Y1JlcGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5j
b2RlZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29k
ZSB3aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1
dCB3ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0
aW9uLgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJY29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VD
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0Zv
clBhaW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlv
bi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmlu
Z0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVy
Rmx1c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbToKKwogMjAyMS0wOC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgVUlFdmVudEF0dHJpYnV0aW9uIHRlc3RzIGxl
c3MgcGxhdGZvcm0gZGVwZW5kZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
YWxsYmFja0lELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmgKaW5kZXggMGFk
MzIxM2YxN2Y0MGU5MDhkYjZjNmU0ZWM5NTcxOGU3ZmYyZjEyOS4uNjJkNTc0MDliMTMyMDJkN2Rm
NzhmNDAzMzNjNzViYmI3NjQxMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2FsbGJhY2tJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhbGxiYWNrSUQuaApAQCAt
OTgsNyArOTgsNiBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQobmV3SUQgIT0gSGFzaFRyYWl0
czx1aW50NjRfdD46OmVtcHR5VmFsdWUoKSk7CiAgICAgfQogCi0gICAgZnJpZW5kIGNsYXNzIENh
bGxiYWNrTWFwOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja1R5cGU+IGZyaWVuZCBj
bGFzcyBTcGVjaWZpY0NhbGxiYWNrTWFwOwogICAgIGZyaWVuZCBjbGFzcyBPcHRpb25hbENhbGxi
YWNrSUQ7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkNhbGxiYWNrSURIYXNoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA5Y2YyN2UxZjRjNDg1ZjkyNWFlMmQ4ZGYxYTc3
MWExZDE4Mjg1NzJiLi4xNjc3MGVjZmY2NzAzNGQ1NTg1OWIxYTQ5YzNkNmQwZjYyM2JhMDMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMjUsMTAgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdp
bmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNp
bmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCmluZGV4IGFmYTkyOWNmMDkzZDIyZWM3
NmFkODZmZGEwM2I1MDFiYmZkMjlkYzMuLmZiYWFlOTczMDVhZmQ1YWM2NzUxMmU2YzcyZTBhYWIx
NmNhNGI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRh
Y2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQu
aApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJY29u
TG9hZGluZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2Fk
aW5nQ2xpZW50LmgKaW5kZXggYjFiMTFmNWM1MWEyYTQ2OGVhMGFjYTUyZTI2MzRmMGViZmFhMjFh
NS4uNTZmYTg3N2YxZTg5MWFjNzE4YjhiMWE0ZGYyMDlmNWQ0YmRiMWRhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKQEAgLTI1
LDE5ICsyNSwyMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFj
ay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0ljb24uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIEFQ
SSB7CiAKK2NsYXNzIERhdGE7CisKIGNsYXNzIEljb25Mb2FkaW5nQ2xpZW50IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JY29uTG9hZGluZ0Ns
aWVudCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29u
c3QgV2ViQ29yZTo6TGlua0ljb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoQVBJOjpEYXRhKik+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHZp
cnR1YWwgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29u
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERhdGEqKT4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihudWxscHRyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCmluZGV4IDg2MjY3MjA4OGViMjk3MmY2ZDU1ZTIz
NmNlN2YzMDljNzJkNWQxNzUuLjE4NmQ2YjI0NmI2YzE2NzZlZDk2MzY4MWFlNjBhM2MzNzZlMWU5
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JF
eHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
X0VYVEVOU0lPTlMpCiAKKyNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRp
b25EZXRhaWxzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmlu
ZGV4IDJkYjBmNTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFmYjVhNmE0ZTdiZjAuLjJlZjJlN2U3MGEz
OTAyYTM1NzhhNGQ3ZDA3NDY5MzYwM2M0MmEzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkFQSUluc3BlY3RvckNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJBUElTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IGM3N2EzYTYyMTNiMTY4Y2Q3Yzk2MDQ4NDYyODFhYzM1ZjM1
OTRjODkuLjUzYWQyZTI1OTA0ZDc0MTMxZjRlNGNhOWM5NGI2ZTE0ZDdhMDU3YjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJBUElQYWdlQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVudC5oIgorI2luY2x1ZGUgIkFQSVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkFQSVNlc3Npb25TdGF0ZS5oIgogI2lu
Y2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oIgpAQCAtMzAwNSw4ICszMDA2LDggQEAgdm9pZCBXS1BhZ2VDbGVhcldoZWVsRXZlbnRUZXN0
TW9uaXRvcihXS1BhZ2VSZWYgcGFnZVJlZikKIHZvaWQgV0tQYWdlQ2FsbEFmdGVyTmV4dFByZXNl
bnRhdGlvblVwZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdlUG9z
dFByZXNlbnRhdGlvblVwZGF0ZUZ1bmN0aW9uIGNhbGxiYWNrKQogewogICAgIENSQVNIX0lGX1NV
U1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25V
cGRhdGUoW2NvbnRleHQsIGNhbGxiYWNrXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpIHsKLSAgICAgICAgY2FsbGJhY2soZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yOjpOb25lID8gdG9BUEkoQVBJOjpFcnJvcjo6Y3JlYXRlKCkucHRyKCkpIDogMCwgY29udGV4
dCk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
KFtjb250ZXh0LCBjYWxsYmFja10oKSB7CisgICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIGNvbnRl
eHQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbQppbmRleCAwODBlYWIxMTA3NTQ1ZDRjOTk0
MTFlMjkyOTQ0YzBhMjVjODViOTRiLi5iOTYzMmY1YWI2NGRlNWYyNDYwMTRlMTMyZmQ0MjI5YWM4
NWI0OTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNB
dHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KQEAgLTI4LDYgKzI4LDcgQEAKICNpbXBvcnQgIk5TQXR0
cmlidXRlZFN0cmluZ1ByaXZhdGUuaCIKIAogI2ltcG9ydCAiV0tFcnJvckludGVybmFsLmgiCisj
aW1wb3J0IDxGb3VuZGF0aW9uL0ZvdW5kYXRpb24uaD4KICNpbXBvcnQgPFdlYktpdC9XS05hdmln
YXRpb25BY3Rpb25Qcml2YXRlLmg+CiAjaW1wb3J0IDxXZWJLaXQvV0tOYXZpZ2F0aW9uRGVsZWdh
dGUuaD4KICNpbXBvcnQgPFdlYktpdC9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29u
dHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5n
Q29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggZTA3MTI2YWJiZDk0MTFhZmRjMTJiMmFiZmQwOGE0
ZDEwNzI0MjE5My4uZjUzYzkyYTcxNGJhNjNhMWI1ZGViYTZhZjdmY2Y3NTU5ZDQwMzc3YiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250
ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0
ICJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5
LmgiCiAjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJX
S0FQSUNhc3QuaCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKICNpbXBv
cnQgIldLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5n
Q29udGV4dEdyb3VwSW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJuYWwuaAppbmRleCAxMWJkMWY1ZDIyNzQzMjIwOWRhYzA4
MWE2ZWIyMmZjYzg0MzYxZDcwLi45NjI5MDE2YmNmNWViYTIzYmIxYjU2NjEyMzMzMzRmZDYxM2M2
ZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJv
ckludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJy
b3JJbnRlcm5hbC5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaW1wb3J0ICJXS0Vycm9yUHJpdmF0ZS5o
IgogCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2su
aCIKIAogUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZU5TRXJyb3IoV0tFcnJvckNvZGUsIE5TRXJy
b3IqIHVuZGVybHlpbmdFcnJvciA9IG5pbCk7CiBOU1N0cmluZyAqbG9jYWxpemVkRGVzY3JpcHRp
b25Gb3JFcnJvckNvZGUoV0tFcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggMWUzN2RiZTFjYWE1NzdjNDk3YTEzOTUzMGMz
YmQ2MzYwZDA0MmE5MC4uMWQ2MDFjMmI2Njk2OTk0OTQzNTk3ZDg3NDMwNjIyYzY4YzZkMzNjYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBA
IC0xMjM4LDEzICsxMjM4LDcgQEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRlIHRvV0tNZWRp
YVBsYXliYWNrU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
KFtjYWxsU25hcHNob3RSZWN0ID0gV1RGTW92ZShjYWxsU25hcHNob3RSZWN0KSwgaGFuZGxlcl0o
V2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYg
KGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAg
ICAgdHJhY2VQb2ludChUYWtlU25hcHNob3RFbmQsIHNuYXBzaG90RmFpbGVkVHJhY2VWYWx1ZSk7
Ci0gICAgICAgICAgICBoYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9yVW5rbm93biku
Z2V0KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KKyAgICBfcGFnZS0+Y2Fs
bEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY2FsbFNuYXBzaG90UmVjdCA9IFdURk1vdmUo
Y2FsbFNuYXBzaG90UmVjdCksIGhhbmRsZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIENyZWF0
ZSBhbiBpbXBsaWNpdCB0cmFuc2FjdGlvbiB0byBlbnN1cmUgYSBjb21taXQgd2lsbCBoYXBwZW4g
bmV4dC4KICAgICAgICAgW0NBVHJhbnNhY3Rpb24gYWN0aXZhdGVdOwogCkBAIC0xNTE0LDcgKzE1
MDgsNyBAQCBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9wdGlv
bnMoV0tGaW5kQ29uZmlndXJhdGlvbiAqY29uZmlndQogICAgIGF1dG8gdXBkYXRlQmxvY2tDb3B5
ID0gbWFrZUJsb2NrUHRyKHVwZGF0ZUJsb2NrKTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+
IHN0cm9uZ1NlbGYgPSBzZWxmOwotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9u
VXBkYXRlKFt1cGRhdGVCbG9ja0NvcHksIHdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemUs
IHN0cm9uZ1NlbGZdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9w
YWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9ja0NvcHksIHdp
dGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9uZ1NlbGZdIHsKICAgICAgICAgaWYg
KCF1cGRhdGVCbG9ja0NvcHkpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9u
Lm1tCmluZGV4IDQ2NTYxZDM0MzE0YTc5ZDQyYzU3ZTU5YmY3OTI3YWQxZmE0NTEwNDUuLmJhNWJl
NzA3MGRlNDBmMDYzZDM2Yjg4ZjljNGM0ZjllMGNlZWU5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5t
bQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQog
CisjaW1wb3J0ICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbXBvcnQgIkluc3BlY3Rv
ckV4dGVuc2lvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5o
IgogI2ltcG9ydCAiV0tFcnJvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDI4NThk
ZjZmMzRkNGZhNjIxMjA5YmYxZWIxZTEwODg1YWQwNWU3NTkuLjg4MWFhZDU5NGY0NGM0ZmEwNDBj
ZjkzZWFmMjVkMDMzNmRkN2MzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9nbGliL1dlYktpdENvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTIxLDYg
KzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRDb250ZXh0TWVudUNsaWVudC5oIgogCiAjaW5jbHVk
ZSAiQVBJQ29udGV4dE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJBUElTdHJpbmcuaCIKICNpbmNs
dWRlICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0
ZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRGaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKaW5kZXggZmVmNWJhMzhhNjhjM2FiMGE5MmExM2YzOGIw
YjU1ZThjMzU0NmQ2OC4uYjc2ZmFiNThlOGM0MDY2Yjk3Zjk4YTNiNDdmOWYyMGZlNWZjOGU3ZiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmluZENv
bnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dEZpbmRDb250cm9sbGVyLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdEZp
bmRDb250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJBUElGaW5kQ2xpZW50LmgiCisjaW5jbHVkZSAi
V2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJLaXRFbnVtVHlwZXMuaCIKICNpbmNsdWRl
ICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKaW5kZXggOTI2MmE4NGRlY2UyNWJmMGJkZjVjNTli
NDhkMDAyNTg1MmYzNmJhNy4uM2U0MTdlOGM2Y2MyNTE0Y2NhOTdhODIzOGY0NTI3NWEyMWZiOWMy
YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMjAsNyArMjAsMTAgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5o
IgogCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZUNs
aWVudC5oIgorI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3Qu
aCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvbWFjL1dLVmlldy5tbQppbmRleCA0MmI0NDM1MDRjODJjMmIyYWZkZTc1MGQ5NmNhNzM3
ZDMzZTNjMTQyLi5mOTJlNzVmYzk3MWY1ZTZlNGMzYTQ0ZGJmN2I3MzJhNjNiZjkwMzM2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbQpAQCAtMTY4Nyw3ICsxNjg3
LDcgQEAgc3RhdGljIFdlYkNvcmU6OlVzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24gdG9Vc2Vy
SW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uKE5TVXMKIC0gKHZvaWQpX2RvQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlOih2b2lkICheKSh2b2lkKSl1cGRhdGVCbG9jawogewogICAgIGF1dG8gdXBk
YXRlQmxvY2tDb3B5ID0gbWFrZUJsb2NrUHRyKHVwZGF0ZUJsb2NrKTsKLSAgICBfZGF0YS0+X2lt
cGwtPnBhZ2UoKS5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9ja0Nv
cHldKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9kYXRhLT5faW1w
bC0+cGFnZSgpLmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0ZUJsb2NrQ29w
eV0gewogICAgICAgICBpZiAodXBkYXRlQmxvY2tDb3B5KQogICAgICAgICAgICAgdXBkYXRlQmxv
Y2tDb3B5KCk7CiAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCmluZGV4IDljYjNmNjVhYTA0
MWFlMGU1YzU4MzQ3ZWJkNDdkYTZkNWQ5YTYyYjQuLjljODc3OGI1OTFjMmU1OWNjYmU0NzQ5Mjk1
MDYzNTVhYjgyMzA5ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwCkBAIC0zMSw2ICszMSw3IEBA
CiAjaW5jbHVkZSAiQVBJQXV0b21hdGlvblNlc3Npb25DbGllbnQuaCIKICNpbmNsdWRlICJBUElO
YXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiQVBJT3BlblBhbmVsUGFyYW1ldGVycy5oIgorI2luY2x1
ZGUgIkFQSVN0cmluZy5oIgogI2luY2x1ZGUgIkF1dG9tYXRpb25Qcm90b2NvbE9iamVjdHMuaCIK
ICNpbmNsdWRlICJDb29yZGluYXRlU3lzdGVtLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNl
c3Npb25NYWNyb3MuaCIKQEAgLTIyMDUsOSArMjIwNiw3IEBAIHZvaWQgV2ViQXV0b21hdGlvblNl
c3Npb246OnRha2VTY3JlZW5zaG90KGNvbnN0IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRp
b246CiAKICNpZiBQTEFURk9STShHVEspCiAgICAgRnVuY3Rpb248dm9pZChXZWJQYWdlUHJveHkm
LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+JiYsIFJlZjxUYWtlU2NyZWVuc2hvdENh
bGxiYWNrPiYmKT4gdGFrZVZpZXdTbmFwc290ID0gW10oV2ViUGFnZVByb3h5JiBwYWdlLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6OkludFJlY3Q+JiYgcmVjdCwgUmVmPFRha2VTY3JlZW5zaG90Q2Fs
bGJhY2s+JiYgY2FsbGJhY2spIHsKLSAgICAgICAgcGFnZS5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0
aW9uVXBkYXRlKFtwYWdlID0gbWFrZVJlZihwYWdlKSwgcmVjdCA9IFdURk1vdmUocmVjdCksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIG11
dGFibGUgewotICAgICAgICAgICAgaWYgKGVycm9yICE9IENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5v
bmUpCi0gICAgICAgICAgICAgICAgQVNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoSW50
ZXJuYWxFcnJvcik7CisgICAgICAgIHBhZ2UuY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0
ZShbcGFnZSA9IG1ha2VSZWYocGFnZSksIHJlY3QgPSBXVEZNb3ZlKHJlY3QpLCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgewogCiAgICAgICAgICAgICBhdXRvIHNuYXBz
aG90ID0gcGFnZS0+dGFrZVZpZXdTbmFwc2hvdChXVEZNb3ZlKHJlY3QpKTsKICAgICAgICAgICAg
IGlmICghc25hcHNob3QpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCmluZGV4IDVm
Y2Q4MWQxNGZmMjZjMWY0ZGFjNzY1ODdkOGJiNzViNDQ3NjVlN2QuLjJkMGQ1MzkwNmE3YTNkYmY4
MzVjMzYxODg1MWFmZWFjMmEwNzc1NGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFj
Lm1tCkBAIC0zMSw2ICszMSw3IEBACiAjaW1wb3J0ICJMb2dnaW5nLmgiCiAjaW1wb3J0ICJXZWJB
dXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgogI2ltcG9ydCAiV2ViSW5zcGVjdG9yVUlQcm94eS5o
IgorI2ltcG9ydCAiV2ViTW91c2VFdmVudC5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAj
aW1wb3J0ICJfV0tBdXRvbWF0aW9uU2Vzc2lvbi5oIgogI2ltcG9ydCA8Q2FyYm9uL0NhcmJvbi5o
PgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1By
b3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJv
eHlDb2NvYS5tbQppbmRleCBkY2FkZjhlOTJiYjQ4ZDAwNTZmN2QyMDFjOTVkOGJkYTk2YThhNWVl
Li4yMWY1ZjYzYTdkNDRmMzZlZTMzMGYxM2I3MGQzOTBkM2M4YmE1ZGIwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbQpA
QCAtMzMsNiArMzMsNyBAQAogI2ltcG9ydCAiT2JqQ09iamVjdEdyYXBoLmgiCiAjaW1wb3J0ICJT
YW5kYm94VXRpbGl0aWVzLmgiCiAjaW1wb3J0ICJTaGFyZWRCdWZmZXJEYXRhUmVmZXJlbmNlLmgi
CisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0Q29udHJv
bGxlckludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEhhbmRsZUludGVybmFs
LmgiCiAjaW1wb3J0ICJXS1R5cGVSZWZXcmFwcGVyLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCmluZGV4IDQ5NTU0OWUzODJkZjA1ZWIwOGU4MGRmZTIw
Mzc2MWJhMzA5OWE4YzIuLjZiYmU1Mjg3Y2M0NjQ2NDM1NmQzMGM4ZTVkOWVjNzk5M2Q0NGVkZjAg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tCkBAIC0z
NSw3ICszNSw2IEBACiAjaW1wb3J0ICJDb3JlVGV4dEhlbHBlcnMuaCIKICNpbXBvcnQgIkZvbnRJ
bmZvLmgiCiAjaW1wb3J0ICJGdWxsc2NyZWVuQ2xpZW50LmgiCi0jaW1wb3J0ICJHZW5lcmljQ2Fs
bGJhY2suaCIKICNpbXBvcnQgIkluc2VydFRleHRPcHRpb25zLmgiCiAjaW1wb3J0ICJMb2dnaW5n
LmgiCiAjaW1wb3J0ICJOYXRpdmVXZWJHZXN0dXJlRXZlbnQuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNv
b3JkaW5hdGVkR3JhcGhpY3MuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKaW5kZXgg
MDM4ZDllZTJmNDFjZGViYTRhZTdiNTk3MzExYjY2M2E1OGI2ZDYyOS4uZjk1NTYyODAxODgzZDVh
ODM1Y2Q4OWE1NDY3ZTY0NDUxZTU1ZWQ0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFw
aGljcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGlj
cy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5jcHAKQEAgLTQxNyw3ICs0MTcs
NyBAQCBpbnQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OkRyYXdpbmdNb25p
dG9yOjp3ZWJWaWV3RHJhd0NhbGxiYWNrKERyYQogICAgIHJldHVybiBmYWxzZTsKIH0KIAotdm9p
ZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OnN0
YXJ0KFdURjo6RnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFjaykK
K3ZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OkRyYXdpbmdNb25pdG9y
OjpzdGFydChGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CiAgICAgbV9zdGFydFRpbWUg
PSBNb25vdG9uaWNUaW1lOjpub3coKTsKICAgICBtX2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFj
ayk7CkBAIC00NDEsMTAgKzQ0MSw4IEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVk
R3JhcGhpY3M6OkRyYXdpbmdNb25pdG9yOjpzdG9wKCkKICAgICBnX3NpZ25hbF9oYW5kbGVyc19k
aXNjb25uZWN0X2J5X2Z1bmMobV93ZWJQYWdlLnZpZXdXaWRnZXQoKSwgcmVpbnRlcnByZXRfY2Fz
dDxncG9pbnRlcj4od2ViVmlld0RyYXdDYWxsYmFjayksIHRoaXMpOwogI2VuZGlmCiAgICAgbV9z
dGFydFRpbWUgPSBNb25vdG9uaWNUaW1lKCk7Ci0gICAgaWYgKG1fY2FsbGJhY2spIHsKLSAgICAg
ICAgbV9jYWxsYmFjayhDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKTsKLSAgICAgICAgbV9jYWxs
YmFjayA9IG51bGxwdHI7Ci0gICAgfQorICAgIGlmIChhdXRvIGNhbGxiYWNrID0gc3RkOjpleGNo
YW5nZShtX2NhbGxiYWNrLCBudWxscHRyKSkKKyAgICAgICAgY2FsbGJhY2soKTsKIH0KIAogdm9p
ZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OmRp
ZERyYXcoKQpAQCAtNDU4LDEyICs0NTYsMTAgQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRp
bmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OmRpZERyYXcoKQogICAgICAgICBtX3RpbWVy
LnN0YXJ0T25lU2hvdCgxNl9tcyk7CiB9CiAKLXZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5h
dGVkR3JhcGhpY3M6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpGdW5jdGlvbjx2
b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIERyYXdp
bmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3
aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewotICAgIGlmICghbV93
ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjYWxsYmFja0Z1bmN0
aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorICAgIGlmICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3Mo
KSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrRnVuY3Rpb24oKTsKIAogICAgIGlmICghbV9kcmF3
aW5nTW9uaXRvcikKICAgICAgICAgbV9kcmF3aW5nTW9uaXRvciA9IG1ha2VVbmlxdWU8RHJhd2lu
Z0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OkRyYXdpbmdNb25pdG9yPihtX3dlYlBhZ2VQ
cm94eSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdy
YXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGlu
YXRlZEdyYXBoaWNzLmgKaW5kZXggYjIzYTQ1ZmY3ZDMxMzMxN2Q4YmE2NGZiNDMwZWJiYTNiNmFk
ZWY3MS4uNGU3ZWVmMmNjOGE4YmMzNzIwNzhhNmFiZGQyZTYzMGVlNDZkNzk3NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJl
YVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3Mu
aApAQCAtODgsNyArODgsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlzY2FyZEJhY2tpbmdTdG9y
ZSgpOwogI2VuZGlmCiAKLSAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RG
OjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSBvdmVycmlkZTsKKyAgICB2
b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmKSBvdmVy
cmlkZTsKIAogICAgIGNsYXNzIERyYXdpbmdNb25pdG9yIHsKICAgICAgICAgV1RGX01BS0VfTk9O
Q09QWUFCTEUoRHJhd2luZ01vbml0b3IpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTk2
LDcgKzk2LDcgQEAgcHJpdmF0ZToKICAgICAgICAgRHJhd2luZ01vbml0b3IoV2ViUGFnZVByb3h5
Jik7CiAgICAgICAgIH5EcmF3aW5nTW9uaXRvcigpOwogCi0gICAgICAgIHZvaWQgc3RhcnQoV1RG
OjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKTsKKyAgICAgICAgdm9pZCBz
dGFydChGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgcHJpdmF0ZToKICAgICAgICAgc3RhdGlj
IGludCB3ZWJWaWV3RHJhd0NhbGxiYWNrKERyYXdpbmdNb25pdG9yKik7CkBAIC0xMDUsNyArMTA1
LDcgQEAgcHJpdmF0ZToKICAgICAgICAgdm9pZCBkaWREcmF3KCk7CiAKICAgICAgICAgTW9ub3Rv
bmljVGltZSBtX3N0YXJ0VGltZTsKLSAgICAgICAgV1RGOjpGdW5jdGlvbjx2b2lkKENhbGxiYWNr
QmFzZTo6RXJyb3IpPiBtX2NhbGxiYWNrOworICAgICAgICBGdW5jdGlvbjx2b2lkKEVycm9yKT4g
bV9jYWxsYmFjazsKICAgICAgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ01vbml0b3I+IG1fdGlt
ZXI7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFnZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4MjZjNDE3
YzZjOWJhMWM3ZTZjMmMzMmE2YWIwZjNhYjhkNzJmMGUwLi4zNGNkZGI1YmZlZTMxMTg0ZDlkOTJi
MDY4MWRlZjZhNjRkNzI3Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9E
cmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0Fy
ZWFQcm94eS5oCkBAIC0yNiw4ICsyNiw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAi
Q2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgotI2luY2x1ZGUgIkdl
bmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUg
Ik1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtOTcs
NyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2FpdEZvckRpZFVwZGF0ZUFj
dGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSB7IH0KICAgICAKLSAgICB2aXJ0dWFs
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENh
bGxiYWNrQmFzZTo6RXJyb3IpPiYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmly
dHVhbCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYm
KSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBIaWRlIHRoZSBjb250ZW50IHVu
dGlsIHRoZSBjdXJyZW50bHkgcGVuZGluZyB1cGRhdGUgYXJyaXZlcy4KICAgICB2aXJ0dWFsIHZv
aWQgaGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2su
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0Nzk4ZDc3N2JlNmNmZTc1N2ZiZGRjYWQwOTlmOTBkZThjYjRl
MmU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisrKyAvZGV2L251bGwKQEAgLTEs
MjEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFu
ZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0
OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5h
cnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4g
dGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQg
d2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkg
RVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8g
RVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUg
Rk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlks
IE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVE
IFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04p
IEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJ
TgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVT
RSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElU
WSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFQSUVy
cm9yLmgiCi0jaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAi
Q2FsbGJhY2tJRC5oIgotI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlICJT
aGFyZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlIDx3dGYv
RnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9NYWlu
VGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhy
ZWFkaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBDYWxsYmFja0Jhc2UgOiBw
dWJsaWMgUmVmQ291bnRlZDxDYWxsYmFja0Jhc2U+IHsKLXB1YmxpYzoKLSAgICBlbnVtIGNsYXNz
IEVycm9yIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgVW5rbm93biwKLSAgICAgICAgUHJvY2Vz
c0V4aXRlZCwKLSAgICAgICAgT3duZXJXYXNJbnZhbGlkYXRlZCwKLSAgICB9OwotCi0gICAgdmly
dHVhbCB+Q2FsbGJhY2tCYXNlKCkKLSAgICB7Ci0gICAgfQotCi0gICAgQ2FsbGJhY2tJRCBjYWxs
YmFja0lEKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja0lEOyB9Ci0KLSAgICB0ZW1wbGF0ZTxj
bGFzcyBUPgotICAgIFQqIGFzKCkKLSAgICB7Ci0gICAgICAgIGlmIChUOjp0eXBlKCkgPT0gbV90
eXBlKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPih0aGlzKTsKLQotICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZShF
cnJvcikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgc3RydWN0IFR5cGVUYWcgeyB9OwotICAgIHR5
cGVkZWYgY29uc3QgVHlwZVRhZyogVHlwZTsKLQotICAgIGV4cGxpY2l0IENhbGxiYWNrQmFzZShU
eXBlIHR5cGUsIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5KQot
ICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fY2FsbGJhY2tJRChDYWxsYmFja0lE
OjpnZW5lcmF0ZUlEKCkpCi0gICAgICAgICwgbV9hY3Rpdml0eShXVEZNb3ZlKGFjdGl2aXR5KSkK
LSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlOwotICAgIENhbGxiYWNr
SUQgbV9jYWxsYmFja0lEOwotICAgIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCBt
X2FjdGl2aXR5OwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIEdlbmVyaWND
YWxsYmFjayA6IHB1YmxpYyBDYWxsYmFja0Jhc2UgewotcHVibGljOgotICAgIHR5cGVkZWYgRnVu
Y3Rpb248dm9pZCAoVC4uLiwgRXJyb3IpPiBDYWxsYmFja0Z1bmN0aW9uOwotCi0gICAgc3RhdGlj
IFJlZjxHZW5lcmljQ2FsbGJhY2s+IGNyZWF0ZShDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2ss
IFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5ID0gbnVsbHB0cikK
LSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdlbmVyaWNDYWxsYmFjayhXVEZN
b3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShhY3Rpdml0eSkpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFs
IH5HZW5lcmljQ2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fb3JpZ2luVGhyZWFk
LnB0cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0gICAgICAgIEFTU0VSVCghbV9jYWxsYmFj
ayk7Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoVC4u
LiByZXR1cm5WYWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX29yaWdpblRocmVhZC5wdHIo
KSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotCi0gICAgICAgIGlmICghbV9jYWxsYmFjaykKLSAg
ICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIGNhbGxiYWNrID0gc3RkOjpleGNoYW5n
ZShtX2NhbGxiYWNrLCBzdGQ6Om51bGxvcHQpOwotICAgICAgICBjYWxsYmFjay52YWx1ZSgpKHJl
dHVyblZhbHVlLi4uLCBFcnJvcjo6Tm9uZSk7Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2Fs
bGJhY2soKQotICAgIHsKLSAgICAgICAgcGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKCk7
Ci0gICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKEVycm9yIGVycm9yID0gRXJyb3I6OlVua25v
d24pIGZpbmFsCi0gICAgewotICAgICAgICBBU1NFUlQobV9vcmlnaW5UaHJlYWQucHRyKCkgPT0g
JlRocmVhZDo6Y3VycmVudCgpKTsKLQotICAgICAgICBpZiAoIW1fY2FsbGJhY2spCi0gICAgICAg
ICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBjYWxsYmFjayA9IHN0ZDo6ZXhjaGFuZ2UobV9j
YWxsYmFjaywgc3RkOjpudWxsb3B0KTsKLSAgICAgICAgY2FsbGJhY2sudmFsdWUoKSh0eXBlbmFt
ZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUoKS4uLiwgZXJyb3IpOwotICAgIH0KLQot
cHJpdmF0ZToKLSAgICBHZW5lcmljQ2FsbGJhY2soQ2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNr
LCBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICAgICAg
OiBDYWxsYmFja0Jhc2UodHlwZSgpLCBXVEZNb3ZlKGFjdGl2aXR5KSkKLSAgICAgICAgLCBtX2Nh
bGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQotICAgIHsKLSAgICB9Ci0KLSAgICBmcmllbmQgY2xh
c3MgQ2FsbGJhY2tCYXNlOwotICAgIHN0YXRpYyBUeXBlIHR5cGUoKQotICAgIHsKLSAgICAgICAg
c3RhdGljIFR5cGVUYWcgdGFnOwotICAgICAgICByZXR1cm4gJnRhZzsKLSAgICB9Ci0KLSAgICBz
dGQ6Om9wdGlvbmFsPENhbGxiYWNrRnVuY3Rpb24+IG1fY2FsbGJhY2s7Ci0KLSNpZiBBU1NFUlRf
RU5BQkxFRAotICAgIFJlZjxUaHJlYWQ+IG1fb3JpZ2luVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50
KCkgfTsKLSNlbmRpZgotfTsKLQotdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8PiBWb2lkQ2FsbGJh
Y2s7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIGludmFsaWRhdGVDYWxsYmFja01hcChI
YXNoTWFwPHVpbnQ2NF90LCBUPiYgY2FsbGJhY2tNYXAsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpCi17Ci0gICAgYXV0byBtYXAgPSBXVEZNb3ZlKGNhbGxiYWNrTWFwKTsKLSAgICBmb3IgKGF1
dG8mIGNhbGxiYWNrIDogbWFwLnZhbHVlcygpKQotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0
ZShlcnJvcik7Ci19Ci0KLWNsYXNzIENhbGxiYWNrTWFwIHsKLXB1YmxpYzoKLSAgICBDYWxsYmFj
a0lEIHB1dChSZWY8Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgUkVM
RUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRvIGNhbGxiYWNrSUQg
PSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChjYWxsYmFj
a0lELmlzVmFsaWQoKSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX21hcC5jb250YWlucyhj
YWxsYmFja0lELm1faWQpKTsKLSAgICAgICAgbV9tYXAuc2V0KGNhbGxiYWNrSUQubV9pZCwgV1RG
TW92ZShjYWxsYmFjaykpOwotICAgICAgICByZXR1cm4gY2FsbGJhY2tJRDsKLSAgICB9Ci0KLSAg
ICB0ZW1wbGF0ZTx1bnNpZ25lZCBJLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBVPgotICAgIHN0
cnVjdCBHZW5lcmljQ2FsbGJhY2tUeXBlIHsKLSAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5l
cmljQ2FsbGJhY2tUeXBlPEkgLSAxLCBVLi4uLCBUPjo6dHlwZSB0eXBlOwotICAgIH07Ci0KLSAg
ICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBVPgotICAgIHN0cnVjdCBHZW5lcmljQ2FsbGJhY2tUeXBl
PDEsIENhbGxiYWNrQmFzZTo6RXJyb3IsIFUuLi4+IHsKLSAgICAgICAgdHlwZWRlZiBHZW5lcmlj
Q2FsbGJhY2s8VS4uLj4gdHlwZTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4g
VD4KLSAgICBDYWxsYmFja0lEIHB1dChGdW5jdGlvbjx2b2lkKFQuLi4pPiYmIGZ1bmN0aW9uLCBQ
cm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICB7Ci0gICAg
ICAgIGF1dG8gY2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihUKSwgVC4u
Lj46OnR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uKSwgV1RGTW92ZShhY3Rpdml0eSkpOwot
ICAgICAgICByZXR1cm4gcHV0KFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICB9Ci0KLSAgICB0ZW1w
bGF0ZTxjbGFzcyBUPgotICAgIFJlZlB0cjxUPiB0YWtlKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkK
LSAgICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxiYWNrSUQuaXNWYWxpZCgpKTsKLSAg
ICAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRvIGJh
c2UgPSBtX21hcC50YWtlKGNhbGxiYWNrSUQubV9pZCk7Ci0gICAgICAgIGlmICghYmFzZSkKLSAg
ICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgIHJldHVybiBhZG9wdFJlZihiYXNl
LmxlYWtSZWYoKS0+YXM8VD4oKSk7Ci0gICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKENhbGxi
YWNrQmFzZTo6RXJyb3IgZXJyb3IpCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5M
b29wOjppc01haW4oKSk7Ci0gICAgICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX21hcCwgZXJy
b3IpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Q2Fs
bGJhY2tCYXNlPj4gbV9tYXA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVu
c2lvbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0
b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDIzNTEy
YWYwZjFkNWVhZjFmZWE4ZWZjM2I4NWM5NDJjNmJmNTM2ZmYuLmJlNWU2NmMwZmE1NTMyZGI1ZWIz
MzJiN2I5MDVkMjUyZGY4MGNmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5z
aW9uQ29udHJvbGxlclByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShJTlNQ
RUNUT1JfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFQSUluc3BlY3RvckV4dGVuc2lvbi5oIgor
I2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYkluc3Bl
Y3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVj
dG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBh
Z2VQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9y
L21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCmluZGV4IGYwZGMy
ZmEzZTFmN2IxZGU5Njg5N2IxMGIxNmRlNzhmMmZmZjI2YjUuLjI5Mjg3YmEyZmI3MjEyZTAwZDI2
ZDQ1ZTdjYTZhYzU4NWYzYWRlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIu
bW0KQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFQSU5h
dmlnYXRpb24uaCIKLSNpbXBvcnQgPFdlYktpdC9XS0ZyYW1lSW5mby5oPgorI2ltcG9ydCAiV0tB
UElDYXN0LmgiCiAjaW1wb3J0ICJXS0luc3BlY3RvclJlc291cmNlVVJMU2NoZW1lSGFuZGxlci5o
IgogI2ltcG9ydCAiV0tJbnNwZWN0b3JXS1dlYlZpZXcuaCIKICNpbXBvcnQgPFdlYktpdC9XS05h
dmlnYXRpb25BY3Rpb24uaD4KQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBvcnQgIldlYlBhZ2VQcm94
eS5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbkludGVybmFsLmgiCiAjaW1w
b3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0ZyYW1lSW5m
by5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIHN0YXRpYyBOU1N0cmluZyAqIGNv
bnN0IFdLSW5zcGVjdG9yUmVzb3VyY2VTY2hlbWUgPSBAImluc3BlY3Rvci1yZXNvdXJjZSI7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzYwNjMxYzQ5MGY2
NDMzZjM0MWE0M2JkODgxZDU0NWY0YTliNzNhZS4uOWE3MzRhZGIxZTYyOWE1YmI4NzY1MDM5MzZk
M2I2ZTQyMDkwN2YyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNw
cApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJ
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgor
I2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5o
IgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5LmgKaW5kZXggZTMyYmY3YjM1OTI2ZmM4YWIzMGU5YjQ1ZTAyNDUwYjBmZTZhMTJjZS4u
N2I2ZDUwZTMyZmUwN2MxYzUyODNlOTdkMTE3YjZkYWViMThmMDlmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKKyNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogI2lu
Y2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbkZyYW1l
UmF0ZS5oPgpAQCAtNjcsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEZvciBub3cs
IGFsbCBjYWxsYmFja3MgYXJlIGNhbGxlZCBiZWZvcmUgY29tbWl0dGluZyBjaGFuZ2VzLCBiZWNh
dXNlIHRoYXQncyB3aGF0IHRoZSBvbmx5IGNsaWVudCByZXF1aXJlcy4KICAgICAvLyBPbmNlIHdl
IGhhdmUgb3RoZXIgY2FsbGJhY2tzLCBpdCBtYXkgbWFrZSBzZW5zZSB0byBoYXZlIGEgYmVmb3Jl
LWNvbW1pdC9hZnRlci1jb21taXQgb3B0aW9uLgotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248
dm9pZCgpPiYmKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRpZENo
YW5nZVZpZXdFeHBvc2VkUmVjdCgpIG92ZXJyaWRlOwpAQCAtMTE5LDcgKzEyMCw3IEBAIHByaXZh
dGU6CiAgICAgVHJhbnNhY3Rpb25JRCBtX3RyYW5zYWN0aW9uSURGb3JVbmhpZGluZ0NvbnRlbnQ7
CiAgICAgQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEIHsgQWN0
aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cyB9OwogCi0gICAgQ2FsbGJhY2tNYXAgbV9jYWxs
YmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lELCBzdGQ6OnBhaXI8RnVuY3Rpb248dm9pZCgp
Piwgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eT4+
PiBtX2NhbGxiYWNrczsKIAogICAgIFJldGFpblB0cjxXS09uZVNob3REaXNwbGF5TGlua0hhbmRs
ZXI+IG1fZGlzcGxheUxpbmtIYW5kbGVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggYjRlNGM2YzBkYTgwMzI2MTI5NWJkZGFmZDQ1
NWI3Y2E5OWM4NTNhMC4uZmY2NTRmYWU3OTE1MzYzNGE3ODgwZWViMGQxYzk3ZWM5NjFlMTE1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAg
LTEyNyw3ICsxMjcsNiBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5KFdlYlBhZ2VQcm94eSYgdwogCiBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojp+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSgpCiB7
Ci0gICAgbV9jYWxsYmFja3MuaW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldh
c0ludmFsaWRhdGVkKTsKICAgICBwcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllcik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjY5LDgg
KzI2OCw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5
ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAgICAgICAgIG1fd2ViUGFnZVByb3h5
LmRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKG1pbGVzdG9uZXMpOwogCiAgICAgZm9yIChhdXRvJiBj
YWxsYmFja0lEIDogbGF5ZXJUcmVlVHJhbnNhY3Rpb24uY2FsbGJhY2tJRHMoKSkgewotICAgICAg
ICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8Vm9pZENhbGxiYWNrPihjYWxs
YmFja0lEKSkKLSAgICAgICAgICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKKyAgICAg
ICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpLmZpcnN0
KQorICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9CiB9CiAKQEAgLTQ3MSwxNCArNDcwLDE2
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvckRpZFVwZGF0
ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0CiAgICAgfQogfQogCi12b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpG
dW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQor
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJp
bmdEcmF3aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGlm
ICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjYWxsYmFj
a0Z1bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAg
ICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKG1fY2Fs
bGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBwcm9jZXNzKCkudGhyb3R0bGVy
KCkuYmFja2dyb3VuZEFjdGl2aXR5KCJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpk
aXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nIl9zKSkpKTsKKyAgICBhdXRvIGNhbGxiYWNrSUQg
PSBDYWxsYmFja0lEOjpnZW5lcmF0ZUlEKCk7CisgICAgbV9jYWxsYmFja3Muc2V0KGNhbGxiYWNr
SUQsIHN0ZDo6bWFrZV9wYWlyKFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3MoKS50
aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmciX3MpLm1vdmVUb1VuaXF1ZVB0cigp
KSk7CisgICAgc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFkZFRyYW5zYWN0aW9uQ2FsbGJh
Y2tJRChjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBhMjUyOGMyYzBlMGQ3ZTEzMDk4NjE2
YjMxNTA4ODY2ZWY5ODQ3NjEzLi5lODU2MDZhZDA1MjQ1ZDViMWExMDNmMjJiMGNiMDYwZDYwNDk4
MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRDbGllbnQuaCIKIAorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQb29sLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAppbmRleCAzZGNmNTRhZDdjOGJhYjFiNWFiNmE2
ZWMyOGY1YTFmODcxYTQxOTFjLi5iOWRjM2I3NDlmODRjYzI5N2MzYWRhNjY0YjA3Y2IyNmY0MTFh
NTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuaApAQCAtMjYsOSArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKaW5kZXggMzkxYjAyNzM2MjgzNDFl
ZGFhODgzMGIzNzRmMGZiMTMxMjQwMTcyYS4uZGM4Y2Q4NTRlNTEwMjQ1YTAzMGFjYmVlNDhhZDJj
MTk5Zjk0NmQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAt
MjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkU3RhdGUuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KQEAgLTQxLDYgKzQwLDcgQEAKIAog
bmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBOYXZpZ2F0aW9uOworY2xhc3MgVVJMOwogfQogCiBuYW1l
c3BhY2UgSVBDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IDcwZWQ5ZGE0ZDQ1ZGQzYjUxNGEzZWEwOTIyZjlkNmU4ZjRmNTMwZDkuLmM4Y2NhZTBlNzE0ZTM1
NzVmMGYyOWIzOTA1MTFjODk4MTE4OTllZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVu
dC5oIgogI2luY2x1ZGUgIkFQSVJlc291cmNlTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIkFQSVNl
Y3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAj
aW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKICNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQVBJV2Vic2l0ZVBvbGljaWVzLmgiCkBAIC00NDYzLDkgKzQ0NjQsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Zm9yY2VSZXBhaW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxs
YmFjaykKICAgICBtX2RyYXdpbmdBcmVhLT53YWl0Rm9yQmFja2luZ1N0b3JlVXBkYXRlT25OZXh0
UGFpbnQoKTsKIAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Rm9y
Y2VSZXBhaW50KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgewotICAgICAgICBjYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYXV0
bykgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9KTsKKyAgICAg
ICAgY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXVEZNb3ZlKGNhbGxiYWNrKSk7CiAg
ICAgfSk7CiB9CiAKQEAgLTk3NTYsMTIgKzk3NTUsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNs
ZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpD
bGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNh
bGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAg
ICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkgfHwgIW1fZHJhd2luZ0FyZWEpIHsKLSAgICAgICAg
Y2FsbGJhY2soQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpIHx8ICFtX2Ry
YXdpbmdBcmVhKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKIAogICAgIG1fZHJhd2luZ0Fy
ZWEtPmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGTW92ZShjYWxsYmFjaykpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiYmU2MzQwODZjYWJmMTYx
NzFjMDQ1OTNhNmI5MDBlMDIxNzdhN2JlLi5hMTYzODJjZjJlYTM0NDY0MjE1NTA3ODkyOGJlNWI5
Yjg2YmM0MmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjcs
NiArNjcsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24uaCIKKyNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1l
UHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCkBAIC0xOTUsNiArMTk2LDcgQEAg
aW50ZXJmYWNlIElEM0QxMURldmljZTE7CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7CitjbGFz
cyBBcnJheTsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CiBjbGFzcyBD
b250ZXh0TWVudUNsaWVudDsKQEAgLTIwNSwxMyArMjA3LDE5IEBAIGNsYXNzIEZpbmRNYXRjaGVz
Q2xpZW50OwogY2xhc3MgRm9ybUNsaWVudDsKIGNsYXNzIEZ1bGxzY3JlZW5DbGllbnQ7CiBjbGFz
cyBIaXN0b3J5Q2xpZW50OworY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEljb25Mb2FkaW5n
Q2xpZW50OwogY2xhc3MgTG9hZGVyQ2xpZW50OwogY2xhc3MgTmF2aWdhdGlvbjsKK2NsYXNzIE5h
dmlnYXRpb25BY3Rpb247CiBjbGFzcyBOYXZpZ2F0aW9uQ2xpZW50OworY2xhc3MgTmF2aWdhdGlv
blJlc3BvbnNlOworY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQb2xpY3lDbGllbnQ7
CiBjbGFzcyBSZXNvdXJjZUxvYWRDbGllbnQ7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiBjbGFzcyBVSUNsaWVudDsKK2NsYXNzIFVSTDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CiAKQEAg
LTMzMiw3ICszNDAsMTAgQEAgdHlwZWRlZiBIV05EIFBsYXRmb3JtVmlld1dpZGdldDsKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKK2NsYXNzIENhbGxiYWNrSUQ7
CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OworY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdh
bWVwYWREYXRhOwogY2xhc3MgTWVkaWFVc2FnZU1hbmFnZXI7CiBjbGFzcyBOYXRpdmVXZWJHZXN0
dXJlRXZlbnQ7CkBAIC0zNjMsNiArMzc0LDcgQEAgY2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5OwogY2xhc3MgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBX
ZWJCYWNrRm9yd2FyZENhY2hlOwogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92
aWRlclByb3h5OworY2xhc3MgV2ViSW5zcGVjdG9yVUlQcm94eTsKIGNsYXNzIFdlYktleWJvYXJk
RXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViTmF2aWdhdGlvblN0YXRlOwpA
QCAtNDA3LDYgKzQxOSw3IEBAIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0
IFdlYlBvcHVwSXRlbTsKIHN0cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsKIAorZW51bSBj
bGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OwogZW51bSBjbGFzcyBJbWFnZUFuYWx5c2lzVHlw
ZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRhcEhhbmRsaW5nUmVzdWx0IDogdWludDhfdDsKIGVu
dW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdDsKQEAgLTQxNiw2
ICs0MjksOCBAQCBlbnVtIGNsYXNzIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA6IHVpbnQ4X3Q7
CiBlbnVtIGNsYXNzIFVuZG9PclJlZG8gOiBib29sOwogZW51bSBjbGFzcyBXZWJDb250ZW50TW9k
ZSA6IHVpbnQ4X3Q7CiAKK3R5cGVkZWYgdWludDMyX3QgU25hcHNob3RPcHRpb25zOworCiAjaWYg
SEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiB1c2luZyBMYXllckhvc3RpbmdDb250
ZXh0SUQgPSB1aW50MzJfdDsKICNlbmRpZgpAQCAtMTYxNCw3ICsxNjI5LDcgQEAgcHVibGljOgog
CiAgICAgLy8gRm9yIHRlc3RpbmcKICAgICB2b2lkIGNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9y
KCk7Ci0gICAgdm9pZCBjYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdURjo6RnVuY3Rp
b248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgY2FsbEFmdGVyTmV4
dFByZXNlbnRhdGlvblVwZGF0ZShGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAgdm9pZCBkaWRS
ZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNw
cCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgz
ZDQwMzI0OWMxZDc4MzZjZDJjNDRmMmQ4NzZkYzkzMzA0MTMxLi5lNzJjZThmNTlhNGEyYjJhMGY1
N2VjOGY3MmE3NGI1ZjI2M2VhZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Bvb2wuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5o
IgogI2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiQVBJUHJvY2Vz
c1Bvb2xDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCisjaW5jbHVkZSAi
QVBJVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NNZXNzYWdlcy5oIgog
I2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2Fn
ZXMuaCIKQEAgLTU1LDYgKzU3LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1
ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgiCisjaW5jbHVk
ZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUg
IldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5o
IgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXggMDUzNTlhN2Rk
NDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4YS4uNzQ2NmIwMWEwYzE5MGJmY2MzYTg3ZDQy
ZDZhYTUwYTMyMjYwNzMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9v
bC5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAi
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5
LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRo
cm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0KaW5kZXgg
ZDE0ZGQ0YzcyYjgxZTQ1N2YxNmMwZDk5OGRiZjcyODRiMjg1ZDM3ZC4uZjdmZDFlNjc4NDdiNzY3
NjExODk2ZTI5NmIyYTQxNjhjMDY4MzViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0zNzEsNyArMzcx
LDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNr
Rm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLAogICAgICAgICAgICAgcmV0dXJuOwogICAgICAg
ICB9CiAKLSAgICAgICAgZHJhd2luZ0FyZWEtPmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmco
W3BhZ2VJRCwgZ2VzdHVyZUlEXSAoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgICAg
ICBkcmF3aW5nQXJlYS0+ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhbcGFnZUlELCBnZXN0
dXJlSURdIHsKICAgICAgICAgICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVyID0gY29udHJv
bGxlckZvckdlc3R1cmUocGFnZUlELCBnZXN0dXJlSUQpKQogICAgICAgICAgICAgICAgIGdlc3R1
cmVDb250cm9sbGVyLT53aWxsQ29tbWl0UG9zdFN3aXBlVHJhbnNpdGlvbkxheWVyVHJlZShlcnJv
ciA9PSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKTsKICAgICAgICAgfSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bQppbmRleCA2N2JmZjA0MmM0ZjQ5OTNiMTA5Mjc4YjczZTRlM2VkOTQ4MzE4NTU4Li5iNWQ0NThh
ZDkwZmQ0YzQ5ZjJkNDM1ZTk3MWYyMmUzYTdkMWUyMzM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KQEAgLTQ5
OTMsNyArNDk5Myw3IEBAIHN0YXRpYyB2b2lkIHNlbGVjdGlvbkNoYW5nZWRXaXRoVG91Y2goV0tD
b250ZW50VmlldyAqdmlldywgY29uc3QgV2ViQ29yZTo6SW50UG9pCiB7CiAgICAgX2lnbm9yZVNl
bGVjdGlvbkNvbW1hbmRGYWRlQ291bnQrKzsKICAgICBfcGFnZS0+c2NoZWR1bGVGdWxsRWRpdG9y
U3RhdGVVcGRhdGUoKTsKLSAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0
ZShbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0gKGF1dG8pIHsK
KyAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbd2Vha1NlbGYgPSBX
ZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0gewogICAgICAgICBpZiAoYXV0byBzdHJv
bmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCiAgICAgICAgICAgICBzdHJvbmdTZWxmLT5faWdub3Jl
U2VsZWN0aW9uQ29tbWFuZEZhZGVDb3VudC0tOwogICAgIH0pOwpAQCAtOTEwNyw3ICs5MTA3LDcg
QEAgc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBzaXplc09mUGxhY2Vob2xkZXJFbGVt
ZW50c1RvSW5zZXJ0V2hlbkRyb3BwaW5nSXQKICAgICAgICAgUkVMRUFTRV9MT0coRHJhZ0FuZERy
b3AsICJEcmFnIGludGVyYWN0aW9uIHdpbGxBbmltYXRlQ2FuY2VsV2l0aEFuaW1hdG9yIChhbmlt
YXRpb24gY29tcGxldGlvbiBibG9jayBmaXJlZCkiKTsKICAgICAgICAgcGFnZS0+ZHJhZ0NhbmNl
bGxlZCgpOwogICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uID0gcHJvdGVjdGVkU2VsZi0+X2Ry
YWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS50YWtlRHJhZ0NhbmNlbFNldERvd25CbG9jaygpKSB7Ci0g
ICAgICAgICAgICBwYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb21wbGV0
aW9uLCBwcm90ZWN0ZWRTZWxmXSAoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7CisgICAg
ICAgICAgICBwYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb21wbGV0aW9u
LCBwcm90ZWN0ZWRTZWxmXSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbigpOwogICAgICAg
ICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9pc0FuaW1hdGluZ0RyYWdDYW5jZWwgPSBOTzsKICAg
ICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1Rp
bGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXggZTIyODJl
YjNmOWZhZjRmNjAxZTJjMGM2NDFjYTc2ZmFmOGY4Y2I0Yy4uNGI5MWI5YWY4NWE4YWE5YzZjNDI5
OWQ4NzQyYTkwZmIxODAwN2M2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCkBA
IC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21taXRUcmFuc2llbnRab29tKGRv
dWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pIG92ZXJyaWRlOwogCiAgICAg
dm9pZCB3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXRlQ2hhbmdlSUQp
IG92ZXJyaWRlOwotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1
bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSBvdmVycmlkZTsKKyAgICB2b2lk
IGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmKSBvdmVycmlk
ZTsKICAgICB2b2lkIGRpc3BhdGNoUHJlc2VudGF0aW9uQ2FsbGJhY2tzQWZ0ZXJGbHVzaGluZ0xh
eWVycyhjb25zdCBWZWN0b3I8Q2FsbGJhY2tJRD4mKSBmaW5hbDsKIAogICAgIHZvaWQgd2lsbFNl
bmRVcGRhdGVHZW9tZXRyeSgpIG92ZXJyaWRlOwpAQCAtNzYsNyArNzYsNyBAQCBwcml2YXRlOgog
ICAgIC8vIFRoZSBsYXN0IG1heG1pdW0gc2l6ZSBmb3Igc2l6ZS10by1jb250ZW50IGF1dG8tc2l6
aW5nIHdlIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzLgogICAgIFdlYkNvcmU6OkludFNpemUgbV9s
YXN0U2VudFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOwogCi0gICAgQ2FsbGJhY2tN
YXAgbV9jYWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lELCBGdW5jdGlvbjx2b2lkKCk+
PiBtX2NhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVh
UHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBlNjE2YWZmZGUzNmRmNGEwMWY4YmJiYmZmMDhhMzBj
ZTdmZDE0YjU5Li4yYTc2Y2FiNWZhZTVkOTNmNWVhZTViNzk3NGVhM2JmN2U1MzdkZjA1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJh
d2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtNTAsNyArNTAsNiBAQCBUaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5KFdlYlBhZ2VQcgogCiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Ojp+
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSgpCiB7Ci0gICAgbV9jYWxsYmFja3Mu
aW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKIH0K
IAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkZXZpY2VTY2FsZUZh
Y3RvckRpZENoYW5nZSgpCkBAIC0yMDMsMjEgKzIwMiwyMyBAQCB2b2lkIFRpbGVkQ29yZUFuaW1h
dGlvbkRyYXdpbmdBcmVhUHJveHk6OmNvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNjYWxlLCBG
bG9hdAogICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpDb21taXRUcmFuc2llbnRab29t
KHNjYWxlLCBvcmlnaW4pKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAo
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248
dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmlu
Z1Byb2Nlc3MoKSkgewotICAgICAgICBjYWxsYmFjayhDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25l
cldhc0ludmFsaWRhdGVkKTsKKyAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNh
bGxiYWNrSUQobV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2spLCBudWxscHRyKSkpOwor
ICAgIGF1dG8gY2FsbGJhY2tJRCA9IENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKTsKKyAgICBtX2Nh
bGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHNlbmQoTWVz
c2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQoY2FsbGJhY2tJRCkp
OwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNo
UHJlc2VudGF0aW9uQ2FsbGJhY2tzQWZ0ZXJGbHVzaGluZ0xheWVycyhjb25zdCBWZWN0b3I8Q2Fs
bGJhY2tJRD4mIGNhbGxiYWNrSURzKQogewogICAgIGZvciAoYXV0byYgY2FsbGJhY2tJRCA6IGNh
bGxiYWNrSURzKSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFr
ZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpKQotICAgICAgICAgICAgY2FsbGJhY2stPnBlcmZv
cm1DYWxsYmFjaygpOworICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRh
a2UoY2FsbGJhY2tJRCkpCisgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgIH0KIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5k
b3dDb250cm9sbGVyLmgKaW5kZXggZDE5NzI5MjY1NWM2MWJhNmM2YmIzOGExMzg4NTdmNGRlNTY3
MWM5OC4uYmQ1MzlkMjJjMTUyYTQ0MTk4NWM4NzA2MzgwOWJhMmIyNDUzZGEwYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xs
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWYgRU5BQkxFKEZVTExTQ1JFRU5fQVBJ
KSAmJiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KLSNpbXBvcnQg
IkdlbmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1wb3J0IDx3
dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0gYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCmluZGV4IGMwMzdkNjVi
MmJjMGYzYzBhMWVhMTI2ZWZkMjE4MjdkYTIxYWFiYjkuLjc0MTQ1MjE4MmFiMjExMWQ2YWRhZGVk
MzZlZTkwYjAyY2VhNDM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1RleHRGaW5kZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1dLVGV4dEZpbmRlckNsaWVudC5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0ICJBUElG
aW5kQ2xpZW50LmgiCiAjaW1wb3J0ICJBUElGaW5kTWF0Y2hlc0NsaWVudC5oIgorI2ltcG9ydCAi
V2ViRmluZE9wdGlvbnMuaCIKICNpbXBvcnQgIldlYkltYWdlLmgiCiAjaW1wb3J0ICJXZWJQYWdl
UHJveHkuaCIKICNpbXBvcnQgPGFsZ29yaXRobT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJhM2EwZDRlNDZjYzRlNjU3OTU3Mjg3ZDI2
Yzg4YmMzYTA2NGQxMDUuLjU5NGE5ZDg0ZmEwNjYxMThlZDE2NTkxNDU2ZDIzY2JkMjA5YWJlMWMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTY4OCw3ICsxNjg4LDYgQEAKIAkJQkMxNERGOUYxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVu
ZGxlU2NyaXB0V29ybGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IEJDMTRERjlEMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxNEUx
MEExMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTRFMTA4MTIwQjkw
NUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggKi87IH07CiAJCUJD
MTc3NDY1MTE4QjlGRjQwMDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE3NzQ2NDExOEI5RkY0MDA3RDlFOUEg
LyogV0tQYWdlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07Ci0JCUJDMTc3NTNGMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2su
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTc3NTNF
MTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCAqLzsgfTsKIAkJQkMxQTdDNTgx
MTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTdDNTcxMTM2RTE5QzAwRkI3MTY3IC8qIFBy
b2Nlc3NMYXVuY2hlci5oICovOyB9OwogCQlCQzFCNDE5ODExRDQxRDU3MDAxMUU4REQgLyogV0tC
dW5kbGVQYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gQkMxQjQxOTcxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFnZVByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlCQzFC
RTFFMDEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUJFMURFMTJENTRBNDEwMDA0
QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovOyB9OwpAQCAtNTI3Myw3ICs1MjcyLDYg
QEAKIAkJQkMxNEUxMDcxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5qZWN0ZWRC
dW5kbGVQYWdlRm9ybUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MTRFMTA4MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZvcm1D
bGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxNzc0NjQxMThCOUZGNDAw
N0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gV0tQYWdlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlCQzE3NzUz
RTExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlCQzFBN0M1NzExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NMYXVuY2hlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFCNDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5k
bGVQYWdlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXS0J1bmRs
ZVBhZ2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUJFMURFMTJE
NTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMTAwNTYsNyArMTAwNTQsNiBAQAogCQkJCTFBNjQyMkZDMTJERDA4RkUw
MENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFBRTAwRDVF
MTgzMTc5MjEwMDA4N0RENyAvKiBGcmFtZUxvYWRTdGF0ZS5jcHAgKi8sCiAJCQkJMUFFMDBENUYx
ODMxNzkyMTAwMDg3REQ3IC8qIEZyYW1lTG9hZFN0YXRlLmggKi8sCi0JCQkJQkMxNzc1M0UxMThC
QUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oICovLAogCQkJCTlFQzUzMkEyMjQ0N0ZC
QUQwMDIxNTIxNiAvKiBHZW9sb2NhdGlvbklkZW50aWZpZXIuaCAqLywKIAkJCQlCQzA2RjQ0OTEy
REJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94
eS5jcHAgKi8sCiAJCQkJQkMwNkY0NDgxMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVy
bWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKQEAgLTEyMDcxLDcgKzEyMDY4LDYgQEAK
IAkJCQlDRDE5RDJFQTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlz
dGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREE5M0RCMDIyRjhCQ0Y0MDA0OTBBNjkgLyogRnVs
bHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
NTE1QkUxQjMxRDU5MDJERDAwREQ3QzY4IC8qIEdhbWVwYWREYXRhLmggaW4gSGVhZGVycyAqLywK
LQkJCQlCQzE3NzUzRjExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk5RUM1MzJBMzI0NDdGQkFEMDAyMTUyMTYgLyogR2VvbG9jYXRpb25JZGVu
dGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA2RjQyRjEyREJCOUI2MDAyRDc4REUgLyog
R2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUJDMDZGNDRBMTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVDb250ZXh0
Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggMDc4NmNjNTMzMWYzNTA5MWVlYmE1NTU5MDcw
NzdhMzE1NzY4MDhlOC4uNDViNThkNjNiYzA5NGQwZjIwZGNlOTI2NmZmOWI2NzRlMzlmMGFiZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KQEAg
LTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJU
cmVlQ29udGV4dC5oIgogCi0jaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBvcnQgIkdy
YXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVtb3RlLmgi
CiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCIK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436215</attachid>
            <date>2021-08-23 11:42:48 -0700</date>
            <delta_ts>2021-08-23 12:03:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210823114247.patch</filename>
            <type>text/plain</type>
            <size>55575</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiN2ZlZDE4NDVkZDA1N2Nm
NDEyOWZkMDkwYjgzMDZmOTQyZDc1MDguLjU3MzI5YTg0ZDgwM2I4MzcxNzY1OTE1MzNmNWYxMzIy
Y2IwMDIxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDgtMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAg
ICAgVGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3lu
Y1JlcGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5j
b2RlZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29k
ZSB3aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1
dCB3ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0
aW9uLgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJY29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VD
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0Zv
clBhaW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlv
bi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmlu
Z0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVy
Rmx1c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbToKKwogMjAyMS0wOC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgVUlFdmVudEF0dHJpYnV0aW9uIHRlc3RzIGxl
c3MgcGxhdGZvcm0gZGVwZW5kZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
YWxsYmFja0lELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmgKaW5kZXggMGFk
MzIxM2YxN2Y0MGU5MDhkYjZjNmU0ZWM5NTcxOGU3ZmYyZjEyOS4uNjJkNTc0MDliMTMyMDJkN2Rm
NzhmNDAzMzNjNzViYmI3NjQxMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2FsbGJhY2tJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhbGxiYWNrSUQuaApAQCAt
OTgsNyArOTgsNiBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQobmV3SUQgIT0gSGFzaFRyYWl0
czx1aW50NjRfdD46OmVtcHR5VmFsdWUoKSk7CiAgICAgfQogCi0gICAgZnJpZW5kIGNsYXNzIENh
bGxiYWNrTWFwOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja1R5cGU+IGZyaWVuZCBj
bGFzcyBTcGVjaWZpY0NhbGxiYWNrTWFwOwogICAgIGZyaWVuZCBjbGFzcyBPcHRpb25hbENhbGxi
YWNrSUQ7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkNhbGxiYWNrSURIYXNoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA5Y2YyN2UxZjRjNDg1ZjkyNWFlMmQ4ZGYxYTc3
MWExZDE4Mjg1NzJiLi4xNjc3MGVjZmY2NzAzNGQ1NTg1OWIxYTQ5YzNkNmQwZjYyM2JhMDMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMjUsMTAgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdp
bmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNp
bmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCmluZGV4IGFmYTkyOWNmMDkzZDIyZWM3
NmFkODZmZGEwM2I1MDFiYmZkMjlkYzMuLmZiYWFlOTczMDVhZmQ1YWM2NzUxMmU2YzcyZTBhYWIx
NmNhNGI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRh
Y2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQu
aApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJY29u
TG9hZGluZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2Fk
aW5nQ2xpZW50LmgKaW5kZXggYjFiMTFmNWM1MWEyYTQ2OGVhMGFjYTUyZTI2MzRmMGViZmFhMjFh
NS4uNTZmYTg3N2YxZTg5MWFjNzE4YjhiMWE0ZGYyMDlmNWQ0YmRiMWRhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKQEAgLTI1
LDE5ICsyNSwyMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFj
ay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0ljb24uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIEFQ
SSB7CiAKK2NsYXNzIERhdGE7CisKIGNsYXNzIEljb25Mb2FkaW5nQ2xpZW50IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JY29uTG9hZGluZ0Ns
aWVudCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29u
c3QgV2ViQ29yZTo6TGlua0ljb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoQVBJOjpEYXRhKik+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHZp
cnR1YWwgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29u
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERhdGEqKT4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihudWxscHRyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCmluZGV4IDg2MjY3MjA4OGViMjk3MmY2ZDU1ZTIz
NmNlN2YzMDljNzJkNWQxNzUuLjE4NmQ2YjI0NmI2YzE2NzZlZDk2MzY4MWFlNjBhM2MzNzZlMWU5
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JF
eHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
X0VYVEVOU0lPTlMpCiAKKyNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRp
b25EZXRhaWxzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmlu
ZGV4IDJkYjBmNTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFmYjVhNmE0ZTdiZjAuLjJlZjJlN2U3MGEz
OTAyYTM1NzhhNGQ3ZDA3NDY5MzYwM2M0MmEzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkFQSUluc3BlY3RvckNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJBUElTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IGM3N2EzYTYyMTNiMTY4Y2Q3Yzk2MDQ4NDYyODFhYzM1ZjM1
OTRjODkuLjUzYWQyZTI1OTA0ZDc0MTMxZjRlNGNhOWM5NGI2ZTE0ZDdhMDU3YjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJBUElQYWdlQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVudC5oIgorI2luY2x1ZGUgIkFQSVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkFQSVNlc3Npb25TdGF0ZS5oIgogI2lu
Y2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oIgpAQCAtMzAwNSw4ICszMDA2LDggQEAgdm9pZCBXS1BhZ2VDbGVhcldoZWVsRXZlbnRUZXN0
TW9uaXRvcihXS1BhZ2VSZWYgcGFnZVJlZikKIHZvaWQgV0tQYWdlQ2FsbEFmdGVyTmV4dFByZXNl
bnRhdGlvblVwZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdlUG9z
dFByZXNlbnRhdGlvblVwZGF0ZUZ1bmN0aW9uIGNhbGxiYWNrKQogewogICAgIENSQVNIX0lGX1NV
U1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25V
cGRhdGUoW2NvbnRleHQsIGNhbGxiYWNrXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpIHsKLSAgICAgICAgY2FsbGJhY2soZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yOjpOb25lID8gdG9BUEkoQVBJOjpFcnJvcjo6Y3JlYXRlKCkucHRyKCkpIDogMCwgY29udGV4
dCk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
KFtjb250ZXh0LCBjYWxsYmFja10oKSB7CisgICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIGNvbnRl
eHQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbQppbmRleCAwODBlYWIxMTA3NTQ1ZDRjOTk0
MTFlMjkyOTQ0YzBhMjVjODViOTRiLi42NjI2ODBhNWY0YTU5NTZiZjY2NmY3Y2FmN2ZmMTYxNzQx
YjQzZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNB
dHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KQEAgLTQyLDYgKzQyLDcgQEAKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAjaW1wb3J0IDxVSUtpdFNQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9XQUtB
cHBLaXRTdHVicy5oPgogI2VuZGlmCiAKIE5TU3RyaW5nICogY29uc3QgTlNSZWFkQWNjZXNzVVJM
RG9jdW1lbnRPcHRpb24gPSBAIlJlYWRBY2Nlc3NVUkwiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIubW0KaW5kZXggZTA3MTI2YWJiZDk0MTFhZmRjMTJiMmFiZmQwOGE0ZDEwNzI0MjE5My4u
ZjUzYzkyYTcxNGJhNjNhMWI1ZGViYTZhZjdmY2Y3NTU5ZDQwMzc3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJQYWdlTG9hZFN0
YXRlT2JzZXJ2ZXIuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW1wb3J0
ICJSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXS0FQSUNhc3QuaCIK
ICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQmFja0Zv
cndhcmRMaXN0SXRlbUludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3Vw
SW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Vycm9ySW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Vycm9ySW50ZXJuYWwuaAppbmRleCAxMWJkMWY1ZDIyNzQzMjIwOWRhYzA4MWE2ZWIyMmZjYzg0
MzYxZDcwLi45NjI5MDE2YmNmNWViYTIzYmIxYjU2NjEyMzMzMzRmZDYxM2M2ZTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvckludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5o
CkBAIC0yNiw3ICsyNiw2IEBACiAjaW1wb3J0ICJXS0Vycm9yUHJpdmF0ZS5oIgogCiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKIAogUmV0YWlu
UHRyPE5TRXJyb3I+IGNyZWF0ZU5TRXJyb3IoV0tFcnJvckNvZGUsIE5TRXJyb3IqIHVuZGVybHlp
bmdFcnJvciA9IG5pbCk7CiBOU1N0cmluZyAqbG9jYWxpemVkRGVzY3JpcHRpb25Gb3JFcnJvckNv
ZGUoV0tFcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KaW5kZXggMWUzN2RiZTFjYWE1NzdjNDk3YTEzOTUzMGMzYmQ2MzYwZDA0MmE5
MC4uMWQ2MDFjMmI2Njk2OTk0OTQzNTk3ZDg3NDMwNjIyYzY4YzZkMzNjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMjM4LDEzICsx
MjM4LDcgQEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRlIHRvV0tNZWRpYVBsYXliYWNrU3Rh
dGUoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxsU25hcHNo
b3RSZWN0ID0gV1RGTW92ZShjYWxsU25hcHNob3RSZWN0KSwgaGFuZGxlcl0oV2ViS2l0OjpDYWxs
YmFja0Jhc2U6OkVycm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9yICE9IFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgdHJhY2VQb2lu
dChUYWtlU25hcHNob3RFbmQsIHNuYXBzaG90RmFpbGVkVHJhY2VWYWx1ZSk7Ci0gICAgICAgICAg
ICBoYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9yVW5rbm93bikuZ2V0KCkpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KKyAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZShbY2FsbFNuYXBzaG90UmVjdCA9IFdURk1vdmUoY2FsbFNuYXBzaG90
UmVjdCksIGhhbmRsZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIENyZWF0ZSBhbiBpbXBsaWNp
dCB0cmFuc2FjdGlvbiB0byBlbnN1cmUgYSBjb21taXQgd2lsbCBoYXBwZW4gbmV4dC4KICAgICAg
ICAgW0NBVHJhbnNhY3Rpb24gYWN0aXZhdGVdOwogCkBAIC0xNTE0LDcgKzE1MDgsNyBAQCBpbmxp
bmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9wdGlvbnMoV0tGaW5kQ29u
ZmlndXJhdGlvbiAqY29uZmlndQogICAgIGF1dG8gdXBkYXRlQmxvY2tDb3B5ID0gbWFrZUJsb2Nr
UHRyKHVwZGF0ZUJsb2NrKTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHN0cm9uZ1NlbGYg
PSBzZWxmOwotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRh
dGVCbG9ja0NvcHksIHdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9uZ1NlbGZd
KFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5jYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9ja0NvcHksIHdpdGhvdXRXYWl0aW5n
Rm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9uZ1NlbGZdIHsKICAgICAgICAgaWYgKCF1cGRhdGVCbG9j
a0NvcHkpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCmluZGV4IDQ2
NTYxZDM0MzE0YTc5ZDQyYzU3ZTU5YmY3OTI3YWQxZmE0NTEwNDUuLmJhNWJlNzA3MGRlNDBmMDYz
ZDM2Yjg4ZjljNGM0ZjllMGNlZWU5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCisjaW1wb3J0ICJB
UElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbXBvcnQgIkluc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLmgiCiAjaW1wb3J0ICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgogI2ltcG9ydCAi
V0tFcnJvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDI4NThkZjZmMzRkNGZhNjIx
MjA5YmYxZWIxZTEwODg1YWQwNWU3NTkuLjg4MWFhZDU5NGY0NGM0ZmEwNDBjZjkzZWFmMjVkMDMz
NmRkN2MzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdENvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNp
bmNsdWRlICJXZWJLaXRDb250ZXh0TWVudUNsaWVudC5oIgogCiAjaW5jbHVkZSAiQVBJQ29udGV4
dE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJBUElTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJDb250
ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5kQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5kQ29u
dHJvbGxlci5jcHAKaW5kZXggZmVmNWJhMzhhNjhjM2FiMGE5MmExM2YzOGIwYjU1ZThjMzU0NmQ2
OC4uYjc2ZmFiNThlOGM0MDY2Yjk3Zjk4YTNiNDdmOWYyMGZlNWZjOGU3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmluZENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZpbmRDb250cm9s
bGVyLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdEZpbmRDb250cm9sbGVy
LmgiCiAKICNpbmNsdWRlICJBUElGaW5kQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRmluZE9wdGlv
bnMuaCIKICNpbmNsdWRlICJXZWJLaXRFbnVtVHlwZXMuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJW
aWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAKaW5kZXggOTI2MmE4NGRlY2UyNWJmMGJkZjVjNTliNDhkMDAyNTg1MmYz
NmJhNy4uYWUzNTkwY2E5MjcwNGJjMjlkMTdhZjM0NjQzOGEzZmU1ZTQxNDEzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElu
amVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMjAsNyArMjAsMTIgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgogCisjaW5jbHVk
ZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgorI2lu
Y2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIkFQSVN0cmluZy5oIgorI2luY2x1ZGUgIkFQ
SVVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBUElVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgIldl
YkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVS
SVJlcXVlc3RQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKaW5kZXggNTUx
NjM2NDQ3NzU1NzQ3YjcwYWM1ZTc2YjFkMTA0ZDYxYzBiNWNhOC4uMDM1Yzk5YmFmMWMxNmQyMGY2
MTY4OGQ3ZTI5ZmRiNGJlMmE5YWUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElO
b3RpZmljYXRpb25Qcm92aWRlci5oIgorI2luY2x1ZGUgIkFQSU51bWJlci5oIgogI2luY2x1ZGUg
IldlYktpdE5vdGlmaWNhdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJjZS5jcHAK
aW5kZXggNmQ2YjIzY2U5Yjg1N2Y2ODk0NmM4OTgzMDIwMTVjOTg2MzRjOWU4ZC4uOTFiOTAyOTAx
OGQ3NmEwMjYxNmY4ZGM1MzY4MzE4ZTE5ZWE5MDE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlJlc291cmNlLmNwcApAQCAtMjEsNiAr
MjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNlLmgiCiAKICNpbmNsdWRlICJBUElE
YXRhLmgiCisjaW5jbHVkZSAiQVBJVVJMLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJSZXNvdXJj
ZVByaXZhdGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMv
V0tWaWV3Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KaW5k
ZXggNDJiNDQzNTA0YzgyYzJiMmFmZGU3NTBkOTZjYTczN2QzM2UzYzE0Mi4uZjkyZTc1ZmM5NzFm
NWU2ZTRjM2E0NGRiZjdiNzMyYTYzYmY5MDMzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL21hYy9XS1ZpZXcubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL21hYy9XS1ZpZXcubW0KQEAgLTE2ODcsNyArMTY4Nyw3IEBAIHN0YXRpYyBXZWJDb3JlOjpV
c2VySW50ZXJmYWNlTGF5b3V0RGlyZWN0aW9uIHRvVXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
bihOU1VzCiAtICh2b2lkKV9kb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZToodm9pZCAoXiko
dm9pZCkpdXBkYXRlQmxvY2sKIHsKICAgICBhdXRvIHVwZGF0ZUJsb2NrQ29weSA9IG1ha2VCbG9j
a1B0cih1cGRhdGVCbG9jayk7Ci0gICAgX2RhdGEtPl9pbXBsLT5wYWdlKCkuY2FsbEFmdGVyTmV4
dFByZXNlbnRhdGlvblVwZGF0ZShbdXBkYXRlQmxvY2tDb3B5XShXZWJLaXQ6OkNhbGxiYWNrQmFz
ZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBfZGF0YS0+X2ltcGwtPnBhZ2UoKS5jYWxsQWZ0ZXJOZXh0
UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9ja0NvcHldIHsKICAgICAgICAgaWYgKHVwZGF0
ZUJsb2NrQ29weSkKICAgICAgICAgICAgIHVwZGF0ZUJsb2NrQ29weSgpOwogICAgIH0pOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9u
U2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcAppbmRleCA5Y2IzZjY1YWEwNDFhZTBlNWM1ODM0N2ViZDQ3ZGE2ZDVk
OWE2MmI0Li45Yzg3NzhiNTkxYzJlNTljY2JlNDc0OTI5NTA2MzU1YWI4MjMwOWVhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNz
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9t
YXRpb25TZXNzaW9uLmNwcApAQCAtMzEsNiArMzEsNyBAQAogI2luY2x1ZGUgIkFQSUF1dG9tYXRp
b25TZXNzaW9uQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUg
IkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlICJBUElTdHJpbmcuaCIKICNpbmNs
dWRlICJBdXRvbWF0aW9uUHJvdG9jb2xPYmplY3RzLmgiCiAjaW5jbHVkZSAiQ29vcmRpbmF0ZVN5
c3RlbS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCkBAIC0yMjA1
LDkgKzIyMDYsNyBAQCB2b2lkIFdlYkF1dG9tYXRpb25TZXNzaW9uOjp0YWtlU2NyZWVuc2hvdChj
b25zdCBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOgogCiAjaWYgUExBVEZPUk0oR1RL
KQogICAgIEZ1bmN0aW9uPHZvaWQoV2ViUGFnZVByb3h5Jiwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpJbnRSZWN0PiYmLCBSZWY8VGFrZVNjcmVlbnNob3RDYWxsYmFjaz4mJik+IHRha2VWaWV3U25h
cHNvdCA9IFtdKFdlYlBhZ2VQcm94eSYgcGFnZSwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpJbnRS
ZWN0PiYmIHJlY3QsIFJlZjxUYWtlU2NyZWVuc2hvdENhbGxiYWNrPiYmIGNhbGxiYWNrKSB7Ci0g
ICAgICAgIHBhZ2UuY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbcGFnZSA9IG1ha2VS
ZWYocGFnZSksIHJlY3QgPSBXVEZNb3ZlKHJlY3QpLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXShDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGlm
IChlcnJvciAhPSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKQotICAgICAgICAgICAgICAgIEFT
WU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SKEludGVybmFsRXJyb3IpOworICAgICAgICBw
YWdlLmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3BhZ2UgPSBtYWtlUmVmKHBhZ2Up
LCByZWN0ID0gV1RGTW92ZShyZWN0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBt
dXRhYmxlIHsKIAogICAgICAgICAgICAgYXV0byBzbmFwc2hvdCA9IHBhZ2UtPnRha2VWaWV3U25h
cHNob3QoV1RGTW92ZShyZWN0KSk7CiAgICAgICAgICAgICBpZiAoIXNuYXBzaG90KQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlv
blNlc3Npb25NYWMubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQppbmRleCA1ZmNkODFkMTRmZjI2YzFmNGRhYzc2NTg3
ZDhiYjc1YjQ0NzY1ZTdkLi4yZDBkNTM5MDZhN2EzZGJmODM1YzM2MTg4NTFhZmVhYzJhMDc3NTRk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL21hYy9XZWJB
dXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRv
bWF0aW9uL21hYy9XZWJBdXRvbWF0aW9uU2Vzc2lvbk1hYy5tbQpAQCAtMzEsNiArMzEsNyBAQAog
I2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiV2ViQXV0b21hdGlvblNlc3Npb25NYWNyb3Mu
aCIKICNpbXBvcnQgIldlYkluc3BlY3RvclVJUHJveHkuaCIKKyNpbXBvcnQgIldlYk1vdXNlRXZl
bnQuaCIKICNpbXBvcnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCAiX1dLQXV0b21hdGlvblNl
c3Npb24uaCIKICNpbXBvcnQgPENhcmJvbi9DYXJib24uaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KaW5kZXggZGNhZGY4
ZTkyYmI0OGQwMDU2ZjdkMjAxYzk1ZDhiZGE5NmE4YTVlZS4uMjFmNWY2M2E3ZDQ0ZjM2ZWUzMzBm
MTNiNzBkMzkwZDNjOGJhNWRiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
Q29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUHJvY2Vzc1Byb3h5Q29jb2EubW0KQEAgLTMzLDYgKzMzLDcgQEAKICNpbXBv
cnQgIk9iakNPYmplY3RHcmFwaC5oIgogI2ltcG9ydCAiU2FuZGJveFV0aWxpdGllcy5oIgogI2lt
cG9ydCAiU2hhcmVkQnVmZmVyRGF0YVJlZmVyZW5jZS5oIgorI2ltcG9ydCAiV0tBUElDYXN0Lmgi
CiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXJJbnRlcm5hbC5oIgogI2ltcG9y
dCAiV0tCcm93c2luZ0NvbnRleHRIYW5kbGVJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tUeXBlUmVm
V3JhcHBlci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2Vi
Vmlld0ltcGwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5t
bQppbmRleCA0OTU1NDllMzgyZGYwNWViMDhlODBkZmUyMDM3NjFiYTMwOTlhOGMyLi42YmJlNTI4
N2NjNDY0NjQzNTZkMzBjOGU1ZDllYzc5OTNkNDRlZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db2NvYS9XZWJWaWV3SW1wbC5tbQpAQCAtMzUsNyArMzUsNiBAQAogI2ltcG9ydCAi
Q29yZVRleHRIZWxwZXJzLmgiCiAjaW1wb3J0ICJGb250SW5mby5oIgogI2ltcG9ydCAiRnVsbHNj
cmVlbkNsaWVudC5oIgotI2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW1wb3J0ICJJbnNl
cnRUZXh0T3B0aW9ucy5oIgogI2ltcG9ydCAiTG9nZ2luZy5oIgogI2ltcG9ydCAiTmF0aXZlV2Vi
R2VzdHVyZUV2ZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29y
ZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQ
cm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCmluZGV4IDAzOGQ5ZWUyZjQxY2RlYmE0YWU3YjU5
NzMxMWI2NjNhNThiNmQ2MjkuLmY5NTU2MjgwMTg4M2Q1YTgzNWNkODlhNTQ2N2U2NDQ1MWU1NWVk
NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhp
Y3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3Jk
aW5hdGVkR3JhcGhpY3MuY3BwCkBAIC00MTcsNyArNDE3LDcgQEAgaW50IERyYXdpbmdBcmVhUHJv
eHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6d2ViVmlld0RyYXdDYWxsYmFj
ayhEcmEKICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLXZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3Jk
aW5hdGVkR3JhcGhpY3M6OkRyYXdpbmdNb25pdG9yOjpzdGFydChXVEY6OkZ1bmN0aW9uPHZvaWQo
Q2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIERyYXdpbmdBcmVhUHJveHlD
b29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6c3RhcnQoRnVuY3Rpb248dm9pZCgp
PiYmIGNhbGxiYWNrKQogewogICAgIG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGltZTo6bm93KCk7
CiAgICAgbV9jYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spOwpAQCAtNDQxLDEwICs0NDEsOCBA
QCB2b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRv
cjo6c3RvcCgpCiAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKG1fd2Vi
UGFnZS52aWV3V2lkZ2V0KCksIHJlaW50ZXJwcmV0X2Nhc3Q8Z3BvaW50ZXI+KHdlYlZpZXdEcmF3
Q2FsbGJhY2spLCB0aGlzKTsKICNlbmRpZgogICAgIG1fc3RhcnRUaW1lID0gTW9ub3RvbmljVGlt
ZSgpOwotICAgIGlmIChtX2NhbGxiYWNrKSB7Ci0gICAgICAgIG1fY2FsbGJhY2soQ2FsbGJhY2tC
YXNlOjpFcnJvcjo6Tm9uZSk7Ci0gICAgICAgIG1fY2FsbGJhY2sgPSBudWxscHRyOwotICAgIH0K
KyAgICBpZiAoYXV0byBjYWxsYmFjayA9IHN0ZDo6ZXhjaGFuZ2UobV9jYWxsYmFjaywgbnVsbHB0
cikpCisgICAgICAgIGNhbGxiYWNrKCk7CiB9CiAKIHZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3Jk
aW5hdGVkR3JhcGhpY3M6OkRyYXdpbmdNb25pdG9yOjpkaWREcmF3KCkKQEAgLTQ1OCwxMiArNDU2
LDEwIEBAIHZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OkRyYXdpbmdN
b25pdG9yOjpkaWREcmF3KCkKICAgICAgICAgbV90aW1lci5zdGFydE9uZVNob3QoMTZfbXMpOwog
fQogCi12b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9y
KT4mJiBjYWxsYmFja0Z1bmN0aW9uKQordm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRH
cmFwaGljczo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYg
Y2FsbGJhY2tGdW5jdGlvbikKIHsKLSAgICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQ
cm9jZXNzKCkpIHsKLSAgICAgICAgY2FsbGJhY2tGdW5jdGlvbihDYWxsYmFja0Jhc2U6OkVycm9y
OjpPd25lcldhc0ludmFsaWRhdGVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAo
IW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpCisgICAgICAgIHJldHVybiBjYWxs
YmFja0Z1bmN0aW9uKCk7CiAKICAgICBpZiAoIW1fZHJhd2luZ01vbml0b3IpCiAgICAgICAgIG1f
ZHJhd2luZ01vbml0b3IgPSBtYWtlVW5pcXVlPERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdy
YXBoaWNzOjpEcmF3aW5nTW9uaXRvcj4obV93ZWJQYWdlUHJveHkpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5
Q29vcmRpbmF0ZWRHcmFwaGljcy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0
ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5oCmluZGV4IGIy
M2E0NWZmN2QzMTMzMTdkOGJhNjRmYjQzMGViYmEzYjZhZGVmNzEuLjBjMTVhY2I0YjgyYWQ2ZmJj
NDkzZjU3ZmI0NmYzNmU2YThhNTdhMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhp
Y3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Ry
YXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmgKQEAgLTg4LDcgKzg4LDcgQEAgcHJp
dmF0ZToKICAgICB2b2lkIGRpc2NhcmRCYWNraW5nU3RvcmUoKTsKICNlbmRpZgogCi0gICAgdm9p
ZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZChDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJp
bmdEcmF3aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAKICAgICBjbGFzcyBEcmF3
aW5nTW9uaXRvciB7CiAgICAgICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKERyYXdpbmdNb25pdG9y
KTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC05Niw3ICs5Niw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIERyYXdpbmdNb25pdG9yKFdlYlBhZ2VQcm94eSYpOwogICAgICAgICB+RHJhd2luZ01v
bml0b3IoKTsKIAotICAgICAgICB2b2lkIHN0YXJ0KFdURjo6RnVuY3Rpb248dm9pZChDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJik7CisgICAgICAgIHZvaWQgc3RhcnQoRnVuY3Rpb248dm9pZCgpPiYm
KTsKIAogICAgIHByaXZhdGU6CiAgICAgICAgIHN0YXRpYyBpbnQgd2ViVmlld0RyYXdDYWxsYmFj
ayhEcmF3aW5nTW9uaXRvciopOwpAQCAtMTA1LDcgKzEwNSw3IEBAIHByaXZhdGU6CiAgICAgICAg
IHZvaWQgZGlkRHJhdygpOwogCiAgICAgICAgIE1vbm90b25pY1RpbWUgbV9zdGFydFRpbWU7Ci0g
ICAgICAgIFdURjo6RnVuY3Rpb248dm9pZChDYWxsYmFja0Jhc2U6OkVycm9yKT4gbV9jYWxsYmFj
azsKKyAgICAgICAgRnVuY3Rpb248dm9pZCgpPiBtX2NhbGxiYWNrOwogICAgICAgICBSdW5Mb29w
OjpUaW1lcjxEcmF3aW5nTW9uaXRvcj4gbV90aW1lcjsKICNpZiBQTEFURk9STShHVEspCiAgICAg
ICAgIFdlYlBhZ2VQcm94eSYgbV93ZWJQYWdlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJh
d2luZ0FyZWFQcm94eS5oCmluZGV4IDgyNmM0MTdjNmM5YmExYzdlNmMyYzMyYTZhYjBmM2FiOGQ3
MmYwZTAuLjM0Y2RkYjViZmVlMzExODRkOWQ5MmIwNjgxZGVmNmE2NGQ3MjdjYTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKQEAgLTI2LDggKzI2LDggQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYWxsYmFja0lELmgiCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWFJbmZvLmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAi
TWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVNlbmRlci5oIgogI2luY2x1ZGUg
PFdlYkNvcmUvRmxvYXRSZWN0Lmg+CkBAIC05Nyw3ICs5Nyw3IEBAIHB1YmxpYzoKIAogICAgIHZp
cnR1YWwgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXRlQ2hh
bmdlSUQpIHsgfQogICAgIAotICAgIHZpcnR1YWwgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIHsgQVNT
RVJUX05PVF9SRUFDSEVEKCk7IH0KKyAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0K
IAogICAgIC8vIEhpZGUgdGhlIGNvbnRlbnQgdW50aWwgdGhlIGN1cnJlbnRseSBwZW5kaW5nIHVw
ZGF0ZSBhcnJpdmVzLgogICAgIHZpcnR1YWwgdm9pZCBoaWRlQ29udGVudFVudGlsUGVuZGluZ1Vw
ZGF0ZSgpIHsgQVNTRVJUX05PVF9SRUFDSEVEKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
R2VuZXJpY0NhbGxiYWNrLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3OThkNzc3
YmU2Y2ZlNzU3ZmJkZGNhZDA5OWY5MGRlOGNiNGUyZTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvR2VuZXJpY0Nh
bGxiYWNrLmgKKysrIC9kZXYvbnVsbApAQCAtMSwyMTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdo
dCAoQykgMjAxMCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0
cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRo
b3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9s
bG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgot
ICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgot
ICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElF
UywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5U
SUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQ
VVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElU
UyBDT05UUklCVVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElO
Q0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJT
VElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsg
T1IgQlVTSU5FU1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJ
TElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNw
cmFnbWEgb25jZQotCi0jaW5jbHVkZSAiQVBJRXJyb3IuaCIKLSNpbmNsdWRlICJBUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKLSNpbmNsdWRlICJDYWxsYmFja0lELmgiCi0jaW5jbHVkZSAiUHJv
Y2Vzc1Rocm90dGxlci5oIgotI2luY2x1ZGUgIlNoYXJlYWJsZUJpdG1hcC5oIgotI2luY2x1ZGUg
IldLQVBJQ2FzdC5oIgotI2luY2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgotI2luY2x1ZGUgPHd0Zi9I
YXNoTWFwLmg+Ci0jaW5jbHVkZSA8d3RmL01haW5UaHJlYWQuaD4KLSNpbmNsdWRlIDx3dGYvUmVm
Q291bnRlZC5oPgotI2luY2x1ZGUgPHd0Zi9UaHJlYWRpbmcuaD4KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLWNsYXNzIENhbGxiYWNrQmFzZSA6IHB1YmxpYyBSZWZDb3VudGVkPENhbGxiYWNrQmFz
ZT4gewotcHVibGljOgotICAgIGVudW0gY2xhc3MgRXJyb3IgewotICAgICAgICBOb25lLAotICAg
ICAgICBVbmtub3duLAotICAgICAgICBQcm9jZXNzRXhpdGVkLAotICAgICAgICBPd25lcldhc0lu
dmFsaWRhdGVkLAotICAgIH07Ci0KLSAgICB2aXJ0dWFsIH5DYWxsYmFja0Jhc2UoKQotICAgIHsK
LSAgICB9Ci0KLSAgICBDYWxsYmFja0lEIGNhbGxiYWNrSUQoKSBjb25zdCB7IHJldHVybiBtX2Nh
bGxiYWNrSUQ7IH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgVCogYXMoKQotICAgIHsK
LSAgICAgICAgaWYgKFQ6OnR5cGUoKSA9PSBtX3R5cGUpCi0gICAgICAgICAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8VCo+KHRoaXMpOwotCi0gICAgICAgIHJldHVybiBudWxscHRyOwotICAgIH0KLQot
ICAgIHZpcnR1YWwgdm9pZCBpbnZhbGlkYXRlKEVycm9yKSA9IDA7Ci0KLXByb3RlY3RlZDoKLSAg
ICBzdHJ1Y3QgVHlwZVRhZyB7IH07Ci0gICAgdHlwZWRlZiBjb25zdCBUeXBlVGFnKiBUeXBlOwot
Ci0gICAgZXhwbGljaXQgQ2FsbGJhY2tCYXNlKFR5cGUgdHlwZSwgUHJvY2Vzc1Rocm90dGxlcjo6
QWN0aXZpdHlWYXJpYW50JiYgYWN0aXZpdHkpCi0gICAgICAgIDogbV90eXBlKHR5cGUpCi0gICAg
ICAgICwgbV9jYWxsYmFja0lEKENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKSkKLSAgICAgICAgLCBt
X2FjdGl2aXR5KFdURk1vdmUoYWN0aXZpdHkpKQotICAgIHsKLSAgICB9Ci0KLXByaXZhdGU6Ci0g
ICAgVHlwZSBtX3R5cGU7Ci0gICAgQ2FsbGJhY2tJRCBtX2NhbGxiYWNrSUQ7Ci0gICAgUHJvY2Vz
c1Rocm90dGxlcjo6QWN0aXZpdHlWYXJpYW50IG1fYWN0aXZpdHk7Ci19OwotCi10ZW1wbGF0ZTx0
eXBlbmFtZS4uLiBUPgotY2xhc3MgR2VuZXJpY0NhbGxiYWNrIDogcHVibGljIENhbGxiYWNrQmFz
ZSB7Ci1wdWJsaWM6Ci0gICAgdHlwZWRlZiBGdW5jdGlvbjx2b2lkIChULi4uLCBFcnJvcik+IENh
bGxiYWNrRnVuY3Rpb247Ci0KLSAgICBzdGF0aWMgUmVmPEdlbmVyaWNDYWxsYmFjaz4gY3JlYXRl
KENhbGxiYWNrRnVuY3Rpb24mJiBjYWxsYmFjaywgUHJvY2Vzc1Rocm90dGxlcjo6QWN0aXZpdHlW
YXJpYW50JiYgYWN0aXZpdHkgPSBudWxscHRyKQotICAgIHsKLSAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgR2VuZXJpY0NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spLCBXVEZNb3ZlKGFjdGl2
aXR5KSkpOwotICAgIH0KLQotICAgIHZpcnR1YWwgfkdlbmVyaWNDYWxsYmFjaygpCi0gICAgewot
ICAgICAgICBBU1NFUlQobV9vcmlnaW5UaHJlYWQucHRyKCkgPT0gJlRocmVhZDo6Y3VycmVudCgp
KTsKLSAgICAgICAgQVNTRVJUKCFtX2NhbGxiYWNrKTsKLSAgICB9Ci0KLSAgICB2b2lkIHBlcmZv
cm1DYWxsYmFja1dpdGhSZXR1cm5WYWx1ZShULi4uIHJldHVyblZhbHVlKQotICAgIHsKLSAgICAg
ICAgQVNTRVJUKG1fb3JpZ2luVGhyZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0K
LSAgICAgICAgaWYgKCFtX2NhbGxiYWNrKQotICAgICAgICAgICAgcmV0dXJuOwotCi0gICAgICAg
IGF1dG8gY2FsbGJhY2sgPSBzdGQ6OmV4Y2hhbmdlKG1fY2FsbGJhY2ssIHN0ZDo6bnVsbG9wdCk7
Ci0gICAgICAgIGNhbGxiYWNrLnZhbHVlKCkocmV0dXJuVmFsdWUuLi4sIEVycm9yOjpOb25lKTsK
LSAgICB9Ci0KLSAgICB2b2lkIHBlcmZvcm1DYWxsYmFjaygpCi0gICAgewotICAgICAgICBwZXJm
b3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoKTsKLSAgICB9Ci0KLSAgICB2b2lkIGludmFsaWRh
dGUoRXJyb3IgZXJyb3IgPSBFcnJvcjo6VW5rbm93bikgZmluYWwKLSAgICB7Ci0gICAgICAgIEFT
U0VSVChtX29yaWdpblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotCi0gICAg
ICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRv
IGNhbGxiYWNrID0gc3RkOjpleGNoYW5nZShtX2NhbGxiYWNrLCBzdGQ6Om51bGxvcHQpOwotICAg
ICAgICBjYWxsYmFjay52YWx1ZSgpKHR5cGVuYW1lIHN0ZDo6cmVtb3ZlX3JlZmVyZW5jZTxUPjo6
dHlwZSgpLi4uLCBlcnJvcik7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEdlbmVyaWNDYWxsYmFj
ayhDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2ssIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5
VmFyaWFudCYmIGFjdGl2aXR5KQotICAgICAgICA6IENhbGxiYWNrQmFzZSh0eXBlKCksIFdURk1v
dmUoYWN0aXZpdHkpKQotICAgICAgICAsIG1fY2FsbGJhY2soV1RGTW92ZShjYWxsYmFjaykpCi0g
ICAgewotICAgIH0KLQotICAgIGZyaWVuZCBjbGFzcyBDYWxsYmFja0Jhc2U7Ci0gICAgc3RhdGlj
IFR5cGUgdHlwZSgpCi0gICAgewotICAgICAgICBzdGF0aWMgVHlwZVRhZyB0YWc7Ci0gICAgICAg
IHJldHVybiAmdGFnOwotICAgIH0KLQotICAgIHN0ZDo6b3B0aW9uYWw8Q2FsbGJhY2tGdW5jdGlv
bj4gbV9jYWxsYmFjazsKLQotI2lmIEFTU0VSVF9FTkFCTEVECi0gICAgUmVmPFRocmVhZD4gbV9v
cmlnaW5UaHJlYWQgeyBUaHJlYWQ6OmN1cnJlbnQoKSB9OwotI2VuZGlmCi19OwotCi10eXBlZGVm
IEdlbmVyaWNDYWxsYmFjazw+IFZvaWRDYWxsYmFjazsKLQotdGVtcGxhdGU8dHlwZW5hbWUgVD4K
LXZvaWQgaW52YWxpZGF0ZUNhbGxiYWNrTWFwKEhhc2hNYXA8dWludDY0X3QsIFQ+JiBjYWxsYmFj
a01hcCwgQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikKLXsKLSAgICBhdXRvIG1hcCA9IFdURk1v
dmUoY2FsbGJhY2tNYXApOwotICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBtYXAudmFsdWVzKCkp
Ci0gICAgICAgIGNhbGxiYWNrLT5pbnZhbGlkYXRlKGVycm9yKTsKLX0KLQotY2xhc3MgQ2FsbGJh
Y2tNYXAgewotcHVibGljOgotICAgIENhbGxiYWNrSUQgcHV0KFJlZjxDYWxsYmFja0Jhc2U+JiYg
Y2FsbGJhY2spCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4o
KSk7Ci0gICAgICAgIGF1dG8gY2FsbGJhY2tJRCA9IGNhbGxiYWNrLT5jYWxsYmFja0lEKCk7Ci0g
ICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxiYWNrSUQuaXNWYWxpZCgpKTsKLSAgICAgICAgUkVM
RUFTRV9BU1NFUlQoIW1fbWFwLmNvbnRhaW5zKGNhbGxiYWNrSUQubV9pZCkpOwotICAgICAgICBt
X21hcC5zZXQoY2FsbGJhY2tJRC5tX2lkLCBXVEZNb3ZlKGNhbGxiYWNrKSk7Ci0gICAgICAgIHJl
dHVybiBjYWxsYmFja0lEOwotICAgIH0KLQotICAgIHRlbXBsYXRlPHVuc2lnbmVkIEksIHR5cGVu
YW1lIFQsIHR5cGVuYW1lLi4uIFU+Ci0gICAgc3RydWN0IEdlbmVyaWNDYWxsYmFja1R5cGUgewot
ICAgICAgICB0eXBlZGVmIHR5cGVuYW1lIEdlbmVyaWNDYWxsYmFja1R5cGU8SSAtIDEsIFUuLi4s
IFQ+Ojp0eXBlIHR5cGU7Ci0gICAgfTsKLQotICAgIHRlbXBsYXRlPHR5cGVuYW1lLi4uIFU+Ci0g
ICAgc3RydWN0IEdlbmVyaWNDYWxsYmFja1R5cGU8MSwgQ2FsbGJhY2tCYXNlOjpFcnJvciwgVS4u
Lj4gewotICAgICAgICB0eXBlZGVmIEdlbmVyaWNDYWxsYmFjazxVLi4uPiB0eXBlOwotICAgIH07
Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBUPgotICAgIENhbGxiYWNrSUQgcHV0KEZ1bmN0
aW9uPHZvaWQoVC4uLik+JiYgZnVuY3Rpb24sIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFy
aWFudCYmIGFjdGl2aXR5KQotICAgIHsKLSAgICAgICAgYXV0byBjYWxsYmFjayA9IEdlbmVyaWND
YWxsYmFja1R5cGU8c2l6ZW9mLi4uKFQpLCBULi4uPjo6dHlwZTo6Y3JlYXRlKFdURk1vdmUoZnVu
Y3Rpb24pLCBXVEZNb3ZlKGFjdGl2aXR5KSk7Ci0gICAgICAgIHJldHVybiBwdXQoV1RGTW92ZShj
YWxsYmFjaykpOwotICAgIH0KLQotICAgIHRlbXBsYXRlPGNsYXNzIFQ+Ci0gICAgUmVmUHRyPFQ+
IHRha2UoQ2FsbGJhY2tJRCBjYWxsYmFja0lEKQotICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NF
UlQoY2FsbGJhY2tJRC5pc1ZhbGlkKCkpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7Ci0gICAgICAgIGF1dG8gYmFzZSA9IG1fbWFwLnRha2UoY2FsbGJhY2tJRC5t
X2lkKTsKLSAgICAgICAgaWYgKCFiYXNlKQotICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0K
LSAgICAgICAgcmV0dXJuIGFkb3B0UmVmKGJhc2UubGVha1JlZigpLT5hczxUPigpKTsKLSAgICB9
Ci0KLSAgICB2b2lkIGludmFsaWRhdGUoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikKLSAgICB7
Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLSAgICAgICAgaW52
YWxpZGF0ZUNhbGxiYWNrTWFwKG1fbWFwLCBlcnJvcik7Ci0gICAgfQotCi1wcml2YXRlOgotICAg
IEhhc2hNYXA8dWludDY0X3QsIFJlZlB0cjxDYWxsYmFja0Jhc2U+PiBtX21hcDsKLX07Ci0KLX0g
Ly8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHAKaW5kZXggMjM1MTJhZjBmMWQ1ZWFmMWZlYThlZmMzYjg1Yzk0MmM2
YmY1MzZmZi4uYmU1ZTY2YzBmYTU1MzJkYjVlYjMzMmI3YjkwNWQyNTJkZjgwY2Y3OCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9J
bnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCkBAIC0y
OSw2ICsyOSw3IEBACiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCiAjaW5jbHVk
ZSAiQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmgiCisjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlw
dFZhbHVlLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyTWVz
c2FnZXMuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94
eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjBkYzJmYTNlMWY3YjFkZTk2ODk3YjEwYjE2ZGU3OGYy
ZmZmMjZiNS4uMjkyODdiYTJmYjcyMTJlMDBkMjZkNDVlN2NhNmFjNTg1ZjNhZGUxYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZp
ZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9t
YWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjksNyBAQAogI2lmIFBM
QVRGT1JNKE1BQykKIAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgotI2ltcG9ydCA8V2ViS2l0
L1dLRnJhbWVJbmZvLmg+CisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLSW5zcGVj
dG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW1wb3J0ICJXS0luc3BlY3RvcldLV2Vi
Vmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvbi5oPgpAQCAtNDUsNiAr
NDUsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JD
b25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5o
PgorI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQ
dHIuaD4KIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tJbnNwZWN0b3JSZXNvdXJjZVNjaGVt
ZSA9IEAiaW5zcGVjdG9yLXJlc291cmNlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdl
clByb3h5LmNwcAppbmRleCA3NjA2MzFjNDkwZjY0MzNmMzQxYTQzYmQ4ODFkNTQ1ZjRhOWI3M2Fl
Li45YTczNGFkYjFlNjI5YTViYjg3NjUwMzkzNmQzYjZlNDIwOTA3ZjI3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFn
ZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9X
ZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2lu
Y2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0Lmgi
CiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9u
TWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVByb3h5LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaAppbmRleCBlMzJiZjdiMzU5MjZm
YzhhYjMwZTliNDVlMDI0NTBiMGZlNmExMmNlLi43YjZkNTBlMzJmZTA3YzFjNTI4M2U5N2QxMTdi
NmRhZWIxOGYwOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRHJh
d2luZ0FyZWFQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRl
ICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiVHJhbnNhY3Rpb25JRC5oIgogI2lu
Y2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uRnJhbWVSYXRlLmg+CkBAIC02Nyw3ICs2OCw3IEBAIHBy
aXZhdGU6CiAgICAgCiAgICAgLy8gRm9yIG5vdywgYWxsIGNhbGxiYWNrcyBhcmUgY2FsbGVkIGJl
Zm9yZSBjb21taXR0aW5nIGNoYW5nZXMsIGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlIG9ubHkgY2xp
ZW50IHJlcXVpcmVzLgogICAgIC8vIE9uY2Ugd2UgaGF2ZSBvdGhlciBjYWxsYmFja3MsIGl0IG1h
eSBtYWtlIHNlbnNlIHRvIGhhdmUgYSBiZWZvcmUtY29tbWl0L2FmdGVyLWNvbW1pdCBvcHRpb24u
Ci0gICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9p
ZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hB
ZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogCiAjaWYg
UExBVEZPUk0oTUFDKQogICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4cG9zZWRSZWN0KCkgb3ZlcnJp
ZGU7CkBAIC0xMTksNyArMTIwLDcgQEAgcHJpdmF0ZToKICAgICBUcmFuc2FjdGlvbklEIG1fdHJh
bnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudDsKICAgICBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQg
bV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0eVN0YXRlQ2hhbmdlQXN5bmNocm9ub3Vz
IH07CiAKLSAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNr
SUQsIHN0ZDo6cGFpcjxGdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Ro
cm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5Pj4+IG1fY2FsbGJhY2tzOwogCiAgICAgUmV0YWlu
UHRyPFdLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxlcj4gbV9kaXNwbGF5TGlua0hhbmRsZXI7CiB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQppbmRl
eCBiNGU0YzZjMGRhODAzMjYxMjk1YmRkYWZkNDU1YjdjYTk5Yzg1M2EwLi5mZjY1NGZhZTc5MTUz
NjM0YTc4ODBlZWIwZDFjOTdlYzk2MWUxMTUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMTI3LDcgKzEyNyw2IEBAIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkoV2Vi
UGFnZVByb3h5JiB3CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6On5SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICBtX2NhbGxiYWNrcy5pbnZhbGlkYXRl
KENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwogICAgIHByb2Nlc3Mo
KS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVudGlmaWVyKTsKIAogI2lmIFBM
QVRGT1JNKElPU19GQU1JTFkpCkBAIC0yNjksOCArMjY4LDggQEAgdm9pZCBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVl
VHJhbnMKICAgICAgICAgbV93ZWJQYWdlUHJveHkuZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUobWls
ZXN0b25lcyk7CiAKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrSUQgOiBsYXllclRyZWVUcmFuc2Fj
dGlvbi5jYWxsYmFja0lEcygpKSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9jYWxs
YmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpKQotICAgICAgICAgICAgY2FsbGJh
Y2stPnBlcmZvcm1DYWxsYmFjaygpOworICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2Fs
bGJhY2tzLnRha2UoY2FsbGJhY2tJRCkuZmlyc3QpCisgICAgICAgICAgICBjYWxsYmFjaygpOwog
ICAgIH0KIH0KIApAQCAtNDcxLDE0ICs0NzAsMTYgQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3
aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXQK
ICAgICB9CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0
Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6
RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYm
IGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5n
UHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJv
cjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CisgICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpB
ZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQobV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2tG
dW5jdGlvbiksIHByb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmci
X3MpKSkpOworICAgIGF1dG8gY2FsbGJhY2tJRCA9IENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKTsK
KyAgICBtX2NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgc3RkOjptYWtlX3BhaXIoV1RGTW92ZShj
YWxsYmFja0Z1bmN0aW9uKSwgcHJvY2VzcygpLnRocm90dGxlcigpLmJhY2tncm91bmRBY3Rpdml0
eSgiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5n
RHJhd2luZyJfcykubW92ZVRvVW5pcXVlUHRyKCkpKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3
aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKGNhbGxiYWNrSUQpKTsKIH0KIAogdm9p
ZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpoaWRlQ29udGVudFVudGlsUGVuZGlu
Z1VwZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0
Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3Bw
CmluZGV4IGEyNTI4YzJjMGUwZDdlMTMwOTg2MTZiMzE1MDg4NjZlZjk4NDc2MTMuLmU4NTYwNmFk
MDUyNDVkNWIxYTEwM2YyMmIwY2IwNjBkNjA0OTgxNmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5oIgogCisjaW5jbHVkZSAiV0tB
UElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKIAogbmFtZXNwYWNlIFdlYktp
dCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
CmluZGV4IDNkY2Y1NGFkN2M4YmFiMWI1YWI2YTZlYzI4ZjVhMWY4NzFhNDE5MWMuLmI5ZGMzYjc0
OWY4NGNjMjk3YzNhZGE2NjRiMDdjYjI2ZjQxMWE1NDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC0yNiw5ICsyNiw5IEBACiAjcHJh
Z21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxs
YmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQQ29va2llQWNjZXB0UG9saWN5
Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+
CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1l
UHJveHkuaAppbmRleCAzOTFiMDI3MzYyODM0MWVkYWE4ODMwYjM3NGYwZmIxMzEyNDAxNzJhLi5k
YzhjZDg1NGU1MTAyNDVhMDMwYWNiZWU0OGFkMmMxOTlmOTQ2ZDJmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC0yNyw3ICsyNyw2IEBACiAKICNpbmNsdWRlICJB
UElPYmplY3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRTdGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVy
aWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgog
I2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJU
eXBlcy5oPgpAQCAtNDEsNiArNDAsNyBAQAogCiBuYW1lc3BhY2UgQVBJIHsKIGNsYXNzIE5hdmln
YXRpb247CitjbGFzcyBVUkw7CiB9CiAKIG5hbWVzcGFjZSBJUEMgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzBlZDlkYTRkNDVkZDNiNTE0YTNlYTA5MjJm
OWQ2ZThmNGY1MzBkOS4uYzhjY2FlMGU3MTRlMzU3NWYwZjI5YjM5MDUxMWM4OTgxMTg5OWVkYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC01Miw2ICs1Miw3
IEBACiAjaW5jbHVkZSAiQVBJUG9saWN5Q2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJUmVzb3VyY2VM
b2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmlnaW4uaCIKKyNpbmNsdWRlICJB
UElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJBUElVSUNsaWVudC5oIgogI2lu
Y2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJBUElXZWJzaXRlUG9saWNpZXMuaCIK
QEAgLTQ0NjMsOSArNDQ2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpmb3JjZVJlcGFpbnQoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogICAgIG1fZHJhd2luZ0FyZWEtPndh
aXRGb3JCYWNraW5nU3RvcmVVcGRhdGVPbk5leHRQYWludCgpOwogCiAgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpGb3JjZVJlcGFpbnQoKSwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKCkg
bXV0YWJsZSB7Ci0gICAgICAgIGNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldIChhdXRvKSBtdXRhYmxlIHsKLSAgICAgICAgICAgIGNh
bGxiYWNrKCk7Ci0gICAgICAgIH0pOworICAgICAgICBjYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9u
VXBkYXRlKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApAQCAtOTc1NiwxMiArOTc1
NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJXaGVlbEV2ZW50VGVzdE1vbml0b3IoKQog
ICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKCkp
OwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0
ZShXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQor
dm9pZCBXZWJQYWdlUHJveHk6OmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoRnVuY3Rp
b248dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSB8
fCAhbV9kcmF3aW5nQXJlYSkgewotICAgICAgICBjYWxsYmFjayhDYWxsYmFja0Jhc2U6OkVycm9y
OjpPd25lcldhc0ludmFsaWRhdGVkKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICBpZiAo
IWhhc1J1bm5pbmdQcm9jZXNzKCkgfHwgIW1fZHJhd2luZ0FyZWEpCisgICAgICAgIHJldHVybiBj
YWxsYmFjaygpOwogCiAgICAgbV9kcmF3aW5nQXJlYS0+ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJh
d2luZyhXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5oCmluZGV4IGJiZTYzNDA4NmNhYmYxNjE3MWMwNDU5M2E2YjkwMGUwMjE3N2E3YmUuLjE2
MmU0NmEwZDVkNzc5MTNiODUwN2RmZjg4YzEyYjQ4MzQ1ZTQ5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02Nyw2ICs2Nyw3IEBACiAjaW5jbHVkZSAiV2ViQ29u
dGV4dE1lbnVJdGVtRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVBcmd1bWVudENvZGVycy5oIgog
I2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93bi5oIgorI2luY2x1ZGUgIldl
YkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdlRGlhZ25vc3RpY0xvZ2dpbmdD
bGllbnQuaCIKQEAgLTE5NSw2ICsxOTYsNyBAQCBpbnRlcmZhY2UgSUQzRDExRGV2aWNlMTsKICNl
bmRpZgogCiBuYW1lc3BhY2UgQVBJIHsKK2NsYXNzIEFycmF5OwogY2xhc3MgQXR0YWNobWVudDsK
IGNsYXNzIENvbnRlbnRXb3JsZDsKIGNsYXNzIENvbnRleHRNZW51Q2xpZW50OwpAQCAtMjA1LDEz
ICsyMDcsMTkgQEAgY2xhc3MgRmluZE1hdGNoZXNDbGllbnQ7CiBjbGFzcyBGb3JtQ2xpZW50Owog
Y2xhc3MgRnVsbHNjcmVlbkNsaWVudDsKIGNsYXNzIEhpc3RvcnlDbGllbnQ7CitjbGFzcyBIaXRU
ZXN0UmVzdWx0OwogY2xhc3MgSWNvbkxvYWRpbmdDbGllbnQ7CiBjbGFzcyBMb2FkZXJDbGllbnQ7
CiBjbGFzcyBOYXZpZ2F0aW9uOworY2xhc3MgTmF2aWdhdGlvbkFjdGlvbjsKIGNsYXNzIE5hdmln
YXRpb25DbGllbnQ7CitjbGFzcyBOYXZpZ2F0aW9uUmVzcG9uc2U7CitjbGFzcyBQYWdlQ29uZmln
dXJhdGlvbjsKIGNsYXNzIFBvbGljeUNsaWVudDsKIGNsYXNzIFJlc291cmNlTG9hZENsaWVudDsK
K2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFVJQ2xpZW50OworY2xhc3MgVVJM
OwogY2xhc3MgVVJMUmVxdWVzdDsKIH0KIApAQCAtMzMyLDcgKzM0MCwxMCBAQCB0eXBlZGVmIEhX
TkQgUGxhdGZvcm1WaWV3V2lkZ2V0OwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIEF1ZGlv
U2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk7CitjbGFzcyBBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZVByb3h5OworY2xhc3MgQ2FsbGJhY2tJRDsKIGNsYXNzIERyYXdpbmdBcmVhUHJveHk7Citj
bGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2FtZXBhZERhdGE7CiBjbGFzcyBNZWRpYVVzYWdl
TWFuYWdlcjsKIGNsYXNzIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDsKQEAgLTM1Niw2ICszNjcsNyBA
QCBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3RJdGVt
OwogY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eTsKIGNsYXNzIFdlYkVkaXRDb21tYW5kUHJveHk7
CitjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViRnVsbFNjcmVlbk1hbmFnZXJQcm94eTsK
IGNsYXNzIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTsKIGNsYXNzIFVzZXJNZWRpYVBlcm1p
c3Npb25SZXF1ZXN0UHJveHk7CkBAIC0zNjMsNiArMzc1LDcgQEAgY2xhc3MgVmlkZW9GdWxsc2Ny
ZWVuTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk7
CiBjbGFzcyBXZWJCYWNrRm9yd2FyZENhY2hlOwogY2xhc3MgV2ViRGV2aWNlT3JpZW50YXRpb25V
cGRhdGVQcm92aWRlclByb3h5OworY2xhc3MgV2ViSW5zcGVjdG9yVUlQcm94eTsKIGNsYXNzIFdl
YktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2ZW50OwogY2xhc3MgV2ViTmF2aWdhdGlv
blN0YXRlOwpAQCAtNDA3LDYgKzQyMCw3IEBAIHN0cnVjdCBXZWJOYXZpZ2F0aW9uRGF0YVN0b3Jl
Owogc3RydWN0IFdlYlBvcHVwSXRlbTsKIHN0cnVjdCBXZWJTcGVlY2hTeW50aGVzaXNWb2ljZTsK
IAorZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90OwogZW51bSBjbGFzcyBJbWFnZUFu
YWx5c2lzVHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRhcEhhbmRsaW5nUmVzdWx0IDogdWlu
dDhfdDsKIGVudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRlUmVzdWx0IDogdWludDhfdDsK
QEAgLTQxNiw2ICs0MzAsOCBAQCBlbnVtIGNsYXNzIFF1aWNrTG9va1ByZXZpZXdBY3Rpdml0eSA6
IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFVuZG9PclJlZG8gOiBib29sOwogZW51bSBjbGFzcyBXZWJD
b250ZW50TW9kZSA6IHVpbnQ4X3Q7CiAKK3R5cGVkZWYgdWludDMyX3QgU25hcHNob3RPcHRpb25z
OworCiAjaWYgSEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJRVcpCiB1c2luZyBMYXllckhv
c3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKICNlbmRpZgpAQCAtMTYxNCw3ICsxNjMwLDcgQEAg
cHVibGljOgogCiAgICAgLy8gRm9yIHRlc3RpbmcKICAgICB2b2lkIGNsZWFyV2hlZWxFdmVudFRl
c3RNb25pdG9yKCk7Ci0gICAgdm9pZCBjYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdU
Rjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgIHZvaWQgY2Fs
bEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShGdW5jdGlvbjx2b2lkKCk+JiYpOwogCiAgICAg
dm9pZCBkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8V2ViQ29yZTo6TGF5b3V0TWls
ZXN0b25lPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nl
c3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApp
bmRleCAxZjgzZDQwMzI0OWMxZDc4MzZjZDJjNDRmMmQ4NzZkYzkzMzA0MTMxLi5lNzJjZThmNTlh
NGEyYjJhMGY1N2VjOGY3MmE3NGI1ZjI2M2VhZWQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zNiw2ICszNiw4IEBACiAjaW5jbHVkZSAiQVBJTmF2
aWdhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAi
QVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCisj
aW5jbHVkZSAiQVBJVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIkF1eGlsaWFyeVByb2Nlc3NNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNpbmNsdWRlICJEb3dubG9hZFBy
b3h5TWVzc2FnZXMuaCIKQEAgLTU1LDYgKzU3LDcgQEAKICNpbmNsdWRlICJUZXh0Q2hlY2tlci5o
IgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZFByb3ZpZGVyLmgi
CisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW5jbHVkZSAiV2ViQmFja0Zvcndh
cmRDYWNoZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKaW5kZXgg
MDUzNTlhN2RkNDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4YS4uNzQ2NmIwMWEwYzE5MGJm
Y2MzYTg3ZDQyZDZhYTUwYTMyMjYwNzMyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUG9vbC5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAj
aW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiR1BVUHJv
Y2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiSGlk
ZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5oIgogI2luY2x1ZGUgIk1lc3Nh
Z2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlck1hcC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1Mu
bW0KaW5kZXggZDE0ZGQ0YzcyYjgxZTQ1N2YxNmMwZDk5OGRiZjcyODRiMjg1ZDM3ZC4uZjdmZDFl
Njc4NDdiNzY3NjExODk2ZTI5NmIyYTQxNjhjMDY4MzViZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCkBAIC0z
NzEsNyArMzcxLDcgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xsZXI6OmVuZFN3aXBlR2VzdHVy
ZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLAogICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICB9CiAKLSAgICAgICAgZHJhd2luZ0FyZWEtPmRpc3BhdGNoQWZ0ZXJFbnN1cmlu
Z0RyYXdpbmcoW3BhZ2VJRCwgZ2VzdHVyZUlEXSAoQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
eworICAgICAgICBkcmF3aW5nQXJlYS0+ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhbcGFn
ZUlELCBnZXN0dXJlSURdIHsKICAgICAgICAgICAgIGlmIChhdXRvIGdlc3R1cmVDb250cm9sbGVy
ID0gY29udHJvbGxlckZvckdlc3R1cmUocGFnZUlELCBnZXN0dXJlSUQpKQogICAgICAgICAgICAg
ICAgIGdlc3R1cmVDb250cm9sbGVyLT53aWxsQ29tbWl0UG9zdFN3aXBlVHJhbnNpdGlvbkxheWVy
VHJlZShlcnJvciA9PSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lKTsKICAgICAgICAgfSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRl
cmFjdGlvbi5tbQppbmRleCA2N2JmZjA0MmM0ZjQ5OTNiMTA5Mjc4YjczZTRlM2VkOTQ4MzE4NTU4
Li5iNWQ0NThhZDkwZmQ0YzQ5ZjJkNDM1ZTk3MWYyMmUzYTdkMWUyMzM3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KQEAgLTQ5OTMsNyArNDk5Myw3IEBAIHN0YXRpYyB2b2lkIHNlbGVjdGlvbkNoYW5nZWRXaXRo
VG91Y2goV0tDb250ZW50VmlldyAqdmlldywgY29uc3QgV2ViQ29yZTo6SW50UG9pCiB7CiAgICAg
X2lnbm9yZVNlbGVjdGlvbkNvbW1hbmRGYWRlQ291bnQrKzsKICAgICBfcGFnZS0+c2NoZWR1bGVG
dWxsRWRpdG9yU3RhdGVVcGRhdGUoKTsKLSAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRh
dGlvblVwZGF0ZShbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0g
KGF1dG8pIHsKKyAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbd2Vh
a1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0gewogICAgICAgICBpZiAo
YXV0byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCiAgICAgICAgICAgICBzdHJvbmdTZWxm
LT5faWdub3JlU2VsZWN0aW9uQ29tbWFuZEZhZGVDb3VudC0tOwogICAgIH0pOwpAQCAtOTEwNyw3
ICs5MTA3LDcgQEAgc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBzaXplc09mUGxhY2Vo
b2xkZXJFbGVtZW50c1RvSW5zZXJ0V2hlbkRyb3BwaW5nSXQKICAgICAgICAgUkVMRUFTRV9MT0co
RHJhZ0FuZERyb3AsICJEcmFnIGludGVyYWN0aW9uIHdpbGxBbmltYXRlQ2FuY2VsV2l0aEFuaW1h
dG9yIChhbmltYXRpb24gY29tcGxldGlvbiBibG9jayBmaXJlZCkiKTsKICAgICAgICAgcGFnZS0+
ZHJhZ0NhbmNlbGxlZCgpOwogICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uID0gcHJvdGVjdGVk
U2VsZi0+X2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS50YWtlRHJhZ0NhbmNlbFNldERvd25CbG9j
aygpKSB7Ci0gICAgICAgICAgICBwYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
KFtjb21wbGV0aW9uLCBwcm90ZWN0ZWRTZWxmXSAoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9y
KSB7CisgICAgICAgICAgICBwYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtj
b21wbGV0aW9uLCBwcm90ZWN0ZWRTZWxmXSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbigp
OwogICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9pc0FuaW1hdGluZ0RyYWdDYW5jZWwg
PSBOTzsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5k
ZXggZTIyODJlYjNmOWZhZjRmNjAxZTJjMGM2NDFjYTc2ZmFmOGY4Y2I0Yy4uNGI5MWI5YWY4NWE4
YWE5YzZjNDI5OWQ4NzQyYTkwZmIxODAwN2M2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQ
cm94eS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21taXRUcmFuc2ll
bnRab29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pIG92ZXJyaWRl
OwogCiAgICAgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXRl
Q2hhbmdlSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2lu
ZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSBvdmVycmlkZTsK
KyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYm
KSBvdmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoUHJlc2VudGF0aW9uQ2FsbGJhY2tzQWZ0ZXJG
bHVzaGluZ0xheWVycyhjb25zdCBWZWN0b3I8Q2FsbGJhY2tJRD4mKSBmaW5hbDsKIAogICAgIHZv
aWQgd2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpIG92ZXJyaWRlOwpAQCAtNzYsNyArNzYsNyBAQCBw
cml2YXRlOgogICAgIC8vIFRoZSBsYXN0IG1heG1pdW0gc2l6ZSBmb3Igc2l6ZS10by1jb250ZW50
IGF1dG8tc2l6aW5nIHdlIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzLgogICAgIFdlYkNvcmU6Oklu
dFNpemUgbV9sYXN0U2VudFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOwogCi0gICAg
Q2FsbGJhY2tNYXAgbV9jYWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lELCBGdW5jdGlv
bjx2b2lkKCk+PiBtX2NhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBlNjE2YWZmZGUzNmRmNGEwMWY4YmJi
YmZmMDhhMzBjZTdmZDE0YjU5Li4yYTc2Y2FiNWZhZTVkOTNmNWVhZTViNzk3NGVhM2JmN2U1Mzdk
ZjA1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtNTAsNyArNTAsNiBA
QCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5KFdlYlBhZ2VQcgogCiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSgpCiB7Ci0gICAgbV9j
YWxsYmFja3MuaW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRh
dGVkKTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkZXZp
Y2VTY2FsZUZhY3RvckRpZENoYW5nZSgpCkBAIC0yMDMsMjEgKzIwMiwyMyBAQCB2b2lkIFRpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmNvbW1pdFRyYW5zaWVudFpvb20oZG91Ymxl
IHNjYWxlLCBGbG9hdAogICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpDb21taXRUcmFu
c2llbnRab29tKHNjYWxlLCBvcmlnaW4pKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rp
b248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmco
RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV93ZWJQYWdlUHJveHku
aGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjYWxsYmFjayhDYWxsYmFja0Jhc2U6OkVy
cm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKKyAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFu
c2FjdGlvbkNhbGxiYWNrSUQobV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2spLCBudWxs
cHRyKSkpOworICAgIGF1dG8gY2FsbGJhY2tJRCA9IENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKTsK
KyAgICBtX2NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAg
IHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQoY2Fs
bGJhY2tJRCkpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6
OmRpc3BhdGNoUHJlc2VudGF0aW9uQ2FsbGJhY2tzQWZ0ZXJGbHVzaGluZ0xheWVycyhjb25zdCBW
ZWN0b3I8Q2FsbGJhY2tJRD4mIGNhbGxiYWNrSURzKQogewogICAgIGZvciAoYXV0byYgY2FsbGJh
Y2tJRCA6IGNhbGxiYWNrSURzKSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9jYWxs
YmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpKQotICAgICAgICAgICAgY2FsbGJh
Y2stPnBlcmZvcm1DYWxsYmFjaygpOworICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2Fs
bGJhY2tzLnRha2UoY2FsbGJhY2tJRCkpCisgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgIH0K
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVl
bldpbmRvd0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLmgKaW5kZXggZDE5NzI5MjY1NWM2MWJhNmM2YmIzOGExMzg4
NTdmNGRlNTY3MWM5OC4uYmQ1MzlkMjJjMTUyYTQ0MTk4NWM4NzA2MzgwOWJhMmIyNDUzZGEwYyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWYgRU5BQkxFKEZVTExT
Q1JFRU5fQVBJKSAmJiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4K
LSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAj
aW1wb3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCmluZGV4
IGMwMzdkNjViMmJjMGYzYzBhMWVhMTI2ZWZkMjE4MjdkYTIxYWFiYjkuLjc0MTQ1MjE4MmFiMjEx
MWQ2YWRhZGVkMzZlZTkwYjAyY2VhNDM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1w
b3J0ICJBUElGaW5kQ2xpZW50LmgiCiAjaW1wb3J0ICJBUElGaW5kTWF0Y2hlc0NsaWVudC5oIgor
I2ltcG9ydCAiV2ViRmluZE9wdGlvbnMuaCIKICNpbXBvcnQgIldlYkltYWdlLmgiCiAjaW1wb3J0
ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPGFsZ29yaXRobT4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDJhM2EwZDRlNDZjYzRlNjU3
OTU3Mjg3ZDI2Yzg4YmMzYTA2NGQxMDUuLjU5NGE5ZDg0ZmEwNjYxMThlZDE2NTkxNDU2ZDIzY2Jk
MjA5YWJlMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9q
ZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTY4OCw3ICsxNjg4LDYgQEAKIAkJQkMxNERGOUYxMjBCNjM1RjAwODI2QzBD
IC8qIFdLQnVuZGxlU2NyaXB0V29ybGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDMTRERjlEMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlw
dFdvcmxkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
IAkJQkMxNEUxMEExMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTRF
MTA4MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggKi87
IH07CiAJCUJDMTc3NDY1MTE4QjlGRjQwMDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE3NzQ2NDExOEI5RkY0
MDA3RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07Ci0JCUJDMTc3NTNGMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmlj
Q2FsbGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IEJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCAqLzsgfTsKIAkJ
QkMxQTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTdDNTcxMTM2RTE5QzAwRkI3
MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oICovOyB9OwogCQlCQzFCNDE5ODExRDQxRDU3MDAxMUU4
REQgLyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMxQjQxOTcxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFn
ZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzFCRTFFMDEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBp
biBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUJFMURFMTJE
NTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovOyB9OwpAQCAtNTI3Myw3
ICs1MjcyLDYgQEAKIAkJQkMxNEUxMDcxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxl
UGFnZUZvcm1DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUJDMTRFMTA4MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxl
UGFnZUZvcm1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxNzc0NjQx
MThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gV0tQYWdlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owot
CQlCQzE3NzUzRTExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQlCQzFBN0M1NzExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5j
aGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NMYXVuY2hlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFCNDE5NzExRDQxRDU3MDAxMUU4REQg
LyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBXS0J1bmRsZVBhZ2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
MUJFMURFMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNsaWVudC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAwNTYsNyArMTAwNTQsNiBAQAogCQkJCTFBNjQyMkZD
MTJERDA4RkUwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJ
CTFBRTAwRDVFMTgzMTc5MjEwMDA4N0RENyAvKiBGcmFtZUxvYWRTdGF0ZS5jcHAgKi8sCiAJCQkJ
MUFFMDBENUYxODMxNzkyMTAwMDg3REQ3IC8qIEZyYW1lTG9hZFN0YXRlLmggKi8sCi0JCQkJQkMx
Nzc1M0UxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oICovLAogCQkJCTlFQzUz
MkEyMjQ0N0ZCQUQwMDIxNTIxNiAvKiBHZW9sb2NhdGlvbklkZW50aWZpZXIuaCAqLywKIAkJCQlC
QzA2RjQ0OTEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1h
bmFnZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMwNkY0NDgxMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xv
Y2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKQEAgLTEyMDcxLDcgKzEy
MDY4LDYgQEAKIAkJCQlDRDE5RDJFQTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNo
U2VjaGV1cmlzdGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREE5M0RCMDIyRjhCQ0Y0MDA0OTBB
NjkgLyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1ldGVycy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTE1QkUxQjMxRDU5MDJERDAwREQ3QzY4IC8qIEdhbWVwYWREYXRhLmggaW4gSGVh
ZGVycyAqLywKLQkJCQlCQzE3NzUzRjExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNr
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5RUM1MzJBMzI0NDdGQkFEMDAyMTUyMTYgLyogR2VvbG9j
YXRpb25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA2RjQyRjEyREJCOUI2MDAy
RDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Np
b25SZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVDb250ZXh0Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5
ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggMDc4NmNjNTMzMWYzNTA5MWVl
YmE1NTU5MDcwNzdhMzE1NzY4MDhlOC4uNDViNThkNjNiYzA5NGQwZjIwZGNlOTI2NmZmOWI2NzRl
MzlmMGFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRl
eHQubW0KQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUmVt
b3RlTGF5ZXJUcmVlQ29udGV4dC5oIgogCi0jaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNp
bXBvcnQgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVy
UmVtb3RlLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCIK
</data>
<flag name="commit-queue"
          id="459201"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436218</attachid>
            <date>2021-08-23 11:58:22 -0700</date>
            <delta_ts>2021-08-23 14:32:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210823115821.patch</filename>
            <type>text/plain</type>
            <size>57316</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMzQ5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGNiN2ZlZDE4NDVkZDA1N2Nm
NDEyOWZkMDkwYjgzMDZmOTQyZDc1MDguLjU3MzI5YTg0ZDgwM2I4MzcxNzY1OTE1MzNmNWYxMzIy
Y2IwMDIxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDgtMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAg
ICAgVGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3lu
Y1JlcGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5j
b2RlZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29k
ZSB3aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1
dCB3ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0
aW9uLgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJY29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VD
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0Zv
clBhaW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlv
bi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmlu
Z0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVy
Rmx1c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbToKKwogMjAyMS0wOC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgogCiAgICAgICAgIE1ha2UgVUlFdmVudEF0dHJpYnV0aW9uIHRlc3RzIGxl
c3MgcGxhdGZvcm0gZGVwZW5kZW50CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
YWxsYmFja0lELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmgKaW5kZXggMGFk
MzIxM2YxN2Y0MGU5MDhkYjZjNmU0ZWM5NTcxOGU3ZmYyZjEyOS4uNjJkNTc0MDliMTMyMDJkN2Rm
NzhmNDAzMzNjNzViYmI3NjQxMDdiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
Q2FsbGJhY2tJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhbGxiYWNrSUQuaApAQCAt
OTgsNyArOTgsNiBAQCBwcml2YXRlOgogICAgICAgICBBU1NFUlQobmV3SUQgIT0gSGFzaFRyYWl0
czx1aW50NjRfdD46OmVtcHR5VmFsdWUoKSk7CiAgICAgfQogCi0gICAgZnJpZW5kIGNsYXNzIENh
bGxiYWNrTWFwOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBDYWxsYmFja1R5cGU+IGZyaWVuZCBj
bGFzcyBTcGVjaWZpY0NhbGxiYWNrTWFwOwogICAgIGZyaWVuZCBjbGFzcyBPcHRpb25hbENhbGxi
YWNrSUQ7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkNhbGxiYWNrSURIYXNoOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRy
YW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3Rl
TGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA5Y2YyN2UxZjRjNDg1ZjkyNWFlMmQ4ZGYxYTc3
MWExZDE4Mjg1NzJiLi4xNjc3MGVjZmY2NzAzNGQ1NTg1OWIxYTQ5YzNkNmQwZjYyM2JhMDMyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApAQCAtMjUsMTAgKzI1LDEwIEBACiAK
ICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdp
bmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkR5bmFtaWNWaWV3cG9ydFNpemVVcGRhdGUuaCIKICNp
bmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2lu
Y2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIKICNpbmNsdWRlICJSZW1vdGVMYXll
ckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmggYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCmluZGV4IGFmYTkyOWNmMDkzZDIyZWM3
NmFkODZmZGEwM2I1MDFiYmZkMjlkYzMuLmZiYWFlOTczMDVhZmQ1YWM2NzUxMmU2YzcyZTBhYWIx
NmNhNGI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRh
Y2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQu
aApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShBVFRBQ0hNRU5UX0VMRU1FTlQpCiAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNs
dWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1dl
YWtQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJY29u
TG9hZGluZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2Fk
aW5nQ2xpZW50LmgKaW5kZXggYjFiMTFmNWM1MWEyYTQ2OGVhMGFjYTUyZTI2MzRmMGViZmFhMjFh
NS4uNTZmYTg3N2YxZTg5MWFjNzE4YjhiMWE0ZGYyMDlmNWQ0YmRiMWRhMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKQEAgLTI1
LDE5ICsyNSwyMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFj
ay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0ljb24uaD4KICNpbmNsdWRlIDx3dGYvQ29tcGxl
dGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KIAogbmFtZXNwYWNlIEFQ
SSB7CiAKK2NsYXNzIERhdGE7CisKIGNsYXNzIEljb25Mb2FkaW5nQ2xpZW50IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5JY29uTG9hZGluZ0Ns
aWVudCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24oY29u
c3QgV2ViQ29yZTo6TGlua0ljb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoQVBJOjpEYXRhKik+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQorICAgIHZp
cnR1YWwgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNvbnN0IFdlYkNvcmU6OkxpbmtJY29u
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKERhdGEqKT4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihudWxscHRyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCmluZGV4IDg2MjY3MjA4OGViMjk3MmY2ZDU1ZTIz
NmNlN2YzMDljNzJkNWQxNzUuLjE4NmQ2YjI0NmI2YzE2NzZlZDk2MzY4MWFlNjBhM2MzNzZlMWU5
OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JF
eHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0
b3JFeHRlbnNpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoSU5TUEVDVE9S
X0VYVEVOU0lPTlMpCiAKKyNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNp
bmNsdWRlICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRp
b25EZXRhaWxzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
VUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCmlu
ZGV4IDJkYjBmNTY5Y2IyMjUwNTg5ZTdlYzE2MDU4ZGFmYjVhNmE0ZTdiZjAuLjJlZjJlN2U3MGEz
OTAyYTM1NzhhNGQ3ZDA3NDY5MzYwM2M0MmEzNDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBACiAjcHJhZ21hIG9uY2UKIAogI2lu
Y2x1ZGUgIkFQSUluc3BlY3RvckNvbmZpZ3VyYXRpb24uaCIKKyNpbmNsdWRlICJBUElTZWN1cml0
eU9yaWdpbi5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAj
aW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCmluZGV4IGM3N2EzYTYyMTNiMTY4Y2Q3Yzk2MDQ4NDYyODFhYzM1ZjM1
OTRjODkuLjUzYWQyZTI1OTA0ZDc0MTMxZjRlNGNhOWM5NGI2ZTE0ZDdhMDU3YjAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApAQCAtNDUsNiArNDUsNyBAQAogI2lu
Y2x1ZGUgIkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJBUElQYWdlQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVudC5oIgorI2luY2x1ZGUgIkFQSVNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkFQSVNlc3Npb25TdGF0ZS5oIgogI2lu
Y2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJV2ViQXV0aGVudGljYXRpb25QYW5l
bC5oIgpAQCAtMzAwNSw4ICszMDA2LDggQEAgdm9pZCBXS1BhZ2VDbGVhcldoZWVsRXZlbnRUZXN0
TW9uaXRvcihXS1BhZ2VSZWYgcGFnZVJlZikKIHZvaWQgV0tQYWdlQ2FsbEFmdGVyTmV4dFByZXNl
bnRhdGlvblVwZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9pZCogY29udGV4dCwgV0tQYWdlUG9z
dFByZXNlbnRhdGlvblVwZGF0ZUZ1bmN0aW9uIGNhbGxiYWNrKQogewogICAgIENSQVNIX0lGX1NV
U1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25V
cGRhdGUoW2NvbnRleHQsIGNhbGxiYWNrXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJy
b3IpIHsKLSAgICAgICAgY2FsbGJhY2soZXJyb3IgIT0gV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVy
cm9yOjpOb25lID8gdG9BUEkoQVBJOjpFcnJvcjo6Y3JlYXRlKCkucHRyKCkpIDogMCwgY29udGV4
dCk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
KFtjb250ZXh0LCBjYWxsYmFja10oKSB7CisgICAgICAgIGNhbGxiYWNrKG51bGxwdHIsIGNvbnRl
eHQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbQppbmRleCAwODBlYWIxMTA3NTQ1ZDRjOTk0
MTFlMjkyOTQ0YzBhMjVjODViOTRiLi42NjI2ODBhNWY0YTU5NTZiZjY2NmY3Y2FmN2ZmMTYxNzQx
YjQzZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNB
dHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KQEAgLTQyLDYgKzQyLDcgQEAKIAogI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCiAjaW1wb3J0IDxVSUtpdFNQSS5oPgorI2ltcG9ydCA8V2ViQ29yZS9XQUtB
cHBLaXRTdHVicy5oPgogI2VuZGlmCiAKIE5TU3RyaW5nICogY29uc3QgTlNSZWFkQWNjZXNzVVJM
RG9jdW1lbnRPcHRpb24gPSBAIlJlYWRBY2Nlc3NVUkwiOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRy
b2xsZXIubW0KaW5kZXggZTA3MTI2YWJiZDk0MTFhZmRjMTJiMmFiZmQwOGE0ZDEwNzI0MjE5My4u
ZjUzYzkyYTcxNGJhNjNhMWI1ZGViYTZhZjdmY2Y3NTU5ZDQwMzc3YiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxl
ci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2luZ0Nv
bnRleHRDb250cm9sbGVyLm1tCkBAIC0zMiw2ICszMiw3IEBACiAjaW1wb3J0ICJQYWdlTG9hZFN0
YXRlT2JzZXJ2ZXIuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmgiCiAjaW1wb3J0
ICJSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgiCisjaW1wb3J0ICJXS0FQSUNhc3QuaCIK
ICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQmFja0Zv
cndhcmRMaXN0SXRlbUludGVybmFsLmgiCiAjaW1wb3J0ICJXS0Jyb3dzaW5nQ29udGV4dEdyb3Vw
SW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2Nv
YS9XS0Vycm9ySW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Vycm9ySW50ZXJuYWwuaAppbmRleCAxMWJkMWY1ZDIyNzQzMjIwOWRhYzA4MWE2ZWIyMmZjYzg0
MzYxZDcwLi45NjI5MDE2YmNmNWViYTIzYmIxYjU2NjEyMzMzMzRmZDYxM2M2ZTA5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvckludGVybmFsLmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5o
CkBAIC0yNiw3ICsyNiw2IEBACiAjaW1wb3J0ICJXS0Vycm9yUHJpdmF0ZS5oIgogCiAjaW1wb3J0
IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKIAogUmV0YWlu
UHRyPE5TRXJyb3I+IGNyZWF0ZU5TRXJyb3IoV0tFcnJvckNvZGUsIE5TRXJyb3IqIHVuZGVybHlp
bmdFcnJvciA9IG5pbCk7CiBOU1N0cmluZyAqbG9jYWxpemVkRGVzY3JpcHRpb25Gb3JFcnJvckNv
ZGUoV0tFcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S1dlYlZpZXcubW0KaW5kZXggMWUzN2RiZTFjYWE1NzdjNDk3YTEzOTUzMGMzYmQ2MzYwZDA0MmE5
MC4uMWQ2MDFjMmI2Njk2OTk0OTQzNTk3ZDg3NDMwNjIyYzY4YzZkMzNjYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCkBAIC0xMjM4LDEzICsx
MjM4LDcgQEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRlIHRvV0tNZWRpYVBsYXliYWNrU3Rh
dGUoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxsU25hcHNo
b3RSZWN0ID0gV1RGTW92ZShjYWxsU25hcHNob3RSZWN0KSwgaGFuZGxlcl0oV2ViS2l0OjpDYWxs
YmFja0Jhc2U6OkVycm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9yICE9IFdl
YktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgdHJhY2VQb2lu
dChUYWtlU25hcHNob3RFbmQsIHNuYXBzaG90RmFpbGVkVHJhY2VWYWx1ZSk7Ci0gICAgICAgICAg
ICBoYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9yVW5rbm93bikuZ2V0KCkpOwotICAg
ICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KKyAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZShbY2FsbFNuYXBzaG90UmVjdCA9IFdURk1vdmUoY2FsbFNuYXBzaG90
UmVjdCksIGhhbmRsZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIENyZWF0ZSBhbiBpbXBsaWNp
dCB0cmFuc2FjdGlvbiB0byBlbnN1cmUgYSBjb21taXQgd2lsbCBoYXBwZW4gbmV4dC4KICAgICAg
ICAgW0NBVHJhbnNhY3Rpb24gYWN0aXZhdGVdOwogCkBAIC0xNTE0LDcgKzE1MDgsNyBAQCBpbmxp
bmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9wdGlvbnMoV0tGaW5kQ29u
ZmlndXJhdGlvbiAqY29uZmlndQogICAgIGF1dG8gdXBkYXRlQmxvY2tDb3B5ID0gbWFrZUJsb2Nr
UHRyKHVwZGF0ZUJsb2NrKTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHN0cm9uZ1NlbGYg
PSBzZWxmOwotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRh
dGVCbG9ja0NvcHksIHdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9uZ1NlbGZd
KFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5jYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9ja0NvcHksIHdpdGhvdXRXYWl0aW5n
Rm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9uZ1NlbGZdIHsKICAgICAgICAgaWYgKCF1cGRhdGVCbG9j
a0NvcHkpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCmluZGV4IDQ2
NTYxZDM0MzE0YTc5ZDQyYzU3ZTU5YmY3OTI3YWQxZmE0NTEwNDUuLmJhNWJlNzA3MGRlNDBmMDYz
ZDM2Yjg4ZjljNGM0ZjllMGNlZWU5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbQpAQCAtMjgsNiAr
MjgsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCisjaW1wb3J0ICJB
UElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbXBvcnQgIkluc3BlY3RvckV4dGVuc2lvbkRl
bGVnYXRlLmgiCiAjaW1wb3J0ICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgogI2ltcG9ydCAi
V0tFcnJvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDI4NThkZjZmMzRkNGZhNjIx
MjA5YmYxZWIxZTEwODg1YWQwNWU3NTkuLjg4MWFhZDU5NGY0NGM0ZmEwNDBjZjkzZWFmMjVkMDMz
NmRkN2MzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdENvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNp
bmNsdWRlICJXZWJLaXRDb250ZXh0TWVudUNsaWVudC5oIgogCiAjaW5jbHVkZSAiQVBJQ29udGV4
dE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJBUElTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJDb250
ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5kQ29udHJv
bGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5kQ29u
dHJvbGxlci5jcHAKaW5kZXggZmVmNWJhMzhhNjhjM2FiMGE5MmExM2YzOGIwYjU1ZThjMzU0NmQ2
OC4uYjc2ZmFiNThlOGM0MDY2Yjk3Zjk4YTNiNDdmOWYyMGZlNWZjOGU3ZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmluZENvbnRyb2xsZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZpbmRDb250cm9s
bGVyLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdEZpbmRDb250cm9sbGVy
LmgiCiAKICNpbmNsdWRlICJBUElGaW5kQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRmluZE9wdGlv
bnMuaCIKICNpbmNsdWRlICJXZWJLaXRFbnVtVHlwZXMuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJW
aWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVu
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1
bmRsZUNsaWVudC5jcHAKaW5kZXggOTI2MmE4NGRlY2UyNWJmMGJkZjVjNTliNDhkMDAyNTg1MmYz
NmJhNy4uYWUzNTkwY2E5MjcwNGJjMjlkMTdhZjM0NjQzOGEzZmU1ZTQxNDEzNiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5kbGVD
bGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdElu
amVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMjAsNyArMjAsMTIgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJXZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgogCisjaW5jbHVk
ZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgorI2lu
Y2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIkFQSVN0cmluZy5oIgorI2luY2x1ZGUgIkFQ
SVVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBUElVUkxSZXNwb25zZS5oIgogI2luY2x1ZGUgIldl
YkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFVS
SVJlcXVlc3RQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKaW5kZXggNTUx
NjM2NDQ3NzU1NzQ3YjcwYWM1ZTc2YjFkMTA0ZDYxYzBiNWNhOC4uMDM1Yzk5YmFmMWMxNmQyMGY2
MTY4OGQ3ZTI5ZmRiNGJlMmE5YWUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcApA
QCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElO
b3RpZmljYXRpb25Qcm92aWRlci5oIgorI2luY2x1ZGUgIkFQSU51bWJlci5oIgogI2luY2x1ZGUg
IldlYktpdE5vdGlmaWNhdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0
UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJjZS5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJjZS5jcHAK
aW5kZXggNmQ2YjIzY2U5Yjg1N2Y2ODk0NmM4OTgzMDIwMTVjOTg2MzRjOWU4ZC4uOTFiOTAyOTAx
OGQ3NmEwMjYxNmY4ZGM1MzY4MzE4ZTE5ZWE5MDE0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlJlc291cmNlLmNwcApAQCAtMjEsNiAr
MjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNlLmgiCiAKICNpbmNsdWRlICJBUElE
YXRhLmgiCisjaW5jbHVkZSAiQVBJVVJMLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJSZXNvdXJj
ZVByaXZhdGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGli
L1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0V2ViVmlldy5jcHAKaW5kZXggNTU0MzRkOGEwOWZjZmFiNzk1NGYyYTdlZGMyNzk5NmRlNDA5
NTZkZC4uNTRmMDUzYWI3M2Q3YWJhZjk4NTJmZjgyMzBkNjc4ZmNkYzkwMTg0YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKQEAg
LTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJBUElDb250ZW50V29ybGQuaCIKICNpbmNsdWRlICJB
UElEYXRhLmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgIkFQSU51bWJl
ci5oIgogI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkRh
dGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3BwIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAK
aW5kZXggYTIzZWNjNDU0YzJhODU3NjUwNzEyZTM2MDQ0NmEwNDk1ZTM5MGZhMi4uZDVlZjJjZmU2
Y2FkMGY5OTE4MTE2NGMxOWNlNTE5ZThhMmZjYzMxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKQEAgLTIw
LDYgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRQcmludE9w
ZXJhdGlvbi5oIgogCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJXZWJLaXRQcmlu
dEN1c3RvbVdpZGdldFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcmludE9wZXJhdGlvblBy
aXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDQyYjQ0MzUwNGM4MmMyYjJhZmRlNzUwZDk2Y2E3
MzdkMzNlM2MxNDIuLmY5MmU3NWZjOTcxZjVlNmU0YzNhNDRkYmY3YjczMmE2M2JmOTAzMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xNjg3LDcgKzE2
ODcsNyBAQCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oTlNVcwogLSAodm9pZClfZG9BZnRlck5leHRQcmVz
ZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiB7CiAgICAgYXV0byB1
cGRhdGVCbG9ja0NvcHkgPSBtYWtlQmxvY2tQdHIodXBkYXRlQmxvY2spOwotICAgIF9kYXRhLT5f
aW1wbC0+cGFnZSgpLmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0ZUJsb2Nr
Q29weV0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX2RhdGEtPl9p
bXBsLT5wYWdlKCkuY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbdXBkYXRlQmxvY2tD
b3B5XSB7CiAgICAgICAgIGlmICh1cGRhdGVCbG9ja0NvcHkpCiAgICAgICAgICAgICB1cGRhdGVC
bG9ja0NvcHkoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggOWNiM2Y2NWFh
MDQxYWUwZTVjNTgzNDdlYmQ0N2RhNmQ1ZDlhNjJiNC4uOWM4Nzc4YjU5MWMyZTU5Y2NiZTQ3NDky
OTUwNjM1NWFiODIzMDllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJBUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIgogI2luY2x1ZGUgIkFQ
SU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCisjaW5j
bHVkZSAiQVBJU3RyaW5nLmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5o
IgogI2luY2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hY3Jvcy5oIgpAQCAtMjIwNSw5ICsyMjA2LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjoKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBGdW5jdGlvbjx2b2lkKFdlYlBhZ2VQcm94
eSYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJiwgUmVmPFRha2VTY3JlZW5zaG90
Q2FsbGJhY2s+JiYpPiB0YWtlVmlld1NuYXBzb3QgPSBbXShXZWJQYWdlUHJveHkmIHBhZ2UsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJiByZWN0LCBSZWY8VGFrZVNjcmVlbnNob3RD
YWxsYmFjaz4mJiBjYWxsYmFjaykgewotICAgICAgICBwYWdlLmNhbGxBZnRlck5leHRQcmVzZW50
YXRpb25VcGRhdGUoW3BhZ2UgPSBtYWtlUmVmKHBhZ2UpLCByZWN0ID0gV1RGTW92ZShyZWN0KSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6
Tm9uZSkKLSAgICAgICAgICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihJ
bnRlcm5hbEVycm9yKTsKKyAgICAgICAgcGFnZS5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBk
YXRlKFtwYWdlID0gbWFrZVJlZihwYWdlKSwgcmVjdCA9IFdURk1vdmUocmVjdCksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAKICAgICAgICAgICAgIGF1dG8gc25h
cHNob3QgPSBwYWdlLT50YWtlVmlld1NuYXBzaG90KFdURk1vdmUocmVjdCkpOwogICAgICAgICAg
ICAgaWYgKCFzbmFwc2hvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KaW5kZXgg
NWZjZDgxZDE0ZmYyNmMxZjRkYWM3NjU4N2Q4YmI3NWI0NDc2NWU3ZC4uMmQwZDUzOTA2YTdhM2Ri
ZjgzNWMzNjE4ODUxYWZlYWMyYTA3NzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25N
YWMubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldl
YkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JVSVByb3h5
LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9u
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
cm94eUNvY29hLm1tCmluZGV4IGRjYWRmOGU5MmJiNDhkMDA1NmY3ZDIwMWM5NWQ4YmRhOTZhOGE1
ZWUuLjIxZjVmNjNhN2Q0NGYzNmVlMzMwZjEzYjcwZDM5MGQzYzhiYTVkYjAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQg
IlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
aCIKKyNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLVHlwZVJlZldyYXBwZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDk1NTQ5ZTM4MmRmMDVlYjA4ZTgwZGZl
MjAzNzYxYmEzMDk5YThjMi4uNmJiZTUyODdjYzQ2NDY0MzU2ZDMwYzhlNWQ5ZWM3OTkzZDQ0ZWRm
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTM1LDcgKzM1LDYgQEAKICNpbXBvcnQgIkNvcmVUZXh0SGVscGVycy5oIgogI2ltcG9ydCAiRm9u
dEluZm8uaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKLSNpbXBvcnQgIkdlbmVyaWND
YWxsYmFjay5oIgogI2ltcG9ydCAiSW5zZXJ0VGV4dE9wdGlvbnMuaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5
Q29vcmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcAppbmRl
eCAwMzhkOWVlMmY0MWNkZWJhNGFlN2I1OTczMTFiNjYzYTU4YjZkNjI5Li5mOTU1NjI4MDE4ODNk
NWE4MzVjZDg5YTU0NjdlNjQ0NTFlNTVlZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdy
YXBoaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtNDE3LDcgKzQx
Nyw3IEBAIGludCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01v
bml0b3I6OndlYlZpZXdEcmF3Q2FsbGJhY2soRHJhCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12
b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6
c3RhcnQoV1RGOjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNr
KQordm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0
b3I6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3N0YXJ0VGlt
ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKTsKQEAgLTQ0MSwxMCArNDQxLDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0
ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OnN0b3AoKQogICAgIGdfc2lnbmFsX2hhbmRsZXJz
X2Rpc2Nvbm5lY3RfYnlfZnVuYyhtX3dlYlBhZ2Uudmlld1dpZGdldCgpLCByZWludGVycHJldF9j
YXN0PGdwb2ludGVyPih3ZWJWaWV3RHJhd0NhbGxiYWNrKSwgdGhpcyk7CiAjZW5kaWYKICAgICBt
X3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWUoKTsKLSAgICBpZiAobV9jYWxsYmFjaykgewotICAg
ICAgICBtX2NhbGxiYWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOwotICAgICAgICBtX2Nh
bGxiYWNrID0gbnVsbHB0cjsKLSAgICB9CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBzdGQ6OmV4
Y2hhbmdlKG1fY2FsbGJhY2ssIG51bGxwdHIpKQorICAgICAgICBjYWxsYmFjaygpOwogfQogCiB2
b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6
ZGlkRHJhdygpCkBAIC00NTgsMTIgKzQ1NiwxMCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlDb29y
ZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6ZGlkRHJhdygpCiAgICAgICAgIG1fdGlt
ZXIuc3RhcnRPbmVTaG90KDE2X21zKTsKIH0KIAotdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRp
bmF0ZWRHcmFwaGljczo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9u
PHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgRHJh
d2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0Ry
YXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgaWYgKCFt
X3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrRnVu
Y3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2Vz
cygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2tGdW5jdGlvbigpOwogCiAgICAgaWYgKCFtX2Ry
YXdpbmdNb25pdG9yKQogICAgICAgICBtX2RyYXdpbmdNb25pdG9yID0gbWFrZVVuaXF1ZTxEcmF3
aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I+KG1fd2ViUGFn
ZVByb3h5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3Jk
aW5hdGVkR3JhcGhpY3MuaAppbmRleCBiMjNhNDVmZjdkMzEzMzE3ZDhiYTY0ZmI0MzBlYmJhM2I2
YWRlZjcxLi4wYzE1YWNiNGI4MmFkNmZiYzQ5M2Y1N2ZiNDZmMzZlNmE4YTU3YTIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdB
cmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGlj
cy5oCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNjYXJkQmFja2luZ1N0
b3JlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhX
VEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIG92
ZXJyaWRlOwogCiAgICAgY2xhc3MgRHJhd2luZ01vbml0b3IgewogICAgICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShEcmF3aW5nTW9uaXRvcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAt
OTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgICAgICBEcmF3aW5nTW9uaXRvcihXZWJQYWdlUHJv
eHkmKTsKICAgICAgICAgfkRyYXdpbmdNb25pdG9yKCk7CiAKLSAgICAgICAgdm9pZCBzdGFydChX
VEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgICAgICB2b2lk
IHN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0
aWMgaW50IHdlYlZpZXdEcmF3Q2FsbGJhY2soRHJhd2luZ01vbml0b3IqKTsKQEAgLTEwNSw3ICsx
MDUsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZERyYXcoKTsKIAogICAgICAgICBNb25v
dG9uaWNUaW1lIG1fc3RhcnRUaW1lOwotICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+IG1fY2FsbGJhY2s7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9j
YWxsYmFjazsKICAgICAgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ01vbml0b3I+IG1fdGltZXI7
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFnZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4MjZjNDE3YzZj
OWJhMWM3ZTZjMmMzMmE2YWIwZjNhYjhkNzJmMGUwLi4zNGNkZGI1YmZlZTMxMTg0ZDlkOTJiMDY4
MWRlZjZhNjRkNzI3Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eS5oCkBAIC0yNiw4ICsyNiw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2Fs
bGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgotI2luY2x1ZGUgIkdlbmVy
aWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtOTcsNyAr
OTcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2FpdEZvckRpZFVwZGF0ZUFjdGl2
aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSB7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmKSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBIaWRlIHRoZSBjb250ZW50IHVudGls
IHRoZSBjdXJyZW50bHkgcGVuZGluZyB1cGRhdGUgYXJyaXZlcy4KICAgICB2aXJ0dWFsIHZvaWQg
aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0Nzk4ZDc3N2JlNmNmZTc1N2ZiZGRjYWQwOTlmOTBkZThjYjRlMmU1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisrKyAvZGV2L251bGwKQEAgLTEsMjEw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFQSUVycm9y
LmgiCi0jaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAiQ2Fs
bGJhY2tJRC5oIgotI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBDYWxsYmFja0Jhc2UgOiBwdWJs
aWMgUmVmQ291bnRlZDxDYWxsYmFja0Jhc2U+IHsKLXB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIEVy
cm9yIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgVW5rbm93biwKLSAgICAgICAgUHJvY2Vzc0V4
aXRlZCwKLSAgICAgICAgT3duZXJXYXNJbnZhbGlkYXRlZCwKLSAgICB9OwotCi0gICAgdmlydHVh
bCB+Q2FsbGJhY2tCYXNlKCkKLSAgICB7Ci0gICAgfQotCi0gICAgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja0lEOyB9Ci0KLSAgICB0ZW1wbGF0ZTxjbGFz
cyBUPgotICAgIFQqIGFzKCkKLSAgICB7Ci0gICAgICAgIGlmIChUOjp0eXBlKCkgPT0gbV90eXBl
KQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPih0aGlzKTsKLQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZShFcnJv
cikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgc3RydWN0IFR5cGVUYWcgeyB9OwotICAgIHR5cGVk
ZWYgY29uc3QgVHlwZVRhZyogVHlwZTsKLQotICAgIGV4cGxpY2l0IENhbGxiYWNrQmFzZShUeXBl
IHR5cGUsIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5KQotICAg
ICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fY2FsbGJhY2tJRChDYWxsYmFja0lEOjpn
ZW5lcmF0ZUlEKCkpCi0gICAgICAgICwgbV9hY3Rpdml0eShXVEZNb3ZlKGFjdGl2aXR5KSkKLSAg
ICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlOwotICAgIENhbGxiYWNrSUQg
bV9jYWxsYmFja0lEOwotICAgIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCBtX2Fj
dGl2aXR5OwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIEdlbmVyaWNDYWxs
YmFjayA6IHB1YmxpYyBDYWxsYmFja0Jhc2UgewotcHVibGljOgotICAgIHR5cGVkZWYgRnVuY3Rp
b248dm9pZCAoVC4uLiwgRXJyb3IpPiBDYWxsYmFja0Z1bmN0aW9uOwotCi0gICAgc3RhdGljIFJl
ZjxHZW5lcmljQ2FsbGJhY2s+IGNyZWF0ZShDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2ssIFBy
b2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5ID0gbnVsbHB0cikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdlbmVyaWNDYWxsYmFjayhXVEZNb3Zl
KGNhbGxiYWNrKSwgV1RGTW92ZShhY3Rpdml0eSkpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5H
ZW5lcmljQ2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fb3JpZ2luVGhyZWFkLnB0
cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0gICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayk7
Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoVC4uLiBy
ZXR1cm5WYWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX29yaWdpblRocmVhZC5wdHIoKSA9
PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotCi0gICAgICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIGNhbGxiYWNrID0gc3RkOjpleGNoYW5nZSht
X2NhbGxiYWNrLCBzdGQ6Om51bGxvcHQpOwotICAgICAgICBjYWxsYmFjay52YWx1ZSgpKHJldHVy
blZhbHVlLi4uLCBFcnJvcjo6Tm9uZSk7Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2FsbGJh
Y2soKQotICAgIHsKLSAgICAgICAgcGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKCk7Ci0g
ICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKEVycm9yIGVycm9yID0gRXJyb3I6OlVua25vd24p
IGZpbmFsCi0gICAgewotICAgICAgICBBU1NFUlQobV9vcmlnaW5UaHJlYWQucHRyKCkgPT0gJlRo
cmVhZDo6Y3VycmVudCgpKTsKLQotICAgICAgICBpZiAoIW1fY2FsbGJhY2spCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBjYWxsYmFjayA9IHN0ZDo6ZXhjaGFuZ2UobV9jYWxs
YmFjaywgc3RkOjpudWxsb3B0KTsKLSAgICAgICAgY2FsbGJhY2sudmFsdWUoKSh0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUoKS4uLiwgZXJyb3IpOwotICAgIH0KLQotcHJp
dmF0ZToKLSAgICBHZW5lcmljQ2FsbGJhY2soQ2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrLCBQ
cm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICAgICAgOiBD
YWxsYmFja0Jhc2UodHlwZSgpLCBXVEZNb3ZlKGFjdGl2aXR5KSkKLSAgICAgICAgLCBtX2NhbGxi
YWNrKFdURk1vdmUoY2FsbGJhY2spKQotICAgIHsKLSAgICB9Ci0KLSAgICBmcmllbmQgY2xhc3Mg
Q2FsbGJhY2tCYXNlOwotICAgIHN0YXRpYyBUeXBlIHR5cGUoKQotICAgIHsKLSAgICAgICAgc3Rh
dGljIFR5cGVUYWcgdGFnOwotICAgICAgICByZXR1cm4gJnRhZzsKLSAgICB9Ci0KLSAgICBzdGQ6
Om9wdGlvbmFsPENhbGxiYWNrRnVuY3Rpb24+IG1fY2FsbGJhY2s7Ci0KLSNpZiBBU1NFUlRfRU5B
QkxFRAotICAgIFJlZjxUaHJlYWQ+IG1fb3JpZ2luVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50KCkg
fTsKLSNlbmRpZgotfTsKLQotdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8PiBWb2lkQ2FsbGJhY2s7
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIGludmFsaWRhdGVDYWxsYmFja01hcChIYXNo
TWFwPHVpbnQ2NF90LCBUPiYgY2FsbGJhY2tNYXAsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
Ci17Ci0gICAgYXV0byBtYXAgPSBXVEZNb3ZlKGNhbGxiYWNrTWFwKTsKLSAgICBmb3IgKGF1dG8m
IGNhbGxiYWNrIDogbWFwLnZhbHVlcygpKQotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZShl
cnJvcik7Ci19Ci0KLWNsYXNzIENhbGxiYWNrTWFwIHsKLXB1YmxpYzoKLSAgICBDYWxsYmFja0lE
IHB1dChSZWY8Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgUkVMRUFT
RV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRvIGNhbGxiYWNrSUQgPSBj
YWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChjYWxsYmFja0lE
LmlzVmFsaWQoKSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX21hcC5jb250YWlucyhjYWxs
YmFja0lELm1faWQpKTsKLSAgICAgICAgbV9tYXAuc2V0KGNhbGxiYWNrSUQubV9pZCwgV1RGTW92
ZShjYWxsYmFjaykpOwotICAgICAgICByZXR1cm4gY2FsbGJhY2tJRDsKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZTx1bnNpZ25lZCBJLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBVPgotICAgIHN0cnVj
dCBHZW5lcmljQ2FsbGJhY2tUeXBlIHsKLSAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmlj
Q2FsbGJhY2tUeXBlPEkgLSAxLCBVLi4uLCBUPjo6dHlwZSB0eXBlOwotICAgIH07Ci0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBVPgotICAgIHN0cnVjdCBHZW5lcmljQ2FsbGJhY2tUeXBlPDEs
IENhbGxiYWNrQmFzZTo6RXJyb3IsIFUuLi4+IHsKLSAgICAgICAgdHlwZWRlZiBHZW5lcmljQ2Fs
bGJhY2s8VS4uLj4gdHlwZTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4K
LSAgICBDYWxsYmFja0lEIHB1dChGdW5jdGlvbjx2b2lkKFQuLi4pPiYmIGZ1bmN0aW9uLCBQcm9j
ZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICB7Ci0gICAgICAg
IGF1dG8gY2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihUKSwgVC4uLj46
OnR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uKSwgV1RGTW92ZShhY3Rpdml0eSkpOwotICAg
ICAgICByZXR1cm4gcHV0KFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTxjbGFzcyBUPgotICAgIFJlZlB0cjxUPiB0YWtlKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAg
ICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxiYWNrSUQuaXNWYWxpZCgpKTsKLSAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRvIGJhc2Ug
PSBtX21hcC50YWtlKGNhbGxiYWNrSUQubV9pZCk7Ci0gICAgICAgIGlmICghYmFzZSkKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgIHJldHVybiBhZG9wdFJlZihiYXNlLmxl
YWtSZWYoKS0+YXM8VD4oKSk7Ci0gICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKENhbGxiYWNr
QmFzZTo6RXJyb3IgZXJyb3IpCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7Ci0gICAgICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX21hcCwgZXJyb3Ip
OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Q2FsbGJh
Y2tCYXNlPj4gbV9tYXA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDIzNTEyYWYw
ZjFkNWVhZjFmZWE4ZWZjM2I4NWM5NDJjNmJmNTM2ZmYuLmJlNWU2NmMwZmE1NTMyZGI1ZWIzMzJi
N2I5MDVkMjUyZGY4MGNmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShJTlNQRUNU
T1JfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFQSUluc3BlY3RvckV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0
ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKaW5kZXggODQ1NTBlZDUwM2Fk
M2U1NTRjNTI5ODc4ZDVkMzhiYjRhNjU1YzNmOC4uZWIzNDc0MmNmMTI5ODk1MWRjOWM4YmRlNWMz
M2Q1YmE4Yzc4MjBjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCkBAIC0zNCw2
ICszNCw3IEBACiAjaW5jbHVkZSAiV0tBcnJheS5oIgogI2luY2x1ZGUgIldLQ29udGV4dE1lbnVJ
dGVtLmgiCiAjaW5jbHVkZSAiV0tNdXRhYmxlQXJyYXkuaCIKKyNpbmNsdWRlICJXS1NoYXJlZEFQ
SUNhc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNs
dWRlICJXZWJJbnNwZWN0b3JVSU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlQ
cm94eUNsaWVudC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCmluZGV4IGYw
ZGMyZmEzZTFmN2IxZGU5Njg5N2IxMGIxNmRlNzhmMmZmZjI2YjUuLjI5Mjg3YmEyZmI3MjEyZTAw
ZDI2ZDQ1ZTdjYTZhYzU4NWYzYWRlMWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xs
ZXIubW0KQEAgLTI5LDcgKzI5LDcgQEAKICNpZiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgIkFQ
SU5hdmlnYXRpb24uaCIKLSNpbXBvcnQgPFdlYktpdC9XS0ZyYW1lSW5mby5oPgorI2ltcG9ydCAi
V0tBUElDYXN0LmgiCiAjaW1wb3J0ICJXS0luc3BlY3RvclJlc291cmNlVVJMU2NoZW1lSGFuZGxl
ci5oIgogI2ltcG9ydCAiV0tJbnNwZWN0b3JXS1dlYlZpZXcuaCIKICNpbXBvcnQgPFdlYktpdC9X
S05hdmlnYXRpb25BY3Rpb24uaD4KQEAgLTQ1LDYgKzQ1LDcgQEAKICNpbXBvcnQgIldlYlBhZ2VQ
cm94eS5oIgogI2ltcG9ydCAiX1dLSW5zcGVjdG9yQ29uZmlndXJhdGlvbkludGVybmFsLmgiCiAj
aW1wb3J0IDxXZWJDb3JlL1ZlcnNpb25DaGVja3MuaD4KKyNpbXBvcnQgPFdlYktpdC9XS0ZyYW1l
SW5mby5oPgogI2ltcG9ydCA8d3RmL1dlYWtPYmpDUHRyLmg+CiAKIHN0YXRpYyBOU1N0cmluZyAq
IGNvbnN0IFdLSW5zcGVjdG9yUmVzb3VyY2VTY2hlbWUgPSBAImluc3BlY3Rvci1yZXNvdXJjZSI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5v
dGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3Rp
ZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzYwNjMxYzQ5
MGY2NDMzZjM0MWE0M2JkODgxZDU0NWY0YTliNzNhZS4uOWE3MzRhZGIxZTYyOWE1YmI4NzY1MDM5
MzZkM2I2ZTQyMDkwN2YyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90
aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5
LmNwcApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAi
QVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5o
IgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlv
bi5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1
ZGUgIldlYlBhZ2VQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5n
QXJlYVByb3h5LmgKaW5kZXggZTMyYmY3YjM1OTI2ZmM4YWIzMGU5YjQ1ZTAyNDUwYjBmZTZhMTJj
ZS4uN2I2ZDUwZTMyZmUwN2MxYzUyODNlOTdkMTE3YjZkYWViMThmMDlmZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKKyNpbmNsdWRl
ICJQcm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgog
I2luY2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbkZy
YW1lUmF0ZS5oPgpAQCAtNjcsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEZvciBu
b3csIGFsbCBjYWxsYmFja3MgYXJlIGNhbGxlZCBiZWZvcmUgY29tbWl0dGluZyBjaGFuZ2VzLCBi
ZWNhdXNlIHRoYXQncyB3aGF0IHRoZSBvbmx5IGNsaWVudCByZXF1aXJlcy4KICAgICAvLyBPbmNl
IHdlIGhhdmUgb3RoZXIgY2FsbGJhY2tzLCBpdCBtYXkgbWFrZSBzZW5zZSB0byBoYXZlIGEgYmVm
b3JlLWNvbW1pdC9hZnRlci1jb21taXQgb3B0aW9uLgotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVu
c3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYm
KSBvdmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rp
b248dm9pZCgpPiYmKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRp
ZENoYW5nZVZpZXdFeHBvc2VkUmVjdCgpIG92ZXJyaWRlOwpAQCAtMTE5LDcgKzEyMCw3IEBAIHBy
aXZhdGU6CiAgICAgVHJhbnNhY3Rpb25JRCBtX3RyYW5zYWN0aW9uSURGb3JVbmhpZGluZ0NvbnRl
bnQ7CiAgICAgQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEIHsg
QWN0aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cyB9OwogCi0gICAgQ2FsbGJhY2tNYXAgbV9j
YWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lELCBzdGQ6OnBhaXI8RnVuY3Rpb248dm9p
ZCgpPiwgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0
eT4+PiBtX2NhbGxiYWNrczsKIAogICAgIFJldGFpblB0cjxXS09uZVNob3REaXNwbGF5TGlua0hh
bmRsZXI+IG1fZGlzcGxheUxpbmtIYW5kbGVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVBy
b3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggYjRlNGM2YzBkYTgwMzI2MTI5NWJkZGFm
ZDQ1NWI3Y2E5OWM4NTNhMC4uZmY2NTRmYWU3OTE1MzYzNGE3ODgwZWViMGQxYzk3ZWM5NjFlMTE1
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1Jl
bW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0K
QEAgLTEyNyw3ICsxMjcsNiBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpSZW1v
dGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KFdlYlBhZ2VQcm94eSYgdwogCiBSZW1vdGVMYXll
clRyZWVEcmF3aW5nQXJlYVByb3h5Ojp+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSgp
CiB7Ci0gICAgbV9jYWxsYmFja3MuaW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25l
cldhc0ludmFsaWRhdGVkKTsKICAgICBwcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1l
c3NhZ2VzOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjptZXNzYWdlUmVjZWl2ZXJO
YW1lKCksIG1faWRlbnRpZmllcik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjY5
LDggKzI2OCw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0
TGF5ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAgICAgICAgIG1fd2ViUGFnZVBy
b3h5LmRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKG1pbGVzdG9uZXMpOwogCiAgICAgZm9yIChhdXRv
JiBjYWxsYmFja0lEIDogbGF5ZXJUcmVlVHJhbnNhY3Rpb24uY2FsbGJhY2tJRHMoKSkgewotICAg
ICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8Vm9pZENhbGxiYWNrPihj
YWxsYmFja0lEKSkKLSAgICAgICAgICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKKyAg
ICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpLmZp
cnN0KQorICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9CiB9CiAKQEAgLTQ3MSwxNCArNDcw
LDE2IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvckRpZFVw
ZGF0ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0CiAgICAgfQogfQogCi12b2lkIFJlbW90ZUxh
eWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RG
OjpGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9u
KQordm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5z
dXJpbmdEcmF3aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAg
IGlmICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjYWxs
YmFja0Z1bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwor
ICAgICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKG1f
Y2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBwcm9jZXNzKCkudGhyb3R0
bGVyKCkuYmFja2dyb3VuZEFjdGl2aXR5KCJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nIl9zKSkpKTsKKyAgICBhdXRvIGNhbGxiYWNr
SUQgPSBDYWxsYmFja0lEOjpnZW5lcmF0ZUlEKCk7CisgICAgbV9jYWxsYmFja3Muc2V0KGNhbGxi
YWNrSUQsIHN0ZDo6bWFrZV9wYWlyKFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3Mo
KS50aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIlJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmciX3MpLm1vdmVUb1VuaXF1ZVB0
cigpKSk7CisgICAgc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFkZFRyYW5zYWN0aW9uQ2Fs
bGJhY2tJRChjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eTo6aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBhMjUyOGMyYzBlMGQ3ZTEzMDk4
NjE2YjMxNTA4ODY2ZWY5ODQ3NjEzLi5lODU2MDZhZDA1MjQ1ZDViMWExMDNmMjJiMGNiMDYwZDYw
NDk4MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNv
bnRleHRDbGllbnQuaCIKIAorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYlBy
b2Nlc3NQb29sLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAppbmRleCAzZGNmNTRhZDdjOGJhYjFiNWFi
NmE2ZWMyOGY1YTFmODcxYTQxOTFjLi5iOWRjM2I3NDlmODRjYzI5N2MzYWRhNjY0YjA3Y2IyNmY0
MTFhNTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5h
Z2VyUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuaApAQCAtMjYsOSArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElP
YmplY3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJNZXNzYWdl
UmVjZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9u
SUQuaD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKaW5kZXggMzkxYjAyNzM2Mjgz
NDFlZGFhODgzMGIzNzRmMGZiMTMxMjQwMTcyYS4uZGM4Y2Q4NTRlNTEwMjQ1YTAzMGFjYmVlNDhh
ZDJjMTk5Zjk0NmQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJh
bWVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApA
QCAtMjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiRnJh
bWVMb2FkU3RhdGUuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJX
ZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIK
ICNpbmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KQEAgLTQxLDYgKzQwLDcgQEAK
IAogbmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBOYXZpZ2F0aW9uOworY2xhc3MgVVJMOwogfQogCiBu
YW1lc3BhY2UgSVBDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDcwZWQ5ZGE0ZDQ1ZGQzYjUxNGEzZWEwOTIyZjlkNmU4ZjRmNTMwZDkuLmM4Y2NhZTBlNzE0
ZTM1NzVmMGYyOWIzOTA1MTFjODk4MTE4OTllZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUGFnZVByb3h5LmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkFQSVBvbGljeUNs
aWVudC5oIgogI2luY2x1ZGUgIkFQSVJlc291cmNlTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIkFQ
SVNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgi
CiAjaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKICNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiQVBJV2Vic2l0ZVBvbGljaWVzLmgiCkBAIC00NDYzLDkgKzQ0NjQsNyBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6Zm9yY2VSZXBhaW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
YWxsYmFjaykKICAgICBtX2RyYXdpbmdBcmVhLT53YWl0Rm9yQmFja2luZ1N0b3JlVXBkYXRlT25O
ZXh0UGFpbnQoKTsKIAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6
Rm9yY2VSZXBhaW50KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgewotICAgICAgICBjYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAo
YXV0bykgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9KTsKKyAg
ICAgICAgY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXVEZNb3ZlKGNhbGxiYWNrKSk7
CiAgICAgfSk7CiB9CiAKQEAgLTk3NTYsMTIgKzk3NTUsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OmNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdl
OjpDbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6
OmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxs
YmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUGFnZVByb3h5OjpjYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsK
LSAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkgfHwgIW1fZHJhd2luZ0FyZWEpIHsKLSAgICAg
ICAgY2FsbGJhY2soQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpIHx8ICFt
X2RyYXdpbmdBcmVhKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKIAogICAgIG1fZHJhd2lu
Z0FyZWEtPmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGTW92ZShjYWxsYmFjaykpOwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCBiYmU2MzQwODZjYWJm
MTYxNzFjMDQ1OTNhNmI5MDBlMDIxNzdhN2JlLi4xNjJlNDZhMGQ1ZDc3OTEzYjg1MDdkZmY4OGMx
MmI0ODM0NWU0OTk5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAt
NjcsNiArNjcsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbmNs
dWRlICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dl
c3Rpb25zRHJvcGRvd24uaCIKKyNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZy
YW1lUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCkBAIC0xOTUsNiArMTk2LDcg
QEAgaW50ZXJmYWNlIElEM0QxMURldmljZTE7CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7Citj
bGFzcyBBcnJheTsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CiBjbGFz
cyBDb250ZXh0TWVudUNsaWVudDsKQEAgLTIwNSwxMyArMjA3LDE5IEBAIGNsYXNzIEZpbmRNYXRj
aGVzQ2xpZW50OwogY2xhc3MgRm9ybUNsaWVudDsKIGNsYXNzIEZ1bGxzY3JlZW5DbGllbnQ7CiBj
bGFzcyBIaXN0b3J5Q2xpZW50OworY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEljb25Mb2Fk
aW5nQ2xpZW50OwogY2xhc3MgTG9hZGVyQ2xpZW50OwogY2xhc3MgTmF2aWdhdGlvbjsKK2NsYXNz
IE5hdmlnYXRpb25BY3Rpb247CiBjbGFzcyBOYXZpZ2F0aW9uQ2xpZW50OworY2xhc3MgTmF2aWdh
dGlvblJlc3BvbnNlOworY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQb2xpY3lDbGll
bnQ7CiBjbGFzcyBSZXNvdXJjZUxvYWRDbGllbnQ7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFs
dWU7CiBjbGFzcyBVSUNsaWVudDsKK2NsYXNzIFVSTDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CiAK
QEAgLTMzMiw3ICszNDAsMTAgQEAgdHlwZWRlZiBIV05EIFBsYXRmb3JtVmlld1dpZGdldDsKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclBy
b3h5OworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKK2NsYXNzIENhbGxiYWNr
SUQ7CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OworY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNz
IEdhbWVwYWREYXRhOwogY2xhc3MgTWVkaWFVc2FnZU1hbmFnZXI7CiBjbGFzcyBOYXRpdmVXZWJH
ZXN0dXJlRXZlbnQ7CkBAIC0zNTYsNiArMzY3LDcgQEAgY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0
OwogY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJv
eHk7CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OworY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNs
YXNzIFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBQbGF5YmFja1Nlc3Npb25NYW5h
Z2VyUHJveHk7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwpAQCAtMzYz
LDYgKzM3NSw3IEBAIGNsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRDYWNo
ZTsKIGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTsKK2NsYXNz
IFdlYkluc3BlY3RvclVJUHJveHk7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2Vi
TW91c2VFdmVudDsKIGNsYXNzIFdlYk5hdmlnYXRpb25TdGF0ZTsKQEAgLTQwNyw2ICs0MjAsNyBA
QCBzdHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CiBz
dHJ1Y3QgV2ViU3BlZWNoU3ludGhlc2lzVm9pY2U7CiAKK2VudW0gY2xhc3MgRmluZE9wdGlvbnMg
OiB1aW50MTZfdDsKIGVudW0gY2xhc3MgSW1hZ2VBbmFseXNpc1R5cGUgOiB1aW50OF90OwogZW51
bSBjbGFzcyBUYXBIYW5kbGluZ1Jlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRleHRSZWNv
Z25pdGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CkBAIC00MTYsNiArNDMwLDggQEAgZW51bSBj
bGFzcyBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgOiB1aW50OF90OwogZW51bSBjbGFzcyBVbmRv
T3JSZWRvIDogYm9vbDsKIGVudW0gY2xhc3MgV2ViQ29udGVudE1vZGUgOiB1aW50OF90OwogCit0
eXBlZGVmIHVpbnQzMl90IFNuYXBzaG90T3B0aW9uczsKKwogI2lmIEhBVkUoVklTSUJJTElUWV9Q
Uk9QQUdBVElPTl9WSUVXKQogdXNpbmcgTGF5ZXJIb3N0aW5nQ29udGV4dElEID0gdWludDMyX3Q7
CiAjZW5kaWYKQEAgLTE2MTQsNyArMTYzMCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciB0ZXN0
aW5nCiAgICAgdm9pZCBjbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcigpOwotICAgIHZvaWQgY2Fs
bEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNr
QmFzZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRh
dGUoRnVuY3Rpb248dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgZGlkUmVhY2hMYXlvdXRNaWxlc3Rv
bmUoT3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggMWY4M2Q0MDMyNDljMWQ3ODM2Y2Qy
YzQ0ZjJkODc2ZGM5MzMwNDEzMS4uZTcyY2U4ZjU5YTRhMmIyYTBmNTdlYzhmNzJhNzRiNWYyNjNl
YWVkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAt
MzYsNiArMzYsOCBAQAogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElQ
YWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlv
bi5oIgorI2luY2x1ZGUgIkFQSVN0cmluZy5oIgorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIK
ICNpbmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEb3dubG9h
ZFByb3h5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCkBAIC01NSw2ICs1
Nyw3IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQuaCIK
ICNpbmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgog
I2luY2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vz
c2lvbi5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDA1MzU5YTdkZDQxMTA1ODExODdkMGYwOTdl
NWFmZDYyNzM1NWNhOGEuLjc0NjZiMDFhMGMxOTBiZmNjM2E4N2Q0MmQ2YWE1MGEzMjI2MDczMmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMjksNyArMjks
NiBAQAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29u
ZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIkdl
bmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3Jl
YXNlc0NvdW50ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJN
ZXNzYWdlUmVjZWl2ZXJNYXAuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L2lvcy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IGQxNGRkNGM3MmI4MWU0NTdm
MTZjMGQ5OThkYmY3Mjg0YjI4NWQzN2QuLmY3ZmQxZTY3ODQ3Yjc2NzYxMTg5NmUyOTZiMmE0MTY4
YzA2ODM1YmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQpAQCAtMzcxLDcgKzM3MSw3IEBAIHZvaWQgVmlld0dl
c3R1cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSog
dGFyZ2V0SXRlbSwKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGRy
YXdpbmdBcmVhLT5kaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFtwYWdlSUQsIGdlc3R1cmVJ
RF0gKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgZHJhd2luZ0FyZWEtPmRp
c3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoW3BhZ2VJRCwgZ2VzdHVyZUlEXSB7CiAgICAgICAg
ICAgICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IGNvbnRyb2xsZXJGb3JHZXN0dXJlKHBh
Z2VJRCwgZ2VzdHVyZUlEKSkKICAgICAgICAgICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+d2ls
bENvbW1pdFBvc3RTd2lwZVRyYW5zaXRpb25MYXllclRyZWUoZXJyb3IgPT0gQ2FsbGJhY2tCYXNl
OjpFcnJvcjo6Tm9uZSk7CiAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0KaW5kZXggNjdiZmYwNDJj
NGY0OTkzYjEwOTI3OGI3M2U0ZTNlZDk0ODMxODU1OC4uYjVkNDU4YWQ5MGZkNGM0OWYyZDQzNWU5
NzFmMjJlM2E3ZDFlMjMzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9z
L1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00OTkzLDcgKzQ5OTMsNyBAQCBz
dGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkV2l0aFRvdWNoKFdLQ29udGVudFZpZXcgKnZpZXcs
IGNvbnN0IFdlYkNvcmU6OkludFBvaQogewogICAgIF9pZ25vcmVTZWxlY3Rpb25Db21tYW5kRmFk
ZUNvdW50Kys7CiAgICAgX3BhZ2UtPnNjaGVkdWxlRnVsbEVkaXRvclN0YXRlVXBkYXRlKCk7Ci0g
ICAgX3BhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3dlYWtTZWxmID0gV2Vh
a09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildIChhdXRvKSB7CisgICAgX3BhZ2UtPmNhbGxB
ZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250
ZW50Vmlldz4oc2VsZildIHsKICAgICAgICAgaWYgKGF1dG8gc3Ryb25nU2VsZiA9IHdlYWtTZWxm
LmdldCgpKQogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2lnbm9yZVNlbGVjdGlvbkNvbW1hbmRG
YWRlQ291bnQtLTsKICAgICB9KTsKQEAgLTkxMDcsNyArOTEwNyw3IEBAIHN0YXRpYyBWZWN0b3I8
V2ViQ29yZTo6SW50U2l6ZT4gc2l6ZXNPZlBsYWNlaG9sZGVyRWxlbWVudHNUb0luc2VydFdoZW5E
cm9wcGluZ0l0CiAgICAgICAgIFJFTEVBU0VfTE9HKERyYWdBbmREcm9wLCAiRHJhZyBpbnRlcmFj
dGlvbiB3aWxsQW5pbWF0ZUNhbmNlbFdpdGhBbmltYXRvciAoYW5pbWF0aW9uIGNvbXBsZXRpb24g
YmxvY2sgZmlyZWQpIik7CiAgICAgICAgIHBhZ2UtPmRyYWdDYW5jZWxsZWQoKTsKICAgICAgICAg
aWYgKGF1dG8gY29tcGxldGlvbiA9IHByb3RlY3RlZFNlbGYtPl9kcmFnRHJvcEludGVyYWN0aW9u
U3RhdGUudGFrZURyYWdDYW5jZWxTZXREb3duQmxvY2soKSkgewotICAgICAgICAgICAgcGFnZS0+
Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29tcGxldGlvbiwgcHJvdGVjdGVkU2Vs
Zl0gKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAgICAgICAgICAgcGFnZS0+Y2Fs
bEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29tcGxldGlvbiwgcHJvdGVjdGVkU2VsZl0g
ewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb24oKTsKICAgICAgICAgICAgICAgICBwcm90ZWN0
ZWRTZWxmLT5faXNBbmltYXRpbmdEcmFnQ2FuY2VsID0gTk87CiAgICAgICAgICAgICB9KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGUyMjgyZWIzZjlmYWY0ZjYwMWUyYzBj
NjQxY2E3NmZhZjhmOGNiNGMuLjRiOTFiOWFmODVhOGFhOWM2YzQyOTlkODc0MmE5MGZiMTgwMDdj
NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFj
L1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaApAQCAtNTIsNyArNTIsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShkb3VibGUgc2NhbGUsIFdlYkNv
cmU6OkZsb2F0UG9pbnQgb3JpZ2luKSBvdmVycmlkZTsKIAogICAgIHZvaWQgd2FpdEZvckRpZFVw
ZGF0ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSBvdmVycmlkZTsKLSAgICB2
b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxs
YmFja0Jhc2U6OkVycm9yKT4mJikgb3ZlcnJpZGU7CisgICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5z
dXJpbmdEcmF3aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJikgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaXNw
YXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVyRmx1c2hpbmdMYXllcnMoY29uc3QgVmVjdG9y
PENhbGxiYWNrSUQ+JikgZmluYWw7CiAKICAgICB2b2lkIHdpbGxTZW5kVXBkYXRlR2VvbWV0cnko
KSBvdmVycmlkZTsKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToKICAgICAvLyBUaGUgbGFzdCBt
YXhtaXVtIHNpemUgZm9yIHNpemUtdG8tY29udGVudCBhdXRvLXNpemluZyB3ZSBzZW50IHRvIHRo
ZSB3ZWIgcHJvY2Vzcy4KICAgICBXZWJDb3JlOjpJbnRTaXplIG1fbGFzdFNlbnRTaXplVG9Db250
ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKIAotICAgIENhbGxiYWNrTWFwIG1fY2FsbGJhY2tzOwor
ICAgIEhhc2hNYXA8Q2FsbGJhY2tJRCwgRnVuY3Rpb248dm9pZCgpPj4gbV9jYWxsYmFja3M7CiB9
OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHku
bW0KaW5kZXggZTYxNmFmZmRlMzZkZjRhMDFmOGJiYmJmZjA4YTMwY2U3ZmQxNGI1OS4uMmE3NmNh
YjVmYWU1ZDkzZjVlYWU1Yjc5NzRlYTNiZjdlNTM3ZGYwNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHkubW0KQEAgLTUwLDcgKzUwLDYgQEAgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2lu
Z0FyZWFQcm94eTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eShXZWJQYWdlUHIK
IAogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6flRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkoKQogewotICAgIG1fY2FsbGJhY2tzLmludmFsaWRhdGUoQ2FsbGJh
Y2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CiB9CiAKIHZvaWQgVGlsZWRDb3Jl
QW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGV2aWNlU2NhbGVGYWN0b3JEaWRDaGFuZ2UoKQpA
QCAtMjAzLDIxICsyMDIsMjMgQEAgdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVBy
b3h5Ojpjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwgRmxvYXQKICAgICBzZW5kKE1l
c3NhZ2VzOjpEcmF3aW5nQXJlYTo6Q29tbWl0VHJhbnNpZW50Wm9vbShzY2FsZSwgb3JpZ2luKSk7
CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hB
ZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJy
b3IpPiYmIGNhbGxiYWNrKQordm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5
OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFj
aykKIHsKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5pbmdQcm9jZXNzKCkpIHsKLSAg
ICAgICAgY2FsbGJhY2soQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7
CisgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5k
KE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKG1fY2FsbGJh
Y2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrKSwgbnVsbHB0cikpKTsKKyAgICBhdXRvIGNhbGxiYWNr
SUQgPSBDYWxsYmFja0lEOjpnZW5lcmF0ZUlEKCk7CisgICAgbV9jYWxsYmFja3Muc2V0KGNhbGxi
YWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJl
YTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBUaWxl
ZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxi
YWNrc0FmdGVyRmx1c2hpbmdMYXllcnMoY29uc3QgVmVjdG9yPENhbGxiYWNrSUQ+JiBjYWxsYmFj
a0lEcykKIHsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrSUQgOiBjYWxsYmFja0lEcykgewotICAg
ICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8Vm9pZENhbGxiYWNrPihj
YWxsYmFja0lEKSkKLSAgICAgICAgICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKKyAg
ICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpKQor
ICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93Q29udHJvbGxlci5oCmlu
ZGV4IGQxOTcyOTI2NTVjNjFiYTZjNmJiMzhhMTM4ODU3ZjRkZTU2NzFjOTguLmJkNTM5ZDIyYzE1
MmE0NDE5ODVjODcwNjM4MDliYTJiMjQ1M2RhMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9sbGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaApAQCAt
MjYsNyArMjYsNiBAQAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQSSkgJiYgUExBVEZPUk0oTUFD
KQogCiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+Ci0jaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2su
aCIKICNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAj
aW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQppbmRleCBjMDM3ZDY1YjJiYzBmM2MwYTFlYTEyNmVm
ZDIxODI3ZGEyMWFhYmI5Li43NDE0NTIxODJhYjIxMTFkNmFkYWRlZDM2ZWU5MGIwMmNlYTQzNjEw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGll
bnQubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQVBJRmluZENsaWVudC5oIgogI2lt
cG9ydCAiQVBJRmluZE1hdGNoZXNDbGllbnQuaCIKKyNpbXBvcnQgIldlYkZpbmRPcHRpb25zLmgi
CiAjaW1wb3J0ICJXZWJJbWFnZS5oIgogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0
IDxhbGdvcml0aG0+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagppbmRleCAyYTNhMGQ0ZTQ2Y2M0ZTY1Nzk1NzI4N2QyNmM4OGJjM2EwNjRkMTA1Li41
OTRhOWQ4NGZhMDY2MTE4ZWQxNjU5MTQ1NmQyM2NiZDIwOWFiZTFjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTE2ODgsNyArMTY4OCw2
IEBACiAJCUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdvcmxkLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE0REY5RDEy
MEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMTRFMTBBMTIwQjkwNUUwMDgyNkMw
QyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE0RTEwODEyMEI5MDVFMDA4MjZDMEMgLyogSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oICovOyB9OwogCQlCQzE3NzQ2NTExOEI5RkY0MDA3
RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMxNzc0NjQxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQzE3
NzUzRjExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE3NzUzRTExOEJBQkYwMDA3RDlFOUEg
LyogR2VuZXJpY0NhbGxiYWNrLmggKi87IH07CiAJCUJDMUE3QzU4MTEzNkUxOUMwMEZCNzE2NyAv
KiBQcm9jZXNzTGF1bmNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMUE3QzU3MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCAq
LzsgfTsKIAkJQkMxQjQxOTgxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFnZVByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUI0MTk3
MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMxQkUxRTAxMkQ1NEE0MTAwMDRB
MjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFCRTFERTEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9j
YXRpb25DbGllbnQuaCAqLzsgfTsKQEAgLTUyNzMsNyArNTI3Miw2IEBACiAJCUJDMTRFMTA3MTIw
QjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGll
bnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzE0RTEwODEyMEI5MDVFMDA4
MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50Lmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTc3NDY0MTE4QjlGRjQwMDdEOUU5QSAvKiBXS1BhZ2VQ
cml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdLUGFnZVByaXZhdGUu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMxNzc1M0UxMThCQUJGMDAwN0Q5RTlB
IC8qIEdlbmVyaWNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
ZW5lcmljQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxQTdDNTcx
MTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBQcm9jZXNzTGF1bmNoZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJQkMxQjQxOTcxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFnZVByaXZhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5kbGVQYWdlUHJpdmF0ZS5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFCRTFERTEyRDU0QTQxMDAwNEEyMjggLyog
V2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0g
V2ViR2VvbG9jYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTEw
MDU2LDcgKzEwMDU0LDYgQEAKIAkJCQkxQTY0MjJGQzEyREQwOEZFMDBDQUFFMkMgLyogRHJhd2lu
Z0FyZWFQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkxQUUwMEQ1RTE4MzE3OTIxMDAwODdERDcg
LyogRnJhbWVMb2FkU3RhdGUuY3BwICovLAogCQkJCTFBRTAwRDVGMTgzMTc5MjEwMDA4N0RENyAv
KiBGcmFtZUxvYWRTdGF0ZS5oICovLAotCQkJCUJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBH
ZW5lcmljQ2FsbGJhY2suaCAqLywKIAkJCQk5RUM1MzJBMjI0NDdGQkFEMDAyMTUyMTYgLyogR2Vv
bG9jYXRpb25JZGVudGlmaWVyLmggKi8sCiAJCQkJQkMwNkY0NDkxMkRCRDFGNTAwMkQ3OERFIC8q
IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuY3BwICovLAogCQkJCUJD
MDZGNDQ4MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFu
YWdlclByb3h5LmggKi8sCkBAIC0xMjA3MSw3ICsxMjA2OCw2IEBACiAJCQkJQ0QxOUQyRUEyMDQ2
NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpYy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQ0RBOTNEQjAyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hl
dXJpc3RpY1BhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxNUJFMUIzMUQ1OTAyREQw
MEREN0M2OCAvKiBHYW1lcGFkRGF0YS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJQkMxNzc1M0YxMThC
QUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOUVD
NTMyQTMyNDQ3RkJBRDAwMjE1MjE2IC8qIEdlb2xvY2F0aW9uSWRlbnRpZmllci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwNkY0MkYxMkRCQjlCNjAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA2RjQ0QTEyREJEMUY1
MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbSBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVDb250
ZXh0Lm1tCmluZGV4IDA3ODZjYzUzMzFmMzUwOTFlZWJhNTU1OTA3MDc3YTMxNTc2ODA4ZTguLjQ1
YjU4ZDYzYmMwOTRkMGYyMGRjZTkyNjZmZjliNjc0ZTM5ZjBhYmQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90
ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCkBAIC0yNiw3ICsyNiw2IEBACiAj
aW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyVHJlZUNvbnRleHQuaCIKIAot
I2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW1wb3J0ICJHcmFwaGljc0xheWVyQ0FSZW1v
dGUuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5oIgogI2ltcG9ydCAiUmVtb3Rl
TGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436238</attachid>
            <date>2021-08-23 14:32:26 -0700</date>
            <delta_ts>2021-08-23 15:20:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210823143225.patch</filename>
            <type>text/plain</type>
            <size>68231</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxMjEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDBjNTM1OWVlZDVhNGU3MGVl
YjNjYjQxZDE0ZjgyMDVkMTZmYzdmY2EuLmNjY2NmNTIzYWU2ODk5ZDUyMDVmOTk3ZTU3ZTNmNjM2
ZTg3OGMxMjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsOTggQEAKKzIwMjEtMDgtMjMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAg
ICAgVGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3lu
Y1JlcGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5j
b2RlZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29k
ZSB3aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1
dCB3ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0
aW9uLgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJY29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VD
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0Zv
clBhaW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlv
bi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmlu
Z0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVy
Rmx1c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbToKKworMjAyMS0wOC0yMCAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNl
bkB3ZWJraXQub3JnPgorCisgICAgICAgIE1ha2UgVUlFdmVudEF0dHJpYnV0aW9uIHRlc3RzIGxl
c3MgcGxhdGZvcm0gZGVwZW5kZW50CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMjkzMjMKKworICAgICAgICBSZXZpZXdlZCBieSBKb2huIFdpbGFuZGVy
LgorCisgICAgICAgIFRoaXMgYWxsb3dzIG1lIHRvIHJ1biB0aGUgVUlFdmVudEF0dHJpYnV0aW9u
IHRlc3RzIG9uIG1hY09TLgorICAgICAgICBJdCBhbHNvIG1ha2VzIHRoZW0gbm90IHRpbWUgb3V0
LCB3aGljaCB0aGV5IHdlcmUgZG9pbmcgc2luY2UgcjI3NzQ0Ny4KKyAgICAgICAgVG8gYWNjb21w
bGlzaCB0aGlzLCBJIGFkZGVkIG1vcmUgdGVzdCBTUEkgdG8gcHJldmVudCB0aGUgbmV0d29yayBw
cm9jZXNzCisgICAgICAgIHN1c3BlbnNpb24gbWVzc2FnZSwgd2hpY2ggd2FzIGNhdXNpbmcgdGhl
IHRlc3QgdG8gdGltZSBvdXQgb24gdGhlIGlPUyBzaW11bGF0b3IuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1ByaXZhdGVGb3JUZXN0aW5nLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdUZXN0aW5nLm1tOgorICAgICAgICAoLVtXS1dl
YlZpZXcgX2FkZEV2ZW50QXR0cmlidXRpb25XaXRoU291cmNlSUQ6ZGVzdGluYXRpb25VUkw6c291
cmNlRGVzY3JpcHRpb246cHVyY2hhc2VyOnJlcG9ydEVuZHBvaW50Om9wdGlvbmFsTm9uY2U6XSk6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW06Cisg
ICAgICAgICgrW1dLV2Vic2l0ZURhdGFTdG9yZSBfcHJldmVudE5ldHdvcmtQcm9jZXNzU3VzcGVu
c2lvbkZvclRlc3RpbmddKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0
ZURhdGFTdG9yZVByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZp
ZXdQcml2YXRlRm9yVGVzdGluZ0lPUy5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvaW9zL1dL
V2ViVmlld1Rlc3RpbmdJT1MubW06CisgICAgICAgICgtW1dLV2ViVmlldyBfc2V0VUlFdmVudEF0
dHJpYnV0aW9uRm9yVGVzdGluZzp3aXRoTm9uY2U6XSk6IERlbGV0ZWQuCisgICAgICAgICogVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnByZXZlbnRTdXNwZW5zaW9uRm9yVGVzdGluZyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNlbmRQcmVwYXJlVG9TdXNwZW5kKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisKIDIw
MjEtMDgtMTggIE1lZ2FuIEdhcmRuZXIgIDxtZWdhbl9nYXJkbmVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZW1vdmUgdW5uZWVkZWQgVUlLaXRTUEkgZGVjbGFyYXRpb25zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9D
YWxsYmFja0lELmgKaW5kZXggMGFkMzIxM2YxN2Y0MGU5MDhkYjZjNmU0ZWM5NTcxOGU3ZmYyZjEy
OS4uNjJkNTc0MDliMTMyMDJkN2RmNzhmNDAzMzNjNzViYmI3NjQxMDdiMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9TaGFyZWQvQ2FsbGJhY2tJRC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hh
cmVkL0NhbGxiYWNrSUQuaApAQCAtOTgsNyArOTgsNiBAQCBwcml2YXRlOgogICAgICAgICBBU1NF
UlQobmV3SUQgIT0gSGFzaFRyYWl0czx1aW50NjRfdD46OmVtcHR5VmFsdWUoKSk7CiAgICAgfQog
Ci0gICAgZnJpZW5kIGNsYXNzIENhbGxiYWNrTWFwOwogICAgIHRlbXBsYXRlIDx0eXBlbmFtZSBD
YWxsYmFja1R5cGU+IGZyaWVuZCBjbGFzcyBTcGVjaWZpY0NhbGxiYWNrTWFwOwogICAgIGZyaWVu
ZCBjbGFzcyBPcHRpb25hbENhbGxiYWNrSUQ7CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkNhbGxi
YWNrSURIYXNoOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAppbmRleCA5Y2YyN2Ux
ZjRjNDg1ZjkyNWFlMmQ4ZGYxYTc3MWExZDE4Mjg1NzJiLi4xNjc3MGVjZmY2NzAzNGQ1NTg1OWIx
YTQ5YzNkNmQwZjYyM2JhMDMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1v
dGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaApA
QCAtMjUsMTAgKzI1LDEwIEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2FsbGJhY2tJ
RC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgogI2luY2x1ZGUgIkR5bmFtaWNWaWV3
cG9ydFNpemVVcGRhdGUuaCIKICNpbmNsdWRlICJFZGl0b3JTdGF0ZS5oIgotI2luY2x1ZGUgIkdl
bmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIlBsYXRmb3JtQ0FBbmltYXRpb25SZW1vdGUuaCIK
ICNpbmNsdWRlICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZS5oIgogI2luY2x1ZGUgIlRyYW5zYWN0
aW9uSUQuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRh
Y2htZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCmlu
ZGV4IGFmYTkyOWNmMDkzZDIyZWM3NmFkODZmZGEwM2I1MDFiYmZkMjlkYzMuLmZiYWFlOTczMDVh
ZmQ1YWM2NzUxMmU2YzcyZTBhYWIxNmNhNGI1ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSUF0dGFjaG1lbnQuaApAQCAtMjgsNyArMjgsNiBAQAogI2lmIEVOQUJMRShBVFRB
Q0hNRU5UX0VMRU1FTlQpCiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKLSNpbmNsdWRlICJHZW5l
cmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXS0Jhc2UuaCIKICNpbmNsdWRlIDx3dGYvUmVmUHRy
Lmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9BUElJY29uTG9hZGluZ0NsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmgKaW5kZXggYjFiMTFmNWM1MWEyYTQ2OGVh
MGFjYTUyZTI2MzRmMGViZmFhMjFhNS4uNTZmYTg3N2YxZTg5MWFjNzE4YjhiMWE0ZGYyMDlmNWQ0
YmRiMWRhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25M
b2FkaW5nQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25M
b2FkaW5nQ2xpZW50LmgKQEAgLTI1LDE5ICsyNSwyMCBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lu
Y2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvTGlua0ljb24uaD4K
ICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvRnVuY3Rp
b24uaD4KIAogbmFtZXNwYWNlIEFQSSB7CiAKK2NsYXNzIERhdGE7CisKIGNsYXNzIEljb25Mb2Fk
aW5nQ2xpZW50IHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAgICB2
aXJ0dWFsIH5JY29uTG9hZGluZ0NsaWVudCgpIHsgfQogCi0gICAgdmlydHVhbCB2b2lkIGdldExv
YWREZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQVBJOjpEYXRhKik+JiYpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQorICAgIHZpcnR1YWwgdm9pZCBnZXRMb2FkRGVjaXNpb25Gb3JJY29uKGNv
bnN0IFdlYkNvcmU6OkxpbmtJY29uJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKERhdGEqKT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiAgICAgewogICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihudWxscHRyKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9yRXh0ZW5zaW9uLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCmluZGV4IDg2
MjY3MjA4OGViMjk3MmY2ZDU1ZTIzNmNlN2YzMDljNzJkNWQxNzUuLjE4NmQ2YjI0NmI2YzE2NzZl
ZDk2MzY4MWFlNjBhM2MzNzZlMWU5OTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAK
ICNpZiBFTkFCTEUoSU5TUEVDVE9SX0VYVEVOU0lPTlMpCiAKKyNpbmNsdWRlICJBUElTZXJpYWxp
emVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25EZXRhaWxzLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJVUlDbGllbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9BUElVSUNsaWVudC5oCmluZGV4IDYyYTliZmNlNjYyMjlhZmYwM2QwY2RmYmEyMTZhMzA5
YmQyMWMzMzQuLjNkYzdkNTAzOTZmNjlhN2U1ZTM5ODlmZjQxMzY3MTkzYjAyNDBhMzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oCkBAIC0yNiw2ICsyNiw3IEBA
CiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSUluc3BlY3RvckNvbmZpZ3VyYXRpb24uaCIK
KyNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgogI2luY2x1ZGUgIldLUGFnZS5oIgogI2lu
Y2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViSGl0VGVzdFJlc3VsdERhdGEuaCIKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3BwCmluZGV4IDcwMmVmYjI5OWE0MWIw
MTNjODU2OTA1ZTllNmI4MDI2Mjc3MGFmZTEuLjY4ZTYwMGQ4MGEwYTA5MjZlYmJkMmMxMTA0ZWZm
OTM5MzZhZTk0YzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dL
UGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcApA
QCAtNDUsNiArNDUsNyBAQAogI2luY2x1ZGUgIkFQSU9wZW5QYW5lbFBhcmFtZXRlcnMuaCIKICNp
bmNsdWRlICJBUElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVu
dC5oIgorI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkFQ
SVNlc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIkFQSVVJQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJ
V2ViQXV0aGVudGljYXRpb25QYW5lbC5oIgpAQCAtMzAwNSw4ICszMDA2LDggQEAgdm9pZCBXS1Bh
Z2VDbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcihXS1BhZ2VSZWYgcGFnZVJlZikKIHZvaWQgV0tQ
YWdlQ2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXS1BhZ2VSZWYgcGFnZVJlZiwgdm9p
ZCogY29udGV4dCwgV0tQYWdlUG9zdFByZXNlbnRhdGlvblVwZGF0ZUZ1bmN0aW9uIGNhbGxiYWNr
KQogewogICAgIENSQVNIX0lGX1NVU1BFTkRFRDsKLSAgICB0b0ltcGwocGFnZVJlZiktPmNhbGxB
ZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbnRleHQsIGNhbGxiYWNrXShXZWJLaXQ6OkNh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKLSAgICAgICAgY2FsbGJhY2soZXJyb3IgIT0gV2Vi
S2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25lID8gdG9BUEkoQVBJOjpFcnJvcjo6Y3JlYXRl
KCkucHRyKCkpIDogMCwgY29udGV4dCk7CisgICAgdG9JbXBsKHBhZ2VSZWYpLT5jYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb250ZXh0LCBjYWxsYmFja10oKSB7CisgICAgICAgIGNh
bGxiYWNrKG51bGxwdHIsIGNvbnRleHQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbQppbmRl
eCAwODBlYWIxMTA3NTQ1ZDRjOTk0MTFlMjkyOTQ0YzBhMjVjODViOTRiLi42NjI2ODBhNWY0YTU5
NTZiZjY2NmY3Y2FmN2ZmMTYxNzQxYjQzZTUyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KQEAgLTQyLDYgKzQy
LDcgQEAKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiAjaW1wb3J0IDxVSUtpdFNQSS5oPgor
I2ltcG9ydCA8V2ViQ29yZS9XQUtBcHBLaXRTdHVicy5oPgogI2VuZGlmCiAKIE5TU3RyaW5nICog
Y29uc3QgTlNSZWFkQWNjZXNzVVJMRG9jdW1lbnRPcHRpb24gPSBAIlJlYWRBY2Nlc3NVUkwiOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdD
b250ZXh0Q29udHJvbGxlci5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9X
S0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KaW5kZXggZTA3MTI2YWJiZDk0MTFhZmRjMTJi
MmFiZmQwOGE0ZDEwNzI0MjE5My4uZjUzYzkyYTcxNGJhNjNhMWI1ZGViYTZhZjdmY2Y3NTU5ZDQw
Mzc3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLQnJv
d3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCkBAIC0zMiw2ICszMiw3IEBA
CiAjaW1wb3J0ICJQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVj
dFJlZ2lzdHJ5LmgiCiAjaW1wb3J0ICJSZW1vdGVPYmplY3RSZWdpc3RyeU1lc3NhZ2VzLmgiCisj
aW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SW50ZXJuYWwu
aCIKICNpbXBvcnQgIldLQmFja0ZvcndhcmRMaXN0SXRlbUludGVybmFsLmgiCiAjaW1wb3J0ICJX
S0Jyb3dzaW5nQ29udGV4dEdyb3VwSW50ZXJuYWwuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJuYWwuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJuYWwuaAppbmRleCAxMWJkMWY1ZDIyNzQz
MjIwOWRhYzA4MWE2ZWIyMmZjYzg0MzYxZDcwLi45NjI5MDE2YmNmNWViYTIzYmIxYjU2NjEyMzMz
MzRmZDYxM2M2ZTA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tFcnJvckludGVybmFsLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLRXJyb3JJbnRlcm5hbC5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaW1wb3J0ICJXS0Vycm9y
UHJpdmF0ZS5oIgogCiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+Ci0jaW1wb3J0ICJHZW5lcmlj
Q2FsbGJhY2suaCIKIAogUmV0YWluUHRyPE5TRXJyb3I+IGNyZWF0ZU5TRXJyb3IoV0tFcnJvckNv
ZGUsIE5TRXJyb3IqIHVuZGVybHlpbmdFcnJvciA9IG5pbCk7CiBOU1N0cmluZyAqbG9jYWxpemVk
RGVzY3JpcHRpb25Gb3JFcnJvckNvZGUoV0tFcnJvckNvZGUpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KaW5kZXggY2RjZDM5N2FkODVjY2ZiN2Ji
MWZkMGU1ZTM4ZWQyOGU5MmU3MzI0ZC4uY2M1ZGMyNTAyNTJkYzM3M2JhNGRiZGRiN2EzNGM1NWYz
M2E3MjhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dL
V2ViVmlldy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJW
aWV3Lm1tCkBAIC0xMTYzLDcgKzExNjMsOSBAQCBzdGF0aWMgV0tNZWRpYVBsYXliYWNrU3RhdGUg
dG9XS01lZGlhUGxheWJhY2tTdGF0ZShXZWJLaXQ6Ok1lZGlhUGxheWJhY2tTdGF0ZSBtZQogLSAo
dm9pZCl0YWtlU25hcHNob3RXaXRoQ29uZmlndXJhdGlvbjooV0tTbmFwc2hvdENvbmZpZ3VyYXRp
b24gKilzbmFwc2hvdENvbmZpZ3VyYXRpb24gY29tcGxldGlvbkhhbmRsZXI6KHZvaWQoXikoQ29j
b2FJbWFnZSAqLCBOU0Vycm9yICopKWNvbXBsZXRpb25IYW5kbGVyCiB7CiAgICAgVEhST1dfSUZf
U1VTUEVOREVEOworI2lmIFVTRShBUFBLSVQpCiAgICAgY29uc3RleHByIGJvb2wgc25hcHNob3RG
YWlsZWRUcmFjZVZhbHVlID0gZmFsc2U7CisjZW5kaWYKICAgICB0cmFjZVBvaW50KFRha2VTbmFw
c2hvdFN0YXJ0KTsKIAogICAgIENHUmVjdCByZWN0SW5WaWV3Q29vcmRpbmF0ZXMgPSBzbmFwc2hv
dENvbmZpZ3VyYXRpb24gJiYgIUNHUmVjdElzTnVsbChzbmFwc2hvdENvbmZpZ3VyYXRpb24ucmVj
dCkgPyBzbmFwc2hvdENvbmZpZ3VyYXRpb24ucmVjdCA6IHNlbGYuYm91bmRzOwpAQCAtMTIzOCwx
MyArMTI0MCw3IEBAIHN0YXRpYyBXS01lZGlhUGxheWJhY2tTdGF0ZSB0b1dLTWVkaWFQbGF5YmFj
a1N0YXRlKFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRlIG1lCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY2FsbFNu
YXBzaG90UmVjdCA9IFdURk1vdmUoY2FsbFNuYXBzaG90UmVjdCksIGhhbmRsZXJdKFdlYktpdDo6
Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgIGlmIChlcnJvciAh
PSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpIHsKLSAgICAgICAgICAgIHRyYWNl
UG9pbnQoVGFrZVNuYXBzaG90RW5kLCBzbmFwc2hvdEZhaWxlZFRyYWNlVmFsdWUpOwotICAgICAg
ICAgICAgaGFuZGxlcihuaWwsIGNyZWF0ZU5TRXJyb3IoV0tFcnJvclVua25vd24pLmdldCgpKTsK
LSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCisgICAgX3BhZ2UtPmNhbGxBZnRlck5l
eHRQcmVzZW50YXRpb25VcGRhdGUoW2NhbGxTbmFwc2hvdFJlY3QgPSBXVEZNb3ZlKGNhbGxTbmFw
c2hvdFJlY3QpLCBoYW5kbGVyXSgpIG11dGFibGUgewogICAgICAgICAvLyBDcmVhdGUgYW4gaW1w
bGljaXQgdHJhbnNhY3Rpb24gdG8gZW5zdXJlIGEgY29tbWl0IHdpbGwgaGFwcGVuIG5leHQuCiAg
ICAgICAgIFtDQVRyYW5zYWN0aW9uIGFjdGl2YXRlXTsKIApAQCAtMTUxNCw3ICsxNTEwLDcgQEAg
aW5saW5lIE9wdGlvblNldDxXZWJLaXQ6OkZpbmRPcHRpb25zPiB0b0ZpbmRPcHRpb25zKFdLRmlu
ZENvbmZpZ3VyYXRpb24gKmNvbmZpZ3UKICAgICBhdXRvIHVwZGF0ZUJsb2NrQ29weSA9IG1ha2VC
bG9ja1B0cih1cGRhdGVCbG9jayk7CiAKICAgICBSZXRhaW5QdHI8V0tXZWJWaWV3PiBzdHJvbmdT
ZWxmID0gc2VsZjsKLSAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShb
dXBkYXRlQmxvY2tDb3B5LCB3aXRob3V0V2FpdGluZ0ZvckFuaW1hdGVkUmVzaXplLCBzdHJvbmdT
ZWxmXShXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICBfcGFnZS0+Y2Fs
bEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbdXBkYXRlQmxvY2tDb3B5LCB3aXRob3V0V2Fp
dGluZ0ZvckFuaW1hdGVkUmVzaXplLCBzdHJvbmdTZWxmXSB7CiAgICAgICAgIGlmICghdXBkYXRl
QmxvY2tDb3B5KQogICAgICAgICAgICAgcmV0dXJuOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3UHJpdmF0ZUZvclRlc3RpbmcuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGlu
Zy5oCmluZGV4IDQwODc0ODQ2NmVlYmM5ZDI2Mjk4YzVlNDIyOGFmNGNkOGJlNjcyZjMuLjBjMjJl
ZGRhODUwODUxNmMxNTZhYmEzMmY0ZjFlZjFiNWNjZTNiMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGluZy5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdQcml2YXRlRm9y
VGVzdGluZy5oCkBAIC00NCw2ICs0NCw4IEBAIHN0cnVjdCBXS0FwcFByaXZhY3lSZXBvcnRUZXN0
aW5nRGF0YSB7CiAKIEBpbnRlcmZhY2UgV0tXZWJWaWV3IChXS1Rlc3RpbmcpCiAKKy0gKHZvaWQp
X2FkZEV2ZW50QXR0cmlidXRpb25XaXRoU291cmNlSUQ6KHVpbnQ4X3Qpc291cmNlSUQgZGVzdGlu
YXRpb25VUkw6KE5TVVJMICopZGVzdGluYXRpb24gc291cmNlRGVzY3JpcHRpb246KE5TU3RyaW5n
ICopc291cmNlRGVzY3JpcHRpb24gcHVyY2hhc2VyOihOU1N0cmluZyAqKXB1cmNoYXNlciByZXBv
cnRFbmRwb2ludDooTlNVUkwgKilyZXBvcnRFbmRwb2ludCBvcHRpb25hbE5vbmNlOihudWxsYWJs
ZSBOU1N0cmluZyAqKW5vbmNlIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoV0tfTUFDX1RCQSksIGlv
cyhXS19JT1NfVEJBKSk7CisKIC0gKHZvaWQpX3NldFBhZ2VTY2FsZTooQ0dGbG9hdClzY2FsZSB3
aXRoT3JpZ2luOihDR1BvaW50KW9yaWdpbjsKIC0gKENHRmxvYXQpX3BhZ2VTY2FsZTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld1Rlc3Rp
bmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGlu
Zy5tbQppbmRleCAwNDRlOTJjYWMzYWNkMDhmNjRiNzE2NGI1Njc0MmY0OGEzMzU4Njk1Li4xNDRi
ZjRmZWRhNTBmMGRmNTRhM2YyZjE5Y2UxNDBiZjNmYzdmYTkxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3VGVzdGluZy5tbQpAQCAtNTUs
NiArNTUsMjEgQEAKIAogQGltcGxlbWVudGF0aW9uIFdLV2ViVmlldyAoV0tUZXN0aW5nKQogCist
ICh2b2lkKV9hZGRFdmVudEF0dHJpYnV0aW9uV2l0aFNvdXJjZUlEOih1aW50OF90KXNvdXJjZUlE
IGRlc3RpbmF0aW9uVVJMOihOU1VSTCAqKWRlc3RpbmF0aW9uIHNvdXJjZURlc2NyaXB0aW9uOihO
U1N0cmluZyAqKXNvdXJjZURlc2NyaXB0aW9uIHB1cmNoYXNlcjooTlNTdHJpbmcgKilwdXJjaGFz
ZXIgcmVwb3J0RW5kcG9pbnQ6KE5TVVJMICopcmVwb3J0RW5kcG9pbnQgb3B0aW9uYWxOb25jZToo
TlNTdHJpbmcgKilub25jZQoreworICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
IG1lYXN1cmVtZW50KAorICAgICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlSUQoc291cmNlSUQpLAorICAgICAgICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlU2l0ZShyZXBvcnRFbmRwb2ludCksCisgICAgICAgIFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZShkZXN0aW5hdGlv
biksCisgICAgICAgIHNvdXJjZURlc2NyaXB0aW9uLAorICAgICAgICBwdXJjaGFzZXIKKyAgICAp
OworICAgIGlmIChub25jZSkKKyAgICAgICAgbWVhc3VyZW1lbnQuc2V0RXBoZW1lcmFsU291cmNl
Tm9uY2UoeyBub25jZSB9KTsKKworICAgIF9wYWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dChXVEZNb3ZlKG1lYXN1cmVtZW50KSk7Cit9CisKIC0gKHZvaWQpX3NldFBhZ2VTY2FsZTooQ0dG
bG9hdClzY2FsZSB3aXRoT3JpZ2luOihDR1BvaW50KW9yaWdpbgogewogICAgIF9wYWdlLT5zY2Fs
ZVBhZ2Uoc2NhbGUsIFdlYkNvcmU6OnJvdW5kZWRJbnRQb2ludChvcmlnaW4pKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUu
bW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJzaXRlRGF0YVN0b3Jl
Lm1tCmluZGV4IDY3MmIyMDUzNDQyZTdlODM0YWE0NTNjNDBkMzJjOWQ5MDcwMWUxMDMuLjhjYTI0
MTJlNjhhMTk3NDdhNTU0YTNkODViYzlkMTkzNDBjYzQzMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYnNpdGVEYXRhU3RvcmUubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURhdGFTdG9yZS5tbQpAQCAt
NzMxLDYgKzczMSwxMSBAQCBzdGF0aWMgVmVjdG9yPFdlYktpdDo6V2Vic2l0ZURhdGFSZWNvcmQ+
IHRvV2Vic2l0ZURhdGFSZWNvcmRzKE5TQXJyYXkgKmRhdGFSZWNvcgogICAgIFdlYktpdDo6V2Vi
c2l0ZURhdGFTdG9yZTo6bWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5n
KCk7CiB9CiAKKysgKHZvaWQpX3ByZXZlbnROZXR3b3JrUHJvY2Vzc1N1c3BlbnNpb25Gb3JUZXN0
aW5nCit7CisgICAgV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpwcmV2ZW50U3VzcGVuc2lv
bkZvclRlc3RpbmcoKTsKK30KKwogLSAoQk9PTClfbmV0d29ya1Byb2Nlc3NFeGlzdHMKIHsKICAg
ICByZXR1cm4gISFfd2Vic2l0ZURhdGFTdG9yZS0+bmV0d29ya1Byb2Nlc3NJZkV4aXN0cygpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YnNpdGVEYXRhU3RvcmVQcml2YXRlLmgKaW5kZXggNTVkNTJhNDg1NDgxNjc2NzBhZWVhZTg3ZTEz
Yzk5ZGEyN2ZhOGY5ZS4uYmViNGMyODU4Y2U5ZDA5NzgwZjc2YjgzOThjYWRhNzI2N2U2Mzc4YSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2Vic2l0ZURh
dGFTdG9yZVByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJzaXRlRGF0YVN0b3JlUHJpdmF0ZS5oCkBAIC05NSw2ICs5NSw3IEBAIHR5cGVkZWYgTlNf
T1BUSU9OUyhOU1VJbnRlZ2VyLCBfV0tXZWJzaXRlRGF0YVN0b3JlRmV0Y2hPcHRpb25zKSB7CiAt
ICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NQcmVwYXJlVG9TdXNwZW5kOih2b2lkKF4pKHZvaWQp
KWNvbXBsZXRpb25IYW5kbGVyIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4w
KSk7CiAtICh2b2lkKV9zZW5kTmV0d29ya1Byb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHkgV0tf
QVBJX0FWQUlMQUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKIC0gKHZvaWQpX3NlbmROZXR3
b3JrUHJvY2Vzc0RpZFJlc3VtZSBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUu
MCkpOworKyAodm9pZClfcHJldmVudE5ldHdvcmtQcm9jZXNzU3VzcGVuc2lvbkZvclRlc3Rpbmcg
V0tfQVBJX0FWQUlMQUJMRShtYWNvcyhXS19NQUNfVEJBKSwgaW9zKFdLX0lPU19UQkEpKTsKIC0g
KHZvaWQpX3N5bnRoZXNpemVBcHBJc0JhY2tncm91bmQ6KEJPT0wpYmFja2dyb3VuZCBXS19BUElf
QVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogLSAocGlkX3QpX25ldHdvcmtQcm9j
ZXNzSWRlbnRpZmllciBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwog
KyAodm9pZClfbWFrZU5leHROZXR3b3JrUHJvY2Vzc0xhdW5jaEZhaWxGb3JUZXN0aW5nIFdLX0FQ
SV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbQpp
bmRleCA0NjU2MWQzNDMxNGE3OWQ0MmM1N2U1OWJmNzkyN2FkMWZhNDUxMDQ1Li5iYTViZTcwNzBk
ZTQwZjA2M2QzNmI4OGY5YzRjNGY5ZTBjZWVlOWVlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKIAorI2lt
cG9ydCAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW1wb3J0ICJJbnNwZWN0b3JFeHRl
bnNpb25EZWxlZ2F0ZS5oIgogI2ltcG9ydCAiSW5zcGVjdG9yRXh0ZW5zaW9uVHlwZXMuaCIKICNp
bXBvcnQgIldLRXJyb3IuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdENvbnRleHRNZW51Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdENvbnRleHRNZW51Q2xpZW50LmNwcAppbmRleCAyODU4ZGY2ZjM0
ZDRmYTYyMTIwOWJmMWViMWUxMDg4NWFkMDVlNzU5Li44ODFhYWQ1OTRmNDRjNGZhMDQwY2Y5M2Vh
ZjI1ZDAzMzZkZDdjM2YxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwCkBAIC0yMSw2ICsyMSw3
IEBACiAjaW5jbHVkZSAiV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuaCIKIAogI2luY2x1ZGUgIkFQ
SUNvbnRleHRNZW51Q2xpZW50LmgiCisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCiAjaW5jbHVkZSAi
V2ViQ29udGV4dE1lbnVJdGVtLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Rmlu
ZENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0
RmluZENvbnRyb2xsZXIuY3BwCmluZGV4IGZlZjViYTM4YTY4YzNhYjBhOTJhMTNmMzhiMGI1NWU4
YzM1NDZkNjguLmI3NmZhYjU4ZThjNDA2NmI5N2Y5OGEzYjQ3ZjlmMjBmZTVmYzhlN2YgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZpbmRDb250cm9s
bGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5k
Q29udHJvbGxlci5jcHAKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRGaW5kQ29u
dHJvbGxlci5oIgogCiAjaW5jbHVkZSAiQVBJRmluZENsaWVudC5oIgorI2luY2x1ZGUgIldlYkZp
bmRPcHRpb25zLmgiCiAjaW5jbHVkZSAiV2ViS2l0RW51bVR5cGVzLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlIDxnbGliL2dpMThuLWxpYi5oPgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRCdW5k
bGVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5q
ZWN0ZWRCdW5kbGVDbGllbnQuY3BwCmluZGV4IDkyNjJhODRkZWNlMjViZjBiZGY1YzU5YjQ4ZDAw
MjU4NTJmMzZiYTcuLmFlMzU5MGNhOTI3MDRiYzI5ZDE3YWYzNDY0MzhhM2ZlNWU0MTQxMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEluamVjdGVk
QnVuZGxlQ2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKQEAgLTIwLDcgKzIwLDEyIEBACiAjaW5jbHVk
ZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuaCIKIAor
I2luY2x1ZGUgIkFQSUVycm9yLmgiCiAjaW5jbHVkZSAiQVBJSW5qZWN0ZWRCdW5kbGVDbGllbnQu
aCIKKyNpbmNsdWRlICJBUElOdW1iZXIuaCIKKyNpbmNsdWRlICJBUElTdHJpbmcuaCIKKyNpbmNs
dWRlICJBUElVUkxSZXF1ZXN0LmgiCisjaW5jbHVkZSAiQVBJVVJMUmVzcG9uc2UuaCIKICNpbmNs
dWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYktpdFByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRVUklSZXF1ZXN0UHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCmlu
ZGV4IDU1MTYzNjQ0Nzc1NTc0N2I3MGFjNWU3NmIxZDEwNGQ2MWMwYjVjYTguLjAzNWM5OWJhZjFj
MTZkMjBmNjE2ODhkN2UyOWZkYjRiZTJhOWFlMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRl
ci5jcHAKQEAgLTI5LDYgKzI5LDcgQEAKIAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVk
ZSAiQVBJTm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJBUElOdW1iZXIuaCIKICNp
bmNsdWRlICJXZWJLaXROb3RpZmljYXRpb25Qcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vi
Q29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3Vy
Y2UuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3Vy
Y2UuY3BwCmluZGV4IDZkNmIyM2NlOWI4NTdmNjg5NDZjODk4MzAyMDE1Yzk4NjM0YzllOGQuLjkx
YjkwMjkwMThkNzZhMDI2MTZmOGRjNTM2ODMxOGUxOWVhOTAxNGQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlJlc291cmNlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJjZS5jcHAKQEAg
LTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJSZXNvdXJjZS5oIgogCiAjaW5jbHVk
ZSAiQVBJRGF0YS5oIgorI2luY2x1ZGUgIkFQSVVSTC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJLaXRVUklSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2Vi
UmVzb3VyY2VQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4IDU1NDM0ZDhhMDlmY2ZhYjc5NTRmMmE3ZWRjMjc5
OTZkZTQwOTU2ZGQuLjU0ZjA1M2FiNzNkN2FiYWY5ODUyZmY4MjMwZDY3OGZjZGM5MDE4NGEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcu
Y3BwCkBAIC0yNSw2ICsyNSw3IEBACiAjaW5jbHVkZSAiQVBJQ29udGVudFdvcmxkLmgiCiAjaW5j
bHVkZSAiQVBJRGF0YS5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKKyNpbmNsdWRlICJB
UElOdW1iZXIuaCIKICNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNs
dWRlICJEYXRhUmVmZXJlbmNlLmgiCiAjaW5jbHVkZSAiSW1hZ2VPcHRpb25zLmgiCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFByaW50T3BlcmF0aW9u
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRp
b24uY3BwCmluZGV4IGEyM2VjYzQ1NGMyYTg1NzY1MDcxMmUzNjA0NDZhMDQ5NWUzOTBmYTIuLmQ1
ZWYyY2ZlNmNhZDBmOTkxODExNjRjMTljZTUxOWU4YTJmY2MzMWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24uY3Bw
CkBAIC0yMCw2ICsyMCw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0
UHJpbnRPcGVyYXRpb24uaCIKIAorI2luY2x1ZGUgIkFQSUVycm9yLmgiCiAjaW5jbHVkZSAiV2Vi
S2l0UHJpbnRDdXN0b21XaWRnZXRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpbnRPcGVy
YXRpb25Qcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRlRm9yVGVzdGlu
Z0lPUy5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdQcml2YXRl
Rm9yVGVzdGluZ0lPUy5oCmluZGV4IDAyZjE2Y2EzYWE2NjU1MjI4ZTc1MmU0OGM0NTc0OTdlMGQy
YTkyZGUuLmQzYzA1YjUwMGQ4YjE0ZjcyMTY4YzdkMDU5ODBhZjY2OWJlM2VmNTggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3UHJpdmF0ZUZvclRl
c3RpbmdJT1MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmll
d1ByaXZhdGVGb3JUZXN0aW5nSU9TLmgKQEAgLTg5LDEwICs4OSw2IEBACiAKIC0gKHZvaWQpX3Nl
dERldmljZUhhc0FHWENvbXBpbGVyU2VydmljZUZvclRlc3Rpbmc7CiAKLSNpZiAhVEFSR0VUX09T
X1RWICYmICFUQVJHRVRfT1NfV0FUQ0gKLS0gKHZvaWQpX3NldFVJRXZlbnRBdHRyaWJ1dGlvbkZv
clRlc3Rpbmc6KFVJRXZlbnRBdHRyaWJ1dGlvbiAqKWF0dHJpYnV0aW9uIHdpdGhOb25jZTooTlNT
dHJpbmcgKilub25jZTsKLSNlbmRpZgotCiAtIChOU1N0cmluZyAqKV9zZXJpYWxpemVkU2VsZWN0
aW9uQ2FyZXRCYWNrZ3JvdW5kQ29sb3JGb3JUZXN0aW5nOwogCiBAZW5kCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvaW9zL1dLV2ViVmlld1Rlc3RpbmdJT1MubW0KaW5k
ZXggNWI0MDc3YzQ0YmI1ZmE0ZGY3MDZjMWJkN2VjOTBkZWQzMThkNTk2ZC4uM2QwOTNlMThiNzFk
ZGZjOGQ0ODA1YzkxNGFhMGJlZTM1NjJiMTYxYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2lvcy9XS1dlYlZpZXdUZXN0aW5nSU9TLm1tCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9pb3MvV0tXZWJWaWV3VGVzdGluZ0lPUy5tbQpAQCAtNDcwLDI3ICs0
NzAsNiBAQCBzdGF0aWMgdm9pZCBkdW1wVUlWaWV3KFRleHRTdHJlYW0mIHRzLCBVSVZpZXcgKnZp
ZXcpCiAgICAgICAgIF9wYWdlLT5zZXREZXZpY2VIYXNBR1hDb21waWxlclNlcnZpY2VGb3JUZXN0
aW5nKCk7CiB9CiAKLSNpZiAhUExBVEZPUk0oV0FUQ0hPUykgJiYgIVBMQVRGT1JNKEFQUExFVFYp
Ci0tICh2b2lkKV9zZXRVSUV2ZW50QXR0cmlidXRpb25Gb3JUZXN0aW5nOihVSUV2ZW50QXR0cmli
dXRpb24gKilhdHRyaWJ1dGlvbiB3aXRoTm9uY2U6KE5TU3RyaW5nICopbm9uY2UKLXsKLSNpZiBI
QVZFKFVJX0VWRU5UX0FUVFJJQlVUSU9OKQotICAgIGlmIChhdHRyaWJ1dGlvbikgewotICAgICAg
ICBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBtZWFzdXJlbWVudCgKLSAgICAgICAg
ICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChhdHRyaWJ1dGlv
bi5zb3VyY2VJZGVudGlmaWVyKSwKLSAgICAgICAgICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpTb3VyY2VTaXRlKGF0dHJpYnV0aW9uLnJlcG9ydEVuZHBvaW50KSwKLSAgICAg
ICAgICAgIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZShhdHRyaWJ1dGlvbi5kZXN0aW5hdGlvblVSTCksCi0gICAgICAgICAgICBhdHRy
aWJ1dGlvbi5zb3VyY2VEZXNjcmlwdGlvbiwKLSAgICAgICAgICAgIGF0dHJpYnV0aW9uLnB1cmNo
YXNlcgotICAgICAgICApOwotICAgICAgICBtZWFzdXJlbWVudC5zZXRFcGhlbWVyYWxTb3VyY2VO
b25jZSh7IG5vbmNlIH0pOwotCi0gICAgICAgIF9wYWdlLT5zZXRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChXVEZNb3ZlKG1lYXN1cmVtZW50KSk7Ci0gICAgfSBlbHNlCi0gICAgICAgIF9wYWdlLT5z
ZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChzdGQ6Om51bGxvcHQpOwotI2VuZGlmCi19Ci0jZW5k
aWYKLQogLSAoTlNTdHJpbmcgKilfc2VyaWFsaXplZFNlbGVjdGlvbkNhcmV0QmFja2dyb3VuZENv
bG9yRm9yVGVzdGluZwogewogICAgIFVJQ29sb3IgKmJhY2tncm91bmRDb2xvciA9IFtbX2NvbnRl
bnRWaWV3IHRleHRJbnRlcmFjdGlvbkFzc2lzdGFudF0uc2VsZWN0aW9uVmlldyB2YWx1ZUZvcktl
eVBhdGg6QCJjYXJldFZpZXcuYmFja2dyb3VuZENvbG9yIl07CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDQyYjQ0MzUwNGM4MmMyYjJhZmRlNzUwZDk2Y2E3
MzdkMzNlM2MxNDIuLmY5MmU3NWZjOTcxZjVlNmU0YzNhNDRkYmY3YjczMmE2M2JmOTAzMzYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xNjg3LDcgKzE2
ODcsNyBAQCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlvbiB0b1Vz
ZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oTlNVcwogLSAodm9pZClfZG9BZnRlck5leHRQcmVz
ZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiB7CiAgICAgYXV0byB1
cGRhdGVCbG9ja0NvcHkgPSBtYWtlQmxvY2tQdHIodXBkYXRlQmxvY2spOwotICAgIF9kYXRhLT5f
aW1wbC0+cGFnZSgpLmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0ZUJsb2Nr
Q29weV0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX2RhdGEtPl9p
bXBsLT5wYWdlKCkuY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbdXBkYXRlQmxvY2tD
b3B5XSB7CiAgICAgICAgIGlmICh1cGRhdGVCbG9ja0NvcHkpCiAgICAgICAgICAgICB1cGRhdGVC
bG9ja0NvcHkoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggOWNiM2Y2NWFh
MDQxYWUwZTVjNTgzNDdlYmQ0N2RhNmQ1ZDlhNjJiNC4uOWM4Nzc4YjU5MWMyZTU5Y2NiZTQ3NDky
OTUwNjM1NWFiODIzMDllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0
b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTMxLDYgKzMxLDcg
QEAKICNpbmNsdWRlICJBUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIgogI2luY2x1ZGUgIkFQ
SU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmgiCisjaW5j
bHVkZSAiQVBJU3RyaW5nLmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5o
IgogI2luY2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9u
U2Vzc2lvbk1hY3Jvcy5oIgpAQCAtMjIwNSw5ICsyMjA2LDcgQEAgdm9pZCBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21h
dGlvbjoKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBGdW5jdGlvbjx2b2lkKFdlYlBhZ2VQcm94
eSYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJiwgUmVmPFRha2VTY3JlZW5zaG90
Q2FsbGJhY2s+JiYpPiB0YWtlVmlld1NuYXBzb3QgPSBbXShXZWJQYWdlUHJveHkmIHBhZ2UsIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJiByZWN0LCBSZWY8VGFrZVNjcmVlbnNob3RD
YWxsYmFjaz4mJiBjYWxsYmFjaykgewotICAgICAgICBwYWdlLmNhbGxBZnRlck5leHRQcmVzZW50
YXRpb25VcGRhdGUoW3BhZ2UgPSBtYWtlUmVmKHBhZ2UpLCByZWN0ID0gV1RGTW92ZShyZWN0KSwg
Y2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
bXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpFcnJvcjo6
Tm9uZSkKLSAgICAgICAgICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihJ
bnRlcm5hbEVycm9yKTsKKyAgICAgICAgcGFnZS5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBk
YXRlKFtwYWdlID0gbWFrZVJlZihwYWdlKSwgcmVjdCA9IFdURk1vdmUocmVjdCksIGNhbGxiYWNr
ID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAKICAgICAgICAgICAgIGF1dG8gc25h
cHNob3QgPSBwYWdlLT50YWtlVmlld1NuYXBzaG90KFdURk1vdmUocmVjdCkpOwogICAgICAgICAg
ICAgaWYgKCFzbmFwc2hvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KaW5kZXgg
NWZjZDgxZDE0ZmYyNmMxZjRkYWM3NjU4N2Q4YmI3NWI0NDc2NWU3ZC4uMmQwZDUzOTA2YTdhM2Ri
ZjgzNWMzNjE4ODUxYWZlYWMyYTA3NzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25N
YWMubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIldl
YkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JVSVByb3h5
LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIK
ICNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW1wb3J0IDxDYXJib24vQ2FyYm9u
Lmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQcm9jZXNz
UHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQ
cm94eUNvY29hLm1tCmluZGV4IDgxMjdiYWFiZmZmMDdiYzNmMWQ3ODMxZWMxNWNiMGE3NTFkZTZl
MjAuLjM5NzJhMmFjZWZiZWE4Y2NiOGM0ZDYzZDdhMjk1Y2FlMWUwYmE3MGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1t
CkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNpbXBvcnQg
IlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlckRhdGFSZWZlcmVuY2Uu
aCIKKyNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRleHRDb250
cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxlSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLVHlwZVJlZldyYXBwZXIuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggMDhmZmFkZTk5YWM1NTgzOTBkMTQxMzg5
YjM3NTg0ODY2NzI5N2ViNy4uZGM4MTIyMmZjOTRmMDM5NTE3ODIzZDZiZjQzOGM0MTMzZWZiNjU4
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KQEAg
LTM1LDcgKzM1LDYgQEAKICNpbXBvcnQgIkNvcmVUZXh0SGVscGVycy5oIgogI2ltcG9ydCAiRm9u
dEluZm8uaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKLSNpbXBvcnQgIkdlbmVyaWND
YWxsYmFjay5oIgogI2ltcG9ydCAiSW5zZXJ0VGV4dE9wdGlvbnMuaCIKICNpbXBvcnQgIkxvZ2dp
bmcuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5
Q29vcmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcAppbmRl
eCAwMzhkOWVlMmY0MWNkZWJhNGFlN2I1OTczMTFiNjYzYTU4YjZkNjI5Li5mOTU1NjI4MDE4ODNk
NWE4MzVjZDg5YTU0NjdlNjQ0NTFlNTVlZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdy
YXBoaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBo
aWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtNDE3LDcgKzQx
Nyw3IEBAIGludCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01v
bml0b3I6OndlYlZpZXdEcmF3Q2FsbGJhY2soRHJhCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi12
b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6
c3RhcnQoV1RGOjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNr
KQordm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0
b3I6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3N0YXJ0VGlt
ZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxi
YWNrKTsKQEAgLTQ0MSwxMCArNDQxLDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0
ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OnN0b3AoKQogICAgIGdfc2lnbmFsX2hhbmRsZXJz
X2Rpc2Nvbm5lY3RfYnlfZnVuYyhtX3dlYlBhZ2Uudmlld1dpZGdldCgpLCByZWludGVycHJldF9j
YXN0PGdwb2ludGVyPih3ZWJWaWV3RHJhd0NhbGxiYWNrKSwgdGhpcyk7CiAjZW5kaWYKICAgICBt
X3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWUoKTsKLSAgICBpZiAobV9jYWxsYmFjaykgewotICAg
ICAgICBtX2NhbGxiYWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOwotICAgICAgICBtX2Nh
bGxiYWNrID0gbnVsbHB0cjsKLSAgICB9CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBzdGQ6OmV4
Y2hhbmdlKG1fY2FsbGJhY2ssIG51bGxwdHIpKQorICAgICAgICBjYWxsYmFjaygpOwogfQogCiB2
b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6
ZGlkRHJhdygpCkBAIC00NTgsMTIgKzQ1NiwxMCBAQCB2b2lkIERyYXdpbmdBcmVhUHJveHlDb29y
ZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6ZGlkRHJhdygpCiAgICAgICAgIG1fdGlt
ZXIuc3RhcnRPbmVTaG90KDE2X21zKTsKIH0KIAotdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRp
bmF0ZWRHcmFwaGljczo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9u
PHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3ZvaWQgRHJh
d2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0Ry
YXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAgaWYgKCFt
X3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrRnVu
Y3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0gICAgICAg
IHJldHVybjsKLSAgICB9CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2Vz
cygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2tGdW5jdGlvbigpOwogCiAgICAgaWYgKCFtX2Ry
YXdpbmdNb25pdG9yKQogICAgICAgICBtX2RyYXdpbmdNb25pdG9yID0gbWFrZVVuaXF1ZTxEcmF3
aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I+KG1fd2ViUGFn
ZVByb3h5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVk
R3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3Jk
aW5hdGVkR3JhcGhpY3MuaAppbmRleCBiMjNhNDVmZjdkMzEzMzE3ZDhiYTY0ZmI0MzBlYmJhM2I2
YWRlZjcxLi4wYzE1YWNiNGI4MmFkNmZiYzQ5M2Y1N2ZiNDZmMzZlNmE4YTU3YTIzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdB
cmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGlj
cy5oCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNjYXJkQmFja2luZ1N0
b3JlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhX
VEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOworICAg
IHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYpIG92
ZXJyaWRlOwogCiAgICAgY2xhc3MgRHJhd2luZ01vbml0b3IgewogICAgICAgICBXVEZfTUFLRV9O
T05DT1BZQUJMRShEcmF3aW5nTW9uaXRvcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAt
OTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgICAgICBEcmF3aW5nTW9uaXRvcihXZWJQYWdlUHJv
eHkmKTsKICAgICAgICAgfkRyYXdpbmdNb25pdG9yKCk7CiAKLSAgICAgICAgdm9pZCBzdGFydChX
VEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgICAgICB2b2lk
IHN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICBwcml2YXRlOgogICAgICAgICBzdGF0
aWMgaW50IHdlYlZpZXdEcmF3Q2FsbGJhY2soRHJhd2luZ01vbml0b3IqKTsKQEAgLTEwNSw3ICsx
MDUsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZERyYXcoKTsKIAogICAgICAgICBNb25v
dG9uaWNUaW1lIG1fc3RhcnRUaW1lOwotICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJh
Y2tCYXNlOjpFcnJvcik+IG1fY2FsbGJhY2s7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQoKT4gbV9j
YWxsYmFjazsKICAgICAgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ01vbml0b3I+IG1fdGltZXI7
CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFnZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4MjZjNDE3YzZj
OWJhMWM3ZTZjMmMzMmE2YWIwZjNhYjhkNzJmMGUwLi4zNGNkZGI1YmZlZTMxMTg0ZDlkOTJiMDY4
MWRlZjZhNjRkNzI3Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9EcmF3
aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2luZ0FyZWFQ
cm94eS5oCkBAIC0yNiw4ICsyNiw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVkZSAiQ2Fs
bGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgotI2luY2x1ZGUgIkdlbmVy
aWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1l
c3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAtOTcsNyAr
OTcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2FpdEZvckRpZFVwZGF0ZUFjdGl2
aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSB7IH0KICAgICAKLSAgICB2aXJ0dWFsIHZv
aWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxi
YWNrQmFzZTo6RXJyb3IpPiYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAgdmlydHVh
bCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmKSB7
IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBIaWRlIHRoZSBjb250ZW50IHVudGls
IHRoZSBjdXJyZW50bHkgcGVuZGluZyB1cGRhdGUgYXJyaXZlcy4KICAgICB2aXJ0dWFsIHZvaWQg
aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJhY2suaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCA0Nzk4ZDc3N2JlNmNmZTc1N2ZiZGRjYWQwOTlmOTBkZThjYjRlMmU1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisrKyAvZGV2L251bGwKQEAgLTEsMjEw
ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0Ogot
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
Ci0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
Ci0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgot
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFQSUVycm9y
LmgiCi0jaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVkZSAiQ2Fs
bGJhY2tJRC5oIgotI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRlICJTaGFy
ZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlIDx3dGYvRnVu
Y3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9NYWluVGhy
ZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvVGhyZWFk
aW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBDYWxsYmFja0Jhc2UgOiBwdWJs
aWMgUmVmQ291bnRlZDxDYWxsYmFja0Jhc2U+IHsKLXB1YmxpYzoKLSAgICBlbnVtIGNsYXNzIEVy
cm9yIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgVW5rbm93biwKLSAgICAgICAgUHJvY2Vzc0V4
aXRlZCwKLSAgICAgICAgT3duZXJXYXNJbnZhbGlkYXRlZCwKLSAgICB9OwotCi0gICAgdmlydHVh
bCB+Q2FsbGJhY2tCYXNlKCkKLSAgICB7Ci0gICAgfQotCi0gICAgQ2FsbGJhY2tJRCBjYWxsYmFj
a0lEKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja0lEOyB9Ci0KLSAgICB0ZW1wbGF0ZTxjbGFz
cyBUPgotICAgIFQqIGFzKCkKLSAgICB7Ci0gICAgICAgIGlmIChUOjp0eXBlKCkgPT0gbV90eXBl
KQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPih0aGlzKTsKLQotICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZShFcnJv
cikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgc3RydWN0IFR5cGVUYWcgeyB9OwotICAgIHR5cGVk
ZWYgY29uc3QgVHlwZVRhZyogVHlwZTsKLQotICAgIGV4cGxpY2l0IENhbGxiYWNrQmFzZShUeXBl
IHR5cGUsIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5KQotICAg
ICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fY2FsbGJhY2tJRChDYWxsYmFja0lEOjpn
ZW5lcmF0ZUlEKCkpCi0gICAgICAgICwgbV9hY3Rpdml0eShXVEZNb3ZlKGFjdGl2aXR5KSkKLSAg
ICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlOwotICAgIENhbGxiYWNrSUQg
bV9jYWxsYmFja0lEOwotICAgIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCBtX2Fj
dGl2aXR5OwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIEdlbmVyaWNDYWxs
YmFjayA6IHB1YmxpYyBDYWxsYmFja0Jhc2UgewotcHVibGljOgotICAgIHR5cGVkZWYgRnVuY3Rp
b248dm9pZCAoVC4uLiwgRXJyb3IpPiBDYWxsYmFja0Z1bmN0aW9uOwotCi0gICAgc3RhdGljIFJl
ZjxHZW5lcmljQ2FsbGJhY2s+IGNyZWF0ZShDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJhY2ssIFBy
b2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5ID0gbnVsbHB0cikKLSAg
ICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdlbmVyaWNDYWxsYmFjayhXVEZNb3Zl
KGNhbGxiYWNrKSwgV1RGTW92ZShhY3Rpdml0eSkpKTsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIH5H
ZW5lcmljQ2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fb3JpZ2luVGhyZWFkLnB0
cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0gICAgICAgIEFTU0VSVCghbV9jYWxsYmFjayk7
Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUoVC4uLiBy
ZXR1cm5WYWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX29yaWdpblRocmVhZC5wdHIoKSA9
PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotCi0gICAgICAgIGlmICghbV9jYWxsYmFjaykKLSAgICAg
ICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIGNhbGxiYWNrID0gc3RkOjpleGNoYW5nZSht
X2NhbGxiYWNrLCBzdGQ6Om51bGxvcHQpOwotICAgICAgICBjYWxsYmFjay52YWx1ZSgpKHJldHVy
blZhbHVlLi4uLCBFcnJvcjo6Tm9uZSk7Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2FsbGJh
Y2soKQotICAgIHsKLSAgICAgICAgcGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVlKCk7Ci0g
ICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKEVycm9yIGVycm9yID0gRXJyb3I6OlVua25vd24p
IGZpbmFsCi0gICAgewotICAgICAgICBBU1NFUlQobV9vcmlnaW5UaHJlYWQucHRyKCkgPT0gJlRo
cmVhZDo6Y3VycmVudCgpKTsKLQotICAgICAgICBpZiAoIW1fY2FsbGJhY2spCi0gICAgICAgICAg
ICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBjYWxsYmFjayA9IHN0ZDo6ZXhjaGFuZ2UobV9jYWxs
YmFjaywgc3RkOjpudWxsb3B0KTsKLSAgICAgICAgY2FsbGJhY2sudmFsdWUoKSh0eXBlbmFtZSBz
dGQ6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUoKS4uLiwgZXJyb3IpOwotICAgIH0KLQotcHJp
dmF0ZToKLSAgICBHZW5lcmljQ2FsbGJhY2soQ2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxiYWNrLCBQ
cm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICAgICAgOiBD
YWxsYmFja0Jhc2UodHlwZSgpLCBXVEZNb3ZlKGFjdGl2aXR5KSkKLSAgICAgICAgLCBtX2NhbGxi
YWNrKFdURk1vdmUoY2FsbGJhY2spKQotICAgIHsKLSAgICB9Ci0KLSAgICBmcmllbmQgY2xhc3Mg
Q2FsbGJhY2tCYXNlOwotICAgIHN0YXRpYyBUeXBlIHR5cGUoKQotICAgIHsKLSAgICAgICAgc3Rh
dGljIFR5cGVUYWcgdGFnOwotICAgICAgICByZXR1cm4gJnRhZzsKLSAgICB9Ci0KLSAgICBzdGQ6
Om9wdGlvbmFsPENhbGxiYWNrRnVuY3Rpb24+IG1fY2FsbGJhY2s7Ci0KLSNpZiBBU1NFUlRfRU5B
QkxFRAotICAgIFJlZjxUaHJlYWQ+IG1fb3JpZ2luVGhyZWFkIHsgVGhyZWFkOjpjdXJyZW50KCkg
fTsKLSNlbmRpZgotfTsKLQotdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8PiBWb2lkQ2FsbGJhY2s7
Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIGludmFsaWRhdGVDYWxsYmFja01hcChIYXNo
TWFwPHVpbnQ2NF90LCBUPiYgY2FsbGJhY2tNYXAsIENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3Ip
Ci17Ci0gICAgYXV0byBtYXAgPSBXVEZNb3ZlKGNhbGxiYWNrTWFwKTsKLSAgICBmb3IgKGF1dG8m
IGNhbGxiYWNrIDogbWFwLnZhbHVlcygpKQotICAgICAgICBjYWxsYmFjay0+aW52YWxpZGF0ZShl
cnJvcik7Ci19Ci0KLWNsYXNzIENhbGxiYWNrTWFwIHsKLXB1YmxpYzoKLSAgICBDYWxsYmFja0lE
IHB1dChSZWY8Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAgUkVMRUFT
RV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRvIGNhbGxiYWNrSUQgPSBj
YWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChjYWxsYmFja0lE
LmlzVmFsaWQoKSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX21hcC5jb250YWlucyhjYWxs
YmFja0lELm1faWQpKTsKLSAgICAgICAgbV9tYXAuc2V0KGNhbGxiYWNrSUQubV9pZCwgV1RGTW92
ZShjYWxsYmFjaykpOwotICAgICAgICByZXR1cm4gY2FsbGJhY2tJRDsKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZTx1bnNpZ25lZCBJLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBVPgotICAgIHN0cnVj
dCBHZW5lcmljQ2FsbGJhY2tUeXBlIHsKLSAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBHZW5lcmlj
Q2FsbGJhY2tUeXBlPEkgLSAxLCBVLi4uLCBUPjo6dHlwZSB0eXBlOwotICAgIH07Ci0KLSAgICB0
ZW1wbGF0ZTx0eXBlbmFtZS4uLiBVPgotICAgIHN0cnVjdCBHZW5lcmljQ2FsbGJhY2tUeXBlPDEs
IENhbGxiYWNrQmFzZTo6RXJyb3IsIFUuLi4+IHsKLSAgICAgICAgdHlwZWRlZiBHZW5lcmljQ2Fs
bGJhY2s8VS4uLj4gdHlwZTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4K
LSAgICBDYWxsYmFja0lEIHB1dChGdW5jdGlvbjx2b2lkKFQuLi4pPiYmIGZ1bmN0aW9uLCBQcm9j
ZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICB7Ci0gICAgICAg
IGF1dG8gY2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihUKSwgVC4uLj46
OnR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uKSwgV1RGTW92ZShhY3Rpdml0eSkpOwotICAg
ICAgICByZXR1cm4gcHV0KFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0
ZTxjbGFzcyBUPgotICAgIFJlZlB0cjxUPiB0YWtlKENhbGxiYWNrSUQgY2FsbGJhY2tJRCkKLSAg
ICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxiYWNrSUQuaXNWYWxpZCgpKTsKLSAgICAg
ICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRvIGJhc2Ug
PSBtX21hcC50YWtlKGNhbGxiYWNrSUQubV9pZCk7Ci0gICAgICAgIGlmICghYmFzZSkKLSAgICAg
ICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgIHJldHVybiBhZG9wdFJlZihiYXNlLmxl
YWtSZWYoKS0+YXM8VD4oKSk7Ci0gICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKENhbGxiYWNr
QmFzZTo6RXJyb3IgZXJyb3IpCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChSdW5Mb29w
Ojppc01haW4oKSk7Ci0gICAgICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX21hcCwgZXJyb3Ip
OwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8Q2FsbGJh
Y2tCYXNlPj4gbV9tYXA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lv
bkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
V2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDIzNTEyYWYw
ZjFkNWVhZjFmZWE4ZWZjM2I4NWM5NDJjNmJmNTM2ZmYuLmJlNWU2NmMwZmE1NTMyZGI1ZWIzMzJi
N2I5MDVkMjUyZGY4MGNmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0ZW5zaW9u
Q29udHJvbGxlclByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShJTlNQRUNU
T1JfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFQSUluc3BlY3RvckV4dGVuc2lvbi5oIgorI2lu
Y2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3Rv
clVJRXh0ZW5zaW9uQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9y
VUlFeHRlbnNpb25Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlBhZ2VQ
cm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0
ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0lu
c3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKaW5kZXggODQ1NTBlZDUwM2Fk
M2U1NTRjNTI5ODc4ZDVkMzhiYjRhNjU1YzNmOC4uMWE3ZTI1NWE3Yzg4NWUyZWU2ZjYwNTkyZTMw
YzUzZjAxYmEyYTRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCkBAIC0zMSw5
ICszMSwxMSBAQAogCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgIkFQSU5h
dmlnYXRpb25BY3Rpb24uaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXS0Fy
cmF5LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJXS011dGFi
bGVBcnJheS5oIgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYkZy
YW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSVByb3h5Q2xpZW50LmgiCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0Nv
bnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5z
cGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjBkYzJmYTNlMWY3YjFkZTk2ODk3YjEwYjE2
ZGU3OGYyZmZmMjZiNS4uMjkyODdiYTJmYjcyMTJlMDBkMjZkNDVlN2NhNmFjNTg1ZjNhZGUxYSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9XS0luc3Bl
Y3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3Bl
Y3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjksNyBAQAog
I2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgotI2ltcG9ydCA8
V2ViS2l0L1dLRnJhbWVJbmZvLmg+CisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBvcnQgIldL
SW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW1wb3J0ICJXS0luc3BlY3Rv
cldLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvbi5oPgpAQCAt
NDUsNiArNDUsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJfV0tJbnNw
ZWN0b3JDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvVmVyc2lvbkNo
ZWNrcy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CiAjaW1wb3J0IDx3dGYvV2Vh
a09iakNQdHIuaD4KIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tJbnNwZWN0b3JSZXNvdXJj
ZVNjaGVtZSA9IEAiaW5zcGVjdG9yLXJlc291cmNlIjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQcm94eVdpbi5jcHAgYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL1dlYkluc3BlY3RvclVJUHJveHlX
aW4uY3BwCmluZGV4IDQyNTBiZGRiOWQ4ZTYxY2UwNzY4ZGVmMDFkM2YwMmNiMDVlZWU3YmIuLmVj
Y2Y3M2ZjYmIyZGRkN2MwNjY5Nzk5Njg3ODAzNTMxY2U5OGE1NjcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQcm94eVdpbi5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJbnNwZWN0
b3JVSVByb3h5V2luLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFQSVBhZ2VDb25m
aWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVy
LmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQ
YWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4
IDUyZDE0YmY4MzUzNzllNTYzYzFjZDBkNGM1MGUwYWY2MTBiNmFmMTguLjY3MWFkZDRhYTI3Y2Qx
N2ViYjY3OTBlZmUxNmE1NWExYzE0MzY2ZWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTI1MCw5ICsx
MjUwLDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2VuZFByb2Nlc3NXaWxsU3VzcGVu
ZEltbWluZW50bHlGb3JUZXN0aW5nKCkKICAgICBpZiAoY2FuU2VuZE1lc3NhZ2UoKSkKICAgICAg
ICAgc2VuZFN5bmMoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9jZXNzV2lsbFN1c3BlbmRJ
bW1pbmVudGx5Rm9yVGVzdGluZ1N5bmMoKSwgTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcm9j
ZXNzV2lsbFN1c3BlbmRJbW1pbmVudGx5Rm9yVGVzdGluZ1N5bmM6OlJlcGx5KCksIDApOwogfQot
ICAgIAorCitzdGF0aWMgYm9vbCBzX3N1c3BlbnNpb25QcmV2ZW50ZWRGb3JUZXN0aW5nIHsgZmFs
c2UgfTsKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cHJldmVudFN1c3BlbnNpb25Gb3JUZXN0
aW5nKCkKK3sKKyAgICBzX3N1c3BlbnNpb25QcmV2ZW50ZWRGb3JUZXN0aW5nID0gdHJ1ZTsKK30K
Kwogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZW5kUHJlcGFyZVRvU3VzcGVuZChJc1N1c3Bl
bnNpb25JbW1pbmVudCBpc1N1c3BlbnNpb25JbW1pbmVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmIChzX3N1c3BlbnNpb25QcmV2ZW50
ZWRGb3JUZXN0aW5nKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoKTsKICAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpQcmVwYXJlVG9TdXNw
ZW5kKGlzU3VzcGVuc2lvbkltbWluZW50ID09IElzU3VzcGVuc2lvbkltbWluZW50OjpZZXMpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgMCwgeyB9LCBTaG91bGRTdGFydFByb2Nlc3NUaHJv
dHRsZXJBY3Rpdml0eTo6Tm8pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCmluZGV4IDYyYzgxMjliNDU1ZmVhY2Q1
MGY5NTIyOTNmMjdkN2EzYWY0NDM2ZDcuLjU4YThhOGU5NGJmM2NmZTdiZjhjNzc5Nzk4NWNjMTJi
ZDNhYjY4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0
d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0yMzEsNiArMjMxLDcgQEAgcHVibGljOgogICAgIHZv
aWQgc2VuZFByb2Nlc3NEaWRSZXN1bWUoKSBmaW5hbDsKICAgICBBU0NJSUxpdGVyYWwgY2xpZW50
TmFtZSgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICJOZXR3b3JrUHJvY2VzcyJfczsgfQogICAgIAor
ICAgIHN0YXRpYyB2b2lkIHByZXZlbnRTdXNwZW5zaW9uRm9yVGVzdGluZygpOwogICAgIHZvaWQg
c2VuZFByb2Nlc3NXaWxsU3VzcGVuZEltbWluZW50bHlGb3JUZXN0aW5nKCk7CiAKICAgICB2b2lk
IHJlZ2lzdGVyU2NoZW1lRm9yTGVnYWN5Q3VzdG9tUHJvdG9jb2woY29uc3QgU3RyaW5nJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dlYk5vdGlm
aWNhdGlvbk1hbmFnZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmlj
YXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKaW5kZXggNzYwNjMxYzQ5MGY2
NDMzZjM0MWE0M2JkODgxZDU0NWY0YTliNzNhZS4uOWE3MzRhZGIxZTYyOWE1YmI4NzY1MDM5MzZk
M2I2ZTQyMDkwN2YyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTm90aWZp
Y2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNw
cApAQCAtMjksNiArMjksNyBAQAogI2luY2x1ZGUgIkFQSUFycmF5LmgiCiAjaW5jbHVkZSAiQVBJ
Tm90aWZpY2F0aW9uUHJvdmlkZXIuaCIKICNpbmNsdWRlICJBUElTZWN1cml0eU9yaWdpbi5oIgor
I2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbi5o
IgogI2luY2x1ZGUgIldlYk5vdGlmaWNhdGlvbk1hbmFnZXJNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYlBhZ2VQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJl
YVByb3h5LmgKaW5kZXggZTMyYmY3YjM1OTI2ZmM4YWIzMGU5YjQ1ZTAyNDUwYjBmZTZhMTJjZS4u
N2I2ZDUwZTMyZmUwN2MxYzUyODNlOTdkMTE3YjZkYWViMThmMDlmZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0yNiw2ICsyNiw3IEBACiAj
cHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkRyYXdpbmdBcmVhUHJveHkuaCIKKyNpbmNsdWRlICJQ
cm9jZXNzVGhyb3R0bGVyLmgiCiAjaW5jbHVkZSAiUmVtb3RlTGF5ZXJUcmVlSG9zdC5oIgogI2lu
Y2x1ZGUgIlRyYW5zYWN0aW9uSUQuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0FuaW1hdGlvbkZyYW1l
UmF0ZS5oPgpAQCAtNjcsNyArNjgsNyBAQCBwcml2YXRlOgogICAgIAogICAgIC8vIEZvciBub3cs
IGFsbCBjYWxsYmFja3MgYXJlIGNhbGxlZCBiZWZvcmUgY29tbWl0dGluZyBjaGFuZ2VzLCBiZWNh
dXNlIHRoYXQncyB3aGF0IHRoZSBvbmx5IGNsaWVudCByZXF1aXJlcy4KICAgICAvLyBPbmNlIHdl
IGhhdmUgb3RoZXIgY2FsbGJhY2tzLCBpdCBtYXkgbWFrZSBzZW5zZSB0byBoYXZlIGEgYmVmb3Jl
LWNvbW1pdC9hZnRlci1jb21taXQgb3B0aW9uLgotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3Vy
aW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSBv
dmVycmlkZTsKKyAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248
dm9pZCgpPiYmKSBvdmVycmlkZTsKIAogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGRpZENo
YW5nZVZpZXdFeHBvc2VkUmVjdCgpIG92ZXJyaWRlOwpAQCAtMTE5LDcgKzEyMCw3IEBAIHByaXZh
dGU6CiAgICAgVHJhbnNhY3Rpb25JRCBtX3RyYW5zYWN0aW9uSURGb3JVbmhpZGluZ0NvbnRlbnQ7
CiAgICAgQWN0aXZpdHlTdGF0ZUNoYW5nZUlEIG1fYWN0aXZpdHlTdGF0ZUNoYW5nZUlEIHsgQWN0
aXZpdHlTdGF0ZUNoYW5nZUFzeW5jaHJvbm91cyB9OwogCi0gICAgQ2FsbGJhY2tNYXAgbV9jYWxs
YmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lELCBzdGQ6OnBhaXI8RnVuY3Rpb248dm9pZCgp
Piwgc3RkOjp1bmlxdWVfcHRyPFByb2Nlc3NUaHJvdHRsZXI6OkJhY2tncm91bmRBY3Rpdml0eT4+
PiBtX2NhbGxiYWNrczsKIAogICAgIFJldGFpblB0cjxXS09uZVNob3REaXNwbGF5TGlua0hhbmRs
ZXI+IG1fZGlzcGxheUxpbmtIYW5kbGVyOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggYjRlNGM2YzBkYTgwMzI2MTI5NWJkZGFmZDQ1
NWI3Y2E5OWM4NTNhMC4uZmY2NTRmYWU3OTE1MzYzNGE3ODgwZWViMGQxYzk3ZWM5NjFlMTE1MyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0KQEAg
LTEyNyw3ICsxMjcsNiBAQCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpSZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5KFdlYlBhZ2VQcm94eSYgdwogCiBSZW1vdGVMYXllclRy
ZWVEcmF3aW5nQXJlYVByb3h5Ojp+UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eSgpCiB7
Ci0gICAgbV9jYWxsYmFja3MuaW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldh
c0ludmFsaWRhdGVkKTsKICAgICBwcm9jZXNzKCkucmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3Nh
Z2VzOjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjptZXNzYWdlUmVjZWl2ZXJOYW1l
KCksIG1faWRlbnRpZmllcik7CiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQpAQCAtMjY5LDgg
KzI2OCw4IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0TGF5
ZXJUcmVlKGNvbnN0IFJlbW90ZUxheWVyVHJlZVRyYW5zCiAgICAgICAgIG1fd2ViUGFnZVByb3h5
LmRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKG1pbGVzdG9uZXMpOwogCiAgICAgZm9yIChhdXRvJiBj
YWxsYmFja0lEIDogbGF5ZXJUcmVlVHJhbnNhY3Rpb24uY2FsbGJhY2tJRHMoKSkgewotICAgICAg
ICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2U8Vm9pZENhbGxiYWNrPihjYWxs
YmFja0lEKSkKLSAgICAgICAgICAgIGNhbGxiYWNrLT5wZXJmb3JtQ2FsbGJhY2soKTsKKyAgICAg
ICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50YWtlKGNhbGxiYWNrSUQpLmZpcnN0
KQorICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9CiB9CiAKQEAgLTQ3MSwxNCArNDcwLDE2
IEBAIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6d2FpdEZvckRpZFVwZGF0
ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0CiAgICAgfQogfQogCi12b2lkIFJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpG
dW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQor
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJp
bmdEcmF3aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFja0Z1bmN0aW9uKQogewogICAgIGlm
ICghbV93ZWJQYWdlUHJveHkuaGFzUnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjYWxsYmFj
a0Z1bmN0aW9uKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAg
ICAgICBjYWxsYmFja0Z1bmN0aW9uKCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBz
ZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKG1fY2Fs
bGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrRnVuY3Rpb24pLCBwcm9jZXNzKCkudGhyb3R0bGVy
KCkuYmFja2dyb3VuZEFjdGl2aXR5KCJSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpk
aXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nIl9zKSkpKTsKKyAgICBhdXRvIGNhbGxiYWNrSUQg
PSBDYWxsYmFja0lEOjpnZW5lcmF0ZUlEKCk7CisgICAgbV9jYWxsYmFja3Muc2V0KGNhbGxiYWNr
SUQsIHN0ZDo6bWFrZV9wYWlyKFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3MoKS50
aHJvdHRsZXIoKS5iYWNrZ3JvdW5kQWN0aXZpdHkoIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVh
UHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmciX3MpLm1vdmVUb1VuaXF1ZVB0cigp
KSk7CisgICAgc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFkZFRyYW5zYWN0aW9uQ2FsbGJh
Y2tJRChjYWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcAppbmRleCBhMjUyOGMyYzBlMGQ3ZTEzMDk4NjE2
YjMxNTA4ODY2ZWY5ODQ3NjEzLi5lODU2MDZhZDA1MjQ1ZDViMWExMDNmMjJiMGNiMDYwZDYwNDk4
MTZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcApA
QCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldlYkNvbnRl
eHRDbGllbnQuaCIKIAorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQb29sLmgiCiAKIG5hbWVzcGFjZSBXZWJLaXQgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQ29va2llTWFuYWdlclByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaAppbmRleCAzZGNmNTRhZDdjOGJhYjFiNWFiNmE2
ZWMyOGY1YTFmODcxYTQxOTFjLi5iOWRjM2I3NDlmODRjYzI5N2MzYWRhNjY0YjA3Y2IyNmY0MTFh
NTQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2Vy
UHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJv
eHkuaApAQCAtMjYsOSArMjYsOSBAQAogI3ByYWdtYSBvbmNlCiAKICNpbmNsdWRlICJBUElPYmpl
Y3QuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJNZXNzYWdlUmVj
ZWl2ZXIuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0U3VwcGxlbWVudC5oIgorI2luY2x1ZGUgPFdl
YkNvcmUvSFRUUENvb2tpZUFjY2VwdFBvbGljeS5oPgogI2luY2x1ZGUgPHBhbC9TZXNzaW9uSUQu
aD4KICNpbmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9IYXNoTWFwLmg+CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKaW5kZXggMzkxYjAyNzM2MjgzNDFl
ZGFhODgzMGIzNzRmMGZiMTMxMjQwMTcyYS4uZGM4Y2Q4NTRlNTEwMjQ1YTAzMGFjYmVlNDhhZDJj
MTk5Zjk0NmQyZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQ
cm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaApAQCAt
MjcsNyArMjcsNiBAQAogCiAjaW5jbHVkZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiRnJhbWVM
b2FkU3RhdGUuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbmNsdWRlICJXZWJG
cmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0ZyYW1lTG9hZGVyVHlwZXMuaD4KQEAgLTQxLDYgKzQwLDcgQEAKIAog
bmFtZXNwYWNlIEFQSSB7CiBjbGFzcyBOYXZpZ2F0aW9uOworY2xhc3MgVVJMOwogfQogCiBuYW1l
c3BhY2UgSVBDIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4
IGYxOTA5MjI1MDljN2RhYjRiYzFkMmRlMjNkNDNmZGNiNGU4MjIwZWMuLjFjOTc0NWQ0YWI5ZTlh
YmM4ZjJlMzM3OTU5MzUzZDM5YjVkNTJiNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcApAQCAtNTIsNiArNTIsNyBAQAogI2luY2x1ZGUgIkFQSVBvbGljeUNsaWVu
dC5oIgogI2luY2x1ZGUgIkFQSVJlc291cmNlTG9hZENsaWVudC5oIgogI2luY2x1ZGUgIkFQSVNl
Y3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAj
aW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKICNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCiAjaW5j
bHVkZSAiQVBJV2Vic2l0ZVBvbGljaWVzLmgiCkBAIC00NDYzLDkgKzQ0NjQsNyBAQCB2b2lkIFdl
YlBhZ2VQcm94eTo6Zm9yY2VSZXBhaW50KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjYWxs
YmFjaykKICAgICBtX2RyYXdpbmdBcmVhLT53YWl0Rm9yQmFja2luZ1N0b3JlVXBkYXRlT25OZXh0
UGFpbnQoKTsKIAogICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUGFnZTo6Rm9y
Y2VSZXBhaW50KCksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gbWFrZVJlZigqdGhpcyksIGNhbGxi
YWNrID0gV1RGTW92ZShjYWxsYmFjayldICgpIG11dGFibGUgewotICAgICAgICBjYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSAoYXV0
bykgbXV0YWJsZSB7Ci0gICAgICAgICAgICBjYWxsYmFjaygpOwotICAgICAgICB9KTsKKyAgICAg
ICAgY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXVEZNb3ZlKGNhbGxiYWNrKSk7CiAg
ICAgfSk7CiB9CiAKQEAgLTk3NTYsMTIgKzk3NTUsMTAgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmNs
ZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKCkKICAgICBzZW5kKE1lc3NhZ2VzOjpXZWJQYWdlOjpD
bGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcigpKTsKIH0KIAotdm9pZCBXZWJQYWdlUHJveHk6OmNh
bGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxsYmFj
a0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFjaykKK3ZvaWQgV2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlKEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKLSAg
ICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkgfHwgIW1fZHJhd2luZ0FyZWEpIHsKLSAgICAgICAg
Y2FsbGJhY2soQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFoYXNSdW5uaW5nUHJvY2VzcygpIHx8ICFtX2Ry
YXdpbmdBcmVhKQorICAgICAgICByZXR1cm4gY2FsbGJhY2soKTsKIAogICAgIG1fZHJhd2luZ0Fy
ZWEtPmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGTW92ZShjYWxsYmFjaykpOwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAppbmRleCAzYmRjZGZkZTE1NzJhMDVl
MjQ0MjY5NzY2MjQzM2ZmMmU5NjgwNGE1Li42MWIwMGViNzA5ZTg0ZWU4M2EwNjE3YzMwNTNkYzVm
ZWU3ZmJkZTk3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaApAQCAtNjYs
NiArNjYsNyBAQAogI2luY2x1ZGUgIldlYkNvbnRleHRNZW51SXRlbURhdGEuaCIKICNpbmNsdWRl
ICJXZWJDb3JlQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJXZWJEYXRhTGlzdFN1Z2dlc3Rp
b25zRHJvcGRvd24uaCIKKyNpbmNsdWRlICJXZWJFdmVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1l
UHJveHkuaCIKICNpbmNsdWRlICJXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzLmgiCiAjaW5jbHVk
ZSAiV2ViUGFnZURpYWdub3N0aWNMb2dnaW5nQ2xpZW50LmgiCkBAIC0xOTQsNiArMTk1LDcgQEAg
aW50ZXJmYWNlIElEM0QxMURldmljZTE7CiAjZW5kaWYKIAogbmFtZXNwYWNlIEFQSSB7CitjbGFz
cyBBcnJheTsKIGNsYXNzIEF0dGFjaG1lbnQ7CiBjbGFzcyBDb250ZW50V29ybGQ7CiBjbGFzcyBD
b250ZXh0TWVudUNsaWVudDsKQEAgLTIwNCwxMyArMjA2LDE5IEBAIGNsYXNzIEZpbmRNYXRjaGVz
Q2xpZW50OwogY2xhc3MgRm9ybUNsaWVudDsKIGNsYXNzIEZ1bGxzY3JlZW5DbGllbnQ7CiBjbGFz
cyBIaXN0b3J5Q2xpZW50OworY2xhc3MgSGl0VGVzdFJlc3VsdDsKIGNsYXNzIEljb25Mb2FkaW5n
Q2xpZW50OwogY2xhc3MgTG9hZGVyQ2xpZW50OwogY2xhc3MgTmF2aWdhdGlvbjsKK2NsYXNzIE5h
dmlnYXRpb25BY3Rpb247CiBjbGFzcyBOYXZpZ2F0aW9uQ2xpZW50OworY2xhc3MgTmF2aWdhdGlv
blJlc3BvbnNlOworY2xhc3MgUGFnZUNvbmZpZ3VyYXRpb247CiBjbGFzcyBQb2xpY3lDbGllbnQ7
CiBjbGFzcyBSZXNvdXJjZUxvYWRDbGllbnQ7CitjbGFzcyBTZXJpYWxpemVkU2NyaXB0VmFsdWU7
CiBjbGFzcyBVSUNsaWVudDsKK2NsYXNzIFVSTDsKIGNsYXNzIFVSTFJlcXVlc3Q7CiB9CiAKQEAg
LTMzMSw3ICszMzksMTAgQEAgdHlwZWRlZiBIV05EIFBsYXRmb3JtVmlld1dpZGdldDsKIG5hbWVz
cGFjZSBXZWJLaXQgewogCiBjbGFzcyBBdWRpb1Nlc3Npb25Sb3V0aW5nQXJiaXRyYXRvclByb3h5
OworY2xhc3MgQXV0aGVudGljYXRpb25DaGFsbGVuZ2VQcm94eTsKK2NsYXNzIENhbGxiYWNrSUQ7
CiBjbGFzcyBEcmF3aW5nQXJlYVByb3h5OworY2xhc3MgRG93bmxvYWRQcm94eTsKIGNsYXNzIEdh
bWVwYWREYXRhOwogY2xhc3MgTWVkaWFVc2FnZU1hbmFnZXI7CiBjbGFzcyBOYXRpdmVXZWJHZXN0
dXJlRXZlbnQ7CkBAIC0zNTUsNiArMzY2LDcgQEAgY2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0Owog
Y2xhc3MgV2ViQmFja0ZvcndhcmRMaXN0SXRlbTsKIGNsYXNzIFdlYkNvbnRleHRNZW51UHJveHk7
CiBjbGFzcyBXZWJFZGl0Q29tbWFuZFByb3h5OworY2xhc3MgV2ViRnJhbWVQcm94eTsKIGNsYXNz
IFdlYkZ1bGxTY3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBQbGF5YmFja1Nlc3Npb25NYW5hZ2Vy
UHJveHk7CiBjbGFzcyBVc2VyTWVkaWFQZXJtaXNzaW9uUmVxdWVzdFByb3h5OwpAQCAtMzYyLDYg
KzM3NCw3IEBAIGNsYXNzIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFdlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OwogY2xhc3MgV2ViQmFja0ZvcndhcmRDYWNoZTsK
IGNsYXNzIFdlYkRldmljZU9yaWVudGF0aW9uVXBkYXRlUHJvdmlkZXJQcm94eTsKK2NsYXNzIFdl
Ykluc3BlY3RvclVJUHJveHk7CiBjbGFzcyBXZWJLZXlib2FyZEV2ZW50OwogY2xhc3MgV2ViTW91
c2VFdmVudDsKIGNsYXNzIFdlYk5hdmlnYXRpb25TdGF0ZTsKQEAgLTQwNiw2ICs0MTksNyBAQCBz
dHJ1Y3QgV2ViTmF2aWdhdGlvbkRhdGFTdG9yZTsKIHN0cnVjdCBXZWJQb3B1cEl0ZW07CiBzdHJ1
Y3QgV2ViU3BlZWNoU3ludGhlc2lzVm9pY2U7CiAKK2VudW0gY2xhc3MgRmluZE9wdGlvbnMgOiB1
aW50MTZfdDsKIGVudW0gY2xhc3MgSW1hZ2VBbmFseXNpc1R5cGUgOiB1aW50OF90OwogZW51bSBj
bGFzcyBUYXBIYW5kbGluZ1Jlc3VsdCA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRleHRSZWNvZ25p
dGlvblVwZGF0ZVJlc3VsdCA6IHVpbnQ4X3Q7CkBAIC00MTUsNiArNDI5LDggQEAgZW51bSBjbGFz
cyBRdWlja0xvb2tQcmV2aWV3QWN0aXZpdHkgOiB1aW50OF90OwogZW51bSBjbGFzcyBVbmRvT3JS
ZWRvIDogYm9vbDsKIGVudW0gY2xhc3MgV2ViQ29udGVudE1vZGUgOiB1aW50OF90OwogCit0eXBl
ZGVmIHVpbnQzMl90IFNuYXBzaG90T3B0aW9uczsKKwogI2lmIEhBVkUoVklTSUJJTElUWV9QUk9Q
QUdBVElPTl9WSUVXKQogdXNpbmcgTGF5ZXJIb3N0aW5nQ29udGV4dElEID0gdWludDMyX3Q7CiAj
ZW5kaWYKQEAgLTE2MTQsNyArMTYzMCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIEZvciB0ZXN0aW5n
CiAgICAgdm9pZCBjbGVhcldoZWVsRXZlbnRUZXN0TW9uaXRvcigpOwotICAgIHZvaWQgY2FsbEFm
dGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmKTsKKyAgICB2b2lkIGNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUo
RnVuY3Rpb248dm9pZCgpPiYmKTsKIAogICAgIHZvaWQgZGlkUmVhY2hMYXlvdXRNaWxlc3RvbmUo
T3B0aW9uU2V0PFdlYkNvcmU6OkxheW91dE1pbGVzdG9uZT4pOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKaW5kZXggODYxMDZkMTFlZDRiYmY4OWM2MzU3NDk4
YmM5OWJjM2VmN2JhNTViZC4uM2FmYmRhMzVjYTg0ZTJlNTdlZTQ5MjY5MjVkODhiNjg3ZTMyNmFh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcApAQCAtMzYs
NiArMzYsOCBAQAogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElQYWdl
Q29uZmlndXJhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29uZmlndXJhdGlvbi5o
IgorI2luY2x1ZGUgIkFQSVN0cmluZy5oIgorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNp
bmNsdWRlICJBdXhpbGlhcnlQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJEb3dubG9hZFBy
b3h5LmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eU1lc3NhZ2VzLmgiCkBAIC01NSw2ICs1Nyw3
IEBACiAjaW5jbHVkZSAiVGV4dENoZWNrZXIuaCIKICNpbmNsdWRlICJVSUdhbWVwYWQuaCIKICNp
bmNsdWRlICJVSUdhbWVwYWRQcm92aWRlci5oIgorI2luY2x1ZGUgIldLQVBJQ2FzdC5oIgogI2lu
Y2x1ZGUgIldLQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lv
bi5oIgogI2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJQcm9jZXNzUG9vbC5oCmluZGV4IDA1MzU5YTdkZDQxMTA1ODExODdkMGYwOTdlNWFm
ZDYyNzM1NWNhOGEuLjc0NjZiMDFhMGMxOTBiZmNjM2E4N2Q0MmQ2YWE1MGEzMjI2MDczMmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaApAQCAtMjksNyArMjksNiBA
QAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgogI2luY2x1ZGUgIkFQSVByb2Nlc3NQb29sQ29uZmln
dXJhdGlvbi5oIgogI2luY2x1ZGUgIkdQVVByb2Nlc3NQcm94eS5oIgotI2luY2x1ZGUgIkdlbmVy
aWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIkhpZGRlblBhZ2VUaHJvdHRsaW5nQXV0b0luY3JlYXNl
c0NvdW50ZXIuaCIKICNpbmNsdWRlICJNZXNzYWdlUmVjZWl2ZXIuaCIKICNpbmNsdWRlICJNZXNz
YWdlUmVjZWl2ZXJNYXAuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lv
cy9WaWV3R2VzdHVyZUNvbnRyb2xsZXJJT1MubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9p
b3MvVmlld0dlc3R1cmVDb250cm9sbGVySU9TLm1tCmluZGV4IGQxNGRkNGM3MmI4MWU0NTdmMTZj
MGQ5OThkYmY3Mjg0YjI4NWQzN2QuLjlhZDBkNzEyMzZhMDdjYTZkMjIxNzA4YTBlNWVlZTE0NDYx
M2FlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXJJT1MubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdH
ZXN0dXJlQ29udHJvbGxlcklPUy5tbQpAQCAtMzcxLDkgKzM3MSw5IEBAIHZvaWQgVmlld0dlc3R1
cmVDb250cm9sbGVyOjplbmRTd2lwZUdlc3R1cmUoV2ViQmFja0ZvcndhcmRMaXN0SXRlbSogdGFy
Z2V0SXRlbSwKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgfQogCi0gICAgICAgIGRyYXdp
bmdBcmVhLT5kaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFtwYWdlSUQsIGdlc3R1cmVJRF0g
KENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpIHsKKyAgICAgICAgZHJhd2luZ0FyZWEtPmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoW3BhZ2VJRCwgZ2VzdHVyZUlEXSB7CiAgICAgICAgICAg
ICBpZiAoYXV0byBnZXN0dXJlQ29udHJvbGxlciA9IGNvbnRyb2xsZXJGb3JHZXN0dXJlKHBhZ2VJ
RCwgZ2VzdHVyZUlEKSkKLSAgICAgICAgICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+d2lsbENv
bW1pdFBvc3RTd2lwZVRyYW5zaXRpb25MYXllclRyZWUoZXJyb3IgPT0gQ2FsbGJhY2tCYXNlOjpF
cnJvcjo6Tm9uZSk7CisgICAgICAgICAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPndpbGxDb21t
aXRQb3N0U3dpcGVUcmFuc2l0aW9uTGF5ZXJUcmVlKHRydWUpOwogICAgICAgICB9KTsKICAgICAg
ICAgZHJhd2luZ0FyZWEtPmhpZGVDb250ZW50VW50aWxQZW5kaW5nVXBkYXRlKCk7CiAgICAgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50
ZXJhY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tCmluZGV4IGQ2NzQ4ZTEzMGRjNDgwOGQ3NWMxYTgxMzc5ZTA5NTY0NWIwY2E1
YmIuLjYyOTQ0MDQ2NzE2NDY2ZmFlY2M0YWVlODcwNzk2NmUyMDMzZjA0ZjMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlv
bi5tbQpAQCAtNDk4Niw3ICs0OTg2LDcgQEAgc3RhdGljIHZvaWQgc2VsZWN0aW9uQ2hhbmdlZFdp
dGhUb3VjaChXS0NvbnRlbnRWaWV3ICp2aWV3LCBjb25zdCBXZWJDb3JlOjpJbnRQb2kKIHsKICAg
ICBfaWdub3JlU2VsZWN0aW9uQ29tbWFuZEZhZGVDb3VudCsrOwogICAgIF9wYWdlLT5zY2hlZHVs
ZUZ1bGxFZGl0b3JTdGF0ZVVwZGF0ZSgpOwotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKFt3ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYp
XSAoYXV0bykgeworICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt3
ZWFrU2VsZiA9IFdlYWtPYmpDUHRyPFdLQ29udGVudFZpZXc+KHNlbGYpXSB7CiAgICAgICAgIGlm
IChhdXRvIHN0cm9uZ1NlbGYgPSB3ZWFrU2VsZi5nZXQoKSkKICAgICAgICAgICAgIHN0cm9uZ1Nl
bGYtPl9pZ25vcmVTZWxlY3Rpb25Db21tYW5kRmFkZUNvdW50LS07CiAgICAgfSk7CkBAIC05MTAw
LDcgKzkxMDAsNyBAQCBzdGF0aWMgVmVjdG9yPFdlYkNvcmU6OkludFNpemU+IHNpemVzT2ZQbGFj
ZWhvbGRlckVsZW1lbnRzVG9JbnNlcnRXaGVuRHJvcHBpbmdJdAogICAgICAgICBSRUxFQVNFX0xP
RyhEcmFnQW5kRHJvcCwgIkRyYWcgaW50ZXJhY3Rpb24gd2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5p
bWF0b3IgKGFuaW1hdGlvbiBjb21wbGV0aW9uIGJsb2NrIGZpcmVkKSIpOwogICAgICAgICBwYWdl
LT5kcmFnQ2FuY2VsbGVkKCk7CiAgICAgICAgIGlmIChhdXRvIGNvbXBsZXRpb24gPSBwcm90ZWN0
ZWRTZWxmLT5fZHJhZ0Ryb3BJbnRlcmFjdGlvblN0YXRlLnRha2VEcmFnQ2FuY2VsU2V0RG93bkJs
b2NrKCkpIHsKLSAgICAgICAgICAgIHBhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRh
dGUoW2NvbXBsZXRpb24sIHByb3RlY3RlZFNlbGZdIChXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJy
b3IpIHsKKyAgICAgICAgICAgIHBhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUo
W2NvbXBsZXRpb24sIHByb3RlY3RlZFNlbGZdIHsKICAgICAgICAgICAgICAgICBjb21wbGV0aW9u
KCk7CiAgICAgICAgICAgICAgICAgcHJvdGVjdGVkU2VsZi0+X2lzQW5pbWF0aW5nRHJhZ0NhbmNl
bCA9IE5POwogICAgICAgICAgICAgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaApp
bmRleCBlMjI4MmViM2Y5ZmFmNGY2MDFlMmMwYzY0MWNhNzZmYWY4ZjhjYjRjLi40YjkxYjlhZjg1
YThhYTljNmM0Mjk5ZDg3NDJhOTBmYjE4MDA3YzZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5LmgKQEAgLTUyLDcgKzUyLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbW1pdFRyYW5z
aWVudFpvb20oZG91YmxlIHNjYWxlLCBXZWJDb3JlOjpGbG9hdFBvaW50IG9yaWdpbikgb3ZlcnJp
ZGU7CiAKICAgICB2b2lkIHdhaXRGb3JEaWRVcGRhdGVBY3Rpdml0eVN0YXRlKEFjdGl2aXR5U3Rh
dGVDaGFuZ2VJRCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3
aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+
JiYpIG92ZXJyaWRlOwogICAgIHZvaWQgZGlzcGF0Y2hQcmVzZW50YXRpb25DYWxsYmFja3NBZnRl
ckZsdXNoaW5nTGF5ZXJzKGNvbnN0IFZlY3RvcjxDYWxsYmFja0lEPiYpIGZpbmFsOwogCiAgICAg
dm9pZCB3aWxsU2VuZFVwZGF0ZUdlb21ldHJ5KCkgb3ZlcnJpZGU7CkBAIC03Niw3ICs3Niw3IEBA
IHByaXZhdGU6CiAgICAgLy8gVGhlIGxhc3QgbWF4bWl1bSBzaXplIGZvciBzaXplLXRvLWNvbnRl
bnQgYXV0by1zaXppbmcgd2Ugc2VudCB0byB0aGUgd2ViIHByb2Nlc3MuCiAgICAgV2ViQ29yZTo6
SW50U2l6ZSBtX2xhc3RTZW50U2l6ZVRvQ29udGVudEF1dG9TaXplTWF4aW11bVNpemU7CiAKLSAg
ICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKKyAgICBIYXNoTWFwPENhbGxiYWNrSUQsIEZ1bmN0
aW9uPHZvaWQoKT4+IG1fY2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9u
RHJhd2luZ0FyZWFQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENv
cmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCmluZGV4IGU2MTZhZmZkZTM2ZGY0YTAxZjhi
YmJiZmYwOGEzMGNlN2ZkMTRiNTkuLjJhNzZjYWI1ZmFlNWQ5M2Y1ZWFlNWI3OTc0ZWEzYmY3ZTUz
N2RmMDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVB
bmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5Lm1tCkBAIC01MCw3ICs1MCw2
IEBAIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OlRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkoV2ViUGFnZVByCiAKIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdB
cmVhUHJveHk6On5UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICBt
X2NhbGxiYWNrcy5pbnZhbGlkYXRlKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxp
ZGF0ZWQpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRl
dmljZVNjYWxlRmFjdG9yRGlkQ2hhbmdlKCkKQEAgLTIwMywyMSArMjAyLDIzIEBAIHZvaWQgVGls
ZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6Y29tbWl0VHJhbnNpZW50Wm9vbShkb3Vi
bGUgc2NhbGUsIEZsb2F0CiAgICAgc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkNvbW1pdFRy
YW5zaWVudFpvb20oc2NhbGUsIG9yaWdpbikpOwogfQogCi12b2lkIFRpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpGdW5j
dGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJiBjYWxsYmFjaykKK3ZvaWQgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2lu
ZyhGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3dlYlBhZ2VQcm94
eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrKENhbGxiYWNrQmFzZTo6
RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOworICAgICAgICBjYWxsYmFjaygpOwogICAgICAg
ICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFkZFRy
YW5zYWN0aW9uQ2FsbGJhY2tJRChtX2NhbGxiYWNrcy5wdXQoV1RGTW92ZShjYWxsYmFjayksIG51
bGxwdHIpKSk7CisgICAgYXV0byBjYWxsYmFja0lEID0gQ2FsbGJhY2tJRDo6Z2VuZXJhdGVJRCgp
OworICAgIG1fY2FsbGJhY2tzLnNldChjYWxsYmFja0lELCBXVEZNb3ZlKGNhbGxiYWNrKSk7Cisg
ICAgc2VuZChNZXNzYWdlczo6RHJhd2luZ0FyZWE6OkFkZFRyYW5zYWN0aW9uQ2FsbGJhY2tJRChj
YWxsYmFja0lEKSk7CiB9CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eTo6ZGlzcGF0Y2hQcmVzZW50YXRpb25DYWxsYmFja3NBZnRlckZsdXNoaW5nTGF5ZXJzKGNvbnN0
IFZlY3RvcjxDYWxsYmFja0lEPiYgY2FsbGJhY2tJRHMpCiB7CiAgICAgZm9yIChhdXRvJiBjYWxs
YmFja0lEIDogY2FsbGJhY2tJRHMpIHsKLSAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2Nh
bGxiYWNrcy50YWtlPFZvaWRDYWxsYmFjaz4oY2FsbGJhY2tJRCkpCi0gICAgICAgICAgICBjYWxs
YmFjay0+cGVyZm9ybUNhbGxiYWNrKCk7CisgICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9j
YWxsYmFja3MudGFrZShjYWxsYmFja0lEKSkKKyAgICAgICAgICAgIGNhbGxiYWNrKCk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2Ny
ZWVuV2luZG93Q29udHJvbGxlci5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVs
bFNjcmVlbldpbmRvd0NvbnRyb2xsZXIuaAppbmRleCBkMTk3MjkyNjU1YzYxYmE2YzZiYjM4YTEz
ODg1N2Y0ZGU1NjcxYzk4Li5iZDUzOWQyMmMxNTJhNDQxOTg1Yzg3MDYzODA5YmEyYjI0NTNkYTBj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxT
Y3JlZW5XaW5kb3dDb250cm9sbGVyLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpZiBFTkFCTEUoRlVM
TFNDUkVFTl9BUEkpICYmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCA8QXBwS2l0L0FwcEtpdC5o
PgotI2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW1wb3J0IDx3dGYvTmFrZWRQdHIuaD4K
ICNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8d3RmL1JldGFpblB0ci5oPgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0KaW5k
ZXggYzAzN2Q2NWIyYmMwZjNjMGExZWExMjZlZmQyMTgyN2RhMjFhYWJiOS4uNzQxNDUyMTgyYWIy
MTExZDZhZGFkZWQzNmVlOTBiMDJjZWE0MzYxMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCkBAIC0zMCw2ICszMCw3IEBACiAKICNp
bXBvcnQgIkFQSUZpbmRDbGllbnQuaCIKICNpbXBvcnQgIkFQSUZpbmRNYXRjaGVzQ2xpZW50Lmgi
CisjaW1wb3J0ICJXZWJGaW5kT3B0aW9ucy5oIgogI2ltcG9ydCAiV2ViSW1hZ2UuaCIKICNpbXBv
cnQgIldlYlBhZ2VQcm94eS5oIgogI2ltcG9ydCA8YWxnb3JpdGhtPgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJL
aXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNmJhZjk0MWE4ODBjZmRi
NmI3YTYyNThiYTBlYWZmYjQ2ZjZiZDk2Mi4uNWMwMzIwNTA5ZTVjNjUwZGU2Y2IxZTBmNjY4MGQ4
ZjkxZmQ0ODYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCkBAIC0xNjg4LDcgKzE2ODgsNiBAQAogCQlCQzE0REY5RjEyMEI2MzVGMDA4MjZD
MEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkMxNERGOUQxMjBCNjM1RjAwODI2QzBDIC8qIFdLQnVuZGxlU2Ny
aXB0V29ybGQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQzE0RTEwQTEyMEI5MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNs
aWVudC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMx
NEUxMDgxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQuaCAq
LzsgfTsKIAkJQkMxNzc0NjUxMThCOUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTc3NDY0MTE4QjlG
RjQwMDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkMxNzc1M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVy
aWNDYWxsYmFjay5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkMxNzc1M0UxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oICovOyB9Owog
CQlCQzFBN0M1ODExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFBN0M1NzExMzZFMTlDMDBG
QjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVyLmggKi87IH07CiAJCUJDMUI0MTk4MTFENDFENTcwMDEx
RThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFCNDE5NzExRDQxRDU3MDAxMUU4REQgLyogV0tCdW5kbGVQ
YWdlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCUJDMUJFMUUwMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQkUxREUx
MkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi87IH07CkBAIC01Mjcy
LDcgKzUyNzEsNiBAQAogCQlCQzE0RTEwNzEyMEI5MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5k
bGVQYWdlRm9ybUNsaWVudC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMxNEUxMDgxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZv
cm1DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSW5qZWN0ZWRCdW5k
bGVQYWdlRm9ybUNsaWVudC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzE3NzQ2
NDExOEI5RkY0MDA3RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jLmg7IHBhdGggPSBXS1BhZ2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
Ci0JCUJDMTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR2VuZXJpY0NhbGxiYWNrLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDMUE3QzU3MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1
bmNoZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gUHJvY2Vzc0xhdW5jaGVy
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUI0MTk3MTFENDFENTcwMDExRThE
RCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLQnVuZGxlUGFnZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
QkMxQkUxREUxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdlYkdlb2xvY2F0aW9uQ2xpZW50Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDA1NCw3ICsxMDA1Miw2IEBACiAJCQkJMUE2NDIy
RkMxMkREMDhGRTAwQ0FBRTJDIC8qIERyYXdpbmdBcmVhUHJveHkubWVzc2FnZXMuaW4gKi8sCiAJ
CQkJMUFFMDBENUUxODMxNzkyMTAwMDg3REQ3IC8qIEZyYW1lTG9hZFN0YXRlLmNwcCAqLywKIAkJ
CQkxQUUwMEQ1RjE4MzE3OTIxMDAwODdERDcgLyogRnJhbWVMb2FkU3RhdGUuaCAqLywKLQkJCQlC
QzE3NzUzRTExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggKi8sCiAJCQkJOUVD
NTMyQTIyNDQ3RkJBRDAwMjE1MjE2IC8qIEdlb2xvY2F0aW9uSWRlbnRpZmllci5oICovLAogCQkJ
CUJDMDZGNDQ5MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0
TWFuYWdlclByb3h5LmNwcCAqLywKIAkJCQlCQzA2RjQ0ODEyREJEMUY1MDAyRDc4REUgLyogR2Vv
bG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXJQcm94eS5oICovLApAQCAtMTIwNjksNyAr
MTIwNjYsNiBAQAogCQkJCUNEMTlEMkVBMjA0NjQwNkYwMDE3MDc0QSAvKiBGdWxsc2NyZWVuVG91
Y2hTZWNoZXVyaXN0aWMuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQTkzREIwMjJGOEJDRjQwMDQ5
MEE2OSAvKiBGdWxsc2NyZWVuVG91Y2hTZWNoZXVyaXN0aWNQYXJhbWV0ZXJzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQk1MTVCRTFCMzFENTkwMkREMDBERDdDNjggLyogR2FtZXBhZERhdGEuaCBpbiBI
ZWFkZXJzICovLAotCQkJCUJDMTc3NTNGMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJh
Y2suaCBpbiBIZWFkZXJzICovLAogCQkJCTlFQzUzMkEzMjQ0N0ZCQUQwMDIxNTIxNiAvKiBHZW9s
b2NhdGlvbklkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDMDZGNDJGMTJEQkI5QjYw
MDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25SZXF1ZXN0TWFuYWdlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkMwNkY0NEExMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlz
c2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVy
VHJlZUNvbnRleHQubW0gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQppbmRleCAwNzg2Y2M1MzMxZjM1MDkx
ZWViYTU1NTkwNzA3N2EzMTU3NjgwOGU4Li40NWI1OGQ2M2JjMDk0ZDBmMjBkY2U5MjY2ZmY5YjY3
NGUzOWYwYWJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4dC5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dC5tbQpAQCAtMjYsNyArMjYsNiBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1wb3J0ICJS
ZW1vdGVMYXllclRyZWVDb250ZXh0LmgiCiAKLSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgog
I2ltcG9ydCAiR3JhcGhpY3NMYXllckNBUmVtb3RlLmgiCiAjaW1wb3J0ICJQbGF0Zm9ybUNBTGF5
ZXJSZW1vdGUuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlQ29sbGVjdGlvbi5o
Igo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>436241</attachid>
            <date>2021-08-23 15:20:26 -0700</date>
            <delta_ts>2021-09-21 16:39:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210823152025.patch</filename>
            <type>text/plain</type>
            <size>58759</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgxNDczCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDhkYjA1Mzc4ZWQwMDYwZDk4
NDEzZmNmNzMzYjYyNjNkOWMzMjdiNzQuLmFjZDQyMTgxNDQ0YzZmZDQ3ZDY5ZWFmMDRjZjhiOWUw
M2UxZWY4Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDgtMjMgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAg
ICAgVGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3lu
Y1JlcGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5j
b2RlZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29k
ZSB3aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1
dCB3ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0
aW9uLgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9B
UElJY29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVj
dG9yRXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VD
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJ
L0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0
aENvbmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmll
dyBfaW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0Zv
clBhaW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJO
ZXh0UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlv
bi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0Nv
Y29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9X
ZWJWaWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgor
ICAgICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdE
cmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQu
CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNv
bnRyb2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJ
bnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0
aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0Fy
ZWFQcm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0
OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAg
ICAgICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVu
dC5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAg
ICAgICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dl
YlBhZ2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBh
aW50KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2Vu
dGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAg
ICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29u
dHJvbGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjpl
bmRTd2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0lu
dGVyYWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmlu
Z0NhbGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29u
dGVudFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0
b3I6XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5n
QXJlYVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25E
cmF3aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6Cisg
ICAgICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVy
Rmx1c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xp
ZW50Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
Q29udGV4dC5tbToKKwogMjAyMS0wOC0yMyAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBw
bGUuY29tPgogCiAgICAgICAgIFByZXNlcnZlIGNvbG9yIHNwYWNlIHdoZW4gZ2V0dGluZyBjdXJy
ZW50IGNvbG9yIGluIERpc3BsYXlMaXN0OjpEcmF3R2x5cGhzUmVjb3JkZXIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhbGxiYWNrSUQuaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L0NhbGxiYWNrSUQuaAppbmRleCAwYWQzMjEzZjE3ZjQwZTkwOGRiNmM2ZTRlYzk1NzE4ZTdmZjJm
MTI5Li42MmQ1NzQwOWIxMzIwMmQ3ZGY3OGY0MDMzM2M3NWJiYjc2NDEwN2IyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmgKKysrIGIvU291cmNlL1dlYktpdC9T
aGFyZWQvQ2FsbGJhY2tJRC5oCkBAIC05OCw3ICs5OCw2IEBAIHByaXZhdGU6CiAgICAgICAgIEFT
U0VSVChuZXdJRCAhPSBIYXNoVHJhaXRzPHVpbnQ2NF90Pjo6ZW1wdHlWYWx1ZSgpKTsKICAgICB9
CiAKLSAgICBmcmllbmQgY2xhc3MgQ2FsbGJhY2tNYXA7CiAgICAgdGVtcGxhdGUgPHR5cGVuYW1l
IENhbGxiYWNrVHlwZT4gZnJpZW5kIGNsYXNzIFNwZWNpZmljQ2FsbGJhY2tNYXA7CiAgICAgZnJp
ZW5kIGNsYXNzIE9wdGlvbmFsQ2FsbGJhY2tJRDsKICAgICBmcmllbmQgc3RydWN0IFdURjo6Q2Fs
bGJhY2tJREhhc2g7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9SZW1vdGVMYXll
clRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVk
L1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCmluZGV4IDljZjI3
ZTFmNGM0ODVmOTI1YWUyZDhkZjFhNzcxYTFkMTgyODU3MmIuLjE2NzcwZWNmZjY3MDM0ZDU1ODU5
YjFhNDljM2Q2ZDBmNjIzYmEwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1Jl
bW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5o
CkBAIC0yNSwxMCArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJDYWxsYmFj
a0lELmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbmZvLmgiCiAjaW5jbHVkZSAiRHluYW1pY1Zp
ZXdwb3J0U2l6ZVVwZGF0ZS5oIgogI2luY2x1ZGUgIkVkaXRvclN0YXRlLmgiCi0jaW5jbHVkZSAi
R2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUFuaW1hdGlvblJlbW90ZS5o
IgogI2luY2x1ZGUgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAjaW5jbHVkZSAiVHJhbnNh
Y3Rpb25JRC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0
dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElBdHRhY2htZW50LmgK
aW5kZXggYWZhOTI5Y2YwOTNkMjJlYzc2YWQ4NmZkYTAzYjUwMWJiZmQyOWRjMy4uZmJhYWU5NzMw
NWFmZDVhYzY3NTEyZTZjNzJlMGFhYjE2Y2E0YjU4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCkBAIC0yOCw3ICsyOCw2IEBACiAjaWYgRU5BQkxFKEFU
VEFDSE1FTlRfRUxFTUVOVCkKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2luY2x1ZGUgIkdl
bmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJSWNvbkxvYWRpbmdDbGllbnQuaAppbmRleCBiMWIxMWY1YzUxYTJhNDY4
ZWEwYWNhNTJlMjYzNGYwZWJmYWEyMWE1Li41NmZhODc3ZjFlODkxYWM3MThiOGIxYTRkZjIwOWY1
ZDRiZGIxZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSWNv
bkxvYWRpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSWNv
bkxvYWRpbmdDbGllbnQuaApAQCAtMjUsMTkgKzI1LDIwIEBACiAKICNwcmFnbWEgb25jZQogCi0j
aW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9MaW5rSWNvbi5o
PgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9GdW5j
dGlvbi5oPgogCiBuYW1lc3BhY2UgQVBJIHsKIAorY2xhc3MgRGF0YTsKKwogY2xhc3MgSWNvbkxv
YWRpbmdDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgogICAg
IHZpcnR1YWwgfkljb25Mb2FkaW5nQ2xpZW50KCkgeyB9CiAKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0
TG9hZERlY2lzaW9uRm9ySWNvbihjb25zdCBXZWJDb3JlOjpMaW5rSWNvbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBUEk6OkRhdGEqKT4mJik+JiYgY29t
cGxldGlvbkhhbmRsZXIpCisgICAgdmlydHVhbCB2b2lkIGdldExvYWREZWNpc2lvbkZvckljb24o
Y29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRGF0YSopPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKICAgICB7CiAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwogICAgIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRlbnNpb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbi5jcHAKaW5kZXgg
ODYyNjcyMDg4ZWIyOTcyZjZkNTVlMjM2Y2U3ZjMwOWM3MmQ1ZDE3NS4uMTg2ZDZiMjQ2YjZjMTY3
NmVkOTYzNjgxYWU2MGEzYzM3NmUxZTk5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbi5jcHAKQEAgLTI4LDYgKzI4LDcgQEAK
IAogI2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKIAorI2luY2x1ZGUgIkFQSVNlcmlh
bGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckV4dGVuc2lvblR5cGVzLmgi
CiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuaCIKICNp
bmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRldGFpbHMuaD4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMmRiMGY1NjljYjIyNTA1ODllN2VjMTYwNThkYWZi
NWE2YTRlN2JmMC4uMmVmMmU3ZTcwYTM5MDJhMzU3OGE0ZDdkMDc0NjkzNjAzYzQyYTM0NCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJSW5zcGVjdG9yQ29uZmlndXJhdGlvbi5o
IgorI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVkZSAiV0tQYWdlLmgiCiAj
aW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJIaXRUZXN0UmVzdWx0RGF0YS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5kZXggYzc3YTNhNjIxM2Ix
NjhjZDdjOTYwNDg0NjI4MWFjMzVmMzU5NGM4OS4uNTNhZDJlMjU5MDRkNzQxMzFmNGU0Y2E5Yzk0
YjZlMTRkN2EwNTdiMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuY3Bw
CkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiQVBJT3BlblBhbmVsUGFyYW1ldGVycy5oIgog
I2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiQVBJUG9saWN5Q2xp
ZW50LmgiCisjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCiAjaW5jbHVkZSAi
QVBJU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiQVBJVUlDbGllbnQuaCIKICNpbmNsdWRlICJB
UElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgiCkBAIC0zMDA1LDggKzMwMDYsOCBAQCB2b2lkIFdL
UGFnZUNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKFdLUGFnZVJlZiBwYWdlUmVmKQogdm9pZCBX
S1BhZ2VDYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdLUGFnZVJlZiBwYWdlUmVmLCB2
b2lkKiBjb250ZXh0LCBXS1BhZ2VQb3N0UHJlc2VudGF0aW9uVXBkYXRlRnVuY3Rpb24gY2FsbGJh
Y2spCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwotICAgIHRvSW1wbChwYWdlUmVmKS0+Y2Fs
bEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29udGV4dCwgY2FsbGJhY2tdKFdlYktpdDo6
Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAgICBjYWxsYmFjayhlcnJvciAhPSBX
ZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgPyB0b0FQSShBUEk6OkVycm9yOjpjcmVh
dGUoKS5wdHIoKSkgOiAwLCBjb250ZXh0KTsKKyAgICB0b0ltcGwocGFnZVJlZiktPmNhbGxBZnRl
ck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbnRleHQsIGNhbGxiYWNrXSgpIHsKKyAgICAgICAg
Y2FsbGJhY2sobnVsbHB0ciwgY29udGV4dCk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1dGVkU3RyaW5nLm1tCmlu
ZGV4IDA4MGVhYjExMDc1NDVkNGM5OTQxMWUyOTI5NDRjMGEyNWM4NWI5NGIuLjY2MjY4MGE1ZjRh
NTk1NmJmNjY2ZjdjYWY3ZmYxNjE3NDFiNDNlNTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0KKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmluZy5tbQpAQCAtNDIsNiAr
NDIsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBvcnQgPFVJS2l0U1BJLmg+
CisjaW1wb3J0IDxXZWJDb3JlL1dBS0FwcEtpdFN0dWJzLmg+CiAjZW5kaWYKIAogTlNTdHJpbmcg
KiBjb25zdCBOU1JlYWRBY2Nlc3NVUkxEb2N1bWVudE9wdGlvbiA9IEAiUmVhZEFjY2Vzc1VSTCI7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tCcm93c2lu
Z0NvbnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCBlMDcxMjZhYmJkOTQxMWFmZGMx
MmIyYWJmZDA4YTRkMTA3MjQyMTkzLi5mNTNjOTJhNzE0YmE2M2ExYjVkZWJhNmFmN2ZjZjc1NTlk
NDAzNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tC
cm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0KQEAgLTMyLDYgKzMyLDcg
QEAKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIgogI2ltcG9ydCAiUmVtb3RlT2Jq
ZWN0UmVnaXN0cnkuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lzdHJ5TWVzc2FnZXMuaCIK
KyNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJbnRlcm5h
bC5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJuYWwuaCIKICNpbXBvcnQg
IldLQnJvd3NpbmdDb250ZXh0R3JvdXBJbnRlcm5hbC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oCmluZGV4IDExYmQxZjVkMjI3
NDMyMjA5ZGFjMDgxYTZlYjIyZmNjODQzNjFkNzAuLjk2MjkwMTZiY2Y1ZWJhMjNiYjFiNTY2MTIz
MzMzNGZkNjEzYzZlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS0Vycm9ySW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tFcnJvckludGVybmFsLmgKQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgIldLRXJy
b3JQcml2YXRlLmgiCiAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KLSNpbXBvcnQgIkdlbmVy
aWNDYWxsYmFjay5oIgogCiBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRlTlNFcnJvcihXS0Vycm9y
Q29kZSwgTlNFcnJvciogdW5kZXJseWluZ0Vycm9yID0gbmlsKTsKIE5TU3RyaW5nICpsb2NhbGl6
ZWREZXNjcmlwdGlvbkZvckVycm9yQ29kZShXS0Vycm9yQ29kZSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCAzZjFkNDY0OGI3OTU3NTU0
M2NlNzMyNDEzYWYxMTkyNDBlYjYwZTA4Li40ZmFkMTkwNjQwMzA4ZTBmNWNlZTFjNWMxZTkzNDRj
MmU0NzE5OWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXcubW0KQEAgLTExNjMsNyArMTE2Myw5IEBAIHN0YXRpYyBXS01lZGlhUGxheWJhY2tTdGF0
ZSB0b1dLTWVkaWFQbGF5YmFja1N0YXRlKFdlYktpdDo6TWVkaWFQbGF5YmFja1N0YXRlIG1lCiAt
ICh2b2lkKXRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOihXS1NuYXBzaG90Q29uZmlndXJh
dGlvbiAqKXNuYXBzaG90Q29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFuZGxlcjoodm9pZCheKShD
b2NvYUltYWdlICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIKIHsKICAgICBUSFJPV19J
Rl9TVVNQRU5ERUQ7CisjaWYgVVNFKEFQUEtJVCkKICAgICBjb25zdGV4cHIgYm9vbCBzbmFwc2hv
dEZhaWxlZFRyYWNlVmFsdWUgPSBmYWxzZTsKKyNlbmRpZgogICAgIHRyYWNlUG9pbnQoVGFrZVNu
YXBzaG90U3RhcnQpOwogCiAgICAgQ0dSZWN0IHJlY3RJblZpZXdDb29yZGluYXRlcyA9IHNuYXBz
aG90Q29uZmlndXJhdGlvbiAmJiAhQ0dSZWN0SXNOdWxsKHNuYXBzaG90Q29uZmlndXJhdGlvbi5y
ZWN0KSA/IHNuYXBzaG90Q29uZmlndXJhdGlvbi5yZWN0IDogc2VsZi5ib3VuZHM7CkBAIC0xMjM4
LDEzICsxMjQwLDcgQEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRlIHRvV0tNZWRpYVBsYXli
YWNrU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjYWxs
U25hcHNob3RSZWN0ID0gV1RGTW92ZShjYWxsU25hcHNob3RSZWN0KSwgaGFuZGxlcl0oV2ViS2l0
OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSBtdXRhYmxlIHsKLSAgICAgICAgaWYgKGVycm9y
ICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewotICAgICAgICAgICAgdHJh
Y2VQb2ludChUYWtlU25hcHNob3RFbmQsIHNuYXBzaG90RmFpbGVkVHJhY2VWYWx1ZSk7Ci0gICAg
ICAgICAgICBoYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9yVW5rbm93bikuZ2V0KCkp
OwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KKyAgICBfcGFnZS0+Y2FsbEFmdGVy
TmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY2FsbFNuYXBzaG90UmVjdCA9IFdURk1vdmUoY2FsbFNu
YXBzaG90UmVjdCksIGhhbmRsZXJdKCkgbXV0YWJsZSB7CiAgICAgICAgIC8vIENyZWF0ZSBhbiBp
bXBsaWNpdCB0cmFuc2FjdGlvbiB0byBlbnN1cmUgYSBjb21taXQgd2lsbCBoYXBwZW4gbmV4dC4K
ICAgICAgICAgW0NBVHJhbnNhY3Rpb24gYWN0aXZhdGVdOwogCkBAIC0xNTE0LDcgKzE1MTAsNyBA
QCBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRvRmluZE9wdGlvbnMoV0tG
aW5kQ29uZmlndXJhdGlvbiAqY29uZmlndQogICAgIGF1dG8gdXBkYXRlQmxvY2tDb3B5ID0gbWFr
ZUJsb2NrUHRyKHVwZGF0ZUJsb2NrKTsKIAogICAgIFJldGFpblB0cjxXS1dlYlZpZXc+IHN0cm9u
Z1NlbGYgPSBzZWxmOwotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRl
KFt1cGRhdGVCbG9ja0NvcHksIHdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9u
Z1NlbGZdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgeworICAgIF9wYWdlLT5j
YWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9ja0NvcHksIHdpdGhvdXRX
YWl0aW5nRm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9uZ1NlbGZdIHsKICAgICAgICAgaWYgKCF1cGRh
dGVCbG9ja0NvcHkpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9yRXh0ZW5zaW9uLm1tCmlu
ZGV4IDQ2NTYxZDM0MzE0YTc5ZDQyYzU3ZTU5YmY3OTI3YWQxZmE0NTEwNDUuLmJhNWJlNzA3MGRl
NDBmMDYzZDM2Yjg4ZjljNGM0ZjllMGNlZWU5ZWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW0KKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4dGVuc2lvbi5tbQpAQCAt
MjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRFTlNJT05TKQogCisjaW1w
b3J0ICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbXBvcnQgIkluc3BlY3RvckV4dGVu
c2lvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJJbnNwZWN0b3JFeHRlbnNpb25UeXBlcy5oIgogI2lt
cG9ydCAiV0tFcnJvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwCmluZGV4IDI4NThkZjZmMzRk
NGZhNjIxMjA5YmYxZWIxZTEwODg1YWQwNWU3NTkuLjg4MWFhZDU5NGY0NGM0ZmEwNDBjZjkzZWFm
MjVkMDMzNmRkN2MzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdENvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHAKQEAgLTIxLDYgKzIxLDcg
QEAKICNpbmNsdWRlICJXZWJLaXRDb250ZXh0TWVudUNsaWVudC5oIgogCiAjaW5jbHVkZSAiQVBJ
Q29udGV4dE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJBUElTdHJpbmcuaCIKICNpbmNsdWRlICJX
ZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRGaW5k
Q29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRG
aW5kQ29udHJvbGxlci5jcHAKaW5kZXggZmVmNWJhMzhhNjhjM2FiMGE5MmExM2YzOGIwYjU1ZThj
MzU0NmQ2OC4uYjc2ZmFiNThlOGM0MDY2Yjk3Zjk4YTNiNDdmOWYyMGZlNWZjOGU3ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0RmluZENvbnRyb2xs
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdEZpbmRD
b250cm9sbGVyLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdEZpbmRDb250
cm9sbGVyLmgiCiAKICNpbmNsdWRlICJBUElGaW5kQ2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRmlu
ZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJLaXRFbnVtVHlwZXMuaCIKICNpbmNsdWRlICJXZWJL
aXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4tbGliLmg+CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRs
ZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRJbmpl
Y3RlZEJ1bmRsZUNsaWVudC5jcHAKaW5kZXggOTI2MmE4NGRlY2UyNWJmMGJkZjVjNTliNDhkMDAy
NTg1MmYzNmJhNy4uYWUzNTkwY2E5MjcwNGJjMjlkMTdhZjM0NjQzOGEzZmU1ZTQxNDEzNiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0SW5qZWN0ZWRC
dW5kbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dl
YktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMjAsNyArMjAsMTIgQEAKICNpbmNsdWRl
ICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5oIgogCisj
aW5jbHVkZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJBUElJbmplY3RlZEJ1bmRsZUNsaWVudC5o
IgorI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIkFQSVN0cmluZy5oIgorI2luY2x1
ZGUgIkFQSVVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBUElVUkxSZXNwb25zZS5oIgogI2luY2x1
ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldl
YktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5jcHAKaW5k
ZXggNTUxNjM2NDQ3NzU1NzQ3YjcwYWM1ZTc2YjFkMTA0ZDYxYzBiNWNhOC4uMDM1Yzk5YmFmMWMx
NmQyMGY2MTY4OGQ3ZTI5ZmRiNGJlMmE5YWUwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlkZXIuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlmaWNhdGlvblByb3ZpZGVy
LmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRl
ICJBUElOb3RpZmljYXRpb25Qcm92aWRlci5oIgorI2luY2x1ZGUgIkFQSU51bWJlci5oIgogI2lu
Y2x1ZGUgIldlYktpdE5vdGlmaWNhdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJD
b250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQcml2YXRlLmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJj
ZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXZWJSZXNvdXJj
ZS5jcHAKaW5kZXggNmQ2YjIzY2U5Yjg1N2Y2ODk0NmM4OTgzMDIwMTVjOTg2MzRjOWU4ZC4uOTFi
OTAyOTAxOGQ3NmEwMjYxNmY4ZGM1MzY4MzE4ZTE5ZWE5MDE0ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3VyY2UuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlJlc291cmNlLmNwcApAQCAt
MjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNlLmgiCiAKICNpbmNsdWRl
ICJBUElEYXRhLmgiCisjaW5jbHVkZSAiQVBJVVJMLmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94
eS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3QuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJS
ZXNvdXJjZVByaXZhdGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2ds
aWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggNTU0MzRkOGEwOWZjZmFiNzk1NGYyYTdlZGMyNzk5
NmRlNDA5NTZkZC4uNTRmMDUzYWI3M2Q3YWJhZjk4NTJmZjgyMzBkNjc4ZmNkYzkwMTg0YSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5j
cHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJBUElDb250ZW50V29ybGQuaCIKICNpbmNs
dWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgorI2luY2x1ZGUgIkFQ
SU51bWJlci5oIgogI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1
ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJJbWFnZU9wdGlvbnMuaCIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0UHJpbnRPcGVyYXRpb24u
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlv
bi5jcHAKaW5kZXggYTIzZWNjNDU0YzJhODU3NjUwNzEyZTM2MDQ0NmEwNDk1ZTM5MGZhMi4uZDVl
ZjJjZmU2Y2FkMGY5OTE4MTE2NGMxOWNlNTE5ZThhMmZjYzMxYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJhdGlvbi5jcHAK
QEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRQ
cmludE9wZXJhdGlvbi5oIgogCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJXZWJL
aXRQcmludEN1c3RvbVdpZGdldFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcmludE9wZXJh
dGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDQyYjQ0MzUwNGM4MmMyYjJhZmRlNzUw
ZDk2Y2E3MzdkMzNlM2MxNDIuLmY5MmU3NWZjOTcxZjVlNmU0YzNhNDRkYmY3YjczMmE2M2JmOTAz
MzYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCkBAIC0xNjg3
LDcgKzE2ODcsNyBAQCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFjZUxheW91dERpcmVjdGlv
biB0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oTlNVcwogLSAodm9pZClfZG9BZnRlck5l
eHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0ZUJsb2NrCiB7CiAgICAg
YXV0byB1cGRhdGVCbG9ja0NvcHkgPSBtYWtlQmxvY2tQdHIodXBkYXRlQmxvY2spOwotICAgIF9k
YXRhLT5faW1wbC0+cGFnZSgpLmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3VwZGF0
ZUJsb2NrQ29weV0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgX2Rh
dGEtPl9pbXBsLT5wYWdlKCkuY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbdXBkYXRl
QmxvY2tDb3B5XSB7CiAgICAgICAgIGlmICh1cGRhdGVCbG9ja0NvcHkpCiAgICAgICAgICAgICB1
cGRhdGVCbG9ja0NvcHkoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggOWNi
M2Y2NWFhMDQxYWUwZTVjNTgzNDdlYmQ0N2RhNmQ1ZDlhNjJiNC4uOWM4Nzc4YjU5MWMyZTU5Y2Ni
ZTQ3NDkyOTUwNjM1NWFiODIzMDllYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTMxLDYg
KzMxLDcgQEAKICNpbmNsdWRlICJBUElBdXRvbWF0aW9uU2Vzc2lvbkNsaWVudC5oIgogI2luY2x1
ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElPcGVuUGFuZWxQYXJhbWV0ZXJzLmgi
CisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2Jq
ZWN0cy5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNpbmNsdWRlICJXZWJBdXRv
bWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgpAQCAtMjIwNSw5ICsyMjA2LDcgQEAgdm9pZCBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6
QXV0b21hdGlvbjoKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBGdW5jdGlvbjx2b2lkKFdlYlBh
Z2VQcm94eSYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJiwgUmVmPFRha2VTY3Jl
ZW5zaG90Q2FsbGJhY2s+JiYpPiB0YWtlVmlld1NuYXBzb3QgPSBbXShXZWJQYWdlUHJveHkmIHBh
Z2UsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJiByZWN0LCBSZWY8VGFrZVNjcmVl
bnNob3RDYWxsYmFjaz4mJiBjYWxsYmFjaykgewotICAgICAgICBwYWdlLmNhbGxBZnRlck5leHRQ
cmVzZW50YXRpb25VcGRhdGUoW3BhZ2UgPSBtYWtlUmVmKHBhZ2UpLCByZWN0ID0gV1RGTW92ZShy
ZWN0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FsbGJhY2tCYXNlOjpFcnJvciBl
cnJvcikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IgIT0gQ2FsbGJhY2tCYXNlOjpF
cnJvcjo6Tm9uZSkKLSAgICAgICAgICAgICAgICBBU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUihJbnRlcm5hbEVycm9yKTsKKyAgICAgICAgcGFnZS5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0
aW9uVXBkYXRlKFtwYWdlID0gbWFrZVJlZihwYWdlKSwgcmVjdCA9IFdURk1vdmUocmVjdCksIGNh
bGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAKICAgICAgICAgICAgIGF1
dG8gc25hcHNob3QgPSBwYWdlLT50YWtlVmlld1NuYXBzaG90KFdURk1vdmUocmVjdCkpOwogICAg
ICAgICAgICAgaWYgKCFzbmFwc2hvdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFjLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0K
aW5kZXggNWZjZDgxZDE0ZmYyNmMxZjRkYWM3NjU4N2Q4YmI3NWI0NDc2NWU3ZC4uMmQwZDUzOTA2
YTdhM2RiZjgzNWMzNjE4ODUxYWZlYWMyYTA3NzU0ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNl
c3Npb25NYWMubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBv
cnQgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCiAjaW1wb3J0ICJXZWJJbnNwZWN0b3JV
SVByb3h5LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCiAjaW1wb3J0ICJXZWJQYWdlUHJv
eHkuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW1wb3J0IDxDYXJib24v
Q2FyYm9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQ
cm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IGRjYWRmOGU5MmJiNDhkMDA1NmY3ZDIwMWM5NWQ4YmRh
OTZhOGE1ZWUuLjIxZjVmNjNhN2Q0NGYzNmVlMzMwZjEzYjcwZDM5MGQzYzhiYTVkYjAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29h
Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNv
Y29hLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJPYmpDT2JqZWN0R3JhcGguaCIKICNp
bXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlNoYXJlZEJ1ZmZlckRhdGFSZWZl
cmVuY2UuaCIKKyNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tCcm93c2luZ0NvbnRl
eHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0SGFuZGxl
SW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVHlwZVJlZldyYXBwZXIuaCIKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1tIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggNDk1NTQ5ZTM4MmRmMDVlYjA4
ZTgwZGZlMjAzNzYxYmEzMDk5YThjMi4uNmJiZTUyODdjYzQ2NDY0MzU2ZDMwYzhlNWQ5ZWM3OTkz
ZDQ0ZWRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmll
d0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwu
bW0KQEAgLTM1LDcgKzM1LDYgQEAKICNpbXBvcnQgIkNvcmVUZXh0SGVscGVycy5oIgogI2ltcG9y
dCAiRm9udEluZm8uaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQuaCIKLSNpbXBvcnQgIkdl
bmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCAiSW5zZXJ0VGV4dE9wdGlvbnMuaCIKICNpbXBvcnQg
IkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVudC5oIgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJl
YVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9D
b29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNw
cAppbmRleCAwMzhkOWVlMmY0MWNkZWJhNGFlN2I1OTczMTFiNjYzYTU4YjZkNjI5Li5mOTU1NjI4
MDE4ODNkNWE4MzVjZDg5YTU0NjdlNjQ0NTFlNTVlZDQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGlu
YXRlZEdyYXBoaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRl
ZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcApAQCAtNDE3
LDcgKzQxNyw3IEBAIGludCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJh
d2luZ01vbml0b3I6OndlYlZpZXdEcmF3Q2FsbGJhY2soRHJhCiAgICAgcmV0dXJuIGZhbHNlOwog
fQogCi12b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9u
aXRvcjo6c3RhcnQoV1RGOjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNh
bGxiYWNrKQordm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2lu
Z01vbml0b3I6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBtX3N0
YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKTsKQEAgLTQ0MSwxMCArNDQxLDggQEAgdm9pZCBEcmF3aW5nQXJlYVByb3h5Q29v
cmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OnN0b3AoKQogICAgIGdfc2lnbmFsX2hh
bmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhtX3dlYlBhZ2Uudmlld1dpZGdldCgpLCByZWludGVy
cHJldF9jYXN0PGdwb2ludGVyPih3ZWJWaWV3RHJhd0NhbGxiYWNrKSwgdGhpcyk7CiAjZW5kaWYK
ICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWUoKTsKLSAgICBpZiAobV9jYWxsYmFjaykg
ewotICAgICAgICBtX2NhbGxiYWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUpOwotICAgICAg
ICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKLSAgICB9CisgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBz
dGQ6OmV4Y2hhbmdlKG1fY2FsbGJhY2ssIG51bGxwdHIpKQorICAgICAgICBjYWxsYmFjaygpOwog
fQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9u
aXRvcjo6ZGlkRHJhdygpCkBAIC00NTgsMTIgKzQ1NiwxMCBAQCB2b2lkIERyYXdpbmdBcmVhUHJv
eHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6ZGlkRHJhdygpCiAgICAgICAg
IG1fdGltZXIuc3RhcnRPbmVTaG90KDE2X21zKTsKIH0KIAotdm9pZCBEcmF3aW5nQXJlYVByb3h5
Q29vcmRpbmF0ZWRHcmFwaGljczo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1
bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2tGdW5jdGlvbikKK3Zv
aWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OmRpc3BhdGNoQWZ0ZXJFbnN1
cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7Ci0gICAg
aWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxi
YWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7Ci0g
ICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5n
UHJvY2VzcygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2tGdW5jdGlvbigpOwogCiAgICAgaWYg
KCFtX2RyYXdpbmdNb25pdG9yKQogICAgICAgICBtX2RyYXdpbmdNb25pdG9yID0gbWFrZVVuaXF1
ZTxEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I+KG1f
d2ViUGFnZVByb3h5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3Jk
aW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94
eUNvb3JkaW5hdGVkR3JhcGhpY3MuaAppbmRleCBiMjNhNDVmZjdkMzEzMzE3ZDhiYTY0ZmI0MzBl
YmJhM2I2YWRlZjcxLi4wYzE1YWNiNGI4MmFkNmZiYzQ5M2Y1N2ZiNDZmMzZlNmE4YTU3YTIzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0Ry
YXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRH
cmFwaGljcy5oCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaXNjYXJkQmFj
a2luZ1N0b3JlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJh
d2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRl
OworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+
JiYpIG92ZXJyaWRlOwogCiAgICAgY2xhc3MgRHJhd2luZ01vbml0b3IgewogICAgICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShEcmF3aW5nTW9uaXRvcik7IFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwpAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgICAgICBEcmF3aW5nTW9uaXRvcihXZWJQ
YWdlUHJveHkmKTsKICAgICAgICAgfkRyYXdpbmdNb25pdG9yKCk7CiAKLSAgICAgICAgdm9pZCBz
dGFydChXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpOworICAgICAg
ICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICBwcml2YXRlOgogICAgICAg
ICBzdGF0aWMgaW50IHdlYlZpZXdEcmF3Q2FsbGJhY2soRHJhd2luZ01vbml0b3IqKTsKQEAgLTEw
NSw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZERyYXcoKTsKIAogICAgICAg
ICBNb25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOwotICAgICAgICBXVEY6OkZ1bmN0aW9uPHZvaWQo
Q2FsbGJhY2tCYXNlOjpFcnJvcik+IG1fY2FsbGJhY2s7CisgICAgICAgIEZ1bmN0aW9uPHZvaWQo
KT4gbV9jYWxsYmFjazsKICAgICAgICAgUnVuTG9vcDo6VGltZXI8RHJhd2luZ01vbml0b3I+IG1f
dGltZXI7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBXZWJQYWdlUHJveHkmIG1fd2ViUGFn
ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHku
aCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJveHkuaAppbmRleCA4MjZj
NDE3YzZjOWJhMWM3ZTZjMmMzMmE2YWIwZjNhYjhkNzJmMGUwLi4zNGNkZGI1YmZlZTMxMTg0ZDlk
OTJiMDY4MWRlZjZhNjRkNzI3Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvRHJhd2lu
Z0FyZWFQcm94eS5oCkBAIC0yNiw4ICsyNiw4IEBACiAKICNwcmFnbWEgb25jZQogCisjaW5jbHVk
ZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5mby5oIgotI2luY2x1ZGUg
IkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1
ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zsb2F0UmVjdC5oPgpAQCAt
OTcsNyArOTcsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQgd2FpdEZvckRpZFVwZGF0
ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSB7IH0KICAgICAKLSAgICB2aXJ0
dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQg
KENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CisgICAg
dmlydHVhbCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgp
PiYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBIaWRlIHRoZSBjb250ZW50
IHVudGlsIHRoZSBjdXJyZW50bHkgcGVuZGluZyB1cGRhdGUgYXJyaXZlcy4KICAgICB2aXJ0dWFs
IHZvaWQgaGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKSB7IEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9HZW5lcmljQ2FsbGJh
Y2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCmRlbGV0ZWQg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Nzk4ZDc3N2JlNmNmZTc1N2ZiZGRjYWQwOTlmOTBkZThj
YjRlMmU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisrKyAvZGV2L251bGwKQEAg
LTEsMjEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUg
bWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKLSAqIEFORCBB
TlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCi0gKiBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExB
UlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCi0gKiBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhF
UiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBO
RUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKLSAqIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkFQ
SUVycm9yLmgiCi0jaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVlLmgiCi0jaW5jbHVk
ZSAiQ2FsbGJhY2tJRC5oIgotI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKLSNpbmNsdWRl
ICJTaGFyZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3QuaCIKLSNpbmNsdWRlIDx3
dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgotI2luY2x1ZGUgPHd0Zi9N
YWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYv
VGhyZWFkaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFzcyBDYWxsYmFja0Jhc2Ug
OiBwdWJsaWMgUmVmQ291bnRlZDxDYWxsYmFja0Jhc2U+IHsKLXB1YmxpYzoKLSAgICBlbnVtIGNs
YXNzIEVycm9yIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgVW5rbm93biwKLSAgICAgICAgUHJv
Y2Vzc0V4aXRlZCwKLSAgICAgICAgT3duZXJXYXNJbnZhbGlkYXRlZCwKLSAgICB9OwotCi0gICAg
dmlydHVhbCB+Q2FsbGJhY2tCYXNlKCkKLSAgICB7Ci0gICAgfQotCi0gICAgQ2FsbGJhY2tJRCBj
YWxsYmFja0lEKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja0lEOyB9Ci0KLSAgICB0ZW1wbGF0
ZTxjbGFzcyBUPgotICAgIFQqIGFzKCkKLSAgICB7Ci0gICAgICAgIGlmIChUOjp0eXBlKCkgPT0g
bV90eXBlKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPih0aGlzKTsKLQotICAg
ICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0
ZShFcnJvcikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgc3RydWN0IFR5cGVUYWcgeyB9OwotICAg
IHR5cGVkZWYgY29uc3QgVHlwZVRhZyogVHlwZTsKLQotICAgIGV4cGxpY2l0IENhbGxiYWNrQmFz
ZShUeXBlIHR5cGUsIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5
KQotICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fY2FsbGJhY2tJRChDYWxsYmFj
a0lEOjpnZW5lcmF0ZUlEKCkpCi0gICAgICAgICwgbV9hY3Rpdml0eShXVEZNb3ZlKGFjdGl2aXR5
KSkKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFR5cGUgbV90eXBlOwotICAgIENhbGxi
YWNrSUQgbV9jYWxsYmFja0lEOwotICAgIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFu
dCBtX2FjdGl2aXR5OwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUuLi4gVD4KLWNsYXNzIEdlbmVy
aWNDYWxsYmFjayA6IHB1YmxpYyBDYWxsYmFja0Jhc2UgewotcHVibGljOgotICAgIHR5cGVkZWYg
RnVuY3Rpb248dm9pZCAoVC4uLiwgRXJyb3IpPiBDYWxsYmFja0Z1bmN0aW9uOwotCi0gICAgc3Rh
dGljIFJlZjxHZW5lcmljQ2FsbGJhY2s+IGNyZWF0ZShDYWxsYmFja0Z1bmN0aW9uJiYgY2FsbGJh
Y2ssIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFjdGl2aXR5ID0gbnVsbHB0
cikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdlbmVyaWNDYWxsYmFjayhX
VEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShhY3Rpdml0eSkpKTsKLSAgICB9Ci0KLSAgICB2aXJ0
dWFsIH5HZW5lcmljQ2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgQVNTRVJUKG1fb3JpZ2luVGhy
ZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0gICAgICAgIEFTU0VSVCghbV9jYWxs
YmFjayk7Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2tXaXRoUmV0dXJuVmFsdWUo
VC4uLiByZXR1cm5WYWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVChtX29yaWdpblRocmVhZC5w
dHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotCi0gICAgICAgIGlmICghbV9jYWxsYmFjaykK
LSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIGNhbGxiYWNrID0gc3RkOjpleGNo
YW5nZShtX2NhbGxiYWNrLCBzdGQ6Om51bGxvcHQpOwotICAgICAgICBjYWxsYmFjay52YWx1ZSgp
KHJldHVyblZhbHVlLi4uLCBFcnJvcjo6Tm9uZSk7Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3Jt
Q2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgcGVyZm9ybUNhbGxiYWNrV2l0aFJldHVyblZhbHVl
KCk7Ci0gICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKEVycm9yIGVycm9yID0gRXJyb3I6OlVu
a25vd24pIGZpbmFsCi0gICAgewotICAgICAgICBBU1NFUlQobV9vcmlnaW5UaHJlYWQucHRyKCkg
PT0gJlRocmVhZDo6Y3VycmVudCgpKTsKLQotICAgICAgICBpZiAoIW1fY2FsbGJhY2spCi0gICAg
ICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBjYWxsYmFjayA9IHN0ZDo6ZXhjaGFuZ2Uo
bV9jYWxsYmFjaywgc3RkOjpudWxsb3B0KTsKLSAgICAgICAgY2FsbGJhY2sudmFsdWUoKSh0eXBl
bmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUoKS4uLiwgZXJyb3IpOwotICAgIH0K
LQotcHJpdmF0ZToKLSAgICBHZW5lcmljQ2FsbGJhY2soQ2FsbGJhY2tGdW5jdGlvbiYmIGNhbGxi
YWNrLCBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICAg
ICAgOiBDYWxsYmFja0Jhc2UodHlwZSgpLCBXVEZNb3ZlKGFjdGl2aXR5KSkKLSAgICAgICAgLCBt
X2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQotICAgIHsKLSAgICB9Ci0KLSAgICBmcmllbmQg
Y2xhc3MgQ2FsbGJhY2tCYXNlOwotICAgIHN0YXRpYyBUeXBlIHR5cGUoKQotICAgIHsKLSAgICAg
ICAgc3RhdGljIFR5cGVUYWcgdGFnOwotICAgICAgICByZXR1cm4gJnRhZzsKLSAgICB9Ci0KLSAg
ICBzdGQ6Om9wdGlvbmFsPENhbGxiYWNrRnVuY3Rpb24+IG1fY2FsbGJhY2s7Ci0KLSNpZiBBU1NF
UlRfRU5BQkxFRAotICAgIFJlZjxUaHJlYWQ+IG1fb3JpZ2luVGhyZWFkIHsgVGhyZWFkOjpjdXJy
ZW50KCkgfTsKLSNlbmRpZgotfTsKLQotdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8PiBWb2lkQ2Fs
bGJhY2s7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIGludmFsaWRhdGVDYWxsYmFja01h
cChIYXNoTWFwPHVpbnQ2NF90LCBUPiYgY2FsbGJhY2tNYXAsIENhbGxiYWNrQmFzZTo6RXJyb3Ig
ZXJyb3IpCi17Ci0gICAgYXV0byBtYXAgPSBXVEZNb3ZlKGNhbGxiYWNrTWFwKTsKLSAgICBmb3Ig
KGF1dG8mIGNhbGxiYWNrIDogbWFwLnZhbHVlcygpKQotICAgICAgICBjYWxsYmFjay0+aW52YWxp
ZGF0ZShlcnJvcik7Ci19Ci0KLWNsYXNzIENhbGxiYWNrTWFwIHsKLXB1YmxpYzoKLSAgICBDYWxs
YmFja0lEIHB1dChSZWY8Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQotICAgIHsKLSAgICAgICAg
UkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRvIGNhbGxiYWNr
SUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgICAgICBSRUxFQVNFX0FTU0VSVChjYWxs
YmFja0lELmlzVmFsaWQoKSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKCFtX21hcC5jb250YWlu
cyhjYWxsYmFja0lELm1faWQpKTsKLSAgICAgICAgbV9tYXAuc2V0KGNhbGxiYWNrSUQubV9pZCwg
V1RGTW92ZShjYWxsYmFjaykpOwotICAgICAgICByZXR1cm4gY2FsbGJhY2tJRDsKLSAgICB9Ci0K
LSAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBJLCB0eXBlbmFtZSBULCB0eXBlbmFtZS4uLiBVPgotICAg
IHN0cnVjdCBHZW5lcmljQ2FsbGJhY2tUeXBlIHsKLSAgICAgICAgdHlwZWRlZiB0eXBlbmFtZSBH
ZW5lcmljQ2FsbGJhY2tUeXBlPEkgLSAxLCBVLi4uLCBUPjo6dHlwZSB0eXBlOwotICAgIH07Ci0K
LSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBVPgotICAgIHN0cnVjdCBHZW5lcmljQ2FsbGJhY2tU
eXBlPDEsIENhbGxiYWNrQmFzZTo6RXJyb3IsIFUuLi4+IHsKLSAgICAgICAgdHlwZWRlZiBHZW5l
cmljQ2FsbGJhY2s8VS4uLj4gdHlwZTsKLSAgICB9OwotCi0gICAgdGVtcGxhdGU8dHlwZW5hbWUu
Li4gVD4KLSAgICBDYWxsYmFja0lEIHB1dChGdW5jdGlvbjx2b2lkKFQuLi4pPiYmIGZ1bmN0aW9u
LCBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rpdml0eSkKLSAgICB7Ci0g
ICAgICAgIGF1dG8gY2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBlPHNpemVvZi4uLihUKSwg
VC4uLj46OnR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uKSwgV1RGTW92ZShhY3Rpdml0eSkp
OwotICAgICAgICByZXR1cm4gcHV0KFdURk1vdmUoY2FsbGJhY2spKTsKLSAgICB9Ci0KLSAgICB0
ZW1wbGF0ZTxjbGFzcyBUPgotICAgIFJlZlB0cjxUPiB0YWtlKENhbGxiYWNrSUQgY2FsbGJhY2tJ
RCkKLSAgICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxiYWNrSUQuaXNWYWxpZCgpKTsK
LSAgICAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAgICBhdXRv
IGJhc2UgPSBtX21hcC50YWtlKGNhbGxiYWNrSUQubV9pZCk7Ci0gICAgICAgIGlmICghYmFzZSkK
LSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgIHJldHVybiBhZG9wdFJlZihi
YXNlLmxlYWtSZWYoKS0+YXM8VD4oKSk7Ci0gICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKENh
bGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpCi0gICAgewotICAgICAgICBSRUxFQVNFX0FTU0VSVChS
dW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIGludmFsaWRhdGVDYWxsYmFja01hcChtX21hcCwg
ZXJyb3IpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBIYXNoTWFwPHVpbnQ2NF90LCBSZWZQdHI8
Q2FsbGJhY2tCYXNlPj4gbV9tYXA7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4
dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNw
ZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHkuY3BwCmluZGV4IDIz
NTEyYWYwZjFkNWVhZjFmZWE4ZWZjM2I4NWM5NDJjNmJmNTM2ZmYuLmJlNWU2NmMwZmE1NTMyZGI1
ZWIzMzJiN2I5MDVkMjUyZGY4MGNmNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dlYkluc3BlY3RvclVJRXh0
ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcApAQCAtMjksNiArMjksNyBAQAogI2lmIEVOQUJMRShJ
TlNQRUNUT1JfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFQSUluc3BlY3RvckV4dGVuc2lvbi5o
IgorI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIldlYklu
c3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViSW5z
cGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldl
YlBhZ2VQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVj
dG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5jcHAKaW5kZXggODQ1NTBl
ZDUwM2FkM2U1NTRjNTI5ODc4ZDVkMzhiYjRhNjU1YzNmOC4uMWE3ZTI1NWE3Yzg4NWUyZWU2ZjYw
NTkyZTMwYzUzZjAxYmEyYTRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJUHJveHlHdGsuY3BwCkBA
IC0zMSw5ICszMSwxMSBAQAogCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUg
IkFQSU5hdmlnYXRpb25BY3Rpb24uaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRl
ICJXS0FycmF5LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJX
S011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2FzdC5oIgogI2luY2x1ZGUg
IldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkluc3BlY3RvclVJ
TWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSVByb3h5Q2xpZW50LmgiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9y
Vmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvbWFj
L1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjBkYzJmYTNlMWY3YjFkZTk2ODk3
YjEwYjE2ZGU3OGYyZmZmMjZiNS4uMjkyODdiYTJmYjcyMTJlMDBkMjZkNDVlN2NhNmFjNTg1ZjNh
ZGUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL21hYy9X
S0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5tbQpAQCAtMjksNyArMjks
NyBAQAogI2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiQVBJTmF2aWdhdGlvbi5oIgotI2lt
cG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CisjaW1wb3J0ICJXS0FQSUNhc3QuaCIKICNpbXBv
cnQgIldLSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW1wb3J0ICJXS0lu
c3BlY3RvcldLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2aWdhdGlvbkFjdGlvbi5o
PgpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAjaW1wb3J0ICJf
V0tJbnNwZWN0b3JDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBvcnQgPFdlYkNvcmUvVmVy
c2lvbkNoZWNrcy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CiAjaW1wb3J0IDx3
dGYvV2Vha09iakNQdHIuaD4KIAogc3RhdGljIE5TU3RyaW5nICogY29uc3QgV0tJbnNwZWN0b3JS
ZXNvdXJjZVNjaGVtZSA9IEAiaW5zcGVjdG9yLXJlc291cmNlIjsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQcm94eVdpbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2luL1dlYkluc3BlY3RvclVJ
UHJveHlXaW4uY3BwCmluZGV4IDQyNTBiZGRiOWQ4ZTYxY2UwNzY4ZGVmMDFkM2YwMmNiMDVlZWU3
YmIuLmVjY2Y3M2ZjYmIyZGRkN2MwNjY5Nzk5Njg3ODAzNTMxY2U5OGE1NjcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVjdG9yVUlQcm94
eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL3dpbi9XZWJJ
bnNwZWN0b3JVSVByb3h5V2luLmNwcApAQCAtMzIsNiArMzIsNyBAQAogI2luY2x1ZGUgIkFQSVBh
Z2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVI
YW5kbGVyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJveHkuaCIKICNpbmNsdWRl
ICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHkuaCIKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFu
YWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCA3NjA2MzFjNDkwZjY0MzNmMzQxYTQz
YmQ4ODFkNTQ1ZjRhOWI3M2FlLi45YTczNGFkYjFlNjI5YTViYjg3NjUwMzkzNmQzYjZlNDIwOTA3
ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Ob3RpZmljYXRpb25zL1dl
Yk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwCkBAIC0yOSw2
ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRlICJBUElOb3RpZmljYXRp
b25Qcm92aWRlci5oIgogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCisjaW5jbHVkZSAi
V0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uLmgiCiAjaW5jbHVk
ZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUGFnZVBy
b3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRy
ZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkuaApp
bmRleCBlMzJiZjdiMzU5MjZmYzhhYjMwZTliNDVlMDI0NTBiMGZlNmExMmNlLi43YjZkNTBlMzJm
ZTA3YzFjNTI4M2U5N2QxMTdiNmRhZWIxOGYwOWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVM
YXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKQEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25j
ZQogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgorI2luY2x1ZGUgIlByb2Nlc3NUaHJv
dHRsZXIuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVIb3N0LmgiCiAjaW5jbHVkZSAiVHJh
bnNhY3Rpb25JRC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9uRnJhbWVSYXRlLmg+CkBA
IC02Nyw3ICs2OCw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgLy8gRm9yIG5vdywgYWxsIGNhbGxi
YWNrcyBhcmUgY2FsbGVkIGJlZm9yZSBjb21taXR0aW5nIGNoYW5nZXMsIGJlY2F1c2UgdGhhdCdz
IHdoYXQgdGhlIG9ubHkgY2xpZW50IHJlcXVpcmVzLgogICAgIC8vIE9uY2Ugd2UgaGF2ZSBvdGhl
ciBjYWxsYmFja3MsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGhhdmUgYSBiZWZvcmUtY29tbWl0L2Fm
dGVyLWNvbW1pdCBvcHRpb24uCi0gICAgdm9pZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5n
KFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYpIG92ZXJyaWRlOwor
ICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlvbjx2b2lkKCk+JiYp
IG92ZXJyaWRlOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgZGlkQ2hhbmdlVmlld0V4
cG9zZWRSZWN0KCkgb3ZlcnJpZGU7CkBAIC0xMTksNyArMTIwLDcgQEAgcHJpdmF0ZToKICAgICBU
cmFuc2FjdGlvbklEIG1fdHJhbnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudDsKICAgICBBY3Rp
dml0eVN0YXRlQ2hhbmdlSUQgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0eVN0YXRl
Q2hhbmdlQXN5bmNocm9ub3VzIH07CiAKLSAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNrczsKKyAg
ICBIYXNoTWFwPENhbGxiYWNrSUQsIHN0ZDo6cGFpcjxGdW5jdGlvbjx2b2lkKCk+LCBzdGQ6OnVu
aXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5Pj4+IG1fY2FsbGJh
Y2tzOwogCiAgICAgUmV0YWluUHRyPFdLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxlcj4gbV9kaXNw
bGF5TGlua0hhbmRsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
UmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0gYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eS5tbQppbmRleCBiNGU0YzZjMGRhODAzMjYxMjk1YmRkYWZkNDU1YjdjYTk5Yzg1
M2EwLi5mZjY1NGZhZTc5MTUzNjM0YTc4ODBlZWIwZDFjOTdlYzk2MWUxMTUzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVM
YXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMTI3LDcgKzEy
Nyw2IEBAIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHkoV2ViUGFnZVByb3h5JiB3CiAKIFJlbW90ZUxheWVyVHJlZURyYXdpbmdB
cmVhUHJveHk6On5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAgICBtX2Nh
bGxiYWNrcy5pbnZhbGlkYXRlKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0
ZWQpOwogICAgIHByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OlJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9pZGVu
dGlmaWVyKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yNjksOCArMjY4LDggQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUoY29u
c3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICAgICAgICAgbV93ZWJQYWdlUHJveHkuZGlkUmVhY2hM
YXlvdXRNaWxlc3RvbmUobWlsZXN0b25lcyk7CiAKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrSUQg
OiBsYXllclRyZWVUcmFuc2FjdGlvbi5jYWxsYmFja0lEcygpKSB7Ci0gICAgICAgIGlmIChhdXRv
IGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpKQot
ICAgICAgICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOworICAgICAgICBpZiAoYXV0
byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCkuZmlyc3QpCisgICAgICAg
ICAgICBjYWxsYmFjaygpOwogICAgIH0KIH0KIApAQCAtNDcxLDE0ICs0NzAsMTYgQEAgdm9pZCBS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlT
dGF0ZShBY3Rpdml0eVN0YXQKICAgICB9CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVlRHJhd2lu
Z0FyZWFQcm94eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZv
aWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lkIFJlbW90
ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmco
RnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYgKCFtX3dlYlBh
Z2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24o
Q2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CisgICAgICAgIGNhbGxi
YWNrRnVuY3Rpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2Fn
ZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQobV9jYWxsYmFja3MucHV0
KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3MoKS50aHJvdHRsZXIoKS5iYWNrZ3Jv
dW5kQWN0aXZpdHkoIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0
ZXJFbnN1cmluZ0RyYXdpbmciX3MpKSkpOworICAgIGF1dG8gY2FsbGJhY2tJRCA9IENhbGxiYWNr
SUQ6OmdlbmVyYXRlSUQoKTsKKyAgICBtX2NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgc3RkOjpt
YWtlX3BhaXIoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgcHJvY2VzcygpLnRocm90dGxlcigp
LmJhY2tncm91bmRBY3Rpdml0eSgiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eTo6ZGlz
cGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyJfcykubW92ZVRvVW5pcXVlUHRyKCkpKTsKKyAgICBz
ZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKGNhbGxi
YWNrSUQpKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpoaWRl
Q29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGEyNTI4YzJjMGUwZDdlMTMwOTg2MTZiMzE1MDg4NjZl
Zjk4NDc2MTMuLmU4NTYwNmFkMDUyNDVkNWIxYTEwM2YyMmIwY2IwNjBkNjA0OTgxNmMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC0yNiw2ICsy
Niw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENsaWVudC5o
IgogCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIK
IAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNv
b2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDNkY2Y1NGFkN2M4YmFiMWI1YWI2YTZlYzI4ZjVhMWY4
NzFhNDE5MWMuLmI5ZGMzYjc0OWY4NGNjMjk3YzNhZGE2NjRiMDdjYjI2ZjQxMWE1NDIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCkBAIC0y
Niw5ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5oIgotI2lu
Y2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29yZS9IVFRQ
Q29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgogI2luY2x1
ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCAzOTFiMDI3MzYyODM0MWVkYWE4ODMwYjM3
NGYwZmIxMzEyNDAxNzJhLi5kYzhjZDg1NGU1MTAyNDVhMDMwYWNiZWU0OGFkMmMxOTlmOTQ2ZDJm
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5LmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC0yNyw3ICsyNyw2
IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRTdGF0ZS5o
IgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5
TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1ZGUgPFdl
YkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgpAQCAtNDEsNiArNDAsNyBAQAogCiBuYW1lc3BhY2Ug
QVBJIHsKIGNsYXNzIE5hdmlnYXRpb247CitjbGFzcyBVUkw7CiB9CiAKIG5hbWVzcGFjZSBJUEMg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggNzAzZTNkYmNl
MGNlNjZkNDAwYmE5M2U5NWNmZGFmY2YwNzk5MTI4Ni4uMWFmMDRmNGE4OTExNThhOTkxNTJmZWU0
MmFiZWE0MTM0MTk5NjA3MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
UGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHku
Y3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiQVBJUG9saWN5Q2xpZW50LmgiCiAjaW5j
bHVkZSAiQVBJUmVzb3VyY2VMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJU2VjdXJpdHlPcmln
aW4uaCIKKyNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNsdWRlICJB
UElVSUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRlICJBUElX
ZWJzaXRlUG9saWNpZXMuaCIKQEAgLTQ0NjMsOSArNDQ2NCw3IEBAIHZvaWQgV2ViUGFnZVByb3h5
Ojpmb3JjZVJlcGFpbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNrKQogICAg
IG1fZHJhd2luZ0FyZWEtPndhaXRGb3JCYWNraW5nU3RvcmVVcGRhdGVPbk5leHRQYWludCgpOwog
CiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpGb3JjZVJlcGFpbnQo
KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBtYWtlUmVmKCp0aGlzKSwgY2FsbGJhY2sgPSBXVEZN
b3ZlKGNhbGxiYWNrKV0gKCkgbXV0YWJsZSB7Ci0gICAgICAgIGNhbGxBZnRlck5leHRQcmVzZW50
YXRpb25VcGRhdGUoW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldIChhdXRvKSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIGNhbGxiYWNrKCk7Ci0gICAgICAgIH0pOworICAgICAgICBjYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICB9KTsKIH0K
IApAQCAtOTc1NiwxMiArOTc1NSwxMCBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6Y2xlYXJXaGVlbEV2
ZW50VGVzdE1vbml0b3IoKQogICAgIHNlbmQoTWVzc2FnZXM6OldlYlBhZ2U6OkNsZWFyV2hlZWxF
dmVudFRlc3RNb25pdG9yKCkpOwogfQogCi12b2lkIFdlYlBhZ2VQcm94eTo6Y2FsbEFmdGVyTmV4
dFByZXNlbnRhdGlvblVwZGF0ZShXVEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJy
b3IpPiYmIGNhbGxiYWNrKQordm9pZCBXZWJQYWdlUHJveHk6OmNhbGxBZnRlck5leHRQcmVzZW50
YXRpb25VcGRhdGUoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogewotICAgIGlmICghaGFz
UnVubmluZ1Byb2Nlc3MoKSB8fCAhbV9kcmF3aW5nQXJlYSkgewotICAgICAgICBjYWxsYmFjayhD
YWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVkKTsKLSAgICAgICAgcmV0dXJu
OwotICAgIH0KKyAgICBpZiAoIWhhc1J1bm5pbmdQcm9jZXNzKCkgfHwgIW1fZHJhd2luZ0FyZWEp
CisgICAgICAgIHJldHVybiBjYWxsYmFjaygpOwogCiAgICAgbV9kcmF3aW5nQXJlYS0+ZGlzcGF0
Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCmluZGV4IDFlNjM1MzQ0YmY5Y2E5YzZkZjQyYTkwZDA4
MjA0MTFhYTk5ZWI0MTUuLmYxY2RjMTNmNmIyOTdlMTcyN2YwZjY2YmU4MmM5OGJmYjFiZTVlZTYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oCkBAIC02Nyw2ICs2Nyw3IEBA
CiAjaW5jbHVkZSAiV2ViQ29udGV4dE1lbnVJdGVtRGF0YS5oIgogI2luY2x1ZGUgIldlYkNvcmVB
cmd1bWVudENvZGVycy5oIgogI2luY2x1ZGUgIldlYkRhdGFMaXN0U3VnZ2VzdGlvbnNEcm9wZG93
bi5oIgorI2luY2x1ZGUgIldlYkV2ZW50LmgiCiAjaW5jbHVkZSAiV2ViRnJhbWVQcm94eS5oIgog
I2luY2x1ZGUgIldlYlBhZ2VDcmVhdGlvblBhcmFtZXRlcnMuaCIKICNpbmNsdWRlICJXZWJQYWdl
RGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQuaCIKQEAgLTE5NSw2ICsxOTYsNyBAQCBpbnRlcmZhY2Ug
SUQzRDExRGV2aWNlMTsKICNlbmRpZgogCiBuYW1lc3BhY2UgQVBJIHsKK2NsYXNzIEFycmF5Owog
Y2xhc3MgQXR0YWNobWVudDsKIGNsYXNzIENvbnRlbnRXb3JsZDsKIGNsYXNzIENvbnRleHRNZW51
Q2xpZW50OwpAQCAtMjA1LDEzICsyMDcsMTkgQEAgY2xhc3MgRmluZE1hdGNoZXNDbGllbnQ7CiBj
bGFzcyBGb3JtQ2xpZW50OwogY2xhc3MgRnVsbHNjcmVlbkNsaWVudDsKIGNsYXNzIEhpc3RvcnlD
bGllbnQ7CitjbGFzcyBIaXRUZXN0UmVzdWx0OwogY2xhc3MgSWNvbkxvYWRpbmdDbGllbnQ7CiBj
bGFzcyBMb2FkZXJDbGllbnQ7CiBjbGFzcyBOYXZpZ2F0aW9uOworY2xhc3MgTmF2aWdhdGlvbkFj
dGlvbjsKIGNsYXNzIE5hdmlnYXRpb25DbGllbnQ7CitjbGFzcyBOYXZpZ2F0aW9uUmVzcG9uc2U7
CitjbGFzcyBQYWdlQ29uZmlndXJhdGlvbjsKIGNsYXNzIFBvbGljeUNsaWVudDsKIGNsYXNzIFJl
c291cmNlTG9hZENsaWVudDsKK2NsYXNzIFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTsKIGNsYXNzIFVJ
Q2xpZW50OworY2xhc3MgVVJMOwogY2xhc3MgVVJMUmVxdWVzdDsKIH0KIApAQCAtMzMyLDcgKzM0
MCwxMCBAQCB0eXBlZGVmIEhXTkQgUGxhdGZvcm1WaWV3V2lkZ2V0OwogbmFtZXNwYWNlIFdlYktp
dCB7CiAKIGNsYXNzIEF1ZGlvU2Vzc2lvblJvdXRpbmdBcmJpdHJhdG9yUHJveHk7CitjbGFzcyBB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5OworY2xhc3MgQ2FsbGJhY2tJRDsKIGNsYXNzIERy
YXdpbmdBcmVhUHJveHk7CitjbGFzcyBEb3dubG9hZFByb3h5OwogY2xhc3MgR2FtZXBhZERhdGE7
CiBjbGFzcyBNZWRpYVVzYWdlTWFuYWdlcjsKIGNsYXNzIE5hdGl2ZVdlYkdlc3R1cmVFdmVudDsK
QEAgLTM1Niw2ICszNjcsNyBAQCBjbGFzcyBXZWJCYWNrRm9yd2FyZExpc3Q7CiBjbGFzcyBXZWJC
YWNrRm9yd2FyZExpc3RJdGVtOwogY2xhc3MgV2ViQ29udGV4dE1lbnVQcm94eTsKIGNsYXNzIFdl
YkVkaXRDb21tYW5kUHJveHk7CitjbGFzcyBXZWJGcmFtZVByb3h5OwogY2xhc3MgV2ViRnVsbFNj
cmVlbk1hbmFnZXJQcm94eTsKIGNsYXNzIFBsYXliYWNrU2Vzc2lvbk1hbmFnZXJQcm94eTsKIGNs
YXNzIFVzZXJNZWRpYVBlcm1pc3Npb25SZXF1ZXN0UHJveHk7CkBAIC0zNjMsNiArMzc1LDcgQEAg
Y2xhc3MgVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5OwogY2xhc3MgV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHk7CiBjbGFzcyBXZWJCYWNrRm9yd2FyZENhY2hlOwogY2xhc3MgV2Vi
RGV2aWNlT3JpZW50YXRpb25VcGRhdGVQcm92aWRlclByb3h5OworY2xhc3MgV2ViSW5zcGVjdG9y
VUlQcm94eTsKIGNsYXNzIFdlYktleWJvYXJkRXZlbnQ7CiBjbGFzcyBXZWJNb3VzZUV2ZW50Owog
Y2xhc3MgV2ViTmF2aWdhdGlvblN0YXRlOwpAQCAtNDA3LDYgKzQyMCw3IEBAIHN0cnVjdCBXZWJO
YXZpZ2F0aW9uRGF0YVN0b3JlOwogc3RydWN0IFdlYlBvcHVwSXRlbTsKIHN0cnVjdCBXZWJTcGVl
Y2hTeW50aGVzaXNWb2ljZTsKIAorZW51bSBjbGFzcyBGaW5kT3B0aW9ucyA6IHVpbnQxNl90Owog
ZW51bSBjbGFzcyBJbWFnZUFuYWx5c2lzVHlwZSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFRhcEhh
bmRsaW5nUmVzdWx0IDogdWludDhfdDsKIGVudW0gY2xhc3MgVGV4dFJlY29nbml0aW9uVXBkYXRl
UmVzdWx0IDogdWludDhfdDsKQEAgLTQxNiw2ICs0MzAsOCBAQCBlbnVtIGNsYXNzIFF1aWNrTG9v
a1ByZXZpZXdBY3Rpdml0eSA6IHVpbnQ4X3Q7CiBlbnVtIGNsYXNzIFVuZG9PclJlZG8gOiBib29s
OwogZW51bSBjbGFzcyBXZWJDb250ZW50TW9kZSA6IHVpbnQ4X3Q7CiAKK3R5cGVkZWYgdWludDMy
X3QgU25hcHNob3RPcHRpb25zOworCiAjaWYgSEFWRShWSVNJQklMSVRZX1BST1BBR0FUSU9OX1ZJ
RVcpCiB1c2luZyBMYXllckhvc3RpbmdDb250ZXh0SUQgPSB1aW50MzJfdDsKICNlbmRpZgpAQCAt
MTYxNCw3ICsxNjMwLDcgQEAgcHVibGljOgogCiAgICAgLy8gRm9yIHRlc3RpbmcKICAgICB2b2lk
IGNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKCk7Ci0gICAgdm9pZCBjYWxsQWZ0ZXJOZXh0UHJl
c2VudGF0aW9uVXBkYXRlKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYpOworICAgIHZvaWQgY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShGdW5jdGlvbjx2
b2lkKCk+JiYpOwogCiAgICAgdm9pZCBkaWRSZWFjaExheW91dE1pbGVzdG9uZShPcHRpb25TZXQ8
V2ViQ29yZTo6TGF5b3V0TWlsZXN0b25lPik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YlByb2Nlc3NQb29sLmNwcAppbmRleCAxZjgzZDQwMzI0OWMxZDc4MzZjZDJjNDRmMmQ4NzZkYzkz
MzA0MTMxLi5lNzJjZThmNTlhNGEyYjJhMGY1N2VjOGY3MmE3NGI1ZjI2M2VhZWQ1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCkBAIC0zNiw2ICszNiw4IEBA
CiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5oIgogI2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0
aW9uLmgiCiAjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgiCisjaW5jbHVk
ZSAiQVBJU3RyaW5nLmgiCisjaW5jbHVkZSAiQVBJVVJMUmVxdWVzdC5oIgogI2luY2x1ZGUgIkF1
eGlsaWFyeVByb2Nlc3NNZXNzYWdlcy5oIgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHkuaCIKICNp
bmNsdWRlICJEb3dubG9hZFByb3h5TWVzc2FnZXMuaCIKQEAgLTU1LDYgKzU3LDcgQEAKICNpbmNs
dWRlICJUZXh0Q2hlY2tlci5oIgogI2luY2x1ZGUgIlVJR2FtZXBhZC5oIgogI2luY2x1ZGUgIlVJ
R2FtZXBhZFByb3ZpZGVyLmgiCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV0tD
b250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uLmgiCiAjaW5j
bHVkZSAiV2ViQmFja0ZvcndhcmRDYWNoZS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBy
b2Nlc3NQb29sLmgKaW5kZXggMDUzNTlhN2RkNDExMDU4MTE4N2QwZjA5N2U1YWZkNjI3MzU1Y2E4
YS4uNzQ2NmIwMWEwYzE5MGJmY2MzYTg3ZDQyZDZhYTUwYTMyMjYwNzMyZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCkBAIC0yOSw3ICsyOSw2IEBACiAjaW5jbHVk
ZSAiQVBJT2JqZWN0LmgiCiAjaW5jbHVkZSAiQVBJUHJvY2Vzc1Bvb2xDb25maWd1cmF0aW9uLmgi
CiAjaW5jbHVkZSAiR1BVUHJvY2Vzc1Byb3h5LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNr
LmgiCiAjaW5jbHVkZSAiSGlkZGVuUGFnZVRocm90dGxpbmdBdXRvSW5jcmVhc2VzQ291bnRlci5o
IgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ck1hcC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0
dXJlQ29udHJvbGxlcklPUy5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2Vz
dHVyZUNvbnRyb2xsZXJJT1MubW0KaW5kZXggZDE0ZGQ0YzcyYjgxZTQ1N2YxNmMwZDk5OGRiZjcy
ODRiMjg1ZDM3ZC4uOWFkMGQ3MTIzNmEwN2NhNmQyMjE3MDhhMGU1ZWVlMTQ0NjEzYWUyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJvbGxl
cklPUy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250
cm9sbGVySU9TLm1tCkBAIC0zNzEsOSArMzcxLDkgQEAgdm9pZCBWaWV3R2VzdHVyZUNvbnRyb2xs
ZXI6OmVuZFN3aXBlR2VzdHVyZShXZWJCYWNrRm9yd2FyZExpc3RJdGVtKiB0YXJnZXRJdGVtLAog
ICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgZHJhd2luZ0FyZWEtPmRp
c3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoW3BhZ2VJRCwgZ2VzdHVyZUlEXSAoQ2FsbGJhY2tC
YXNlOjpFcnJvciBlcnJvcikgeworICAgICAgICBkcmF3aW5nQXJlYS0+ZGlzcGF0Y2hBZnRlckVu
c3VyaW5nRHJhd2luZyhbcGFnZUlELCBnZXN0dXJlSURdIHsKICAgICAgICAgICAgIGlmIChhdXRv
IGdlc3R1cmVDb250cm9sbGVyID0gY29udHJvbGxlckZvckdlc3R1cmUocGFnZUlELCBnZXN0dXJl
SUQpKQotICAgICAgICAgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT53aWxsQ29tbWl0UG9zdFN3
aXBlVHJhbnNpdGlvbkxheWVyVHJlZShlcnJvciA9PSBDYWxsYmFja0Jhc2U6OkVycm9yOjpOb25l
KTsKKyAgICAgICAgICAgICAgICBnZXN0dXJlQ29udHJvbGxlci0+d2lsbENvbW1pdFBvc3RTd2lw
ZVRyYW5zaXRpb25MYXllclRyZWUodHJ1ZSk7CiAgICAgICAgIH0pOwogICAgICAgICBkcmF3aW5n
QXJlYS0+aGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKTsKICAgICB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5t
bSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24u
bW0KaW5kZXggYmQ0M2E3YTA0OWExODZiOGU4MjdlOWU2OTBkY2NhZjhiMWVkOGNjMi4uMzBiZDYz
M2JlMGJmZGFlODNhYzM5ZWQ0ZjBjNGU1YTdhMmY2YWZhMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFjdGlvbi5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCkBAIC00
OTk0LDcgKzQ5OTQsNyBAQCBzdGF0aWMgdm9pZCBzZWxlY3Rpb25DaGFuZ2VkV2l0aFRvdWNoKFdL
Q29udGVudFZpZXcgKnZpZXcsIGNvbnN0IFdlYkNvcmU6OkludFBvaQogewogICAgIF9pZ25vcmVT
ZWxlY3Rpb25Db21tYW5kRmFkZUNvdW50Kys7CiAgICAgX3BhZ2UtPnNjaGVkdWxlRnVsbEVkaXRv
clN0YXRlVXBkYXRlKCk7Ci0gICAgX3BhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRh
dGUoW3dlYWtTZWxmID0gV2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildIChhdXRvKSB7
CisgICAgX3BhZ2UtPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3dlYWtTZWxmID0g
V2Vha09iakNQdHI8V0tDb250ZW50Vmlldz4oc2VsZildIHsKICAgICAgICAgaWYgKGF1dG8gc3Ry
b25nU2VsZiA9IHdlYWtTZWxmLmdldCgpKQogICAgICAgICAgICAgc3Ryb25nU2VsZi0+X2lnbm9y
ZVNlbGVjdGlvbkNvbW1hbmRGYWRlQ291bnQtLTsKICAgICB9KTsKQEAgLTkxMDgsNyArOTEwOCw3
IEBAIHN0YXRpYyBWZWN0b3I8V2ViQ29yZTo6SW50U2l6ZT4gc2l6ZXNPZlBsYWNlaG9sZGVyRWxl
bWVudHNUb0luc2VydFdoZW5Ecm9wcGluZ0l0CiAgICAgICAgIFJFTEVBU0VfTE9HKERyYWdBbmRE
cm9wLCAiRHJhZyBpbnRlcmFjdGlvbiB3aWxsQW5pbWF0ZUNhbmNlbFdpdGhBbmltYXRvciAoYW5p
bWF0aW9uIGNvbXBsZXRpb24gYmxvY2sgZmlyZWQpIik7CiAgICAgICAgIHBhZ2UtPmRyYWdDYW5j
ZWxsZWQoKTsKICAgICAgICAgaWYgKGF1dG8gY29tcGxldGlvbiA9IHByb3RlY3RlZFNlbGYtPl9k
cmFnRHJvcEludGVyYWN0aW9uU3RhdGUudGFrZURyYWdDYW5jZWxTZXREb3duQmxvY2soKSkgewot
ICAgICAgICAgICAgcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29tcGxl
dGlvbiwgcHJvdGVjdGVkU2VsZl0gKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcikgeworICAg
ICAgICAgICAgcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29tcGxldGlv
biwgcHJvdGVjdGVkU2VsZl0gewogICAgICAgICAgICAgICAgIGNvbXBsZXRpb24oKTsKICAgICAg
ICAgICAgICAgICBwcm90ZWN0ZWRTZWxmLT5faXNBbmltYXRpbmdEcmFnQ2FuY2VsID0gTk87CiAg
ICAgICAgICAgICB9KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9U
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5oCmluZGV4IGUyMjgy
ZWIzZjlmYWY0ZjYwMWUyYzBjNjQxY2E3NmZhZjhmOGNiNGMuLjRiOTFiOWFmODVhOGFhOWM2YzQy
OTlkODc0MmE5MGZiMTgwMDdjNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaApA
QCAtNTIsNyArNTIsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tbWl0VHJhbnNpZW50Wm9vbShk
b3VibGUgc2NhbGUsIFdlYkNvcmU6OkZsb2F0UG9pbnQgb3JpZ2luKSBvdmVycmlkZTsKIAogICAg
IHZvaWQgd2FpdEZvckRpZFVwZGF0ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUNoYW5nZUlE
KSBvdmVycmlkZTsKLSAgICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoV1RGOjpG
dW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVycm9yKT4mJikgb3ZlcnJpZGU7CisgICAgdm9p
ZCBkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKEZ1bmN0aW9uPHZvaWQoKT4mJikgb3ZlcnJp
ZGU7CiAgICAgdm9pZCBkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVyRmx1c2hpbmdM
YXllcnMoY29uc3QgVmVjdG9yPENhbGxiYWNrSUQ+JikgZmluYWw7CiAKICAgICB2b2lkIHdpbGxT
ZW5kVXBkYXRlR2VvbWV0cnkoKSBvdmVycmlkZTsKQEAgLTc2LDcgKzc2LDcgQEAgcHJpdmF0ZToK
ICAgICAvLyBUaGUgbGFzdCBtYXhtaXVtIHNpemUgZm9yIHNpemUtdG8tY29udGVudCBhdXRvLXNp
emluZyB3ZSBzZW50IHRvIHRoZSB3ZWIgcHJvY2Vzcy4KICAgICBXZWJDb3JlOjpJbnRTaXplIG1f
bGFzdFNlbnRTaXplVG9Db250ZW50QXV0b1NpemVNYXhpbXVtU2l6ZTsKIAotICAgIENhbGxiYWNr
TWFwIG1fY2FsbGJhY2tzOworICAgIEhhc2hNYXA8Q2FsbGJhY2tJRCwgRnVuY3Rpb248dm9pZCgp
Pj4gbV9jYWxsYmFja3M7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlv
bkRyYXdpbmdBcmVhUHJveHkubW0KaW5kZXggZTYxNmFmZmRlMzZkZjRhMDFmOGJiYmJmZjA4YTMw
Y2U3ZmQxNGI1OS4uMmE3NmNhYjVmYWU1ZDkzZjVlYWU1Yjc5NzRlYTNiZjdlNTM3ZGYwNSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRy
YXdpbmdBcmVhUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVk
Q29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkubW0KQEAgLTUwLDcgKzUwLDYgQEAgVGlsZWRD
b3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eShXZWJQYWdlUHIKIAogVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6
flRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkoKQogewotICAgIG1fY2FsbGJhY2tz
LmludmFsaWRhdGUoQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CiB9
CiAKIHZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eTo6ZGV2aWNlU2NhbGVG
YWN0b3JEaWRDaGFuZ2UoKQpAQCAtMjAzLDIxICsyMDIsMjMgQEAgdm9pZCBUaWxlZENvcmVBbmlt
YXRpb25EcmF3aW5nQXJlYVByb3h5Ojpjb21taXRUcmFuc2llbnRab29tKGRvdWJsZSBzY2FsZSwg
RmxvYXQKICAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6Q29tbWl0VHJhbnNpZW50Wm9v
bShzY2FsZSwgb3JpZ2luKSk7CiB9CiAKLXZvaWQgVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0Fy
ZWFQcm94eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQg
KENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKEZ1bmN0aW9u
PHZvaWQoKT4mJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fd2ViUGFnZVByb3h5Lmhhc1J1bm5p
bmdQcm9jZXNzKCkpIHsKLSAgICAgICAgY2FsbGJhY2soQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3du
ZXJXYXNJbnZhbGlkYXRlZCk7CisgICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25D
YWxsYmFja0lEKG1fY2FsbGJhY2tzLnB1dChXVEZNb3ZlKGNhbGxiYWNrKSwgbnVsbHB0cikpKTsK
KyAgICBhdXRvIGNhbGxiYWNrSUQgPSBDYWxsYmFja0lEOjpnZW5lcmF0ZUlEKCk7CisgICAgbV9j
YWxsYmFja3Muc2V0KGNhbGxiYWNrSUQsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBzZW5kKE1l
c3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lEKGNhbGxiYWNrSUQp
KTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRj
aFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVyRmx1c2hpbmdMYXllcnMoY29uc3QgVmVjdG9yPENh
bGxiYWNrSUQ+JiBjYWxsYmFja0lEcykKIHsKICAgICBmb3IgKGF1dG8mIGNhbGxiYWNrSUQgOiBj
YWxsYmFja0lEcykgewotICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRh
a2U8Vm9pZENhbGxiYWNrPihjYWxsYmFja0lEKSkKLSAgICAgICAgICAgIGNhbGxiYWNrLT5wZXJm
b3JtQ2FsbGJhY2soKTsKKyAgICAgICAgaWYgKGF1dG8gY2FsbGJhY2sgPSBtX2NhbGxiYWNrcy50
YWtlKGNhbGxiYWNrSUQpKQorICAgICAgICAgICAgY2FsbGJhY2soKTsKICAgICB9CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dD
b250cm9sbGVyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2lu
ZG93Q29udHJvbGxlci5oCmluZGV4IGQxOTcyOTI2NTVjNjFiYTZjNmJiMzhhMTM4ODU3ZjRkZTU2
NzFjOTguLmJkNTM5ZDIyYzE1MmE0NDE5ODVjODcwNjM4MDliYTJiMjQ1M2RhMGMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3JlZW5XaW5kb3dDb250cm9s
bGVyLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRv
d0NvbnRyb2xsZXIuaApAQCAtMjYsNyArMjYsNiBAQAogI2lmIEVOQUJMRShGVUxMU0NSRUVOX0FQ
SSkgJiYgUExBVEZPUk0oTUFDKQogCiAjaW1wb3J0IDxBcHBLaXQvQXBwS2l0Lmg+Ci0jaW1wb3J0
ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBvcnQgPHd0Zi9OYWtlZFB0ci5oPgogI2ltcG9ydCA8
d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvUmV0YWluUHRyLmg+CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQppbmRleCBjMDM3ZDY1
YjJiYzBmM2MwYTFlYTEyNmVmZDIxODI3ZGEyMWFhYmI5Li43NDE0NTIxODJhYjIxMTFkNmFkYWRl
ZDM2ZWU5MGIwMmNlYTQzNjEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9t
YWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21h
Yy9XS1RleHRGaW5kZXJDbGllbnQubW0KQEAgLTMwLDYgKzMwLDcgQEAKIAogI2ltcG9ydCAiQVBJ
RmluZENsaWVudC5oIgogI2ltcG9ydCAiQVBJRmluZE1hdGNoZXNDbGllbnQuaCIKKyNpbXBvcnQg
IldlYkZpbmRPcHRpb25zLmgiCiAjaW1wb3J0ICJXZWJJbWFnZS5oIgogI2ltcG9ydCAiV2ViUGFn
ZVByb3h5LmgiCiAjaW1wb3J0IDxhbGdvcml0aG0+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBmZTNkMzJiMzI5NWMyYzQ0ZmQ0NDQ0Y2Rk
N2YxNDFmMjQwMDRjYTAyLi5kYTAyYTI5MjRjMmM0MmQ3NGE4YTFjNGZkYTdlMzZiYTg5MzQ2MmNi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTE2ODcsNyArMTY4Nyw2IEBACiAJCUJDMTRERjlGMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1
bmRsZVNjcmlwdFdvcmxkLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBCQzE0REY5RDEyMEI2MzVGMDA4MjZDMEMgLyogV0tCdW5kbGVTY3JpcHRXb3JsZC5o
ICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUJDMTRF
MTBBMTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE0RTEwODEyMEI5
MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5oICovOyB9OwogCQlC
QzE3NzQ2NTExOEI5RkY0MDA3RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxNzc0NjQxMThCOUZGNDAwN0Q5RTlB
IC8qIFdLUGFnZVByaXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwotCQlCQzE3NzUzRjExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNr
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE3NzUz
RTExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggKi87IH07CiAJCUJDMUE3QzU4
MTEzNkUxOUMwMEZCNzE2NyAvKiBQcm9jZXNzTGF1bmNoZXIuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUE3QzU3MTEzNkUxOUMwMEZCNzE2NyAvKiBQ
cm9jZXNzTGF1bmNoZXIuaCAqLzsgfTsKIAkJQkMxQjQxOTgxMUQ0MUQ1NzAwMTFFOEREIC8qIFdL
QnVuZGxlUGFnZVByaXZhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEJDMUI0MTk3MTFENDFENTcwMDExRThERCAvKiBXS0J1bmRsZVBhZ2VQcml2YXRl
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkMx
QkUxRTAxMkQ1NEE0MTAwMDRBMjI4IC8qIFdlYkdlb2xvY2F0aW9uQ2xpZW50LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzFCRTFERTEyRDU0QTQxMDAw
NEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLzsgfTsKQEAgLTUyNzIsNyArNTI3MSw2
IEBACiAJCUJDMTRFMTA3MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEluamVjdGVk
QnVuZGxlUGFnZUZvcm1DbGllbnQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
QzE0RTEwODEyMEI5MDVFMDA4MjZDMEMgLyogSW5qZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBJbmplY3RlZEJ1bmRsZVBhZ2VGb3Jt
Q2xpZW50Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMTc3NDY0MTE4QjlGRjQw
MDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFdLUGFnZVByaXZhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkMxNzc1
M0UxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBHZW5lcmljQ2FsbGJhY2suaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJQkMxQTdDNTcxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBQcm9jZXNzTGF1bmNoZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxQjQxOTcxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVu
ZGxlUGFnZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gV0tCdW5k
bGVQYWdlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFCRTFERTEy
RDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gV2ViR2VvbG9jYXRpb25DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKQEAgLTEwMDUzLDcgKzEwMDUxLDYgQEAKIAkJCQkxQTY0MjJGQzEyREQwOEZF
MDBDQUFFMkMgLyogRHJhd2luZ0FyZWFQcm94eS5tZXNzYWdlcy5pbiAqLywKIAkJCQkxQUUwMEQ1
RTE4MzE3OTIxMDAwODdERDcgLyogRnJhbWVMb2FkU3RhdGUuY3BwICovLAogCQkJCTFBRTAwRDVG
MTgzMTc5MjEwMDA4N0RENyAvKiBGcmFtZUxvYWRTdGF0ZS5oICovLAotCQkJCUJDMTc3NTNFMTE4
QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCAqLywKIAkJCQk5RUM1MzJBMjI0NDdG
QkFEMDAyMTUyMTYgLyogR2VvbG9jYXRpb25JZGVudGlmaWVyLmggKi8sCiAJCQkJQkMwNkY0NDkx
MkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJv
eHkuY3BwICovLAogCQkJCUJDMDZGNDQ4MTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBl
cm1pc3Npb25SZXF1ZXN0TWFuYWdlclByb3h5LmggKi8sCkBAIC0xMjA2OSw3ICsxMjA2Niw2IEBA
CiAJCQkJQ0QxOUQyRUEyMDQ2NDA2RjAwMTcwNzRBIC8qIEZ1bGxzY3JlZW5Ub3VjaFNlY2hldXJp
c3RpYy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RBOTNEQjAyMkY4QkNGNDAwNDkwQTY5IC8qIEZ1
bGxzY3JlZW5Ub3VjaFNlY2hldXJpc3RpY1BhcmFtZXRlcnMuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTUxNUJFMUIzMUQ1OTAyREQwMEREN0M2OCAvKiBHYW1lcGFkRGF0YS5oIGluIEhlYWRlcnMgKi8s
Ci0JCQkJQkMxNzc1M0YxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJOUVDNTMyQTMyNDQ3RkJBRDAwMjE1MjE2IC8qIEdlb2xvY2F0aW9uSWRl
bnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwNkY0MkYxMkRCQjlCNjAwMkQ3OERFIC8q
IEdlb2xvY2F0aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCQzA2RjQ0QTEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVz
dE1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29udGV4
dC5tbSBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9S
ZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCmluZGV4IDA3ODZjYzUzMzFmMzUwOTFlZWJhNTU1OTA3
MDc3YTMxNTc2ODA4ZTguLjQ1YjU4ZDYzYmMwOTRkMGYyMGRjZTkyNjZmZjliNjc0ZTM5ZjBhYmQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVy
VHJlZS9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVDb250ZXh0Lm1tCkBA
IC0yNiw3ICsyNiw2IEBACiAjaW1wb3J0ICJjb25maWcuaCIKICNpbXBvcnQgIlJlbW90ZUxheWVy
VHJlZUNvbnRleHQuaCIKIAotI2ltcG9ydCAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW1wb3J0ICJH
cmFwaGljc0xheWVyQ0FSZW1vdGUuaCIKICNpbXBvcnQgIlBsYXRmb3JtQ0FMYXllclJlbW90ZS5o
IgogI2ltcG9ydCAiUmVtb3RlTGF5ZXJCYWNraW5nU3RvcmVDb2xsZWN0aW9uLmgiCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438886</attachid>
            <date>2021-09-21 16:39:11 -0700</date>
            <delta_ts>2021-09-21 17:34:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-229366-20210921163911.patch</filename>
            <type>text/plain</type>
            <size>58707</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGE5MDg5ZGNlYjRlYmVhZDM1
ZDQ1NGMyMDRlNGIxMWJmMTJhMjYwYjIuLjdjMzgzNDZhYzBkMGMzZmNlNjQ5MmRhM2E0NjllNzg4
YzIyNTk4NjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzIgQEAKKzIwMjEtMDktMjEgIEFsZXggQ2hy
aXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBSZW1vdmUgR2Vu
ZXJpY0NhbGxiYWNrCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMjkzNjYKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4KKworICAgICAg
ICBJdCBoYXMgYmVlbiByZXBsYWNlZCBieSBzZW5kV2l0aEFzeW5jUmVwbHkuCisKKyAgICAgICAg
VGhpcyBsYXN0IHVzZSBjYW4ndCByZWFsbHkgYmUgcmVwbGFjZWQgYnkgc2VuZFdpdGhBc3luY1Jl
cGx5IGJlY2F1c2UgdGhlIENhbGxiYWNrSURzIGFyZSBzZW50LCB0aGVuIGZ1cnRoZXIgZW5jb2Rl
ZAorICAgICAgICBpbiBSZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbjo6ZW5jb2RlL2RlY29kZSB3
aGljaCB5b3UgY2FuJ3QgcmVhbGx5IGRvIHdpdGggYSBDb21wbGV0aW9uSGFuZGxlci4gIEJ1dCB3
ZSBjYW4gcmVwbGFjZQorICAgICAgICBHZW5lcmljQ2FsbGJhY2sgd2l0aCBXVEY6OkZ1bmN0aW9u
LgorCisgICAgICAgICogU2hhcmVkL0NhbGxiYWNrSUQuaDoKKyAgICAgICAgKiBTaGFyZWQvUmVt
b3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZVRyYW5zYWN0aW9uLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9BUElBdHRhY2htZW50Lmg6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElJ
Y29uTG9hZGluZ0NsaWVudC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJSW5zcGVjdG9y
RXh0ZW5zaW9uLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50Lmg6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHA6CisgICAgICAgIChXS1BhZ2VDYWxs
QWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Lm1tOgorICAgICAgICAoLVtXS1dlYlZpZXcgdGFrZVNuYXBzaG90V2l0aENv
bmZpZ3VyYXRpb246Y29tcGxldGlvbkhhbmRsZXI6XSk6CisgICAgICAgICgtW1dLV2ViVmlldyBf
aW50ZXJuYWxEb0FmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZTp3aXRob3V0V2FpdGluZ0ZvclBh
aW50aW5nOndpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemU6XSk6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24ubW06CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tOgorICAgICAgICAoLVtXS1ZpZXcgX2RvQWZ0ZXJOZXh0
UHJlc2VudGF0aW9uVXBkYXRlOl0pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNl
c3Npb246OnRha2VTY3JlZW5zaG90KToKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9t
YWMvV2ViQXV0b21hdGlvblNlc3Npb25NYWMubW06CisgICAgICAgICogVUlQcm9jZXNzL0NvY29h
L1dlYlByb2Nlc3NQcm94eUNvY29hLm1tOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJW
aWV3SW1wbC5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oOgorICAg
ICAgICAoV2ViS2l0OjpEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3
aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvR2VuZXJpY0NhbGxiYWNrLmg6IFJlbW92ZWQuCisg
ICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eS5jcHA6CisgICAgICAgICogVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNw
ZWN0b3JWaWV3Q29udHJvbGxlci5tbToKKyAgICAgICAgKiBVSVByb2Nlc3MvTm90aWZpY2F0aW9u
cy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJveHkuY3BwOgorICAgICAgICAqIFVJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQ
cm94eS5tbToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6flJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkpOgorICAgICAgICAoV2ViS2l0OjpS
ZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRyZWUpOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVy
RW5zdXJpbmdEcmF3aW5nKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dENsaWVudC5j
cHA6CisgICAgICAgICogVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJGcmFtZVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6Zm9yY2VSZXBhaW50
KToKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpjYWxsQWZ0ZXJOZXh0UHJlc2VudGF0
aW9uVXBkYXRlKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Bvb2wuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvaW9zL1ZpZXdHZXN0dXJlQ29udHJv
bGxlcklPUy5tbToKKyAgICAgICAgKFdlYktpdDo6Vmlld0dlc3R1cmVDb250cm9sbGVyOjplbmRT
d2lwZUdlc3R1cmUpOgorICAgICAgICAqIFVJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVy
YWN0aW9uLm1tOgorICAgICAgICAoLVtXS0NvbnRlbnRWaWV3IHdpbGxGaW5pc2hJZ25vcmluZ0Nh
bGxvdXRCYXJGYWRlQWZ0ZXJQZXJmb3JtaW5nQWN0aW9uXSk6CisgICAgICAgICgtW1dLQ29udGVu
dFZpZXcgZHJhZ0ludGVyYWN0aW9uOml0ZW06d2lsbEFuaW1hdGVDYW5jZWxXaXRoQW5pbWF0b3I6
XSk6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJl
YVByb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSk6CisgICAg
ICAgIChXZWJLaXQ6OlRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNo
QWZ0ZXJFbnN1cmluZ0RyYXdpbmcpOgorICAgICAgICAoV2ViS2l0OjpUaWxlZENvcmVBbmltYXRp
b25EcmF3aW5nQXJlYVByb3h5OjpkaXNwYXRjaFByZXNlbnRhdGlvbkNhbGxiYWNrc0FmdGVyRmx1
c2hpbmdMYXllcnMpOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVuV2luZG93
Q29udHJvbGxlci5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50
Lm1tOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlQ29u
dGV4dC5tbToKKwogMjAyMS0wOS0yMSAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFJlbW92ZSB1bnVzZWQgc2VsZWN0aW9uIHBhcmFtZXRlci4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL0NhbGxiYWNrSUQuaCBiL1NvdXJjZS9XZWJL
aXQvU2hhcmVkL0NhbGxiYWNrSUQuaAppbmRleCAxNmUyOTZkNTUxMGE3MGM5MGVhMDUxN2NhOGZh
Nzc3MzhhZmUzYTU3Li45MjM4N2ZiNjc3OGY2NzFlN2I2ZThlYWExYTEwMDE2ZDFjN2VkN2FlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9DYWxsYmFja0lELmgKKysrIGIvU291cmNl
L1dlYktpdC9TaGFyZWQvQ2FsbGJhY2tJRC5oCkBAIC05OCw3ICs5OCw2IEBAIHByaXZhdGU6CiAg
ICAgICAgIEFTU0VSVChuZXdJRCAhPSBIYXNoVHJhaXRzPHVpbnQ2NF90Pjo6ZW1wdHlWYWx1ZSgp
KTsKICAgICB9CiAKLSAgICBmcmllbmQgY2xhc3MgQ2FsbGJhY2tNYXA7CiAgICAgdGVtcGxhdGUg
PHR5cGVuYW1lIENhbGxiYWNrVHlwZT4gZnJpZW5kIGNsYXNzIFNwZWNpZmljQ2FsbGJhY2tNYXA7
CiAgICAgZnJpZW5kIHN0cnVjdCBXVEY6OkNhbGxiYWNrSURIYXNoOwogICAgIGZyaWVuZCBIYXNo
VHJhaXRzPFdlYktpdDo6Q2FsbGJhY2tJRD47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlVHJhbnNhY3Rpb24uaCBiL1NvdXJj
ZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlv
bi5oCmluZGV4IDljZjI3ZTFmNGM0ODVmOTI1YWUyZDhkZjFhNzcxYTFkMTgyODU3MmIuLjE2Nzcw
ZWNmZjY3MDM0ZDU1ODU5YjFhNDljM2Q2ZDBmNjIzYmEwMzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVUcmFuc2FjdGlvbi5o
CisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRy
ZWVUcmFuc2FjdGlvbi5oCkBAIC0yNSwxMCArMjUsMTAgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNp
bmNsdWRlICJDYWxsYmFja0lELmgiCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFJbmZvLmgiCiAjaW5j
bHVkZSAiRHluYW1pY1ZpZXdwb3J0U2l6ZVVwZGF0ZS5oIgogI2luY2x1ZGUgIkVkaXRvclN0YXRl
LmgiCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSAiUGxhdGZvcm1DQUFu
aW1hdGlvblJlbW90ZS5oIgogI2luY2x1ZGUgIlJlbW90ZUxheWVyQmFja2luZ1N0b3JlLmgiCiAj
aW5jbHVkZSAiVHJhbnNhY3Rpb25JRC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9B
UElBdHRhY2htZW50LmgKaW5kZXggYWZhOTI5Y2YwOTNkMjJlYzc2YWQ4NmZkYTAzYjUwMWJiZmQy
OWRjMy4uZmJhYWU5NzMwNWFmZDVhYzY3NTEyZTZjNzJlMGFhYjE2Y2E0YjU4NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUF0dGFjaG1lbnQuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJQXR0YWNobWVudC5oCkBAIC0yOCw3ICsyOCw2IEBA
CiAjaWYgRU5BQkxFKEFUVEFDSE1FTlRfRUxFTUVOVCkKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIldLQmFzZS5oIgogI2lu
Y2x1ZGUgPHd0Zi9SZWZQdHIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUljb25Mb2FkaW5nQ2xpZW50LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJSWNvbkxvYWRpbmdDbGllbnQuaAppbmRleCBi
MWIxMWY1YzUxYTJhNDY4ZWEwYWNhNTJlMjYzNGYwZWJmYWEyMWE1Li41NmZhODc3ZjFlODkxYWM3
MThiOGIxYTRkZjIwOWY1ZDRiZGIxZGExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSWNvbkxvYWRpbmdDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJSWNvbkxvYWRpbmdDbGllbnQuaApAQCAtMjUsMTkgKzI1LDIwIEBACiAKICNw
cmFnbWEgb25jZQogCi0jaW5jbHVkZSAiR2VuZXJpY0NhbGxiYWNrLmgiCiAjaW5jbHVkZSA8V2Vi
Q29yZS9MaW5rSWNvbi5oPgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2lu
Y2x1ZGUgPHd0Zi9GdW5jdGlvbi5oPgogCiBuYW1lc3BhY2UgQVBJIHsKIAorY2xhc3MgRGF0YTsK
KwogY2xhc3MgSWNvbkxvYWRpbmdDbGllbnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVE
OwogcHVibGljOgogICAgIHZpcnR1YWwgfkljb25Mb2FkaW5nQ2xpZW50KCkgeyB9CiAKLSAgICB2
aXJ0dWFsIHZvaWQgZ2V0TG9hZERlY2lzaW9uRm9ySWNvbihjb25zdCBXZWJDb3JlOjpMaW5rSWNv
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChBUEk6OkRh
dGEqKT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCisgICAgdmlydHVhbCB2b2lkIGdldExvYWRE
ZWNpc2lvbkZvckljb24oY29uc3QgV2ViQ29yZTo6TGlua0ljb24mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRGF0YSopPiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKICAgICB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKG51bGxwdHIpOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElJbnNwZWN0b3JFeHRl
bnNpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVu
c2lvbi5jcHAKaW5kZXggODYyNjcyMDg4ZWIyOTcyZjZkNTVlMjM2Y2U3ZjMwOWM3MmQ1ZDE3NS4u
MTg2ZDZiMjQ2YjZjMTY3NmVkOTYzNjgxYWU2MGEzYzM3NmUxZTk5NyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbi5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSUluc3BlY3RvckV4dGVuc2lvbi5jcHAKQEAg
LTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKIAorI2lu
Y2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgogI2luY2x1ZGUgIkluc3BlY3RvckV4
dGVuc2lvblR5cGVzLmgiCiAjaW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9s
bGVyUHJveHkuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbkRldGFpbHMuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElVSUNsaWVudC5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgKaW5kZXggMmRiMGY1NjljYjIyNTA1
ODllN2VjMTYwNThkYWZiNWE2YTRlN2JmMC4uMmVmMmU3ZTcwYTM5MDJhMzU3OGE0ZDdkMDc0Njkz
NjAzYzQyYTM0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJ
Q2xpZW50LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVVJQ2xpZW50LmgK
QEAgLTI2LDYgKzI2LDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiQVBJSW5zcGVjdG9y
Q29uZmlndXJhdGlvbi5oIgorI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2luLmgiCiAjaW5jbHVk
ZSAiV0tQYWdlLmgiCiAjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJIaXRUZXN0
UmVzdWx0RGF0YS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Mv
V0tQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9DL1dLUGFnZS5jcHAKaW5k
ZXggMzQ5ZjkwMGUwYzc0MzJhMjFhYzA2YmM0ZDJlYjM4OTliNWNiZTQ2Zi4uNTE2MTBhZTg4M2Fm
MTE2MTMyNDFhN2ExZDgxOTU2YTZiZDRhNGIwOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQy9XS1BhZ2UuY3BwCkBAIC00NSw2ICs0NSw3IEBACiAjaW5jbHVkZSAiQVBJT3BlblBhbmVs
UGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVk
ZSAiQVBJUG9saWN5Q2xpZW50LmgiCisjaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZhbHVl
LmgiCiAjaW5jbHVkZSAiQVBJU2Vzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiQVBJVUlDbGllbnQu
aCIKICNpbmNsdWRlICJBUElXZWJBdXRoZW50aWNhdGlvblBhbmVsLmgiCkBAIC0zMDA1LDggKzMw
MDYsOCBAQCB2b2lkIFdLUGFnZUNsZWFyV2hlZWxFdmVudFRlc3RNb25pdG9yKFdLUGFnZVJlZiBw
YWdlUmVmKQogdm9pZCBXS1BhZ2VDYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdLUGFn
ZVJlZiBwYWdlUmVmLCB2b2lkKiBjb250ZXh0LCBXS1BhZ2VQb3N0UHJlc2VudGF0aW9uVXBkYXRl
RnVuY3Rpb24gY2FsbGJhY2spCiB7CiAgICAgQ1JBU0hfSUZfU1VTUEVOREVEOwotICAgIHRvSW1w
bChwYWdlUmVmKS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY29udGV4dCwgY2Fs
bGJhY2tdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikgewotICAgICAgICBjYWxs
YmFjayhlcnJvciAhPSBXZWJLaXQ6OkNhbGxiYWNrQmFzZTo6RXJyb3I6Ok5vbmUgPyB0b0FQSShB
UEk6OkVycm9yOjpjcmVhdGUoKS5wdHIoKSkgOiAwLCBjb250ZXh0KTsKKyAgICB0b0ltcGwocGFn
ZVJlZiktPmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW2NvbnRleHQsIGNhbGxiYWNr
XSgpIHsKKyAgICAgICAgY2FsbGJhY2sobnVsbHB0ciwgY29udGV4dCk7CiAgICAgfSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0
ZWRTdHJpbmcubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvTlNBdHRyaWJ1
dGVkU3RyaW5nLm1tCmluZGV4IGE4NGFiMmM3ZDEzOWJmNmYwYzY5YTRiMTY1ZjRmZjIwNzlmYjQw
OWUuLmMyMjBlNDQyMjc4MzUxMTMxZjk3NDRlNTllODUxZmNmMDdlMjBmZGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9OU0F0dHJpYnV0ZWRTdHJpbmcubW0K
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL05TQXR0cmlidXRlZFN0cmlu
Zy5tbQpAQCAtNDIsNiArNDIsNyBAQAogCiAjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKICNpbXBv
cnQgPFVJS2l0U1BJLmg+CisjaW1wb3J0IDxXZWJDb3JlL1dBS0FwcEtpdFN0dWJzLmg+CiAjZW5k
aWYKIAogTlNTdHJpbmcgKiBjb25zdCBOU1JlYWRBY2Nlc3NVUkxEb2N1bWVudE9wdGlvbiA9IEAi
UmVhZEFjY2Vzc1VSTCI7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0NvY29hL1dLQnJvd3NpbmdDb250ZXh0Q29udHJvbGxlci5tbQppbmRleCBlMDcx
MjZhYmJkOTQxMWFmZGMxMmIyYWJmZDA4YTRkMTA3MjQyMTkzLi5mNTNjOTJhNzE0YmE2M2ExYjVk
ZWJhNmFmN2ZjZjc1NTlkNDAzNzdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Jyb3dzaW5nQ29udGV4dENvbnRyb2xsZXIubW0K
QEAgLTMyLDYgKzMyLDcgQEAKICNpbXBvcnQgIlBhZ2VMb2FkU3RhdGVPYnNlcnZlci5oIgogI2lt
cG9ydCAiUmVtb3RlT2JqZWN0UmVnaXN0cnkuaCIKICNpbXBvcnQgIlJlbW90ZU9iamVjdFJlZ2lz
dHJ5TWVzc2FnZXMuaCIKKyNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAiV0tCYWNrRm9y
d2FyZExpc3RJbnRlcm5hbC5oIgogI2ltcG9ydCAiV0tCYWNrRm9yd2FyZExpc3RJdGVtSW50ZXJu
YWwuaCIKICNpbXBvcnQgIldLQnJvd3NpbmdDb250ZXh0R3JvdXBJbnRlcm5hbC5oIgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLRXJyb3JJbnRlcm5hbC5oCmlu
ZGV4IDExYmQxZjVkMjI3NDMyMjA5ZGFjMDgxYTZlYjIyZmNjODQzNjFkNzAuLjk2MjkwMTZiY2Y1
ZWJhMjNiYjFiNTY2MTIzMzMzNGZkNjEzYzZlMDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS0Vycm9ySW50ZXJuYWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tFcnJvckludGVybmFsLmgKQEAgLTI2LDcgKzI2LDYgQEAK
ICNpbXBvcnQgIldLRXJyb3JQcml2YXRlLmgiCiAKICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4K
LSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogCiBSZXRhaW5QdHI8TlNFcnJvcj4gY3JlYXRl
TlNFcnJvcihXS0Vycm9yQ29kZSwgTlNFcnJvciogdW5kZXJseWluZ0Vycm9yID0gbmlsKTsKIE5T
U3RyaW5nICpsb2NhbGl6ZWREZXNjcmlwdGlvbkZvckVycm9yQ29kZShXS0Vycm9yQ29kZSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlldy5tbQppbmRleCA5
NzQ4NWFhMzkzNjU2M2ZjMDIyMGMxMjBjNTJlODdiMmU3Y2YwNDMyLi5jNWMyMDU1ZTA5YmFiZWRl
YzhiNDFiOThmOGU3NzBkMzQ4NTc2MmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0FQSS9Db2NvYS9XS1dlYlZpZXcubW0KQEAgLTExNjgsNyArMTE2OCw5IEBAIHN0YXRpYyBXS01l
ZGlhUGxheWJhY2tTdGF0ZSB0b1dLTWVkaWFQbGF5YmFja1N0YXRlKFdlYktpdDo6TWVkaWFQbGF5
YmFja1N0YXRlIG1lCiAtICh2b2lkKXRha2VTbmFwc2hvdFdpdGhDb25maWd1cmF0aW9uOihXS1Nu
YXBzaG90Q29uZmlndXJhdGlvbiAqKXNuYXBzaG90Q29uZmlndXJhdGlvbiBjb21wbGV0aW9uSGFu
ZGxlcjoodm9pZCheKShDb2NvYUltYWdlICosIE5TRXJyb3IgKikpY29tcGxldGlvbkhhbmRsZXIK
IHsKICAgICBUSFJPV19JRl9TVVNQRU5ERUQ7CisjaWYgVVNFKEFQUEtJVCkKICAgICBjb25zdGV4
cHIgYm9vbCBzbmFwc2hvdEZhaWxlZFRyYWNlVmFsdWUgPSBmYWxzZTsKKyNlbmRpZgogICAgIHRy
YWNlUG9pbnQoVGFrZVNuYXBzaG90U3RhcnQpOwogCiAgICAgQ0dSZWN0IHJlY3RJblZpZXdDb29y
ZGluYXRlcyA9IHNuYXBzaG90Q29uZmlndXJhdGlvbiAmJiAhQ0dSZWN0SXNOdWxsKHNuYXBzaG90
Q29uZmlndXJhdGlvbi5yZWN0KSA/IHNuYXBzaG90Q29uZmlndXJhdGlvbi5yZWN0IDogc2VsZi5i
b3VuZHM7CkBAIC0xMjQzLDEzICsxMjQ1LDcgQEAgc3RhdGljIFdLTWVkaWFQbGF5YmFja1N0YXRl
IHRvV0tNZWRpYVBsYXliYWNrU3RhdGUoV2ViS2l0OjpNZWRpYVBsYXliYWNrU3RhdGUgbWUKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0
aW9uVXBkYXRlKFtjYWxsU25hcHNob3RSZWN0ID0gV1RGTW92ZShjYWxsU25hcHNob3RSZWN0KSwg
aGFuZGxlcl0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVycm9yKSBtdXRhYmxlIHsKLSAg
ICAgICAgaWYgKGVycm9yICE9IFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkgewot
ICAgICAgICAgICAgdHJhY2VQb2ludChUYWtlU25hcHNob3RFbmQsIHNuYXBzaG90RmFpbGVkVHJh
Y2VWYWx1ZSk7Ci0gICAgICAgICAgICBoYW5kbGVyKG5pbCwgY3JlYXRlTlNFcnJvcihXS0Vycm9y
VW5rbm93bikuZ2V0KCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KKyAgICBf
cGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbY2FsbFNuYXBzaG90UmVjdCA9
IFdURk1vdmUoY2FsbFNuYXBzaG90UmVjdCksIGhhbmRsZXJdKCkgbXV0YWJsZSB7CiAgICAgICAg
IC8vIENyZWF0ZSBhbiBpbXBsaWNpdCB0cmFuc2FjdGlvbiB0byBlbnN1cmUgYSBjb21taXQgd2ls
bCBoYXBwZW4gbmV4dC4KICAgICAgICAgW0NBVHJhbnNhY3Rpb24gYWN0aXZhdGVdOwogCkBAIC0x
NTE5LDcgKzE1MTUsNyBAQCBpbmxpbmUgT3B0aW9uU2V0PFdlYktpdDo6RmluZE9wdGlvbnM+IHRv
RmluZE9wdGlvbnMoV0tGaW5kQ29uZmlndXJhdGlvbiAqY29uZmlndQogICAgIGF1dG8gdXBkYXRl
QmxvY2tDb3B5ID0gbWFrZUJsb2NrUHRyKHVwZGF0ZUJsb2NrKTsKIAogICAgIFJldGFpblB0cjxX
S1dlYlZpZXc+IHN0cm9uZ1NlbGYgPSBzZWxmOwotICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJl
c2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9ja0NvcHksIHdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0
ZWRSZXNpemUsIHN0cm9uZ1NlbGZdKFdlYktpdDo6Q2FsbGJhY2tCYXNlOjpFcnJvciBlcnJvcikg
eworICAgIF9wYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFt1cGRhdGVCbG9j
a0NvcHksIHdpdGhvdXRXYWl0aW5nRm9yQW5pbWF0ZWRSZXNpemUsIHN0cm9uZ1NlbGZdIHsKICAg
ICAgICAgaWYgKCF1cGRhdGVCbG9ja0NvcHkpCiAgICAgICAgICAgICByZXR1cm47CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRl
bnNpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLSW5zcGVjdG9y
RXh0ZW5zaW9uLm1tCmluZGV4IDQ2NTYxZDM0MzE0YTc5ZDQyYzU3ZTU5YmY3OTI3YWQxZmE0NTEw
NDUuLmJhNWJlNzA3MGRlNDBmMDYzZDM2Yjg4ZjljNGM0ZjllMGNlZWU5ZWUgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tJbnNwZWN0b3JFeHRlbnNpb24u
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS0luc3BlY3RvckV4
dGVuc2lvbi5tbQpAQCAtMjgsNiArMjgsNyBAQAogCiAjaWYgRU5BQkxFKElOU1BFQ1RPUl9FWFRF
TlNJT05TKQogCisjaW1wb3J0ICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbXBvcnQg
Ikluc3BlY3RvckV4dGVuc2lvbkRlbGVnYXRlLmgiCiAjaW1wb3J0ICJJbnNwZWN0b3JFeHRlbnNp
b25UeXBlcy5oIgogI2ltcG9ydCAiV0tFcnJvci5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Q29udGV4dE1lbnVDbGllbnQuY3BwCmlu
ZGV4IDI4NThkZjZmMzRkNGZhNjIxMjA5YmYxZWIxZTEwODg1YWQwNWU3NTkuLjg4MWFhZDU5NGY0
NGM0ZmEwNDBjZjkzZWFmMjVkMDMzNmRkN2MzZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdENvbnRleHRNZW51Q2xpZW50LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRDb250ZXh0TWVudUNsaWVudC5jcHAK
QEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJXZWJLaXRDb250ZXh0TWVudUNsaWVudC5oIgog
CiAjaW5jbHVkZSAiQVBJQ29udGV4dE1lbnVDbGllbnQuaCIKKyNpbmNsdWRlICJBUElTdHJpbmcu
aCIKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW0uaCIKICNpbmNsdWRlICJXZWJLaXRXZWJW
aWV3UHJpdmF0ZS5oIgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRGaW5kQ29udHJvbGxlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRGaW5kQ29udHJvbGxlci5jcHAKaW5kZXggZmVmNWJhMzhhNjhjM2FiMGE5
MmExM2YzOGIwYjU1ZThjMzU0NmQ2OC4uYjc2ZmFiNThlOGM0MDY2Yjk3Zjk4YTNiNDdmOWYyMGZl
NWZjOGU3ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2Vi
S2l0RmluZENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9n
bGliL1dlYktpdEZpbmRDb250cm9sbGVyLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUg
IldlYktpdEZpbmRDb250cm9sbGVyLmgiCiAKICNpbmNsdWRlICJBUElGaW5kQ2xpZW50LmgiCisj
aW5jbHVkZSAiV2ViRmluZE9wdGlvbnMuaCIKICNpbmNsdWRlICJXZWJLaXRFbnVtVHlwZXMuaCIK
ICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgPGdsaWIvZ2kxOG4t
bGliLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJL
aXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Z2xpYi9XZWJLaXRJbmplY3RlZEJ1bmRsZUNsaWVudC5jcHAKaW5kZXggOTI2MmE4NGRlY2UyNWJm
MGJkZjVjNTliNDhkMDAyNTg1MmYzNmJhNy4uYWUzNTkwY2E5MjcwNGJjMjlkMTdhZjM0NjQzOGEz
ZmU1ZTQxNDEzNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0SW5qZWN0ZWRCdW5kbGVDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0FQSS9nbGliL1dlYktpdEluamVjdGVkQnVuZGxlQ2xpZW50LmNwcApAQCAtMjAsNyArMjAs
MTIgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXZWJLaXRJbmplY3RlZEJ1bmRs
ZUNsaWVudC5oIgogCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIKICNpbmNsdWRlICJBUElJbmplY3Rl
ZEJ1bmRsZUNsaWVudC5oIgorI2luY2x1ZGUgIkFQSU51bWJlci5oIgorI2luY2x1ZGUgIkFQSVN0
cmluZy5oIgorI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKKyNpbmNsdWRlICJBUElVUkxSZXNw
b25zZS5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViS2l0UHJpdmF0ZS5o
IgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3RQcml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Qcm92aWRlci5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXROb3RpZmljYXRpb25Q
cm92aWRlci5jcHAKaW5kZXggNTUxNjM2NDQ3NzU1NzQ3YjcwYWM1ZTc2YjFkMTA0ZDYxYzBiNWNh
OC4uMDM1Yzk5YmFmMWMxNmQyMGY2MTY4OGQ3ZTI5ZmRiNGJlMmE5YWUwYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0Tm90aWZpY2F0aW9uUHJvdmlk
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdE5vdGlm
aWNhdGlvblByb3ZpZGVyLmNwcApAQCAtMjksNiArMjksNyBAQAogCiAjaW5jbHVkZSAiQVBJQXJy
YXkuaCIKICNpbmNsdWRlICJBUElOb3RpZmljYXRpb25Qcm92aWRlci5oIgorI2luY2x1ZGUgIkFQ
SU51bWJlci5oIgogI2luY2x1ZGUgIldlYktpdE5vdGlmaWNhdGlvblByaXZhdGUuaCIKICNpbmNs
dWRlICJXZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdQ
cml2YXRlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJSZXNvdXJjZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9X
ZWJLaXRXZWJSZXNvdXJjZS5jcHAKaW5kZXggNmQ2YjIzY2U5Yjg1N2Y2ODk0NmM4OTgzMDIwMTVj
OTg2MzRjOWU4ZC4uOTFiOTAyOTAxOGQ3NmEwMjYxNmY4ZGM1MzY4MzE4ZTE5ZWE5MDE0ZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViUmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlJl
c291cmNlLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlJlc291cmNl
LmgiCiAKICNpbmNsdWRlICJBUElEYXRhLmgiCisjaW5jbHVkZSAiQVBJVVJMLmgiCiAjaW5jbHVk
ZSAiV2ViRnJhbWVQcm94eS5oIgogI2luY2x1ZGUgIldlYktpdFVSSVJlcXVlc3QuaCIKICNpbmNs
dWRlICJXZWJLaXRXZWJSZXNvdXJjZVByaXZhdGUuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggNTU0MzRkOGEwOWZjZmFi
Nzk1NGYyYTdlZGMyNzk5NmRlNDA5NTZkZC4uNTRmMDUzYWI3M2Q3YWJhZjk4NTJmZjgyMzBkNjc4
ZmNkYzkwMTg0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIv
V2ViS2l0V2ViVmlldy5jcHAKQEAgLTI1LDYgKzI1LDcgQEAKICNpbmNsdWRlICJBUElDb250ZW50
V29ybGQuaCIKICNpbmNsdWRlICJBUElEYXRhLmgiCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlvbi5o
IgorI2luY2x1ZGUgIkFQSU51bWJlci5oIgogI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZS5oIgogI2luY2x1ZGUgIkRhdGFSZWZlcmVuY2UuaCIKICNpbmNsdWRlICJJbWFnZU9wdGlv
bnMuaCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
UHJpbnRPcGVyYXRpb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRQcmludE9wZXJhdGlvbi5jcHAKaW5kZXggYTIzZWNjNDU0YzJhODU3NjUwNzEyZTM2MDQ0NmEw
NDk1ZTM5MGZhMi4uZDVlZjJjZmU2Y2FkMGY5OTE4MTE2NGMxOWNlNTE5ZThhMmZjYzMxYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmludE9wZXJh
dGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRQcmlu
dE9wZXJhdGlvbi5jcHAKQEAgLTIwLDYgKzIwLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNp
bmNsdWRlICJXZWJLaXRQcmludE9wZXJhdGlvbi5oIgogCisjaW5jbHVkZSAiQVBJRXJyb3IuaCIK
ICNpbmNsdWRlICJXZWJLaXRQcmludEN1c3RvbVdpZGdldFByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRQcmludE9wZXJhdGlvblByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRQcml2YXRlLmgi
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvbWFjL1dLVmlldy5tbSBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tWaWV3Lm1tCmluZGV4IDViYmRlZDI3
NTRmOWMyMzQwNDE4NGZmMmEyMWQ1ZTVlZWI5YmM1OGIuLjI3MzViYmY3MzllMDg2MTFiMjJlOWI2
ZjE3YTEwM2EzYmU5ZmYzNWIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9tYWMvV0tWaWV3Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9tYWMvV0tW
aWV3Lm1tCkBAIC0xNjc3LDcgKzE2NzcsNyBAQCBzdGF0aWMgV2ViQ29yZTo6VXNlckludGVyZmFj
ZUxheW91dERpcmVjdGlvbiB0b1VzZXJJbnRlcmZhY2VMYXlvdXREaXJlY3Rpb24oTlNVcwogLSAo
dm9pZClfZG9BZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGU6KHZvaWQgKF4pKHZvaWQpKXVwZGF0
ZUJsb2NrCiB7CiAgICAgYXV0byB1cGRhdGVCbG9ja0NvcHkgPSBtYWtlQmxvY2tQdHIodXBkYXRl
QmxvY2spOwotICAgIF9kYXRhLT5faW1wbC0+cGFnZSgpLmNhbGxBZnRlck5leHRQcmVzZW50YXRp
b25VcGRhdGUoW3VwZGF0ZUJsb2NrQ29weV0oV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yIGVy
cm9yKSB7CisgICAgX2RhdGEtPl9pbXBsLT5wYWdlKCkuY2FsbEFmdGVyTmV4dFByZXNlbnRhdGlv
blVwZGF0ZShbdXBkYXRlQmxvY2tDb3B5XSB7CiAgICAgICAgIGlmICh1cGRhdGVCbG9ja0NvcHkp
CiAgICAgICAgICAgICB1cGRhdGVCbG9ja0NvcHkoKTsKICAgICB9KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Npb24uY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKaW5kZXggMDBkZTAzNjVhYTI2MjdkOTIxMzhlZjhlZmZjNTEzMjk4ZDUxOWVjOC4uMTcz
YTM4M2MwYWI5OTgwMzk4ZWJlNDY0YjM2MTIxMTZkZjg4OGMzMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJBUElBdXRvbWF0aW9uU2Vzc2lvbkNs
aWVudC5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb24uaCIKICNpbmNsdWRlICJBUElPcGVuUGFu
ZWxQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSAiQVBJU3RyaW5nLmgiCiAjaW5jbHVkZSAiQXV0b21h
dGlvblByb3RvY29sT2JqZWN0cy5oIgogI2luY2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKICNp
bmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgpAQCAtMjIwNSw5ICsyMjA2LDcg
QEAgdm9pZCBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6dGFrZVNjcmVlbnNob3QoY29uc3QgSW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjoKIAogI2lmIFBMQVRGT1JNKEdUSykKICAgICBGdW5j
dGlvbjx2b2lkKFdlYlBhZ2VQcm94eSYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4m
JiwgUmVmPFRha2VTY3JlZW5zaG90Q2FsbGJhY2s+JiYpPiB0YWtlVmlld1NuYXBzb3QgPSBbXShX
ZWJQYWdlUHJveHkmIHBhZ2UsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6SW50UmVjdD4mJiByZWN0
LCBSZWY8VGFrZVNjcmVlbnNob3RDYWxsYmFjaz4mJiBjYWxsYmFjaykgewotICAgICAgICBwYWdl
LmNhbGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoW3BhZ2UgPSBtYWtlUmVmKHBhZ2UpLCBy
ZWN0ID0gV1RGTW92ZShyZWN0KSwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oQ2FsbGJh
Y2tCYXNlOjpFcnJvciBlcnJvcikgbXV0YWJsZSB7Ci0gICAgICAgICAgICBpZiAoZXJyb3IgIT0g
Q2FsbGJhY2tCYXNlOjpFcnJvcjo6Tm9uZSkKLSAgICAgICAgICAgICAgICBBU1lOQ19GQUlMX1dJ
VEhfUFJFREVGSU5FRF9FUlJPUihJbnRlcm5hbEVycm9yKTsKKyAgICAgICAgcGFnZS5jYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtwYWdlID0gbWFrZVJlZihwYWdlKSwgcmVjdCA9IFdU
Rk1vdmUocmVjdCksIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0YWJsZSB7CiAK
ICAgICAgICAgICAgIGF1dG8gc25hcHNob3QgPSBwYWdlLT50YWtlVmlld1NuYXBzaG90KFdURk1v
dmUocmVjdCkpOwogICAgICAgICAgICAgaWYgKCFzbmFwc2hvdCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vbWFjL1dlYkF1dG9tYXRpb25TZXNzaW9uTWFj
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlv
blNlc3Npb25NYWMubW0KaW5kZXggNWZjZDgxZDE0ZmYyNmMxZjRkYWM3NjU4N2Q4YmI3NWI0NDc2
NWU3ZC4uMmQwZDUzOTA2YTdhM2RiZjgzNWMzNjE4ODUxYWZlYWMyYTA3NzU0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMvV2ViQXV0b21hdGlvblNl
c3Npb25NYWMubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9tYWMv
V2ViQXV0b21hdGlvblNlc3Npb25NYWMubW0KQEAgLTMxLDYgKzMxLDcgQEAKICNpbXBvcnQgIkxv
Z2dpbmcuaCIKICNpbXBvcnQgIldlYkF1dG9tYXRpb25TZXNzaW9uTWFjcm9zLmgiCiAjaW1wb3J0
ICJXZWJJbnNwZWN0b3JVSVByb3h5LmgiCisjaW1wb3J0ICJXZWJNb3VzZUV2ZW50LmgiCiAjaW1w
b3J0ICJXZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgIl9XS0F1dG9tYXRpb25TZXNzaW9uLmgiCiAj
aW1wb3J0IDxDYXJib24vQ2FyYm9uLmg+CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db2NvYS9XZWJQcm9jZXNzUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL0NvY29hL1dlYlByb2Nlc3NQcm94eUNvY29hLm1tCmluZGV4IDgyOTI4YjFiNWQyYjYyZDJh
ZTRkMjdmNmYzZWMzMWZiZTU3YWUzMzQuLmY0OTYyZjQ4ZDcwMzYwNTM3OWYxNzY2MGYxODZlZjI1
MGE3Mjc3ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBy
b2Nlc3NQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dl
YlByb2Nlc3NQcm94eUNvY29hLm1tCkBAIC0zMyw2ICszMyw3IEBACiAjaW1wb3J0ICJPYmpDT2Jq
ZWN0R3JhcGguaCIKICNpbXBvcnQgIlNhbmRib3hVdGlsaXRpZXMuaCIKICNpbXBvcnQgIlNoYXJl
ZEJ1ZmZlckRhdGFSZWZlcmVuY2UuaCIKKyNpbXBvcnQgIldLQVBJQ2FzdC5oIgogI2ltcG9ydCAi
V0tCcm93c2luZ0NvbnRleHRDb250cm9sbGVySW50ZXJuYWwuaCIKICNpbXBvcnQgIldLQnJvd3Np
bmdDb250ZXh0SGFuZGxlSW50ZXJuYWwuaCIKICNpbXBvcnQgIldLVHlwZVJlZldyYXBwZXIuaCIK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlZpZXdJbXBsLm1t
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViVmlld0ltcGwubW0KaW5kZXggOWFh
YjdmYjY4NmJmNmU1NmFiNTM2MmNkN2ZkZjJkYzk5OWY0YjVjNS4uZGU4NWFiYTViZmRmMjA0OTA4
MmQ0Yjc4MmQwODNkNzJiOTEyOTM1YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViVmlld0ltcGwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViVmlld0ltcGwubW0KQEAgLTM2LDcgKzM2LDYgQEAKICNpbXBvcnQgIkNvcmVUZXh0SGVs
cGVycy5oIgogI2ltcG9ydCAiRm9udEluZm8uaCIKICNpbXBvcnQgIkZ1bGxzY3JlZW5DbGllbnQu
aCIKLSNpbXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCAiSW5zZXJ0VGV4dE9wdGlv
bnMuaCIKICNpbXBvcnQgIkxvZ2dpbmcuaCIKICNpbXBvcnQgIk5hdGl2ZVdlYkdlc3R1cmVFdmVu
dC5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFw
aGljcy9EcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGlu
YXRlZEdyYXBoaWNzLmNwcAppbmRleCAwMzhkOWVlMmY0MWNkZWJhNGFlN2I1OTczMTFiNjYzYTU4
YjZkNjI5Li5mOTU1NjI4MDE4ODNkNWE4MzVjZDg5YTU0NjdlNjQ0NTFlNTVlZDQ3IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdB
cmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9Db29yZGluYXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBo
aWNzLmNwcApAQCAtNDE3LDcgKzQxNyw3IEBAIGludCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0
ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OndlYlZpZXdEcmF3Q2FsbGJhY2soRHJhCiAgICAg
cmV0dXJuIGZhbHNlOwogfQogCi12b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBo
aWNzOjpEcmF3aW5nTW9uaXRvcjo6c3RhcnQoV1RGOjpGdW5jdGlvbjx2b2lkKENhbGxiYWNrQmFz
ZTo6RXJyb3IpPiYmIGNhbGxiYWNrKQordm9pZCBEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRH
cmFwaGljczo6RHJhd2luZ01vbml0b3I6OnN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJiBjYWxsYmFj
aykKIHsKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWU6Om5vdygpOwogICAgIG1fY2Fs
bGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKTsKQEAgLTQ0MSwxMCArNDQxLDggQEAgdm9pZCBEcmF3
aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJhd2luZ01vbml0b3I6OnN0b3AoKQog
ICAgIGdfc2lnbmFsX2hhbmRsZXJzX2Rpc2Nvbm5lY3RfYnlfZnVuYyhtX3dlYlBhZ2Uudmlld1dp
ZGdldCgpLCByZWludGVycHJldF9jYXN0PGdwb2ludGVyPih3ZWJWaWV3RHJhd0NhbGxiYWNrKSwg
dGhpcyk7CiAjZW5kaWYKICAgICBtX3N0YXJ0VGltZSA9IE1vbm90b25pY1RpbWUoKTsKLSAgICBp
ZiAobV9jYWxsYmFjaykgewotICAgICAgICBtX2NhbGxiYWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6
Ok5vbmUpOwotICAgICAgICBtX2NhbGxiYWNrID0gbnVsbHB0cjsKLSAgICB9CisgICAgaWYgKGF1
dG8gY2FsbGJhY2sgPSBzdGQ6OmV4Y2hhbmdlKG1fY2FsbGJhY2ssIG51bGxwdHIpKQorICAgICAg
ICBjYWxsYmFjaygpOwogfQogCiB2b2lkIERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBo
aWNzOjpEcmF3aW5nTW9uaXRvcjo6ZGlkRHJhdygpCkBAIC00NTgsMTIgKzQ1NiwxMCBAQCB2b2lk
IERyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzOjpEcmF3aW5nTW9uaXRvcjo6ZGlk
RHJhdygpCiAgICAgICAgIG1fdGltZXIuc3RhcnRPbmVTaG90KDE2X21zKTsKIH0KIAotdm9pZCBE
cmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5n
RHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJh
Y2tGdW5jdGlvbikKK3ZvaWQgRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3M6OmRp
c3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrRnVu
Y3Rpb24pCiB7Ci0gICAgaWYgKCFtX3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7
Ci0gICAgICAgIGNhbGxiYWNrRnVuY3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJ
bnZhbGlkYXRlZCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9CisgICAgaWYgKCFtX3dlYlBhZ2VQ
cm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKQorICAgICAgICByZXR1cm4gY2FsbGJhY2tGdW5jdGlv
bigpOwogCiAgICAgaWYgKCFtX2RyYXdpbmdNb25pdG9yKQogICAgICAgICBtX2RyYXdpbmdNb25p
dG9yID0gbWFrZVVuaXF1ZTxEcmF3aW5nQXJlYVByb3h5Q29vcmRpbmF0ZWRHcmFwaGljczo6RHJh
d2luZ01vbml0b3I+KG1fd2ViUGFnZVByb3h5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3MvRHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVk
R3JhcGhpY3MuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nvb3JkaW5hdGVkR3JhcGhpY3Mv
RHJhd2luZ0FyZWFQcm94eUNvb3JkaW5hdGVkR3JhcGhpY3MuaAppbmRleCBiMjNhNDVmZjdkMzEz
MzE3ZDhiYTY0ZmI0MzBlYmJhM2I2YWRlZjcxLi4wYzE1YWNiNGI4MmFkNmZiYzQ5M2Y1N2ZiNDZm
MzZlNmE4YTU3YTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db29yZGlu
YXRlZEdyYXBoaWNzL0RyYXdpbmdBcmVhUHJveHlDb29yZGluYXRlZEdyYXBoaWNzLmgKKysrIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29vcmRpbmF0ZWRHcmFwaGljcy9EcmF3aW5nQXJlYVBy
b3h5Q29vcmRpbmF0ZWRHcmFwaGljcy5oCkBAIC04OCw3ICs4OCw3IEBAIHByaXZhdGU6CiAgICAg
dm9pZCBkaXNjYXJkQmFja2luZ1N0b3JlKCk7CiAjZW5kaWYKIAotICAgIHZvaWQgZGlzcGF0Y2hB
ZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpIG92ZXJyaWRlOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhG
dW5jdGlvbjx2b2lkKCk+JiYpIG92ZXJyaWRlOwogCiAgICAgY2xhc3MgRHJhd2luZ01vbml0b3Ig
ewogICAgICAgICBXVEZfTUFLRV9OT05DT1BZQUJMRShEcmF3aW5nTW9uaXRvcik7IFdURl9NQUtF
X0ZBU1RfQUxMT0NBVEVEOwpAQCAtOTYsNyArOTYsNyBAQCBwcml2YXRlOgogICAgICAgICBEcmF3
aW5nTW9uaXRvcihXZWJQYWdlUHJveHkmKTsKICAgICAgICAgfkRyYXdpbmdNb25pdG9yKCk7CiAK
LSAgICAgICAgdm9pZCBzdGFydChXVEY6OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJv
cik+JiYpOworICAgICAgICB2b2lkIHN0YXJ0KEZ1bmN0aW9uPHZvaWQoKT4mJik7CiAKICAgICBw
cml2YXRlOgogICAgICAgICBzdGF0aWMgaW50IHdlYlZpZXdEcmF3Q2FsbGJhY2soRHJhd2luZ01v
bml0b3IqKTsKQEAgLTEwNSw3ICsxMDUsNyBAQCBwcml2YXRlOgogICAgICAgICB2b2lkIGRpZERy
YXcoKTsKIAogICAgICAgICBNb25vdG9uaWNUaW1lIG1fc3RhcnRUaW1lOwotICAgICAgICBXVEY6
OkZ1bmN0aW9uPHZvaWQoQ2FsbGJhY2tCYXNlOjpFcnJvcik+IG1fY2FsbGJhY2s7CisgICAgICAg
IEZ1bmN0aW9uPHZvaWQoKT4gbV9jYWxsYmFjazsKICAgICAgICAgUnVuTG9vcDo6VGltZXI8RHJh
d2luZ01vbml0b3I+IG1fdGltZXI7CiAjaWYgUExBVEZPUk0oR1RLKQogICAgICAgICBXZWJQYWdl
UHJveHkmIG1fd2ViUGFnZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Ry
YXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0RyYXdpbmdBcmVhUHJv
eHkuaAppbmRleCBiYWJjNTUzZDE3MGZjNzFkNTgyZTI2NDI2ZThjZjkwM2E5ZTgwZDMzLi5mMWNk
NDQ5ODA3YzY1NWZkM2U1YjQ2NTZkOTUwNjhmMjQ4NjNjODI5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9EcmF3aW5nQXJlYVByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvRHJhd2luZ0FyZWFQcm94eS5oCkBAIC0yNiw4ICsyNiw4IEBACiAKICNwcmFnbWEg
b25jZQogCisjaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgogI2luY2x1ZGUgIkRyYXdpbmdBcmVhSW5m
by5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNl
aXZlci5oIgogI2luY2x1ZGUgIk1lc3NhZ2VTZW5kZXIuaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Zs
b2F0UmVjdC5oPgpAQCAtOTgsNyArOTgsNyBAQCBwdWJsaWM6CiAKICAgICB2aXJ0dWFsIHZvaWQg
d2FpdEZvckRpZFVwZGF0ZUFjdGl2aXR5U3RhdGUoQWN0aXZpdHlTdGF0ZUNoYW5nZUlEKSB7IH0K
ICAgICAKLSAgICB2aXJ0dWFsIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6
OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSB7IEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOyB9CisgICAgdmlydHVhbCB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmco
RnVuY3Rpb248dm9pZCgpPiYmKSB7IEFTU0VSVF9OT1RfUkVBQ0hFRCgpOyB9CiAKICAgICAvLyBI
aWRlIHRoZSBjb250ZW50IHVudGlsIHRoZSBjdXJyZW50bHkgcGVuZGluZyB1cGRhdGUgYXJyaXZl
cy4KICAgICB2aXJ0dWFsIHZvaWQgaGlkZUNvbnRlbnRVbnRpbFBlbmRpbmdVcGRhdGUoKSB7IEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9HZW5lcmljQ2FsbGJhY2suaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxs
YmFjay5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0Nzk4ZDc3N2JlNmNmZTc1N2Zi
ZGRjYWQwOTlmOTBkZThjYjRlMmU1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0dlbmVyaWNDYWxsYmFjay5oCisr
KyAvZGV2L251bGwKQEAgLTEsMjEwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTAg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKLSAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAotICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCi0gKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCi0gKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgotICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
Ci0gKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgotICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKLSAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
LSAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jcHJhZ21hIG9uY2UK
LQotI2luY2x1ZGUgIkFQSUVycm9yLmgiCi0jaW5jbHVkZSAiQVBJU2VyaWFsaXplZFNjcmlwdFZh
bHVlLmgiCi0jaW5jbHVkZSAiQ2FsbGJhY2tJRC5oIgotI2luY2x1ZGUgIlByb2Nlc3NUaHJvdHRs
ZXIuaCIKLSNpbmNsdWRlICJTaGFyZWFibGVCaXRtYXAuaCIKLSNpbmNsdWRlICJXS0FQSUNhc3Qu
aCIKLSNpbmNsdWRlIDx3dGYvRnVuY3Rpb24uaD4KLSNpbmNsdWRlIDx3dGYvSGFzaE1hcC5oPgot
I2luY2x1ZGUgPHd0Zi9NYWluVGhyZWFkLmg+Ci0jaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQuaD4K
LSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nLmg+Ci0KLW5hbWVzcGFjZSBXZWJLaXQgewotCi1jbGFz
cyBDYWxsYmFja0Jhc2UgOiBwdWJsaWMgUmVmQ291bnRlZDxDYWxsYmFja0Jhc2U+IHsKLXB1Ymxp
YzoKLSAgICBlbnVtIGNsYXNzIEVycm9yIHsKLSAgICAgICAgTm9uZSwKLSAgICAgICAgVW5rbm93
biwKLSAgICAgICAgUHJvY2Vzc0V4aXRlZCwKLSAgICAgICAgT3duZXJXYXNJbnZhbGlkYXRlZCwK
LSAgICB9OwotCi0gICAgdmlydHVhbCB+Q2FsbGJhY2tCYXNlKCkKLSAgICB7Ci0gICAgfQotCi0g
ICAgQ2FsbGJhY2tJRCBjYWxsYmFja0lEKCkgY29uc3QgeyByZXR1cm4gbV9jYWxsYmFja0lEOyB9
Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBUPgotICAgIFQqIGFzKCkKLSAgICB7Ci0gICAgICAgIGlm
IChUOjp0eXBlKCkgPT0gbV90eXBlKQotICAgICAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQq
Pih0aGlzKTsKLQotICAgICAgICByZXR1cm4gbnVsbHB0cjsKLSAgICB9Ci0KLSAgICB2aXJ0dWFs
IHZvaWQgaW52YWxpZGF0ZShFcnJvcikgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgc3RydWN0IFR5
cGVUYWcgeyB9OwotICAgIHR5cGVkZWYgY29uc3QgVHlwZVRhZyogVHlwZTsKLQotICAgIGV4cGxp
Y2l0IENhbGxiYWNrQmFzZShUeXBlIHR5cGUsIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFy
aWFudCYmIGFjdGl2aXR5KQotICAgICAgICA6IG1fdHlwZSh0eXBlKQotICAgICAgICAsIG1fY2Fs
bGJhY2tJRChDYWxsYmFja0lEOjpnZW5lcmF0ZUlEKCkpCi0gICAgICAgICwgbV9hY3Rpdml0eShX
VEZNb3ZlKGFjdGl2aXR5KSkKLSAgICB7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIFR5cGUgbV90
eXBlOwotICAgIENhbGxiYWNrSUQgbV9jYWxsYmFja0lEOwotICAgIFByb2Nlc3NUaHJvdHRsZXI6
OkFjdGl2aXR5VmFyaWFudCBtX2FjdGl2aXR5OwotfTsKLQotdGVtcGxhdGU8dHlwZW5hbWUuLi4g
VD4KLWNsYXNzIEdlbmVyaWNDYWxsYmFjayA6IHB1YmxpYyBDYWxsYmFja0Jhc2UgewotcHVibGlj
OgotICAgIHR5cGVkZWYgRnVuY3Rpb248dm9pZCAoVC4uLiwgRXJyb3IpPiBDYWxsYmFja0Z1bmN0
aW9uOwotCi0gICAgc3RhdGljIFJlZjxHZW5lcmljQ2FsbGJhY2s+IGNyZWF0ZShDYWxsYmFja0Z1
bmN0aW9uJiYgY2FsbGJhY2ssIFByb2Nlc3NUaHJvdHRsZXI6OkFjdGl2aXR5VmFyaWFudCYmIGFj
dGl2aXR5ID0gbnVsbHB0cikKLSAgICB7Ci0gICAgICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEdl
bmVyaWNDYWxsYmFjayhXVEZNb3ZlKGNhbGxiYWNrKSwgV1RGTW92ZShhY3Rpdml0eSkpKTsKLSAg
ICB9Ci0KLSAgICB2aXJ0dWFsIH5HZW5lcmljQ2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgQVNT
RVJUKG1fb3JpZ2luVGhyZWFkLnB0cigpID09ICZUaHJlYWQ6OmN1cnJlbnQoKSk7Ci0gICAgICAg
IEFTU0VSVCghbV9jYWxsYmFjayk7Ci0gICAgfQotCi0gICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2tX
aXRoUmV0dXJuVmFsdWUoVC4uLiByZXR1cm5WYWx1ZSkKLSAgICB7Ci0gICAgICAgIEFTU0VSVCht
X29yaWdpblRocmVhZC5wdHIoKSA9PSAmVGhyZWFkOjpjdXJyZW50KCkpOwotCi0gICAgICAgIGlm
ICghbV9jYWxsYmFjaykKLSAgICAgICAgICAgIHJldHVybjsKLQotICAgICAgICBhdXRvIGNhbGxi
YWNrID0gc3RkOjpleGNoYW5nZShtX2NhbGxiYWNrLCBzdGQ6Om51bGxvcHQpOwotICAgICAgICBj
YWxsYmFjay52YWx1ZSgpKHJldHVyblZhbHVlLi4uLCBFcnJvcjo6Tm9uZSk7Ci0gICAgfQotCi0g
ICAgdm9pZCBwZXJmb3JtQ2FsbGJhY2soKQotICAgIHsKLSAgICAgICAgcGVyZm9ybUNhbGxiYWNr
V2l0aFJldHVyblZhbHVlKCk7Ci0gICAgfQotCi0gICAgdm9pZCBpbnZhbGlkYXRlKEVycm9yIGVy
cm9yID0gRXJyb3I6OlVua25vd24pIGZpbmFsCi0gICAgewotICAgICAgICBBU1NFUlQobV9vcmln
aW5UaHJlYWQucHRyKCkgPT0gJlRocmVhZDo6Y3VycmVudCgpKTsKLQotICAgICAgICBpZiAoIW1f
Y2FsbGJhY2spCi0gICAgICAgICAgICByZXR1cm47Ci0KLSAgICAgICAgYXV0byBjYWxsYmFjayA9
IHN0ZDo6ZXhjaGFuZ2UobV9jYWxsYmFjaywgc3RkOjpudWxsb3B0KTsKLSAgICAgICAgY2FsbGJh
Y2sudmFsdWUoKSh0eXBlbmFtZSBzdGQ6OnJlbW92ZV9yZWZlcmVuY2U8VD46OnR5cGUoKS4uLiwg
ZXJyb3IpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBHZW5lcmljQ2FsbGJhY2soQ2FsbGJhY2tG
dW5jdGlvbiYmIGNhbGxiYWNrLCBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBh
Y3Rpdml0eSkKLSAgICAgICAgOiBDYWxsYmFja0Jhc2UodHlwZSgpLCBXVEZNb3ZlKGFjdGl2aXR5
KSkKLSAgICAgICAgLCBtX2NhbGxiYWNrKFdURk1vdmUoY2FsbGJhY2spKQotICAgIHsKLSAgICB9
Ci0KLSAgICBmcmllbmQgY2xhc3MgQ2FsbGJhY2tCYXNlOwotICAgIHN0YXRpYyBUeXBlIHR5cGUo
KQotICAgIHsKLSAgICAgICAgc3RhdGljIFR5cGVUYWcgdGFnOwotICAgICAgICByZXR1cm4gJnRh
ZzsKLSAgICB9Ci0KLSAgICBzdGQ6Om9wdGlvbmFsPENhbGxiYWNrRnVuY3Rpb24+IG1fY2FsbGJh
Y2s7Ci0KLSNpZiBBU1NFUlRfRU5BQkxFRAotICAgIFJlZjxUaHJlYWQ+IG1fb3JpZ2luVGhyZWFk
IHsgVGhyZWFkOjpjdXJyZW50KCkgfTsKLSNlbmRpZgotfTsKLQotdHlwZWRlZiBHZW5lcmljQ2Fs
bGJhY2s8PiBWb2lkQ2FsbGJhY2s7Ci0KLXRlbXBsYXRlPHR5cGVuYW1lIFQ+Ci12b2lkIGludmFs
aWRhdGVDYWxsYmFja01hcChIYXNoTWFwPHVpbnQ2NF90LCBUPiYgY2FsbGJhY2tNYXAsIENhbGxi
YWNrQmFzZTo6RXJyb3IgZXJyb3IpCi17Ci0gICAgYXV0byBtYXAgPSBXVEZNb3ZlKGNhbGxiYWNr
TWFwKTsKLSAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogbWFwLnZhbHVlcygpKQotICAgICAgICBj
YWxsYmFjay0+aW52YWxpZGF0ZShlcnJvcik7Ci19Ci0KLWNsYXNzIENhbGxiYWNrTWFwIHsKLXB1
YmxpYzoKLSAgICBDYWxsYmFja0lEIHB1dChSZWY8Q2FsbGJhY2tCYXNlPiYmIGNhbGxiYWNrKQot
ICAgIHsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotICAgICAg
ICBhdXRvIGNhbGxiYWNrSUQgPSBjYWxsYmFjay0+Y2FsbGJhY2tJRCgpOwotICAgICAgICBSRUxF
QVNFX0FTU0VSVChjYWxsYmFja0lELmlzVmFsaWQoKSk7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJU
KCFtX21hcC5jb250YWlucyhjYWxsYmFja0lELm1faWQpKTsKLSAgICAgICAgbV9tYXAuc2V0KGNh
bGxiYWNrSUQubV9pZCwgV1RGTW92ZShjYWxsYmFjaykpOwotICAgICAgICByZXR1cm4gY2FsbGJh
Y2tJRDsKLSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTx1bnNpZ25lZCBJLCB0eXBlbmFtZSBULCB0eXBl
bmFtZS4uLiBVPgotICAgIHN0cnVjdCBHZW5lcmljQ2FsbGJhY2tUeXBlIHsKLSAgICAgICAgdHlw
ZWRlZiB0eXBlbmFtZSBHZW5lcmljQ2FsbGJhY2tUeXBlPEkgLSAxLCBVLi4uLCBUPjo6dHlwZSB0
eXBlOwotICAgIH07Ci0KLSAgICB0ZW1wbGF0ZTx0eXBlbmFtZS4uLiBVPgotICAgIHN0cnVjdCBH
ZW5lcmljQ2FsbGJhY2tUeXBlPDEsIENhbGxiYWNrQmFzZTo6RXJyb3IsIFUuLi4+IHsKLSAgICAg
ICAgdHlwZWRlZiBHZW5lcmljQ2FsbGJhY2s8VS4uLj4gdHlwZTsKLSAgICB9OwotCi0gICAgdGVt
cGxhdGU8dHlwZW5hbWUuLi4gVD4KLSAgICBDYWxsYmFja0lEIHB1dChGdW5jdGlvbjx2b2lkKFQu
Li4pPiYmIGZ1bmN0aW9uLCBQcm9jZXNzVGhyb3R0bGVyOjpBY3Rpdml0eVZhcmlhbnQmJiBhY3Rp
dml0eSkKLSAgICB7Ci0gICAgICAgIGF1dG8gY2FsbGJhY2sgPSBHZW5lcmljQ2FsbGJhY2tUeXBl
PHNpemVvZi4uLihUKSwgVC4uLj46OnR5cGU6OmNyZWF0ZShXVEZNb3ZlKGZ1bmN0aW9uKSwgV1RG
TW92ZShhY3Rpdml0eSkpOwotICAgICAgICByZXR1cm4gcHV0KFdURk1vdmUoY2FsbGJhY2spKTsK
LSAgICB9Ci0KLSAgICB0ZW1wbGF0ZTxjbGFzcyBUPgotICAgIFJlZlB0cjxUPiB0YWtlKENhbGxi
YWNrSUQgY2FsbGJhY2tJRCkKLSAgICB7Ci0gICAgICAgIFJFTEVBU0VfQVNTRVJUKGNhbGxiYWNr
SUQuaXNWYWxpZCgpKTsKLSAgICAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwotICAgICAgICBhdXRvIGJhc2UgPSBtX21hcC50YWtlKGNhbGxiYWNrSUQubV9pZCk7Ci0gICAg
ICAgIGlmICghYmFzZSkKLSAgICAgICAgICAgIHJldHVybiBudWxscHRyOwotCi0gICAgICAgIHJl
dHVybiBhZG9wdFJlZihiYXNlLmxlYWtSZWYoKS0+YXM8VD4oKSk7Ci0gICAgfQotCi0gICAgdm9p
ZCBpbnZhbGlkYXRlKENhbGxiYWNrQmFzZTo6RXJyb3IgZXJyb3IpCi0gICAgewotICAgICAgICBS
RUxFQVNFX0FTU0VSVChSdW5Mb29wOjppc01haW4oKSk7Ci0gICAgICAgIGludmFsaWRhdGVDYWxs
YmFja01hcChtX21hcCwgZXJyb3IpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBIYXNoTWFwPHVp
bnQ2NF90LCBSZWZQdHI8Q2FsbGJhY2tCYXNlPj4gbV9tYXA7Ci19OwotCi19IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9X
ZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRyb2xsZXJQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9JbnNwZWN0b3IvV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJv
eHkuY3BwCmluZGV4IDIzNTEyYWYwZjFkNWVhZjFmZWE4ZWZjM2I4NWM5NDJjNmJmNTM2ZmYuLmJl
NWU2NmMwZmE1NTMyZGI1ZWIzMzJiN2I5MDVkMjUyZGY4MGNmNzggMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9XZWJJbnNwZWN0b3JVSUV4dGVuc2lvbkNvbnRy
b2xsZXJQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL1dl
Ykluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlclByb3h5LmNwcApAQCAtMjksNiArMjksNyBA
QAogI2lmIEVOQUJMRShJTlNQRUNUT1JfRVhURU5TSU9OUykKIAogI2luY2x1ZGUgIkFQSUluc3Bl
Y3RvckV4dGVuc2lvbi5oIgorI2luY2x1ZGUgIkFQSVNlcmlhbGl6ZWRTY3JpcHRWYWx1ZS5oIgog
I2luY2x1ZGUgIldlYkluc3BlY3RvclVJRXh0ZW5zaW9uQ29udHJvbGxlck1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSAiV2ViSW5zcGVjdG9yVUlFeHRlbnNpb25Db250cm9sbGVyUHJveHlNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9ndGsvV2ViSW5zcGVjdG9yVUlQcm94eUd0ay5j
cHAKaW5kZXggODQ1NTBlZDUwM2FkM2U1NTRjNTI5ODc4ZDVkMzhiYjRhNjU1YzNmOC4uMWE3ZTI1
NWE3Yzg4NWUyZWU2ZjYwNTkyZTMwYzUzZjAxYmEyYTRhZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvSW5zcGVjdG9yL2d0ay9XZWJJbnNwZWN0b3JVSVByb3h5R3RrLmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3IvZ3RrL1dlYkluc3BlY3RvclVJ
UHJveHlHdGsuY3BwCkBAIC0zMSw5ICszMSwxMSBAQAogCiAjaW5jbHVkZSAiQVBJTmF2aWdhdGlv
bi5oIgogI2luY2x1ZGUgIkFQSU5hdmlnYXRpb25BY3Rpb24uaCIKKyNpbmNsdWRlICJXS0FQSUNh
c3QuaCIKICNpbmNsdWRlICJXS0FycmF5LmgiCiAjaW5jbHVkZSAiV0tDb250ZXh0TWVudUl0ZW0u
aCIKICNpbmNsdWRlICJXS011dGFibGVBcnJheS5oIgorI2luY2x1ZGUgIldLU2hhcmVkQVBJQ2Fz
dC5oIgogI2luY2x1ZGUgIldlYkZyYW1lUG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUg
IldlYkluc3BlY3RvclVJTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJJbnNwZWN0b3JVSVByb3h5
Q2xpZW50LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Iv
bWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9JbnNwZWN0b3IvbWFjL1dLSW5zcGVjdG9yVmlld0NvbnRyb2xsZXIubW0KaW5kZXggZjBkYzJm
YTNlMWY3YjFkZTk2ODk3YjEwYjE2ZGU3OGYyZmZmMjZiNS4uMjkyODdiYTJmYjcyMTJlMDBkMjZk
NDVlN2NhNmFjNTg1ZjNhZGUxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
SW5zcGVjdG9yL21hYy9XS0luc3BlY3RvclZpZXdDb250cm9sbGVyLm1tCisrKyBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci9tYWMvV0tJbnNwZWN0b3JWaWV3Q29udHJvbGxlci5t
bQpAQCAtMjksNyArMjksNyBAQAogI2lmIFBMQVRGT1JNKE1BQykKIAogI2ltcG9ydCAiQVBJTmF2
aWdhdGlvbi5oIgotI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZvLmg+CisjaW1wb3J0ICJXS0FQ
SUNhc3QuaCIKICNpbXBvcnQgIldLSW5zcGVjdG9yUmVzb3VyY2VVUkxTY2hlbWVIYW5kbGVyLmgi
CiAjaW1wb3J0ICJXS0luc3BlY3RvcldLV2ViVmlldy5oIgogI2ltcG9ydCA8V2ViS2l0L1dLTmF2
aWdhdGlvbkFjdGlvbi5oPgpAQCAtNDUsNiArNDUsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5
LmgiCiAjaW1wb3J0ICJfV0tJbnNwZWN0b3JDb25maWd1cmF0aW9uSW50ZXJuYWwuaCIKICNpbXBv
cnQgPFdlYkNvcmUvVmVyc2lvbkNoZWNrcy5oPgorI2ltcG9ydCA8V2ViS2l0L1dLRnJhbWVJbmZv
Lmg+CiAjaW1wb3J0IDx3dGYvV2Vha09iakNQdHIuaD4KIAogc3RhdGljIE5TU3RyaW5nICogY29u
c3QgV0tJbnNwZWN0b3JSZXNvdXJjZVNjaGVtZSA9IEAiaW5zcGVjdG9yLXJlc291cmNlIjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2ViSW5zcGVj
dG9yVUlQcm94eVdpbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9JbnNwZWN0b3Ivd2lu
L1dlYkluc3BlY3RvclVJUHJveHlXaW4uY3BwCmluZGV4IDQyNTBiZGRiOWQ4ZTYxY2UwNzY4ZGVm
MDFkM2YwMmNiMDVlZWU3YmIuLmVjY2Y3M2ZjYmIyZGRkN2MwNjY5Nzk5Njg3ODAzNTMxY2U5OGE1
NjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0luc3BlY3Rvci93aW4vV2Vi
SW5zcGVjdG9yVUlQcm94eVdpbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvSW5z
cGVjdG9yL3dpbi9XZWJJbnNwZWN0b3JVSVByb3h5V2luLmNwcApAQCAtMzIsNiArMzIsNyBAQAog
I2luY2x1ZGUgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW5jbHVkZSAiSW5zcGVjdG9yUmVz
b3VyY2VVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudEltcGwuaCIKKyNp
bmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRlICJXZWJGcmFtZVBvbGljeUxpc3RlbmVyUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJQYWdlR3JvdXAuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05vdGlmaWNhdGlvbnMvV2Vi
Tm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05v
dGlmaWNhdGlvbnMvV2ViTm90aWZpY2F0aW9uTWFuYWdlclByb3h5LmNwcAppbmRleCA3NjA2MzFj
NDkwZjY0MzNmMzQxYTQzYmQ4ODFkNTQ1ZjRhOWI3M2FlLi45YTczNGFkYjFlNjI5YTViYjg3NjUw
MzkzNmQzYjZlNDIwOTA3ZjI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9O
b3RpZmljYXRpb25zL1dlYk5vdGlmaWNhdGlvbk1hbmFnZXJQcm94eS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvTm90aWZpY2F0aW9ucy9XZWJOb3RpZmljYXRpb25NYW5hZ2VyUHJv
eHkuY3BwCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiQVBJQXJyYXkuaCIKICNpbmNsdWRl
ICJBUElOb3RpZmljYXRpb25Qcm92aWRlci5oIgogI2luY2x1ZGUgIkFQSVNlY3VyaXR5T3JpZ2lu
LmgiCisjaW5jbHVkZSAiV0tTaGFyZWRBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0
aW9uLmgiCiAjaW5jbHVkZSAiV2ViTm90aWZpY2F0aW9uTWFuYWdlck1lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUGFnZVByb3h5LmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdp
bmdBcmVhUHJveHkuaAppbmRleCAzZDA0NjE4YThiODkxMzBiNjAxMzRiNjczNWFkOGU3ZjE0M2Yy
Y2IzLi5lOTJiOTgzZGY2Y2IwMWQ4NzhkMDY0YWNmZTRmMDMxZjAwODM0MGY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1JlbW90ZUxh
eWVyVHJlZS9SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5LmgKQEAgLTI2LDYgKzI2LDcg
QEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRHJhd2luZ0FyZWFQcm94eS5oIgorI2luY2x1
ZGUgIlByb2Nlc3NUaHJvdHRsZXIuaCIKICNpbmNsdWRlICJSZW1vdGVMYXllclRyZWVIb3N0Lmgi
CiAjaW5jbHVkZSAiVHJhbnNhY3Rpb25JRC5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQW5pbWF0aW9u
RnJhbWVSYXRlLmg+CkBAIC02OCw3ICs2OSw3IEBAIHByaXZhdGU6CiAgICAgCiAgICAgLy8gRm9y
IG5vdywgYWxsIGNhbGxiYWNrcyBhcmUgY2FsbGVkIGJlZm9yZSBjb21taXR0aW5nIGNoYW5nZXMs
IGJlY2F1c2UgdGhhdCdzIHdoYXQgdGhlIG9ubHkgY2xpZW50IHJlcXVpcmVzLgogICAgIC8vIE9u
Y2Ugd2UgaGF2ZSBvdGhlciBjYWxsYmFja3MsIGl0IG1heSBtYWtlIHNlbnNlIHRvIGhhdmUgYSBi
ZWZvcmUtY29tbWl0L2FmdGVyLWNvbW1pdCBvcHRpb24uCi0gICAgdm9pZCBkaXNwYXRjaEFmdGVy
RW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+
JiYpIGZpbmFsOworICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhGdW5jdGlv
bjx2b2lkKCk+JiYpIGZpbmFsOwogCiAjaWYgUExBVEZPUk0oTUFDKQogICAgIHZvaWQgZGlkQ2hh
bmdlVmlld0V4cG9zZWRSZWN0KCkgZmluYWw7CkBAIC0xMjAsNyArMTIxLDcgQEAgcHJpdmF0ZToK
ICAgICBUcmFuc2FjdGlvbklEIG1fdHJhbnNhY3Rpb25JREZvclVuaGlkaW5nQ29udGVudDsKICAg
ICBBY3Rpdml0eVN0YXRlQ2hhbmdlSUQgbV9hY3Rpdml0eVN0YXRlQ2hhbmdlSUQgeyBBY3Rpdml0
eVN0YXRlQ2hhbmdlQXN5bmNocm9ub3VzIH07CiAKLSAgICBDYWxsYmFja01hcCBtX2NhbGxiYWNr
czsKKyAgICBIYXNoTWFwPENhbGxiYWNrSUQsIHN0ZDo6cGFpcjxGdW5jdGlvbjx2b2lkKCk+LCBz
dGQ6OnVuaXF1ZV9wdHI8UHJvY2Vzc1Rocm90dGxlcjo6QmFja2dyb3VuZEFjdGl2aXR5Pj4+IG1f
Y2FsbGJhY2tzOwogCiAgICAgUmV0YWluUHRyPFdLT25lU2hvdERpc3BsYXlMaW5rSGFuZGxlcj4g
bV9kaXNwbGF5TGlua0hhbmRsZXI7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHkubW0g
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCAxYjA0MzkxYTA4MzhiOTJhZTQwMGI3OWQ5ZWU3ZDE0
Y2UyYzk0NTgxLi4xOTM2ZTYyZDRkNzZkYzIxMTI5MmVjZjEwYTc2ZWM1Y2RjMTMzZDYwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9SZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5
ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9S
ZW1vdGVMYXllclRyZWUvUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtMTI3
LDcgKzEyNyw2IEBAIFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OlJlbW90ZUxheWVy
VHJlZURyYXdpbmdBcmVhUHJveHkoV2ViUGFnZVByb3h5JiB3CiAKIFJlbW90ZUxheWVyVHJlZURy
YXdpbmdBcmVhUHJveHk6On5SZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5KCkKIHsKLSAg
ICBtX2NhbGxiYWNrcy5pbnZhbGlkYXRlKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52
YWxpZGF0ZWQpOwogICAgIHByb2Nlc3MoKS5yZW1vdmVNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6
OlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwg
bV9pZGVudGlmaWVyKTsKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCkBAIC0yNjksOCArMjY4
LDggQEAgdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojpjb21taXRMYXllclRy
ZWUoY29uc3QgUmVtb3RlTGF5ZXJUcmVlVHJhbnMKICAgICAgICAgbV93ZWJQYWdlUHJveHkuZGlk
UmVhY2hMYXlvdXRNaWxlc3RvbmUobWlsZXN0b25lcyk7CiAKICAgICBmb3IgKGF1dG8mIGNhbGxi
YWNrSUQgOiBsYXllclRyZWVUcmFuc2FjdGlvbi5jYWxsYmFja0lEcygpKSB7Ci0gICAgICAgIGlm
IChhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFja3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNr
SUQpKQotICAgICAgICAgICAgY2FsbGJhY2stPnBlcmZvcm1DYWxsYmFjaygpOworICAgICAgICBp
ZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJRCkuZmlyc3QpCisg
ICAgICAgICAgICBjYWxsYmFjaygpOwogICAgIH0KIH0KIApAQCAtNDcxLDE0ICs0NzAsMTYgQEAg
dm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5Ojp3YWl0Rm9yRGlkVXBkYXRlQWN0
aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXQKICAgICB9CiB9CiAKLXZvaWQgUmVtb3RlTGF5ZXJUcmVl
RHJhd2luZ0FyZWFQcm94eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhXVEY6OkZ1bmN0
aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCit2b2lk
IFJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0Ry
YXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrRnVuY3Rpb24pCiB7CiAgICAgaWYgKCFt
X3dlYlBhZ2VQcm94eS5oYXNSdW5uaW5nUHJvY2VzcygpKSB7Ci0gICAgICAgIGNhbGxiYWNrRnVu
Y3Rpb24oQ2FsbGJhY2tCYXNlOjpFcnJvcjo6T3duZXJXYXNJbnZhbGlkYXRlZCk7CisgICAgICAg
IGNhbGxiYWNrRnVuY3Rpb24oKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmQo
TWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQobV9jYWxsYmFj
a3MucHV0KFdURk1vdmUoY2FsbGJhY2tGdW5jdGlvbiksIHByb2Nlc3MoKS50aHJvdHRsZXIoKS5i
YWNrZ3JvdW5kQWN0aXZpdHkoIlJlbW90ZUxheWVyVHJlZURyYXdpbmdBcmVhUHJveHk6OmRpc3Bh
dGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmciX3MpKSkpOworICAgIGF1dG8gY2FsbGJhY2tJRCA9IENh
bGxiYWNrSUQ6OmdlbmVyYXRlSUQoKTsKKyAgICBtX2NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwg
c3RkOjptYWtlX3BhaXIoV1RGTW92ZShjYWxsYmFja0Z1bmN0aW9uKSwgcHJvY2VzcygpLnRocm90
dGxlcigpLmJhY2tncm91bmRBY3Rpdml0eSgiUmVtb3RlTGF5ZXJUcmVlRHJhd2luZ0FyZWFQcm94
eTo6ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyJfcykubW92ZVRvVW5pcXVlUHRyKCkpKTsK
KyAgICBzZW5kKE1lc3NhZ2VzOjpEcmF3aW5nQXJlYTo6QWRkVHJhbnNhY3Rpb25DYWxsYmFja0lE
KGNhbGxiYWNrSUQpKTsKIH0KIAogdm9pZCBSZW1vdGVMYXllclRyZWVEcmF3aW5nQXJlYVByb3h5
OjpoaWRlQ29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJDb250ZXh0Q2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCmluZGV4IGEyNTI4YzJjMGUwZDdlMTMwOTg2MTZiMzE1
MDg4NjZlZjk4NDc2MTMuLmU4NTYwNmFkMDUyNDVkNWIxYTEwM2YyMmIwY2IwNjBkNjA0OTgxNmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvbnRleHRDbGllbnQuY3BwCkBAIC0y
Niw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiV2ViQ29udGV4dENs
aWVudC5oIgogCisjaW5jbHVkZSAiV0tBUElDYXN0LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKIAogbmFtZXNwYWNlIFdlYktpdCB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJDb29raWVNYW5hZ2VyUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkNvb2tpZU1hbmFnZXJQcm94eS5oCmluZGV4IDNkY2Y1NGFkN2M4YmFiMWI1YWI2YTZlYzI4
ZjVhMWY4NzFhNDE5MWMuLmI5ZGMzYjc0OWY4NGNjMjk3YzNhZGE2NjRiMDdjYjI2ZjQxMWE1NDIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkNvb2tpZU1hbmFnZXJQcm94eS5o
CkBAIC0yNiw5ICsyNiw5IEBACiAjcHJhZ21hIG9uY2UKIAogI2luY2x1ZGUgIkFQSU9iamVjdC5o
IgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZl
ci5oIgogI2luY2x1ZGUgIldlYkNvbnRleHRTdXBwbGVtZW50LmgiCisjaW5jbHVkZSA8V2ViQ29y
ZS9IVFRQQ29va2llQWNjZXB0UG9saWN5Lmg+CiAjaW5jbHVkZSA8cGFsL1Nlc3Npb25JRC5oPgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL0hhc2hNYXAuaD4KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkZyYW1lUHJveHkuaAppbmRleCAzOTFiMDI3MzYyODM0MWVkYWE4
ODMwYjM3NGYwZmIxMzEyNDAxNzJhLi5kYzhjZDg1NGU1MTAyNDVhMDMwYWNiZWU0OGFkMmMxOTlm
OTQ2ZDJmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJGcmFtZVByb3h5
LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViRnJhbWVQcm94eS5oCkBAIC0yNyw3
ICsyNyw2IEBACiAKICNpbmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRT
dGF0ZS5oIgotI2luY2x1ZGUgIkdlbmVyaWNDYWxsYmFjay5oIgogI2luY2x1ZGUgIldlYkZyYW1l
UG9saWN5TGlzdGVuZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5oIgogI2luY2x1
ZGUgPFdlYkNvcmUvRnJhbWVMb2FkZXJUeXBlcy5oPgpAQCAtNDEsNiArNDAsNyBAQAogCiBuYW1l
c3BhY2UgQVBJIHsKIGNsYXNzIE5hdmlnYXRpb247CitjbGFzcyBVUkw7CiB9CiAKIG5hbWVzcGFj
ZSBJUEMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5kZXggYjc3
YmNiMmZjNTA3ZmEyNzBhZGVmNjY1ZTJlZjU1MTQ4ZmZhZTY3ZC4uZTg3NWYwNTc4NzQ4N2JjNzc5
ZTc5Y2QyMmU0NjI0ODFmNThjMWI3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCkBAIC01Miw2ICs1Miw3IEBACiAjaW5jbHVkZSAiQVBJUG9saWN5Q2xpZW50Lmgi
CiAjaW5jbHVkZSAiQVBJUmVzb3VyY2VMb2FkQ2xpZW50LmgiCiAjaW5jbHVkZSAiQVBJU2VjdXJp
dHlPcmlnaW4uaCIKKyNpbmNsdWRlICJBUElTZXJpYWxpemVkU2NyaXB0VmFsdWUuaCIKICNpbmNs
dWRlICJBUElVSUNsaWVudC5oIgogI2luY2x1ZGUgIkFQSVVSTFJlcXVlc3QuaCIKICNpbmNsdWRl
ICJBUElXZWJzaXRlUG9saWNpZXMuaCIKQEAgLTQ0NzgsOSArNDQ3OSw3IEBAIHZvaWQgV2ViUGFn
ZVByb3h5Ojpmb3JjZVJlcGFpbnQoQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNhbGxiYWNr
KQogICAgIG1fZHJhd2luZ0FyZWEtPndhaXRGb3JCYWNraW5nU3RvcmVVcGRhdGVPbk5leHRQYWlu
dCgpOwogCiAgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJQYWdlOjpGb3JjZVJl
cGFpbnQoKSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSAoKSBtdXRhYmxlIHsKLSAgICAgICAgY2FsbEFmdGVyTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZShbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0gKGF1dG8pIG11
dGFibGUgewotICAgICAgICAgICAgY2FsbGJhY2soKTsKLSAgICAgICAgfSk7CisgICAgICAgIGNh
bGxBZnRlck5leHRQcmVzZW50YXRpb25VcGRhdGUoV1RGTW92ZShjYWxsYmFjaykpOwogICAgIH0p
OwogfQogCkBAIC05ODMxLDEyICs5ODMwLDEwIEBAIHZvaWQgV2ViUGFnZVByb3h5OjpjbGVhcldo
ZWVsRXZlbnRUZXN0TW9uaXRvcigpCiAgICAgc2VuZChNZXNzYWdlczo6V2ViUGFnZTo6Q2xlYXJX
aGVlbEV2ZW50VGVzdE1vbml0b3IoKSk7CiB9CiAKLXZvaWQgV2ViUGFnZVByb3h5OjpjYWxsQWZ0
ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFdURjo6RnVuY3Rpb248dm9pZCAoQ2FsbGJhY2tCYXNl
OjpFcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIFdlYlBhZ2VQcm94eTo6Y2FsbEFmdGVyTmV4dFBy
ZXNlbnRhdGlvblVwZGF0ZShGdW5jdGlvbjx2b2lkKCk+JiYgY2FsbGJhY2spCiB7Ci0gICAgaWYg
KCFoYXNSdW5uaW5nUHJvY2VzcygpIHx8ICFtX2RyYXdpbmdBcmVhKSB7Ci0gICAgICAgIGNhbGxi
YWNrKENhbGxiYWNrQmFzZTo6RXJyb3I6Ok93bmVyV2FzSW52YWxpZGF0ZWQpOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQorICAgIGlmICghaGFzUnVubmluZ1Byb2Nlc3MoKSB8fCAhbV9kcmF3aW5n
QXJlYSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKCk7CiAKICAgICBtX2RyYXdpbmdBcmVhLT5k
aXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURk1vdmUoY2FsbGJhY2spKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKaW5kZXggYmUxMDEwNWYxNjEzYmNjNDllNzcy
NWU4MTg1NTFlM2I1ZTQwY2VmMy4uYThlNzU2N2I4YzZiNjg4ZmUxMTUwMmNlYjE0YjA0NWI3Zjhm
MTNhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgK
KysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTY4LDYgKzY4
LDcgQEAKICNpbmNsdWRlICJXZWJDb250ZXh0TWVudUl0ZW1EYXRhLmgiCiAjaW5jbHVkZSAiV2Vi
Q29yZUFyZ3VtZW50Q29kZXJzLmgiCiAjaW5jbHVkZSAiV2ViRGF0YUxpc3RTdWdnZXN0aW9uc0Ry
b3Bkb3duLmgiCisjaW5jbHVkZSAiV2ViRXZlbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZVByb3h5
LmgiCiAjaW5jbHVkZSAiV2ViUGFnZUNyZWF0aW9uUGFyYW1ldGVycy5oIgogI2luY2x1ZGUgIldl
YlBhZ2VEaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oIgpAQCAtMTk4LDYgKzE5OSw3IEBAIGludGVy
ZmFjZSBJRDNEMTFEZXZpY2UxOwogI2VuZGlmCiAKIG5hbWVzcGFjZSBBUEkgeworY2xhc3MgQXJy
YXk7CiBjbGFzcyBBdHRhY2htZW50OwogY2xhc3MgQ29udGVudFdvcmxkOwogY2xhc3MgQ29udGV4
dE1lbnVDbGllbnQ7CkBAIC0yMDgsMTMgKzIxMCwxOSBAQCBjbGFzcyBGaW5kTWF0Y2hlc0NsaWVu
dDsKIGNsYXNzIEZvcm1DbGllbnQ7CiBjbGFzcyBGdWxsc2NyZWVuQ2xpZW50OwogY2xhc3MgSGlz
dG9yeUNsaWVudDsKK2NsYXNzIEhpdFRlc3RSZXN1bHQ7CiBjbGFzcyBJY29uTG9hZGluZ0NsaWVu
dDsKIGNsYXNzIExvYWRlckNsaWVudDsKIGNsYXNzIE5hdmlnYXRpb247CitjbGFzcyBOYXZpZ2F0
aW9uQWN0aW9uOwogY2xhc3MgTmF2aWdhdGlvbkNsaWVudDsKK2NsYXNzIE5hdmlnYXRpb25SZXNw
b25zZTsKK2NsYXNzIFBhZ2VDb25maWd1cmF0aW9uOwogY2xhc3MgUG9saWN5Q2xpZW50OwogY2xh
c3MgUmVzb3VyY2VMb2FkQ2xpZW50OworY2xhc3MgU2VyaWFsaXplZFNjcmlwdFZhbHVlOwogY2xh
c3MgVUlDbGllbnQ7CitjbGFzcyBVUkw7CiBjbGFzcyBVUkxSZXF1ZXN0OwogfQogCkBAIC0zMzYs
NyArMzQ0LDEwIEBAIHR5cGVkZWYgSFdORCBQbGF0Zm9ybVZpZXdXaWRnZXQ7CiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogY2xhc3MgQXVkaW9TZXNzaW9uUm91dGluZ0FyYml0cmF0b3JQcm94eTsKK2Ns
YXNzIEF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHk7CitjbGFzcyBDYWxsYmFja0lEOwogY2xh
c3MgRHJhd2luZ0FyZWFQcm94eTsKK2NsYXNzIERvd25sb2FkUHJveHk7CiBjbGFzcyBHYW1lcGFk
RGF0YTsKIGNsYXNzIE1lZGlhVXNhZ2VNYW5hZ2VyOwogY2xhc3MgTmF0aXZlV2ViR2VzdHVyZUV2
ZW50OwpAQCAtMzYwLDYgKzM3MSw3IEBAIGNsYXNzIFdlYkJhY2tGb3J3YXJkTGlzdDsKIGNsYXNz
IFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW07CiBjbGFzcyBXZWJDb250ZXh0TWVudVByb3h5OwogY2xh
c3MgV2ViRWRpdENvbW1hbmRQcm94eTsKK2NsYXNzIFdlYkZyYW1lUHJveHk7CiBjbGFzcyBXZWJG
dWxsU2NyZWVuTWFuYWdlclByb3h5OwogY2xhc3MgUGxheWJhY2tTZXNzaW9uTWFuYWdlclByb3h5
OwogY2xhc3MgVXNlck1lZGlhUGVybWlzc2lvblJlcXVlc3RQcm94eTsKQEAgLTM2Nyw2ICszNzks
NyBAQCBjbGFzcyBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHk7CiBjbGFzcyBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTsKIGNsYXNzIFdlYkJhY2tGb3J3YXJkQ2FjaGU7CiBjbGFz
cyBXZWJEZXZpY2VPcmllbnRhdGlvblVwZGF0ZVByb3ZpZGVyUHJveHk7CitjbGFzcyBXZWJJbnNw
ZWN0b3JVSVByb3h5OwogY2xhc3MgV2ViS2V5Ym9hcmRFdmVudDsKIGNsYXNzIFdlYk1vdXNlRXZl
bnQ7CiBjbGFzcyBXZWJOYXZpZ2F0aW9uU3RhdGU7CkBAIC00MTEsNiArNDI0LDcgQEAgc3RydWN0
IFdlYk5hdmlnYXRpb25EYXRhU3RvcmU7CiBzdHJ1Y3QgV2ViUG9wdXBJdGVtOwogc3RydWN0IFdl
YlNwZWVjaFN5bnRoZXNpc1ZvaWNlOwogCitlbnVtIGNsYXNzIEZpbmRPcHRpb25zIDogdWludDE2
X3Q7CiBlbnVtIGNsYXNzIEltYWdlQW5hbHlzaXNUeXBlIDogdWludDhfdDsKIGVudW0gY2xhc3Mg
VGFwSGFuZGxpbmdSZXN1bHQgOiB1aW50OF90OwogZW51bSBjbGFzcyBUZXh0UmVjb2duaXRpb25V
cGRhdGVSZXN1bHQgOiB1aW50OF90OwpAQCAtNDIwLDYgKzQzNCw4IEBAIGVudW0gY2xhc3MgUXVp
Y2tMb29rUHJldmlld0FjdGl2aXR5IDogdWludDhfdDsKIGVudW0gY2xhc3MgVW5kb09yUmVkbyA6
IGJvb2w7CiBlbnVtIGNsYXNzIFdlYkNvbnRlbnRNb2RlIDogdWludDhfdDsKIAordHlwZWRlZiB1
aW50MzJfdCBTbmFwc2hvdE9wdGlvbnM7CisKICNpZiBIQVZFKFZJU0lCSUxJVFlfUFJPUEFHQVRJ
T05fVklFVykKIHVzaW5nIExheWVySG9zdGluZ0NvbnRleHRJRCA9IHVpbnQzMl90OwogI2VuZGlm
CkBAIC0xNjE5LDcgKzE2MzUsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBGb3IgdGVzdGluZwogICAg
IHZvaWQgY2xlYXJXaGVlbEV2ZW50VGVzdE1vbml0b3IoKTsKLSAgICB2b2lkIGNhbGxBZnRlck5l
eHRQcmVzZW50YXRpb25VcGRhdGUoV1RGOjpGdW5jdGlvbjx2b2lkIChDYWxsYmFja0Jhc2U6OkVy
cm9yKT4mJik7CisgICAgdm9pZCBjYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKEZ1bmN0
aW9uPHZvaWQoKT4mJik7CiAKICAgICB2b2lkIGRpZFJlYWNoTGF5b3V0TWlsZXN0b25lKE9wdGlv
blNldDxXZWJDb3JlOjpMYXlvdXRNaWxlc3RvbmU+KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Bvb2wuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViUHJvY2Vzc1Bvb2wuY3BwCmluZGV4IGJlMjEyZjRmYWE3NzcxM2YxZjM1ZWNkMDAxZWRi
N2I3NmY3MDlhZTIuLjdiMWNiNTQ3MGUxMTFhNGU5ZjcyNzQ2Y2M1NDVmYjRkMmRjN2VjOGIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5jcHAKQEAgLTM2LDYgKzM2
LDggQEAKICNpbmNsdWRlICJBUElOYXZpZ2F0aW9uLmgiCiAjaW5jbHVkZSAiQVBJUGFnZUNvbmZp
Z3VyYXRpb24uaCIKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRpb24uaCIKKyNp
bmNsdWRlICJBUElTdHJpbmcuaCIKKyNpbmNsdWRlICJBUElVUkxSZXF1ZXN0LmgiCiAjaW5jbHVk
ZSAiQXV4aWxpYXJ5UHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiRG93bmxvYWRQcm94eS5o
IgogI2luY2x1ZGUgIkRvd25sb2FkUHJveHlNZXNzYWdlcy5oIgpAQCAtNTUsNiArNTcsNyBAQAog
I2luY2x1ZGUgIlRleHRDaGVja2VyLmgiCiAjaW5jbHVkZSAiVUlHYW1lcGFkLmgiCiAjaW5jbHVk
ZSAiVUlHYW1lcGFkUHJvdmlkZXIuaCIKKyNpbmNsdWRlICJXS0FQSUNhc3QuaCIKICNpbmNsdWRl
ICJXS0NvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViQXV0b21hdGlvblNlc3Npb24uaCIK
ICNpbmNsdWRlICJXZWJCYWNrRm9yd2FyZENhY2hlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViUHJvY2Vzc1Bvb2wuaAppbmRleCAxNjcwNzZhNDI2MzdkMzVhZTE3ZjM5NzY1OWI4MDM4ZDIx
ZThhODE3Li5lZGIzZjIxMjE3OTI4YThkMDgyYzNkZDIxYzJmMGE0ZGQ2ZWRjN2Q4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQcm9jZXNzUG9vbC5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlByb2Nlc3NQb29sLmgKQEAgLTI5LDcgKzI5LDYgQEAKICNp
bmNsdWRlICJBUElPYmplY3QuaCIKICNpbmNsdWRlICJBUElQcm9jZXNzUG9vbENvbmZpZ3VyYXRp
b24uaCIKICNpbmNsdWRlICJHUFVQcm9jZXNzUHJveHkuaCIKLSNpbmNsdWRlICJHZW5lcmljQ2Fs
bGJhY2suaCIKICNpbmNsdWRlICJIaWRkZW5QYWdlVGhyb3R0bGluZ0F1dG9JbmNyZWFzZXNDb3Vu
dGVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiTWVzc2FnZVJl
Y2VpdmVyTWFwLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmll
d0dlc3R1cmVDb250cm9sbGVySU9TLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1Zp
ZXdHZXN0dXJlQ29udHJvbGxlcklPUy5tbQppbmRleCBkMTRkZDRjNzJiODFlNDU3ZjE2YzBkOTk4
ZGJmNzI4NGIyODVkMzdkLi45YWQwZDcxMjM2YTA3Y2E2ZDIyMTcwOGEwZTVlZWUxNDQ2MTNhZTIz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvVmlld0dlc3R1cmVDb250
cm9sbGVySU9TLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9WaWV3R2VzdHVy
ZUNvbnRyb2xsZXJJT1MubW0KQEAgLTM3MSw5ICszNzEsOSBAQCB2b2lkIFZpZXdHZXN0dXJlQ29u
dHJvbGxlcjo6ZW5kU3dpcGVHZXN0dXJlKFdlYkJhY2tGb3J3YXJkTGlzdEl0ZW0qIHRhcmdldEl0
ZW0sCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBkcmF3aW5nQXJl
YS0+ZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhbcGFnZUlELCBnZXN0dXJlSURdIChDYWxs
YmFja0Jhc2U6OkVycm9yIGVycm9yKSB7CisgICAgICAgIGRyYXdpbmdBcmVhLT5kaXNwYXRjaEFm
dGVyRW5zdXJpbmdEcmF3aW5nKFtwYWdlSUQsIGdlc3R1cmVJRF0gewogICAgICAgICAgICAgaWYg
KGF1dG8gZ2VzdHVyZUNvbnRyb2xsZXIgPSBjb250cm9sbGVyRm9yR2VzdHVyZShwYWdlSUQsIGdl
c3R1cmVJRCkpCi0gICAgICAgICAgICAgICAgZ2VzdHVyZUNvbnRyb2xsZXItPndpbGxDb21taXRQ
b3N0U3dpcGVUcmFuc2l0aW9uTGF5ZXJUcmVlKGVycm9yID09IENhbGxiYWNrQmFzZTo6RXJyb3I6
Ok5vbmUpOworICAgICAgICAgICAgICAgIGdlc3R1cmVDb250cm9sbGVyLT53aWxsQ29tbWl0UG9z
dFN3aXBlVHJhbnNpdGlvbkxheWVyVHJlZSh0cnVlKTsKICAgICAgICAgfSk7CiAgICAgICAgIGRy
YXdpbmdBcmVhLT5oaWRlQ29udGVudFVudGlsUGVuZGluZ1VwZGF0ZSgpOwogICAgIH07CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0
aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvaW9zL1dLQ29udGVudFZpZXdJbnRlcmFj
dGlvbi5tbQppbmRleCBjYTM2NjAwNjQ2ZWRjODhiNjI5OWVmYWFkMDEyMGE4YTQwODMwYjRlLi4z
Y2U3ZjVhOTU3MTRlZGJlMzU4ODE4ZjdkZjRjNTQ3OWRmY2VlNWY3IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9pb3MvV0tDb250ZW50Vmlld0ludGVyYWN0aW9uLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL2lvcy9XS0NvbnRlbnRWaWV3SW50ZXJhY3Rpb24ubW0K
QEAgLTQ5NTQsNyArNDk1NCw3IEBAIHN0YXRpYyB2b2lkIHNlbGVjdGlvbkNoYW5nZWRXaXRoVG91
Y2goV0tDb250ZW50VmlldyAqdmlldywgY29uc3QgV2ViQ29yZTo6SW50UG9pCiB7CiAgICAgX2ln
bm9yZVNlbGVjdGlvbkNvbW1hbmRGYWRlQ291bnQrKzsKICAgICBfcGFnZS0+c2NoZWR1bGVGdWxs
RWRpdG9yU3RhdGVVcGRhdGUoKTsKLSAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlv
blVwZGF0ZShbd2Vha1NlbGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0gKGF1
dG8pIHsKKyAgICBfcGFnZS0+Y2FsbEFmdGVyTmV4dFByZXNlbnRhdGlvblVwZGF0ZShbd2Vha1Nl
bGYgPSBXZWFrT2JqQ1B0cjxXS0NvbnRlbnRWaWV3PihzZWxmKV0gewogICAgICAgICBpZiAoYXV0
byBzdHJvbmdTZWxmID0gd2Vha1NlbGYuZ2V0KCkpCiAgICAgICAgICAgICBzdHJvbmdTZWxmLT5f
aWdub3JlU2VsZWN0aW9uQ29tbWFuZEZhZGVDb3VudC0tOwogICAgIH0pOwpAQCAtOTAxOSw3ICs5
MDE5LDcgQEAgc3RhdGljIFZlY3RvcjxXZWJDb3JlOjpJbnRTaXplPiBzaXplc09mUGxhY2Vob2xk
ZXJFbGVtZW50c1RvSW5zZXJ0V2hlbkRyb3BwaW5nSXQKICAgICAgICAgUkVMRUFTRV9MT0coRHJh
Z0FuZERyb3AsICJEcmFnIGludGVyYWN0aW9uIHdpbGxBbmltYXRlQ2FuY2VsV2l0aEFuaW1hdG9y
IChhbmltYXRpb24gY29tcGxldGlvbiBibG9jayBmaXJlZCkiKTsKICAgICAgICAgcGFnZS0+ZHJh
Z0NhbmNlbGxlZCgpOwogICAgICAgICBpZiAoYXV0byBjb21wbGV0aW9uID0gcHJvdGVjdGVkU2Vs
Zi0+X2RyYWdEcm9wSW50ZXJhY3Rpb25TdGF0ZS50YWtlRHJhZ0NhbmNlbFNldERvd25CbG9jaygp
KSB7Ci0gICAgICAgICAgICBwYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtj
b21wbGV0aW9uLCBwcm90ZWN0ZWRTZWxmXSAoV2ViS2l0OjpDYWxsYmFja0Jhc2U6OkVycm9yKSB7
CisgICAgICAgICAgICBwYWdlLT5jYWxsQWZ0ZXJOZXh0UHJlc2VudGF0aW9uVXBkYXRlKFtjb21w
bGV0aW9uLCBwcm90ZWN0ZWRTZWxmXSB7CiAgICAgICAgICAgICAgICAgY29tcGxldGlvbigpOwog
ICAgICAgICAgICAgICAgIHByb3RlY3RlZFNlbGYtPl9pc0FuaW1hdGluZ0RyYWdDYW5jZWwgPSBO
TzsKICAgICAgICAgICAgIH0pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
bWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL21hYy9UaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5LmgKaW5kZXgg
ZTIyODJlYjNmOWZhZjRmNjAxZTJjMGM2NDFjYTc2ZmFmOGY4Y2I0Yy4uNGI5MWI5YWY4NWE4YWE5
YzZjNDI5OWQ4NzQyYTkwZmIxODAwN2M2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94
eS5oCkBAIC01Miw3ICs1Miw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21taXRUcmFuc2llbnRa
b29tKGRvdWJsZSBzY2FsZSwgV2ViQ29yZTo6RmxvYXRQb2ludCBvcmlnaW4pIG92ZXJyaWRlOwog
CiAgICAgdm9pZCB3YWl0Rm9yRGlkVXBkYXRlQWN0aXZpdHlTdGF0ZShBY3Rpdml0eVN0YXRlQ2hh
bmdlSUQpIG92ZXJyaWRlOwotICAgIHZvaWQgZGlzcGF0Y2hBZnRlckVuc3VyaW5nRHJhd2luZyhX
VEY6OkZ1bmN0aW9uPHZvaWQgKENhbGxiYWNrQmFzZTo6RXJyb3IpPiYmKSBvdmVycmlkZTsKKyAg
ICB2b2lkIGRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVuY3Rpb248dm9pZCgpPiYmKSBv
dmVycmlkZTsKICAgICB2b2lkIGRpc3BhdGNoUHJlc2VudGF0aW9uQ2FsbGJhY2tzQWZ0ZXJGbHVz
aGluZ0xheWVycyhjb25zdCBWZWN0b3I8Q2FsbGJhY2tJRD4mKSBmaW5hbDsKIAogICAgIHZvaWQg
d2lsbFNlbmRVcGRhdGVHZW9tZXRyeSgpIG92ZXJyaWRlOwpAQCAtNzYsNyArNzYsNyBAQCBwcml2
YXRlOgogICAgIC8vIFRoZSBsYXN0IG1heG1pdW0gc2l6ZSBmb3Igc2l6ZS10by1jb250ZW50IGF1
dG8tc2l6aW5nIHdlIHNlbnQgdG8gdGhlIHdlYiBwcm9jZXNzLgogICAgIFdlYkNvcmU6OkludFNp
emUgbV9sYXN0U2VudFNpemVUb0NvbnRlbnRBdXRvU2l6ZU1heGltdW1TaXplOwogCi0gICAgQ2Fs
bGJhY2tNYXAgbV9jYWxsYmFja3M7CisgICAgSGFzaE1hcDxDYWxsYmFja0lELCBGdW5jdGlvbjx2
b2lkKCk+PiBtX2NhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1RpbGVkQ29yZUFuaW1hdGlvbkRyYXdp
bmdBcmVhUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5p
bWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQppbmRleCBlNjE2YWZmZGUzNmRmNGEwMWY4YmJiYmZm
MDhhMzBjZTdmZDE0YjU5Li4yYTc2Y2FiNWZhZTVkOTNmNWVhZTViNzk3NGVhM2JmN2U1MzdkZjA1
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvVGlsZWRDb3JlQW5pbWF0
aW9uRHJhd2luZ0FyZWFQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMv
VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eS5tbQpAQCAtNTAsNyArNTAsNiBAQCBU
aWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5KFdlYlBhZ2VQcgogCiBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVBy
b3h5Ojp+VGlsZWRDb3JlQW5pbWF0aW9uRHJhd2luZ0FyZWFQcm94eSgpCiB7Ci0gICAgbV9jYWxs
YmFja3MuaW52YWxpZGF0ZShDYWxsYmFja0Jhc2U6OkVycm9yOjpPd25lcldhc0ludmFsaWRhdGVk
KTsKIH0KIAogdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3aW5nQXJlYVByb3h5OjpkZXZpY2VT
Y2FsZUZhY3RvckRpZENoYW5nZSgpCkBAIC0yMDMsMjEgKzIwMiwyMyBAQCB2b2lkIFRpbGVkQ29y
ZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmNvbW1pdFRyYW5zaWVudFpvb20oZG91YmxlIHNj
YWxlLCBGbG9hdAogICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpDb21taXRUcmFuc2ll
bnRab29tKHNjYWxlLCBvcmlnaW4pKTsKIH0KIAotdm9pZCBUaWxlZENvcmVBbmltYXRpb25EcmF3
aW5nQXJlYVByb3h5OjpkaXNwYXRjaEFmdGVyRW5zdXJpbmdEcmF3aW5nKFdURjo6RnVuY3Rpb248
dm9pZCAoQ2FsbGJhY2tCYXNlOjpFcnJvcik+JiYgY2FsbGJhY2spCit2b2lkIFRpbGVkQ29yZUFu
aW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRpc3BhdGNoQWZ0ZXJFbnN1cmluZ0RyYXdpbmcoRnVu
Y3Rpb248dm9pZCgpPiYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV93ZWJQYWdlUHJveHkuaGFz
UnVubmluZ1Byb2Nlc3MoKSkgewotICAgICAgICBjYWxsYmFjayhDYWxsYmFja0Jhc2U6OkVycm9y
OjpPd25lcldhc0ludmFsaWRhdGVkKTsKKyAgICAgICAgY2FsbGJhY2soKTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHNlbmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2Fj
dGlvbkNhbGxiYWNrSUQobV9jYWxsYmFja3MucHV0KFdURk1vdmUoY2FsbGJhY2spLCBudWxscHRy
KSkpOworICAgIGF1dG8gY2FsbGJhY2tJRCA9IENhbGxiYWNrSUQ6OmdlbmVyYXRlSUQoKTsKKyAg
ICBtX2NhbGxiYWNrcy5zZXQoY2FsbGJhY2tJRCwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIHNl
bmQoTWVzc2FnZXM6OkRyYXdpbmdBcmVhOjpBZGRUcmFuc2FjdGlvbkNhbGxiYWNrSUQoY2FsbGJh
Y2tJRCkpOwogfQogCiB2b2lkIFRpbGVkQ29yZUFuaW1hdGlvbkRyYXdpbmdBcmVhUHJveHk6OmRp
c3BhdGNoUHJlc2VudGF0aW9uQ2FsbGJhY2tzQWZ0ZXJGbHVzaGluZ0xheWVycyhjb25zdCBWZWN0
b3I8Q2FsbGJhY2tJRD4mIGNhbGxiYWNrSURzKQogewogICAgIGZvciAoYXV0byYgY2FsbGJhY2tJ
RCA6IGNhbGxiYWNrSURzKSB7Ci0gICAgICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9jYWxsYmFj
a3MudGFrZTxWb2lkQ2FsbGJhY2s+KGNhbGxiYWNrSUQpKQotICAgICAgICAgICAgY2FsbGJhY2st
PnBlcmZvcm1DYWxsYmFjaygpOworICAgICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fY2FsbGJh
Y2tzLnRha2UoY2FsbGJhY2tJRCkpCisgICAgICAgICAgICBjYWxsYmFjaygpOwogICAgIH0KIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldp
bmRvd0NvbnRyb2xsZXIuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS0Z1bGxTY3Jl
ZW5XaW5kb3dDb250cm9sbGVyLmgKaW5kZXggZDE5NzI5MjY1NWM2MWJhNmM2YmIzOGExMzg4NTdm
NGRlNTY3MWM5OC4uYmQ1MzlkMjJjMTUyYTQ0MTk4NWM4NzA2MzgwOWJhMmIyNDUzZGEwYyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvbWFjL1dLRnVsbFNjcmVlbldpbmRvd0Nv
bnRyb2xsZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tGdWxsU2NyZWVu
V2luZG93Q29udHJvbGxlci5oCkBAIC0yNiw3ICsyNiw2IEBACiAjaWYgRU5BQkxFKEZVTExTQ1JF
RU5fQVBJKSAmJiBQTEFURk9STShNQUMpCiAKICNpbXBvcnQgPEFwcEtpdC9BcHBLaXQuaD4KLSNp
bXBvcnQgIkdlbmVyaWNDYWxsYmFjay5oIgogI2ltcG9ydCA8d3RmL05ha2VkUHRyLmg+CiAjaW1w
b3J0IDx3dGYvTmFrZWRSZWYuaD4KICNpbXBvcnQgPHd0Zi9SZXRhaW5QdHIuaD4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0gYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9tYWMvV0tUZXh0RmluZGVyQ2xpZW50Lm1tCmluZGV4IGMw
MzdkNjViMmJjMGYzYzBhMWVhMTI2ZWZkMjE4MjdkYTIxYWFiYjkuLjc0MTQ1MjE4MmFiMjExMWQ2
YWRhZGVkMzZlZTkwYjAyY2VhNDM2MTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL21hYy9XS1RleHRGaW5kZXJDbGllbnQubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvbWFjL1dLVGV4dEZpbmRlckNsaWVudC5tbQpAQCAtMzAsNiArMzAsNyBAQAogCiAjaW1wb3J0
ICJBUElGaW5kQ2xpZW50LmgiCiAjaW1wb3J0ICJBUElGaW5kTWF0Y2hlc0NsaWVudC5oIgorI2lt
cG9ydCAiV2ViRmluZE9wdGlvbnMuaCIKICNpbXBvcnQgIldlYkltYWdlLmgiCiAjaW1wb3J0ICJX
ZWJQYWdlUHJveHkuaCIKICNpbXBvcnQgPGFsZ29yaXRobT4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dl
YktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQxMmQ1ZmQ2YTkzMmQ5ZjQyZmUw
ZGQ1ZDU3ZWM0MTQzZDQ3ZDAwOGQuLjFmYzYyNDMzMjk5Y2NlMWIzMTRlNWI4MzU1NjRkMWMyNGNh
YWFiZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagpAQCAtMTY5Niw3ICsxNjk2LDYgQEAKIAkJQkMxNERGOUYxMjBCNjM1RjAwODI2QzBDIC8q
IFdLQnVuZGxlU2NyaXB0V29ybGQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEJDMTRERjlEMTIwQjYzNUYwMDgyNkMwQyAvKiBXS0J1bmRsZVNjcmlwdFdv
cmxkLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
QkMxNEUxMEExMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFnZUZvcm1DbGllbnQu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMTRFMTA4
MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xpZW50LmggKi87IH07
CiAJCUJDMTc3NDY1MTE4QjlGRjQwMDdEOUU5QSAvKiBXS1BhZ2VQcml2YXRlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzE3NzQ2NDExOEI5RkY0MDA3
RDlFOUEgLyogV0tQYWdlUHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07Ci0JCUJDMTc3NTNGMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2Fs
bGJhY2suaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
MTc3NTNFMTE4QkFCRjAwMDdEOUU5QSAvKiBHZW5lcmljQ2FsbGJhY2suaCAqLzsgfTsKIAkJQkMx
QTdDNTgxMTM2RTE5QzAwRkI3MTY3IC8qIFByb2Nlc3NMYXVuY2hlci5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkMxQTdDNTcxMTM2RTE5QzAwRkI3MTY3
IC8qIFByb2Nlc3NMYXVuY2hlci5oICovOyB9OwogCQlCQzFCNDE5ODExRDQxRDU3MDAxMUU4REQg
LyogV0tCdW5kbGVQYWdlUHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkMxQjQxOTcxMUQ0MUQ1NzAwMTFFOEREIC8qIFdLQnVuZGxlUGFnZVBy
aXZhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQlCQzFCRTFFMDEyRDU0QTQxMDAwNEEyMjggLyogV2ViR2VvbG9jYXRpb25DbGllbnQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDMUJFMURFMTJENTRB
NDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovOyB9OwpAQCAtNTMyMiw3ICs1
MzIxLDYgQEAKIAkJQkMxNEUxMDcxMjBCOTA1RTAwODI2QzBDIC8qIEluamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSW5q
ZWN0ZWRCdW5kbGVQYWdlRm9ybUNsaWVudC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCUJDMTRFMTA4MTIwQjkwNUUwMDgyNkMwQyAvKiBJbmplY3RlZEJ1bmRsZVBhZ2VGb3JtQ2xp
ZW50LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEluamVjdGVkQnVuZGxlUGFn
ZUZvcm1DbGllbnQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMxNzc0NjQxMThC
OUZGNDAwN0Q5RTlBIC8qIFdLUGFnZVByaXZhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gV0tQYWdlUHJpdmF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwotCQlC
QzE3NzUzRTExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEdlbmVyaWNDYWxsYmFjay5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQzFBN0M1NzExMzZFMTlDMDBGQjcxNjcgLyogUHJvY2Vzc0xhdW5jaGVy
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFByb2Nlc3NMYXVuY2hlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQzFCNDE5NzExRDQxRDU3MDAxMUU4REQgLyog
V0tCdW5kbGVQYWdlUHJpdmF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBX
S0J1bmRsZVBhZ2VQcml2YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDMUJF
MURFMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9sb2NhdGlvbkNsaWVudC5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXZWJHZW9sb2NhdGlvbkNsaWVudC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMTAxNzIsNyArMTAxNzAsNiBAQAogCQkJCTFBNjQyMkZDMTJE
RDA4RkUwMENBQUUyQyAvKiBEcmF3aW5nQXJlYVByb3h5Lm1lc3NhZ2VzLmluICovLAogCQkJCTFB
RTAwRDVFMTgzMTc5MjEwMDA4N0RENyAvKiBGcmFtZUxvYWRTdGF0ZS5jcHAgKi8sCiAJCQkJMUFF
MDBENUYxODMxNzkyMTAwMDg3REQ3IC8qIEZyYW1lTG9hZFN0YXRlLmggKi8sCi0JCQkJQkMxNzc1
M0UxMThCQUJGMDAwN0Q5RTlBIC8qIEdlbmVyaWNDYWxsYmFjay5oICovLAogCQkJCTlFQzUzMkEy
MjQ0N0ZCQUQwMDIxNTIxNiAvKiBHZW9sb2NhdGlvbklkZW50aWZpZXIuaCAqLywKIAkJCQlCQzA2
RjQ0OTEyREJEMUY1MDAyRDc4REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFn
ZXJQcm94eS5jcHAgKi8sCiAJCQkJQkMwNkY0NDgxMkRCRDFGNTAwMkQ3OERFIC8qIEdlb2xvY2F0
aW9uUGVybWlzc2lvblJlcXVlc3RNYW5hZ2VyUHJveHkuaCAqLywKQEAgLTEyMTkzLDcgKzEyMTkw
LDYgQEAKIAkJCQlDRDE5RDJFQTIwNDY0MDZGMDAxNzA3NEEgLyogRnVsbHNjcmVlblRvdWNoU2Vj
aGV1cmlzdGljLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREE5M0RCMDIyRjhCQ0Y0MDA0OTBBNjkg
LyogRnVsbHNjcmVlblRvdWNoU2VjaGV1cmlzdGljUGFyYW1ldGVycy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJNTE1QkUxQjMxRDU5MDJERDAwREQ3QzY4IC8qIEdhbWVwYWREYXRhLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlCQzE3NzUzRjExOEJBQkYwMDA3RDlFOUEgLyogR2VuZXJpY0NhbGxiYWNrLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5RUM1MzJBMzI0NDdGQkFEMDAyMTUyMTYgLyogR2VvbG9jYXRp
b25JZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQzA2RjQyRjEyREJCOUI2MDAyRDc4
REUgLyogR2VvbG9jYXRpb25QZXJtaXNzaW9uUmVxdWVzdE1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCUJDMDZGNDRBMTJEQkQxRjUwMDJENzhERSAvKiBHZW9sb2NhdGlvblBlcm1pc3Npb25S
ZXF1ZXN0TWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1JlbW90ZUxheWVyVHJlZS9SZW1vdGVMYXllclRyZWVD
b250ZXh0Lm1tIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJU
cmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KaW5kZXggMDc4NmNjNTMzMWYzNTA5MWVlYmE1
NTU5MDcwNzdhMzE1NzY4MDhlOC4uNDViNThkNjNiYzA5NGQwZjIwZGNlOTI2NmZmOWI2NzRlMzlm
MGFiZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3Rl
TGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQubW0KKysrIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYlBhZ2UvUmVtb3RlTGF5ZXJUcmVlL1JlbW90ZUxheWVyVHJlZUNvbnRleHQu
bW0KQEAgLTI2LDcgKzI2LDYgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2ltcG9ydCAiUmVtb3Rl
TGF5ZXJUcmVlQ29udGV4dC5oIgogCi0jaW1wb3J0ICJHZW5lcmljQ2FsbGJhY2suaCIKICNpbXBv
cnQgIkdyYXBoaWNzTGF5ZXJDQVJlbW90ZS5oIgogI2ltcG9ydCAiUGxhdGZvcm1DQUxheWVyUmVt
b3RlLmgiCiAjaW1wb3J0ICJSZW1vdGVMYXllckJhY2tpbmdTdG9yZUNvbGxlY3Rpb24uaCIK
</data>

          </attachment>
      

    </bug>

</bugzilla>