<?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>108054</bug_id>
          
          <creation_ts>2013-01-27 23:30:44 -0800</creation_ts>
          <short_desc>Add support for enabling process suppression in WebProcesses with no visible pages</short_desc>
          <delta_ts>2013-01-29 14:53:58 -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>WebKit2</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kiran Muppala">cmuppala</reporter>
          <assigned_to name="Kiran Muppala">cmuppala</assigned_to>
          <cc>andersca</cc>
    
    <cc>ap</cc>
    
    <cc>buildbot</cc>
    
    <cc>rniwa</cc>
    
    <cc>sam</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>817545</commentid>
    <comment_count>0</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-27 23:30:44 -0800</bug_when>
    <thetext>Adding a preference to enable process suppression in WebProcesses with no visible pages, provides more opportunity for process suppression to be utilized in multi process WebKit2 process model.  This is to relax the current requirement that the application is to be completely occluded for process suppression to be enabled for WebProcesses.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>817546</commentid>
    <comment_count>1</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-27 23:30:59 -0800</bug_when>
    <thetext>&lt;rdar://problem/13047398&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818069</commentid>
    <comment_count>2</comment_count>
      <attachid>185053</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 13:50:02 -0800</bug_when>
    <thetext>Created attachment 185053
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818129</commentid>
    <comment_count>3</comment_count>
      <attachid>185053</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2013-01-28 14:46:14 -0800</bug_when>
    <thetext>Comment on attachment 185053
Patch

Attachment 185053 did not pass mac-wk2-ews (mac-wk2):
Output: http://queues.webkit.org/results/16180242</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818140</commentid>
    <comment_count>4</comment_count>
      <attachid>185071</attachid>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 14:52:07 -0800</bug_when>
    <thetext>Created attachment 185071
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>818142</commentid>
    <comment_count>5</comment_count>
    <who name="Kiran Muppala">cmuppala</who>
    <bug_when>2013-01-28 14:53:13 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Created an attachment (id=185071) [details]
&gt; Patch

Fixed build failure due to typo in variable name passed to UNUSED_PARAM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819357</commentid>
    <comment_count>6</comment_count>
      <attachid>185071</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 14:53:54 -0800</bug_when>
    <thetext>Comment on attachment 185071
Patch

Clearing flags on attachment: 185071

Committed r141167: &lt;http://trac.webkit.org/changeset/141167&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>819359</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2013-01-29 14:53:58 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185053</attachid>
            <date>2013-01-28 13:50:02 -0800</date>
            <delta_ts>2013-01-28 14:52:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108054-20130128134649.patch</filename>
            <type>text/plain</type>
            <size>40256</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTA0ODE0YjhjNjkwNzMx
