<?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>73429</bug_id>
          
          <creation_ts>2011-11-30 04:15:22 -0800</creation_ts>
          <short_desc>REGRESSION(r101440): multiple crashes on layout tests (Requested by hayato on #webkit).</short_desc>
          <delta_ts>2011-11-30 14:24:41 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>70838</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="WebKit Review Bot">webkit.review.bot</reporter>
          <assigned_to name="WebKit Review Bot">webkit.review.bot</assigned_to>
          <cc>hayato</cc>
    
    <cc>jamesr</cc>
    
    <cc>nduca</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>511622</commentid>
    <comment_count>0</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 04:15:22 -0800</bug_when>
    <thetext>http://trac.webkit.org/changeset/101440 broke the build:
multiple crashes on layout tests (Requested by hayato on #webkit).

This is an automatic bug report generated by the sheriff-bot. If this bug
report was created because of a flaky test, please file a bug for the flaky
test (if we don&apos;t already have one on file) and dup this bug against that bug
so that we can track how often these flaky tests case pain.

&quot;Only you can prevent forest fires.&quot; -- Smokey the Bear</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511623</commentid>
    <comment_count>1</comment_count>
      <attachid>117166</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 04:15:55 -0800</bug_when>
    <thetext>Created attachment 117166
ROLLOUT of r101440

Any committer can land this patch automatically by marking it commit-queue+.  The commit-queue will build and test the patch before landing to ensure that the rollout will be successful.  This process takes approximately 15 minutes.

If you would like to land the rollout faster, you can use the following command:

  webkit-patch land-attachment ATTACHMENT_ID

where ATTACHMENT_ID is the ID of this attachment.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511625</commentid>
    <comment_count>2</comment_count>
    <who name="Hayato Ito">hayato</who>
    <bug_when>2011-11-30 04:21:08 -0800</bug_when>
    <thetext>It seems r101440 caused multiple crashes on chromium canary.

http://test-results.appspot.com/dashboards/flakiness_dashboard.html#tests=http%2Ftests%2Fappcache%2Fcrash-when-navigating-away-then-back.html%2Chttp%2Ftests%2Fcache%2Fhistory-only-cached-subresource-loads-max-age-https.html%2Chttp%2Ftests%2Fcache%2Fhistory-only-cached-subresource-loads.html%2Chttp%2Ftests%2Finspector%2Fchange-iframe-src.html%2Chttp%2Ftests%2Finspector%2Fcompiler-source-mapping-debug.html%2Chttp%2Ftests%2Finspector%2Fcompiler-source-mapping.html%2Chttp%2Ftests%2Finspector%2Fconsole-cd-completions.html%2Chttp%2Ftests%2Finspector%2Fconsole-cd.html%2Chttp%2Ftests%2Finspector%2Fconsole-resource-errors.html%2Chttp%2Ftests%2Finspector%2Fconsole-websocket-error.html%2Chttp%2Ftests%2Finspector%2Fconsole-xhr-logging.html%2Chttp%2Ftests%2Finspector%2Fextensions-headers.html%2Chttp%2Ftests%2Finspector%2Fextensions-ignore-cache.html%2Chttp%2Ftests%2Finspector%2Fextensions-network-redirect.html%2Chttp%2Ftests%2Finspector%2Fextensions-useragent.html%2Chttp%2Ftests%2Finspector%2Finspect-iframe-from-different-domain.html%2Chttp%2Ftests%2Finspector%2Fnetwork-preflight-options.html%2Chttp%2Ftests%2Finspector%2Fresource-har-conversion.html%2Chttp%2Ftests%2Finspector%2Fresource-har-headers.html%2Chttp%2Ftests%2Finspector%2Fresource-parameters.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511628</commentid>
    <comment_count>3</comment_count>
      <attachid>117166</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 04:31:18 -0800</bug_when>
    <thetext>Comment on attachment 117166
ROLLOUT of r101440

Clearing flags on attachment: 117166

Committed r101488: &lt;http://trac.webkit.org/changeset/101488&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>511629</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-11-30 04:31:23 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>512130</commentid>
    <comment_count>5</comment_count>
    <who name="Nat Duca">nduca</who>
    <bug_when>2011-11-30 14:24:41 -0800</bug_when>
    <thetext>Fix identified. Landing fix against old bug. Thanks and sorry!</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>117166</attachid>
            <date>2011-11-30 04:15:55 -0800</date>
            <delta_ts>2011-11-30 04:31:18 -0800</delta_ts>
            <desc>ROLLOUT of r101440</desc>
            <filename>bug-73429-20111130121656.patch</filename>
            <type>text/plain</type>
            <size>71244</size>
            <attacher name="WebKit Review Bot">webkit.review.bot</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTAxNDg2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjJmOWViNzRjNjZmNzY5
NzljMDBjYmIxMzkxOWJjZGI1OGJlMTQwMi4uNmUwYWYwNGZiOTBmZTU5NWVjNDMzMjhiYzkyYjM3
NmMzNmM0ZTYwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDExLTExLTMwICBTaGVy
aWZmIEJvdCAgPHdlYmtpdC5yZXZpZXcuYm90QGdtYWlsLmNvbT4KKworICAgICAgICBVbnJldmll
d2VkLCByb2xsaW5nIG91dCByMTAxNDQwIGFuZCByMTAxNDQyLgorICAgICAgICBodHRwOi8vdHJh
Yy53ZWJraXQub3JnL2NoYW5nZXNldC8xMDE0NDAKKyAgICAgICAgaHR0cDovL3RyYWMud2Via2l0
Lm9yZy9jaGFuZ2VzZXQvMTAxNDQyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD03MzQyOQorCisgICAgICAgIG11bHRpcGxlIGNyYXNoZXMgb24gbGF5b3V0
IHRlc3RzIChSZXF1ZXN0ZWQgYnkgaGF5YXRvIG9uCisgICAgICAgICN3ZWJraXQpLgorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkxheWVyUmVuZGVyZXJDaHJvbWl1bTo6aW5pdGlhbGl6ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2ViR0xMYXllckNocm9taXVt
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYkdMTGF5ZXJDaHJvbWl1bTo6bGF5ZXJSZW5kZXJl
ckNvbnRleHQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDSGVh
ZHNVcERpc3BsYXkuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q0NIZWFkc1VwRGlzcGxheTo6ZW5h
YmxlZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NMYXllclRy
ZWVIb3N0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6Q0NMYXllclRy
ZWVIb3N0KToKKyAgICAgICAgKFdlYkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6aW5pdGlhbGl6ZSk6
CisgICAgICAgIChXZWJDb3JlOjpDQ0xheWVyVHJlZUhvc3Q6On5DQ0xheWVyVHJlZUhvc3QpOgor
ICAgICAgICAoV2ViQ29yZTo6Q0NMYXllclRyZWVIb3N0Ojpjb250ZXh0KToKKyAgICAgICAgKFdl
YkNvcmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNBbmltYXRlKToKKyAgICAgICAgKFdlYkNv
cmU6OkNDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNDb21taXQpOgorICAgICAgICAoV2ViQ29yZTo6
Q0NMYXllclRyZWVIb3N0OjpzZXROZWVkc1JlZHJhdyk6CisgICAgICAgIChXZWJDb3JlOjpDQ0xh
eWVyVHJlZUhvc3Q6OmNvbXBvc2l0ZSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hy
b21pdW0vY2MvQ0NMYXllclRyZWVIb3N0Lmg6CisgICAgICAgIChXZWJDb3JlOjpDQ1NldHRpbmdz
OjpDQ1NldHRpbmdzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9D
Q1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNDUHJveHk6OmlzTWFpblRocmVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpDQ1Byb3h5Ojppc0ltcGxUaHJlYWQpOgorICAgICAgICAoV2ViQ29y
ZTo6Q0NQcm94eTo6c2V0SW1wbFRocmVhZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NQcm94eS5oOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKFdlYkNvcmU6OkRlYnVnU2Nv
cGVkU2V0SW1wbFRocmVhZDo6RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkKToKKyAgICAgICAgKFdl
YkNvcmU6OkRlYnVnU2NvcGVkU2V0SW1wbFRocmVhZDo6fkRlYnVnU2NvcGVkU2V0SW1wbFRocmVh
ZCk6CisKIDIwMTEtMTEtMzAgIEFsZXhleSBQcm9za3VyeWFrb3YgIDxhcEBhcHBsZS5jb20+CiAK
ICAgICAgICAgRG93bmxvYWQgcGFnZSBVUkwgc2hvdWxkIGJlIHNldCBieSBXZWJDb3JlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nCmluZGV4IGUxNmRiMWJiMGE2YjE0Njk4MmViOTY0Y2QzNmY4ZjZm
YzFlZGQxMmMuLjQyOWIxMGY1YWE5MjY5MTRjYTQ2NGVjOGJiMWM0NTYyOWNjYjg0MDYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNzAgQEAKKzIwMTEtMTEtMzAgIFNoZXJp
ZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHIxMDE0NDAgYW5kIHIxMDE0NDIuCisgICAgICAgIGh0dHA6Ly90cmFj
LndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwMTQ0MAorICAgICAgICBodHRwOi8vdHJhYy53ZWJraXQu
b3JnL2NoYW5nZXNldC8xMDE0NDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTczNDI5CisKKyAgICAgICAgbXVsdGlwbGUgY3Jhc2hlcyBvbiBsYXlvdXQg
dGVzdHMgKFJlcXVlc3RlZCBieSBoYXlhdG8gb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAgICAg
ICAgKiBXZWJLaXQuZ3lwOgorICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHB1Ymxp
Yy9XZWJDb21wb3NpdG9yLmg6CisgICAgICAgICogcHVibGljL1dlYkNvbXBvc2l0b3JDbGllbnQu
aDoKKyAgICAgICAgKiBwdWJsaWMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlci5oOiBSZW1vdmVk
LgorICAgICAgICAqIHB1YmxpYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50Lmg6IFJl
bW92ZWQuCisgICAgICAgICogcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaDoKKyAgICAgICAgKFdl
YktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6U2V0dGluZ3M6OlNldHRpbmdzKToKKyAgICAgICAgKiBw
dWJsaWMvV2ViU2V0dGluZ3MuaDoKKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvckltcGwuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q0NJbnB1dEhhbmRsZXI6OmNyZWF0ZSk6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNldFRocmVhZCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNv
bXBvc2l0b3I6OmZyb21JZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRv
ckltcGw6OmZyb21JZGVudGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklt
cGw6OldlYkNvbXBvc2l0b3JJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvcklt
cGw6On5XZWJDb21wb3NpdG9ySW1wbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJ
bXBsOjpzZXRDbGllbnQpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb21wb3NpdG9ySW1wbDo6aGFu
ZGxlSW5wdXRFdmVudCk6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbXBsOjppZGVu
dGlmaWVyKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OndpbGxEcmF3KToK
KyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvckltcGwuaDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
Q29tcG9zaXRvckltcGw6OmNyZWF0ZSk6CisgICAgICAgICogc3JjL1dlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsLmNwcDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViQ29tcG9zaXRvcklu
cHV0SGFuZGxlckltcGwuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBzcmMvV2ViS2l0LmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6aW5pdGlhbGl6ZVdpdGhvdXRWOCk6CisgICAgICAgIChXZWJLaXQ6OnNo
dXRkb3duKToKKyAgICAgICAgKiBzcmMvV2ViTGF5ZXJUcmVlVmlldy5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkxheWVyVHJlZVZpZXc6OlNldHRpbmdzOjpvcGVyYXRvciBDQ1NldHRpbmdzKToK
KyAgICAgICAgKFdlYktpdDo6V2ViTGF5ZXJUcmVlVmlldzo6Y29tcG9zaXRlKToKKyAgICAgICAg
KiBzcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJMYXll
clRyZWVWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVlSG9zdENvbnRleHQzRCk6CisgICAgICAgICog
c3JjL1dlYlNldHRpbmdzSW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlNldHRpbmdzSW1w
bDo6V2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpz
ZXRVc2VUaHJlYWRlZENvbXBvc2l0b3IpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwu
aDoKKyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjp1c2VUaHJlYWRlZENvbXBvc2l0
b3IpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6Oldl
YlZpZXdJbXBsOjphbmltYXRlKToKKyAgICAgICAgKFdlYktpdDo6V2ViVmlld0ltcGw6OmNvbXBv
c2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2hlZHVsZUFuaW1hdGlvbik6
CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9zaXRp
bmdBY3RpdmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJUcmVl
SG9zdENvbnRleHQzRCk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzY2hlZHVsZUNv
bXBvc2l0ZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdJbXBsOjpncmFwaGljc0NvbnRleHQz
RCk6CisgICAgICAgICogdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVzdC5jcHA6CisgICAgICAgIChX
VEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3Q6OkNDTGF5ZXJUcmVlSG9zdFRlc3QpOgorICAgICAgICAo
V1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0OjpvbkVuZFRlc3QpOgorICAgICAgICAoV1RGOjpDQ0xh
eWVyVHJlZUhvc3RUZXN0OjpydW5UZXN0KToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0
VGVzdDo6ZG9CZWdpblRlc3QpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RUZXN0U2hv
cnRsaXZlZDE6OmJlZ2luVGVzdCk6CisgICAgICAgIChXVEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RT
aG9ydGxpdmVkMjo6YmVnaW5UZXN0KToKKyAgICAgICAgKFdURjo6Q0NMYXllclRyZWVIb3N0VGVz
dFNob3J0bGl2ZWQzOjpiZWdpblRlc3QpOgorICAgICAgICAoV1RGOjpDQ0xheWVyVHJlZUhvc3RU
ZXN0Q29tbWl0aW5nV2l0aENvbnRpbnVvdXNSZWRyYXc6OmJlZ2luVGVzdCk6CisgICAgICAgIChX
VEY6OkNDTGF5ZXJUcmVlSG9zdFRlc3RPcGFjaXR5Q2hhbmdlOjphZnRlclRlc3QpOgorICAgICAg
ICAqIHRlc3RzL1dlYkNvbXBvc2l0b3JJbXBsVGVzdC5jcHA6IFJlbmFtZWQgZnJvbSBTb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsVGVzdC5j
cHAuCisKIDIwMTEtMTEtMzAgIERhbmllbCBTaWV2ZXJzICA8c2lldmVyc0BjaHJvbWl1bS5vcmc+
CiAKICAgICAgICAgW0Nocm9taXVtXSBBdm9pZCBBU1NFUlRfTk9UX1JFQUNIRUQoKSBmcm9tIGNy
ZWF0aW5nIEZCTyB3aXRoIGNvbnRlbnQgdGV4dHVyZSBvZiBzaXplIDAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVyUmVuZGVyZXJDaHJv
bWl1bS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9MYXll
clJlbmRlcmVyQ2hyb21pdW0uY3BwCmluZGV4IGQ0NzJjN2E3ODNhNDIxMjhiNjAyYjVjNzRhY2U2
NDE1MGIyNjdkNzcuLjA3NzhlNWRmZmYxOTg4MDExZWYyZjZjMGZjNjJlYmJiZTc4MjY1ZWQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0xheWVy
UmVuZGVyZXJDaHJvbWl1bS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vTGF5ZXJSZW5kZXJlckNocm9taXVtLmNwcApAQCAtMjAwLDcgKzIwMCw3IEBA
IGJvb2wgTGF5ZXJSZW5kZXJlckNocm9taXVtOjppbml0aWFsaXplKCkKICAgICAgICAgZXh0ZW5z
aW9ucy0+ZW5zdXJlRW5hYmxlZCgiR0xfQ0hST01JVU1fbWFwX3N1YiIpOwogCiAgICAgLy8gVXNl
IHRoZSBzd2FwQnVmZmVycyBjYWxsYmFjayBvbmx5IHdpdGggdGhlIHRocmVhZGVkIHByb3h5Lgot
ICAgIGlmIChDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkpCisgICAgaWYgKHNldHRpbmdzKCkuZW5h
YmxlQ29tcG9zaXRvclRocmVhZCkKICAgICAgICAgbV9jYXBhYmlsaXRpZXMudXNpbmdTd2FwQ29t
cGxldGVDYWxsYmFjayA9IGV4dGVuc2lvbnMtPnN1cHBvcnRzKCJHTF9DSFJPTUlVTV9zd2FwYnVm
ZmVyc19jb21wbGV0ZV9jYWxsYmFjayIpOwogICAgIGlmIChtX2NhcGFiaWxpdGllcy51c2luZ1N3
YXBDb21wbGV0ZUNhbGxiYWNrKSB7CiAgICAgICAgIGV4dGVuc2lvbnMtPmVuc3VyZUVuYWJsZWQo
IkdMX0NIUk9NSVVNX3N3YXBidWZmZXJzX2NvbXBsZXRlX2NhbGxiYWNrIik7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExheWVyQ2hy
b21pdW0uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vV2Vi
R0xMYXllckNocm9taXVtLmNwcAppbmRleCAyYjBkMTZlNTE5OTVmNTM5ZjY2ODMwYmYzNWE4M2Vj
NWQ4M2Q3M2RiLi4yNzZmM2M5ZmMyZmUxMDdmMTYzYjJhYmEwOThjMDNmYmIzMzQ0Y2I2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9XZWJHTExh
eWVyQ2hyb21pdW0uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL1dlYkdMTGF5ZXJDaHJvbWl1bS5jcHAKQEAgLTE2Miw3ICsxNjIsNyBAQCBHcmFwaGlj
c0NvbnRleHQzRCogV2ViR0xMYXllckNocm9taXVtOjpsYXllclJlbmRlcmVyQ29udGV4dCgpCiB7
CiAgICAgLy8gRklYTUU6IEluIHRoZSB0aHJlYWRlZCBjYXNlLCBwYWludFJlbmRlcmVkUmVzdWx0
c1RvQ2FudmFzIG11c3QgYmUKICAgICAvLyByZWZhY3RvcmVkIHRvIGJlIGFzeW5jaHJvbm91cy4g
Q3VycmVudGx5IHRoaXMgaXMgdW5pbXBsZW1lbnRlZC4KLSAgICBpZiAoIWxheWVyVHJlZUhvc3Qo
KSB8fCBDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkpCisgICAgaWYgKCFsYXllclRyZWVIb3N0KCkg
fHwgbGF5ZXJUcmVlSG9zdCgpLT5zZXR0aW5ncygpLmVuYWJsZUNvbXBvc2l0b3JUaHJlYWQpCiAg
ICAgICAgIHJldHVybiAwOwogICAgIHJldHVybiBsYXllclRyZWVIb3N0KCktPmNvbnRleHQoKTsK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDSGVhZHNVcERpc3BsYXkuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5jcHAKaW5kZXggNzA4YmNmZjg4MDFiNzg4
ODEwNjBiNTI5ODU4YjI4OWI5NTMyOGFlYy4uYjY4ZjQ2Y2Y4YjgxYzllNzZlMzc3OWM2OTAxYmNi
OTQ1NTFjOTFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NIZWFkc1VwRGlzcGxheS5jcHAKQEAgLTkwLDcg
KzkwLDcgQEAgdm9pZCBDQ0hlYWRzVXBEaXNwbGF5OjpvblN3YXBCdWZmZXJzKCkKIGJvb2wgQ0NI
ZWFkc1VwRGlzcGxheTo6ZW5hYmxlZCgpIGNvbnN0CiB7CiAgICAgLy8gRklYTUU6IEhVRCBkb2Vz
IG5vdCB3b3JrIGluIGNvbXBvc2l0b3IgdGhyZWFkIG1vZGUuCi0gICAgaWYgKENDUHJveHk6Omhh
c0ltcGxUaHJlYWQoKSkKKyAgICBpZiAoc2V0dGluZ3MoKS5lbmFibGVDb21wb3NpdG9yVGhyZWFk
KQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgcmV0dXJuIHNldHRpbmdzKCkuc2hvd1BsYXRm
b3JtTGF5ZXJUcmVlIHx8IHNldHRpbmdzKCkuc2hvd0ZQU0NvdW50ZXI7CiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJl
ZUhvc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2Mv
Q0NMYXllclRyZWVIb3N0LmNwcAppbmRleCAxNDVhNzk5ODAyN2QwNWZlZDI4NThlNTg4N2Y0YjQ5
ZTY5N2I4NDJlLi5hYmRmMTYyZDAzYTA5ZmIyZDIwOTJhZTk0OWFlZTkwNWNhN2VhZWQ0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xh
eWVyVHJlZUhvc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5jcHAKQEAgLTM3LDE3ICszNyw4IEBACiAjaW5jbHVk
ZSAiY2MvQ0NUaHJlYWQuaCIKICNpbmNsdWRlICJjYy9DQ1RocmVhZFByb3h5LmgiCiAKLW5hbWVz
cGFjZSB7Ci1zdGF0aWMgaW50IG51bUxheWVyVHJlZUluc3RhbmNlczsKLX0KLQogbmFtZXNwYWNl
IFdlYkNvcmUgewogCi1ib29sIENDTGF5ZXJUcmVlSG9zdDo6YW55TGF5ZXJUcmVlSG9zdEluc3Rh
bmNlRXhpc3RzKCkKLXsKLSAgICByZXR1cm4gbnVtTGF5ZXJUcmVlSW5zdGFuY2VzID4gMDsKLX0K
LQogUGFzc1JlZlB0cjxDQ0xheWVyVHJlZUhvc3Q+IENDTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKEND
TGF5ZXJUcmVlSG9zdENsaWVudCogY2xpZW50LCBjb25zdCBDQ1NldHRpbmdzJiBzZXR0aW5ncykK
IHsKICAgICBSZWZQdHI8Q0NMYXllclRyZWVIb3N0PiBsYXllclRyZWVIb3N0ID0gYWRvcHRSZWYo
bmV3IENDTGF5ZXJUcmVlSG9zdChjbGllbnQsIHNldHRpbmdzKSk7CkBAIC02OSwxMyArNjAsMTIg
QEAgQ0NMYXllclRyZWVIb3N0OjpDQ0xheWVyVHJlZUhvc3QoQ0NMYXllclRyZWVIb3N0Q2xpZW50
KiBjbGllbnQsIGNvbnN0IENDU2V0dGluZ3MKICAgICAsIG1fbWF4UGFnZVNjYWxlKDEpCiB7CiAg
ICAgQVNTRVJUKENDUHJveHk6OmlzTWFpblRocmVhZCgpKTsKLSAgICBudW1MYXllclRyZWVJbnN0
YW5jZXMrKzsKIH0KIAogYm9vbCBDQ0xheWVyVHJlZUhvc3Q6OmluaXRpYWxpemUoKQogewogICAg
IFRSQUNFX0VWRU5UKCJDQ0xheWVyVHJlZUhvc3Q6OmluaXRpYWxpemUiLCB0aGlzLCAwKTsKLSAg
ICBpZiAoQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpKSB7CisgICAgaWYgKG1fc2V0dGluZ3MuZW5h
YmxlQ29tcG9zaXRvclRocmVhZCkgewogICAgICAgICAvLyBUaGUgSFVEIGRvZXMgbm90IHdvcmsg
aW4gdGhyZWFkZWQgbW9kZS4gVHVybiBpdCBvZmYuCiAgICAgICAgIG1fc2V0dGluZ3Muc2hvd0ZQ
U0NvdW50ZXIgPSBmYWxzZTsKICAgICAgICAgbV9zZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRy
ZWUgPSBmYWxzZTsKQEAgLTEwNSw3ICs5NSw2IEBAIENDTGF5ZXJUcmVlSG9zdDo6fkNDTGF5ZXJU
cmVlSG9zdCgpCiAgICAgbV9wcm94eS0+c3RvcCgpOwogICAgIG1fcHJveHkuY2xlYXIoKTsKICAg
ICBjbGVhclBlbmRpbmdVcGRhdGUoKTsKLSAgICBudW1MYXllclRyZWVJbnN0YW5jZXMtLTsKIH0K
IAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OmRlbGV0ZUNvbnRlbnRzVGV4dHVyZXNPbkltcGxUaHJl
YWQoVGV4dHVyZUFsbG9jYXRvciogYWxsb2NhdG9yKQpAQCAtMTgwLDcgKzE2OSw3IEBAIHZvaWQg
Q0NMYXllclRyZWVIb3N0OjpkaWRSZWNyZWF0ZUdyYXBoaWNzQ29udGV4dChib29sIHN1Y2Nlc3Mp
CiAvLyBUZW1wb3JhcnkgaGFjayB1bnRpbCBXZWJWaWV3SW1wbCBjb250ZXh0IGNyZWF0aW9uIGdl
dHMgc2ltcGxpZmllZAogR3JhcGhpY3NDb250ZXh0M0QqIENDTGF5ZXJUcmVlSG9zdDo6Y29udGV4
dCgpCiB7Ci0gICAgQVNTRVJUKCFDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkpOworICAgIEFTU0VS
VCghbV9zZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkKTsKICAgICByZXR1cm4gbV9wcm94
eS0+Y29udGV4dCgpOwogfQogCkBAIC0yMTEsMTMgKzIwMCwxMyBAQCB2b2lkIENDTGF5ZXJUcmVl
SG9zdDo6c2V0Wm9vbUFuaW1hdG9yVHJhbnNmb3JtKGNvbnN0IFRyYW5zZm9ybWF0aW9uTWF0cml4
JiB6b29tKQogCiB2b2lkIENDTGF5ZXJUcmVlSG9zdDo6c2V0TmVlZHNBbmltYXRlKCkKIHsKLSAg
ICBBU1NFUlQoQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpKTsKKyAgICBBU1NFUlQobV9zZXR0aW5n
cy5lbmFibGVDb21wb3NpdG9yVGhyZWFkKTsKICAgICBtX3Byb3h5LT5zZXROZWVkc0FuaW1hdGUo
KTsKIH0KIAogdm9pZCBDQ0xheWVyVHJlZUhvc3Q6OnNldE5lZWRzQ29tbWl0KCkKIHsKLSAgICBp
ZiAoQ0NUaHJlYWRQcm94eTo6aW1wbFRocmVhZCgpKSB7CisgICAgaWYgKG1fc2V0dGluZ3MuZW5h
YmxlQ29tcG9zaXRvclRocmVhZCkgewogICAgICAgICBUUkFDRV9FVkVOVCgiQ0NMYXllclRyZWVI
b3N0OjpzZXROZWVkc0NvbW1pdCIsIHRoaXMsIDApOwogICAgICAgICBtX3Byb3h5LT5zZXROZWVk
c0NvbW1pdCgpOwogICAgIH0gZWxzZQpAQCAtMjI2LDcgKzIxNSw3IEBAIHZvaWQgQ0NMYXllclRy
ZWVIb3N0OjpzZXROZWVkc0NvbW1pdCgpCiAKIHZvaWQgQ0NMYXllclRyZWVIb3N0OjpzZXROZWVk
c1JlZHJhdygpCiB7Ci0gICAgaWYgKENDVGhyZWFkUHJveHk6OmltcGxUaHJlYWQoKSkKKyAgICBp
ZiAobV9zZXR0aW5ncy5lbmFibGVDb21wb3NpdG9yVGhyZWFkKQogICAgICAgICBtX3Byb3h5LT5z
ZXROZWVkc1JlZHJhdygpOwogICAgIGVsc2UKICAgICAgICAgbV9jbGllbnQtPnNjaGVkdWxlQ29t
cG9zaXRlKCk7CkBAIC0zMDYsNyArMjk1LDcgQEAgVGV4dHVyZU1hbmFnZXIqIENDTGF5ZXJUcmVl
SG9zdDo6Y29udGVudHNUZXh0dXJlTWFuYWdlcigpIGNvbnN0CiAKIHZvaWQgQ0NMYXllclRyZWVI
b3N0Ojpjb21wb3NpdGUoKQogewotICAgIEFTU0VSVCghQ0NUaHJlYWRQcm94eTo6aW1wbFRocmVh
ZCgpKTsKKyAgICBBU1NFUlQoIW1fc2V0dGluZ3MuZW5hYmxlQ29tcG9zaXRvclRocmVhZCk7CiAg
ICAgc3RhdGljX2Nhc3Q8Q0NTaW5nbGVUaHJlYWRQcm94eSo+KG1fcHJveHkuZ2V0KCkpLT5jb21w
b3NpdGVJbW1lZGlhdGVseSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ0xheWVyVHJlZUhvc3QuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCmluZGV4
IDUwOTMwMTMzODNiZmIwMzQ0YjEwY2I4NDRhZWNhMTc3OGJhYTFlOWUuLjU2ZDJiNmM0MTg5Yzc2
OWUwNGY0YWVjN2RjMDhiZjMxZDFiMjExNjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDTGF5ZXJUcmVlSG9zdC5o
CkBAIC03Miw2ICs3Miw3IEBAIHN0cnVjdCBDQ1NldHRpbmdzIHsKICAgICAgICAgICAgIDogYWNj
ZWxlcmF0ZVBhaW50aW5nKGZhbHNlKQogICAgICAgICAgICAgLCBjb21wb3NpdGVPZmZzY3JlZW4o
ZmFsc2UpCiAgICAgICAgICAgICAsIGRpc2NhcmRBbGxUZXh0dXJlcyhmYWxzZSkKKyAgICAgICAg
ICAgICwgZW5hYmxlQ29tcG9zaXRvclRocmVhZChmYWxzZSkKICAgICAgICAgICAgICwgc2hvd0ZQ
U0NvdW50ZXIoZmFsc2UpCiAgICAgICAgICAgICAsIHNob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxz
ZSkKICAgICAgICAgICAgICwgdXNlRGFtYWdlVHJhY2tlcihmYWxzZSkKQEAgLTgwLDYgKzgxLDcg
QEAgc3RydWN0IENDU2V0dGluZ3MgewogICAgIGJvb2wgYWNjZWxlcmF0ZVBhaW50aW5nOwogICAg
IGJvb2wgY29tcG9zaXRlT2Zmc2NyZWVuOwogICAgIGJvb2wgZGlzY2FyZEFsbFRleHR1cmVzOwor
ICAgIGJvb2wgZW5hYmxlQ29tcG9zaXRvclRocmVhZDsKICAgICBib29sIHNob3dGUFNDb3VudGVy
OwogICAgIGJvb2wgc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOwogICAgIGJvb2wgdXNlRGFtYWdlVHJh
Y2tlcjsKQEAgLTExMyw5ICsxMTUsNiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIFBhc3NSZWZQdHI8
Q0NMYXllclRyZWVIb3N0PiBjcmVhdGUoQ0NMYXllclRyZWVIb3N0Q2xpZW50KiwgY29uc3QgQ0NT
ZXR0aW5ncyYpOwogICAgIHZpcnR1YWwgfkNDTGF5ZXJUcmVlSG9zdCgpOwogCi0gICAgLy8gUmV0
dXJucyB0cnVlIGlmIGFueSBDQ0xheWVyVHJlZUhvc3QgaXMgYWxpdmUuCi0gICAgc3RhdGljIGJv
b2wgYW55TGF5ZXJUcmVlSG9zdEluc3RhbmNlRXhpc3RzKCk7Ci0KICAgICAvLyBDQ0xheWVyVHJl
ZUhvc3QgaW50ZXJmYWNlIHRvIENDUHJveHkuCiAgICAgdm9pZCBhbmltYXRlQW5kTGF5b3V0KGRv
dWJsZSBmcmFtZUJlZ2luVGltZSk7CiAgICAgdm9pZCBiZWdpbkNvbW1pdE9uSW1wbFRocmVhZChD
Q0xheWVyVHJlZUhvc3RJbXBsKik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jaHJvbWl1bS9jYy9DQ1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuY3BwCmluZGV4IGU0ZDYwMTQ1MTFiYzFj
NWRiMGU2ODdiZDFmNjgzZmFlODAzNmM1YWEuLjYwNjJlYzA5YzE3NWQxYWM0NzFmYjZlNGJkNjEy
ZTNhMTg3MmZlMWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2Nocm9taXVtL2NjL0NDUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2Nocm9taXVtL2NjL0NDUHJveHkuY3BwCkBAIC0zNyw4ICszNyw3IEBAIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAogbmFtZXNwYWNlIHsKICNpZm5kZWYgTkRFQlVHCi1ib29sIGltcGxUaHJl
YWRJc092ZXJyaWRkZW4gPSBmYWxzZTsKLVRocmVhZElkZW50aWZpZXIgdGhyZWFkSURPdmVycmlk
ZW5Ub0JlSW1wbFRocmVhZDsKK2Jvb2wgZmFrZUltcGxUaHJlYWQgPSBmYWxzZTsKICNlbmRpZgog
Q0NUaHJlYWQqIHNfbWFpblRocmVhZCA9IDA7CiBDQ1RocmVhZCogc19pbXBsVGhyZWFkID0gMDsK
QEAgLTU0LDExICs1Myw2IEBAIENDVGhyZWFkKiBDQ1Byb3h5OjptYWluVGhyZWFkKCkKICAgICBy
ZXR1cm4gc19tYWluVGhyZWFkOwogfQogCi1ib29sIENDUHJveHk6Omhhc0ltcGxUaHJlYWQoKQot
ewotICAgIHJldHVybiBzX2ltcGxUaHJlYWQ7Ci19Ci0KIHZvaWQgQ0NQcm94eTo6c2V0SW1wbFRo
cmVhZChDQ1RocmVhZCogdGhyZWFkKQogewogICAgIHNfaW1wbFRocmVhZCA9IHRocmVhZDsKQEAg
LTczLDI0ICs2NywxOCBAQCBDQ1RocmVhZCogQ0NQcm94eTo6aW1wbFRocmVhZCgpCiBib29sIEND
UHJveHk6OmlzTWFpblRocmVhZCgpCiB7CiAgICAgQVNTRVJUKHNfbWFpblRocmVhZCk7Ci0gICAg
aWYgKGltcGxUaHJlYWRJc092ZXJyaWRkZW4gJiYgY3VycmVudFRocmVhZCgpID09IHRocmVhZElE
T3ZlcnJpZGVuVG9CZUltcGxUaHJlYWQpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1
cm4gY3VycmVudFRocmVhZCgpID09IHNfbWFpblRocmVhZC0+dGhyZWFkSUQoKTsKKyAgICByZXR1
cm4gIWZha2VJbXBsVGhyZWFkICYmIGN1cnJlbnRUaHJlYWQoKSA9PSBzX21haW5UaHJlYWQtPnRo
cmVhZElEKCk7CiB9CiAKIGJvb2wgQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkKIHsKICAgICBXVEY6
OlRocmVhZElkZW50aWZpZXIgaW1wbFRocmVhZElEID0gc19pbXBsVGhyZWFkID8gc19pbXBsVGhy
ZWFkLT50aHJlYWRJRCgpIDogMDsKLSAgICBpZiAoaW1wbFRocmVhZElzT3ZlcnJpZGRlbiAmJiBj
dXJyZW50VGhyZWFkKCkgPT0gdGhyZWFkSURPdmVycmlkZW5Ub0JlSW1wbFRocmVhZCkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGN1cnJlbnRUaHJlYWQoKSA9PSBpbXBsVGhyZWFk
SUQ7CisgICAgcmV0dXJuIGZha2VJbXBsVGhyZWFkIHx8IGN1cnJlbnRUaHJlYWQoKSA9PSBpbXBs
VGhyZWFkSUQ7CiB9CiAKLXZvaWQgQ0NQcm94eTo6c2V0Q3VycmVudFRocmVhZElzSW1wbFRocmVh
ZChib29sIGlzSW1wbFRocmVhZCkKK3ZvaWQgQ0NQcm94eTo6c2V0SW1wbFRocmVhZChib29sIGlz
SW1wbFRocmVhZCkKIHsKLSAgICBpbXBsVGhyZWFkSXNPdmVycmlkZGVuID0gaXNJbXBsVGhyZWFk
OwotICAgIGlmIChpc0ltcGxUaHJlYWQpCi0gICAgICAgIHRocmVhZElET3ZlcnJpZGVuVG9CZUlt
cGxUaHJlYWQgPSBjdXJyZW50VGhyZWFkKCk7CisgICAgZmFrZUltcGxUaHJlYWQgPSBpc0ltcGxU
aHJlYWQ7CiB9CiAjZW5kaWYKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NQcm94eS5oCmluZGV4IGJiMzc4MDE0N2IxNmMyNmI3NWE3
Y2NkMjJhYThiOGZlODRlNzZiYmQuLmE2MjMwZWFjZDU2ODlkNWJlYTQyZjBkMGNkYjljNjM4NTMz
Nzg4YWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL2NjL0NDUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
aHJvbWl1bS9jYy9DQ1Byb3h5LmgKQEAgLTUzLDcgKzUzLDYgQEAgcHVibGljOgogICAgIHN0YXRp
YyB2b2lkIHNldE1haW5UaHJlYWQoQ0NUaHJlYWQqKTsKICAgICBzdGF0aWMgQ0NUaHJlYWQqIG1h
aW5UaHJlYWQoKTsKIAotICAgIHN0YXRpYyBib29sIGhhc0ltcGxUaHJlYWQoKTsKICAgICBzdGF0
aWMgdm9pZCBzZXRJbXBsVGhyZWFkKENDVGhyZWFkKik7CiAgICAgc3RhdGljIENDVGhyZWFkKiBp
bXBsVGhyZWFkKCk7CiAKQEAgLTkyLDcgKzkxLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9p
ZCBsb3NlQ29tcG9zaXRvckNvbnRleHQoaW50IG51bVRpbWVzKSA9IDA7CiAKICNpZm5kZWYgTkRF
QlVHCi0gICAgc3RhdGljIHZvaWQgc2V0Q3VycmVudFRocmVhZElzSW1wbFRocmVhZChib29sKTsK
KyAgICBzdGF0aWMgdm9pZCBzZXRJbXBsVGhyZWFkKGJvb2wpOwogI2VuZGlmCiAKIHByb3RlY3Rl
ZDoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL2NjL0NDU2luZ2xlVGhyZWFkUHJveHkuaAppbmRleCAwZDVhNGEyZDhhNTE2
YjFkN2JjZjk5MWE5OWUxYzc4Nzg5OTQzZWM1Li5lZGFiNjFmMmMwMzI3OTZlYzg0MjM1YjQxYjRl
Zjc3M2E4MjI5ZjEzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9jYy9DQ1NpbmdsZVRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vY2MvQ0NTaW5nbGVUaHJlYWRQcm94eS5oCkBAIC05
MSwxMyArOTEsMTMgQEAgcHVibGljOgogICAgIERlYnVnU2NvcGVkU2V0SW1wbFRocmVhZCgpCiAg
ICAgewogI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICAgICAgQ0NQcm94eTo6c2V0Q3VycmVudFRo
cmVhZElzSW1wbFRocmVhZCh0cnVlKTsKKyAgICAgICAgQ0NQcm94eTo6c2V0SW1wbFRocmVhZCh0
cnVlKTsKICNlbmRpZgogICAgIH0KICAgICB+RGVidWdTY29wZWRTZXRJbXBsVGhyZWFkKCkKICAg
ICB7CiAjaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICAgICBDQ1Byb3h5OjpzZXRDdXJyZW50VGhy
ZWFkSXNJbXBsVGhyZWFkKGZhbHNlKTsKKyAgICAgICAgQ0NQcm94eTo6c2V0SW1wbFRocmVhZChm
YWxzZSk7CiAjZW5kaWYKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCmluZGV4
IDc4YTdlMGQ5OTJkODYyMWRkMjE1MmVkMWQyNmJkMWMxYmI5ZjdmZGMuLjRlMmE3NjBhZTUxNmE1
MWY1MjA0NmFjZTI2YTgyODNjYzdjYTNmZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vV2ViS2l0Lmd5cAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXAK
QEAgLTEzNiw4ICsxMzYsNiBAQAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRp
b25VbmRlcmxpbmUuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21wb3NpdG9yQ2xp
ZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29tcG9zaXRvci5oJywKLSAgICAg
ICAgICAgICAgICAncHVibGljL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQuaCcsCi0g
ICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyLmgnLAogICAg
ICAgICAgICAgICAgICdwdWJsaWMvV2ViQ29uc29sZU1lc3NhZ2UuaCcsCiAgICAgICAgICAgICAg
ICAgJ3B1YmxpYy9XZWJDb250ZW50TGF5ZXIuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9X
ZWJDb250ZW50TGF5ZXJDbGllbnQuaCcsCkBAIC00NzUsOCArNDczLDYgQEAKICAgICAgICAgICAg
ICAgICAnc3JjL1dlYkNvbW1vbi5jcHAnLAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tcG9z
aXRvckltcGwuY3BwJywKICAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgn
LAotICAgICAgICAgICAgICAgICdzcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3Bw
JywKLSAgICAgICAgICAgICAgICAnc3JjL1dlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgn
LAogICAgICAgICAgICAgICAgICdzcmMvV2ViQ29udGVudExheWVyLmNwcCcsCiAgICAgICAgICAg
ICAgICAgJ3NyYy9XZWJDb250ZW50TGF5ZXJJbXBsLmNwcCcsCiAgICAgICAgICAgICAgICAgJ3Ny
Yy9XZWJDb250ZW50TGF5ZXJJbXBsLmgnLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9XZWJLaXQuZ3lwaSBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKaW5k
ZXggZDc0MzNhYjA4ZmJmZDI2NGVhMzgzOGZkOGYzNGI3ZDY2M2Y0ODZkMi4uYzkwNjY4OTdmN2Zk
MDdiOTY2ZDJlZmE5Y2E5MmNlMDk3YTZiNmI0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9XZWJLaXQuZ3lwaQorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5n
eXBpCkBAIC04OSw3ICs4OSw3IEBACiAgICAgICAgICAgICAndGVzdHMvVHJlZVN5bmNocm9uaXpl
clRlc3QuY3BwJywKICAgICAgICAgICAgICd0ZXN0cy9UcmVlVGVzdEhlbHBlcnMuY3BwJywKICAg
ICAgICAgICAgICd0ZXN0cy9UcmVlVGVzdEhlbHBlcnMuaCcsCi0gICAgICAgICAgICAndGVzdHMv
V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcCcsCisgICAgICAgICAgICAndGVz
dHMvV2ViQ29tcG9zaXRvckltcGxUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViRnJh
bWVUZXN0LmNwcCcsCiAgICAgICAgICAgICAndGVzdHMvV2ViTGF5ZXJUZXN0LmNwcCcsCiAgICAg
ICAgICAgICAndGVzdHMvV2ViUGFnZU5ld1NlcmlhbGl6ZXJUZXN0LmNwcCcsCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yLmggYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9yLmgKaW5kZXggOWRmM2EyYzU0NjI1
Njc1NjY3MjRmOWZhZTIwMThiZGViZjI1MWU3Mi4uMzI2YjJhY2YxZjc4NjBiNzA2M2U1OGEwYmFi
MDU2NzVjNTNiMTI5MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMv
V2ViQ29tcG9zaXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNv
bXBvc2l0b3IuaApAQCAtMjcsMzMgKzI3LDIzIEBACiAjZGVmaW5lIFdlYkNvbXBvc2l0b3JfaAog
CiAjaW5jbHVkZSAicGxhdGZvcm0vV2ViQ29tbW9uLmgiCi0jaW5jbHVkZSAiV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlci5oIgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAorY2xhc3MgV2ViQ29tcG9z
aXRvckNsaWVudDsKIGNsYXNzIFdlYklucHV0RXZlbnQ7CiBjbGFzcyBXZWJUaHJlYWQ7CiAKLSNk
ZWZpbmUgV0VCQ09NUE9TSVRPUl9IQVNfSU5JVElBTElaRQotCi0vLyBUaGlzIGNsYXNzIGNvbnRh
aW5zIGdsb2JhbCByb3V0aW5lcyBmb3IgaW50ZXJhY3Rpbmcgd2l0aCB0aGUKLS8vIGNvbXBvc2l0
b3IuCi0vLwotLy8gQWxsIGNhbGxzIHRvIHRoZSBXZWJDb21wb3NpdG9yIG11c3QgYmUgbWFkZSBm
cm9tIHRoZSBtYWluIHRocmVhZC4KLS8vCi0vLyBUaGlzIGNsYXNzIGN1cnJlbnRseSB0ZW1wb3Jh
cmlseSBpbmhlcml0cyBmcm9tIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXIKLS8vIHdoaWxlIHdl
IG1pZ3JhdGUgZG93bnN0cmVhbSBjb2RlIHRvIHVzZSBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
IGRpcmVjdGx5LgotY2xhc3MgV2ViQ29tcG9zaXRvciA6IHB1YmxpYyBXZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVyIHsKKy8vIFRoaXMgcmVwcmVzZW50cyB0aGUgY29tcG9zaXRvciBhc3NvY2lhdGVk
IHdpdGggYSBXZWJXaWRnZXQuIEFsbCBjYWxscyB0byB0aGUgV2ViQ29tcG9zaXRvciBtdXN0Cisv
LyBiZSBtYWRlIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorY2xhc3MgV2ViQ29tcG9zaXRv
ciB7CiBwdWJsaWM6Ci0gICAgLy8gSW5pdGlhbGl6ZXMgdGhlIGNvbXBvc2l0b3IuIFRocmVhZGVk
IGNvbXBvc2l0aW5nIGlzIGVuYWJsZWQgYnkgcGFzc2luZyBpbgotICAgIC8vIGEgbm9uLW51bGwg
V2ViVGhyZWFkLiBObyBjb21wb3NpdG9yIGNsYXNzZXMgb3IgbWV0aG9kcyBzaG91bGQgYmUgdXNl
ZAotICAgIC8vIHByaW9yIHRvIGNhbGxpbmcgaW5pdGlhbGl6ZS4KLSAgICBXRUJLSVRfRVhQT1JU
IHN0YXRpYyB2b2lkIGluaXRpYWxpemUoV2ViVGhyZWFkKik7CisgICAgLy8gVGhpcyBtdXN0IGJl
IGNhbGxlZCBvbmNlIHdpdGggYSBub24tbnVsbCBXZWJUaHJlYWQgYmVmb3JlIGFueSBjb21wb3Np
dG9ycyBhdHRlbXB0IHRvIGluaXRpYWxpemUuCisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgdm9p
ZCBzZXRUaHJlYWQoV2ViVGhyZWFkKik7CisgICAgV0VCS0lUX0VYUE9SVCBzdGF0aWMgV2ViQ29t
cG9zaXRvciogZnJvbUlkZW50aWZpZXIoaW50KTsKIAotICAgIC8vIFNodXRzIGRvd24gdGhlIGNv
bXBvc2l0b3IuIFRoaXMgbXVzdCBiZSBjYWxsZWQgd2hlbiBhbGwgY29tcG9zaXRvciBkYXRhCi0g
ICAgLy8gdHlwZXMgaGF2ZSBiZWVuIGRlbGV0ZWQuIE5vIGNvbXBvc2l0b3IgY2xhc3NlcyBvciBt
ZXRob2RzIHNob3VsZCBiZSB1c2VkCi0gICAgLy8gYWZ0ZXIgc2h1dGRvd24uCi0gICAgV0VCS0lU
X0VYUE9SVCBzdGF0aWMgdm9pZCBzaHV0ZG93bigpOworICAgIHZpcnR1YWwgdm9pZCBzZXRDbGll
bnQoV2ViQ29tcG9zaXRvckNsaWVudCopID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgaGFuZGxlSW5w
dXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50JikgPSAwOwogCiBwcm90ZWN0ZWQ6CiAgICAgdmly
dHVhbCB+V2ViQ29tcG9zaXRvcigpIHsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViQ29tcG9zaXRvckNsaWVudC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9wdWJsaWMvV2ViQ29tcG9zaXRvckNsaWVudC5oCmluZGV4IGMyNzVmNzA1NTc2OGU4YjBlODhj
MWYzMTUxOWU0ZGZkYTViNTQ2MjMuLjJkMGI0MjhiNzYxZDFlZjA5ZDlkNDBmZDRiNzIwOWQyYjgz
OTk4NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkNvbXBv
c2l0b3JDbGllbnQuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21w
b3NpdG9yQ2xpZW50LmgKQEAgLTI2LDE0ICsyNiwyMiBAQAogI2lmbmRlZiBXZWJDb21wb3NpdG9y
Q2xpZW50X2gKICNkZWZpbmUgV2ViQ29tcG9zaXRvckNsaWVudF9oCiAKLSNpbmNsdWRlICJXZWJD
b21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50LmgiCi0KIG5hbWVzcGFjZSBXZWJLaXQgewogCi0v
LyBUaGlzIGNsYXNzIHdpbGwgZ28gYXdheSBvbmNlIGRvd25zdHJlYW0gY29kZSBoYXMgdHJhbnNp
dGlvbmVkCi0vLyB0byBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50LgotY2xhc3MgV2Vi
Q29tcG9zaXRvckNsaWVudCA6IHB1YmxpYyBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50
IHsKK2NsYXNzIFdlYkNvbXBvc2l0b3JDbGllbnQgewogcHVibGljOgorICAgIC8vIENhbGxiYWNr
cyBpbnZva2VkIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgorICAgIHZpcnR1YWwgdm9pZCB3
aWxsU2h1dGRvd24oKSA9IDA7CisKKyAgICAvLyBFeGFjdGx5IG9uZSBvZiB0aGUgZm9sbG93aW5n
IHR3byBjYWxsYmFja3Mgd2lsbCBiZSBpbnZva2VkIGFmdGVyIGV2ZXJ5IGNhbGwgdG8gV2ViQ29t
cG9zaXRvcjo6aGFuZGxlSW5wdXRFdmVudCgpOgorCisgICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdl
YkNvbXBvc2l0b3IgaGFuZGxlZCB0aGUgaW5wdXQgZXZlbnQgYW5kIG5vIGZ1cnRoZXIgcHJvY2Vz
c2luZyBpcyByZXF1aXJlZC4KKyAgICB2aXJ0dWFsIHZvaWQgZGlkSGFuZGxlSW5wdXRFdmVudCgp
ID0gMDsKKworICAgIC8vIENhbGxlZCB3aGVuIHRoZSBXZWJDb21wb3NpdG9yIGRpZCBub3QgaGFu
ZGxlIHRoZSBpbnB1dCBldmVudC4gSWYgc2VuZFRvV2lkZ2V0IGlzIHRydWUsIHRoZSBpbnB1dCBl
dmVudAorICAgIC8vIHNob3VsZCBiZSBmb3J3YXJkZWQgdG8gdGhlIFdlYldpZGdldCBhc3NvY2lh
dGVkIHdpdGggdGhpcyBjb21wb3NpdG9yIGZvciBmdXJ0aGVyIHByb2Nlc3NpbmcuCisgICAgdmly
dHVhbCB2b2lkIGRpZE5vdEhhbmRsZUlucHV0RXZlbnQoYm9vbCBzZW5kVG9XaWRnZXQpID0gMDsK
KwogcHJvdGVjdGVkOgogICAgIHZpcnR1YWwgfldlYkNvbXBvc2l0b3JDbGllbnQoKSB7IH0KIH07
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVyLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVyLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGQ4ZWU2ODZk
NzU0MTI4YjA3Yzg2NmQyZTNkODhhYzQwYmQ2MjQ1YWEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlci5oCisrKyAvZGV2L251bGwKQEAgLTEsNTUgKzAsMCBAQAot
LyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEu
ICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZv
cm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
LSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
Ci0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgot
ICovCi0KLSNpZm5kZWYgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcl9oCi0jZGVmaW5lIFdlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJfaAotCi0jaW5jbHVkZSAiV2ViQ29tbW9uLmgiCi0KLW5hbWVz
cGFjZSBXZWJLaXQgewotCi1jbGFzcyBXZWJDb21wb3NpdG9yOwotY2xhc3MgV2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckNsaWVudDsKLWNsYXNzIFdlYklucHV0RXZlbnQ7Ci1jbGFzcyBXZWJUaHJl
YWQ7Ci0KLS8vIFRoaXMgcmVwcmVzZW50cyB0aGUgY29tcG9zaXRvciBhc3NvY2lhdGVkIHdpdGgg
YSBXZWJXaWRnZXQuIEFsbCBjYWxscyB0byB0aGUgV2ViQ29tcG9zaXRvciBtdXN0Ci0vLyBiZSBt
YWRlIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgotY2xhc3MgV2ViQ29tcG9zaXRvcklucHV0
SGFuZGxlciB7Ci1wdWJsaWM6Ci0gICAgLy8gVGhlIHJldHVybiB2YWx1ZSBpcyB0ZW1wb3Jhcmls
eSBXZWJDb21wb3NpdG9yIHVudGlsIGFsbCBkb3duc3RyZWFtIGNvZGUKLSAgICAvLyBpcyBzd2l0
Y2hlZCB0byB1c2UgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlci4KLSAgICBXRUJLSVRfRVhQT1JU
IHN0YXRpYyBXZWJDb21wb3NpdG9yKiBmcm9tSWRlbnRpZmllcihpbnQpOwotCi0gICAgdmlydHVh
bCB2b2lkIHNldENsaWVudChXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyQ2xpZW50KikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dEV2ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKSA9
IDA7Ci0KLXByb3RlY3RlZDoKLSAgICB2aXJ0dWFsIH5XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
KCkgeyB9Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotI2VuZGlmCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVy
Q2xpZW50LmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVyQ2xpZW50LmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGU4YmI1NTU5
ODM0ZGQxODNhMjU4NDk4NTE3ZTIyZTYwNWE0NmZlMDEuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudC5oCisrKyAvZGV2L251bGwKQEAgLTEsNTEgKzAs
MCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoK
LSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklE
RUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCi0gKiBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNF
UVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwotICogTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVT
RUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFD
VCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCi0gKiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFN
QUdFLgotICovCi0KLSNpZm5kZWYgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudF9oCi0j
ZGVmaW5lIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnRfaAotCi1uYW1lc3BhY2UgV2Vi
S2l0IHsKLQotY2xhc3MgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckNsaWVudCB7Ci1wdWJsaWM6
Ci0gICAgLy8gQ2FsbGJhY2tzIGludm9rZWQgZnJvbSB0aGUgY29tcG9zaXRvciB0aHJlYWQuCi0g
ICAgdmlydHVhbCB2b2lkIHdpbGxTaHV0ZG93bigpID0gMDsKLQotICAgIC8vIEV4YWN0bHkgb25l
IG9mIHRoZSBmb2xsb3dpbmcgdHdvIGNhbGxiYWNrcyB3aWxsIGJlIGludm9rZWQgYWZ0ZXIgZXZl
cnkgY2FsbCB0byBXZWJDb21wb3NpdG9yOjpoYW5kbGVJbnB1dEV2ZW50KCk6Ci0KLSAgICAvLyBD
YWxsZWQgd2hlbiB0aGUgV2ViQ29tcG9zaXRvciBoYW5kbGVkIHRoZSBpbnB1dCBldmVudCBhbmQg
bm8gZnVydGhlciBwcm9jZXNzaW5nIGlzIHJlcXVpcmVkLgotICAgIHZpcnR1YWwgdm9pZCBkaWRI
YW5kbGVJbnB1dEV2ZW50KCkgPSAwOwotCi0gICAgLy8gQ2FsbGVkIHdoZW4gdGhlIFdlYkNvbXBv
c2l0b3IgZGlkIG5vdCBoYW5kbGUgdGhlIGlucHV0IGV2ZW50LiBJZiBzZW5kVG9XaWRnZXQgaXMg
dHJ1ZSwgdGhlIGlucHV0IGV2ZW50Ci0gICAgLy8gc2hvdWxkIGJlIGZvcndhcmRlZCB0byB0aGUg
V2ViV2lkZ2V0IGFzc29jaWF0ZWQgd2l0aCB0aGlzIGNvbXBvc2l0b3IgZm9yIGZ1cnRoZXIgcHJv
Y2Vzc2luZy4KLSAgICB2aXJ0dWFsIHZvaWQgZGlkTm90SGFuZGxlSW5wdXRFdmVudChib29sIHNl
bmRUb1dpZGdldCkgPSAwOwotCi1wcm90ZWN0ZWQ6Ci0gICAgdmlydHVhbCB+V2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckNsaWVudCgpIHsgfQotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViS2l0Ci0K
LSNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5
ZXJUcmVlVmlldy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViTGF5ZXJUcmVl
Vmlldy5oCmluZGV4IDgwMjhhZDUwYWY1NjFlZDczODk2YTM5MTc2NTE2ZWZlM2RmZTgzYjcuLmU2
ZDAwMjI0MjAwMDZhZGRmNWMyZGY0ZWNmYTk4MDQ4MWE1ZTFjMzUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYkxheWVyVHJlZVZpZXcuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJMYXllclRyZWVWaWV3LmgKQEAgLTQ2LDExICs0Niwx
MyBAQCBwdWJsaWM6CiAgICAgICAgIFNldHRpbmdzKCkKICAgICAgICAgICAgIDogYWNjZWxlcmF0
ZVBhaW50aW5nKGZhbHNlKQogICAgICAgICAgICAgLCBjb21wb3NpdGVPZmZzY3JlZW4oZmFsc2Up
CisgICAgICAgICAgICAsIGVuYWJsZUNvbXBvc2l0b3JUaHJlYWQoZmFsc2UpCiAgICAgICAgICAg
ICAsIHNob3dGUFNDb3VudGVyKGZhbHNlKQogICAgICAgICAgICAgLCBzaG93UGxhdGZvcm1MYXll
clRyZWUoZmFsc2UpIHsgfQogCiAgICAgICAgIGJvb2wgYWNjZWxlcmF0ZVBhaW50aW5nOwogICAg
ICAgICBib29sIGNvbXBvc2l0ZU9mZnNjcmVlbjsKKyAgICAgICAgYm9vbCBlbmFibGVDb21wb3Np
dG9yVGhyZWFkOwogICAgICAgICBib29sIHNob3dGUFNDb3VudGVyOwogICAgICAgICBib29sIHNo
b3dQbGF0Zm9ybUxheWVyVHJlZTsKICNpZiBXRUJLSVRfSU1QTEVNRU5UQVRJT04KQEAgLTcyLDgg
Kzc0LDggQEAgcHVibGljOgogICAgIFdFQktJVF9FWFBPUlQgdm9pZCBhc3NpZ24oY29uc3QgV2Vi
TGF5ZXJUcmVlVmlldyYpOwogICAgIFdFQktJVF9FWFBPUlQgYm9vbCBlcXVhbHMoY29uc3QgV2Vi
TGF5ZXJUcmVlVmlldyYpIGNvbnN0OwogCi0gICAgLy8gVHJpZ2dlcnMgYSBjb21wb3NpdGluZyBw
YXNzLiBJZiB0aGUgY29tcG9zaXRvciB0aHJlYWQgd2FzIG5vdAotICAgIC8vIGVuYWJsZWQgdmlh
IFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUsIHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMK
KyAgICAvLyBUcmlnZ2VycyBhIGNvbXBvc2l0aW5nIHBhc3MuIElmIHRoZSBjb21wb3NpdG9yIHRo
cmVhZCBpcyBkaXNhYmxlZAorICAgIC8vIChlbmFibGVDb21wb3NpdG9yVGhyZWFkID09IGZhbHNl
KSwgdGhlIGNvbXBvc2l0aW5nIHBhc3MgaGFwcGVucwogICAgIC8vIGltbWVkaWF0ZWx5LiBJZiBp
dCBpcyBlbmFibGVkLCB0aGUgY29tcG9zaXRpbmcgcGFzcyB3aWxsIGhhcHBlbiBhdCBhCiAgICAg
Ly8gbGF0ZXIgdGltZS4gQmVmb3JlIHRoZSBjb21wb3NpdGluZyBwYXNzIGhhcHBlbnMgKGkuZS4g
YmVmb3JlIGNvbXBvc2l0ZSgpCiAgICAgLy8gcmV0dXJucyB3aGVuIHRoZSBjb21wb3NpdG9yIHRo
cmVhZCBpcyBkaXNhYmxlZCksIFdlYkNvbnRlbnRMYXllcnMgd2lsbCBiZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKaW5kZXggZGQ3NzQ5OTBiNjNhMTQ5OGJh
NDM4YWI2ZjU5MDE3ZDg5YWVjZjRiMy4uNDY0MzYzYjA2Y2VjYjIzNWVmMGUzOWZhMDU5MTBiZjkz
OTU3NjEzNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0
dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CkBAIC0xMTcsNiArMTE3LDggQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBzZXRMZWdhY3lB
Y2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dE1pbmltdW1BY2NlbGVyYXRlZDJkQ2FudmFzU2l6ZShpbnQpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChib29sKSA9IDA7CisgICAgdmlydHVhbCB2
b2lkIHNldFVzZVRocmVhZGVkQ29tcG9zaXRvcihib29sKSA9IDA7CisgICAgdmlydHVhbCBib29s
IHVzZVRocmVhZGVkQ29tcG9zaXRvcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
TWVtb3J5SW5mb0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRIeXBlcmxp
bmtBdWRpdGluZ0VuYWJsZWQoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBc3luY2hy
b25vdXNTcGVsbENoZWNraW5nRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5jcHAKaW5kZXggMjZjYTZjOTNmZjZhMmVl
YmEyMWEyZDE4Njg3MzI3YjRjZmQwZDIyYi4uZTAzMWUwZTlkZjI5YmZkNzQxNWY5NjlmZjdmNzg5
YjA1Y2MxMjJkZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29t
cG9zaXRvckltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBv
c2l0b3JJbXBsLmNwcApAQCAtMjgsNjQgKzI4LDExMiBAQAogI2luY2x1ZGUgIldlYkNvbXBvc2l0
b3JJbXBsLmgiCiAKICNpbmNsdWRlICJDQ1RocmVhZEltcGwuaCIKLSNpbmNsdWRlICJXZWJLaXQu
aCIKLSNpbmNsdWRlICJXZWJLaXRQbGF0Zm9ybVN1cHBvcnQuaCIKICNpbmNsdWRlICJXZWJDb21w
b3NpdG9yQ2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgotI2luY2x1ZGUgImNj
L0NDUHJveHkuaCIKLSNpbmNsdWRlICJjYy9DQ0xheWVyVHJlZUhvc3QuaCIKKyNpbmNsdWRlICJj
Yy9DQ0lucHV0SGFuZGxlci5oIgorI2luY2x1ZGUgImNjL0NDVGhyZWFkUHJveHkuaCIKICNpbmNs
dWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29y
ZTsKIAorbmFtZXNwYWNlIFdlYkNvcmUgeworCitQYXNzT3duUHRyPENDSW5wdXRIYW5kbGVyPiBD
Q0lucHV0SGFuZGxlcjo6Y3JlYXRlKENDSW5wdXRIYW5kbGVyQ2xpZW50KiBpbnB1dEhhbmRsZXJD
bGllbnQpCit7CisgICAgcmV0dXJuIFdlYktpdDo6V2ViQ29tcG9zaXRvckltcGw6OmNyZWF0ZShp
bnB1dEhhbmRsZXJDbGllbnQpOworfQorCit9CisKIG5hbWVzcGFjZSBXZWJLaXQgewogCi1ib29s
IFdlYkNvbXBvc2l0b3JJbXBsOjpzX2luaXRpYWxpemVkID0gZmFsc2U7Ci1DQ1RocmVhZCogV2Vi
Q29tcG9zaXRvckltcGw6OnNfbWFpblRocmVhZCA9IDA7Ci1DQ1RocmVhZCogV2ViQ29tcG9zaXRv
ckltcGw6OnNfaW1wbFRocmVhZCA9IDA7Cit2b2lkIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChX
ZWJUaHJlYWQqIGNvbXBvc2l0b3JUaHJlYWQpCit7CisgICAgQVNTRVJUKGNvbXBvc2l0b3JUaHJl
YWQpOworICAgIENDVGhyZWFkUHJveHk6OnNldEltcGxUaHJlYWQoQ0NUaHJlYWRJbXBsOjpjcmVh
dGUoY29tcG9zaXRvclRocmVhZCkubGVha1B0cigpKTsKK30KKworCisvLyBUaGVzZSBzdGF0aWNz
IG1heSBvbmx5IGJlIGFjY2Vzc2VkIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgoraW50IFdl
YkNvbXBvc2l0b3JJbXBsOjpzX25leHRBdmFpbGFibGVJZGVudGlmaWVyID0gMTsKK0hhc2hTZXQ8
V2ViQ29tcG9zaXRvckltcGwqPiogV2ViQ29tcG9zaXRvckltcGw6OnNfY29tcG9zaXRvcnMgPSAw
OworCitXZWJDb21wb3NpdG9yKiBXZWJDb21wb3NpdG9yOjpmcm9tSWRlbnRpZmllcihpbnQgaWRl
bnRpZmllcikKK3sKKyAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOworICAgIHJl
dHVybiBXZWJDb21wb3NpdG9ySW1wbDo6ZnJvbUlkZW50aWZpZXIoaWRlbnRpZmllcik7Cit9CiAK
LXZvaWQgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZShXZWJUaHJlYWQqIGltcGxUaHJlYWQpCitX
ZWJDb21wb3NpdG9yKiBXZWJDb21wb3NpdG9ySW1wbDo6ZnJvbUlkZW50aWZpZXIoaW50IGlkZW50
aWZpZXIpCiB7Ci0gICAgV2ViQ29tcG9zaXRvckltcGw6OmluaXRpYWxpemUoaW1wbFRocmVhZCk7
CisgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKKworICAgIGlmICghc19jb21w
b3NpdG9ycykKKyAgICAgICAgcmV0dXJuIDA7CisKKyAgICBmb3IgKEhhc2hTZXQ8V2ViQ29tcG9z
aXRvckltcGwqPjo6aXRlcmF0b3IgaXQgPSBzX2NvbXBvc2l0b3JzLT5iZWdpbigpOyBpdCAhPSBz
X2NvbXBvc2l0b3JzLT5lbmQoKTsgKytpdCkgeworICAgICAgICBpZiAoKCppdCktPmlkZW50aWZp
ZXIoKSA9PSBpZGVudGlmaWVyKQorICAgICAgICAgICAgcmV0dXJuICppdDsKKyAgICB9CisgICAg
cmV0dXJuIDA7CiB9Ci12b2lkIFdlYkNvbXBvc2l0b3I6OnNodXRkb3duKCkKKworV2ViQ29tcG9z
aXRvckltcGw6OldlYkNvbXBvc2l0b3JJbXBsKENDSW5wdXRIYW5kbGVyQ2xpZW50KiBpbnB1dEhh
bmRsZXJDbGllbnQpCisgICAgOiBtX2NsaWVudCgwKQorICAgICwgbV9pZGVudGlmaWVyKHNfbmV4
dEF2YWlsYWJsZUlkZW50aWZpZXIrKykKKyAgICAsIG1faW5wdXRIYW5kbGVyQ2xpZW50KGlucHV0
SGFuZGxlckNsaWVudCkKIHsKLSAgICBXZWJDb21wb3NpdG9ySW1wbDo6c2h1dGRvd24oKTsKKyAg
ICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOworCisgICAgaWYgKCFzX2NvbXBvc2l0
b3JzKQorICAgICAgICBzX2NvbXBvc2l0b3JzID0gbmV3IEhhc2hTZXQ8V2ViQ29tcG9zaXRvcklt
cGwqPjsKKyAgICBzX2NvbXBvc2l0b3JzLT5hZGQodGhpcyk7CiB9CiAKLXZvaWQgV2ViQ29tcG9z
aXRvckltcGw6OmluaXRpYWxpemUoV2ViVGhyZWFkKiBpbXBsVGhyZWFkKQorV2ViQ29tcG9zaXRv
ckltcGw6On5XZWJDb21wb3NpdG9ySW1wbCgpCiB7Ci0gICAgQVNTRVJUKCFzX2luaXRpYWxpemVk
KTsKLSAgICBzX2luaXRpYWxpemVkID0gdHJ1ZTsKLQotICAgIHNfbWFpblRocmVhZCA9IENDVGhy
ZWFkSW1wbDo6Y3JlYXRlKHdlYktpdFBsYXRmb3JtU3VwcG9ydCgpLT5jdXJyZW50VGhyZWFkKCkp
LmxlYWtQdHIoKTsKLSAgICBDQ1Byb3h5OjpzZXRNYWluVGhyZWFkKHNfbWFpblRocmVhZCk7Ci0g
ICAgaWYgKGltcGxUaHJlYWQpIHsKLSAgICAgICAgc19pbXBsVGhyZWFkID0gQ0NUaHJlYWRJbXBs
OjpjcmVhdGUoaW1wbFRocmVhZCkubGVha1B0cigpOwotICAgICAgICBDQ1Byb3h5OjpzZXRJbXBs
VGhyZWFkKHNfaW1wbFRocmVhZCk7Ci0gICAgfSBlbHNlCi0gICAgICAgIENDUHJveHk6OnNldElt
cGxUaHJlYWQoMCk7CisgICAgQVNTRVJUKENDUHJveHk6OmlzSW1wbFRocmVhZCgpKTsKKyAgICBp
ZiAobV9jbGllbnQpCisgICAgICAgIG1fY2xpZW50LT53aWxsU2h1dGRvd24oKTsKKworICAgIEFT
U0VSVChzX2NvbXBvc2l0b3JzKTsKKyAgICBzX2NvbXBvc2l0b3JzLT5yZW1vdmUodGhpcyk7Cisg
ICAgaWYgKCFzX2NvbXBvc2l0b3JzLT5zaXplKCkpIHsKKyAgICAgICAgZGVsZXRlIHNfY29tcG9z
aXRvcnM7CisgICAgICAgIHNfY29tcG9zaXRvcnMgPSAwOworICAgIH0KIH0KIAotYm9vbCBXZWJD
b21wb3NpdG9ySW1wbDo6aW5pdGlhbGl6ZWQoKQordm9pZCBXZWJDb21wb3NpdG9ySW1wbDo6c2V0
Q2xpZW50KFdlYkNvbXBvc2l0b3JDbGllbnQqIGNsaWVudCkKIHsKLSAgICByZXR1cm4gc19pbml0
aWFsaXplZDsKKyAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOworICAgIC8vIEl0
J3MgdmFsaWQgdG8gc2V0IGEgbmV3IGNsaWVudCBpZiB3ZSd2ZSBuZXZlciBoYWQgb25lIG9yIHRv
IGNsZWFyIHRoZSBjbGllbnQsIGJ1dCBpdCdzIG5vdCB2YWxpZCB0byBjaGFuZ2UgZnJvbSBoYXZp
bmcgb25lIGNsaWVudCB0byBhIGRpZmZlcmVudCBvbmUuCisgICAgQVNTRVJUKCFtX2NsaWVudCB8
fCAhY2xpZW50KTsKKyAgICBtX2NsaWVudCA9IGNsaWVudDsKIH0KIAotdm9pZCBXZWJDb21wb3Np
dG9ySW1wbDo6c2h1dGRvd24oKQordm9pZCBXZWJDb21wb3NpdG9ySW1wbDo6aGFuZGxlSW5wdXRF
dmVudChjb25zdCBXZWJJbnB1dEV2ZW50JiBldmVudCkKIHsKLSAgICBBU1NFUlQoc19pbml0aWFs
aXplZCk7Ci0gICAgQVNTRVJUKCFDQ0xheWVyVHJlZUhvc3Q6OmFueUxheWVyVHJlZUhvc3RJbnN0
YW5jZUV4aXN0cygpKTsKKyAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOworICAg
IEFTU0VSVChtX2NsaWVudCk7CiAKLSAgICBpZiAoc19pbXBsVGhyZWFkKSB7Ci0gICAgICAgIGRl
bGV0ZSBzX2ltcGxUaHJlYWQ7Ci0gICAgICAgIHNfaW1wbFRocmVhZCA9IDA7CisgICAgaWYgKGV2
ZW50LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbCAmJiAhbV9pbnB1dEhhbmRsZXJD
bGllbnQtPmhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSkgeworICAgICAgICBjb25zdCBXZWJNb3Vz
ZVdoZWVsRXZlbnQmIHdoZWVsRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VXaGVl
bEV2ZW50Kj4oJmV2ZW50KTsKKyAgICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbFJv
b3RMYXllcihJbnRTaXplKC13aGVlbEV2ZW50LmRlbHRhWCwgLXdoZWVsRXZlbnQuZGVsdGFZKSk7
CisgICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7CisgICAgICAgIHJldHVy
bjsKICAgICB9Ci0gICAgZGVsZXRlIHNfbWFpblRocmVhZDsKLSAgICBzX21haW5UaHJlYWQgPSAw
OwotICAgIENDUHJveHk6OnNldEltcGxUaHJlYWQoMCk7Ci0gICAgQ0NQcm94eTo6c2V0TWFpblRo
cmVhZCgwKTsKLSAgICBzX2luaXRpYWxpemVkID0gZmFsc2U7CisgICAgbV9jbGllbnQtPmRpZE5v
dEhhbmRsZUlucHV0RXZlbnQodHJ1ZSAvKiBzZW5kVG9XaWRnZXQgKi8pOworfQorCitpbnQgV2Vi
Q29tcG9zaXRvckltcGw6OmlkZW50aWZpZXIoKSBjb25zdAoreworICAgIEFTU0VSVChDQ1Byb3h5
Ojppc0ltcGxUaHJlYWQoKSk7CisgICAgcmV0dXJuIG1faWRlbnRpZmllcjsKK30KKwordm9pZCBX
ZWJDb21wb3NpdG9ySW1wbDo6d2lsbERyYXcoZG91YmxlIGZyYW1lQmVnaW5UaW1lTXMpCit7CiB9
CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0
b3JJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW1wbC5o
CmluZGV4IDM0YzZiZDBmZGM2NzY0ZGIzYWRlZDJlMmU4Mzk1MzY4MzRmYWEzN2UuLmJkZTA5Njg5
Yzk0NWU5N2I4NDZjYmU1Njg5N2UwOTcxODM1ZGJjMWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbXBsLmgKKysrIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvckltcGwuaApAQCAtMjgsMzIgKzI4LDQ4IEBACiAKICNp
bmNsdWRlICJXZWJDb21wb3NpdG9yLmgiCiAKKyNpbmNsdWRlICJjYy9DQ0lucHV0SGFuZGxlci5o
IgogI2luY2x1ZGUgPHd0Zi9IYXNoU2V0Lmg+CiAjaW5jbHVkZSA8d3RmL05vbmNvcHlhYmxlLmg+
Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgorI2luY2x1ZGUgPHd0Zi9QYXNzT3duUHRyLmg+CiAK
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLWNsYXNzIENDVGhyZWFkOworbmFtZXNwYWNlIFdURiB7Citj
bGFzcyBNdXRleDsKIH0KIAogbmFtZXNwYWNlIFdlYktpdCB7CiAKLWNsYXNzIFdlYlRocmVhZDsK
K2NsYXNzIFdlYkNvbXBvc2l0b3JDbGllbnQ7CiAKLWNsYXNzIFdlYkNvbXBvc2l0b3JJbXBsIDog
cHVibGljIFdlYkNvbXBvc2l0b3IgeworY2xhc3MgV2ViQ29tcG9zaXRvckltcGwgOiBwdWJsaWMg
V2ViQ29tcG9zaXRvciwgcHVibGljIFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyIHsKICAgICBXVEZf
TUFLRV9OT05DT1BZQUJMRShXZWJDb21wb3NpdG9ySW1wbCk7CiBwdWJsaWM6Ci0gICAgc3RhdGlj
IGJvb2wgaW5pdGlhbGl6ZWQoKTsKKyAgICBzdGF0aWMgV2ViQ29tcG9zaXRvciogZnJvbUlkZW50
aWZpZXIoaW50IGlkZW50aWZpZXIpOworCisgICAgc3RhdGljIFBhc3NPd25QdHI8V2ViQ29tcG9z
aXRvckltcGw+IGNyZWF0ZShXZWJDb3JlOjpDQ0lucHV0SGFuZGxlckNsaWVudCogY2xpZW50KQor
ICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0UHRyKG5ldyBXZWJDb21wb3NpdG9ySW1wbChjbGll
bnQpKTsKKyAgICB9CisKKyAgICB2aXJ0dWFsIH5XZWJDb21wb3NpdG9ySW1wbCgpOworCisgICAg
Ly8gV2ViQ29tcG9zaXRvciBpbXBsZW1lbnRhdGlvbgorICAgIHZpcnR1YWwgdm9pZCBzZXRDbGll
bnQoV2ViQ29tcG9zaXRvckNsaWVudCopOworICAgIHZpcnR1YWwgdm9pZCBoYW5kbGVJbnB1dEV2
ZW50KGNvbnN0IFdlYklucHV0RXZlbnQmKTsKKworICAgIC8vIFdlYkNvcmU6OkNDSW5wdXRIYW5k
bGVyIGltcGxlbWVudGF0aW9uCisgICAgdmlydHVhbCBpbnQgaWRlbnRpZmllcigpIGNvbnN0Owor
ICAgIHZpcnR1YWwgdm9pZCB3aWxsRHJhdyhkb3VibGUgZnJhbWVCZWdpblRpbWUpOwogCiBwcml2
YXRlOgorICAgIGV4cGxpY2l0IFdlYkNvbXBvc2l0b3JJbXBsKFdlYkNvcmU6OkNDSW5wdXRIYW5k
bGVyQ2xpZW50Kik7CiAKLSAgICBmcmllbmQgY2xhc3MgV2ViQ29tcG9zaXRvcjsKLSAgICBzdGF0
aWMgdm9pZCBpbml0aWFsaXplKFdlYlRocmVhZCogaW1wbFRocmVhZCk7Ci0gICAgc3RhdGljIHZv
aWQgc2h1dGRvd24oKTsKKyAgICBXZWJDb21wb3NpdG9yQ2xpZW50KiBtX2NsaWVudDsKKyAgICBp
bnQgbV9pZGVudGlmaWVyOworICAgIFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50KiBtX2lu
cHV0SGFuZGxlckNsaWVudDsKIAotICAgIHN0YXRpYyBib29sIHNfaW5pdGlhbGl6ZWQ7Ci0gICAg
c3RhdGljIFdlYkNvcmU6OkNDVGhyZWFkKiBzX21haW5UaHJlYWQ7Ci0gICAgc3RhdGljIFdlYkNv
cmU6OkNDVGhyZWFkKiBzX2ltcGxUaHJlYWQ7CisgICAgc3RhdGljIGludCBzX25leHRBdmFpbGFi
bGVJZGVudGlmaWVyOworICAgIHN0YXRpYyBIYXNoU2V0PFdlYkNvbXBvc2l0b3JJbXBsKj4qIHNf
Y29tcG9zaXRvcnM7CiB9OwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5jcHAKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGZmODNmM2IwMGU4MzczYTQ3YjhhNWJmZjRjZjRiY2M3NGZjNDlj
OTIuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwuY3BwCisr
KyAvZGV2L251bGwKQEAgLTEsMTM4ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oIgotCi0jaW5jbHVk
ZSAiV2ViQ29tcG9zaXRvckltcGwuaCIKLSNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5k
bGVyQ2xpZW50LmgiCi0jaW5jbHVkZSAiV2ViSW5wdXRFdmVudC5oIgotI2luY2x1ZGUgIldlYktp
dC5oIgotI2luY2x1ZGUgIldlYktpdFBsYXRmb3JtU3VwcG9ydC5oIgotI2luY2x1ZGUgImNjL0ND
UHJveHkuaCIKLSNpbmNsdWRlIDx3dGYvVGhyZWFkaW5nUHJpbWl0aXZlcy5oPgotCi11c2luZyBu
YW1lc3BhY2UgV2ViQ29yZTsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1QYXNzT3duUHRyPEND
SW5wdXRIYW5kbGVyPiBDQ0lucHV0SGFuZGxlcjo6Y3JlYXRlKENDSW5wdXRIYW5kbGVyQ2xpZW50
KiBpbnB1dEhhbmRsZXJDbGllbnQpCi17Ci0gICAgcmV0dXJuIFdlYktpdDo6V2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGw6OmNyZWF0ZShpbnB1dEhhbmRsZXJDbGllbnQpOwotfQotCi19Ci0K
LW5hbWVzcGFjZSBXZWJLaXQgewotCi0vLyBUaGVzZSBzdGF0aWNzIG1heSBvbmx5IGJlIGFjY2Vz
c2VkIGZyb20gdGhlIGNvbXBvc2l0b3IgdGhyZWFkLgotaW50IFdlYkNvbXBvc2l0b3JJbnB1dEhh
bmRsZXJJbXBsOjpzX25leHRBdmFpbGFibGVJZGVudGlmaWVyID0gMTsKLUhhc2hTZXQ8V2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlckltcGwqPiogV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6
OnNfY29tcG9zaXRvcnMgPSAwOwotCi1XZWJDb21wb3NpdG9yKiBXZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVyOjpmcm9tSWRlbnRpZmllcihpbnQgaWRlbnRpZmllcikKLXsKLSAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8V2ViQ29tcG9zaXRvcio+KFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpm
cm9tSWRlbnRpZmllcihpZGVudGlmaWVyKSk7Ci19Ci0KLVBhc3NPd25QdHI8V2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGw+IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjpjcmVhdGUo
V2ViQ29yZTo6Q0NJbnB1dEhhbmRsZXJDbGllbnQqIGlucHV0SGFuZGxlckNsaWVudCkKLXsKLSAg
ICByZXR1cm4gYWRvcHRQdHIobmV3IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsKGlucHV0
SGFuZGxlckNsaWVudCkpOwotfQotCi1XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyKiBXZWJDb21w
b3NpdG9ySW5wdXRIYW5kbGVySW1wbDo6ZnJvbUlkZW50aWZpZXIoaW50IGlkZW50aWZpZXIpCi17
Ci0gICAgQVNTRVJUKFdlYkNvbXBvc2l0b3JJbXBsOjppbml0aWFsaXplZCgpKTsKLSAgICBBU1NF
UlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwotCi0gICAgaWYgKCFzX2NvbXBvc2l0b3JzKQot
ICAgICAgICByZXR1cm4gMDsKLQotICAgIGZvciAoSGFzaFNldDxXZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbCo+OjppdGVyYXRvciBpdCA9IHNfY29tcG9zaXRvcnMtPmJlZ2luKCk7IGl0ICE9
IHNfY29tcG9zaXRvcnMtPmVuZCgpOyArK2l0KSB7Ci0gICAgICAgIGlmICgoKml0KS0+aWRlbnRp
ZmllcigpID09IGlkZW50aWZpZXIpCi0gICAgICAgICAgICByZXR1cm4gKml0OwotICAgIH0KLSAg
ICByZXR1cm4gMDsKLX0KLQotV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OldlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsKENDSW5wdXRIYW5kbGVyQ2xpZW50KiBpbnB1dEhhbmRsZXJD
bGllbnQpCi0gICAgOiBtX2NsaWVudCgwKQotICAgICwgbV9pZGVudGlmaWVyKHNfbmV4dEF2YWls
YWJsZUlkZW50aWZpZXIrKykKLSAgICAsIG1faW5wdXRIYW5kbGVyQ2xpZW50KGlucHV0SGFuZGxl
ckNsaWVudCkKLXsKLSAgICBBU1NFUlQoQ0NQcm94eTo6aXNJbXBsVGhyZWFkKCkpOwotCi0gICAg
aWYgKCFzX2NvbXBvc2l0b3JzKQotICAgICAgICBzX2NvbXBvc2l0b3JzID0gbmV3IEhhc2hTZXQ8
V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwqPjsKLSAgICBzX2NvbXBvc2l0b3JzLT5hZGQo
dGhpcyk7Ci19Ci0KLVdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOjp+V2ViQ29tcG9zaXRv
cklucHV0SGFuZGxlckltcGwoKQotewotICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQo
KSk7Ci0gICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+d2lsbFNodXRkb3duKCk7
Ci0KLSAgICBBU1NFUlQoc19jb21wb3NpdG9ycyk7Ci0gICAgc19jb21wb3NpdG9ycy0+cmVtb3Zl
KHRoaXMpOwotICAgIGlmICghc19jb21wb3NpdG9ycy0+c2l6ZSgpKSB7Ci0gICAgICAgIGRlbGV0
ZSBzX2NvbXBvc2l0b3JzOwotICAgICAgICBzX2NvbXBvc2l0b3JzID0gMDsKLSAgICB9Ci19Ci0K
LXZvaWQgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OnNldENsaWVudChXZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVyQ2xpZW50KiBjbGllbnQpCi17Ci0gICAgQVNTRVJUKENDUHJveHk6Omlz
SW1wbFRocmVhZCgpKTsKLSAgICAvLyBJdCdzIHZhbGlkIHRvIHNldCBhIG5ldyBjbGllbnQgaWYg
d2UndmUgbmV2ZXIgaGFkIG9uZSBvciB0byBjbGVhciB0aGUgY2xpZW50LCBidXQgaXQncyBub3Qg
dmFsaWQgdG8gY2hhbmdlIGZyb20gaGF2aW5nIG9uZSBjbGllbnQgdG8gYSBkaWZmZXJlbnQgb25l
LgotICAgIEFTU0VSVCghbV9jbGllbnQgfHwgIWNsaWVudCk7Ci0gICAgbV9jbGllbnQgPSBjbGll
bnQ7Ci19Ci0KLXZvaWQgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6OmhhbmRsZUlucHV0
RXZlbnQoY29uc3QgV2ViSW5wdXRFdmVudCYgZXZlbnQpCi17Ci0gICAgQVNTRVJUKENDUHJveHk6
OmlzSW1wbFRocmVhZCgpKTsKLSAgICBBU1NFUlQobV9jbGllbnQpOwotCi0gICAgaWYgKGV2ZW50
LnR5cGUgPT0gV2ViSW5wdXRFdmVudDo6TW91c2VXaGVlbCAmJiAhbV9pbnB1dEhhbmRsZXJDbGll
bnQtPmhhdmVXaGVlbEV2ZW50SGFuZGxlcnMoKSkgewotICAgICAgICBjb25zdCBXZWJNb3VzZVdo
ZWVsRXZlbnQmIHdoZWVsRXZlbnQgPSAqc3RhdGljX2Nhc3Q8Y29uc3QgV2ViTW91c2VXaGVlbEV2
ZW50Kj4oJmV2ZW50KTsKLSAgICAgICAgbV9pbnB1dEhhbmRsZXJDbGllbnQtPnNjcm9sbFJvb3RM
YXllcihJbnRTaXplKC13aGVlbEV2ZW50LmRlbHRhWCwgLXdoZWVsRXZlbnQuZGVsdGFZKSk7Ci0g
ICAgICAgIG1fY2xpZW50LT5kaWRIYW5kbGVJbnB1dEV2ZW50KCk7Ci0gICAgICAgIHJldHVybjsK
LSAgICB9Ci0gICAgbV9jbGllbnQtPmRpZE5vdEhhbmRsZUlucHV0RXZlbnQodHJ1ZSAvKiBzZW5k
VG9XaWRnZXQgKi8pOwotfQotCi1pbnQgV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGw6Omlk
ZW50aWZpZXIoKSBjb25zdAotewotICAgIEFTU0VSVChDQ1Byb3h5Ojppc0ltcGxUaHJlYWQoKSk7
Ci0gICAgcmV0dXJuIG1faWRlbnRpZmllcjsKLX0KLQotdm9pZCBXZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVySW1wbDo6d2lsbERyYXcoZG91YmxlIGZyYW1lQmVnaW5UaW1lTXMpCi17Ci19Ci0KLX0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNvbXBvc2l0b3JJbnB1
dEhhbmRsZXJJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJDb21wb3NpdG9y
SW5wdXRIYW5kbGVySW1wbC5oCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxZWJjMWUx
NTU3YjUxYjM4NWIzODkxMzBmZjdjMThmNTJmNGE4NjUzLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLmgKKysrIC9kZXYvbnVsbApAQCAtMSw3OSArMCwwIEBA
Ci0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJv
dmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICog
MS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUg
Y29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRo
ZQotICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKLSAqIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhF
IElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAqIERJUkVD
VCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVO
VElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVTRSwgREFU
QSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBB
TkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBT
VFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RI
RVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRISVMgU09G
VFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0Uu
Ci0gKi8KLQotI2lmbmRlZiBXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbF9oCi0jZGVmaW5l
IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsX2gKLQotI2luY2x1ZGUgIldlYkNvbXBvc2l0
b3IuaCIKLSNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVyLmgiCi0jaW5jbHVkZSAi
Y2MvQ0NJbnB1dEhhbmRsZXIuaCIKLSNpbmNsdWRlIDx3dGYvSGFzaFNldC5oPgotI2luY2x1ZGUg
PHd0Zi9Ob25jb3B5YWJsZS5oPgotI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KLQotbmFtZXNwYWNl
IFdURiB7Ci1jbGFzcyBNdXRleDsKLX0KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgQ0NJ
bnB1dEhhbmRsZXJDbGllbnQ7Ci1jbGFzcyBDQ1RocmVhZDsKLX0KLQotbmFtZXNwYWNlIFdlYktp
dCB7Ci0KLWNsYXNzIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQ7Ci0KLS8vIFRlbXBv
cmFyaWx5IHN1YmNsYXNzaW5nIGZyb20gV2ViQ29tcG9zaXRvciB3aGlsZSBkb3duc3RyZWFtIGNo
YW5nZXMgbGFuZC4KLWNsYXNzIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsIDogcHVibGlj
IFdlYkNvbXBvc2l0b3IsIHB1YmxpYyBXZWJDb3JlOjpDQ0lucHV0SGFuZGxlciB7Ci0gICAgV1RG
X01BS0VfTk9OQ09QWUFCTEUoV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwpOwotcHVibGlj
OgotICAgIHN0YXRpYyBQYXNzT3duUHRyPFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsPiBj
cmVhdGUoV2ViQ29yZTo6Q0NJbnB1dEhhbmRsZXJDbGllbnQqKTsKLSAgICBzdGF0aWMgV2ViQ29t
cG9zaXRvcklucHV0SGFuZGxlciogZnJvbUlkZW50aWZpZXIoaW50IGlkZW50aWZpZXIpOwotCi0g
ICAgdmlydHVhbCB+V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGwoKTsKLQotICAgIC8vIFdl
YkNvbXBvc2l0b3IgaW1wbGVtZW50YXRpb24KLSAgICB2aXJ0dWFsIHZvaWQgc2V0Q2xpZW50KFdl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJDbGllbnQqKTsKLSAgICB2aXJ0dWFsIHZvaWQgaGFuZGxl
SW5wdXRFdmVudChjb25zdCBXZWJJbnB1dEV2ZW50Jik7Ci0KLSAgICAvLyBXZWJDb3JlOjpDQ0lu
cHV0SGFuZGxlciBpbXBsZW1lbnRhdGlvbgotICAgIHZpcnR1YWwgaW50IGlkZW50aWZpZXIoKSBj
b25zdDsKLSAgICB2aXJ0dWFsIHZvaWQgd2lsbERyYXcoZG91YmxlIGZyYW1lQmVnaW5UaW1lTXMp
OwotCi1wcml2YXRlOgotICAgIGV4cGxpY2l0IFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBs
KFdlYkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50Kik7Ci0KLSAgICBXZWJDb21wb3NpdG9ySW5w
dXRIYW5kbGVyQ2xpZW50KiBtX2NsaWVudDsKLSAgICBpbnQgbV9pZGVudGlmaWVyOwotICAgIFdl
YkNvcmU6OkNDSW5wdXRIYW5kbGVyQ2xpZW50KiBtX2lucHV0SGFuZGxlckNsaWVudDsKLQotICAg
IHN0YXRpYyBpbnQgc19uZXh0QXZhaWxhYmxlSWRlbnRpZmllcjsKLSAgICBzdGF0aWMgSGFzaFNl
dDxXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbCo+KiBzX2NvbXBvc2l0b3JzOwotfTsKLQot
fQotCi0jZW5kaWYgLy8gV2ViQ29tcG9zaXRvckltcGxfaApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYktpdC5jcHAKaW5kZXggNjJiNDE4MDhkNzA1MzE4ZTA1NTA5YzcyZTk2M2Y2ZmY4MjJmMWNj
ZS4uN2JjZDljZjIzOWE1MWNkNTJiNDI5N2Y1ZWRjMjAwODc0OWEwNmUxZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViS2l0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJLaXQuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiV2ViS2l0LmgiCiAKKyNpbmNsdWRlICJDQ1RocmVhZEltcGwuaCIK
KyNpbmNsdWRlICJjYy9DQ1Byb3h5LmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUg
IlBhZ2UuaCIKICNpbmNsdWRlICJSdW50aW1lRW5hYmxlZEZlYXR1cmVzLmgiCkBAIC05NiwxMSAr
OTgsMTUgQEAgdm9pZCBpbml0aWFsaXplV2l0aG91dFY4KFdlYktpdFBsYXRmb3JtU3VwcG9ydCog
d2ViS2l0UGxhdGZvcm1TdXBwb3J0KQogICAgIC8vIHRoZSBpbml0aWFsaXphdGlvbiB0aHJlYWQt
c2FmZSwgYnV0IGdpdmVuIHRoYXQgc28gbWFueSBjb2RlIHBhdGhzIHVzZQogICAgIC8vIHRoaXMs
IGluaXRpYWxpemluZyB0aGlzIGxhemlseSBwcm9iYWJseSBkb2Vzbid0IGJ1eSB1cyBtdWNoLgog
ICAgIFdlYkNvcmU6OlVURjhFbmNvZGluZygpOworCisgICAgV2ViQ29yZTo6Q0NQcm94eTo6c2V0
TWFpblRocmVhZChDQ1RocmVhZEltcGw6OmNyZWF0ZSh3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQtPmN1
cnJlbnRUaHJlYWQoKSkubGVha1B0cigpKTsKIH0KIAogCiB2b2lkIHNodXRkb3duKCkKIHsKKyAg
ICBkZWxldGUgV2ViQ29yZTo6Q0NQcm94eTo6bWFpblRocmVhZCgpOworICAgIFdlYkNvcmU6OkND
UHJveHk6OnNldE1haW5UaHJlYWQoMCk7CiAgICAgc193ZWJLaXRQbGF0Zm9ybVN1cHBvcnQgPSAw
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJMYXllclRy
ZWVWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcu
Y3BwCmluZGV4IDMwYmRjYmUxOTAwMTgzNWMyNTNiZTg0NzBiZDAzOWRmOGQwMWRjYjAuLmU3Nzlh
ZmE2MzcxZjYzZGNlNTg3NjA1MjVhNmQxYjNlMzJlMzc5Y2IgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXcuY3BwCkBAIC0zOSwxMiArMzksOSBAQCBX
ZWJMYXllclRyZWVWaWV3OjpTZXR0aW5nczo6b3BlcmF0b3IgQ0NTZXR0aW5ncygpIGNvbnN0CiAg
ICAgQ0NTZXR0aW5ncyBzZXR0aW5nczsKICAgICBzZXR0aW5ncy5hY2NlbGVyYXRlUGFpbnRpbmcg
PSBhY2NlbGVyYXRlUGFpbnRpbmc7CiAgICAgc2V0dGluZ3MuY29tcG9zaXRlT2Zmc2NyZWVuID0g
Y29tcG9zaXRlT2Zmc2NyZWVuOworICAgIHNldHRpbmdzLmVuYWJsZUNvbXBvc2l0b3JUaHJlYWQg
PSBlbmFibGVDb21wb3NpdG9yVGhyZWFkOwogICAgIHNldHRpbmdzLnNob3dGUFNDb3VudGVyID0g
c2hvd0ZQU0NvdW50ZXI7CiAgICAgc2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5ZXJUcmVlID0gc2hv
d1BsYXRmb3JtTGF5ZXJUcmVlOwotCi0gICAgLy8gRklYTUU6IHNob3dGUFNDb3VudGVyIC8gc2hv
d1BsYXRmb3JtTGF5ZXJUcmVlIGFyZW4ndCBzdXBwb3J0ZWQgY3VycmVudGx5LgotICAgIHNldHRp
bmdzLnNob3dGUFNDb3VudGVyID0gZmFsc2U7Ci0gICAgc2V0dGluZ3Muc2hvd1BsYXRmb3JtTGF5
ZXJUcmVlID0gZmFsc2U7CiAgICAgcmV0dXJuIHNldHRpbmdzOwogfQogCkBAIC03MCw3ICs2Nyw3
IEBAIGJvb2wgV2ViTGF5ZXJUcmVlVmlldzo6ZXF1YWxzKGNvbnN0IFdlYkxheWVyVHJlZVZpZXcm
IG4pIGNvbnN0CiAKIHZvaWQgV2ViTGF5ZXJUcmVlVmlldzo6Y29tcG9zaXRlKCkKIHsKLSAgICBp
ZiAoQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpKQorICAgIGlmIChtX3ByaXZhdGUtPnNldHRpbmdz
KCkuZW5hYmxlQ29tcG9zaXRvclRocmVhZCkKICAgICAgICAgbV9wcml2YXRlLT5zZXROZWVkc0Nv
bW1pdCgpOwogICAgIGVsc2UKICAgICAgICAgbV9wcml2YXRlLT5jb21wb3NpdGUoKTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNw
cCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYkxheWVyVHJlZVZpZXdJbXBsLmNwcApp
bmRleCBhNmYxZDBmYWY1YmJmNzFlNzRhYTM5MGU0MGEwNGVlMmJmM2Y1ZTliLi44Yzg2ODRiNmZj
YThjOWYzMGQxYjc3MTYwZjAyNTkzODI0YmJiOTUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9XZWJMYXllclRyZWVWaWV3SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViTGF5ZXJUcmVlVmlld0ltcGwuY3BwCkBAIC0zNSw3ICszNSw2IEBA
CiAjaW5jbHVkZSAiV2ViTGF5ZXJUcmVlVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlNpemUu
aCIKICNpbmNsdWRlICJXZWJUaHJlYWQuaCIKLSNpbmNsdWRlICJjYy9DQ1RocmVhZFByb3h5Lmgi
CiAKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCkBAIC05Myw3ICs5Miw3IEBAIFBhc3NSZWZQ
dHI8R3JhcGhpY3NDb250ZXh0M0Q+IFdlYkxheWVyVHJlZVZpZXdJbXBsOjpjcmVhdGVMYXllclRy
ZWVIb3N0Q29udGV4dDNECiAgICAgYXR0cmlidXRlcy5wcmVzZXJ2ZURyYXdpbmdCdWZmZXIgPSBm
YWxzZTsKIAogICAgIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJTdHlsZSBzdHlsZSA9IEdyYXBo
aWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdzsKLSAgICBHcmFwaGljc0Nv
bnRleHQzRFByaXZhdGU6OlRocmVhZFVzYWdlIHVzYWdlID0gQ0NQcm94eTo6aGFzSW1wbFRocmVh
ZCgpID8gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpGb3JVc2VPbkFub3RoZXJUaHJlYWQgOiBH
cmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkZvclVzZU9uVGhpc1RocmVhZDsKKyAgICBHcmFwaGlj
c0NvbnRleHQzRFByaXZhdGU6OlRocmVhZFVzYWdlIHVzYWdlID0gc2V0dGluZ3MoKS5lbmFibGVD
b21wb3NpdG9yVGhyZWFkID8gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpGb3JVc2VPbkFub3Ro
ZXJUaHJlYWQgOiBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OkZvclVzZU9uVGhpc1RocmVhZDsK
ICAgICByZXR1cm4gR3JhcGhpY3NDb250ZXh0M0RQcml2YXRlOjpjcmVhdGVHcmFwaGljc0NvbnRl
eHRGcm9tV2ViQ29udGV4dCh3ZWJDb250ZXh0LnJlbGVhc2UoKSwgYXR0cmlidXRlcywgMCwgc3R5
bGUsIHVzYWdlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAKaW5kZXggYTFiY2ViZjEyZTVmZDdiZGE0YTQzZGUyMzUwM2VkNjkzZTM4ZGJj
Zi4uNmZjNDYyOGJlY2I2YjVlZjdiZGRmNGQ5ZDdlMTMyNDM3NzU4MWZjOSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC01MCw2ICs1MCw3
IEBAIFdlYlNldHRpbmdzSW1wbDo6V2ViU2V0dGluZ3NJbXBsKFNldHRpbmdzKiBzZXR0aW5ncykK
ICAgICAsIG1fY29tcG9zaXRlVG9UZXh0dXJlRW5hYmxlZChmYWxzZSkKICAgICAsIG1fc2hvd0ZQ
U0NvdW50ZXIoZmFsc2UpCiAgICAgLCBtX3Nob3dQbGF0Zm9ybUxheWVyVHJlZShmYWxzZSkKKyAg
ICAsIG1fdXNlVGhyZWFkZWRDb21wb3NpdG9yKGZhbHNlKQogewogICAgIEFTU0VSVChzZXR0aW5n
cyk7CiB9CkBAIC0zNzgsNiArMzc5LDExIEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRNaW5p
bXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUoaW50IG51bVBpeGVscykKICAgICBtX3NldHRpbmdz
LT5zZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1NpemUobnVtUGl4ZWxzKTsKIH0KIAordm9p
ZCBXZWJTZXR0aW5nc0ltcGw6OnNldFVzZVRocmVhZGVkQ29tcG9zaXRvcihib29sIHVzZVRocmVh
ZGVkQ29tcG9zaXRvcikKK3sKKyAgICBtX3VzZVRocmVhZGVkQ29tcG9zaXRvciA9IHVzZVRocmVh
ZGVkQ29tcG9zaXRvcjsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0ltcGw6OnNldE1lbW9yeUluZm9F
bmFibGVkKGJvb2wgZW5hYmxlZCkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRNZW1vcnlJbmZvRW5h
YmxlZChlbmFibGVkKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJ
bXBsLmgKaW5kZXggNzRiOGFmOWNkODU1YjJkMmIxZmQ5Njg1YTk3NmUxM2ZhMWZmNmQxYi4uNDY5
ODQ0M2U0MDcxMWI1OThjMTVlYzE5NjZkOTViYzMxZmU2ZmY4MiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTEwOSw2ICsxMDksOCBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldExlZ2FjeUFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVk
KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRNaW5pbXVtQWNjZWxlcmF0ZWQyZENhbnZhc1Np
emUoaW50KTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0QWNjZWxlcmF0ZWREcmF3aW5nRW5hYmxlZChi
b29sKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0VXNlVGhyZWFkZWRDb21wb3NpdG9yKGJvb2wpOwor
ICAgIHZpcnR1YWwgYm9vbCB1c2VUaHJlYWRlZENvbXBvc2l0b3IoKSBjb25zdCB7IHJldHVybiBt
X3VzZVRocmVhZGVkQ29tcG9zaXRvcjsgfQogICAgIHZpcnR1YWwgdm9pZCBzZXRNZW1vcnlJbmZv
RW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFi
bGVkKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRBc3luY2hyb25vdXNTcGVsbENoZWNraW5n
RW5hYmxlZChib29sKTsKQEAgLTEzMCw2ICsxMzIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9j
b21wb3NpdGVUb1RleHR1cmVFbmFibGVkOwogICAgIGJvb2wgbV9zaG93RlBTQ291bnRlcjsKICAg
ICBib29sIG1fc2hvd1BsYXRmb3JtTGF5ZXJUcmVlOworICAgIGJvb2wgbV91c2VUaHJlYWRlZENv
bXBvc2l0b3I7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAppbmRleCA0ZmU4MjFlMjZmNmMwYmE2OWYzMGY4ZDc0
YzEyNzBiMTdlNGY4NDk3Li5hOGZjMWE2ZmRmNGQ5NjVmNDVmMjdmOTM2OWNiYzQxYmIxNTcxZDQ2
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCkBAIC0xMzQs
NyArMTM0LDcgQEAKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNsdWRlICJXZWJWZWN0b3Iu
aCIKICNpbmNsdWRlICJXZWJWaWV3Q2xpZW50LmgiCi0jaW5jbHVkZSAiY2MvQ0NQcm94eS5oIgor
I2luY2x1ZGUgImNjL0NDSGVhZHNVcERpc3BsYXkuaCIKICNpbmNsdWRlIDx3dGYvQnl0ZUFycmF5
Lmg+CiAjaW5jbHVkZSA8d3RmL0N1cnJlbnRUaW1lLmg+CiAjaW5jbHVkZSA8d3RmL01haW5UaHJl
YWQuaD4KQEAgLTExNDIsMTIgKzExNDIsMTIgQEAgdm9pZCBXZWJWaWV3SW1wbDo6YW5pbWF0ZShk
b3VibGUgZnJhbWVCZWdpblRpbWUpCiAgICAgaWYgKHdlYmZyYW1lKSB7CiAgICAgICAgIEZyYW1l
VmlldyogdmlldyA9IHdlYmZyYW1lLT5mcmFtZVZpZXcoKTsKICAgICAgICAgaWYgKHZpZXcpIHsK
LSAgICAgICAgICAgIGlmICghQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpICYmIG1fbGF5ZXJUcmVl
SG9zdCkKKyAgICAgICAgICAgIGlmICghc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9y
KCkgJiYgbV9sYXllclRyZWVIb3N0KQogICAgICAgICAgICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+
c2V0QW5pbWF0aW5nKHRydWUpOwogCiAgICAgICAgICAgICB2aWV3LT5zZXJ2aWNlU2NyaXB0ZWRB
bmltYXRpb25zKGNvbnZlcnRTZWNvbmRzVG9ET01UaW1lU3RhbXAoZnJhbWVCZWdpblRpbWUpKTsK
IAotICAgICAgICAgICAgaWYgKCFDQ1Byb3h5OjpoYXNJbXBsVGhyZWFkKCkgJiYgbV9sYXllclRy
ZWVIb3N0KQorICAgICAgICAgICAgaWYgKCFzZXR0aW5ncygpLT51c2VUaHJlYWRlZENvbXBvc2l0
b3IoKSAmJiBtX2xheWVyVHJlZUhvc3QpCiAgICAgICAgICAgICAgICAgbV9sYXllclRyZWVIb3N0
LT5zZXRBbmltYXRpbmcoZmFsc2UpOwogICAgICAgICB9CiAgICAgfQpAQCAtMTI0OSw3ICsxMjQ5
LDcgQEAgdm9pZCBXZWJWaWV3SW1wbDo6dGhlbWVDaGFuZ2VkKCkKIHZvaWQgV2ViVmlld0ltcGw6
OmNvbXBvc2l0ZShib29sKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAg
ICBpZiAoQ0NQcm94eTo6aGFzSW1wbFRocmVhZCgpKQorICAgIGlmIChzZXR0aW5ncygpLT51c2VU
aHJlYWRlZENvbXBvc2l0b3IoKSkKICAgICAgICAgbV9sYXllclRyZWVIb3N0LT5zZXROZWVkc1Jl
ZHJhdygpOwogICAgIGVsc2UgewogICAgICAgICBBU1NFUlQoaXNBY2NlbGVyYXRlZENvbXBvc2l0
aW5nQWN0aXZlKCkpOwpAQCAtMjc3NSw3ICsyNzc1LDcgQEAgV2ViQ29yZTo6Tm9uQ29tcG9zaXRl
ZENvbnRlbnRIb3N0KiBXZWJWaWV3SW1wbDo6bm9uQ29tcG9zaXRlZENvbnRlbnRIb3N0KCkKIHZv
aWQgV2ViVmlld0ltcGw6OnNjaGVkdWxlQW5pbWF0aW9uKCkKIHsKICAgICBpZiAoaXNBY2NlbGVy
YXRlZENvbXBvc2l0aW5nQWN0aXZlKCkpIHsKLSAgICAgICAgaWYgKENDUHJveHk6Omhhc0ltcGxU
aHJlYWQoKSkgeworICAgICAgICBpZiAoc2V0dGluZ3MoKS0+dXNlVGhyZWFkZWRDb21wb3NpdG9y
KCkpIHsKICAgICAgICAgICAgIEFTU0VSVChtX2xheWVyVHJlZUhvc3QpOwogICAgICAgICAgICAg
bV9sYXllclRyZWVIb3N0LT5zZXROZWVkc0FuaW1hdGUoKTsKICAgICAgICAgfSBlbHNlCkBAIC0y
ODQ2LDYgKzI4NDYsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpzZXRJc0FjY2VsZXJhdGVkQ29tcG9z
aXRpbmdBY3RpdmUoYm9vbCBhY3RpdmUpCiAgICAgICAgIFdlYkNvcmU6OkNDU2V0dGluZ3MgY2NT
ZXR0aW5nczsKICAgICAgICAgY2NTZXR0aW5ncy5hY2NlbGVyYXRlUGFpbnRpbmcgPSBwYWdlKCkt
PnNldHRpbmdzKCktPmFjY2VsZXJhdGVkRHJhd2luZ0VuYWJsZWQoKTsKICAgICAgICAgY2NTZXR0
aW5ncy5jb21wb3NpdGVPZmZzY3JlZW4gPSBzZXR0aW5ncygpLT5jb21wb3NpdGVUb1RleHR1cmVF
bmFibGVkKCk7CisgICAgICAgIGNjU2V0dGluZ3MuZW5hYmxlQ29tcG9zaXRvclRocmVhZCA9IHNl
dHRpbmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRvcigpOwogICAgICAgICBjY1NldHRpbmdzLnNo
b3dGUFNDb3VudGVyID0gc2V0dGluZ3MoKS0+c2hvd0ZQU0NvdW50ZXIoKTsKICAgICAgICAgY2NT
ZXR0aW5ncy5zaG93UGxhdGZvcm1MYXllclRyZWUgPSBzZXR0aW5ncygpLT5zaG93UGxhdGZvcm1M
YXllclRyZWUoKTsKICAgICAgICAgY2NTZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IHNjcmVlblJlZnJl
c2hSYXRlKHBhZ2UoKS0+bWFpbkZyYW1lKCktPnZpZXcoKSk7CkBAIC0yODgyLDcgKzI4ODMsNyBA
QCBQYXNzUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBXZWJWaWV3SW1wbDo6Y3JlYXRlTGF5ZXJU
cmVlSG9zdENvbnRleHQzRCgpCiB7CiAgICAgUmVmUHRyPEdyYXBoaWNzQ29udGV4dDNEPiBjb250
ZXh0ID0gbV90ZW1wb3JhcnlPbnNjcmVlbkdyYXBoaWNzQ29udGV4dDNELnJlbGVhc2UoKTsKICAg
ICBpZiAoIWNvbnRleHQpIHsKLSAgICAgICAgaWYgKENDUHJveHk6Omhhc0ltcGxUaHJlYWQoKSkK
KyAgICAgICAgaWYgKHNldHRpbmdzKCktPnVzZVRocmVhZGVkQ29tcG9zaXRvcigpKQogICAgICAg
ICAgICAgY29udGV4dCA9IEdyYXBoaWNzQ29udGV4dDNEUHJpdmF0ZTo6Y3JlYXRlR3JhcGhpY3ND
b250ZXh0Rm9yQW5vdGhlclRocmVhZChnZXRDb21wb3NpdG9yQ29udGV4dEF0dHJpYnV0ZXMoKSwg
bV9wYWdlLT5jaHJvbWUoKSwgR3JhcGhpY3NDb250ZXh0M0Q6OlJlbmRlckRpcmVjdGx5VG9Ib3N0
V2luZG93KTsKICAgICAgICAgZWxzZQogICAgICAgICAgICAgY29udGV4dCA9IEdyYXBoaWNzQ29u
dGV4dDNEOjpjcmVhdGUoZ2V0Q29tcG9zaXRvckNvbnRleHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+
Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7
CkBAIC0yOTUwLDcgKzI5NTEsNyBAQCB2b2lkIFdlYlZpZXdJbXBsOjpkaWRSZWNyZWF0ZUdyYXBo
aWNzQ29udGV4dChib29sIHN1Y2Nlc3MpCiAKIHZvaWQgV2ViVmlld0ltcGw6OnNjaGVkdWxlQ29t
cG9zaXRlKCkKIHsKLSAgICBBU1NFUlQoIUNDUHJveHk6Omhhc0ltcGxUaHJlYWQoKSk7CisgICAg
QVNTRVJUKCFzZXR0aW5ncygpLT51c2VUaHJlYWRlZENvbXBvc2l0b3IoKSk7CiAgICAgbV9jbGll
bnQtPnNjaGVkdWxlQ29tcG9zaXRlKCk7CiB9CiAKQEAgLTI5ODIsNyArMjk4Myw3IEBAIFdlYkdy
YXBoaWNzQ29udGV4dDNEKiBXZWJWaWV3SW1wbDo6Z3JhcGhpY3NDb250ZXh0M0QoKQogICAgICAg
ICAgICAgaWYgKHdlYkNvbnRleHQgJiYgIXdlYkNvbnRleHQtPmlzQ29udGV4dExvc3QoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gd2ViQ29udGV4dDsKICAgICAgICAgfQotICAgICAgICBpZiAo
Q0NQcm94eTo6aGFzSW1wbFRocmVhZCgpKQorICAgICAgICBpZiAoc2V0dGluZ3MoKS0+dXNlVGhy
ZWFkZWRDb21wb3NpdG9yKCkpCiAgICAgICAgICAgICBtX3RlbXBvcmFyeU9uc2NyZWVuR3JhcGhp
Y3NDb250ZXh0M0QgPSBHcmFwaGljc0NvbnRleHQzRFByaXZhdGU6OmNyZWF0ZUdyYXBoaWNzQ29u
dGV4dEZvckFub3RoZXJUaHJlYWQoZ2V0Q29tcG9zaXRvckNvbnRleHRBdHRyaWJ1dGVzKCksIG1f
cGFnZS0+Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNEOjpSZW5kZXJEaXJlY3RseVRvSG9zdFdp
bmRvdyk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1fdGVtcG9yYXJ5T25zY3JlZW5HcmFw
aGljc0NvbnRleHQzRCA9IEdyYXBoaWNzQ29udGV4dDNEOjpjcmVhdGUoZ2V0Q29tcG9zaXRvckNv
bnRleHRBdHRyaWJ1dGVzKCksIG1fcGFnZS0+Y2hyb21lKCksIEdyYXBoaWNzQ29udGV4dDNEOjpS
ZW5kZXJEaXJlY3RseVRvSG9zdFdpbmRvdyk7CkBAIC0yOTkzLDYgKzI5OTQsNyBAQCBXZWJHcmFw
aGljc0NvbnRleHQzRCogV2ViVmlld0ltcGw6OmdyYXBoaWNzQ29udGV4dDNEKCkKICAgICByZXR1
cm4gMDsKIH0KIAorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRWaXNpYmlsaXR5U3RhdGUoV2ViUGFn
ZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUsCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYm9vbCBpc0luaXRpYWxTdGF0ZSkgewogICAgIGlmICghcGFnZSgpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvQ0NMYXllclRyZWVIb3N0VGVz
dC5jcHAKaW5kZXggZTIyMDg4MDg1ZDdlZDBkNjUwMjk1YzY5NTc5ODAwOWY3MmU3YmVlMy4uNGE0
MTc5NjQ3OTEzYjhkZjBhNjdmOTNlMzI4NjlmNGMzZDNlN2NmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS90ZXN0cy9DQ0xheWVyVHJlZUhvc3RUZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL0NDTGF5ZXJUcmVlSG9zdFRlc3QuY3BwCkBAIC0yNDks
NyArMjQ5LDE1IEBAIHByb3RlY3RlZDoKICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0KCkKICAgICAg
ICAgOiBtX2JlZ2lubmluZyhmYWxzZSkKICAgICAgICAgLCBtX2VuZFdoZW5CZWdpblJldHVybnMo
ZmFsc2UpCi0gICAgICAgICwgbV90aW1lZE91dChmYWxzZSkgeyB9CisgICAgICAgICwgbV90aW1l
ZE91dChmYWxzZSkKKyAgICB7CisgICAgICAgIG1fd2ViVGhyZWFkID0gYWRvcHRQdHIod2ViS2l0
UGxhdGZvcm1TdXBwb3J0KCktPmNyZWF0ZVRocmVhZCgiQ0NMYXllclRyZWVIb3N0VGVzdCIpKTsK
KyAgICAgICAgQVNTRVJUKENDUHJveHk6Om1haW5UaHJlYWQoKSk7CisKKyAgICAgICAgV2ViQ29t
cG9zaXRvcjo6c2V0VGhyZWFkKG1fd2ViVGhyZWFkLmdldCgpKTsKKyAgICAgICAgQVNTRVJUKEND
UHJveHk6OmlzTWFpblRocmVhZCgpKTsKKyAgICAgICAgbV9tYWluVGhyZWFkUHJveHkgPSBDQ1Nj
b3BlZFRocmVhZFByb3h5OjpjcmVhdGUoQ0NQcm94eTo6bWFpblRocmVhZCgpKTsKKyAgICB9CiAK
ICAgICB2b2lkIGRvQmVnaW5UZXN0KCk7CiAKQEAgLTI2Myw2ICsyNzEsOSBAQCBwcm90ZWN0ZWQ6
CiAgICAgICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0
OjpRdWl0TWVzc2FnZUxvb3AoKTsKICAgICAgICAgd2Via2l0X3N1cHBvcnQ6OlJ1bkFsbFBlbmRp
bmdNZXNzYWdlcygpOworICAgICAgICBDQ0xheWVyVHJlZUhvc3RUZXN0KiB0ZXN0ID0gc3RhdGlj
X2Nhc3Q8Q0NMYXllclRyZWVIb3N0VGVzdCo+KHNlbGYpOworICAgICAgICBBU1NFUlRfVFJVRSh0
ZXN0KTsKKyAgICAgICAgdGVzdC0+bV9sYXllclRyZWVIb3N0LmNsZWFyKCk7CiAgICAgfQogCiAg
ICAgc3RhdGljIHZvaWQgZGlzcGF0Y2hTZXROZWVkc0FuaW1hdGUodm9pZCogc2VsZikKQEAgLTM1
MSwyNyArMzYyLDE0IEBAIHByb3RlY3RlZDoKIAogICAgIHZpcnR1YWwgdm9pZCBydW5UZXN0KGJv
b2wgdGhyZWFkZWQpCiAgICAgeworICAgICAgICBtX3NldHRpbmdzLmVuYWJsZUNvbXBvc2l0b3JU
aHJlYWQgPSB0aHJlYWRlZDsKICAgICAgICAgbV9zZXR0aW5ncy5yZWZyZXNoUmF0ZSA9IDEwMC4w
OwotCi0gICAgICAgIGlmICh0aHJlYWRlZCkgewotICAgICAgICAgICAgbV93ZWJUaHJlYWQgPSBh
ZG9wdFB0cih3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFkKCJDQ0xheWVyVHJl
ZUhvc3RUZXN0IikpOwotICAgICAgICAgICAgV2ViQ29tcG9zaXRvcjo6aW5pdGlhbGl6ZShtX3dl
YlRocmVhZC5nZXQoKSk7Ci0gICAgICAgIH0gZWxzZQotICAgICAgICAgICAgV2ViQ29tcG9zaXRv
cjo6aW5pdGlhbGl6ZSgwKTsKLQotICAgICAgICBBU1NFUlQoQ0NQcm94eTo6aXNNYWluVGhyZWFk
KCkpOwotICAgICAgICBtX21haW5UaHJlYWRQcm94eSA9IENDU2NvcGVkVGhyZWFkUHJveHk6OmNy
ZWF0ZShDQ1Byb3h5OjptYWluVGhyZWFkKCkpOwotCiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpQ
b3N0RGVsYXllZFRhc2soQ0NMYXllclRyZWVIb3N0VGVzdDo6b25CZWdpblRlc3QsIHN0YXRpY19j
YXN0PHZvaWQqPih0aGlzKSwgMCk7CiAgICAgICAgIG1fdGltZW91dFRhc2sgPSBuZXcgVGltZW91
dFRhc2sodGhpcyk7CiAgICAgICAgIHdlYmtpdF9zdXBwb3J0OjpQb3N0RGVsYXllZFRhc2sobV90
aW1lb3V0VGFzaywgNTAwMCk7IC8vIHdlYmtpdF9zdXBwb3J0IHRha2VzIG93bmVyc2hpcCBvZiB0
aGUgdGFzawogICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UnVuTWVzc2FnZUxvb3AoKTsKICAgICAg
ICAgd2Via2l0X3N1cHBvcnQ6OlJ1bkFsbFBlbmRpbmdNZXNzYWdlcygpOwogCi0gICAgICAgIGlm
IChtX2xheWVyVHJlZUhvc3QgJiYgbV9sYXllclRyZWVIb3N0LT5yb290TGF5ZXIoKSkKLSAgICAg
ICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9vdExheWVyKCktPnNldExheWVyVHJlZUhvc3QoMCk7
Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC5jbGVhcigpOwotCiAgICAgICAgIGlmIChtX3RpbWVv
dXRUYXNrKQogICAgICAgICAgICAgbV90aW1lb3V0VGFzay0+Y2xlYXJUZXN0KCk7CiAKQEAgLTM3
OSwxMSArMzc3LDEwIEBAIHByb3RlY3RlZDoKICAgICAgICAgbV9jbGllbnQuY2xlYXIoKTsKICAg
ICAgICAgaWYgKG1fdGltZWRPdXQpIHsKICAgICAgICAgICAgIEZBSUwoKSA8PCAiVGVzdCB0aW1l
ZCBvdXQiOwotICAgICAgICAgICAgV2ViQ29tcG9zaXRvcjo6c2h1dGRvd24oKTsKICAgICAgICAg
ICAgIHJldHVybjsKICAgICAgICAgfQorICAgICAgICBtX3Jvb3RMYXllci0+c2V0TGF5ZXJUcmVl
SG9zdCgwKTsKICAgICAgICAgYWZ0ZXJUZXN0KCk7Ci0gICAgICAgIFdlYkNvbXBvc2l0b3I6OnNo
dXRkb3duKCk7CiAgICAgfQogCiAgICAgQ0NTZXR0aW5ncyBtX3NldHRpbmdzOwpAQCAtMzk1LDYg
KzM5Miw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2VuZFdoZW5CZWdpblJldHVybnM7CiAgICAg
Ym9vbCBtX3RpbWVkT3V0OwogCisgICAgUmVmUHRyPExheWVyQ2hyb21pdW0+IG1fcm9vdExheWVy
OwogICAgIE93blB0cjxXZWJUaHJlYWQ+IG1fd2ViVGhyZWFkOwogICAgIFJlZlB0cjxDQ1Njb3Bl
ZFRocmVhZFByb3h5PiBtX21haW5UaHJlYWRQcm94eTsKICAgICBUaW1lb3V0VGFzayogbV90aW1l
b3V0VGFzazsKQEAgLTQwNSwxMCArNDAzLDEwIEBAIHZvaWQgQ0NMYXllclRyZWVIb3N0VGVzdDo6
ZG9CZWdpblRlc3QoKQogICAgIEFTU0VSVChpc01haW5UaHJlYWQoKSk7CiAgICAgbV9jbGllbnQg
PSBNb2NrTGF5ZXJUcmVlSG9zdENsaWVudDo6Y3JlYXRlKHRoaXMpOwogCi0gICAgUmVmUHRyPExh
eWVyQ2hyb21pdW0+IHJvb3RMYXllciA9IExheWVyQ2hyb21pdW06OmNyZWF0ZSgwKTsKLSAgICBt
X2xheWVyVHJlZUhvc3QgPSBNb2NrTGF5ZXJUcmVlSG9zdDo6Y3JlYXRlKHRoaXMsIG1fY2xpZW50
LmdldCgpLCByb290TGF5ZXIsIG1fc2V0dGluZ3MpOworICAgIG1fcm9vdExheWVyID0gTGF5ZXJD
aHJvbWl1bTo6Y3JlYXRlKDApOworICAgIG1fbGF5ZXJUcmVlSG9zdCA9IE1vY2tMYXllclRyZWVI
b3N0OjpjcmVhdGUodGhpcywgbV9jbGllbnQuZ2V0KCksIG1fcm9vdExheWVyLCBtX3NldHRpbmdz
KTsKICAgICBBU1NFUlRfVFJVRShtX2xheWVyVHJlZUhvc3QpOwotICAgIHJvb3RMYXllci0+c2V0
TGF5ZXJUcmVlSG9zdChtX2xheWVyVHJlZUhvc3QuZ2V0KCkpOworICAgIG1fcm9vdExheWVyLT5z
ZXRMYXllclRyZWVIb3N0KG1fbGF5ZXJUcmVlSG9zdC5nZXQoKSk7CiAKICAgICBtX2JlZ2lubmlu
ZyA9IHRydWU7CiAgICAgYmVnaW5UZXN0KCk7CkBAIC00NDcsMTAgKzQ0NSw2IEBAIHB1YmxpYzoK
IAogICAgIHZpcnR1YWwgdm9pZCBiZWdpblRlc3QoKQogICAgIHsKLSAgICAgICAgLy8gS2lsbCB0
aGUgbGF5ZXJUcmVlSG9zdCBpbW1lZGlhdGVseS4KLSAgICAgICAgbV9sYXllclRyZWVIb3N0LT5y
b290TGF5ZXIoKS0+c2V0TGF5ZXJUcmVlSG9zdCgwKTsKLSAgICAgICAgbV9sYXllclRyZWVIb3N0
LmNsZWFyKCk7Ci0KICAgICAgICAgZW5kVGVzdCgpOwogICAgIH0KIApAQCAtNDc5LDExICs0NzMs
NiBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGJlZ2luVGVzdCgpCiAgICAgewogICAgICAg
ICBwb3N0U2V0TmVlZHNDb21taXRUb01haW5UaHJlYWQoKTsKLQotICAgICAgICAvLyBLaWxsIHRo
ZSBsYXllclRyZWVIb3N0IGltbWVkaWF0ZWx5LgotICAgICAgICBtX2xheWVyVHJlZUhvc3QtPnJv
b3RMYXllcigpLT5zZXRMYXllclRyZWVIb3N0KDApOwotICAgICAgICBtX2xheWVyVHJlZUhvc3Qu
Y2xlYXIoKTsKLQogICAgICAgICBlbmRUZXN0KCk7CiAgICAgfQogCkBAIC01MDIsMTEgKzQ5MSw2
IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgYmVnaW5UZXN0KCkKICAgICB7CiAgICAgICAg
IHBvc3RTZXROZWVkc1JlZHJhd1RvTWFpblRocmVhZCgpOwotCi0gICAgICAgIC8vIEtpbGwgdGhl
IGxheWVyVHJlZUhvc3QgaW1tZWRpYXRlbHkuCi0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC0+cm9v
dExheWVyKCktPnNldExheWVyVHJlZUhvc3QoMCk7Ci0gICAgICAgIG1fbGF5ZXJUcmVlSG9zdC5j
bGVhcigpOwotCiAgICAgICAgIGVuZFRlc3QoKTsKICAgICB9CiAKQEAgLTUxNyw4ICs1MDEsOCBA
QCBwdWJsaWM6CiAKIFNJTkdMRV9BTkRfTVVMVElfVEhSRUFEX1RFU1RfRihDQ0xheWVyVHJlZUhv
c3RUZXN0U2hvcnRsaXZlZDMpCiAKLS8vIFRlc3QgaW50ZXJsZWF2aW5nIG9mIHJlZHJhd3MgYW5k
IGNvbW1pdHMKLWNsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RDb21taXRpbmdXaXRoQ29udGludW91
c1JlZHJhdyA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0VGhyZWFkT25seSB7CisvLyBDb25z
dGFudGx5IHJlZHJhd2luZyBsYXllclRyZWVIb3N0cyBzaG91bGRuJ3QgZGllIHdoZW4gdGhleSBj
b21taXQKK2NsYXNzIENDTGF5ZXJUcmVlSG9zdFRlc3RDb21taXRpbmdXaXRoQ29udGludW91c1Jl
ZHJhdyA6IHB1YmxpYyBDQ0xheWVyVHJlZUhvc3RUZXN0IHsKIHB1YmxpYzoKICAgICBDQ0xheWVy
VHJlZUhvc3RUZXN0Q29tbWl0aW5nV2l0aENvbnRpbnVvdXNSZWRyYXcoKQogICAgICAgICA6IG1f
bnVtQ29tcGxldGVDb21taXRzKDApCkBAIC01MjksNiArNTEzLDcgQEAgcHVibGljOgogICAgIHZp
cnR1YWwgdm9pZCBiZWdpblRlc3QoKQogICAgIHsKICAgICAgICAgcG9zdFNldE5lZWRzQ29tbWl0
VG9NYWluVGhyZWFkKCk7CisgICAgICAgIGVuZFRlc3QoKTsKICAgICB9CiAKICAgICB2aXJ0dWFs
IHZvaWQgY29tbWl0Q29tcGxldGVPbkNDVGhyZWFkKENDTGF5ZXJUcmVlSG9zdEltcGwqKQpAQCAt
NTU1LDEwICs1NDAsNyBAQCBwcml2YXRlOgogICAgIGludCBtX251bURyYXdzOwogfTsKIAotVEVT
VF9GKENDTGF5ZXJUcmVlSG9zdFRlc3RDb21taXRpbmdXaXRoQ29udGludW91c1JlZHJhdywgcnVu
TXVsdGlUaHJlYWQpCi17Ci0gICAgcnVuVGVzdFRocmVhZGVkKCk7Ci19CitTSU5HTEVfQU5EX01V
TFRJX1RIUkVBRF9URVNUX0YoQ0NMYXllclRyZWVIb3N0VGVzdENvbW1pdGluZ1dpdGhDb250aW51
b3VzUmVkcmF3KQogCiAvLyBUd28gc2V0TmVlZHNDb21taXRzIGluIGEgcm93IHNob3VsZCBsZWFk
IHRvIGF0IGxlYXN0IDEgY29tbWl0IGFuZCBhdCBsZWFzdCAxCiAvLyBkcmF3IHdpdGggZnJhbWUg
MC4KQEAgLTEwMDksOSArOTkxLDYgQEAgcHVibGljOgogICAgICAgICAvLyBhbW91dCBvZiB0aW1l
cyBhcyBwYWludENvbnRlbnRzSWZEaXJ0eSgpLgogICAgICAgICBFWFBFQ1RfRVEobV91cGRhdGVD
aGVja0xheWVyLT5wYWludENvbnRlbnRzQ291bnQoKSwKICAgICAgICAgICAgICAgICAgIG1fdXBk
YXRlQ2hlY2tMYXllci0+dXBkYXRlQ291bnQoKSk7Ci0KLSAgICAgICAgLy8gY2xlYXIgbV91cGRh
dGVDaGVja0xheWVyIHNvIENDTGF5ZXJUcmVlSG9zdCBkaWVzLgotICAgICAgICBtX3VwZGF0ZUNo
ZWNrTGF5ZXIuY2xlYXIoKTsKICAgICB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbXBsVGVzdC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYkNvbXBvc2l0b3JJbXBsVGVzdC5jcHAKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uYTMzMzM2OWNlZWY1OThhOWJhODk2NzhhMjQyNTgwNTcyMTkyYzRiOQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvckltcGxUZXN0
LmNwcApAQCAtMCwwICsxLDY3IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBt
dXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMi
IEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElB
QkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7
CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBU
SU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRI
RSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lC
SUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5j
bHVkZSAiV2ViQ29tcG9zaXRvckltcGwuaCIKKworI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFk
UHJveHkuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+CisjaW5jbHVkZSA8d3RmL093blB0
ci5oPgorCit1c2luZyBXZWJLaXQ6OldlYkNvbXBvc2l0b3I7Cit1c2luZyBXZWJLaXQ6OldlYkNv
bXBvc2l0b3JJbXBsOworCituYW1lc3BhY2UgeworCitURVNUKFdlYkNvbXBvc2l0b3JJbXBsLCBm
cm9tSWRlbnRpZmllcikKK3sKKyNpZm5kZWYgTkRFQlVHCisgICAgLy8gV2ViQ29tcG9zaXRvciBB
UElzIGNhbiBvbmx5IGJlIGNhbGxlZCBmcm9tIHRoZSBjb21wb3NpdG9yIHRocmVhZC4KKyAgICBX
ZWJDb3JlOjpEZWJ1Z1Njb3BlZFNldEltcGxUaHJlYWQgYWx3YXlzSW1wbFRocmVhZDsKKyNlbmRp
ZgorCisgICAgLy8gQmVmb3JlIGNyZWF0aW5nIGFueSBXZWJDb21wb3NpdG9ycywgbG9va3VwcyBm
b3IgYW55IHZhbHVlIHNob3VsZCBmYWlsIGFuZCBub3QgY3Jhc2guCisgICAgRVhQRUNUX0VRKDAs
IFdlYkNvbXBvc2l0b3I6OmZyb21JZGVudGlmaWVyKDIpKTsKKyAgICBFWFBFQ1RfRVEoMCwgV2Vi
Q29tcG9zaXRvcjo6ZnJvbUlkZW50aWZpZXIoMCkpOworICAgIEVYUEVDVF9FUSgwLCBXZWJDb21w
b3NpdG9yOjpmcm9tSWRlbnRpZmllcigtMSkpOworCisgICAgaW50IGNvbXBvc2l0b3JJZGVudGlm
aWVyID0gLTE7CisgICAgeworICAgICAgICBPd25QdHI8V2ViQ29tcG9zaXRvckltcGw+IGNvbXAg
PSBXZWJDb21wb3NpdG9ySW1wbDo6Y3JlYXRlKDApOworICAgICAgICBjb21wb3NpdG9ySWRlbnRp
ZmllciA9IGNvbXAtPmlkZW50aWZpZXIoKTsKKyAgICAgICAgLy8gVGhlIGNvbXBvc2l0b3Igd2Ug
anVzdCBjcmVhdGVkIHNob3VsZCBiZSBsb2NhdGFibGUuCisgICAgICAgIEVYUEVDVF9FUShjb21w
LmdldCgpLCBXZWJDb21wb3NpdG9yOjpmcm9tSWRlbnRpZmllcihjb21wb3NpdG9ySWRlbnRpZmll
cikpOworCisgICAgICAgIC8vIEJ1dCBub3RoaW5nIGVsc2UuCisgICAgICAgIEVYUEVDVF9FUSgw
LCBXZWJDb21wb3NpdG9yOjpmcm9tSWRlbnRpZmllcihjb21wLT5pZGVudGlmaWVyKCkgKyAxMCkp
OworICAgIH0KKworICAgIC8vIEFmdGVyIHRoZSBjb21wb3NpdG9yIGlzIGRlc3Ryb3llZCwgaXRz
IGVudHJ5IHNob3VsZCBiZSByZW1vdmVkIGZyb20gdGhlIG1hcC4KKyAgICBFWFBFQ1RfRVEoMCwg
V2ViQ29tcG9zaXRvcjo6ZnJvbUlkZW50aWZpZXIoY29tcG9zaXRvcklkZW50aWZpZXIpKTsKK30K
KworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJDb21wb3Np
dG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0
cy9XZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbFRlc3QuY3BwCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBmMjA3YzA2YTJiNTcxYTk0ZjM3NzhmMDVlNjc4ODMyNTA4ZDhiMmYxLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vdGVzdHMvV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlckltcGxUZXN0LmNwcAor
KysgL2Rldi9udWxsCkBAIC0xLDcxICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0g
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JT
ICJBUyBJUyIgQU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQot
ICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFC
SUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAq
IChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgi
Ci0KLSNpbmNsdWRlICJXZWJDb21wb3NpdG9ySW5wdXRIYW5kbGVySW1wbC5oIgotCi0jaW5jbHVk
ZSAiV2ViQ29tcG9zaXRvci5oIgotI2luY2x1ZGUgImNjL0NDU2luZ2xlVGhyZWFkUHJveHkuaCIK
LQotI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Ci0jaW5jbHVkZSA8d3RmL093blB0ci5oPgotCi11
c2luZyBXZWJLaXQ6OldlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXI7Ci11c2luZyBXZWJLaXQ6Oldl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsOwotCi1uYW1lc3BhY2UgewotCi1URVNUKFdlYkNv
bXBvc2l0b3JJbnB1dEhhbmRsZXJJbXBsLCBmcm9tSWRlbnRpZmllcikKLXsKLSAgICBXZWJLaXQ6
OldlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7Ci0jaWZuZGVmIE5ERUJVRwotICAgIC8vIFdl
YkNvbXBvc2l0b3JJbnB1dEhhbmRsZXIgQVBJcyBjYW4gb25seSBiZSBjYWxsZWQgZnJvbSB0aGUg
Y29tcG9zaXRvciB0aHJlYWQuCi0gICAgV2ViQ29yZTo6RGVidWdTY29wZWRTZXRJbXBsVGhyZWFk
IGFsd2F5c0ltcGxUaHJlYWQ7Ci0jZW5kaWYKLQotICAgIC8vIEJlZm9yZSBjcmVhdGluZyBhbnkg
V2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcnMsIGxvb2t1cHMgZm9yIGFueSB2YWx1ZSBzaG91bGQg
ZmFpbCBhbmQgbm90IGNyYXNoLgotICAgIEVYUEVDVF9FUSgwLCBXZWJDb21wb3NpdG9ySW5wdXRI
YW5kbGVyOjpmcm9tSWRlbnRpZmllcigyKSk7Ci0gICAgRVhQRUNUX0VRKDAsIFdlYkNvbXBvc2l0
b3JJbnB1dEhhbmRsZXI6OmZyb21JZGVudGlmaWVyKDApKTsKLSAgICBFWFBFQ1RfRVEoMCwgV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlcjo6ZnJvbUlkZW50aWZpZXIoLTEpKTsKLQotICAgIGludCBj
b21wb3NpdG9ySWRlbnRpZmllciA9IC0xOwotICAgIHsKLSAgICAgICAgT3duUHRyPFdlYkNvbXBv
c2l0b3JJbnB1dEhhbmRsZXJJbXBsPiBjb21wID0gV2ViQ29tcG9zaXRvcklucHV0SGFuZGxlcklt
cGw6OmNyZWF0ZSgwKTsKLSAgICAgICAgY29tcG9zaXRvcklkZW50aWZpZXIgPSBjb21wLT5pZGVu
dGlmaWVyKCk7Ci0gICAgICAgIC8vIFRoZSBjb21wb3NpdG9yIHdlIGp1c3QgY3JlYXRlZCBzaG91
bGQgYmUgbG9jYXRhYmxlLgotICAgICAgICBFWFBFQ1RfRVEoY29tcC5nZXQoKSwgV2ViQ29tcG9z
aXRvcklucHV0SGFuZGxlcjo6ZnJvbUlkZW50aWZpZXIoY29tcG9zaXRvcklkZW50aWZpZXIpKTsK
LQotICAgICAgICAvLyBCdXQgbm90aGluZyBlbHNlLgotICAgICAgICBFWFBFQ1RfRVEoMCwgV2Vi
Q29tcG9zaXRvcklucHV0SGFuZGxlcjo6ZnJvbUlkZW50aWZpZXIoY29tcC0+aWRlbnRpZmllcigp
ICsgMTApKTsKLSAgICB9Ci0KLSAgICAvLyBBZnRlciB0aGUgY29tcG9zaXRvciBpcyBkZXN0cm95
ZWQsIGl0cyBlbnRyeSBzaG91bGQgYmUgcmVtb3ZlZCBmcm9tIHRoZSBtYXAuCi0gICAgRVhQRUNU
X0VRKDAsIFdlYkNvbXBvc2l0b3JJbnB1dEhhbmRsZXI6OmZyb21JZGVudGlmaWVyKGNvbXBvc2l0
b3JJZGVudGlmaWVyKSk7Ci0KLSAgICBXZWJLaXQ6OldlYkNvbXBvc2l0b3I6OnNodXRkb3duKCk7
Ci19Ci0KLX0KZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwpp
bmRleCA5NGViYTM3ZmU5ZjRjZTFhNzllZDI5NDc5NmI3NzNjNGRjZmEzNjBjLi5mNDQ4Yzk0MTU2
ZGMzZTZlMjIyMjFmOTQ4MTVmNWFmYjEwMjU3YjU2IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VM
b2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTEtMTEtMzAgIFNo
ZXJpZmYgQm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgorCisgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHIxMDE0NDAgYW5kIHIxMDE0NDIuCisgICAgICAgIGh0dHA6Ly90
cmFjLndlYmtpdC5vcmcvY2hhbmdlc2V0LzEwMTQ0MAorICAgICAgICBodHRwOi8vdHJhYy53ZWJr
aXQub3JnL2NoYW5nZXNldC8xMDE0NDIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTczNDI5CisKKyAgICAgICAgbXVsdGlwbGUgY3Jhc2hlcyBvbiBsYXlv
dXQgdGVzdHMgKFJlcXVlc3RlZCBieSBoYXlhdG8gb24KKyAgICAgICAgI3dlYmtpdCkuCisKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwOgorICAgICAgICAo
VGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKToKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuaDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXZWJQcmVmZXJlbmNlczo6cmVzZXQpOgorICAg
ICAgICAoV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8pOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVl
L2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViVmlld0hvc3QuY3BwOgorICAgICAgICAoV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0
KToKKyAgICAgICAgKFdlYlZpZXdIb3N0Ojp+V2ViVmlld0hvc3QpOgorCiAyMDExLTExLTMwICBG
YWR5IFNhbXVlbCAgPGZzYW11ZWxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFtDaHJvbWl1bV0g
Rml4IGJyb2tlbiBEUlQgYnVpbGQgZm9yIEF1cmEgTGludXgKZGlmZiAtLWdpdCBhL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAgYi9Ub29scy9EdW1wUmVuZGVyVHJl
ZS9jaHJvbWl1bS9UZXN0U2hlbGwuY3BwCmluZGV4IGRhOGZmZDMxNDRhOTNlOGJhZmVkNjI2ZDBl
ZmNlODllZGQ4NDdiN2UuLjFlMGE2MjY4MzQzY2RjYmI0NjllMzY5ZGZlMjRiZDk5YzViZjcxMzkg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1Rlc3RTaGVsbC5jcHAK
KysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmNwcApAQCAtMjAx
LDYgKzIwMSw3IEBAIHZvaWQgVGVzdFNoZWxsOjpyZXNldFdlYlNldHRpbmdzKFdlYlZpZXcmIHdl
YlZpZXcpCiAgICAgbV9wcmVmcy5yZXNldCgpOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRDb21w
b3NpdGluZ0VuYWJsZWQgPSB0cnVlOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWRDb21wb3NpdGlu
Z0ZvclZpZGVvRW5hYmxlZCA9IG1fYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxl
ZDsKKyAgICBtX3ByZWZzLnRocmVhZGVkQ29tcG9zaXRpbmdFbmFibGVkID0gbV90aHJlYWRlZENv
bXBvc2l0aW5nRW5hYmxlZDsKICAgICBtX3ByZWZzLmNvbXBvc2l0ZVRvVGV4dHVyZSA9IG1fY29t
cG9zaXRlVG9UZXh0dXJlOwogICAgIG1fcHJlZnMuZm9yY2VDb21wb3NpdGluZ01vZGUgPSBtX2Zv
cmNlQ29tcG9zaXRpbmdNb2RlOwogICAgIG1fcHJlZnMuYWNjZWxlcmF0ZWQyZENhbnZhc0VuYWJs
ZWQgPSBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkOwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVt
cFJlbmRlclRyZWUvY2hyb21pdW0vVGVzdFNoZWxsLmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9j
aHJvbWl1bS9UZXN0U2hlbGwuaAppbmRleCAzZWIzODIzYmE5Yjc1MmVhODI2ZDk4ZjNmYWZmMTFm
YjQyNWE5OGEyLi4xZjY0OGIxNWVmYjQ0MDI2MWMwZTgzODIzNmVjZjM2ZTJjM2YyMjQ0IDEwMDY0
NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9UZXN0U2hlbGwuaApAQCAtMTMyLDcgKzEzMiw2
IEBAIHB1YmxpYzoKIAogICAgIHZvaWQgc2V0QWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVv
RW5hYmxlZChib29sIGVuYWJsZWQpIHsgbV9hY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9yVmlkZW9F
bmFibGVkID0gZW5hYmxlZDsgfQogICAgIHZvaWQgc2V0VGhyZWFkZWRDb21wb3NpdGluZ0VuYWJs
ZWQoYm9vbCBlbmFibGVkKSB7IG1fdGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBlbmFibGVk
OyB9Ci0gICAgYm9vbCB0aHJlYWRlZENvbXBvc2l0aW5nRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJu
IG1fdGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQ7IH0KICAgICB2b2lkIHNldENvbXBvc2l0ZVRv
VGV4dHVyZShib29sIGVuYWJsZWQpIHsgbV9jb21wb3NpdGVUb1RleHR1cmUgPSBlbmFibGVkOyB9
CiAgICAgdm9pZCBzZXRGb3JjZUNvbXBvc2l0aW5nTW9kZShib29sIGVuYWJsZWQpIHsgbV9mb3Jj
ZUNvbXBvc2l0aW5nTW9kZSA9IGVuYWJsZWQ7IH0KICAgICB2b2lkIHNldEFjY2VsZXJhdGVkMmRD
YW52YXNFbmFibGVkKGJvb2wgZW5hYmxlZCkgeyBtX2FjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVk
ID0gZW5hYmxlZDsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0v
V2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJl
ZmVyZW5jZXMuY3BwCmluZGV4IDc1YTA1Nzc4OThhMmRmYWEzODU0ZDBmYjY1NThlOTA2ZDEzMzI2
ZDkuLjVjYzhmYWI5OTU4YTc5NmFjNDlkZTgxNDE5YWE5OWYwZGQzMmZjNmIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9U
b29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTEwOSw2
ICsxMDksNyBAQCB2b2lkIFdlYlByZWZlcmVuY2VzOjpyZXNldCgpCiAgICAgaHlwZXJsaW5rQXVk
aXRpbmdFbmFibGVkID0gZmFsc2U7CiAgICAgYWNjZWxlcmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVv
RW5hYmxlZCA9IGZhbHNlOwogICAgIGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkID0gZmFs
c2U7CisgICAgdGhyZWFkZWRDb21wb3NpdGluZ0VuYWJsZWQgPSBmYWxzZTsKICAgICBjb21wb3Np
dGVUb1RleHR1cmUgPSBmYWxzZTsKICAgICBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZCA9IGZh
bHNlOwogICAgIGxlZ2FjeUFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkID0gZmFsc2U7CkBAIC0y
MTIsNiArMjEzLDcgQEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyhXZWJWaWV3KiB3ZWJW
aWV3KQogICAgIHNldHRpbmdzLT5zZXRDYXJldEJyb3dzaW5nRW5hYmxlZChjYXJldEJyb3dzaW5n
RW5hYmxlZCk7CiAgICAgc2V0dGluZ3MtPnNldEFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVk
KGFjY2VsZXJhdGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0QWNjZWxl
cmF0ZWRDb21wb3NpdGluZ0ZvclZpZGVvRW5hYmxlZChhY2NlbGVyYXRlZENvbXBvc2l0aW5nRm9y
VmlkZW9FbmFibGVkKTsKKyAgICBzZXR0aW5ncy0+c2V0VXNlVGhyZWFkZWRDb21wb3NpdG9yKHRo
cmVhZGVkQ29tcG9zaXRpbmdFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0Q29tcG9zaXRlVG9U
ZXh0dXJlRW5hYmxlZChjb21wb3NpdGVUb1RleHR1cmUpOwogICAgIHNldHRpbmdzLT5zZXRGb3Jj
ZUNvbXBvc2l0aW5nTW9kZShmb3JjZUNvbXBvc2l0aW5nTW9kZSk7CiAgICAgc2V0dGluZ3MtPnNl
dEFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKGFjY2VsZXJhdGVkMmRDYW52YXNFbmFibGVkKTsK
ZGlmZiAtLWdpdCBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2Vz
LmggYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCmluZGV4
IDIxNjQ5NDQ4ZDg5ZThiNGMxOWIzNzY5OTZkYWYxNjgxNGRhZDJiNGUuLjIzMzdhNDA1NTlkMGU4
YWM0ZmE3NjVlODUzNjE2NDhiMjEzYjBhOWIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0R1bXBSZW5kZXJU
cmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaApAQCAtMTAyLDYgKzEwMiw3IEBAIHN0cnVjdCBXZWJQ
cmVmZXJlbmNlcyB7CiAgICAgYm9vbCBjYXJldEJyb3dzaW5nRW5hYmxlZDsKICAgICBib29sIGFj
Y2VsZXJhdGVkQ29tcG9zaXRpbmdGb3JWaWRlb0VuYWJsZWQ7CiAgICAgYm9vbCBhY2NlbGVyYXRl
ZENvbXBvc2l0aW5nRW5hYmxlZDsKKyAgICBib29sIHRocmVhZGVkQ29tcG9zaXRpbmdFbmFibGVk
OwogICAgIGJvb2wgY29tcG9zaXRlVG9UZXh0dXJlOwogICAgIGJvb2wgZm9yY2VDb21wb3NpdGlu
Z01vZGU7CiAgICAgYm9vbCBhY2NlbGVyYXRlZDJkQ2FudmFzRW5hYmxlZDsKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcCBiL1Rvb2xzL0R1
bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlZpZXdIb3N0LmNwcAppbmRleCBiOGNiY2M1NWU2MTcw
NmRjNjM3ZWZmMjc4ZTY1YTUwYTc0YTY5OThlLi5iMjBkMmQ3YzVjYWI1YWI5MmYwMzI2NWVjYTVk
ZDM3Y2RmMjM5MzEyIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9X
ZWJWaWV3SG9zdC5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViVmll
d0hvc3QuY3BwCkBAIC0xMjExLDExICsxMjExLDggQEAgV2ViVmlld0hvc3Q6OldlYlZpZXdIb3N0
KFRlc3RTaGVsbCogc2hlbGwpCiB7CiAgICAgV1RGOjppbml0aWFsaXplVGhyZWFkaW5nKCk7CiAK
LSAgICBpZiAoc2hlbGwtPnRocmVhZGVkQ29tcG9zaXRpbmdFbmFibGVkKCkpIHsKLSAgICAgICAg
bV9jb21wb3NpdG9yVGhyZWFkID0gYWRvcHRQdHIoV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1cHBv
cnQoKS0+Y3JlYXRlVGhyZWFkKCJDb21wb3NpdG9yIikpOwotICAgICAgICBXZWJDb21wb3NpdG9y
Ojppbml0aWFsaXplKG1fY29tcG9zaXRvclRocmVhZC5nZXQoKSk7Ci0gICAgfSBlbHNlCi0gICAg
ICAgIFdlYkNvbXBvc2l0b3I6OmluaXRpYWxpemUoMCk7CisgICAgbV9jb21wb3NpdG9yVGhyZWFk
ID0gYWRvcHRQdHIoV2ViS2l0Ojp3ZWJLaXRQbGF0Zm9ybVN1cHBvcnQoKS0+Y3JlYXRlVGhyZWFk
KCJDb21wb3NpdG9yIikpOworICAgIFdlYkNvbXBvc2l0b3I6OnNldFRocmVhZChtX2NvbXBvc2l0
b3JUaHJlYWQuZ2V0KCkpOwogCiAgICAgcmVzZXQoKTsKIH0KQEAgLTEyMzcsOCArMTIzNCw2IEBA
IFdlYlZpZXdIb3N0Ojp+V2ViVmlld0hvc3QoKQogICAgIHdlYldpZGdldCgpLT5jbG9zZSgpOwog
ICAgIGlmIChtX2luTW9kYWxMb29wKQogICAgICAgICB3ZWJraXRfc3VwcG9ydDo6UXVpdE1lc3Nh
Z2VMb29wKCk7Ci0KLSAgICBXZWJDb21wb3NpdG9yOjpzaHV0ZG93bigpOwogfQogCiB2b2lkIFdl
YlZpZXdIb3N0OjpzZXRXZWJXaWRnZXQoV2ViS2l0OjpXZWJXaWRnZXQqIHdpZGdldCkK
</data>

          </attachment>
      

    </bug>

</bugzilla>