Y2Q4ZDZkZGYyMGY4YzU1OTc3YmU2YTIwMS4uMjJkNzg2ZDc4YjI4OGE1YTFiMGI2NzM2NWU1NWRk
ZmM3YWIzZTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMy0wMS0yOCAgS2ly
YW4gTXVwcGFsYSAgPGNtdXBwYWxhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgZW5hYmxpbmcgcHJvY2VzcyBzdXBwcmVzc2lvbiBpbiBXZWJQcm9jZXNzZXMgd2l0aCBubyB2
aXNpYmxlIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDgwNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQcm92aWRlIGEgcHJlZmVyZW5jZSB0byBlbmFibGUgcHJvY2VzcyBzdXBwcmVzc2lvbiBp
biBXZWJQcm9jZXNzZXMgd2l0aAorICAgICAgICBubyB2aXNpYmxlIHBhZ2VzIGV2ZW4gaWYgdGhl
IGFwcGxpY2F0aW9uIGlzIG5vdCBjb21wbGV0ZWx5IG9jY2x1ZGVkLgorICAgICAgICBUaGlzIHBy
b3ZpZGVzIG1vcmUgb3Bwb3J0dW5pdGllcyBmb3IgcHJvY2VzcyBzdXBwcmVzc2lvbiB0byB0YWtl
IGVmZmVjdC4KKworICAgICAgICBSZXBsYWNlIHRoZSBtZXNzYWdpbmcgb2YgYXBwbGljYXRpb24g
b2NjbHVzaW9uIHN0YXR1cyBmcm9tIFVJIHByb2Nlc3MgdG8KKyAgICAgICAgQ2hpbGRQcm9jZXNz
ZXMgd2l0aCBtZXNzYWdlcyB0aGF0IGluZGljYXRlIHRoZSBjdXJyZW50IHJlcXVpcmVkIHByb2Nl
c3MKKyAgICAgICAgc3VwcHJlc3Npb24gc3RhdGUuICBXZWJQcm9jZXNzUHJveHkgc2hvdWxkIGRl
dGVybWluZSBpZiB0aGUgcHJvY2VzcyBpcworICAgICAgICBlbGlnaWJsZSBmb3IgcHJvY2VzcyBz
dXBwcmVzc2lvbiBiYXNlZCBvbiBib3RoIGFwcGxpY2F0aW9uIG9jY2x1c2lvbgorICAgICAgICBh
bmQgcGFnZSB2aXNpYmlsaXR5LiAgV2hlbiBlaXRoZXIgb2YgdGhlc2UgcGFyYW1ldGVycyBjaGFu
Z2VzLAorICAgICAgICB0aGUgcHJveHkgc2hvdWxkIG1lc3NhZ2UgdGhlIGNoaWxkIHByb2Nlc3Mg
b2YgdGhlIHVwZGF0ZWQgcHJvY2VzcworICAgICAgICBzdXBwcmVzc2lvbiBzdGF0ZS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOiBSZW5hbWUK
KyAgICAgICAgU2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHRvIFNldFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2Vz
LmluOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmg6IAorICAgICAgICAo
V2ViS2l0OjpDaGlsZFByb2Nlc3M6OnByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpOiBSZW5hbWUK
KyAgICAgICAgYXBwbGljYXRpb25Jc09jY2x1ZGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmg6IEFkZCBhIG5ldyBwcmVmZXJlbmNlCisgICAgICAgIHBhZ2VWaXNpYmls
aXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkLCB0byBlbmFibGVkL2Rpc2FibGUKKyAg
ICAgICAgcHJvY2VzcyBzdXBwcmVzc2lvbiBvZiBXZWJQcm9jZXNzZXMgd2hlbiBhbGwgcGFnZXMg
YXJlIGhpZGRlbi4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
KTogUmVuYW1lCisgICAgICAgIHNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZC4KKyAgICAgICAgKFdl
YktpdDo6Q2hpbGRQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBSZXBsYWNlIGNhbGwgdG8K
KyAgICAgICAgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHdpdGggc2V0UHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZC4KKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MubWVzc2FnZXMuaW46IFJlbmFtZQorICAgICAgICBTZXRBcHBsaWNhdGlvbklzT2NjbHVk
ZWQgdG8gU2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZVZp
c2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpOgorICAgICAgICAoV0tQcmVm
ZXJlbmNlc0dldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKTogVXNlIHNl
dHRlcgorICAgICAgICB0byB1cGRhdGUgcHJvY2VzcyBzdXBwcmVzc2lvbiBzdGF0ZSBpbnN0ZWFk
IG9mIG1lc3NhZ2luZyBkaXJlY3RseS4KKyAgICAgICAgVXNlIFdlYkNvbnRleHQ6OmNhbkVuYWJs
ZVByb2Nlc3NTdXBwcmVzc2lvbkZvck5ldHdvcmtQcm9jZXNzKCkgaGVscGVyCisgICAgICAgIG1l
dGhvZCB0byBkZXRlcm1pbmUgaWYgcHJvY2VzcyBzdXBwcmVzc2lvbiBzaG91bGQgYmUgZW5hYmxl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6IFJl
bmFtZQorICAgICAgICBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQgdG8gc2V0UHJvY2Vzc1N1cHBy
ZXNpb25FbmFibGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL21hYy9OZXR3b3JrUHJv
Y2Vzc1Byb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaDogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOiBVc2Ugc2V0dGVyCisgICAgICAg
IHRvIHVwZGF0ZSBwcm9jZXNzIHN1cHByZXNzaW9uIHN0YXRlIGluc3RlYWQgb2YgbWVzc2FnaW5n
IGRpcmVjdGx5LgorICAgICAgICBVc2UgV2ViQ29udGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHBy
ZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMoKQorICAgICAgICBoZWxwZXIgbWV0aG9kIHRv
IGRldGVybWluZSBpZiBwcm9jZXNzIHN1cHByZXNzaW9uIHNob3VsZCBiZSBlbmFibGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOiBSZW5hbWUKKyAg
ICAgICAgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHRvIHNldFByb2Nlc3NTdXBwcmVzaW9uRW5h
YmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFn
ZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzZXRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdp
bnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
UHJvY2Vzc1Byb3h5OjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAg
ICAgICogVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXIu
aDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2Vy
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzc1By
b3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOiBVc2Ugc2V0dGVyCisgICAgICAgIHRvIHVwZGF0ZSBw
cm9jZXNzIHN1cHByZXNzaW9uIHN0YXRlIGluc3RlYWQgb2YgbWVzc2FnaW5nIGRpcmVjdGx5Lgor
ICAgICAgICBVc2UgV2ViQ29udGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xv
YmFsQ2hpbGRQcm9jZXNzZXMoKQorICAgICAgICBoZWxwZXIgbWV0aG9kIHRvIGRldGVybWluZSBp
ZiBwcm9jZXNzIHN1cHByZXNzaW9uIHNob3VsZCBiZSBlbmFibGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5oOiBSZW5hbWUKKyAg
ICAgICAgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHRvIHNldFByb2Nlc3NTdXBwcmVzaW9uRW5h
YmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9tYWMvU2hhcmVkV29ya2Vy
UHJvY2Vzc01hbmFnZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nl
c3NNYW5hZ2VyOjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKToKKyAgICAgICAgRGl0dG8u
CisgICAgICAgICogVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvbWFjL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5
OjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaDogUmVwbGFjZSBhcHBsaWNhdGlvbklzT2NjbHVkZWQoKSBnZXR0ZXIg
d2l0aAorICAgICAgICBoZWxwZXIgbWV0aG9kcyB0byBkZXRlcm1pbmUgaWYgYSBjaGlsZCBwcm9j
ZXNzIGNhbiBoYXZlIHByb2Nlc3MKKyAgICAgICAgc3VwcHJlc3Npb24gZW5hYmxlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UpOiBOb3RpZnkgV2ViUHJvY2Vzc1Byb3h5IG9mCisg
ICAgICAgIHBhZ2UgdmlzaWJpbGl0eSBjaGFuZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UpOiBOb3RpZnkgV2ViUHJvY2Vzc1Byb3h5IG9mCisg
ICAgICAgIGNoYW5nZSBpbiBwcmVmZXJlbmNlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9j
ZXNzUHJveHkpOiBJbml0aWFsaXplIG1lbWJlciB2YXJpYWJsZQorICAgICAgICB0cmFja2luZyBw
cm9jZXNzIHN1cHByZXNzaW9uIHN0YXRlIHRvIGZhbHNlLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UpOiBVcGRhdGUgc2V0IG9mIHBhZ2VzIHdoaWNoIGNh
bgorICAgICAgICBiZSBwcm9jZXNzIHN1cHByZXNzZWQgYW5kIHRoZSByZXN1bHRpbmcgcHJvY2Vz
cyBzdXBwcmVzc2lvbiBzdGF0ZSBmb3IKKyAgICAgICAgdGhlIGNoaWxkIHByb2Nlc3MuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRkRXhpc3RpbmdXZWJQYWdlKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVtb3ZlV2ViUGFnZSk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBhZ2VWaXNpYmlsaXR5Q2hhbmdl
ZCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBhZ2VQcmVmZXJl
bmNlc0NoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpk
aWRGaW5pc2hMYXVuY2hpbmcpOiBDYWxsCisgICAgICAgIHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lv
blN0YXRlKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6dXBk
YXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVPZkdsb2JhbENoaWxkUHJvY2Vzc2VzKTogVXNlIG5l
dworICAgICAgICBoZWxwZXIgbWV0aG9kIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZvckds
b2JhbENoaWxkUHJvY2Vzc2VzKCkgdG8KKyAgICAgICAgZGV0ZXJtaW5lIGlmIHByb2Nlc3Mgc3Vw
cHJlc3Npb24gc2hvdWxkIGJlIGVuYWJsZWQuCisgICAgICAgIChXZWJLaXQ6OmFwcGxpY2F0aW9u
T2NjbHVzaW9uU3RhdGVDaGFuZ2VkKTogVXBkYXRlIHJlbmFtZWQgbWV0aG9kcworICAgICAgICBh
bmQgdmFyaWFibGVzLgorICAgICAgICAoV2ViS2l0OjplbmFibGVPY2NsdXNpb25Ob3RpZmljYXRp
b25zKTogTW92ZSBPbWl0UHJvY2Vzc1N1cHByZXNzaW9uCisgICAgICAgIHVzZXIgZGVmYXVsdCBj
aGVjayBpbnRvIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbiBtZXRob2RzLgorICAgICAgICAo
V2ViS2l0OjpvbWl0UHJvY2Vzc1N1cHByZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVPZkNoaWxkUHJvY2Vzc2VzKToKKyAg
ICAgICAgVXNlIG5ldyBoZWxwZXIgbWV0aG9kIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZv
ck5ldHdvcmtQcm9jZXNzKCkgdG8KKyAgICAgICAgZGV0ZXJtaW5lIGlmIHByb2Nlc3Mgc3VwcHJl
c3Npb24gc2hvdWxkIGJlIGVuYWJsZWQgZm9yIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICBMZXQg
V2ViUHJvY2VzcyB1cGRhdGUgcHJvY2VzcyBzdXBwcmVzc2lvbiBzdGF0ZSBiYXNlZCBvbiBhcHBs
aWNhdGlvbgorICAgICAgICBvY2NsdXNpb24gc3RhdGUgYW5kIHBhZ2UgdmlzaWJpbGl0eS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9y
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjYW5FbmFibGVQ
cm9jZXNzU3VwcHJlc3Npb25Gb3JXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
Q2hhbmdlZCk6IFJlZXZhbHVhdGUgaWYKKyAgICAgICAgcHJvY2VzcyBzdXBwcmVzc2lvbiBpcyBl
bmFibGVkIGZvciBhbGwgY29udGV4dHMgYW5kIHVwZGF0ZSBwcm9jZXNzCisgICAgICAgIHN1cHBy
ZXNzaW9uIHN0YXRlIG9mIGdsb2JhbCBjaGlsZCBwcm9jZXNzZXMuCisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6cGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6YWxsUGFnZXNBcmVQcm9jZXNzU3VwcHJlc3NpYmxlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDEzLTAx
LTI1ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgY3Jhc2gg
d2hlbiB0aGUgV0tCdW5kbGVQYWdlVUlDbGllbnQgZG9lc24ndCBpbXBsZW1lbnQgY3JlYXRlUGx1
Z0luRXh0cmFTdHlsZVNoZWV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBlMzBkZGM5OWY1YjJiYmE5
ODEyM2MxNmU3ZDI5ZDE0MGZiNmQ5NWY4Li45MzU0OTNiYzJlMjhjYzg4NTBjZTQ5MTgxZjkxYjY1
NDkwYWE4NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzYsNyArMzYsNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ2FuY2VsRG93bmxvYWQodWlu
dDY0X3QgZG93bmxvYWRJRCkKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBTZXRBcHBsaWNhdGlv
bklzT2NjbHVkZWQoYm9vbCBmbGFnKQorICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
Ym9vbCBmbGFnKQogI2VuZGlmCiAKICAgICBBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QoV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgV1RGOjpT
dHJpbmcgaG9zdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkZjkzYjExNjQ0NjhjMTEzNGNjYjZlNWM0ZTU1
NjRkOGE3ODBjMzY1Li5kZjU4ZGRhZGQxMzNlN2Q4NjZmNThkMDMzOWI4ODk0MzI2NThlNmNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
Lm1lc3NhZ2VzLmluCkBAIC00MCw3ICs0MCw3IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIENsZWFyU2l0ZURhdGEoVmVjdG9yPFdURjo6U3RyaW5nPiBz
aXRlcywgdWludDY0X3QgZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBTZXRBcHBsaWNhdGlvbklzT2Nj
bHVkZWQoYm9vbCBmbGFnKTsKKyAgICBTZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wg
ZmxhZyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4
IDM1YTNlNDQ0YWZlYWNlYzVlNzQ3ZjZmYTE2Njg3ZDRhMjc2Mzc0YjQuLjI1ODZkNmYzODdjYTg4
NzlmYzBkODFkZWMzYzczMzhiNTMxNjU4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmgKQEAgLTU5LDggKzU5LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklEKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIGFwcGxp
Y2F0aW9uSXNPY2NsdWRlZCgpIGNvbnN0IHsgcmV0dXJuICFtX3Byb2Nlc3NWaXNpYmxlQXNzZXJ0
aW9uOyB9Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9vbCk7CisgICAgYm9v
bCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1fcHJvY2Vzc1Zp
c2libGVBc3NlcnRpb247IH0KKyAgICB2b2lkIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
Ym9vbCk7CiAjZW5kaWYKIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA0MGVmYmY3MTA3ODA1
YWNkNWQ0ZGNmNTgwNTY0NjRjZDlhYTFlODBlLi5hMDNlODg5NDM3NTAxNDgyNDc1NDJmOTM3N2Zh
Njg0ZDgxMDhlZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0
b3JlLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBtYWNybyhB
Z2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQsIGFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5h
YmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhRVEtpdEVuYWJsZWQsIGlzUVRL
aXRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oTG9nc1BhZ2VNZXNzYWdl
c1RvU3lzdGVtQ29uc29sZUVuYWJsZWQsIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFBhZ2VWaXNpYmlsaXR5QmFz
ZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkLCBwYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1
cHByZXNzaW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBcCiAKICNkZWZpbmUg
Rk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDA3OGI1ZTdjZGZiZmNkOTAy
YTRjZmM5MzM5MTRmZDhiMmNkZDQ3NjMuLmIwMGUwNzNlZDhlODk1YjY2ZDZhY2FhZGVmYmMzODZi
MTAzYzhkM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9j
ZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tCkBAIC00NSwxNiArNDUsMTggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi12b2lkIENoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc09jY2x1
ZGVkKGJvb2wgYXBwbGljYXRpb25Jc09jY2x1ZGVkKQordm9pZCBDaGlsZFByb2Nlc3M6OnNldFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKQog
ewotICAgIGlmICh0aGlzLT5hcHBsaWNhdGlvbklzT2NjbHVkZWQoKSA9PSBhcHBsaWNhdGlvbklz
T2NjbHVkZWQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisg
ICAgaWYgKHRoaXMtPnByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoKSA9PSBwcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwOTAKLSAgICBpZiAoYXBwbGljYXRpb25Jc09jY2x1ZGVkKQorICAg
IGlmIChwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKQogICAgICAgICBtX3Byb2Nlc3NWaXNpYmxl
QXNzZXJ0aW9uLmNsZWFyKCk7CiAgICAgZWxzZQogICAgICAgICBtX3Byb2Nlc3NWaXNpYmxlQXNz
ZXJ0aW9uID0gV0tOU1Byb2Nlc3NJbmZvUHJvY2Vzc0Fzc2VydGlvbldpdGhUeXBlcyhXS1Byb2Nl
c3NBc3NlcnRpb25UeXBlVmlzaWJsZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwcm9jZXNz
U3VwcHByZXNzaW9uRW5hYmxlZCk7CiAjZW5kaWYKIH0KIApAQCAtNzQsOCArNzYsOCBAQCB2b2lk
IENoaWxkUHJvY2Vzczo6cGxhdGZvcm1Jbml0aWFsaXplKCkKICAgICBzZXRwcmlvcml0eShQUklP
X0RBUldJTl9QUk9DRVNTLCAwLCAwKTsKICAgICBpbml0aWFsaXplVGltZXJDb2FsZXNjaW5nUG9s
aWN5KCk7CiAjZW5kaWYKLSAgICAvLyBTdGFydGluZyBhcyB1bm9jY2x1ZGVkLiAgVGhlIHByb3h5
IGZvciB0aGlzIHByb2Nlc3Mgd2lsbCBzZXQgdGhlIGFjdHVhbCB2YWx1ZSBmcm9tIGRpZEZpbmlz
aExhdW5jaGluZygpLgotICAgIHNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZChmYWxzZSk7CisgICAg
Ly8gU3RhcnRpbmcgd2l0aCBwcm9jZXNzIHN1cHByZXNzaW9uIGRpc2FibGVkLiAgVGhlIHByb3h5
IGZvciB0aGlzIHByb2Nlc3Mgd2lsbCBlbmFibGUgaWYgYXBwcm9wcmlhdGUgZnJvbSBkaWRGaW5p
c2hMYXVuY2hpbmcoKS4KKyAgICBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGZhbHNlKTsK
IAogICAgIFtbTlNGaWxlTWFuYWdlciBkZWZhdWx0TWFuYWdlcl0gY2hhbmdlQ3VycmVudERpcmVj
dG9yeVBhdGg6W1tOU0J1bmRsZSBtYWluQnVuZGxlXSBidW5kbGVQYXRoXV07CiB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclByb2Nl
c3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJl
ZFdvcmtlclByb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggZmQ0ODU2YjYxM2FmNTdmYzY5M2ZjZWM3
MTc4OGEzMTM0OWIwYjUxZC4uYWQ3NDIzZGY5NzU4OGVlNTdjYzJmZjE2ZTNmNjk0YzFhNDI1Yzky
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2VyUHJvY2Vzcy9TaGFyZWRX
b3JrZXJQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtl
clByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzIsNyArMzIsNyBA
QCBtZXNzYWdlcyAtPiBTaGFyZWRXb3JrZXJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBD
cmVhdGVXZWJQcm9jZXNzQ29ubmVjdGlvbigpCiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgU2V0
QXBwbGljYXRpb25Jc09jY2x1ZGVkKGJvb2wgZmxhZykKKyAgICBTZXRQcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkKGJvb2wgZmxhZykKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlcy5jcHAKaW5kZXggYmE5Zjk4MDE2N2YzNjQ5YjA1
YmIyZjJlMTVhYmJjYmJjZDZiZmNlZC4uNmMxYjY4YWZkODQwZDZhM2IwNGJjMzRhMzQ1MjFhZGM4
MjgzMzExZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJl
ZmVyZW5jZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZl
cmVuY2VzLmNwcApAQCAtMTAyMywzICsxMDIzLDEzIEBAIGJvb2wgV0tQcmVmZXJlbmNlc0dldExv
Z3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJl
CiB7CiAgICAgcmV0dXJuIHRvSW1wbChwcmVmZXJlbmNlc1JlZiktPmxvZ3NQYWdlTWVzc2FnZXNU
b1N5c3RlbUNvbnNvbGVFbmFibGVkKCk7CiB9CisKK3ZvaWQgV0tQcmVmZXJlbmNlc1NldFBhZ2VW
aXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYg
cHJlZmVyZW5jZXNSZWYsIGJvb2wgZW5hYmxlZCkKK3sKKyAgICB0b0ltcGwocHJlZmVyZW5jZXNS
ZWYpLT5zZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChlbmFi
bGVkKTsKK30KKworYm9vbCBXS1ByZWZlcmVuY2VzR2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZikKK3sK
KyAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+cGFnZVZpc2liaWxpdHlCYXNlZFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoKTsKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzUHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKaW5kZXggNTg5MjRjMTdkOWU1
YTFkMWRhZjBlN2IzN2FhZWE2NmJlNTQ2Y2JlZS4uZmM0NDhmODFlZjIzMmRjMzkyNzMyYjdlMjE2
ZmQ2NjJiNDA5ZTdjNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9D
L1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmgKQEAgLTI0Myw2ICsyNDMsMTAgQEAgV0tfRVhQT1JU
IGJvb2wgV0tQcmVmZXJlbmNlc0dldEFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5hYmxlZChXS1By
ZWZlcmVuY2VzUmVmIHAKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNTZXRMb2dzUGFnZU1l
c3NhZ2VzVG9TeXN0ZW1Db25zb2xlRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2Vz
LCBib29sIGVuYWJsZWQpOwogV0tfRVhQT1JUIGJvb2wgV0tQcmVmZXJlbmNlc0dldExvZ3NQYWdl
TWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5j
ZXMpOwogCisvLyBEZWZhdWx0cyB0byBmYWxzZQorV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNl
c1NldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKFdLUHJlZmVy
ZW5jZXNSZWYgcHJlZmVyZW5jZXMsIGJvb2wgZW5hYmxlZCk7CitXS19FWFBPUlQgYm9vbCBXS1By
ZWZlcmVuY2VzR2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
V0tQcmVmZXJlbmNlc1JlZik7CisKIFdLX0VYUE9SVCB2b2lkIFdLUHJlZmVyZW5jZXNSZXNldFRl
c3RSdW5uZXJPdmVycmlkZXMoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNlc1JlZik7CiAKICNp
ZmRlZiBfX2NwbHVzcGx1cwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
TmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAppbmRleCBkNGY1MDQ3NzdkNzEwYzZkNjRl
YTRmM2NlM2JjMWViOGIwZjJkMmVlLi5lNTAxZDU1ODViM2FiZjFhMjQ1MTFiN2UwZDcyNGMxOGRi
NmUxMWVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3
b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTk2LDggKzE5Niw4IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciogbGF1bmNo
ZXIsIENvcmVJUEM6CiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJlcXVlc3RzID0gMDsKIAog
I2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoV2ViQ29udGV4dDo6YXBwbGljYXRpb25Jc09jY2x1
ZGVkKCkgJiYgbV93ZWJDb250ZXh0LT5wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCkpCi0gICAg
ICAgIGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldEFwcGxp
Y2F0aW9uSXNPY2NsdWRlZCh0cnVlKSwgMCk7CisgICAgaWYgKG1fd2ViQ29udGV4dC0+Y2FuRW5h
YmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yTmV0d29ya1Byb2Nlc3MoKSkKKyAgICAgICAgc2V0UHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZCh0cnVlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5k
ZXggNGUwN2YwZmEwZDdkZTk3ODE4YmM5MjdlNTQyZTIzMmVlNWY3NWVmYi4uYmNlODgwN2M4Mzg0
ODYzODU0NzFhMjJiMmVkOWM3N2U1M2QzYWRiOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtNjAsNyArNjAs
NyBAQCBwdWJsaWM6CiAgICAgRG93bmxvYWRQcm94eSogY3JlYXRlRG93bmxvYWRQcm94eSgpOwog
CiAjaWYgUExBVEZPUk0oTUFDKQotICAgIHZvaWQgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkKGJv
b2wpOworICAgIHZvaWQgc2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sKTsKICNlbmRp
ZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL05ldHdv
cmsvbWFjL05ldHdvcmtQcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTmV0d29yay9tYWMvTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbQppbmRleCA5MDFjNzA3ZjRl
NmVkODI4NjRkYWM1MDMzNWI0NDNlNDMzMDlhNDQyLi42N2JlNTIyY2Q3ZDNmMzEyNWUxOGViYzBk
ZGQ5OGQzZTk1Yzc0MDllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9tYWMvTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9tYWMvTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbQpAQCAtMzQsMTIg
KzM0LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwogCiBuYW1lc3BhY2UgV2ViS2l0IHsK
IAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9v
bCBhcHBsaWNhdGlvbklzT2NjbHVkZWQpCit2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKQog
ewogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAgICAgCi0gICAgY29ubmVj
dGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QXBwbGljYXRpb25Jc09j
Y2x1ZGVkKGFwcGxpY2F0aW9uSXNPY2NsdWRlZCksIDApOworICAgIGNvbm5lY3Rpb24oKS0+c2Vu
ZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
cHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCksIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzTWFuYWdlci5oCmluZGV4IGY4NDUyMWE0OTczYzUzMDQyYmVlNjIxNDc5Y2FhNTlhOGYx
YThhYmYuLmViZGQyMWEzY2YyN2JkNTBmZjk4ZDBhYzZhYmNjNjZlY2JhMzU0ZjggMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01h
bmFnZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjbGVhclNpdGVEYXRh
KGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqLCBjb25z
dCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGZsYWdzLCB1aW50NjRfdCBtYXhBZ2VJ
blNlY29uZHMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAg
IHZvaWQgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkKGJvb2wpOworICAgIHZvaWQgc2V0UHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZChib29sKTsKICNlbmRpZgogCiBwcml2YXRlOgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNw
cCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5j
cHAKaW5kZXggN2Q5MGM0MWU4NzRiNDViYzI2ZDhlYjdiOGFjNjVjNWI1OThhMjAwNS4uOTFlMTA1
NjRlY2FkODUyNWI3MjcxNWQ5YTFiN2UwNmFlMzk2Y2MxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCkBAIC0y
MzIsOCArMjMyLDggQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGlu
ZyhQcm9jZXNzTGF1bmNoZXIqLCBDb3JlSVBDOjpDb25uZWN0aW8KICAgICBtX251bVBlbmRpbmdD
b25uZWN0aW9uUmVxdWVzdHMgPSAwOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChXZWJD
b250ZXh0OjphcHBsaWNhdGlvbklzT2NjbHVkZWQoKSAmJiBXZWJDb250ZXh0Ojpwcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMoKSkKLSAgICAgICAgbV9jb25u
ZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzOjpTZXRBcHBsaWNhdGlvbklzT2Nj
bHVkZWQodHJ1ZSksIDApOworICAgIGlmIChXZWJDb250ZXh0OjpjYW5FbmFibGVQcm9jZXNzU3Vw
cHJlc3Npb25Gb3JHbG9iYWxDaGlsZFByb2Nlc3NlcygpKQorICAgICAgICBzZXRQcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkKHRydWUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggMTk0ZDdh
MzczNzU2MzYyYjFkYmFhNDllMzliNDZmOWY1NjgwMTRmZi4uMTBjNjhkYTZiZTA5YTkwNWVkZjI4
NWZhZjIzM2Q5OTZmYzQxZGE1ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTg2LDcgKzg2LDcgQEAgcHVibGlj
OgogICAgIFBsdWdpblByb2Nlc3M6OlR5cGUgcHJvY2Vzc1R5cGUoKSBjb25zdCB7IHJldHVybiBt
X3Byb2Nlc3NUeXBlOyB9CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBzZXRBcHBsaWNh
dGlvbklzT2NjbHVkZWQoYm9vbCk7CisgICAgdm9pZCBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFi
bGVkKGJvb2wpOwogCiAgICAgLy8gUmV0dXJucyB3aGV0aGVyIHRoZSBwbHVnLWluIG5lZWRzIHRo
ZSBoZWFwIHRvIGJlIG1hcmtlZCBleGVjdXRhYmxlLgogICAgIHN0YXRpYyBib29sIHBsdWdpbk5l
ZWRzRXhlY3V0YWJsZUhlYXAoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NNYW5hZ2Vy
TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nl
c3NNYW5hZ2VyTWFjLm1tCmluZGV4IDZhOTc0ZGFkN2E4MjlkODEzODk1M2M2NDc0NmIyMzhkMjhi
OGZhYTkuLjc3MWNmNzgwMTdmNzFhYjgyZmFlMDUxMzI4YmMyZmQyMzI5ZmI2ZTQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzTWFu
YWdlck1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1
Z2luUHJvY2Vzc01hbmFnZXJNYWMubW0KQEAgLTMyLDExICszMiwxMSBAQAogCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAotdm9pZCBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2V0QXBwbGljYXRpb25Jc09j
Y2x1ZGVkKGJvb2wgYXBwbGljYXRpb25Jc09jY2x1ZGVkKQordm9pZCBQbHVnaW5Qcm9jZXNzTWFu
YWdlcjo6c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIHByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQpCiB7CiAgICAgc2l6ZV90IHByb2Nlc3NDb3VudCA9IG1fcGx1Z2luUHJvY2Vzc2Vz
LnNpemUoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IHByb2Nlc3NDb3VudDsgKytpKQot
ICAgICAgICBtX3BsdWdpblByb2Nlc3Nlc1tpXS0+c2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkKGFw
cGxpY2F0aW9uSXNPY2NsdWRlZCk7CisgICAgICAgIG1fcGx1Z2luUHJvY2Vzc2VzW2ldLT5zZXRQ
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IGMw
NmM5ZTM1YWM1MzVhYmZjZmQ3MDM5MjcxZjNkZTRlMjJkYjZiYmIuLjdjNGVhZGViNDU3YjMyZWYw
ZGI2ZDNiY2I1ZmU5NjZjMjM5OWU1OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAt
MzEwLDEyICszMTAsMTIgQEAgdm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OmFwcGxpY2F0aW9uRGlk
QmVjb21lQWN0aXZlKCkKICAgICBtYWtlUGx1Z2luUHJvY2Vzc1RoZUZyb250UHJvY2VzcygpOwog
fQogCi12b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6c2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkKGJv
b2wgYXBwbGljYXRpb25Jc09jY2x1ZGVkKQordm9pZCBQbHVnaW5Qcm9jZXNzUHJveHk6OnNldFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKQog
ewogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX2Nvbm5lY3Rp
b24tPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb2Nlc3M6OlNldEFwcGxpY2F0aW9uSXNPY2NsdWRl
ZChhcHBsaWNhdGlvbklzT2NjbHVkZWQpLCAwKTsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmQoTWVz
c2FnZXM6OlBsdWdpblByb2Nlc3M6OlNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQocHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZCksIDApOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdv
cmtlclByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29y
a2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci5oCmluZGV4IGMyNTU1ZWE0ZTJhMTc0ZjU2
M2EwMjA2MzFjY2E5ZTM2NzZmMTRkNGMuLjI5OTEzMzg3OTQ2MDVkZjlmMzAwMzJhN2M2YTIzZGIz
ZDNkYzM0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXIuaApAQCAtNTQs
NyArNTQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZW1vdmVTaGFyZWRXb3JrZXJQcm9jZXNzUHJv
eHkoU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5Kik7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAg
dm9pZCBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9vbCk7CisgICAgdm9pZCBzZXRQcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9j
ZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcAppbmRleCAwM2FmZmU1YmNmNWNjMTQ0Njc4MDYwMjdm
MTdlNjE5OGI4ZTViMDhlLi40OGZlODcxNGVlY2ZkZjgyZjE0NzU4ZWRkOGU2MzlmODE1MTFmN2M5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
aGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5jcHAKQEAgLTE2Niw4ICsxNjYs
OCBAQCB2b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFBy
b2Nlc3NMYXVuY2hlciosIENvcmVJUEM6OkNvbgogICAgIG1fbnVtUGVuZGluZ0Nvbm5lY3Rpb25S
ZXF1ZXN0cyA9IDA7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKFdlYkNvbnRleHQ6OmFw
cGxpY2F0aW9uSXNPY2NsdWRlZCgpICYmIFdlYkNvbnRleHQ6OnByb2Nlc3NTdXBwcmVzc2lvbkVu
YWJsZWRGb3JHbG9iYWxDaGlsZFByb2Nlc3NlcygpKQotICAgICAgICBtX2Nvbm5lY3Rpb24tPnNl
bmQoTWVzc2FnZXM6OlNoYXJlZFdvcmtlclByb2Nlc3M6OlNldEFwcGxpY2F0aW9uSXNPY2NsdWRl
ZCh0cnVlKSwgMCk7CisgICAgaWYgKFdlYkNvbnRleHQ6OmNhbkVuYWJsZVByb2Nlc3NTdXBwcmVz
c2lvbkZvckdsb2JhbENoaWxkUHJvY2Vzc2VzKCkpCisgICAgICAgIHNldFByb2Nlc3NTdXBwcmVz
c2lvbkVuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNz
UHJveHkuaAppbmRleCA2ZTlmMjBhODY0YTUyYzU1NWNiYjA5OTQ2OTJjYzI0NDBhMWQ2YzhlLi5m
MjU0MmZjNmUxMmUyNDRlNDIyNzdhZTA4NTk2MjhlNDIzMjJjMGRjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRX
b3JrZXJQcm9jZXNzUHJveHkuaApAQCAtNTksNyArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBp
c1ZhbGlkKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uOyB9CiAKICNpZiBQTEFURk9STShN
QUMpCi0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9vbCk7CisgICAgdm9pZCBz
ZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9tYWMvU2hh
cmVkV29ya2VyUHJvY2Vzc01hbmFnZXJNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
U2hhcmVkV29ya2Vycy9tYWMvU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXJNYWMubW0KaW5kZXgg
ZTYzOTA3Y2U2ZDVlMjljODhlOWQxYmM0ZjI0Y2MxM2Y1NGM5Yzc1ZS4uODVjYTRhYTI1NTUzNjBk
ZjBjZTVlZTQ0YTFhYjFjMDE4OTdhOTU1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1NoYXJlZFdvcmtlcnMvbWFjL1NoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyTWFjLm1t
CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL21hYy9TaGFyZWRX
b3JrZXJQcm9jZXNzTWFuYWdlck1hYy5tbQpAQCAtMzIsMTEgKzMyLDExIEBACiAKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCi12b2lkIFNoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyOjpzZXRBcHBsaWNh
dGlvbklzT2NjbHVkZWQoYm9vbCBhcHBsaWNhdGlvbklzT2NjbHVkZWQpCit2b2lkIFNoYXJlZFdv
cmtlclByb2Nlc3NNYW5hZ2VyOjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgcHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZCkKIHsKICAgICBzaXplX3QgcHJvY2Vzc0NvdW50ID0gbV9z
aGFyZWRXb3JrZXJQcm9jZXNzZXMuc2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwg
cHJvY2Vzc0NvdW50OyArK2kpCi0gICAgICAgIG1fc2hhcmVkV29ya2VyUHJvY2Vzc2VzW2ldLT5z
ZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYXBwbGljYXRpb25Jc09jY2x1ZGVkKTsKKyAgICAgICAg
bV9zaGFyZWRXb3JrZXJQcm9jZXNzZXNbaV0tPnNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
cHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvbWFjL1No
YXJlZFdvcmtlclByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
aGFyZWRXb3JrZXJzL21hYy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHlNYWMubW0KaW5kZXggNWIz
ZGQ0NjM5ZDQxMjI2ZDlmN2YwMWQ5ZmRhZjg3ZDBkMDJlMGY1NS4uZmFiNGFjZGM2NjVlYTUzMThl
MzdmMTFkNzE0NzczMjkzZWQ4YmU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1NoYXJlZFdvcmtlcnMvbWFjL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1hYy5tbQorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9tYWMvU2hhcmVkV29ya2Vy
UHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0zMiwxMiArMzIsMTIgQEAKIAogbmFtZXNwYWNlIFdlYktp
dCB7CiAKLXZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5OjpzZXRBcHBsaWNhdGlvbklzT2Nj
bHVkZWQoYm9vbCBhcHBsaWNhdGlvbklzT2NjbHVkZWQpCit2b2lkIFNoYXJlZFdvcmtlclByb2Nl
c3NQcm94eTo6c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIHByb2Nlc3NTdXBwcmVz
c2lvbkVuYWJsZWQpCiB7CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2hhcmVkV29ya2VyUHJvY2Vzczo6U2V0
QXBwbGljYXRpb25Jc09jY2x1ZGVkKGFwcGxpY2F0aW9uSXNPY2NsdWRlZCksIDApOworICAgIG1f
Y29ubmVjdGlvbi0+c2VuZChNZXNzYWdlczo6U2hhcmVkV29ya2VyUHJvY2Vzczo6U2V0UHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZChwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKSwgMCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgK
aW5kZXggM2Y3NWMwODU0M2U0YmM5NWZlNTY0YjBmODQxZDM5NjkwZjgwMGM2MS4uMzc4YzM5MWQ4
NDM1YzM0YmE2ZGNkMzA3NjM3ZDc1Y2M1NzgyYjQ3OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oCkBAIC0yNzIsOSArMjcyLDEwIEBAIHB1YmxpYzoKICNpZiBQTEFURk9STShN
QUMpCiAgICAgdm9pZCBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOwogICAgIGJv
b2wgcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc1N1
cHByZXNzaW9uRW5hYmxlZDsgfQotICAgIHZvaWQgdXBkYXRlQ2hpbGRQcm9jZXNzZXNBcHBsaWNh
dGlvbk9jY2x1c2lvblN0YXRlKCk7Ci0gICAgc3RhdGljIGJvb2wgYXBwbGljYXRpb25Jc09jY2x1
ZGVkKCk7Ci0gICAgc3RhdGljIGJvb2wgcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEZvckdsb2Jh
bENoaWxkUHJvY2Vzc2VzKCk7CisgICAgYm9vbCBjYW5FbmFibGVQcm9jZXNzU3VwcHJlc3Npb25G
b3JOZXR3b3JrUHJvY2VzcygpIGNvbnN0OworICAgIGJvb2wgY2FuRW5hYmxlUHJvY2Vzc1N1cHBy
ZXNzaW9uRm9yV2ViUHJvY2Vzcyhjb25zdCBXZWJQcm9jZXNzUHJveHkqKSBjb25zdDsKKyAgICBz
dGF0aWMgYm9vbCBjYW5FbmFibGVQcm9jZXNzU3VwcHJlc3Npb25Gb3JHbG9iYWxDaGlsZFByb2Nl
c3NlcygpOworICAgIHZvaWQgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVPZkNoaWxkUHJv
Y2Vzc2VzKCk7CiAjZW5kaWYKIAogICAgIHN0YXRpYyB2b2lkIHdpbGxTdGFydFVzaW5nUHJpdmF0
ZUJyb3dzaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFn
ZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmlu
ZGV4IDI5NGQ1NGE5YzM4Zjc4MTdjOTFmMDIxYzlkYzkxOGE4MGMwODIxNjMuLmUzM2ZiMThlYTNk
MjIyZmNlZGU0MzZhYTE4Mjc5YzlkNmQ3MWMxMjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJQYWdlUHJveHkuY3BwCkBAIC04ODAsNiArODgwLDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6
OnZpZXdTdGF0ZURpZENoYW5nZShWaWV3U3RhdGVGbGFncyBmbGFncykKICAgICAgICAgYm9vbCBp
c1Zpc2libGUgPSBtX3BhZ2VDbGllbnQtPmlzVmlld1Zpc2libGUoKTsKICAgICAgICAgaWYgKGlz
VmlzaWJsZSAhPSBtX2lzVmlzaWJsZSkgewogICAgICAgICAgICAgbV9pc1Zpc2libGUgPSBpc1Zp
c2libGU7CisgICAgICAgICAgICBtX3Byb2Nlc3MtPnBhZ2VWaXNpYmlsaXR5Q2hhbmdlZCh0aGlz
KTsKICAgICAgICAgICAgIG1fZHJhd2luZ0FyZWEtPnZpc2liaWxpdHlEaWRDaGFuZ2UoKTsKIAog
ICAgICAgICAgICAgaWYgKCFtX2lzVmlzaWJsZSkgewpAQCAtMTg5OCw2ICsxODk5LDggQEAgdm9p
ZCBXZWJQYWdlUHJveHk6OnByZWZlcmVuY2VzRGlkQ2hhbmdlKCkKICAgICAgICAgaW5zcGVjdG9y
KCktPmVuYWJsZVJlbW90ZUluc3BlY3Rpb24oKTsKICNlbmRpZgogCisgICAgbV9wcm9jZXNzLT5w
YWdlUHJlZmVyZW5jZXNDaGFuZ2VkKHRoaXMpOworCiAgICAgLy8gRklYTUU6IEl0IHByb2JhYmx5
IG1ha2VzIG1vcmUgc2Vuc2UgdG8gc2VuZCBpbmRpdmlkdWFsIHByZWZlcmVuY2UgY2hhbmdlcy4K
ICAgICAvLyBIb3dldmVyLCBXZWJLaXRUZXN0UnVubmVyIGRlcGVuZHMgb24gZ2V0dGluZyBhIHBy
ZWZlcmVuY2UgY2hhbmdlIG5vdGlmaWNhdGlvbgogICAgIC8vIGV2ZW4gaWYgbm90aGluZyBjaGFu
Z2VkIGluIFVJIHByb2Nlc3MsIHNvIHRoYXQgb3ZlcnJpZGVzIGdldCByZW1vdmVkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcAppbmRleCA3YzIwNjVjZWJl
MThlMzM4NzI1ZmJjYTYyNGNjZTBlODVjY2MzYzc0Li4wNjg4YzdmYzVkM2UwOTYxNDkwNmNkY2U2
ZTk0ZmRiZWFmMzI1OTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vz
c1Byb3h5LmNwcApAQCAtMTA1LDYgKzEwNSw5IEBAIFdlYlByb2Nlc3NQcm94eTo6V2ViUHJvY2Vz
c1Byb3h5KFBhc3NSZWZQdHI8V2ViQ29udGV4dD4gY29udGV4dCkKICNpZiBFTkFCTEUoQ1VTVE9N
X1BST1RPQ09MUykKICAgICAsIG1fY3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkodGhpcykKICNl
bmRpZgorI2lmIFBMQVRGT1JNKE1BQykKKyAgICAsIG1fcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxl
ZChmYWxzZSkKKyNlbmRpZgogewogICAgIGNvbm5lY3QoKTsKIH0KQEAgLTE3MSw2ICsxNzQsMTEg
QEAgUGFzc1JlZlB0cjxXZWJQYWdlUHJveHk+IFdlYlByb2Nlc3NQcm94eTo6Y3JlYXRlV2ViUGFn
ZShQYWdlQ2xpZW50KiBwYWdlQ2xpZW50LAogICAgIFJlZlB0cjxXZWJQYWdlUHJveHk+IHdlYlBh
Z2UgPSBXZWJQYWdlUHJveHk6OmNyZWF0ZShwYWdlQ2xpZW50LCB0aGlzLCBwYWdlR3JvdXAsIHBh
Z2VJRCk7CiAgICAgbV9wYWdlTWFwLnNldChwYWdlSUQsIHdlYlBhZ2UuZ2V0KCkpOwogICAgIGds
b2JhbFBhZ2VNYXAoKS5zZXQocGFnZUlELCB3ZWJQYWdlLmdldCgpKTsKKyNpZiBQTEFURk9STShN
QUMpCisgICAgaWYgKHBhZ2VJc1Byb2Nlc3NTdXBwcmVzc2libGUod2ViUGFnZS5nZXQoKSkpCisg
ICAgICAgIG1fcHJvY2Vzc1N1cHByZXNzaWJsZVBhZ2VzLmFkZChwYWdlSUQpOworICAgIHVwZGF0
ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7CisjZW5kaWYKICAgICByZXR1cm4gd2ViUGFnZS5y
ZWxlYXNlKCk7CiB9CiAKQEAgLTE3OCwxMyArMTg2LDIxIEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5
OjphZGRFeGlzdGluZ1dlYlBhZ2UoV2ViUGFnZVByb3h5KiB3ZWJQYWdlLCB1aW50NjRfdCBwYWdl
SUQpCiB7CiAgICAgbV9wYWdlTWFwLnNldChwYWdlSUQsIHdlYlBhZ2UpOwogICAgIGdsb2JhbFBh
Z2VNYXAoKS5zZXQocGFnZUlELCB3ZWJQYWdlKTsKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYg
KHBhZ2VJc1Byb2Nlc3NTdXBwcmVzc2libGUod2ViUGFnZSkpOworICAgICAgICBtX3Byb2Nlc3NT
dXBwcmVzc2libGVQYWdlcy5hZGQocGFnZUlEKTsKKyAgICB1cGRhdGVQcm9jZXNzU3VwcHJlc3Np
b25TdGF0ZSgpOworI2VuZGlmCiB9CiAKIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpyZW1vdmVXZWJQ
YWdlKHVpbnQ2NF90IHBhZ2VJRCkKIHsKICAgICBtX3BhZ2VNYXAucmVtb3ZlKHBhZ2VJRCk7CiAg
ICAgZ2xvYmFsUGFnZU1hcCgpLnJlbW92ZShwYWdlSUQpOwotCisjaWYgUExBVEZPUk0oTUFDKQor
ICAgIG1fcHJvY2Vzc1N1cHByZXNzaWJsZVBhZ2VzLnJlbW92ZShwYWdlSUQpOworICAgIHVwZGF0
ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7CisjZW5kaWYKIH0KIAogVmVjdG9yPFdlYlBhZ2VQ
cm94eSo+IFdlYlByb2Nlc3NQcm94eTo6cGFnZXMoKSBjb25zdApAQCAtNTI3LDggKzU0Myw3IEBA
IHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVy
KiBsYXVuY2hlciwgQ29yZUlQQzo6Q29uCiAgICAgbV9jb250ZXh0LT5wcm9jZXNzRGlkRmluaXNo
TGF1bmNoaW5nKHRoaXMpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChXZWJDb250ZXh0
OjphcHBsaWNhdGlvbklzT2NjbHVkZWQoKSAmJiBtX2NvbnRleHQtPnByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQoKSkKLSAgICAgICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9j
ZXNzOjpTZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQodHJ1ZSksIDApOworICAgIHVwZGF0ZVByb2Nl
c3NTdXBwcmVzc2lvblN0YXRlKCk7CiAjZW5kaWYKIH0KIApAQCAtNjcyLDQgKzY4NywzMCBAQCB2
b2lkIFdlYlByb2Nlc3NQcm94eTo6ZGlkVXBkYXRlSGlzdG9yeVRpdGxlKHVpbnQ2NF90IHBhZ2VJ
RCwgY29uc3QgU3RyaW5nJiB0aXRsZQogICAgIG1fY29udGV4dC0+aGlzdG9yeUNsaWVudCgpLmRp
ZFVwZGF0ZUhpc3RvcnlUaXRsZShtX2NvbnRleHQuZ2V0KCksIHBhZ2UsIHRpdGxlLCB1cmwsIGZy
YW1lKTsKIH0KIAordm9pZCBXZWJQcm9jZXNzUHJveHk6OnBhZ2VWaXNpYmlsaXR5Q2hhbmdlZChX
ZWJLaXQ6OldlYlBhZ2VQcm94eSAqcGFnZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisgICAgaWYg
KHBhZ2VJc1Byb2Nlc3NTdXBwcmVzc2libGUocGFnZSkpCisgICAgICAgIG1fcHJvY2Vzc1N1cHBy
ZXNzaWJsZVBhZ2VzLmFkZChwYWdlLT5wYWdlSUQoKSk7CisgICAgZWxzZQorICAgICAgICBtX3By
b2Nlc3NTdXBwcmVzc2libGVQYWdlcy5yZW1vdmUocGFnZS0+cGFnZUlEKCkpOworICAgIHVwZGF0
ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwYWdl
KTsKKyNlbmRpZgorfQorCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZVByZWZlcmVuY2VzQ2hh
bmdlZChXZWJLaXQ6OldlYlBhZ2VQcm94eSAqcGFnZSkKK3sKKyNpZiBQTEFURk9STShNQUMpCisg
ICAgaWYgKHBhZ2VJc1Byb2Nlc3NTdXBwcmVzc2libGUocGFnZSkpCisgICAgICAgIG1fcHJvY2Vz
c1N1cHByZXNzaWJsZVBhZ2VzLmFkZChwYWdlLT5wYWdlSUQoKSk7CisgICAgZWxzZQorICAgICAg
ICBtX3Byb2Nlc3NTdXBwcmVzc2libGVQYWdlcy5yZW1vdmUocGFnZS0+cGFnZUlEKCkpOworICAg
IHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShwYWdlKTsKKyNlbmRpZgorfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRleCBjMTAzYTUwOTZmZTJjM2Y1OTY2
M2QyYzMwZDUxOTljYWE3NmYwZGY4Li44NDlkY2RkN2Y5NDA3ZTUyYzVkODFiNjYxYmRhOTk2Y2Zj
MmFhYTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1By
b3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCkBA
IC0xMTMsNiArMTEzLDE1IEBAIHB1YmxpYzoKIAogICAgIERvd25sb2FkUHJveHkqIGNyZWF0ZURv
d25sb2FkUHJveHkoKTsKIAorICAgIHZvaWQgcGFnZVZpc2liaWxpdHlDaGFuZ2VkKFdlYlBhZ2VQ
cm94eSopOworICAgIHZvaWQgcGFnZVByZWZlcmVuY2VzQ2hhbmdlZChXZWJQYWdlUHJveHkqKTsK
KworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBib29sIGFsbFBhZ2VzQXJlUHJvY2Vzc1N1cHByZXNz
aWJsZSgpIGNvbnN0OworICAgIHN0YXRpYyBib29sIHBhZ2VJc1Byb2Nlc3NTdXBwcmVzc2libGUo
V2ViUGFnZVByb3h5Kik7CisgICAgdm9pZCB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgp
OworI2VuZGlmCisKIHByaXZhdGU6CiAgICAgZXhwbGljaXQgV2ViUHJvY2Vzc1Byb3h5KFBhc3NS
ZWZQdHI8V2ViQ29udGV4dD4pOwogCkBAIC0xOTcsNiArMjA2LDExIEBAIHByaXZhdGU6CiAjaWYg
RU5BQkxFKENVU1RPTV9QUk9UT0NPTFMpCiAgICAgQ3VzdG9tUHJvdG9jb2xNYW5hZ2VyUHJveHkg
bV9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eTsKICNlbmRpZgorCisjaWYgUExBVEZPUk0oTUFD
KQorICAgIEhhc2hTZXQ8dWludDY0X3Q+IG1fcHJvY2Vzc1N1cHByZXNzaWJsZVBhZ2VzOworICAg
IGJvb2wgbV9wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkOworI2VuZGlmCiB9OwogICAgIAogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
bWFjL1dlYkNvbnRleHRNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNv
bnRleHRNYWMubW0KaW5kZXggOGIwNThhOWFlMmRlMjM3Nzg0NWIwMDRiNzY3ZDk3ZmY1ZjM0YzVh
NS4uMDYzZDA0ZjBlYjExNzUwOWJiYzRlZWI1MDNmMDQ4Y2Y1N2IyYjI4MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbQpAQCAtNjcsNyArNjcsNyBA
QCBOU1N0cmluZyAqU2NoZW1lRm9yQ3VzdG9tUHJvdG9jb2xVbnJlZ2lzdGVyZWROb3RpZmljYXRp
b25OYW1lID0gQCJXZWJLaXRTY2hlbWVGbwogCiBzdGF0aWMgYm9vbCBzX2FwcGxpY2F0aW9uSXNP
Y2NsdWRlZCA9IGZhbHNlOwogc3RhdGljIGJvb2wgc19vY2NsdXNpb25Ob3RpZmljYXRpb25IYW5k
bGVyc1JlZ2lzdGVyZWQgPSBmYWxzZTsKLXN0YXRpYyBib29sIHNfcHJvY2Vzc1N1cHByZXNzaW9u
RW5hYmxlZEZvckdsb2JhbENoaWxkUHJvY2Vzc2VzID0gdHJ1ZTsKK3N0YXRpYyBib29sIHNfcHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZEZvckFsbENvbnRleHRzID0gdHJ1ZTsKIAogc3RhdGljIHZv
aWQgcmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpCiB7CkBAIC04NSwxOCArODUsMTggQEAg
c3RhdGljIHZvaWQgcmVnaXN0ZXJVc2VyRGVmYXVsdHNJZk5lZWRlZCgpCiAgICAgW1tOU1VzZXJE
ZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gcmVnaXN0ZXJEZWZhdWx0czpyZWdpc3RyYXRp
b25EaWN0aW9uYXJ5XTsKIH0KIAotc3RhdGljIHZvaWQgdXBkYXRlR2xvYmFsQ2hpbGRQcm9jZXNz
ZXNBcHBsaWNhdGlvbk9jY2x1c2lvblN0YXRlKCkKK3N0YXRpYyB2b2lkIHVwZGF0ZVByb2Nlc3NT
dXBwcmVzc2lvblN0YXRlT2ZHbG9iYWxDaGlsZFByb2Nlc3NlcygpCiB7CiAgICAgLy8gVGhlIHBs
YW4gaXMgdG8gaGF2ZSBhbGwgY2hpbGQgcHJvY2Vzc2VzIGJlY29tZSBjb250ZXh0IHNwZWNpZmlj
LiAgVGhpcyBmdW5jdGlvbgogICAgIC8vIGNhbiBiZSByZW1vdmVkIG9uY2UgdGhhdCBpcyBjb21w
bGV0ZS4KICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpIHx8IEVOQUJMRShTSEFSRURfV09SS0VS
X1BST0NFU1MpCi0gICAgYm9vbCBpc09jY2x1ZGVkRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMgPSBz
X3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWRGb3JHbG9iYWxDaGlsZFByb2Nlc3NlcyAmJiBzX2Fw
cGxpY2F0aW9uSXNPY2NsdWRlZDsKKyAgICBib29sIGNhbkVuYWJsZSA9IFdlYkNvbnRleHQ6OmNh
bkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZvckdsb2JhbENoaWxkUHJvY2Vzc2VzKCk7CiAjZW5k
aWYKICNpZiBFTkFCTEUoUExVR0lOX1BST0NFU1MpCi0gICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6
OnNoYXJlZCgpLnNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZChpc09jY2x1ZGVkRm9yR2xvYmFsQ2hp
bGRQcm9jZXNzZXMpOworICAgIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzaGFyZWQoKS5zZXRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKGNhbkVuYWJsZSk7CiAjZW5kaWYKICNpZiBFTkFCTEUoU0hB
UkVEX1dPUktFUl9QUk9DRVNTKQotICAgIFNoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyOjpzaGFy
ZWQoKS5zZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoaXNPY2NsdWRlZEZvckdsb2JhbENoaWxkUHJv
Y2Vzc2VzKTsKKyAgICBTaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkuc2V0UHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZChjYW5FbmFibGUpOwogI2VuZGlmCiB9CiAKQEAgLTEwNiwx
MSArMTA2LDExIEBAIHN0YXRpYyB2b2lkIGFwcGxpY2F0aW9uT2NjbHVzaW9uU3RhdGVDaGFuZ2Vk
KCkKICAgICBjb25zdCBWZWN0b3I8V2ViQ29udGV4dCo+JiBjb250ZXh0cyA9IFdlYkNvbnRleHQ6
OmFsbENvbnRleHRzKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDAsIGNvdW50ID0gY29udGV4dHMu
c2l6ZSgpOyBpIDwgY291bnQ7ICsraSkgewogICAgICAgICBpZiAoY29udGV4dHNbaV0tPnByb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWQoKSkKLSAgICAgICAgICAgIGNvbnRleHRzW2ldLT51cGRhdGVD
aGlsZFByb2Nlc3Nlc0FwcGxpY2F0aW9uT2NjbHVzaW9uU3RhdGUoKTsKKyAgICAgICAgICAgIGNv
bnRleHRzW2ldLT51cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZU9mQ2hpbGRQcm9jZXNzZXMo
KTsKICAgICB9CiAKLSAgICBpZiAoc19wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yR2xvYmFs
Q2hpbGRQcm9jZXNzZXMpCi0gICAgICAgIHVwZGF0ZUdsb2JhbENoaWxkUHJvY2Vzc2VzQXBwbGlj
YXRpb25PY2NsdXNpb25TdGF0ZSgpOworICAgIGlmIChzX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWRGb3JBbGxDb250ZXh0cykKKyAgICAgICAgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVP
Zkdsb2JhbENoaWxkUHJvY2Vzc2VzKCk7CiB9CiAKIHN0YXRpYyB2b2lkIGFwcGxpY2F0aW9uQmVj
YW1lVmlzaWJsZSh1aW50MzJfdCwgdm9pZCosIHVpbnQzMl90LCB2b2lkKiwgdWludDMyX3QpCkBA
IC0xNjEsMTAgKzE2MSw2IEBAIHN0YXRpYyB2b2lkIGVuYWJsZU9jY2x1c2lvbk5vdGlmaWNhdGlv
bnMoKQogICAgIGlmIChzX29jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzUmVnaXN0ZXJlZCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RhdGljIGJvb2wgc2hvdWxkT21pdFByb2Nlc3NTdXBw
cmVzc2lvbiA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JL
ZXk6QCJXZWJLaXQyT21pdFByb2Nlc3NTdXBwcmVzc2lvbiJdOwotICAgIGlmIChzaG91bGRPbWl0
UHJvY2Vzc1N1cHByZXNzaW9uKQotICAgICAgICByZXR1cm47Ci0KICAgICBzX29jY2x1c2lvbk5v
dGlmaWNhdGlvbkhhbmRsZXJzUmVnaXN0ZXJlZCA9IHRydWU7CiAgICAgcmVnaXN0ZXJPY2NsdXNp
b25Ob3RpZmljYXRpb25IYW5kbGVycygpOwogfQpAQCAtMTc4LDI2ICsxNzQsNiBAQCBzdGF0aWMg
dm9pZCBkaXNhYmxlT2NjbHVzaW9uTm90aWZpY2F0aW9ucygpCiAgICAgdW5yZWdpc3Rlck9jY2x1
c2lvbk5vdGlmaWNhdGlvbkhhbmRsZXJzKCk7CiB9CiAKLXN0YXRpYyB2b2lkIGVuYWJsZVByb2Nl
c3NTdXBwcmVzc2lvbkZvckdsb2JhbENoaWxkUHJvY2Vzc2VzKCkKLXsKLSAgICBpZiAoc19wcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMpCi0gICAgICAgIHJl
dHVybjsKLQotICAgIHNfcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEZvckdsb2JhbENoaWxkUHJv
Y2Vzc2VzID0gdHJ1ZTsKLSAgICBpZiAoc19hcHBsaWNhdGlvbklzT2NjbHVkZWQpCi0gICAgICAg
IHVwZGF0ZUdsb2JhbENoaWxkUHJvY2Vzc2VzQXBwbGljYXRpb25PY2NsdXNpb25TdGF0ZSgpOwot
fQotCi1zdGF0aWMgdm9pZCBkaXNhYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xvYmFsQ2hpbGRQ
cm9jZXNzZXMoKQotewotICAgIGlmICghc19wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yR2xv
YmFsQ2hpbGRQcm9jZXNzZXMpCi0gICAgICAgIHJldHVybjsKLQotICAgIHNfcHJvY2Vzc1N1cHBy
ZXNzaW9uRW5hYmxlZEZvckdsb2JhbENoaWxkUHJvY2Vzc2VzID0gZmFsc2U7Ci0gICAgaWYgKHNf
YXBwbGljYXRpb25Jc09jY2x1ZGVkKQotICAgICAgICB1cGRhdGVHbG9iYWxDaGlsZFByb2Nlc3Nl
c0FwcGxpY2F0aW9uT2NjbHVzaW9uU3RhdGUoKTsKLX0KLQogc3RhdGljIGJvb2wgcHJvY2Vzc1N1
cHByZXNzaW9uSXNFbmFibGVkRm9yQW55Q29udGV4dCgpCiB7CiAgICAgYm9vbCByZXN1bHQgPSBm
YWxzZTsKQEAgLTIyNCw2ICsyMDAsMTIgQEAgc3RhdGljIGJvb2wgcHJvY2Vzc1N1cHByZXNzaW9u
SXNFbmFibGVkRm9yQWxsQ29udGV4dHMoKQogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3N0YXRp
YyBib29sIG9taXRQcm9jZXNzU3VwcHJlc3Npb24oKQoreworICAgIHN0YXRpYyBib29sIHJlc3Vs
dCA9IFtbTlNVc2VyRGVmYXVsdHMgc3RhbmRhcmRVc2VyRGVmYXVsdHNdIGJvb2xGb3JLZXk6QCJX
ZWJLaXQyT21pdFByb2Nlc3NTdXBwcmVzc2lvbiJdOworICAgIHJldHVybiByZXN1bHQ7Cit9CisK
IHZvaWQgV2ViQ29udGV4dDo6cGxhdGZvcm1Jbml0aWFsaXplKCkKIHsKICAgICByZWdpc3RlclVz
ZXJEZWZhdWx0c0lmTmVlZGVkKCk7CkBAIC00NDgsNDEgKzQzMCw1MCBAQCB2b2lkIFdlYkNvbnRl
eHQ6OnNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBlbmFibGVkKQogICAgIHByb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWRDaGFuZ2VkKCk7CiB9CiAKLXZvaWQgV2ViQ29udGV4dDo6dXBk
YXRlQ2hpbGRQcm9jZXNzZXNBcHBsaWNhdGlvbk9jY2x1c2lvblN0YXRlKCkKK3ZvaWQgV2ViQ29u
dGV4dDo6dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVPZkNoaWxkUHJvY2Vzc2VzKCkKIHsK
LSAgICBib29sIGlzT2NjbHVkZWRGb3JDaGlsZFByb2Nlc3NlcyA9IG1fcHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZCAmJiBzX2FwcGxpY2F0aW9uSXNPY2NsdWRlZDsKLQogI2lmIEVOQUJMRShORVRX
T1JLX1BST0NFU1MpCisgICAgYm9vbCBjYW5FbmFibGUgPSBjYW5FbmFibGVQcm9jZXNzU3VwcHJl
c3Npb25Gb3JOZXR3b3JrUHJvY2VzcygpOwogICAgIGlmICh1c2VzTmV0d29ya1Byb2Nlc3MoKSAm
JiBuZXR3b3JrUHJvY2VzcygpKQotICAgICAgICBuZXR3b3JrUHJvY2VzcygpLT5zZXRBcHBsaWNh
dGlvbklzT2NjbHVkZWQoaXNPY2NsdWRlZEZvckNoaWxkUHJvY2Vzc2VzKTsKKyAgICAgICAgbmV0
d29ya1Byb2Nlc3MoKS0+c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChjYW5FbmFibGUpOwog
I2VuZGlmCi0gICAgc2VuZFRvQWxsUHJvY2Vzc2VzKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRB
cHBsaWNhdGlvbklzT2NjbHVkZWQoaXNPY2NsdWRlZEZvckNoaWxkUHJvY2Vzc2VzKSk7CisgICAg
c2l6ZV90IHByb2Nlc3NDb3VudCA9IG1fcHJvY2Vzc2VzLnNpemUoKTsKKyAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IHByb2Nlc3NDb3VudDsgKytpKSB7CisgICAgICAgIFdlYlByb2Nlc3NQcm94
eSogcHJvY2VzcyA9IG1fcHJvY2Vzc2VzW2ldLmdldCgpOworICAgICAgICBwcm9jZXNzLT51cGRh
dGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgpOworICAgIH0KIH0KIAotYm9vbCBXZWJDb250ZXh0
OjphcHBsaWNhdGlvbklzT2NjbHVkZWQoKQorYm9vbCBXZWJDb250ZXh0OjpjYW5FbmFibGVQcm9j
ZXNzU3VwcHJlc3Npb25Gb3JOZXR3b3JrUHJvY2VzcygpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNf
YXBwbGljYXRpb25Jc09jY2x1ZGVkOworICAgIHJldHVybiBzX2FwcGxpY2F0aW9uSXNPY2NsdWRl
ZCAmJiBtX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQgJiYgIW9taXRQcm9jZXNzU3VwcHJlc3Np
b24oKTsKIH0KIAotYm9vbCBXZWJDb250ZXh0Ojpwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkRm9y
R2xvYmFsQ2hpbGRQcm9jZXNzZXMoKQorYm9vbCBXZWJDb250ZXh0OjpjYW5FbmFibGVQcm9jZXNz
U3VwcHJlc3Npb25Gb3JXZWJQcm9jZXNzKGNvbnN0IFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5ICp3
ZWJQcm9jZXNzKSBjb25zdAogewotICAgIHJldHVybiBzX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWRGb3JHbG9iYWxDaGlsZFByb2Nlc3NlczsKKyAgICByZXR1cm4gKHNfYXBwbGljYXRpb25Jc09j
Y2x1ZGVkIHx8IHdlYlByb2Nlc3MtPmFsbFBhZ2VzQXJlUHJvY2Vzc1N1cHByZXNzaWJsZSgpKQor
ICAgICAgICAgICAmJiBtX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQgJiYgIW9taXRQcm9jZXNz
U3VwcHJlc3Npb24oKTsKK30KKworYm9vbCBXZWJDb250ZXh0OjpjYW5FbmFibGVQcm9jZXNzU3Vw
cHJlc3Npb25Gb3JHbG9iYWxDaGlsZFByb2Nlc3NlcygpCit7CisgICAgcmV0dXJuIHNfYXBwbGlj
YXRpb25Jc09jY2x1ZGVkICYmIHNfcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEZvckFsbENvbnRl
eHRzICYmICFvbWl0UHJvY2Vzc1N1cHByZXNzaW9uKCk7CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6
cHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZENoYW5nZWQoKQogewotICAgIGlmIChzX2FwcGxpY2F0
aW9uSXNPY2NsdWRlZCkKLSAgICAgICAgdXBkYXRlQ2hpbGRQcm9jZXNzZXNBcHBsaWNhdGlvbk9j
Y2x1c2lvblN0YXRlKCk7CisgICAgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVPZkNoaWxk
UHJvY2Vzc2VzKCk7CiAKICAgICBpZiAocHJvY2Vzc1N1cHByZXNzaW9uSXNFbmFibGVkRm9yQW55
Q29udGV4dCgpKQogICAgICAgICBlbmFibGVPY2NsdXNpb25Ob3RpZmljYXRpb25zKCk7CiAgICAg
ZWxzZQogICAgICAgICBkaXNhYmxlT2NjbHVzaW9uTm90aWZpY2F0aW9ucygpOwogCi0gICAgaWYg
KHByb2Nlc3NTdXBwcmVzc2lvbklzRW5hYmxlZEZvckFsbENvbnRleHRzKCkpCi0gICAgICAgIGVu
YWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZvckdsb2JhbENoaWxkUHJvY2Vzc2VzKCk7Ci0gICAgZWxz
ZQotICAgICAgICBkaXNhYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNz
ZXMoKTsKKyAgICBib29sIG5ld1Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWRGb3JBbGxDb250ZXh0
cyA9IHByb2Nlc3NTdXBwcmVzc2lvbklzRW5hYmxlZEZvckFsbENvbnRleHRzKCk7CisgICAgaWYg
KHNfcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEZvckFsbENvbnRleHRzICE9IG5ld1Byb2Nlc3NT
dXBwcmVzc2lvbkVuYWJsZWRGb3JBbGxDb250ZXh0cykgeworICAgICAgICBzX3Byb2Nlc3NTdXBw
cmVzc2lvbkVuYWJsZWRGb3JBbGxDb250ZXh0cyA9IG5ld1Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWRGb3JBbGxDb250ZXh0czsKKyAgICAgICAgdXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVP
Zkdsb2JhbENoaWxkUHJvY2Vzc2VzKCk7CisgICAgfQogfQogCiB2b2lkIFdlYkNvbnRleHQ6OnJl
Z2lzdGVyTm90aWZpY2F0aW9uT2JzZXJ2ZXJzKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9tYWMvV2ViUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0KaW5kZXggY2M3MDFiZjJhZmQxMzhjOGRl
NDlhMGQ3NWJkYjc5YTAwZWM5YTcxZS4uMmNhMGIzZjJhOTYyOWU3MzYyYjIwN2YzZjBlN2QzYzIz
ZDA0M2QwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQcm9j
ZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJQcm9j
ZXNzUHJveHlNYWMubW0KQEAgLTI2LDYgKzI2LDkgQEAKICNpbXBvcnQgImNvbmZpZy5oIgogI2lt
cG9ydCAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAKKyNpbXBvcnQgIldlYkNvbnRleHQuaCIKKyNpbXBv
cnQgIldlYlBhZ2VHcm91cC5oIgorI2ltcG9ydCAiV2ViUHJlZmVyZW5jZXMuaCIKICNpbXBvcnQg
IldlYlByb2Nlc3NNZXNzYWdlcy5oIgogI2ltcG9ydCAiV0tGdWxsS2V5Ym9hcmRBY2Nlc3NXYXRj
aGVyLmgiCiAKQEAgLTYxLDQgKzY0LDI3IEBAIHZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwbGF0Zm9y
bUdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsCiAjZW5k
aWYKIH0KIAorYm9vbCBXZWJQcm9jZXNzUHJveHk6OnBhZ2VJc1Byb2Nlc3NTdXBwcmVzc2libGUo
V2ViUGFnZVByb3h5KiBwYWdlKQoreworICAgIHJldHVybiAhcGFnZS0+aXNWaWV3VmlzaWJsZSgp
ICYmIHBhZ2UtPnBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5wYWdlVmlzaWJpbGl0eUJhc2Vk
UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCgpOworfQorCitib29sIFdlYlByb2Nlc3NQcm94eTo6
YWxsUGFnZXNBcmVQcm9jZXNzU3VwcHJlc3NpYmxlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKG1f
cHJvY2Vzc1N1cHByZXNzaWJsZVBhZ2VzLnNpemUoKSA9PSBtX3BhZ2VNYXAuc2l6ZSgpKSAmJiAh
bV9wcm9jZXNzU3VwcHJlc3NpYmxlUGFnZXMuaXNFbXB0eSgpOworfQorCit2b2lkIFdlYlByb2Nl
c3NQcm94eTo6dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKQoreworICAgIGlmICghaXNW
YWxpZCgpKQorICAgICAgICByZXR1cm47CisKKyAgICBib29sIGNhbkVuYWJsZSA9IG1fY29udGV4
dC0+Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yV2ViUHJvY2Vzcyh0aGlzKTsKKyAgICBp
ZiAobV9wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkID09IGNhbkVuYWJsZSkKKyAgICAgICAgcmV0
dXJuOworICAgIG1fcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCA9IGNhbkVuYWJsZTsKKworICAg
IGNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdlczo6V2ViUHJvY2Vzczo6U2V0UHJvY2Vzc1N1cHBy
ZXNzaW9uRW5hYmxlZChtX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpLCAwKTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNz
L1dlYlByb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBy
b2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggYTc3ZTZmNmJiZTA5YjA2N2RmYjMxMzgyMTM5Y2E5ZjE1
OTY5YmQxNC4uN2E3MGJiNjQ4NjNlMTYzOGRkNGI0NTYzMTAzMWZmNzVhODZjYWQ5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAt
OTYsNiArOTYsNiBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAg
ICBQb3N0SW5qZWN0ZWRCdW5kbGVNZXNzYWdlKENvcmVJUEM6OkRhdGFSZWZlcmVuY2UgbWVzc2Fn
ZURhdGEpOwogCiAjaWYgUExBVEZPUk0oTUFDKQotICAgIFNldEFwcGxpY2F0aW9uSXNPY2NsdWRl
ZChib29sIGZsYWcpOworICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBmbGFn
KTsKICNlbmRpZgogfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>185071</attachid>
            <date>2013-01-28 14:52:07 -0800</date>
            <delta_ts>2013-01-29 14:53:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-108054-20130128144854.patch</filename>
            <type>text/plain</type>
            <size>40255</size>
            <attacher name="Kiran Muppala">cmuppala</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTQwOTAxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZTA0ODE0YjhjNjkwNzMx
Y2Q4ZDZkZGYyMGY4YzU1OTc3YmU2YTIwMS4uMjJkNzg2ZDc4YjI4OGE1YTFiMGI2NzM2NWU1NWRk
ZmM3YWIzZTE4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyMyBAQAorMjAxMy0wMS0yOCAgS2ly
YW4gTXVwcGFsYSAgPGNtdXBwYWxhQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBm
b3IgZW5hYmxpbmcgcHJvY2VzcyBzdXBwcmVzc2lvbiBpbiBXZWJQcm9jZXNzZXMgd2l0aCBubyB2
aXNpYmxlIHBhZ2VzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0xMDgwNTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBQcm92aWRlIGEgcHJlZmVyZW5jZSB0byBlbmFibGUgcHJvY2VzcyBzdXBwcmVzc2lvbiBp
biBXZWJQcm9jZXNzZXMgd2l0aAorICAgICAgICBubyB2aXNpYmxlIHBhZ2VzIGV2ZW4gaWYgdGhl
IGFwcGxpY2F0aW9uIGlzIG5vdCBjb21wbGV0ZWx5IG9jY2x1ZGVkLgorICAgICAgICBUaGlzIHBy
b3ZpZGVzIG1vcmUgb3Bwb3J0dW5pdGllcyBmb3IgcHJvY2VzcyBzdXBwcmVzc2lvbiB0byB0YWtl
IGVmZmVjdC4KKworICAgICAgICBSZXBsYWNlIHRoZSBtZXNzYWdpbmcgb2YgYXBwbGljYXRpb24g
b2NjbHVzaW9uIHN0YXR1cyBmcm9tIFVJIHByb2Nlc3MgdG8KKyAgICAgICAgQ2hpbGRQcm9jZXNz
ZXMgd2l0aCBtZXNzYWdlcyB0aGF0IGluZGljYXRlIHRoZSBjdXJyZW50IHJlcXVpcmVkIHByb2Nl
c3MKKyAgICAgICAgc3VwcHJlc3Npb24gc3RhdGUuICBXZWJQcm9jZXNzUHJveHkgc2hvdWxkIGRl
dGVybWluZSBpZiB0aGUgcHJvY2VzcyBpcworICAgICAgICBlbGlnaWJsZSBmb3IgcHJvY2VzcyBz
dXBwcmVzc2lvbiBiYXNlZCBvbiBib3RoIGFwcGxpY2F0aW9uIG9jY2x1c2lvbgorICAgICAgICBh
bmQgcGFnZSB2aXNpYmlsaXR5LiAgV2hlbiBlaXRoZXIgb2YgdGhlc2UgcGFyYW1ldGVycyBjaGFu
Z2VzLAorICAgICAgICB0aGUgcHJveHkgc2hvdWxkIG1lc3NhZ2UgdGhlIGNoaWxkIHByb2Nlc3Mg
b2YgdGhlIHVwZGF0ZWQgcHJvY2VzcworICAgICAgICBzdXBwcmVzc2lvbiBzdGF0ZS4KKworICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluOiBSZW5hbWUK
KyAgICAgICAgU2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHRvIFNldFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQuCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLm1lc3NhZ2Vz
LmluOiBEaXR0by4KKyAgICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzLmg6IAorICAgICAgICAo
V2ViS2l0OjpDaGlsZFByb2Nlc3M6OnByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpOiBSZW5hbWUK
KyAgICAgICAgYXBwbGljYXRpb25Jc09jY2x1ZGVkLgorICAgICAgICAqIFNoYXJlZC9XZWJQcmVm
ZXJlbmNlc1N0b3JlLmg6IEFkZCBhIG5ldyBwcmVmZXJlbmNlCisgICAgICAgIHBhZ2VWaXNpYmls
aXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkLCB0byBlbmFibGVkL2Rpc2FibGUKKyAg
ICAgICAgcHJvY2VzcyBzdXBwcmVzc2lvbiBvZiBXZWJQcm9jZXNzZXMgd2hlbiBhbGwgcGFnZXMg
YXJlIGhpZGRlbi4KKyAgICAgICAgKiBTaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbToKKyAg
ICAgICAgKFdlYktpdDo6Q2hpbGRQcm9jZXNzOjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
KTogUmVuYW1lCisgICAgICAgIHNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZC4KKyAgICAgICAgKFdl
YktpdDo6Q2hpbGRQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUpOiBSZXBsYWNlIGNhbGwgdG8K
KyAgICAgICAgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHdpdGggc2V0UHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZC4KKyAgICAgICAgKiBTaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdvcmtlclBy
b2Nlc3MubWVzc2FnZXMuaW46IFJlbmFtZQorICAgICAgICBTZXRBcHBsaWNhdGlvbklzT2NjbHVk
ZWQgdG8gU2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL0MvV0tQcmVmZXJlbmNlcy5jcHA6CisgICAgICAgIChXS1ByZWZlcmVuY2VzU2V0UGFnZVZp
c2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpOgorICAgICAgICAoV0tQcmVm
ZXJlbmNlc0dldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKToK
KyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaDoKKyAgICAg
ICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5nKTogVXNlIHNl
dHRlcgorICAgICAgICB0byB1cGRhdGUgcHJvY2VzcyBzdXBwcmVzc2lvbiBzdGF0ZSBpbnN0ZWFk
IG9mIG1lc3NhZ2luZyBkaXJlY3RseS4KKyAgICAgICAgVXNlIFdlYkNvbnRleHQ6OmNhbkVuYWJs
ZVByb2Nlc3NTdXBwcmVzc2lvbkZvck5ldHdvcmtQcm9jZXNzKCkgaGVscGVyCisgICAgICAgIG1l
dGhvZCB0byBkZXRlcm1pbmUgaWYgcHJvY2VzcyBzdXBwcmVzc2lvbiBzaG91bGQgYmUgZW5hYmxl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6IFJl
bmFtZQorICAgICAgICBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQgdG8gc2V0UHJvY2Vzc1N1cHBy
ZXNpb25FbmFibGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL21hYy9OZXR3b3JrUHJv
Y2Vzc1Byb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuaDogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UGx1
Z2luUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOiBVc2Ugc2V0dGVyCisgICAgICAg
IHRvIHVwZGF0ZSBwcm9jZXNzIHN1cHByZXNzaW9uIHN0YXRlIGluc3RlYWQgb2YgbWVzc2FnaW5n
IGRpcmVjdGx5LgorICAgICAgICBVc2UgV2ViQ29udGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHBy
ZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMoKQorICAgICAgICBoZWxwZXIgbWV0aG9kIHRv
IGRldGVybWluZSBpZiBwcm9jZXNzIHN1cHByZXNzaW9uIHNob3VsZCBiZSBlbmFibGVkLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oOiBSZW5hbWUKKyAg
ICAgICAgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHRvIHNldFByb2Nlc3NTdXBwcmVzaW9uRW5h
YmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFn
ZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzZXRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdp
bnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2lu
UHJvY2Vzc1Byb3h5OjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAg
ICAgICogVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXIu
aDogRGl0dG8uCisgICAgICAgICogVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29ya2Vy
UHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzc1By
b3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcpOiBVc2Ugc2V0dGVyCisgICAgICAgIHRvIHVwZGF0ZSBw
cm9jZXNzIHN1cHByZXNzaW9uIHN0YXRlIGluc3RlYWQgb2YgbWVzc2FnaW5nIGRpcmVjdGx5Lgor
ICAgICAgICBVc2UgV2ViQ29udGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xv
YmFsQ2hpbGRQcm9jZXNzZXMoKQorICAgICAgICBoZWxwZXIgbWV0aG9kIHRvIGRldGVybWluZSBp
ZiBwcm9jZXNzIHN1cHByZXNzaW9uIHNob3VsZCBiZSBlbmFibGVkLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eS5oOiBSZW5hbWUKKyAg
ICAgICAgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkIHRvIHNldFByb2Nlc3NTdXBwcmVzaW9uRW5h
YmxlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9tYWMvU2hhcmVkV29ya2Vy
UHJvY2Vzc01hbmFnZXJNYWMubW06CisgICAgICAgIChXZWJLaXQ6OlNoYXJlZFdvcmtlclByb2Nl
c3NNYW5hZ2VyOjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKToKKyAgICAgICAgRGl0dG8u
CisgICAgICAgICogVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvbWFjL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6U2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5
OjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKTogRGl0dG8uCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaDogUmVwbGFjZSBhcHBsaWNhdGlvbklzT2NjbHVkZWQoKSBnZXR0ZXIg
d2l0aAorICAgICAgICBoZWxwZXIgbWV0aG9kcyB0byBkZXRlcm1pbmUgaWYgYSBjaGlsZCBwcm9j
ZXNzIGNhbiBoYXZlIHByb2Nlc3MKKyAgICAgICAgc3VwcHJlc3Npb24gZW5hYmxlZC4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFn
ZVByb3h5Ojp2aWV3U3RhdGVEaWRDaGFuZ2UpOiBOb3RpZnkgV2ViUHJvY2Vzc1Byb3h5IG9mCisg
ICAgICAgIHBhZ2UgdmlzaWJpbGl0eSBjaGFuZ2UuCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQ
cm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UpOiBOb3RpZnkgV2ViUHJvY2Vzc1Byb3h5IG9mCisg
ICAgICAgIGNoYW5nZSBpbiBwcmVmZXJlbmNlcy4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJv
Y2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9j
ZXNzUHJveHkpOiBJbml0aWFsaXplIG1lbWJlciB2YXJpYWJsZQorICAgICAgICB0cmFja2luZyBw
cm9jZXNzIHN1cHByZXNzaW9uIHN0YXRlIHRvIGZhbHNlLgorICAgICAgICAoV2ViS2l0OjpXZWJQ
cm9jZXNzUHJveHk6OmNyZWF0ZVdlYlBhZ2UpOiBVcGRhdGUgc2V0IG9mIHBhZ2VzIHdoaWNoIGNh
bgorICAgICAgICBiZSBwcm9jZXNzIHN1cHByZXNzZWQgYW5kIHRoZSByZXN1bHRpbmcgcHJvY2Vz
cyBzdXBwcmVzc2lvbiBzdGF0ZSBmb3IKKyAgICAgICAgdGhlIGNoaWxkIHByb2Nlc3MuCisgICAg
ICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6YWRkRXhpc3RpbmdXZWJQYWdlKTogRGl0dG8u
CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nlc3NQcm94eTo6cmVtb3ZlV2ViUGFnZSk6IERpdHRv
LgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBhZ2VWaXNpYmlsaXR5Q2hhbmdl
ZCk6IERpdHRvLgorICAgICAgICAoV2ViS2l0OjpXZWJQcm9jZXNzUHJveHk6OnBhZ2VQcmVmZXJl
bmNlc0NoYW5nZWQpOiBEaXR0by4KKyAgICAgICAgKFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojpk
aWRGaW5pc2hMYXVuY2hpbmcpOiBDYWxsCisgICAgICAgIHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lv
blN0YXRlKCkuCisgICAgICAgICogVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oOgorICAgICAg
ICAqIFVJUHJvY2Vzcy9tYWMvV2ViQ29udGV4dE1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6dXBk
YXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVPZkdsb2JhbENoaWxkUHJvY2Vzc2VzKTogVXNlIG5l
dworICAgICAgICBoZWxwZXIgbWV0aG9kIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZvckds
b2JhbENoaWxkUHJvY2Vzc2VzKCkgdG8KKyAgICAgICAgZGV0ZXJtaW5lIGlmIHByb2Nlc3Mgc3Vw
cHJlc3Npb24gc2hvdWxkIGJlIGVuYWJsZWQuCisgICAgICAgIChXZWJLaXQ6OmFwcGxpY2F0aW9u
T2NjbHVzaW9uU3RhdGVDaGFuZ2VkKTogVXBkYXRlIHJlbmFtZWQgbWV0aG9kcworICAgICAgICBh
bmQgdmFyaWFibGVzLgorICAgICAgICAoV2ViS2l0OjplbmFibGVPY2NsdXNpb25Ob3RpZmljYXRp
b25zKTogTW92ZSBPbWl0UHJvY2Vzc1N1cHByZXNzaW9uCisgICAgICAgIHVzZXIgZGVmYXVsdCBj
aGVjayBpbnRvIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbiBtZXRob2RzLgorICAgICAgICAo
V2ViS2l0OjpvbWl0UHJvY2Vzc1N1cHByZXNzaW9uKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGVPZkNoaWxkUHJvY2Vzc2VzKToKKyAg
ICAgICAgVXNlIG5ldyBoZWxwZXIgbWV0aG9kIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZv
ck5ldHdvcmtQcm9jZXNzKCkgdG8KKyAgICAgICAgZGV0ZXJtaW5lIGlmIHByb2Nlc3Mgc3VwcHJl
c3Npb24gc2hvdWxkIGJlIGVuYWJsZWQgZm9yIE5ldHdvcmtQcm9jZXNzLgorICAgICAgICBMZXQg
V2ViUHJvY2VzcyB1cGRhdGUgcHJvY2VzcyBzdXBwcmVzc2lvbiBzdGF0ZSBiYXNlZCBvbiBhcHBs
aWNhdGlvbgorICAgICAgICBvY2NsdXNpb24gc3RhdGUgYW5kIHBhZ2UgdmlzaWJpbGl0eS4KKyAg
ICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9y
TmV0d29ya1Byb2Nlc3MpOgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0OjpjYW5FbmFibGVQ
cm9jZXNzU3VwcHJlc3Npb25Gb3JXZWJQcm9jZXNzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQ29u
dGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMp
OgorICAgICAgICAoV2ViS2l0OjpXZWJDb250ZXh0Ojpwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
Q2hhbmdlZCk6IFJlZXZhbHVhdGUgaWYKKyAgICAgICAgcHJvY2VzcyBzdXBwcmVzc2lvbiBpcyBl
bmFibGVkIGZvciBhbGwgY29udGV4dHMgYW5kIHVwZGF0ZSBwcm9jZXNzCisgICAgICAgIHN1cHBy
ZXNzaW9uIHN0YXRlIG9mIGdsb2JhbCBjaGlsZCBwcm9jZXNzZXMuCisgICAgICAgICogVUlQcm9j
ZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW06CisgICAgICAgIChXZWJLaXQ6OldlYlByb2Nl
c3NQcm94eTo6cGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlByb2Nlc3NQcm94eTo6YWxsUGFnZXNBcmVQcm9jZXNzU3VwcHJlc3NpYmxlKToKKyAgICAgICAg
KFdlYktpdDo6V2ViUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSk6
CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluOgorCiAyMDEzLTAx
LTI1ICBNYXJrIFJvd2UgIDxtcm93ZUBhcHBsZS5jb20+CiAKICAgICAgICAgRG9uJ3QgY3Jhc2gg
d2hlbiB0aGUgV0tCdW5kbGVQYWdlVUlDbGllbnQgZG9lc24ndCBpbXBsZW1lbnQgY3JlYXRlUGx1
Z0luRXh0cmFTdHlsZVNoZWV0LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBlMzBkZGM5OWY1YjJiYmE5
ODEyM2MxNmU3ZDI5ZDE0MGZiNmQ5NWY4Li45MzU0OTNiYzJlMjhjYzg4NTBjZTQ5MTgxZjkxYjY1
NDkwYWE4NTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9OZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtMzYsNyArMzYsNyBAQCBtZXNzYWdlcyAt
PiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7CiAgICAgQ2FuY2VsRG93bmxvYWQodWlu
dDY0X3QgZG93bmxvYWRJRCkKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBTZXRBcHBsaWNhdGlv
bklzT2NjbHVkZWQoYm9vbCBmbGFnKQorICAgIFNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
Ym9vbCBmbGFnKQogI2VuZGlmCiAKICAgICBBbGxvd1NwZWNpZmljSFRUUFNDZXJ0aWZpY2F0ZUZv
ckhvc3QoV2ViS2l0OjpQbGF0Zm9ybUNlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZSwgV1RGOjpT
dHJpbmcgaG9zdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvUGx1
Z2luUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBkZjkzYjExNjQ0NjhjMTEzNGNjYjZlNWM0ZTU1
NjRkOGE3ODBjMzY1Li5kZjU4ZGRhZGQxMzNlN2Q4NjZmNThkMDMzOWI4ODk0MzI2NThlNmNlIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
Lm1lc3NhZ2VzLmluCkBAIC00MCw3ICs0MCw3IEBAIG1lc3NhZ2VzIC0+IFBsdWdpblByb2Nlc3Mg
TGVnYWN5UmVjZWl2ZXIgewogICAgIENsZWFyU2l0ZURhdGEoVmVjdG9yPFdURjo6U3RyaW5nPiBz
aXRlcywgdWludDY0X3QgZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUluU2Vjb25kcywgdWludDY0X3Qg
Y2FsbGJhY2tJRCkKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBTZXRBcHBsaWNhdGlvbklzT2Nj
bHVkZWQoYm9vbCBmbGFnKTsKKyAgICBTZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wg
ZmxhZyk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0No
aWxkUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzcy5oCmluZGV4
IDM1YTNlNDQ0YWZlYWNlYzVlNzQ3ZjZmYTE2Njg3ZDRhMjc2Mzc0YjQuLjI1ODZkNmYzODdjYTg4
NzlmYzBkODFkZWMzYzczMzhiNTMxNjU4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9DaGlsZFByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzLmgKQEAgLTU5LDggKzU5LDggQEAgcHVibGljOgogICAgIHZvaWQgcmVtb3ZlTWVzc2FnZVJl
Y2VpdmVyKENvcmVJUEM6OlN0cmluZ1JlZmVyZW5jZSBtZXNzYWdlUmVjZWl2ZXJOYW1lLCB1aW50
NjRfdCBkZXN0aW5hdGlvbklEKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBib29sIGFwcGxp
Y2F0aW9uSXNPY2NsdWRlZCgpIGNvbnN0IHsgcmV0dXJuICFtX3Byb2Nlc3NWaXNpYmxlQXNzZXJ0
aW9uOyB9Ci0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9vbCk7CisgICAgYm9v
bCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gIW1fcHJvY2Vzc1Zp
c2libGVBc3NlcnRpb247IH0KKyAgICB2b2lkIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQo
Ym9vbCk7CiAjZW5kaWYKIAogICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIHBhcmVudFByb2Nlc3ND
b25uZWN0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oIGIvU291cmNl
L1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAppbmRleCA0MGVmYmY3MTA3ODA1
YWNkNWQ0ZGNmNTgwNTY0NjRjZDlhYTFlODBlLi5hMDNlODg5NDM3NTAxNDgyNDc1NDJmOTM3N2Zh
Njg0ZDgxMDhlZjdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVy
ZW5jZXNTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0
b3JlLmgKQEAgLTEzOSw2ICsxMzksNyBAQCBuYW1lc3BhY2UgV2ViS2l0IHsKICAgICBtYWNybyhB
Z2dyZXNzaXZlVGlsZVJldGVudGlvbkVuYWJsZWQsIGFnZ3Jlc3NpdmVUaWxlUmV0ZW50aW9uRW5h
YmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhRVEtpdEVuYWJsZWQsIGlzUVRL
aXRFbmFibGVkLCBCb29sLCBib29sLCB0cnVlKSBcCiAgICAgbWFjcm8oTG9nc1BhZ2VNZXNzYWdl
c1RvU3lzdGVtQ29uc29sZUVuYWJsZWQsIGxvZ3NQYWdlTWVzc2FnZXNUb1N5c3RlbUNvbnNvbGVF
bmFibGVkLCBCb29sLCBib29sLCBmYWxzZSkgXAorICAgIG1hY3JvKFBhZ2VWaXNpYmlsaXR5QmFz
ZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkLCBwYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1
cHByZXNzaW9uRW5hYmxlZCwgQm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBcCiAKICNkZWZpbmUg
Rk9SX0VBQ0hfV0VCS0lUX0RPVUJMRV9QUkVGRVJFTkNFKG1hY3JvKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9TaGFyZWQvbWFjL0NoaWxkUHJvY2Vzc01hYy5tbSBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFjLm1tCmluZGV4IDA3OGI1ZTdjZGZiZmNkOTAy
YTRjZmM5MzM5MTRmZDhiMmNkZDQ3NjMuLjA4NjBmMDA0MTZlYjcwMTJkMDRlNGQ2NjQwMWU0Yjc1
YmZjOWMxZGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9j
ZXNzTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9tYWMvQ2hpbGRQcm9jZXNzTWFj
Lm1tCkBAIC00NSwxNiArNDUsMTggQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVz
cGFjZSBXZWJLaXQgewogCi12b2lkIENoaWxkUHJvY2Vzczo6c2V0QXBwbGljYXRpb25Jc09jY2x1
ZGVkKGJvb2wgYXBwbGljYXRpb25Jc09jY2x1ZGVkKQordm9pZCBDaGlsZFByb2Nlc3M6OnNldFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKQog
ewotICAgIGlmICh0aGlzLT5hcHBsaWNhdGlvbklzT2NjbHVkZWQoKSA9PSBhcHBsaWNhdGlvbklz
T2NjbHVkZWQpCisjaWYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDkwCisg
ICAgaWYgKHRoaXMtPnByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoKSA9PSBwcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkKQogICAgICAgICByZXR1cm47CiAKLSNpZiBfX01BQ19PU19YX1ZFUlNJT05f
TUlOX1JFUVVJUkVEID49IDEwOTAKLSAgICBpZiAoYXBwbGljYXRpb25Jc09jY2x1ZGVkKQorICAg
IGlmIChwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKQogICAgICAgICBtX3Byb2Nlc3NWaXNpYmxl
QXNzZXJ0aW9uLmNsZWFyKCk7CiAgICAgZWxzZQogICAgICAgICBtX3Byb2Nlc3NWaXNpYmxlQXNz
ZXJ0aW9uID0gV0tOU1Byb2Nlc3NJbmZvUHJvY2Vzc0Fzc2VydGlvbldpdGhUeXBlcyhXS1Byb2Nl
c3NBc3NlcnRpb25UeXBlVmlzaWJsZSk7CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShwcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKTsKICNlbmRpZgogfQogCkBAIC03NCw4ICs3Niw4IEBAIHZvaWQg
Q2hpbGRQcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemUoKQogICAgIHNldHByaW9yaXR5KFBSSU9f
REFSV0lOX1BST0NFU1MsIDAsIDApOwogICAgIGluaXRpYWxpemVUaW1lckNvYWxlc2NpbmdQb2xp
Y3koKTsKICNlbmRpZgotICAgIC8vIFN0YXJ0aW5nIGFzIHVub2NjbHVkZWQuICBUaGUgcHJveHkg
Zm9yIHRoaXMgcHJvY2VzcyB3aWxsIHNldCB0aGUgYWN0dWFsIHZhbHVlIGZyb20gZGlkRmluaXNo
TGF1bmNoaW5nKCkuCi0gICAgc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkKGZhbHNlKTsKKyAgICAv
LyBTdGFydGluZyB3aXRoIHByb2Nlc3Mgc3VwcHJlc3Npb24gZGlzYWJsZWQuICBUaGUgcHJveHkg
Zm9yIHRoaXMgcHJvY2VzcyB3aWxsIGVuYWJsZSBpZiBhcHByb3ByaWF0ZSBmcm9tIGRpZEZpbmlz
aExhdW5jaGluZygpLgorICAgIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoZmFsc2UpOwog
CiAgICAgW1tOU0ZpbGVNYW5hZ2VyIGRlZmF1bHRNYW5hZ2VyXSBjaGFuZ2VDdXJyZW50RGlyZWN0
b3J5UGF0aDpbW05TQnVuZGxlIG1haW5CdW5kbGVdIGJ1bmRsZVBhdGhdXTsKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVkV29ya2VyUHJvY2Vz
cy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZFdvcmtlclByb2Nlc3MvU2hhcmVk
V29ya2VyUHJvY2Vzcy5tZXNzYWdlcy5pbgppbmRleCBmZDQ4NTZiNjEzYWY1N2ZjNjkzZmNlYzcx
Nzg4YTMxMzQ5YjBiNTFkLi5hZDc0MjNkZjk3NTg4ZWU1N2NjMmZmMTZlM2Y2OTRjMWE0MjVjOTJj
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWRXb3JrZXJQcm9jZXNzL1NoYXJlZFdv
cmtlclByb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkV29ya2Vy
UHJvY2Vzcy9TaGFyZWRXb3JrZXJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC0zMiw3ICszMiw3IEBA
IG1lc3NhZ2VzIC0+IFNoYXJlZFdvcmtlclByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIENy
ZWF0ZVdlYlByb2Nlc3NDb25uZWN0aW9uKCkKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBTZXRB
cHBsaWNhdGlvbklzT2NjbHVkZWQoYm9vbCBmbGFnKQorICAgIFNldFByb2Nlc3NTdXBwcmVzc2lv
bkVuYWJsZWQoYm9vbCBmbGFnKQogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvQy9XS1ByZWZlcmVuY2VzLmNwcAppbmRleCBiYTlmOTgwMTY3ZjM2NDliMDVi
YjJmMmUxNWFiYmNiYmNkNmJmY2VkLi42YzFiNjhhZmQ4NDBkNmEzYjA0YmMzNGEzNDUyMWFkYzgy
ODMzMTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tQcmVm
ZXJlbmNlcy5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVy
ZW5jZXMuY3BwCkBAIC0xMDIzLDMgKzEwMjMsMTMgQEAgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TG9n
c1BhZ2VNZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmUK
IHsKICAgICByZXR1cm4gdG9JbXBsKHByZWZlcmVuY2VzUmVmKS0+bG9nc1BhZ2VNZXNzYWdlc1Rv
U3lzdGVtQ29uc29sZUVuYWJsZWQoKTsKIH0KKwordm9pZCBXS1ByZWZlcmVuY2VzU2V0UGFnZVZp
c2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBw
cmVmZXJlbmNlc1JlZiwgYm9vbCBlbmFibGVkKQoreworICAgIHRvSW1wbChwcmVmZXJlbmNlc1Jl
ZiktPnNldFBhZ2VWaXNpYmlsaXR5QmFzZWRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGVuYWJs
ZWQpOworfQorCitib29sIFdLUHJlZmVyZW5jZXNHZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZChXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKQorewor
ICAgIHJldHVybiB0b0ltcGwocHJlZmVyZW5jZXNSZWYpLT5wYWdlVmlzaWJpbGl0eUJhc2VkUHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZCgpOworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9DL1dLUHJlZmVyZW5jZXNQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaAppbmRleCA1ODkyNGMxN2Q5ZTVh
MWQxZGFmMGU3YjM3YWFlYTY2YmU1NDZjYmVlLi5mYzQ0OGY4MWVmMjMyZGMzOTI3MzJiN2UyMTZm
ZDY2MmI0MDllN2M2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL0Mv
V0tQcmVmZXJlbmNlc1ByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L0MvV0tQcmVmZXJlbmNlc1ByaXZhdGUuaApAQCAtMjQzLDYgKzI0MywxMCBAQCBXS19FWFBPUlQg
Ym9vbCBXS1ByZWZlcmVuY2VzR2V0QWdncmVzc2l2ZVRpbGVSZXRlbnRpb25FbmFibGVkKFdLUHJl
ZmVyZW5jZXNSZWYgcAogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1NldExvZ3NQYWdlTWVz
c2FnZXNUb1N5c3RlbUNvbnNvbGVFbmFibGVkKFdLUHJlZmVyZW5jZXNSZWYgcHJlZmVyZW5jZXMs
IGJvb2wgZW5hYmxlZCk7CiBXS19FWFBPUlQgYm9vbCBXS1ByZWZlcmVuY2VzR2V0TG9nc1BhZ2VN
ZXNzYWdlc1RvU3lzdGVtQ29uc29sZUVuYWJsZWQoV0tQcmVmZXJlbmNlc1JlZiBwcmVmZXJlbmNl
cyk7CiAKKy8vIERlZmF1bHRzIHRvIGZhbHNlCitXS19FWFBPUlQgdm9pZCBXS1ByZWZlcmVuY2Vz
U2V0UGFnZVZpc2liaWxpdHlCYXNlZFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoV0tQcmVmZXJl
bmNlc1JlZiBwcmVmZXJlbmNlcywgYm9vbCBlbmFibGVkKTsKK1dLX0VYUE9SVCBib29sIFdLUHJl
ZmVyZW5jZXNHZXRQYWdlVmlzaWJpbGl0eUJhc2VkUHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChX
S1ByZWZlcmVuY2VzUmVmKTsKKwogV0tfRVhQT1JUIHZvaWQgV0tQcmVmZXJlbmNlc1Jlc2V0VGVz
dFJ1bm5lck92ZXJyaWRlcyhXS1ByZWZlcmVuY2VzUmVmIHByZWZlcmVuY2VzUmVmKTsKIAogI2lm
ZGVmIF9fY3BsdXNwbHVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9O
ZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGQ0ZjUwNDc3N2Q3MTBjNmQ2NGVh
NGYzY2UzYmMxZWI4YjBmMmQyZWUuLmU1MDFkNTU4NWIzYWJmMWEyNDUxMWI3ZTBkNzI0YzE4ZGI2
ZTExZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdv
cmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC0xOTYsOCArMTk2LDggQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJvY2Vzc0xhdW5jaGVyKiBsYXVuY2hl
ciwgQ29yZUlQQzoKICAgICBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMgPSAwOwogCiAj
aWYgUExBVEZPUk0oTUFDKQotICAgIGlmIChXZWJDb250ZXh0OjphcHBsaWNhdGlvbklzT2NjbHVk
ZWQoKSAmJiBtX3dlYkNvbnRleHQtPnByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoKSkKLSAgICAg
ICAgY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0QXBwbGlj
YXRpb25Jc09jY2x1ZGVkKHRydWUpLCAwKTsKKyAgICBpZiAobV93ZWJDb250ZXh0LT5jYW5FbmFi
bGVQcm9jZXNzU3VwcHJlc3Npb25Gb3JOZXR3b3JrUHJvY2VzcygpKQorICAgICAgICBzZXRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKHRydWUpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRl
eCA0ZTA3ZjBmYTBkN2RlOTc4MThiYzkyN2U1NDJlMjMyZWU1Zjc1ZWZiLi5iY2U4ODA3YzgzODQ4
NjM4NTQ3MWEyMmIyZWQ5Yzc3ZTUzZDNhZGI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC02MCw3ICs2MCw3
IEBAIHB1YmxpYzoKICAgICBEb3dubG9hZFByb3h5KiBjcmVhdGVEb3dubG9hZFByb3h5KCk7CiAK
ICNpZiBQTEFURk9STShNQUMpCi0gICAgdm9pZCBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9v
bCk7CisgICAgdm9pZCBzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOwogI2VuZGlm
CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTmV0d29y
ay9tYWMvTmV0d29ya1Byb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9OZXR3b3JrL21hYy9OZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IDkwMWM3MDdmNGU2
ZWQ4Mjg2NGRhYzUwMzM1YjQ0M2U0MzMwOWE0NDIuLjY3YmU1MjJjZDdkM2YzMTI1ZTE4ZWJjMGRk
ZDk4ZDNlOTVjNzQwOWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9OZXR3
b3JrL21hYy9OZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9OZXR3b3JrL21hYy9OZXR3b3JrUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0zNCwxMiAr
MzQsMTIgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQgewog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZChib29s
IGFwcGxpY2F0aW9uSXNPY2NsdWRlZCkKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpCiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKICAgICAKLSAgICBjb25uZWN0
aW9uKCktPnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBcHBsaWNhdGlvbklzT2Nj
bHVkZWQoYXBwbGljYXRpb25Jc09jY2x1ZGVkKSwgMCk7CisgICAgY29ubmVjdGlvbigpLT5zZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChw
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKSwgMCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktp
dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJv
Y2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblBy
b2Nlc3NNYW5hZ2VyLmgKaW5kZXggZjg0NTIxYTQ5NzNjNTMwNDJiZWU2MjE0NzljYWE1OWE4ZjFh
OGFiZi4uZWJkZDIxYTNjZjI3YmQ1MGZmOThkMGFjNmFiY2M2NmVjYmEzNTRmOCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIu
aAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFu
YWdlci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIGNsZWFyU2l0ZURhdGEo
Y29uc3QgUGx1Z2luTW9kdWxlSW5mbyYsIFdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciosIGNvbnN0
IFZlY3RvcjxTdHJpbmc+JiBzaXRlcywgdWludDY0X3QgZmxhZ3MsIHVpbnQ2NF90IG1heEFnZUlu
U2Vjb25kcywgdWludDY0X3QgY2FsbGJhY2tJRCk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAg
dm9pZCBzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9vbCk7CisgICAgdm9pZCBzZXRQcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKGJvb2wpOwogI2VuZGlmCiAKIHByaXZhdGU6CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNw
cAppbmRleCA3ZDkwYzQxZTg3NGI0NWJjMjZkOGViN2I4YWM2NWM1YjU5OGEyMDA1Li45MWUxMDU2
NGVjYWQ4NTI1YjcyNzE1ZDlhMWI3ZTA2YWUzOTZjYzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKQEAgLTIz
Miw4ICsyMzIsOCBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6ZGlkRmluaXNoTGF1bmNoaW5n
KFByb2Nlc3NMYXVuY2hlciosIENvcmVJUEM6OkNvbm5lY3RpbwogICAgIG1fbnVtUGVuZGluZ0Nv
bm5lY3Rpb25SZXF1ZXN0cyA9IDA7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKFdlYkNv
bnRleHQ6OmFwcGxpY2F0aW9uSXNPY2NsdWRlZCgpICYmIFdlYkNvbnRleHQ6OnByb2Nlc3NTdXBw
cmVzc2lvbkVuYWJsZWRGb3JHbG9iYWxDaGlsZFByb2Nlc3NlcygpKQotICAgICAgICBtX2Nvbm5l
Y3Rpb24tPnNlbmQoTWVzc2FnZXM6OlBsdWdpblByb2Nlc3M6OlNldEFwcGxpY2F0aW9uSXNPY2Ns
dWRlZCh0cnVlKSwgMCk7CisgICAgaWYgKFdlYkNvbnRleHQ6OmNhbkVuYWJsZVByb2Nlc3NTdXBw
cmVzc2lvbkZvckdsb2JhbENoaWxkUHJvY2Vzc2VzKCkpCisgICAgICAgIHNldFByb2Nlc3NTdXBw
cmVzc2lvbkVuYWJsZWQodHJ1ZSk7CiAjZW5kaWYKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAppbmRleCAxOTRkN2Ez
NzM3NTYzNjJiMWRiYWE0OWUzOWI0NmY5ZjU2ODAxNGZmLi4xMGM2OGRhNmJlMDlhOTA1ZWRmMjg1
ZmFmMjMzZDk5NmZjNDFkYTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuaApAQCAtODYsNyArODYsNyBAQCBwdWJsaWM6
CiAgICAgUGx1Z2luUHJvY2Vzczo6VHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1f
cHJvY2Vzc1R5cGU7IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2b2lkIHNldEFwcGxpY2F0
aW9uSXNPY2NsdWRlZChib29sKTsKKyAgICB2b2lkIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJs
ZWQoYm9vbCk7CiAKICAgICAvLyBSZXR1cm5zIHdoZXRoZXIgdGhlIHBsdWctaW4gbmVlZHMgdGhl
IGhlYXAgdG8gYmUgbWFya2VkIGV4ZWN1dGFibGUuCiAgICAgc3RhdGljIGJvb2wgcGx1Z2luTmVl
ZHNFeGVjdXRhYmxlSGVhcChjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJik7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc01hbmFnZXJN
YWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vz
c01hbmFnZXJNYWMubW0KaW5kZXggNmE5NzRkYWQ3YTgyOWQ4MTM4OTUzYzY0NzQ2YjIzOGQyOGI4
ZmFhOS4uNzcxY2Y3ODAxN2Y3MWFiODJmYWUwNTEzMjhiYzJmZDIzMjlmYjZlNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NNYW5h
Z2VyTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVn
aW5Qcm9jZXNzTWFuYWdlck1hYy5tbQpAQCAtMzIsMTEgKzMyLDExIEBACiAKIG5hbWVzcGFjZSBX
ZWJLaXQgewogCi12b2lkIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpzZXRBcHBsaWNhdGlvbklzT2Nj
bHVkZWQoYm9vbCBhcHBsaWNhdGlvbklzT2NjbHVkZWQpCit2b2lkIFBsdWdpblByb2Nlc3NNYW5h
Z2VyOjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgcHJvY2Vzc1N1cHByZXNzaW9u
RW5hYmxlZCkKIHsKICAgICBzaXplX3QgcHJvY2Vzc0NvdW50ID0gbV9wbHVnaW5Qcm9jZXNzZXMu
c2l6ZSgpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgcHJvY2Vzc0NvdW50OyArK2kpCi0g
ICAgICAgIG1fcGx1Z2luUHJvY2Vzc2VzW2ldLT5zZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYXBw
bGljYXRpb25Jc09jY2x1ZGVkKTsKKyAgICAgICAgbV9wbHVnaW5Qcm9jZXNzZXNbaV0tPnNldFBy
b2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQocHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbSBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KaW5kZXggYzA2
YzllMzVhYzUzNWFiZmNmZDcwMzkyNzFmM2RlNGUyMmRiNmJiYi4uN2M0ZWFkZWI0NTdiMzJlZjBk
YjZkM2JjYjVmZTk2NmMyMzk5ZTU5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCkBAIC0z
MTAsMTIgKzMxMCwxMiBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6YXBwbGljYXRpb25EaWRC
ZWNvbWVBY3RpdmUoKQogICAgIG1ha2VQbHVnaW5Qcm9jZXNzVGhlRnJvbnRQcm9jZXNzKCk7CiB9
CiAKLXZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpzZXRBcHBsaWNhdGlvbklzT2NjbHVkZWQoYm9v
bCBhcHBsaWNhdGlvbklzT2NjbHVkZWQpCit2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6c2V0UHJv
Y2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpCiB7
CiAgICAgaWYgKCFpc1ZhbGlkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIG1fY29ubmVjdGlv
bi0+c2VuZChNZXNzYWdlczo6UGx1Z2luUHJvY2Vzczo6U2V0QXBwbGljYXRpb25Jc09jY2x1ZGVk
KGFwcGxpY2F0aW9uSXNPY2NsdWRlZCksIDApOworICAgIG1fY29ubmVjdGlvbi0+c2VuZChNZXNz
YWdlczo6UGx1Z2luUHJvY2Vzczo6U2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChwcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKSwgMCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvU2hhcmVkV29y
a2VyUHJvY2Vzc01hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3Jr
ZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyLmgKaW5kZXggYzI1NTVlYTRlMmExNzRmNTYz
YTAyMDYzMWNjYTllMzY3NmYxNGQ0Yy4uMjk5MTMzODc5NDYwNWRmOWYzMDAzMmE3YzZhMjNkYjNk
M2RjMzQxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtl
cnMvU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlci5oCkBAIC01NCw3
ICs1NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlbW92ZVNoYXJlZFdvcmtlclByb2Nlc3NQcm94
eShTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkqKTsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICB2
b2lkIHNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZChib29sKTsKKyAgICB2b2lkIHNldFByb2Nlc3NT
dXBwcmVzc2lvbkVuYWJsZWQoYm9vbCk7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nl
c3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFy
ZWRXb3JrZXJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDAzYWZmZTViY2Y1Y2MxNDQ2NzgwNjAyN2Yx
N2U2MTk4YjhlNWIwOGUuLjQ4ZmU4NzE0ZWVjZmRmODJmMTQ3NThlZGQ4ZTYzOWY4MTUxMWY3Yzkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJl
ZFdvcmtlclByb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1No
YXJlZFdvcmtlcnMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTY2LDggKzE2Niw4
IEBAIHZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5OjpkaWRGaW5pc2hMYXVuY2hpbmcoUHJv
Y2Vzc0xhdW5jaGVyKiwgQ29yZUlQQzo6Q29uCiAgICAgbV9udW1QZW5kaW5nQ29ubmVjdGlvblJl
cXVlc3RzID0gMDsKIAogI2lmIFBMQVRGT1JNKE1BQykKLSAgICBpZiAoV2ViQ29udGV4dDo6YXBw
bGljYXRpb25Jc09jY2x1ZGVkKCkgJiYgV2ViQ29udGV4dDo6cHJvY2Vzc1N1cHByZXNzaW9uRW5h
YmxlZEZvckdsb2JhbENoaWxkUHJvY2Vzc2VzKCkpCi0gICAgICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZChNZXNzYWdlczo6U2hhcmVkV29ya2VyUHJvY2Vzczo6U2V0QXBwbGljYXRpb25Jc09jY2x1ZGVk
KHRydWUpLCAwKTsKKyAgICBpZiAoV2ViQ29udGV4dDo6Y2FuRW5hYmxlUHJvY2Vzc1N1cHByZXNz
aW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMoKSkKKyAgICAgICAgc2V0UHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZCh0cnVlKTsKICNlbmRpZgogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9TaGFyZWRXb3JrZXJQcm9jZXNzUHJveHkuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQ
cm94eS5oCmluZGV4IDZlOWYyMGE4NjRhNTJjNTU1Y2JiMDk5NDY5MmNjMjQ0MGExZDZjOGUuLmYy
NTQyZmM2ZTEyZTI0NGU0MjI3N2FlMDg1OTYyOGU0MjMyMmMwZGMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94
eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL1NoYXJlZFdv
cmtlclByb2Nlc3NQcm94eS5oCkBAIC01OSw3ICs1OSw3IEBAIHB1YmxpYzoKICAgICBib29sIGlz
VmFsaWQoKSBjb25zdCB7IHJldHVybiBtX2Nvbm5lY3Rpb247IH0KIAogI2lmIFBMQVRGT1JNKE1B
QykKLSAgICB2b2lkIHNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZChib29sKTsKKyAgICB2b2lkIHNl
dFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCk7CiAjZW5kaWYKIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL21hYy9TaGFy
ZWRXb3JrZXJQcm9jZXNzTWFuYWdlck1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9T
aGFyZWRXb3JrZXJzL21hYy9TaGFyZWRXb3JrZXJQcm9jZXNzTWFuYWdlck1hYy5tbQppbmRleCBl
NjM5MDdjZTZkNWUyOWM4OGU5ZDFiYzRmMjRjYzEzZjU0YzljNzVlLi44NWNhNGFhMjU1NTM2MGRm
MGNlNWVlNDRhMWFiMWMwMTg5N2E5NTViIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvU2hhcmVkV29ya2Vycy9tYWMvU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXJNYWMubW0K
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1NoYXJlZFdvcmtlcnMvbWFjL1NoYXJlZFdv
cmtlclByb2Nlc3NNYW5hZ2VyTWFjLm1tCkBAIC0zMiwxMSArMzIsMTEgQEAKIAogbmFtZXNwYWNl
IFdlYktpdCB7CiAKLXZvaWQgU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXI6OnNldEFwcGxpY2F0
aW9uSXNPY2NsdWRlZChib29sIGFwcGxpY2F0aW9uSXNPY2NsdWRlZCkKK3ZvaWQgU2hhcmVkV29y
a2VyUHJvY2Vzc01hbmFnZXI6OnNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCBwcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKQogewogICAgIHNpemVfdCBwcm9jZXNzQ291bnQgPSBtX3No
YXJlZFdvcmtlclByb2Nlc3Nlcy5zaXplKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBw
cm9jZXNzQ291bnQ7ICsraSkKLSAgICAgICAgbV9zaGFyZWRXb3JrZXJQcm9jZXNzZXNbaV0tPnNl
dEFwcGxpY2F0aW9uSXNPY2NsdWRlZChhcHBsaWNhdGlvbklzT2NjbHVkZWQpOworICAgICAgICBt
X3NoYXJlZFdvcmtlclByb2Nlc3Nlc1tpXS0+c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChw
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvU2hhcmVkV29ya2Vycy9tYWMvU2hh
cmVkV29ya2VyUHJvY2Vzc1Byb3h5TWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1No
YXJlZFdvcmtlcnMvbWFjL1NoYXJlZFdvcmtlclByb2Nlc3NQcm94eU1hYy5tbQppbmRleCA1YjNk
ZDQ2MzlkNDEyMjZkOWY3ZjAxZDlmZGFmODdkMGQwMmUwZjU1Li5mYWI0YWNkYzY2NWVhNTMxOGUz
N2YxMWQ3MTQ3NzMyOTNlZDhiZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvU2hhcmVkV29ya2Vycy9tYWMvU2hhcmVkV29ya2VyUHJvY2Vzc1Byb3h5TWFjLm1tCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9TaGFyZWRXb3JrZXJzL21hYy9TaGFyZWRXb3JrZXJQ
cm9jZXNzUHJveHlNYWMubW0KQEAgLTMyLDEyICszMiwxMiBAQAogCiBuYW1lc3BhY2UgV2ViS2l0
IHsKIAotdm9pZCBTaGFyZWRXb3JrZXJQcm9jZXNzUHJveHk6OnNldEFwcGxpY2F0aW9uSXNPY2Ns
dWRlZChib29sIGFwcGxpY2F0aW9uSXNPY2NsdWRlZCkKK3ZvaWQgU2hhcmVkV29ya2VyUHJvY2Vz
c1Byb3h5OjpzZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGJvb2wgcHJvY2Vzc1N1cHByZXNz
aW9uRW5hYmxlZCkKIHsKICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgbV9jb25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTaGFyZWRXb3JrZXJQcm9jZXNzOjpTZXRB
cHBsaWNhdGlvbklzT2NjbHVkZWQoYXBwbGljYXRpb25Jc09jY2x1ZGVkKSwgMCk7CisgICAgbV9j
b25uZWN0aW9uLT5zZW5kKE1lc3NhZ2VzOjpTaGFyZWRXb3JrZXJQcm9jZXNzOjpTZXRQcm9jZXNz
U3VwcHJlc3Npb25FbmFibGVkKHByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQpLCAwKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvV2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApp
bmRleCAzZjc1YzA4NTQzZTRiYzk1ZmU1NjRiMGY4NDFkMzk2OTBmODAwYzYxLi4zNzhjMzkxZDg0
MzVjMzRiYTZkY2QzMDc2MzdkNzVjYzU3ODJiNDc4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9X
ZWJDb250ZXh0LmgKQEAgLTI3Miw5ICsyNzIsMTAgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKE1B
QykKICAgICB2b2lkIHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCk7CiAgICAgYm9v
bCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCkgY29uc3QgeyByZXR1cm4gbV9wcm9jZXNzU3Vw
cHJlc3Npb25FbmFibGVkOyB9Ci0gICAgdm9pZCB1cGRhdGVDaGlsZFByb2Nlc3Nlc0FwcGxpY2F0
aW9uT2NjbHVzaW9uU3RhdGUoKTsKLSAgICBzdGF0aWMgYm9vbCBhcHBsaWNhdGlvbklzT2NjbHVk
ZWQoKTsKLSAgICBzdGF0aWMgYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yR2xvYmFs
Q2hpbGRQcm9jZXNzZXMoKTsKKyAgICBib29sIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZv
ck5ldHdvcmtQcm9jZXNzKCkgY29uc3Q7CisgICAgYm9vbCBjYW5FbmFibGVQcm9jZXNzU3VwcHJl
c3Npb25Gb3JXZWJQcm9jZXNzKGNvbnN0IFdlYlByb2Nlc3NQcm94eSopIGNvbnN0OworICAgIHN0
YXRpYyBib29sIGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVzc2lvbkZvckdsb2JhbENoaWxkUHJvY2Vz
c2VzKCk7CisgICAgdm9pZCB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZU9mQ2hpbGRQcm9j
ZXNzZXMoKTsKICNlbmRpZgogCiAgICAgc3RhdGljIHZvaWQgd2lsbFN0YXJ0VXNpbmdQcml2YXRl
QnJvd3NpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKaW5k
ZXggMjk0ZDU0YTljMzhmNzgxN2M5MWYwMjFjOWRjOTE4YTgwYzA4MjE2My4uZTMzZmIxOGVhM2Qy
MjJmY2VkZTQzNmFhMTgyNzljOWQ2ZDcxYzEyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5jcHAKQEAgLTg4MCw2ICs4ODAsNyBAQCB2b2lkIFdlYlBhZ2VQcm94eTo6
dmlld1N0YXRlRGlkQ2hhbmdlKFZpZXdTdGF0ZUZsYWdzIGZsYWdzKQogICAgICAgICBib29sIGlz
VmlzaWJsZSA9IG1fcGFnZUNsaWVudC0+aXNWaWV3VmlzaWJsZSgpOwogICAgICAgICBpZiAoaXNW
aXNpYmxlICE9IG1faXNWaXNpYmxlKSB7CiAgICAgICAgICAgICBtX2lzVmlzaWJsZSA9IGlzVmlz
aWJsZTsKKyAgICAgICAgICAgIG1fcHJvY2Vzcy0+cGFnZVZpc2liaWxpdHlDaGFuZ2VkKHRoaXMp
OwogICAgICAgICAgICAgbV9kcmF3aW5nQXJlYS0+dmlzaWJpbGl0eURpZENoYW5nZSgpOwogCiAg
ICAgICAgICAgICBpZiAoIW1faXNWaXNpYmxlKSB7CkBAIC0xODk4LDYgKzE4OTksOCBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6cHJlZmVyZW5jZXNEaWRDaGFuZ2UoKQogICAgICAgICBpbnNwZWN0b3Io
KS0+ZW5hYmxlUmVtb3RlSW5zcGVjdGlvbigpOwogI2VuZGlmCiAKKyAgICBtX3Byb2Nlc3MtPnBh
Z2VQcmVmZXJlbmNlc0NoYW5nZWQodGhpcyk7CisKICAgICAvLyBGSVhNRTogSXQgcHJvYmFibHkg
bWFrZXMgbW9yZSBzZW5zZSB0byBzZW5kIGluZGl2aWR1YWwgcHJlZmVyZW5jZSBjaGFuZ2VzLgog
ICAgIC8vIEhvd2V2ZXIsIFdlYktpdFRlc3RSdW5uZXIgZGVwZW5kcyBvbiBnZXR0aW5nIGEgcHJl
ZmVyZW5jZSBjaGFuZ2Ugbm90aWZpY2F0aW9uCiAgICAgLy8gZXZlbiBpZiBub3RoaW5nIGNoYW5n
ZWQgaW4gVUkgcHJvY2Vzcywgc28gdGhhdCBvdmVycmlkZXMgZ2V0IHJlbW92ZWQuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwCmluZGV4IDdjMjA2NWNlYmUx
OGUzMzg3MjVmYmNhNjI0Y2NlMGU4NWNjYzNjNzQuLjA2ODhjN2ZjNWQzZTA5NjE0OTA2Y2RjZTZl
OTRmZGJlYWYzMjU5NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQ
cm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuY3BwCkBAIC0xMDUsNiArMTA1LDkgQEAgV2ViUHJvY2Vzc1Byb3h5OjpXZWJQcm9jZXNz
UHJveHkoUGFzc1JlZlB0cjxXZWJDb250ZXh0PiBjb250ZXh0KQogI2lmIEVOQUJMRShDVVNUT01f
UFJPVE9DT0xTKQogICAgICwgbV9jdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSh0aGlzKQogI2Vu
ZGlmCisjaWYgUExBVEZPUk0oTUFDKQorICAgICwgbV9wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVk
KGZhbHNlKQorI2VuZGlmCiB7CiAgICAgY29ubmVjdCgpOwogfQpAQCAtMTcxLDYgKzE3NCwxMSBA
QCBQYXNzUmVmUHRyPFdlYlBhZ2VQcm94eT4gV2ViUHJvY2Vzc1Byb3h5OjpjcmVhdGVXZWJQYWdl
KFBhZ2VDbGllbnQqIHBhZ2VDbGllbnQsCiAgICAgUmVmUHRyPFdlYlBhZ2VQcm94eT4gd2ViUGFn
ZSA9IFdlYlBhZ2VQcm94eTo6Y3JlYXRlKHBhZ2VDbGllbnQsIHRoaXMsIHBhZ2VHcm91cCwgcGFn
ZUlEKTsKICAgICBtX3BhZ2VNYXAuc2V0KHBhZ2VJRCwgd2ViUGFnZS5nZXQoKSk7CiAgICAgZ2xv
YmFsUGFnZU1hcCgpLnNldChwYWdlSUQsIHdlYlBhZ2UuZ2V0KCkpOworI2lmIFBMQVRGT1JNKE1B
QykKKyAgICBpZiAocGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZSh3ZWJQYWdlLmdldCgpKSkKKyAg
ICAgICAgbV9wcm9jZXNzU3VwcHJlc3NpYmxlUGFnZXMuYWRkKHBhZ2VJRCk7CisgICAgdXBkYXRl
UHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsKKyNlbmRpZgogICAgIHJldHVybiB3ZWJQYWdlLnJl
bGVhc2UoKTsKIH0KIApAQCAtMTc4LDEzICsxODYsMjEgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6
OmFkZEV4aXN0aW5nV2ViUGFnZShXZWJQYWdlUHJveHkqIHdlYlBhZ2UsIHVpbnQ2NF90IHBhZ2VJ
RCkKIHsKICAgICBtX3BhZ2VNYXAuc2V0KHBhZ2VJRCwgd2ViUGFnZSk7CiAgICAgZ2xvYmFsUGFn
ZU1hcCgpLnNldChwYWdlSUQsIHdlYlBhZ2UpOworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAo
cGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZSh3ZWJQYWdlKSk7CisgICAgICAgIG1fcHJvY2Vzc1N1
cHByZXNzaWJsZVBhZ2VzLmFkZChwYWdlSUQpOworICAgIHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lv
blN0YXRlKCk7CisjZW5kaWYKIH0KIAogdm9pZCBXZWJQcm9jZXNzUHJveHk6OnJlbW92ZVdlYlBh
Z2UodWludDY0X3QgcGFnZUlEKQogewogICAgIG1fcGFnZU1hcC5yZW1vdmUocGFnZUlEKTsKICAg
ICBnbG9iYWxQYWdlTWFwKCkucmVtb3ZlKHBhZ2VJRCk7Ci0KKyNpZiBQTEFURk9STShNQUMpCisg
ICAgbV9wcm9jZXNzU3VwcHJlc3NpYmxlUGFnZXMucmVtb3ZlKHBhZ2VJRCk7CisgICAgdXBkYXRl
UHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsKKyNlbmRpZgogfQogCiBWZWN0b3I8V2ViUGFnZVBy
b3h5Kj4gV2ViUHJvY2Vzc1Byb3h5OjpwYWdlcygpIGNvbnN0CkBAIC01MjcsOCArNTQzLDcgQEAg
dm9pZCBXZWJQcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyhQcm9jZXNzTGF1bmNoZXIq
IGxhdW5jaGVyLCBDb3JlSVBDOjpDb24KICAgICBtX2NvbnRleHQtPnByb2Nlc3NEaWRGaW5pc2hM
YXVuY2hpbmcodGhpcyk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgaWYgKFdlYkNvbnRleHQ6
OmFwcGxpY2F0aW9uSXNPY2NsdWRlZCgpICYmIG1fY29udGV4dC0+cHJvY2Vzc1N1cHByZXNzaW9u
RW5hYmxlZCgpKQotICAgICAgICBjb25uZWN0aW9uKCktPnNlbmQoTWVzc2FnZXM6OldlYlByb2Nl
c3M6OlNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZCh0cnVlKSwgMCk7CisgICAgdXBkYXRlUHJvY2Vz
c1N1cHByZXNzaW9uU3RhdGUoKTsKICNlbmRpZgogfQogCkBAIC02NzIsNCArNjg3LDMwIEBAIHZv
aWQgV2ViUHJvY2Vzc1Byb3h5OjpkaWRVcGRhdGVIaXN0b3J5VGl0bGUodWludDY0X3QgcGFnZUlE
LCBjb25zdCBTdHJpbmcmIHRpdGxlCiAgICAgbV9jb250ZXh0LT5oaXN0b3J5Q2xpZW50KCkuZGlk
VXBkYXRlSGlzdG9yeVRpdGxlKG1fY29udGV4dC5nZXQoKSwgcGFnZSwgdGl0bGUsIHVybCwgZnJh
bWUpOwogfQogCit2b2lkIFdlYlByb2Nlc3NQcm94eTo6cGFnZVZpc2liaWxpdHlDaGFuZ2VkKFdl
YktpdDo6V2ViUGFnZVByb3h5ICpwYWdlKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAgICBpZiAo
cGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZShwYWdlKSkKKyAgICAgICAgbV9wcm9jZXNzU3VwcHJl
c3NpYmxlUGFnZXMuYWRkKHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBlbHNlCisgICAgICAgIG1fcHJv
Y2Vzc1N1cHByZXNzaWJsZVBhZ2VzLnJlbW92ZShwYWdlLT5wYWdlSUQoKSk7CisgICAgdXBkYXRl
UHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKHBhZ2Up
OworI2VuZGlmCit9CisKK3ZvaWQgV2ViUHJvY2Vzc1Byb3h5OjpwYWdlUHJlZmVyZW5jZXNDaGFu
Z2VkKFdlYktpdDo6V2ViUGFnZVByb3h5ICpwYWdlKQoreworI2lmIFBMQVRGT1JNKE1BQykKKyAg
ICBpZiAocGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZShwYWdlKSkKKyAgICAgICAgbV9wcm9jZXNz
U3VwcHJlc3NpYmxlUGFnZXMuYWRkKHBhZ2UtPnBhZ2VJRCgpKTsKKyAgICBlbHNlCisgICAgICAg
IG1fcHJvY2Vzc1N1cHByZXNzaWJsZVBhZ2VzLnJlbW92ZShwYWdlLT5wYWdlSUQoKSk7CisgICAg
dXBkYXRlUHJvY2Vzc1N1cHByZXNzaW9uU3RhdGUoKTsKKyNlbHNlCisgICAgVU5VU0VEX1BBUkFN
KHBhZ2UpOworI2VuZGlmCit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5oCmluZGV4IGMxMDNhNTA5NmZlMmMzZjU5NjYz
ZDJjMzBkNTE5OWNhYTc2ZjBkZjguLjg0OWRjZGQ3Zjk0MDdlNTJjNWQ4MWI2NjFiZGE5OTZjZmMy
YWFhMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJv
eHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKQEAg
LTExMyw2ICsxMTMsMTUgQEAgcHVibGljOgogCiAgICAgRG93bmxvYWRQcm94eSogY3JlYXRlRG93
bmxvYWRQcm94eSgpOwogCisgICAgdm9pZCBwYWdlVmlzaWJpbGl0eUNoYW5nZWQoV2ViUGFnZVBy
b3h5Kik7CisgICAgdm9pZCBwYWdlUHJlZmVyZW5jZXNDaGFuZ2VkKFdlYlBhZ2VQcm94eSopOwor
CisjaWYgUExBVEZPUk0oTUFDKQorICAgIGJvb2wgYWxsUGFnZXNBcmVQcm9jZXNzU3VwcHJlc3Np
YmxlKCkgY29uc3Q7CisgICAgc3RhdGljIGJvb2wgcGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZShX
ZWJQYWdlUHJveHkqKTsKKyAgICB2b2lkIHVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7
CisjZW5kaWYKKwogcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJQcm9jZXNzUHJveHkoUGFzc1Jl
ZlB0cjxXZWJDb250ZXh0Pik7CiAKQEAgLTE5Nyw2ICsyMDYsMTEgQEAgcHJpdmF0ZToKICNpZiBF
TkFCTEUoQ1VTVE9NX1BST1RPQ09MUykKICAgICBDdXN0b21Qcm90b2NvbE1hbmFnZXJQcm94eSBt
X2N1c3RvbVByb3RvY29sTWFuYWdlclByb3h5OwogI2VuZGlmCisKKyNpZiBQTEFURk9STShNQUMp
CisgICAgSGFzaFNldDx1aW50NjRfdD4gbV9wcm9jZXNzU3VwcHJlc3NpYmxlUGFnZXM7CisgICAg
Ym9vbCBtX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQ7CisjZW5kaWYKIH07CiAgICAgCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9t
YWMvV2ViQ29udGV4dE1hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViQ29u
dGV4dE1hYy5tbQppbmRleCA4YjA1OGE5YWUyZGUyMzc3ODQ1YjAwNGI3NjdkOTdmZjVmMzRjNWE1
Li4wNjNkMDRmMGViMTE3NTA5YmJjNGVlYjUwM2YwNDhjZjU3YjJiMjgwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYkNvbnRleHRNYWMubW0KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJDb250ZXh0TWFjLm1tCkBAIC02Nyw3ICs2Nyw3IEBA
IE5TU3RyaW5nICpTY2hlbWVGb3JDdXN0b21Qcm90b2NvbFVucmVnaXN0ZXJlZE5vdGlmaWNhdGlv
bk5hbWUgPSBAIldlYktpdFNjaGVtZUZvCiAKIHN0YXRpYyBib29sIHNfYXBwbGljYXRpb25Jc09j
Y2x1ZGVkID0gZmFsc2U7CiBzdGF0aWMgYm9vbCBzX29jY2x1c2lvbk5vdGlmaWNhdGlvbkhhbmRs
ZXJzUmVnaXN0ZXJlZCA9IGZhbHNlOwotc3RhdGljIGJvb2wgc19wcm9jZXNzU3VwcHJlc3Npb25F
bmFibGVkRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMgPSB0cnVlOworc3RhdGljIGJvb2wgc19wcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yQWxsQ29udGV4dHMgPSB0cnVlOwogCiBzdGF0aWMgdm9p
ZCByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkKIHsKQEAgLTg1LDE4ICs4NSwxOCBAQCBz
dGF0aWMgdm9pZCByZWdpc3RlclVzZXJEZWZhdWx0c0lmTmVlZGVkKCkKICAgICBbW05TVXNlckRl
ZmF1bHRzIHN0YW5kYXJkVXNlckRlZmF1bHRzXSByZWdpc3RlckRlZmF1bHRzOnJlZ2lzdHJhdGlv
bkRpY3Rpb25hcnldOwogfQogCi1zdGF0aWMgdm9pZCB1cGRhdGVHbG9iYWxDaGlsZFByb2Nlc3Nl
c0FwcGxpY2F0aW9uT2NjbHVzaW9uU3RhdGUoKQorc3RhdGljIHZvaWQgdXBkYXRlUHJvY2Vzc1N1
cHByZXNzaW9uU3RhdGVPZkdsb2JhbENoaWxkUHJvY2Vzc2VzKCkKIHsKICAgICAvLyBUaGUgcGxh
biBpcyB0byBoYXZlIGFsbCBjaGlsZCBwcm9jZXNzZXMgYmVjb21lIGNvbnRleHQgc3BlY2lmaWMu
ICBUaGlzIGZ1bmN0aW9uCiAgICAgLy8gY2FuIGJlIHJlbW92ZWQgb25jZSB0aGF0IGlzIGNvbXBs
ZXRlLgogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykgfHwgRU5BQkxFKFNIQVJFRF9XT1JLRVJf
UFJPQ0VTUykKLSAgICBib29sIGlzT2NjbHVkZWRGb3JHbG9iYWxDaGlsZFByb2Nlc3NlcyA9IHNf
cHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEZvckdsb2JhbENoaWxkUHJvY2Vzc2VzICYmIHNfYXBw
bGljYXRpb25Jc09jY2x1ZGVkOworICAgIGJvb2wgY2FuRW5hYmxlID0gV2ViQ29udGV4dDo6Y2Fu
RW5hYmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMoKTsKICNlbmRp
ZgogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLSAgICBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6
c2hhcmVkKCkuc2V0QXBwbGljYXRpb25Jc09jY2x1ZGVkKGlzT2NjbHVkZWRGb3JHbG9iYWxDaGls
ZFByb2Nlc3Nlcyk7CisgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNoYXJlZCgpLnNldFByb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWQoY2FuRW5hYmxlKTsKICNlbmRpZgogI2lmIEVOQUJMRShTSEFS
RURfV09SS0VSX1BST0NFU1MpCi0gICAgU2hhcmVkV29ya2VyUHJvY2Vzc01hbmFnZXI6OnNoYXJl
ZCgpLnNldEFwcGxpY2F0aW9uSXNPY2NsdWRlZChpc09jY2x1ZGVkRm9yR2xvYmFsQ2hpbGRQcm9j
ZXNzZXMpOworICAgIFNoYXJlZFdvcmtlclByb2Nlc3NNYW5hZ2VyOjpzaGFyZWQoKS5zZXRQcm9j
ZXNzU3VwcHJlc3Npb25FbmFibGVkKGNhbkVuYWJsZSk7CiAjZW5kaWYKIH0KIApAQCAtMTA2LDEx
ICsxMDYsMTEgQEAgc3RhdGljIHZvaWQgYXBwbGljYXRpb25PY2NsdXNpb25TdGF0ZUNoYW5nZWQo
KQogICAgIGNvbnN0IFZlY3RvcjxXZWJDb250ZXh0Kj4mIGNvbnRleHRzID0gV2ViQ29udGV4dDo6
YWxsQ29udGV4dHMoKTsKICAgICBmb3IgKHNpemVfdCBpID0gMCwgY291bnQgPSBjb250ZXh0cy5z
aXplKCk7IGkgPCBjb3VudDsgKytpKSB7CiAgICAgICAgIGlmIChjb250ZXh0c1tpXS0+cHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZCgpKQotICAgICAgICAgICAgY29udGV4dHNbaV0tPnVwZGF0ZUNo
aWxkUHJvY2Vzc2VzQXBwbGljYXRpb25PY2NsdXNpb25TdGF0ZSgpOworICAgICAgICAgICAgY29u
dGV4dHNbaV0tPnVwZGF0ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlT2ZDaGlsZFByb2Nlc3Nlcygp
OwogICAgIH0KIAotICAgIGlmIChzX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWRGb3JHbG9iYWxD
aGlsZFByb2Nlc3NlcykKLSAgICAgICAgdXBkYXRlR2xvYmFsQ2hpbGRQcm9jZXNzZXNBcHBsaWNh
dGlvbk9jY2x1c2lvblN0YXRlKCk7CisgICAgaWYgKHNfcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxl
ZEZvckFsbENvbnRleHRzKQorICAgICAgICB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZU9m
R2xvYmFsQ2hpbGRQcm9jZXNzZXMoKTsKIH0KIAogc3RhdGljIHZvaWQgYXBwbGljYXRpb25CZWNh
bWVWaXNpYmxlKHVpbnQzMl90LCB2b2lkKiwgdWludDMyX3QsIHZvaWQqLCB1aW50MzJfdCkKQEAg
LTE2MSwxMCArMTYxLDYgQEAgc3RhdGljIHZvaWQgZW5hYmxlT2NjbHVzaW9uTm90aWZpY2F0aW9u
cygpCiAgICAgaWYgKHNfb2NjbHVzaW9uTm90aWZpY2F0aW9uSGFuZGxlcnNSZWdpc3RlcmVkKQog
ICAgICAgICByZXR1cm47CiAKLSAgICBzdGF0aWMgYm9vbCBzaG91bGRPbWl0UHJvY2Vzc1N1cHBy
ZXNzaW9uID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktl
eTpAIldlYktpdDJPbWl0UHJvY2Vzc1N1cHByZXNzaW9uIl07Ci0gICAgaWYgKHNob3VsZE9taXRQ
cm9jZXNzU3VwcHJlc3Npb24pCi0gICAgICAgIHJldHVybjsKLQogICAgIHNfb2NjbHVzaW9uTm90
aWZpY2F0aW9uSGFuZGxlcnNSZWdpc3RlcmVkID0gdHJ1ZTsKICAgICByZWdpc3Rlck9jY2x1c2lv
bk5vdGlmaWNhdGlvbkhhbmRsZXJzKCk7CiB9CkBAIC0xNzgsMjYgKzE3NCw2IEBAIHN0YXRpYyB2
b2lkIGRpc2FibGVPY2NsdXNpb25Ob3RpZmljYXRpb25zKCkKICAgICB1bnJlZ2lzdGVyT2NjbHVz
aW9uTm90aWZpY2F0aW9uSGFuZGxlcnMoKTsKIH0KIAotc3RhdGljIHZvaWQgZW5hYmxlUHJvY2Vz
c1N1cHByZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMoKQotewotICAgIGlmIChzX3Byb2Nl
c3NTdXBwcmVzc2lvbkVuYWJsZWRGb3JHbG9iYWxDaGlsZFByb2Nlc3NlcykKLSAgICAgICAgcmV0
dXJuOwotCi0gICAgc19wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yR2xvYmFsQ2hpbGRQcm9j
ZXNzZXMgPSB0cnVlOwotICAgIGlmIChzX2FwcGxpY2F0aW9uSXNPY2NsdWRlZCkKLSAgICAgICAg
dXBkYXRlR2xvYmFsQ2hpbGRQcm9jZXNzZXNBcHBsaWNhdGlvbk9jY2x1c2lvblN0YXRlKCk7Ci19
Ci0KLXN0YXRpYyB2b2lkIGRpc2FibGVQcm9jZXNzU3VwcHJlc3Npb25Gb3JHbG9iYWxDaGlsZFBy
b2Nlc3NlcygpCi17Ci0gICAgaWYgKCFzX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWRGb3JHbG9i
YWxDaGlsZFByb2Nlc3NlcykKLSAgICAgICAgcmV0dXJuOwotCi0gICAgc19wcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMgPSBmYWxzZTsKLSAgICBpZiAoc19h
cHBsaWNhdGlvbklzT2NjbHVkZWQpCi0gICAgICAgIHVwZGF0ZUdsb2JhbENoaWxkUHJvY2Vzc2Vz
QXBwbGljYXRpb25PY2NsdXNpb25TdGF0ZSgpOwotfQotCiBzdGF0aWMgYm9vbCBwcm9jZXNzU3Vw
cHJlc3Npb25Jc0VuYWJsZWRGb3JBbnlDb250ZXh0KCkKIHsKICAgICBib29sIHJlc3VsdCA9IGZh
bHNlOwpAQCAtMjI0LDYgKzIwMCwxMiBAQCBzdGF0aWMgYm9vbCBwcm9jZXNzU3VwcHJlc3Npb25J
c0VuYWJsZWRGb3JBbGxDb250ZXh0cygpCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAorc3RhdGlj
IGJvb2wgb21pdFByb2Nlc3NTdXBwcmVzc2lvbigpCit7CisgICAgc3RhdGljIGJvb2wgcmVzdWx0
ID0gW1tOU1VzZXJEZWZhdWx0cyBzdGFuZGFyZFVzZXJEZWZhdWx0c10gYm9vbEZvcktleTpAIldl
YktpdDJPbWl0UHJvY2Vzc1N1cHByZXNzaW9uIl07CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwog
dm9pZCBXZWJDb250ZXh0OjpwbGF0Zm9ybUluaXRpYWxpemUoKQogewogICAgIHJlZ2lzdGVyVXNl
ckRlZmF1bHRzSWZOZWVkZWQoKTsKQEAgLTQ0OCw0MSArNDMwLDUwIEBAIHZvaWQgV2ViQ29udGV4
dDo6c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGVuYWJsZWQpCiAgICAgcHJvY2Vz
c1N1cHByZXNzaW9uRW5hYmxlZENoYW5nZWQoKTsKIH0KIAotdm9pZCBXZWJDb250ZXh0Ojp1cGRh
dGVDaGlsZFByb2Nlc3Nlc0FwcGxpY2F0aW9uT2NjbHVzaW9uU3RhdGUoKQordm9pZCBXZWJDb250
ZXh0Ojp1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZU9mQ2hpbGRQcm9jZXNzZXMoKQogewot
ICAgIGJvb2wgaXNPY2NsdWRlZEZvckNoaWxkUHJvY2Vzc2VzID0gbV9wcm9jZXNzU3VwcHJlc3Np
b25FbmFibGVkICYmIHNfYXBwbGljYXRpb25Jc09jY2x1ZGVkOwotCiAjaWYgRU5BQkxFKE5FVFdP
UktfUFJPQ0VTUykKKyAgICBib29sIGNhbkVuYWJsZSA9IGNhbkVuYWJsZVByb2Nlc3NTdXBwcmVz
c2lvbkZvck5ldHdvcmtQcm9jZXNzKCk7CiAgICAgaWYgKHVzZXNOZXR3b3JrUHJvY2VzcygpICYm
IG5ldHdvcmtQcm9jZXNzKCkpCi0gICAgICAgIG5ldHdvcmtQcm9jZXNzKCktPnNldEFwcGxpY2F0
aW9uSXNPY2NsdWRlZChpc09jY2x1ZGVkRm9yQ2hpbGRQcm9jZXNzZXMpOworICAgICAgICBuZXR3
b3JrUHJvY2VzcygpLT5zZXRQcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKGNhbkVuYWJsZSk7CiAj
ZW5kaWYKLSAgICBzZW5kVG9BbGxQcm9jZXNzZXMoTWVzc2FnZXM6OldlYlByb2Nlc3M6OlNldEFw
cGxpY2F0aW9uSXNPY2NsdWRlZChpc09jY2x1ZGVkRm9yQ2hpbGRQcm9jZXNzZXMpKTsKKyAgICBz
aXplX3QgcHJvY2Vzc0NvdW50ID0gbV9wcm9jZXNzZXMuc2l6ZSgpOworICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgcHJvY2Vzc0NvdW50OyArK2kpIHsKKyAgICAgICAgV2ViUHJvY2Vzc1Byb3h5
KiBwcm9jZXNzID0gbV9wcm9jZXNzZXNbaV0uZ2V0KCk7CisgICAgICAgIHByb2Nlc3MtPnVwZGF0
ZVByb2Nlc3NTdXBwcmVzc2lvblN0YXRlKCk7CisgICAgfQogfQogCi1ib29sIFdlYkNvbnRleHQ6
OmFwcGxpY2F0aW9uSXNPY2NsdWRlZCgpCitib29sIFdlYkNvbnRleHQ6OmNhbkVuYWJsZVByb2Nl
c3NTdXBwcmVzc2lvbkZvck5ldHdvcmtQcm9jZXNzKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc19h
cHBsaWNhdGlvbklzT2NjbHVkZWQ7CisgICAgcmV0dXJuIHNfYXBwbGljYXRpb25Jc09jY2x1ZGVk
ICYmIG1fcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCAmJiAhb21pdFByb2Nlc3NTdXBwcmVzc2lv
bigpOwogfQogCi1ib29sIFdlYkNvbnRleHQ6OnByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWRGb3JH
bG9iYWxDaGlsZFByb2Nlc3NlcygpCitib29sIFdlYkNvbnRleHQ6OmNhbkVuYWJsZVByb2Nlc3NT
dXBwcmVzc2lvbkZvcldlYlByb2Nlc3MoY29uc3QgV2ViS2l0OjpXZWJQcm9jZXNzUHJveHkgKndl
YlByb2Nlc3MpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIHNfcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxl
ZEZvckdsb2JhbENoaWxkUHJvY2Vzc2VzOworICAgIHJldHVybiAoc19hcHBsaWNhdGlvbklzT2Nj
bHVkZWQgfHwgd2ViUHJvY2Vzcy0+YWxsUGFnZXNBcmVQcm9jZXNzU3VwcHJlc3NpYmxlKCkpCisg
ICAgICAgICAgICYmIG1fcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCAmJiAhb21pdFByb2Nlc3NT
dXBwcmVzc2lvbigpOworfQorCitib29sIFdlYkNvbnRleHQ6OmNhbkVuYWJsZVByb2Nlc3NTdXBw
cmVzc2lvbkZvckdsb2JhbENoaWxkUHJvY2Vzc2VzKCkKK3sKKyAgICByZXR1cm4gc19hcHBsaWNh
dGlvbklzT2NjbHVkZWQgJiYgc19wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yQWxsQ29udGV4
dHMgJiYgIW9taXRQcm9jZXNzU3VwcHJlc3Npb24oKTsKIH0KIAogdm9pZCBXZWJDb250ZXh0Ojpw
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkQ2hhbmdlZCgpCiB7Ci0gICAgaWYgKHNfYXBwbGljYXRp
b25Jc09jY2x1ZGVkKQotICAgICAgICB1cGRhdGVDaGlsZFByb2Nlc3Nlc0FwcGxpY2F0aW9uT2Nj
bHVzaW9uU3RhdGUoKTsKKyAgICB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZU9mQ2hpbGRQ
cm9jZXNzZXMoKTsKIAogICAgIGlmIChwcm9jZXNzU3VwcHJlc3Npb25Jc0VuYWJsZWRGb3JBbnlD
b250ZXh0KCkpCiAgICAgICAgIGVuYWJsZU9jY2x1c2lvbk5vdGlmaWNhdGlvbnMoKTsKICAgICBl
bHNlCiAgICAgICAgIGRpc2FibGVPY2NsdXNpb25Ob3RpZmljYXRpb25zKCk7CiAKLSAgICBpZiAo
cHJvY2Vzc1N1cHByZXNzaW9uSXNFbmFibGVkRm9yQWxsQ29udGV4dHMoKSkKLSAgICAgICAgZW5h
YmxlUHJvY2Vzc1N1cHByZXNzaW9uRm9yR2xvYmFsQ2hpbGRQcm9jZXNzZXMoKTsKLSAgICBlbHNl
Ci0gICAgICAgIGRpc2FibGVQcm9jZXNzU3VwcHJlc3Npb25Gb3JHbG9iYWxDaGlsZFByb2Nlc3Nl
cygpOworICAgIGJvb2wgbmV3UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZEZvckFsbENvbnRleHRz
ID0gcHJvY2Vzc1N1cHByZXNzaW9uSXNFbmFibGVkRm9yQWxsQ29udGV4dHMoKTsKKyAgICBpZiAo
c19wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkRm9yQWxsQ29udGV4dHMgIT0gbmV3UHJvY2Vzc1N1
cHByZXNzaW9uRW5hYmxlZEZvckFsbENvbnRleHRzKSB7CisgICAgICAgIHNfcHJvY2Vzc1N1cHBy
ZXNzaW9uRW5hYmxlZEZvckFsbENvbnRleHRzID0gbmV3UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxl
ZEZvckFsbENvbnRleHRzOworICAgICAgICB1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZU9m
R2xvYmFsQ2hpbGRQcm9jZXNzZXMoKTsKKyAgICB9CiB9CiAKIHZvaWQgV2ViQ29udGV4dDo6cmVn
aXN0ZXJOb3RpZmljYXRpb25PYnNlcnZlcnMoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL21hYy9XZWJQcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvbWFjL1dlYlByb2Nlc3NQcm94eU1hYy5tbQppbmRleCBjYzcwMWJmMmFmZDEzOGM4ZGU0
OWEwZDc1YmRiNzlhMDBlYzlhNzFlLi4yY2EwYjNmMmE5NjI5ZTczNjJiMjA3ZjNmMGU3ZDNjMjNk
MDQzZDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NQcm94eU1hYy5tbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYlByb2Nl
c3NQcm94eU1hYy5tbQpAQCAtMjYsNiArMjYsOSBAQAogI2ltcG9ydCAiY29uZmlnLmgiCiAjaW1w
b3J0ICJXZWJQcm9jZXNzUHJveHkuaCIKIAorI2ltcG9ydCAiV2ViQ29udGV4dC5oIgorI2ltcG9y
dCAiV2ViUGFnZUdyb3VwLmgiCisjaW1wb3J0ICJXZWJQcmVmZXJlbmNlcy5oIgogI2ltcG9ydCAi
V2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW1wb3J0ICJXS0Z1bGxLZXlib2FyZEFjY2Vzc1dhdGNo
ZXIuaCIKIApAQCAtNjEsNCArNjQsMjcgQEAgdm9pZCBXZWJQcm9jZXNzUHJveHk6OnBsYXRmb3Jt
R2V0TGF1bmNoT3B0aW9ucyhQcm9jZXNzTGF1bmNoZXI6OkxhdW5jaE9wdGlvbnMmIGwKICNlbmRp
ZgogfQogCitib29sIFdlYlByb2Nlc3NQcm94eTo6cGFnZUlzUHJvY2Vzc1N1cHByZXNzaWJsZShX
ZWJQYWdlUHJveHkqIHBhZ2UpCit7CisgICAgcmV0dXJuICFwYWdlLT5pc1ZpZXdWaXNpYmxlKCkg
JiYgcGFnZS0+cGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnBhZ2VWaXNpYmlsaXR5QmFzZWRQ
cm9jZXNzU3VwcHJlc3Npb25FbmFibGVkKCk7Cit9CisKK2Jvb2wgV2ViUHJvY2Vzc1Byb3h5Ojph
bGxQYWdlc0FyZVByb2Nlc3NTdXBwcmVzc2libGUoKSBjb25zdAoreworICAgIHJldHVybiAobV9w
cm9jZXNzU3VwcHJlc3NpYmxlUGFnZXMuc2l6ZSgpID09IG1fcGFnZU1hcC5zaXplKCkpICYmICFt
X3Byb2Nlc3NTdXBwcmVzc2libGVQYWdlcy5pc0VtcHR5KCk7Cit9CisKK3ZvaWQgV2ViUHJvY2Vz
c1Byb3h5Ojp1cGRhdGVQcm9jZXNzU3VwcHJlc3Npb25TdGF0ZSgpCit7CisgICAgaWYgKCFpc1Zh
bGlkKCkpCisgICAgICAgIHJldHVybjsKKworICAgIGJvb2wgY2FuRW5hYmxlID0gbV9jb250ZXh0
LT5jYW5FbmFibGVQcm9jZXNzU3VwcHJlc3Npb25Gb3JXZWJQcm9jZXNzKHRoaXMpOworICAgIGlm
IChtX3Byb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQgPT0gY2FuRW5hYmxlKQorICAgICAgICByZXR1
cm47CisgICAgbV9wcm9jZXNzU3VwcHJlc3Npb25FbmFibGVkID0gY2FuRW5hYmxlOworCisgICAg
Y29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJQcm9jZXNzOjpTZXRQcm9jZXNzU3VwcHJl
c3Npb25FbmFibGVkKG1fcHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZCksIDApOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUHJv
Y2Vzcy5tZXNzYWdlcy5pbgppbmRleCBhNzdlNmY2YmJlMDliMDY3ZGZiMzEzODIxMzljYTlmMTU5
NjliZDE0Li43YTcwYmI2NDg2M2UxNjM4ZGQ0YjQ1NjMxMDMxZmY3NWE4NmNhZDk1IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlByb2Nlc3MubWVzc2FnZXMuaW4KKysr
IGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC05
Niw2ICs5Niw2IEBAIG1lc3NhZ2VzIC0+IFdlYlByb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAg
IFBvc3RJbmplY3RlZEJ1bmRsZU1lc3NhZ2UoQ29yZUlQQzo6RGF0YVJlZmVyZW5jZSBtZXNzYWdl
RGF0YSk7CiAKICNpZiBQTEFURk9STShNQUMpCi0gICAgU2V0QXBwbGljYXRpb25Jc09jY2x1ZGVk
KGJvb2wgZmxhZyk7CisgICAgU2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29sIGZsYWcp
OwogI2VuZGlmCiB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>