<?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>116578</bug_id>
          
          <creation_ts>2013-05-21 14:23:06 -0700</creation_ts>
          <short_desc>Provide an API to run sandboxed plug-ins outside of their sandbox</short_desc>
          <delta_ts>2013-05-22 09:53:34 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Plug-ins</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>
          <dependson>116609</dependson>
    
    <dependson>116612</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Anders Carlsson">andersca</reporter>
          <assigned_to name="Anders Carlsson">andersca</assigned_to>
          <cc>eflews.bot</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>892010</commentid>
    <comment_count>0</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-21 14:23:06 -0700</bug_when>
    <thetext>Provide an API to run sandboxed plug-ins outside of their sandbox</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892019</commentid>
    <comment_count>1</comment_count>
      <attachid>202472</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-21 14:36:18 -0700</bug_when>
    <thetext>Created attachment 202472
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892022</commentid>
    <comment_count>2</comment_count>
      <attachid>202472</attachid>
    <who name="EFL EWS Bot">eflews.bot</who>
    <bug_when>2013-05-21 14:45:49 -0700</bug_when>
    <thetext>Comment on attachment 202472
Patch

Attachment 202472 did not pass efl-wk2-ews (efl-wk2):
Output: http://webkit-queues.appspot.com/results/336345</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892024</commentid>
    <comment_count>3</comment_count>
      <attachid>202472</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2013-05-21 14:56:41 -0700</bug_when>
    <thetext>Comment on attachment 202472
Patch

Attachment 202472 did not pass qt-wk2-ews (qt-wk2):
Output: http://webkit-queues.appspot.com/results/491941</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892036</commentid>
    <comment_count>4</comment_count>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2013-05-21 15:53:55 -0700</bug_when>
    <thetext>Committed r150484: &lt;http://trac.webkit.org/changeset/150484&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>892375</commentid>
    <comment_count>5</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2013-05-22 09:53:34 -0700</bug_when>
    <thetext>&lt;rdar://problem/13822856&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>202472</attachid>
            <date>2013-05-21 14:36:18 -0700</date>
            <delta_ts>2013-05-21 15:52:08 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-116578-20130521143506.patch</filename>
            <type>text/plain</type>
            <size>70746</size>
            <attacher name="Anders Carlsson">andersca</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTUwNDUxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggZDYwZGZiN2YwOGUzZjMz
ZjFjNjVmNWU5ZTIxNWUzNDY2MmM0YjRlNS4uYjkyNWQwNTViYjcwMWQ3Nzg1MWExYWNjZmU1OWU5
YTZjZmNmMDllZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1MCBAQAorMjAxMy0wNS0yMSAgQW5k
ZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBwbGUuY29tPgorCisgICAgICAgIFByb3ZpZGUgYW4g
QVBJIHRvIHJ1biBzYW5kYm94ZWQgcGx1Zy1pbnMgb3V0c2lkZSBvZiB0aGVpciBzYW5kYm94Cisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMTY1NzgKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFBsYXRmb3Jt
L0NvcmVJUEMvSGFuZGxlTWVzc2FnZS5oOgorICAgICAgICAoQ29yZUlQQzo6Y2FsbE1lbWJlckZ1
bmN0aW9uKToKKyAgICAgICAgQWRkIG5ldyBvdmVybG9hZC4KKworICAgICAgICAqIFBsdWdpblBy
b2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNzTWFpbi5tbToK
KyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01haW5EZWxlZ2F0ZTo6Z2V0RXh0cmFJbml0
aWFsaXphdGlvbkRhdGEpOgorICAgICAgICBIYW5kbGUgImRpc2FibGUtc2FuZGJveCIuCisKKyAg
ICAgICAgKiBQbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2Vy
dmljZUVudHJ5UG9pbnQubW06CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblNlcnZpY2VJbml0aWFs
aXplckRlbGVnYXRlOjpnZXRFeHRyYUluaXRpYWxpemF0aW9uRGF0YSk6CisgICAgICAgIEhhbmRs
ZSAiZGlzYWJsZS1zYW5kYm94Ii4KKyAgICAgICAgCisgICAgICAgICogUGx1Z2luUHJvY2Vzcy9Q
bHVnaW5Qcm9jZXNzLmg6CisgICAgICAgIE1vdmUgVHlwZSB0byBQbHVnaW5Qcm9jZXNzQXR0cmli
dXRlcyBhbmQgcmVtb3ZlIGhhc2ggdHJhaXRzIGZvciB0eXBlLgorICAgICAgICAKKyAgICAgICAg
KiBQbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tOgorICAgICAgICAoV2ViS2l0
OjpQbHVnaW5Qcm9jZXNzOjpwbGF0Zm9ybUluaXRpYWxpemVQbHVnaW5Qcm9jZXNzKToKKyAgICAg
ICAgVXBkYXRlIGZvciBuZXcgdHlwZSBuYW1lLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblBy
b2Nlc3M6OmluaXRpYWxpemVTYW5kYm94KToKKyAgICAgICAgUmV0dXJuIGVhcmx5IGlmIHRoZSBz
YW5kYm94IGlzIGRpc2FibGVkLgorCisgICAgICAgICogU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUv
UGx1Z2luSW5mb3JtYXRpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpnZXRQbHVnaW5Nb2R1bGVJ
bmZvcm1hdGlvbik6CisgICAgICAgIFBsdWdpbkluZm9TdG9yZTo6cG9saWN5Rm9yUGx1Z2luIGhh
cyBiZWVuIHJlbmFtZWQgdG8gUGx1Z2luSW5mb1N0b3JlOjpkZWZhdWx0TG9hZFBvbGljeUZvclBs
dWdpbi4KKworICAgICAgICAqIFNoYXJlZC9QbHVnaW5zL1BsdWdpbk1vZHVsZUluZm8uaDoKKyAg
ICAgICAgQWRkIFBsdWdpbk1vZHVsZUxvYWRVbnNhbmRib3hlZC4KKworICAgICAgICAqIFNoYXJl
ZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmg6IEFkZGVkLgorICAgICAgICBBZGQg
bmV3IGhlYWRlciB3aXRoIHZhcmlvdXMgcGx1Zy1pbiBwcm9jZXNzIGF0dHJpYnV0ZXMuCisKKyAg
ICAgICAgKiBTaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmg6
CisgICAgICAgIENoYW5nZSB0eXBlIGVudW0uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0Mv
V0tBUElDYXN0Lmg6CisgICAgICAgIChXZWJLaXQ6OnRvV0tQbHVnaW5Mb2FkUG9saWN5KToKKyAg
ICAgICAgKFdlYktpdDo6dG9QbHVnaW5Nb2R1bGVMb2FkUG9saWN5KToKKyAgICAgICAgSGFuZGxl
IHRoZSB1bnNhbmRib3hlZCBlbnVtLgorCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9DL1dLUGFn
ZS5oOgorICAgICAgICBBZGQga1dLUGx1Z2luTG9hZFBvbGljeUxvYWRVbnNhbmRib3hlZC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oOgorICAgICAgICBS
ZW5hbWUgcG9saWN5Rm9yUGx1Z2luIHRvIGRlZmF1bHRMb2FkUG9saWN5Rm9yUGx1Z2luLgorCisg
ICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc01hbmFnZXIuY3BwOgorICAg
ICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6cGx1Z2luUHJvY2Vzc1Rva2VuKToK
KyAgICAgICAgQWRkIG5ldyBoZWxwZXIgZnVuY3Rpb24gZm9yIGdldHRpbmcgYSB0b2tlbiBnaXZl
biBwbHVnLWluIGF0dHJpYnV0ZXMuCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01h
bmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKToKKyAgICAgICAgVGhpcyBub3cgdGFr
ZXMgYSBwbHVnaW5Qcm9jZXNzVG9rZW4uCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vz
c01hbmFnZXI6OmdldFNpdGVzV2l0aERhdGEpOgorICAgICAgICBNYWtlIHN1cmUgdG8gY2FsbCBw
bHVnaW5Qcm9jZXNzVG9rZW4uCisKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc01hbmFn
ZXI6OmNsZWFyU2l0ZURhdGEpOgorICAgICAgICBEaXR0by4KKworICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzTWFuYWdlcjo6Z2V0T3JDcmVhdGVQbHVnaW5Qcm9jZXNzKToKKyAgICAgICAg
VGhpcyBub3cgdGFrZXMgYSB0b2tlbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94
eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5OjpQbHVnaW5Q
cm9jZXNzUHJveHkpOgorICAgICAgICBQYXNzIHRoZSBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcyBh
cyB3ZWxsIGFzIHRoZSBwbHVnLWluIHByb2Nlc3MgdG9rZW4uCisKKyAgICAgICAgKFdlYktpdDo6
UGx1Z2luUHJvY2Vzc1Byb3h5OjpnZXRMYXVuY2hPcHRpb25zKToKKyAgICAgICAgUGFzcyB0aGUg
cGx1Zy1pbiBwcm9jZXNzIGF0dHJpYnV0ZXMgdG8gcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zLgor
CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UpOgorICAgICAg
ICBQYXNzIHRoZSB0b2tlbiB0byBQbHVnaW5Qcm9jZXNzQ3Jhc2hlZC4KKworICAgICAgICAoV2Vi
S2l0OjpQbHVnaW5Qcm9jZXNzUHJveHk6OmRpZEZpbmlzaExhdW5jaGluZyk6CisgICAgICAgIFVw
ZGF0ZSBmb3IgdHlwZSBjaGFuZ2UuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvUGx1Z2lucy9tYWMv
UGx1Z2luSW5mb1N0b3JlTWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpzaG91bGRCbG9ja1BsdWdp
bik6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpbkluZm9TdG9yZTo6ZGVmYXVsdExvYWRQb2xpY3lG
b3JQbHVnaW4pOgorICAgICAgICBSZW5hbWUgcG9saWN5Rm9yUGx1Z2luIHRvIGRlZmF1bHRMb2Fk
UG9saWN5Rm9yUGx1Z2luLgorCisgICAgICAgICogVUlQcm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdp
blByb2Nlc3NQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc1Byb3h5
OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMpOgorICAgICAgICBTZXQgdGhlICJkaXNhYmxlLXNh
bmRib3giIGRhdGEgaWYgbmVlZGVkLgorCisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nlc3NQ
cm94eTo6cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2Vzcyk6CisgICAgICAgIChXZWJLaXQ6
OlBsdWdpblByb2Nlc3NQcm94eTo6b3BlblBsdWdpblByZWZlcmVuY2VQYW5lKToKKyAgICAgICAg
R2V0IHRoZSBtb2R1bGUgaW5mbyBmcm9tIG1fcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMuCisKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vi
UGFnZVByb3h5OjpmaW5kUGx1Z2luKToKKyAgICAgICAgVGhpcyBub3cgcmV0dXJucyBhIHRva2Vu
LgorCisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbjoKKyAgICAg
ICAgRmluZFBsdWdpbiBub3cgcmV0dXJucyBhIHRva2VuIGluc3RlYWQgb2YgdGhlIHBhdGguCisK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmNwcDoKKyAgICAgICAgKFdlYktp
dDo6V2ViUHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAg
IFBhc3MgdGhlIHRva2VuIHRvIHRoZSBwbHVnLWluIHByb2Nlc3MgbWFuYWdlci4KKworICAgICAg
ICAqIFVJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgIFRoaXMg
bm93IHRha2VzIGEgdG9rZW4uCisKKyAgICAgICAgKiBXZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2o6CisgICAgICAgIEFkZCBuZXcgZmlsZXMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24pOgorICAgICAg
ICBUaGlzIG5vdyB0YWtlcyBhIHRva2VuLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmg6CisgICAgICAgIChXZWJLaXQ6OlBsdWdpblByb2Nl
c3NDb25uZWN0aW9uOjpjcmVhdGUpOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbjo6cGx1Z2luUHJvY2Vzc1Rva2VuKToKKyAgICAgICAgQ3JlYXRlIHRoaXMgd2l0aCBh
IHRva2VuIGluc3RlYWQgb2YgYSBwYXRoIGFuZCBwcm9jZXNzIHR5cGUuCisKKyAgICAgICAgKiBX
ZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpnZXRQbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbik6CisgICAgICAgIFRoaXMgbm93IHRha2VzIGEgdG9rZW4uCisKKyAg
ICAgICAgKFdlYktpdDo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpwbHVnaW5Qcm9j
ZXNzQ3Jhc2hlZCk6CisgICAgICAgIERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9QbHVn
aW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAg
UGx1Z2luUHJvY2Vzc0NyYXNoZWQgbm93IHRha2VzIGEgdG9rZW4uCisKKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpQbHVnaW5Q
cm94eTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYktpdDo6UGx1Z2luUHJveHk6OlBsdWdpblByb3h5
KToKKyAgICAgICAgVGhlc2Ugbm93IHRha2UgdG9rZW5zLgorCisgICAgICAgIChXZWJLaXQ6OlBs
dWdpblByb3h5Ojppbml0aWFsaXplKToKKyAgICAgICAgUGFzcyB0aGUgdG9rZW4gd2hlbiBnZXR0
aW5nIHRoZSBjb25uZWN0aW9uLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBh
Z2UuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJQYWdlOjpjcmVhdGVQbHVnaW4pOgorICAgICAg
ICBHZXQgdGhlIHRva2VuIGZyb20gdGhlIFVJIHByb2Nlc3MgYW5kIHBhc3MgaXQgdG8gdGhlIFBs
dWdpblByb3h5LgorCisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmNhblBsdWdpbkhhbmRsZVJl
c3BvbnNlKToKKyAgICAgICAgVXBkYXRlIG5vdyB0aGF0IEZpbmRQbHVnaW4gcmV0dXJucyBhIHRv
a2VuLgorCiAyMDEzLTA1LTIxICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJzZWtAaWdhbGlhLmNvbT4K
IAogICAgICAgICBbR1RLXSBDb21waWxlIGV2ZXJ5dGhpbmcgaW4gQysrMTEgbW9kZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvUGxhdGZvcm0vQ29yZUlQQy9IYW5kbGVNZXNzYWdlLmggYi9T
b3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAppbmRleCA3NzU4
NTc0MTUwM2IzNzgyZjAyYTViMjBiZGZmYzYyYzBmZThlYWYxLi40MDk1ZTlmNWI2ZmQ4NjJkN2Q2
YjFiYzQ4MWE4OWMxODRjOTIwODE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9y
bS9Db3JlSVBDL0hhbmRsZU1lc3NhZ2UuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbGF0Zm9ybS9D
b3JlSVBDL0hhbmRsZU1lc3NhZ2UuaApAQCAtMTg1LDEyICsxODUsNiBAQCB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM1PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFy
Z3VtZW50czI8UgogICAgIChvYmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3Mu
YXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1
LCByZXBseUFyZ3MuYXJndW1lbnQxLCByZXBseUFyZ3MuYXJndW1lbnQyKTsKIH0KIAotdGVtcGxh
dGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwgdHlw
ZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgUDYsIHR5cGVuYW1l
IFIxLCB0eXBlbmFtZSBSMj4KLXZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3VtZW50
czY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIEFyZ3VtZW50czI8UjEsIFIyPiYgcmVw
bHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQotewotICAgIChvYmplY3QtPipmdW5jdGlv
bikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJncy5h
cmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgcmVwbHlBcmdzLmFyZ3Vt
ZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7Ci19Ci0gICAgCiB0ZW1wbGF0ZTx0eXBlbmFtZSBD
LCB0eXBlbmFtZSBNRiwgdHlwZW5hbWUgUDEsIHR5cGVuYW1lIFAyLCB0eXBlbmFtZSBQMywgdHlw
ZW5hbWUgUDQsIHR5cGVuYW1lIFIxLCB0eXBlbmFtZSBSMiwgdHlwZW5hbWUgUjM+CiB2b2lkIGNh
bGxNZW1iZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHM0PFAxLCBQMiwgUDMsIFA0PiYgYXJncywg
QXJndW1lbnRzMzxSMSwgUjIsIFIzPiYgcmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9u
KQogewpAQCAtMjAzLDYgKzE5NywxOCBAQCB2b2lkIGNhbGxNZW1iZXJGdW5jdGlvbihjb25zdCBB
cmd1bWVudHM1PFAxLCBQMiwgUDMsIFA0LCBQNT4mIGFyZ3MsIEFyZ3VtZW50czM8UgogICAgIChv
YmplY3QtPipmdW5jdGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFy
Z3VtZW50MywgYXJncy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCByZXBseUFyZ3MuYXJndW1l
bnQxLCByZXBseUFyZ3MuYXJndW1lbnQyLCByZXBseUFyZ3MuYXJndW1lbnQzKTsKIH0KIAordGVt
cGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFAxLCB0eXBlbmFtZSBQMiwg
dHlwZW5hbWUgUDMsIHR5cGVuYW1lIFA0LCB0eXBlbmFtZSBQNSwgdHlwZW5hbWUgUDYsIHR5cGVu
YW1lIFIxLCB0eXBlbmFtZSBSMj4KK3ZvaWQgY2FsbE1lbWJlckZ1bmN0aW9uKGNvbnN0IEFyZ3Vt
ZW50czY8UDEsIFAyLCBQMywgUDQsIFA1LCBQNj4mIGFyZ3MsIEFyZ3VtZW50czI8UjEsIFIyPiYg
cmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQoreworICAgIChvYmplY3QtPipmdW5j
dGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJn
cy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50Mik7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIEMs
IHR5cGVuYW1lIE1GLCB0eXBlbmFtZSBQMSwgdHlwZW5hbWUgUDIsIHR5cGVuYW1lIFAzLCB0eXBl
bmFtZSBQNCwgdHlwZW5hbWUgUDUsIHR5cGVuYW1lIFA2LCB0eXBlbmFtZSBSMSwgdHlwZW5hbWUg
UjIsIHR5cGVuYW1lIFIzPgordm9pZCBjYWxsTWVtYmVyRnVuY3Rpb24oY29uc3QgQXJndW1lbnRz
NjxQMSwgUDIsIFAzLCBQNCwgUDUsIFA2PiYgYXJncywgQXJndW1lbnRzMzxSMSwgUjIsIFIzPiYg
cmVwbHlBcmdzLCBDKiBvYmplY3QsIE1GIGZ1bmN0aW9uKQoreworICAgIChvYmplY3QtPipmdW5j
dGlvbikoYXJncy5hcmd1bWVudDEsIGFyZ3MuYXJndW1lbnQyLCBhcmdzLmFyZ3VtZW50MywgYXJn
cy5hcmd1bWVudDQsIGFyZ3MuYXJndW1lbnQ1LCBhcmdzLmFyZ3VtZW50NiwgcmVwbHlBcmdzLmFy
Z3VtZW50MSwgcmVwbHlBcmdzLmFyZ3VtZW50MiwgcmVwbHlBcmdzLmFyZ3VtZW50Myk7Cit9CisK
IC8vIERpc3BhdGNoIGZ1bmN0aW9ucyB3aXRoIGRlbGF5ZWQgcmVwbHkgYXJndW1lbnRzLgogdGVt
cGxhdGU8dHlwZW5hbWUgQywgdHlwZW5hbWUgTUYsIHR5cGVuYW1lIFI+CiB2b2lkIGNhbGxNZW1i
ZXJGdW5jdGlvbihjb25zdCBBcmd1bWVudHMwJiwgUGFzc1JlZlB0cjxSPiBkZWxheWVkUmVwbHks
IEMqIG9iamVjdCwgTUYgZnVuY3Rpb24pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVn
aW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVByb2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4u
bW0gYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL0xlZ2FjeVBy
b2Nlc3MvUGx1Z2luUHJvY2Vzc01haW4ubW0KaW5kZXggMTE2NjYxNjYxYTFjOTM1ZGRkNmIzYjE1
YmIxMjIwMzc0MzNkNDdiNi4uNzMwNDVkMzkxY2NiODQ3OWZiMWIyZDU2ZGE2NWQ2NjU1NWY1MTg0
ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21h
Yy9MZWdhY3lQcm9jZXNzL1BsdWdpblByb2Nlc3NNYWluLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQy
L1BsdWdpblByb2Nlc3MvRW50cnlQb2ludC9tYWMvTGVnYWN5UHJvY2Vzcy9QbHVnaW5Qcm9jZXNz
TWFpbi5tbQpAQCAtODcsNiArODcsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoInBsdWdpbi1wYXRoIiwg
cGx1Z2luUGF0aCk7CiAKKyAgICAgICAgU3RyaW5nIGRpc2FibGVTYW5kYm94ID0gbV9jb21tYW5k
TGluZVsiZGlzYWJsZS1zYW5kYm94Il07CisgICAgICAgIGlmICghZGlzYWJsZVNhbmRib3guaXNF
bXB0eSgpKQorICAgICAgICAgICAgZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJkaXNhYmxl
LXNhbmRib3giLCBkaXNhYmxlU2FuZGJveCk7CisKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQv
bWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVudHJ5UG9pbnQubW0gYi9Tb3VyY2UvV2ViS2l0
Mi9QbHVnaW5Qcm9jZXNzL0VudHJ5UG9pbnQvbWFjL1hQQ1NlcnZpY2UvUGx1Z2luU2VydmljZUVu
dHJ5UG9pbnQubW0KaW5kZXggMTBmZTFjYmE2ZWFjNWQwNzU2M2Q5YTgzOWEzNTZmNjZlMjE5ZGUw
OC4uODdmY2M0ZmQzZmY0ZTA1MDJlMjkzZDgwZTg1MjM5NDNhNDkxMjA5YiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9FbnRyeVBvaW50L21hYy9YUENTZXJ2aWNlL1Bs
dWdpblNlcnZpY2VFbnRyeVBvaW50Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nl
c3MvRW50cnlQb2ludC9tYWMvWFBDU2VydmljZS9QbHVnaW5TZXJ2aWNlRW50cnlQb2ludC5tbQpA
QCAtNTEsNiArNTEsMTAgQEAgcHVibGljOgogICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoInBsdWdpbi1wYXRoIiwgcGx1Z2luUGF0
aCk7CiAKKyAgICAgICAgU3RyaW5nIGRpc2FibGVTYW5kYm94ID0geHBjX2RpY3Rpb25hcnlfZ2V0
X3N0cmluZyhleHRyYURhdGFJbml0aWFsaXphdGlvbkRhdGFPYmplY3QsICJkaXNhYmxlLXNhbmRi
b3giKTsKKyAgICAgICAgaWYgKCFkaXNhYmxlU2FuZGJveC5pc0VtcHR5KCkpCisgICAgICAgICAg
ICBleHRyYUluaXRpYWxpemF0aW9uRGF0YS5hZGQoImRpc2FibGUtc2FuZGJveCIsIGRpc2FibGVT
YW5kYm94KTsKKwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiB9OwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9QbHVnaW5Qcm9jZXNzLmggYi9Tb3VyY2UvV2Vi
S2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nlc3MuaAppbmRleCA3M2NlMGFjMDE2NmE3NzQy
N2NiNWExZjc1MDMxZmI4ZDQyNDAyOGIzLi4wYTg3YjJkOWZhYTgwZjdlZTYxNzY0NzBmNmI1NTQ3
OTQyMGM4ZDhlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdp
blByb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL1BsdWdpblByb2Nl
c3MuaApAQCAtNDEsMTIgKzQxLDYgQEAgc3RydWN0IFBsdWdpblByb2Nlc3NDcmVhdGlvblBhcmFt
ZXRlcnM7CiBjbGFzcyBQbHVnaW5Qcm9jZXNzIDogcHVibGljIENoaWxkUHJvY2VzcyB7CiAgICAg
V1RGX01BS0VfTk9OQ09QWUFCTEUoUGx1Z2luUHJvY2Vzcyk7CiBwdWJsaWM6Ci0gICAgZW51bSBU
eXBlIHsKLSAgICAgICAgLy8gU3RhcnQgd2l0aCB2YWx1ZSBvbmUgc2luY2UgZGVmYXVsdCBIYXNo
VHJhaXRzPD4gZGlzYWxsb3dzIHplcm8gYXMga2V5LgotICAgICAgICBUeXBlUmVndWxhclByb2Nl
c3MgPSAxLAotICAgICAgICBUeXBlU25hcHNob3RQcm9jZXNzCi0gICAgfTsKLQogICAgIHN0YXRp
YyBQbHVnaW5Qcm9jZXNzJiBzaGFyZWQoKTsKIAogICAgIHZvaWQgcmVtb3ZlV2ViUHJvY2Vzc0Nv
bm5lY3Rpb24oV2ViUHJvY2Vzc0Nvbm5lY3Rpb24qKTsKQEAgLTExOCwxMyArMTEyLDYgQEAgcHJp
dmF0ZToKIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKLW5hbWVzcGFjZSBXVEYgewotCi10ZW1w
bGF0ZTw+IHN0cnVjdCBEZWZhdWx0SGFzaDxXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OlR5cGU+IHsg
dHlwZWRlZiBEZWZhdWx0SGFzaDx1aW50MzJfdD46Okhhc2ggSGFzaDsgfTsKLXRlbXBsYXRlPD4g
c3RydWN0IElzSW50ZWdlcjxXZWJLaXQ6OlBsdWdpblByb2Nlc3M6OlR5cGU+IHsgc3RhdGljIGNv
bnN0IGJvb2wgdmFsdWUgPSB0cnVlOyB9OwotCi19IC8vIG5hbWVzcGFjZSBXVEYKLQogI2VuZGlm
IC8vIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKIAogI2VuZGlmIC8vIFBsdWdpblByb2Nlc3NfaApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vz
c01hYy5tbSBiL1NvdXJjZS9XZWJLaXQyL1BsdWdpblByb2Nlc3MvbWFjL1BsdWdpblByb2Nlc3NN
YWMubW0KaW5kZXggNTM0ZTUyM2U5MDYzMjViZjQ1MzJhODU5MGI0NmIyNGEyNWYyNWZmOC4uNTg2
ZTA5MWIyZmY4ODdkNTM2OGZlMjk5NjUyYjFhMzhjZjhhMWY2ZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdDIvUGx1Z2luUHJvY2Vzcy9tYWMvUGx1Z2luUHJvY2Vzc01hYy5tbQorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9QbHVnaW5Qcm9jZXNzL21hYy9QbHVnaW5Qcm9jZXNzTWFjLm1tCkBAIC0yOTQs
NyArMjk0LDcgQEAgc3RhdGljIHZvaWQgbXV0ZUF1ZGlvKHZvaWQpCiB2b2lkIFBsdWdpblByb2Nl
c3M6OnBsYXRmb3JtSW5pdGlhbGl6ZVBsdWdpblByb2Nlc3MoY29uc3QgUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVycykKIHsKICAgICBtX2NvbXBvc2l0aW5nUmVuZGVy
U2VydmVyUG9ydCA9IHBhcmFtZXRlcnMuYWNjZWxlcmF0ZWRDb21wb3NpdGluZ1BvcnQucG9ydCgp
OwotICAgIGlmIChwYXJhbWV0ZXJzLnByb2Nlc3NUeXBlID09IFR5cGVTbmFwc2hvdFByb2Nlc3Mp
CisgICAgaWYgKHBhcmFtZXRlcnMucHJvY2Vzc1R5cGUgPT0gUGx1Z2luUHJvY2Vzc1R5cGVTbmFw
c2hvdCkKICAgICAgICAgbXV0ZUF1ZGlvKCk7CiB9CiAKQEAgLTM0MSw2ICszNDEsOSBAQCB2b2lk
IFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVQcm9jZXNzTmFtZShjb25zdCBDaGlsZFByb2Nlc3NJ
bml0aWFsaXphdGlvblBhcmFtZQogCiB2b2lkIFBsdWdpblByb2Nlc3M6OmluaXRpYWxpemVTYW5k
Ym94KGNvbnN0IENoaWxkUHJvY2Vzc0luaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgcGFyYW1ldGVy
cywgU2FuZGJveEluaXRpYWxpemF0aW9uUGFyYW1ldGVycyYgc2FuZGJveFBhcmFtZXRlcnMpCiB7
CisgICAgaWYgKHBhcmFtZXRlcnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuZ2V0KCJkaXNhYmxl
LXNhbmRib3giKSA9PSAiMSIpCisgICAgICAgIHJldHVybjsKKwogICAgIFN0cmluZyBzYW5kYm94
UHJvZmlsZSA9IHBsdWdpblNhbmRib3hQcm9maWxlKG1fcGx1Z2luQnVuZGxlSWRlbnRpZmllcik7
CiAgICAgaWYgKHNhbmRib3hQcm9maWxlLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1Z2luSW5m
b3JtYXRpb24uY3BwIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvTmV0c2NhcGUvUGx1
Z2luSW5mb3JtYXRpb24uY3BwCmluZGV4IDFhNjk1MDhhZjk4YmFjMWQ2MjQxZmQ0YjZiZmNkMDJi
MjVjNjEwOTguLjBlYjQ0MjJjZTFkYmMyN2ZhOTI3MTEzODEwNDRkYTgyMDk4YWUyMzggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL05ldHNjYXBlL1BsdWdpbkluZm9y
bWF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9OZXRzY2FwZS9Q
bHVnaW5JbmZvcm1hdGlvbi5jcHAKQEAgLTEwMSw3ICsxMDEsNyBAQCB2b2lkIGdldFBsdWdpbk1v
ZHVsZUluZm9ybWF0aW9uKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mIHBsdWdpbiwgSW1tdXRhYmxl
RGljdGlvbgogI2lmIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIG1hcC5zZXQocGx1
Z2luSW5mb3JtYXRpb25QYXRoS2V5KCksIFdlYlN0cmluZzo6Y3JlYXRlKHBsdWdpbi5wYXRoKSk7
CiAgICAgbWFwLnNldChwbHVnaW5JbmZvcm1hdGlvbkRpc3BsYXlOYW1lS2V5KCksIFdlYlN0cmlu
Zzo6Y3JlYXRlKHBsdWdpbi5pbmZvLm5hbWUpKTsKLSAgICBtYXAuc2V0KHBsdWdpbkluZm9ybWF0
aW9uRGVmYXVsdExvYWRQb2xpY3lLZXkoKSwgV2ViVUludDY0OjpjcmVhdGUodG9XS1BsdWdpbkxv
YWRQb2xpY3koUGx1Z2luSW5mb1N0b3JlOjpwb2xpY3lGb3JQbHVnaW4ocGx1Z2luKSkpKTsKKyAg
ICBtYXAuc2V0KHBsdWdpbkluZm9ybWF0aW9uRGVmYXVsdExvYWRQb2xpY3lLZXkoKSwgV2ViVUlu
dDY0OjpjcmVhdGUodG9XS1BsdWdpbkxvYWRQb2xpY3koUGx1Z2luSW5mb1N0b3JlOjpkZWZhdWx0
TG9hZFBvbGljeUZvclBsdWdpbihwbHVnaW4pKSkpOwogCiAgICAgZ2V0UGxhdGZvcm1QbHVnaW5N
b2R1bGVJbmZvcm1hdGlvbihwbHVnaW4sIG1hcCk7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpbk1vZHVsZUluZm8uaCBiL1NvdXJjZS9XZWJL
aXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpbk1vZHVsZUluZm8uaAppbmRleCA2YzU4YWQ5MTBjODVj
N2NiZGYzYjFlMDk5ZTExMzE1ZTYwMzk0ZWZiLi5iNDE1MjQ1MzcxNmQ3NjFjOTllZDNjNjJkMDcw
YjI3OGE1OGQxNDhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9Q
bHVnaW5Nb2R1bGVJbmZvLmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1
Z2luTW9kdWxlSW5mby5oCkBAIC0zOCw2ICszOCw5IEBAIGVudW0gUGx1Z2luTW9kdWxlTG9hZFBv
bGljeSB7CiAgICAgLy8gVGhlIHBsdWctaW4gbW9kdWxlIHNob3VsZCBiZSBsb2FkZWQgbm9ybWFs
bHkuCiAgICAgUGx1Z2luTW9kdWxlTG9hZE5vcm1hbGx5LAogCisgICAgLy8gVGhlIHBsdWctaW4g
bW9kdWxlIHNob3VsZCBiZSBsb2FkZWQgbm9ybWFsbHkuIElmIHRoZSBwbHVnLWluIGhhcyBhIHNh
bmRib3gsIGl0IHdpbGwgYmUgZGlzYWJsZWQuCisgICAgUGx1Z2luTW9kdWxlTG9hZFVuc2FuZGJv
eGVkLAorCiAgICAgLy8gVGhlIHBsdWctaW4gc2hvdWxkIGJlIGJsb2NrZWQgZnJvbSBiZWluZyBp
bnN0YW50aWF0ZWQuCiAgICAgLy8gTm90ZSB0aGF0IHRoZSBwbHVnLWluIHdpbGwgc3RpbGwgYmUg
c2VlbiBieSBlLmcuIG5hdmlnYXRvci5wbHVnaW5zCiAgICAgUGx1Z2luTW9kdWxlQmxvY2tlZCwK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1BsdWdpblByb2Nlc3NB
dHRyaWJ1dGVzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNz
QXR0cmlidXRlcy5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmI0ZTc4MDhhYmJiZTUxZDUwMTIxMWQ4N2IwMmRkNWQ0
MjVhMzkwNmQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lu
cy9QbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5oCkBAIC0wLDAgKzEsNTEgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjaWZuZGVmIFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzX2gKKyNkZWZpbmUgUGx1Z2luUHJvY2Vz
c0F0dHJpYnV0ZXNfaAorCisjaW5jbHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgorCituYW1lc3Bh
Y2UgV2ViS2l0IHsKKworZW51bSBQbHVnaW5Qcm9jZXNzVHlwZSB7CisgICAgUGx1Z2luUHJvY2Vz
c1R5cGVOb3JtYWwsCisgICAgUGx1Z2luUHJvY2Vzc1R5cGVTbmFwc2hvdCwKK307CisKK2VudW0g
UGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kgeworICAgIFBsdWdpblByb2Nlc3NTYW5kYm94UG9s
aWN5Tm9ybWFsLAorICAgIFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5VW5zYW5kYm94ZWQsCit9
OworCitzdHJ1Y3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMgeworICAgIFBsdWdpbk1vZHVsZUlu
Zm8gbW9kdWxlSW5mbzsKKyAgICBQbHVnaW5Qcm9jZXNzVHlwZSBwcm9jZXNzVHlwZTsKKyAgICBQ
bHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSBzYW5kYm94UG9saWN5OworfTsKKworfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlc19oCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ3JlYXRp
b25QYXJhbWV0ZXJzLmggYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmgKaW5kZXggZTgyN2FlNGUxMTQ3MDVlMWQyMTM4MTAzYWEw
YzM0ZjE3MTQxZDUwYy4uODY1ODM0YWFmMWQ3N2VmZjk3YWM0MDVjYjQwY2IzMDA5MDFmODkzNCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hhcmVkL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Ny
ZWF0aW9uUGFyYW1ldGVycy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDcmVhdGlvblBhcmFtZXRlcnMuaApAQCAtMjgsNyArMjgsNyBAQAogCiAjaWYg
RU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCi0jaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5oIgorI2lu
Y2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAKICNpZiBQTEFURk9STShNQUMpCiAj
aW5jbHVkZSAiTWFjaFBvcnQuaCIKQEAgLTQ3LDcgKzQ3LDcgQEAgc3RydWN0IFBsdWdpblByb2Nl
c3NDcmVhdGlvblBhcmFtZXRlcnMgewogICAgIHZvaWQgZW5jb2RlKENvcmVJUEM6OkFyZ3VtZW50
RW5jb2RlciYpIGNvbnN0OwogICAgIHN0YXRpYyBib29sIGRlY29kZShDb3JlSVBDOjpBcmd1bWVu
dERlY29kZXImLCBQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzJik7CiAKLSAgICBQbHVn
aW5Qcm9jZXNzOjpUeXBlIHByb2Nlc3NUeXBlOworICAgIFBsdWdpblByb2Nlc3NUeXBlIHByb2Nl
c3NUeXBlOwogICAgIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlv
bjsKIAogICAgIGRvdWJsZSBtaW5pbXVtTGlmZXRpbWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL0MvV0tBUElDYXN0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL0MvV0tBUElDYXN0LmgKaW5kZXggOTE2MmJlN2E0ODk4NjE2ODk4YzQxNzAwY2UwNjM0
ZTBjZGJkM2ZlNi4uNjRjMzc5OTY4ODVkMjMyYmVmMGEyZDg4YjE5ZjhjODRkNWIxMTUxZiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9DL1dLQVBJQ2FzdC5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS0FQSUNhc3QuaApAQCAtNDEwLDYgKzQx
MCw4IEBAIGlubGluZSBXS1BsdWdpbkxvYWRQb2xpY3kgdG9XS1BsdWdpbkxvYWRQb2xpY3koUGx1
Z2luTW9kdWxlTG9hZFBvbGljeSBwbHVnaW5Nb2R1CiAgICAgc3dpdGNoIChwbHVnaW5Nb2R1bGVM
b2FkUG9saWN5KSB7CiAgICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkTm9ybWFsbHk6CiAgICAgICAg
IHJldHVybiBrV0tQbHVnaW5Mb2FkUG9saWN5TG9hZE5vcm1hbGx5OworICAgIGNhc2UgUGx1Z2lu
TW9kdWxlTG9hZFVuc2FuZGJveGVkOgorICAgICAgICByZXR1cm4ga1dLUGx1Z2luTG9hZFBvbGlj
eUxvYWRVbnNhbmRib3hlZDsKICAgICBjYXNlIFBsdWdpbk1vZHVsZUJsb2NrZWQ6CiAgICAgICAg
IHJldHVybiBrV0tQbHVnaW5Mb2FkUG9saWN5QmxvY2tlZDsKICAgICBjYXNlIFBsdWdpbk1vZHVs
ZUluYWN0aXZlOgpAQCAtNDI5LDYgKzQzMSw4IEBAIGlubGluZSBQbHVnaW5Nb2R1bGVMb2FkUG9s
aWN5IHRvUGx1Z2luTW9kdWxlTG9hZFBvbGljeShXS1BsdWdpbkxvYWRQb2xpY3kgcGx1Z2luCiAg
ICAgICAgIHJldHVybiBQbHVnaW5Nb2R1bGVCbG9ja2VkOwogICAgIGNhc2Uga1dLUGx1Z2luTG9h
ZFBvbGljeUluYWN0aXZlOgogICAgICAgICByZXR1cm4gUGx1Z2luTW9kdWxlSW5hY3RpdmU7Cisg
ICAgY2FzZSBrV0tQbHVnaW5Mb2FkUG9saWN5TG9hZFVuc2FuZGJveGVkOgorICAgICAgICByZXR1
cm4gUGx1Z2luTW9kdWxlTG9hZFVuc2FuZGJveGVkOwogICAgIH0KICAgICAKICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Qy9XS1BhZ2UuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvQy9XS1BhZ2UuaAppbmRl
eCA3NzYxY2E5OTFlZjE2YzI1MjIwZWQxMzc1NzRhNWNkNDNkMjg5MWIwLi4xNzY1NzhmZWU5NTJk
NWZlNmExNzQ1YTczOWNjYzA4MjUwMGY0MzhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL0MvV0tQYWdlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9DL1dLUGFnZS5oCkBAIC01Myw2ICs1Myw3IEBAIGVudW0gewogICAgIGtXS1BsdWdpbkxvYWRQ
b2xpY3lMb2FkTm9ybWFsbHkgPSAwLAogICAgIGtXS1BsdWdpbkxvYWRQb2xpY3lCbG9ja2VkLAog
ICAgIGtXS1BsdWdpbkxvYWRQb2xpY3lJbmFjdGl2ZSwKKyAgICBrV0tQbHVnaW5Mb2FkUG9saWN5
TG9hZFVuc2FuZGJveGVkLAogfTsKIHR5cGVkZWYgdWludDMyX3QgV0tQbHVnaW5Mb2FkUG9saWN5
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5J
bmZvU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9T
dG9yZS5oCmluZGV4IDNiNDFiMzk2MTU3Y2E1OTRhOTdiOTFmMDE5MGIyZmI4ZTc5MjljODcuLjZl
MTQ0Y2RlYzM4MjEyODZmZjdlM2EyM2JiZTQ2NzliZmRiNTJhYjQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpbkluZm9TdG9yZS5oCkBAIC03MSw3ICs3
MSw3IEBAIHB1YmxpYzoKICAgICAvLyBSZXR1cm5zIHRoZSBpbmZvIGZvciB0aGUgcGx1Zy1pbiB3
aXRoIHRoZSBnaXZlbiBwYXRoLgogICAgIFBsdWdpbk1vZHVsZUluZm8gaW5mb0ZvclBsdWdpbldp
dGhQYXRoKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCkgY29uc3Q7CiAKLSAgICBzdGF0aWMgUGx1
Z2luTW9kdWxlTG9hZFBvbGljeSBwb2xpY3lGb3JQbHVnaW4oY29uc3QgUGx1Z2luTW9kdWxlSW5m
byYpOworICAgIHN0YXRpYyBQbHVnaW5Nb2R1bGVMb2FkUG9saWN5IGRlZmF1bHRMb2FkUG9saWN5
Rm9yUGx1Z2luKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mKTsKICAgICBzdGF0aWMgYm9vbCByZWFj
dGl2YXRlSW5hY3RpdmVQbHVnaW4oY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYpOwogCiAgICAgdm9p
ZCBzZXRDbGllbnQoUGx1Z2luSW5mb1N0b3JlQ2xpZW50KiBjbGllbnQpIHsgbV9jbGllbnQgPSBj
bGllbnQ7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NNYW5hZ2VyLmNwcAppbmRleCA4MzRjODdmYzQ2M2Q5NTE3MzkzNTU2ZGQx
NmM4YTQ0MjIyYzUzNmU1Li4yMjc5YWFlY2RjZDk1NjAxMDlmYTgxZTEyNGYzNmJlZDdlODAyZDcz
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9j
ZXNzTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc01hbmFnZXIuY3BwCkBAIC0zMCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJQbHVn
aW5Qcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJDb250ZXh0LmgiCisjaW5jbHVkZSA8d3Rm
L0NyeXB0b2dyYXBoaWNhbGx5UmFuZG9tTnVtYmVyLmg+CiAjaW5jbHVkZSA8d3RmL1N0ZExpYkV4
dHJhcy5oPgogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCkBAIC00NSwxMiArNDYs
NDIgQEAgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OlBsdWdpblByb2Nlc3NNYW5hZ2VyKCkKIHsKIH0K
IAotdm9pZCBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24o
Y29uc3QgUGx1Z2luSW5mb1N0b3JlJiBwbHVnaW5JbmZvU3RvcmUsIGNvbnN0IFN0cmluZyYgcGx1
Z2luUGF0aCwgUGx1Z2luUHJvY2Vzczo6VHlwZSBwcm9jZXNzVHlwZSwgUGFzc1JlZlB0cjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5PiByZXBseSkKK3VpbnQ2NF90IFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpwbHVnaW5Qcm9j
ZXNzVG9rZW4oY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luTW9kdWxlSW5mbywgUGx1Z2lu
UHJvY2Vzc1R5cGUgcGx1Z2luUHJvY2Vzc1R5cGUsIFBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5
IHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5KQogewotICAgIEFTU0VSVCghcGx1Z2luUGF0aC5p
c051bGwoKSk7CisgICAgLy8gU2VlIGlmIHdlIGtub3cgdGhpcyB0b2tlbiBhbHJlYWR5LgorICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wbHVnaW5Qcm9jZXNzVG9rZW5zLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGNvbnN0IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzJiBhdHRyaWJ1dGVzID0g
bV9wbHVnaW5Qcm9jZXNzVG9rZW5zW2ldLmZpcnN0OworCisgICAgICAgIGlmIChhdHRyaWJ1dGVz
Lm1vZHVsZUluZm8ucGF0aCA9PSBwbHVnaW5Nb2R1bGVJbmZvLnBhdGgKKyAgICAgICAgICAgICYm
IGF0dHJpYnV0ZXMucHJvY2Vzc1R5cGUgPT0gcGx1Z2luUHJvY2Vzc1R5cGUKKyAgICAgICAgICAg
ICYmIGF0dHJpYnV0ZXMuc2FuZGJveFBvbGljeSA9PSBwbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGlj
eSkKKyAgICAgICAgICAgIHJldHVybiBtX3BsdWdpblByb2Nlc3NUb2tlbnNbaV0uc2Vjb25kOwor
ICAgIH0KKworICAgIHVpbnQ2NF90IHRva2VuOworICAgIHdoaWxlICh0cnVlKSB7CisgICAgICAg
IGNyeXB0b2dyYXBoaWNhbGx5UmFuZG9tVmFsdWVzKCZ0b2tlbiwgc2l6ZW9mKHRva2VuKSk7CisK
KyAgICAgICAgaWYgKG1fa25vd25Ub2tlbnMuaXNWYWxpZFZhbHVlKHRva2VuKSAmJiAhbV9rbm93
blRva2Vucy5jb250YWlucyh0b2tlbikpCisgICAgICAgICAgICBicmVhazsKKyAgICB9CisKKyAg
ICBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcyBhdHRyaWJ1dGVzOworICAgIGF0dHJpYnV0ZXMubW9k
dWxlSW5mbyA9IHBsdWdpbk1vZHVsZUluZm87CisgICAgYXR0cmlidXRlcy5wcm9jZXNzVHlwZSA9
IHBsdWdpblByb2Nlc3NUeXBlOworICAgIGF0dHJpYnV0ZXMuc2FuZGJveFBvbGljeSA9IHBsdWdp
blByb2Nlc3NTYW5kYm94UG9saWN5OworCisgICAgbV9wbHVnaW5Qcm9jZXNzVG9rZW5zLmFwcGVu
ZChzdGQ6Om1ha2VfcGFpcihzdGQ6Om1vdmUoYXR0cmlidXRlcyksIHRva2VuKSk7CisgICAgbV9r
bm93blRva2Vucy5hZGQodG9rZW4pOworCisgICAgcmV0dXJuIHRva2VuOworfQogCi0gICAgUGx1
Z2luTW9kdWxlSW5mbyBwbHVnaW4gPSBwbHVnaW5JbmZvU3RvcmUuaW5mb0ZvclBsdWdpbldpdGhQ
YXRoKHBsdWdpblBhdGgpOwotICAgIFBsdWdpblByb2Nlc3NQcm94eSogcGx1Z2luUHJvY2VzcyA9
IGdldE9yQ3JlYXRlUGx1Z2luUHJvY2VzcyhwbHVnaW4sIHByb2Nlc3NUeXBlKTsKK3ZvaWQgUGx1
Z2luUHJvY2Vzc01hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVpbnQ2NF90IHBs
dWdpblByb2Nlc3NUb2tlbiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpH
ZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkKK3sKKyAgICBB
U1NFUlQocGx1Z2luUHJvY2Vzc1Rva2VuKTsKKworICAgIFBsdWdpblByb2Nlc3NQcm94eSogcGx1
Z2luUHJvY2VzcyA9IGdldE9yQ3JlYXRlUGx1Z2luUHJvY2VzcyhwbHVnaW5Qcm9jZXNzVG9rZW4p
OwogICAgIHBsdWdpblByb2Nlc3MtPmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHJlcGx5KTsK
IH0KIApAQCAtNjQsMzggKzk1LDM1IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnJlbW92
ZVBsdWdpblByb2Nlc3NQcm94eShQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByCiAKIHZvaWQg
UGx1Z2luUHJvY2Vzc01hbmFnZXI6OmdldFNpdGVzV2l0aERhdGEoY29uc3QgUGx1Z2luTW9kdWxl
SW5mbyYgcGx1Z2luLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIqIHdlYlBsdWdpblNpdGVEYXRh
TWFuYWdlciwgdWludDY0X3QgY2FsbGJhY2tJRCkKIHsKLSAgICBQbHVnaW5Qcm9jZXNzUHJveHkq
IHBsdWdpblByb2Nlc3MgPSBnZXRPckNyZWF0ZVBsdWdpblByb2Nlc3MocGx1Z2luLCBQbHVnaW5Q
cm9jZXNzOjpUeXBlUmVndWxhclByb2Nlc3MpOworICAgIFBsdWdpblByb2Nlc3NQcm94eSogcGx1
Z2luUHJvY2VzcyA9IGdldE9yQ3JlYXRlUGx1Z2luUHJvY2VzcyhwbHVnaW5Qcm9jZXNzVG9rZW4o
cGx1Z2luLCBQbHVnaW5Qcm9jZXNzVHlwZU5vcm1hbCwgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xp
Y3lOb3JtYWwpKTsKICAgICBwbHVnaW5Qcm9jZXNzLT5nZXRTaXRlc1dpdGhEYXRhKHdlYlBsdWdp
blNpdGVEYXRhTWFuYWdlciwgY2FsbGJhY2tJRCk7CiB9CiAKIHZvaWQgUGx1Z2luUHJvY2Vzc01h
bmFnZXI6OmNsZWFyU2l0ZURhdGEoY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luLCBXZWJQ
bHVnaW5TaXRlRGF0YU1hbmFnZXIqIHdlYlBsdWdpblNpdGVEYXRhTWFuYWdlciwgY29uc3QgVmVj
dG9yPFN0cmluZz4mIHNpdGVzLCB1aW50NjRfdCBmbGFncywgdWludDY0X3QgbWF4QWdlSW5TZWNv
bmRzLCB1aW50NjRfdCBjYWxsYmFja0lEKQogewotICAgIFBsdWdpblByb2Nlc3NQcm94eSogcGx1
Z2luUHJvY2VzcyA9IGdldE9yQ3JlYXRlUGx1Z2luUHJvY2VzcyhwbHVnaW4sIFBsdWdpblByb2Nl
c3M6OlR5cGVSZWd1bGFyUHJvY2Vzcyk7CisgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KiBwbHVnaW5Q
cm9jZXNzID0gZ2V0T3JDcmVhdGVQbHVnaW5Qcm9jZXNzKHBsdWdpblByb2Nlc3NUb2tlbihwbHVn
aW4sIFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsLCBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeU5v
cm1hbCkpOwogICAgIHBsdWdpblByb2Nlc3MtPmNsZWFyU2l0ZURhdGEod2ViUGx1Z2luU2l0ZURh
dGFNYW5hZ2VyLCBzaXRlcywgZmxhZ3MsIG1heEFnZUluU2Vjb25kcywgY2FsbGJhY2tJRCk7CiB9
CiAKLVBsdWdpblByb2Nlc3NQcm94eSogUGx1Z2luUHJvY2Vzc01hbmFnZXI6OnBsdWdpblByb2Nl
c3NXaXRoUGF0aChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFBsdWdpblByb2Nlc3M6OlR5cGUg
cHJvY2Vzc1R5cGUpCitQbHVnaW5Qcm9jZXNzUHJveHkqIFBsdWdpblByb2Nlc3NNYW5hZ2VyOjpn
ZXRPckNyZWF0ZVBsdWdpblByb2Nlc3ModWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKQogewog
ICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wbHVnaW5Qcm9jZXNzZXMuc2l6ZSgpOyArK2kp
IHsKLSAgICAgICAgUmVmUHRyPFBsdWdpblByb2Nlc3NQcm94eT4mIHBsdWdpblByb2Nlc3NQcm94
eSA9IG1fcGx1Z2luUHJvY2Vzc2VzW2ldOwotICAgICAgICBpZiAocGx1Z2luUHJvY2Vzc1Byb3h5
LT5wbHVnaW5JbmZvKCkucGF0aCA9PSBwbHVnaW5QYXRoICYmIHBsdWdpblByb2Nlc3NQcm94eS0+
cHJvY2Vzc1R5cGUoKSA9PSBwcm9jZXNzVHlwZSkKLSAgICAgICAgICAgIHJldHVybiBwbHVnaW5Q
cm9jZXNzUHJveHkuZ2V0KCk7CisgICAgICAgIGlmIChtX3BsdWdpblByb2Nlc3Nlc1tpXS0+cGx1
Z2luUHJvY2Vzc1Rva2VuKCkgPT0gcGx1Z2luUHJvY2Vzc1Rva2VuKQorICAgICAgICAgICAgcmV0
dXJuIG1fcGx1Z2luUHJvY2Vzc2VzW2ldLmdldCgpOwogICAgIH0KIAotICAgIHJldHVybiAwOwot
fQorICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgbV9wbHVnaW5Qcm9jZXNzVG9rZW5zLnNpemUo
KTsgKytpKSB7CisgICAgICAgIGF1dG8mIGF0dHJpYnV0ZXNBbmRUb2tlbiA9IG1fcGx1Z2luUHJv
Y2Vzc1Rva2Vuc1tpXTsKKyAgICAgICAgaWYgKGF0dHJpYnV0ZXNBbmRUb2tlbi5zZWNvbmQgPT0g
cGx1Z2luUHJvY2Vzc1Rva2VuKSB7CisgICAgICAgICAgICBSZWZQdHI8UGx1Z2luUHJvY2Vzc1By
b3h5PiBwbHVnaW5Qcm9jZXNzID0gUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGUodGhpcywgYXR0
cmlidXRlc0FuZFRva2VuLmZpcnN0LCBhdHRyaWJ1dGVzQW5kVG9rZW4uc2Vjb25kKTsKKyAgICAg
ICAgICAgIFBsdWdpblByb2Nlc3NQcm94eSogcGx1Z2luUHJvY2Vzc1B0ciA9IHBsdWdpblByb2Nl
c3MuZ2V0KCk7CiAKLVBsdWdpblByb2Nlc3NQcm94eSogUGx1Z2luUHJvY2Vzc01hbmFnZXI6Omdl
dE9yQ3JlYXRlUGx1Z2luUHJvY2Vzcyhjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4sIFBs
dWdpblByb2Nlc3M6OlR5cGUgcHJvY2Vzc1R5cGUpCi17Ci0gICAgaWYgKFBsdWdpblByb2Nlc3NQ
cm94eSogcGx1Z2luUHJvY2VzcyA9IHBsdWdpblByb2Nlc3NXaXRoUGF0aChwbHVnaW4ucGF0aCwg
cHJvY2Vzc1R5cGUpKQotICAgICAgICByZXR1cm4gcGx1Z2luUHJvY2VzczsKLQotICAgIFJlZlB0
cjxQbHVnaW5Qcm9jZXNzUHJveHk+IHBsdWdpblByb2Nlc3MgPSBQbHVnaW5Qcm9jZXNzUHJveHk6
OmNyZWF0ZSh0aGlzLCBwbHVnaW4sIHByb2Nlc3NUeXBlKTsKLSAgICBQbHVnaW5Qcm9jZXNzUHJv
eHkqIHBsdWdpblByb2Nlc3NQdHIgPSBwbHVnaW5Qcm9jZXNzLmdldCgpOwotCi0gICAgbV9wbHVn
aW5Qcm9jZXNzZXMuYXBwZW5kKHBsdWdpblByb2Nlc3MucmVsZWFzZSgpKTsKKyAgICAgICAgICAg
IG1fcGx1Z2luUHJvY2Vzc2VzLmFwcGVuZChwbHVnaW5Qcm9jZXNzLnJlbGVhc2UoKSk7CisgICAg
ICAgICAgICByZXR1cm4gcGx1Z2luUHJvY2Vzc1B0cjsKKyAgICAgICAgfQorICAgIH0KIAotICAg
IHJldHVybiBwbHVnaW5Qcm9jZXNzUHRyOworICAgIHJldHVybiBudWxscHRyOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9Q
bHVnaW5zL1BsdWdpblByb2Nlc3NNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm9jZXNzTWFuYWdlci5oCmluZGV4IGZlNTEwNTg2ZWUwZGI1M2YyZWZh
ZmY5YWQxMjNhYTE4YTEzMjg2MmMuLjMwN2MzOTgxMDRmYTI5MTk5NmYyZDc1OTlkNzNiMjI0NzYy
ZDdlMjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdp
blByb2Nlc3NNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc01hbmFnZXIuaApAQCAtMzAsOCArMzAsMTAgQEAKIAogI2luY2x1ZGUgIlBs
dWdpbk1vZHVsZUluZm8uaCIKICNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzLmgiCisjaW5jbHVkZSAi
UGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHlNZXNz
YWdlcy5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL0hhc2hTZXQu
aD4KICNpbmNsdWRlIDx3dGYvTm9uY29weWFibGUuaD4KICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+
CiAKQEAgLTUxLDcgKzUzLDkgQEAgY2xhc3MgUGx1Z2luUHJvY2Vzc01hbmFnZXIgewogcHVibGlj
OgogICAgIHN0YXRpYyBQbHVnaW5Qcm9jZXNzTWFuYWdlciYgc2hhcmVkKCk7CiAKLSAgICB2b2lk
IGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IFBsdWdpbkluZm9TdG9yZSYsIGNvbnN0
IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luUHJvY2Vzczo6VHlwZSwgUGFzc1JlZlB0cjxNZXNz
YWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXll
ZFJlcGx5Pik7CisgICAgdWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKGNvbnN0IFBsdWdpbk1v
ZHVsZUluZm8mLCBQbHVnaW5Qcm9jZXNzVHlwZSwgUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xpY3kp
OworCisgICAgdm9pZCBnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRfdCBwbHVnaW5Q
cm9jZXNzVG9rZW4sIFBhc3NSZWZQdHI8TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRlbGF5ZWRSZXBseT4pOwogICAgIHZvaWQgcmVtb3ZlUGx1
Z2luUHJvY2Vzc1Byb3h5KFBsdWdpblByb2Nlc3NQcm94eSopOwogCiAgICAgdm9pZCBnZXRTaXRl
c1dpdGhEYXRhKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mLCBXZWJQbHVnaW5TaXRlRGF0YU1hbmFn
ZXIqLCB1aW50NjRfdCBjYWxsYmFja0lEKTsKQEAgLTY0LDggKzY4LDEwIEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgUGx1Z2luUHJvY2Vzc01hbmFnZXIoKTsKIAotICAgIFBsdWdpblByb2Nlc3NQ
cm94eSogZ2V0T3JDcmVhdGVQbHVnaW5Qcm9jZXNzKGNvbnN0IFBsdWdpbk1vZHVsZUluZm8mLCBQ
bHVnaW5Qcm9jZXNzOjpUeXBlKTsKLSAgICBQbHVnaW5Qcm9jZXNzUHJveHkqIHBsdWdpblByb2Nl
c3NXaXRoUGF0aChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFBsdWdpblByb2Nlc3M6OlR5cGUp
OworICAgIFBsdWdpblByb2Nlc3NQcm94eSogZ2V0T3JDcmVhdGVQbHVnaW5Qcm9jZXNzKHVpbnQ2
NF90IHBsdWdpblByb2Nlc3NUb2tlbik7CisKKyAgICBWZWN0b3I8c3RkOjpwYWlyPFBsdWdpblBy
b2Nlc3NBdHRyaWJ1dGVzLCB1aW50NjRfdD4+IG1fcGx1Z2luUHJvY2Vzc1Rva2VuczsKKyAgICBI
YXNoU2V0PHVpbnQ2NF90PiBtX2tub3duVG9rZW5zOwogCiAgICAgVmVjdG9yPFJlZlB0cjxQbHVn
aW5Qcm9jZXNzUHJveHk+PiBtX3BsdWdpblByb2Nlc3NlczsKIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmNwcAppbmRl
eCA4NmM3MDU0YTU4OGViYmY0MmM1ZTQwYmExZTY0YmFiM2VkZTI3YjY5Li5jYThhYzg3OTU3ODBl
YTE3MThjYWZjZDVhYzU3NDFmM2QxZjYxZTIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5jcHAKQEAgLTUzLDIxICs1
MywyMSBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHNuYXBzaG90dGluZ01pbmltdW1MaWZldGltZSA9
IDMwOwogc3RhdGljIGNvbnN0IGRvdWJsZSBzaHV0ZG93blRpbWVvdXQgPSAxICogNjA7CiBzdGF0
aWMgY29uc3QgZG91YmxlIHNuYXBzaG90dGluZ1NodXRkb3duVGltZW91dCA9IDE1OwogCi1QYXNz
UmVmUHRyPFBsdWdpblByb2Nlc3NQcm94eT4gUGx1Z2luUHJvY2Vzc1Byb3h5OjpjcmVhdGUoUGx1
Z2luUHJvY2Vzc01hbmFnZXIqIFBsdWdpblByb2Nlc3NNYW5hZ2VyLCBjb25zdCBQbHVnaW5Nb2R1
bGVJbmZvJiBwbHVnaW5JbmZvLCBQbHVnaW5Qcm9jZXNzOjpUeXBlIHByb2Nlc3NUeXBlKQorUGFz
c1JlZlB0cjxQbHVnaW5Qcm9jZXNzUHJveHk+IFBsdWdpblByb2Nlc3NQcm94eTo6Y3JlYXRlKFBs
dWdpblByb2Nlc3NNYW5hZ2VyKiBQbHVnaW5Qcm9jZXNzTWFuYWdlciwgY29uc3QgUGx1Z2luUHJv
Y2Vzc0F0dHJpYnV0ZXMmIHBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLCB1aW50NjRfdCBwbHVnaW5Q
cm9jZXNzVG9rZW4pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5Qcm9jZXNzUHJv
eHkoUGx1Z2luUHJvY2Vzc01hbmFnZXIsIHBsdWdpbkluZm8sIHByb2Nlc3NUeXBlKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5Qcm9jZXNzUHJveHkoUGx1Z2luUHJvY2Vzc01hbmFn
ZXIsIHBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLCBwbHVnaW5Qcm9jZXNzVG9rZW4pKTsKIH0KIAot
UGx1Z2luUHJvY2Vzc1Byb3h5OjpQbHVnaW5Qcm9jZXNzUHJveHkoUGx1Z2luUHJvY2Vzc01hbmFn
ZXIqIFBsdWdpblByb2Nlc3NNYW5hZ2VyLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW5J
bmZvLCBQbHVnaW5Qcm9jZXNzOjpUeXBlIHByb2Nlc3NUeXBlKQorUGx1Z2luUHJvY2Vzc1Byb3h5
OjpQbHVnaW5Qcm9jZXNzUHJveHkoUGx1Z2luUHJvY2Vzc01hbmFnZXIqIFBsdWdpblByb2Nlc3NN
YW5hZ2VyLCBjb25zdCBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcyYgcGx1Z2luUHJvY2Vzc0F0dHJp
YnV0ZXMsIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikKICAgICA6IG1fcGx1Z2luUHJvY2Vz
c01hbmFnZXIoUGx1Z2luUHJvY2Vzc01hbmFnZXIpCi0gICAgLCBtX3BsdWdpbkluZm8ocGx1Z2lu
SW5mbykKKyAgICAsIG1fcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMocGx1Z2luUHJvY2Vzc0F0dHJp
YnV0ZXMpCisgICAgLCBtX3BsdWdpblByb2Nlc3NUb2tlbihwbHVnaW5Qcm9jZXNzVG9rZW4pCiAg
ICAgLCBtX251bVBlbmRpbmdDb25uZWN0aW9uUmVxdWVzdHMoMCkKICNpZiBQTEFURk9STShNQUMp
CiAgICAgLCBtX21vZGFsV2luZG93SXNTaG93aW5nKGZhbHNlKQogICAgICwgbV9mdWxsc2NyZWVu
V2luZG93SXNTaG93aW5nKGZhbHNlKQogICAgICwgbV9wcmVGdWxsc2NyZWVuQXBwUHJlc2VudGF0
aW9uT3B0aW9ucygwKQogI2VuZGlmCi0gICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQog
ewogICAgIGNvbm5lY3QoKTsKIH0KQEAgLTc5LDcgKzc5LDcgQEAgUGx1Z2luUHJvY2Vzc1Byb3h5
Ojp+UGx1Z2luUHJvY2Vzc1Byb3h5KCkKIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpnZXRMYXVu
Y2hPcHRpb25zKFByb2Nlc3NMYXVuY2hlcjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucykK
IHsKICAgICBsYXVuY2hPcHRpb25zLnByb2Nlc3NUeXBlID0gUHJvY2Vzc0xhdW5jaGVyOjpQbHVn
aW5Qcm9jZXNzOwotICAgIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25zLCBt
X3BsdWdpbkluZm8pOworICAgIHBsYXRmb3JtR2V0TGF1bmNoT3B0aW9ucyhsYXVuY2hPcHRpb25z
LCBtX3BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzKTsKIH0KIAogLy8gQXNrcyB0aGUgcGx1Zy1pbiBw
cm9jZXNzIHRvIGNyZWF0ZSBhIG5ldyBjb25uZWN0aW9uIHRvIGEgd2ViIHByb2Nlc3MuIFRoZSBj
b25uZWN0aW9uIGlkZW50aWZpZXIgd2lsbCBiZSAKQEAgLTE3Myw3ICsxNzMsNyBAQCB2b2lkIFBs
dWdpblByb2Nlc3NQcm94eTo6ZGlkQ2xvc2UoQ29yZUlQQzo6Q29ubmVjdGlvbiopCiAKICAgICBj
b25zdCBWZWN0b3I8V2ViQ29udGV4dCo+JiBjb250ZXh0cyA9IFdlYkNvbnRleHQ6OmFsbENvbnRl
eHRzKCk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBjb250ZXh0cy5zaXplKCk7ICsraSkK
LSAgICAgICAgY29udGV4dHNbaV0tPnNlbmRUb0FsbFByb2Nlc3NlcyhNZXNzYWdlczo6UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpQbHVnaW5Qcm9jZXNzQ3Jhc2hlZChtX3BsdWdpbklu
Zm8ucGF0aCwgbV9wcm9jZXNzVHlwZSkpOworICAgICAgICBjb250ZXh0c1tpXS0+c2VuZFRvQWxs
UHJvY2Vzc2VzKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OlBsdWdp
blByb2Nlc3NDcmFzaGVkKG1fcGx1Z2luUHJvY2Vzc1Rva2VuKSk7CiAKICAgICAvLyBUaGlzIHdp
bGwgY2F1c2UgdXMgdG8gYmUgZGVsZXRlZC4KICAgICBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZE9yRmFp
bGVkVG9MYXVuY2goKTsKQEAgLTIwMiw4ICsyMDIsOCBAQCB2b2lkIFBsdWdpblByb2Nlc3NQcm94
eTo6ZGlkRmluaXNoTGF1bmNoaW5nKFByb2Nlc3NMYXVuY2hlciosIENvcmVJUEM6OkNvbm5lY3Rp
bwogICAgIG1fY29ubmVjdGlvbi0+b3BlbigpOwogICAgIAogICAgIFBsdWdpblByb2Nlc3NDcmVh
dGlvblBhcmFtZXRlcnMgcGFyYW1ldGVyczsKLSAgICBwYXJhbWV0ZXJzLnByb2Nlc3NUeXBlID0g
bV9wcm9jZXNzVHlwZTsKLSAgICBpZiAobV9wcm9jZXNzVHlwZSA9PSBQbHVnaW5Qcm9jZXNzOjpU
eXBlU25hcHNob3RQcm9jZXNzKSB7CisgICAgcGFyYW1ldGVycy5wcm9jZXNzVHlwZSA9IG1fcGx1
Z2luUHJvY2Vzc0F0dHJpYnV0ZXMucHJvY2Vzc1R5cGU7CisgICAgaWYgKHBhcmFtZXRlcnMucHJv
Y2Vzc1R5cGUgPT0gUGx1Z2luUHJvY2Vzc1R5cGVTbmFwc2hvdCkgewogICAgICAgICBwYXJhbWV0
ZXJzLm1pbmltdW1MaWZldGltZSA9IHNuYXBzaG90dGluZ01pbmltdW1MaWZldGltZTsKICAgICAg
ICAgcGFyYW1ldGVycy50ZXJtaW5hdGlvblRpbWVvdXQgPSBzbmFwc2hvdHRpbmdTaHV0ZG93blRp
bWVvdXQ7CiAgICAgfSBlbHNlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1BsdWdpbnMvUGx1Z2luUHJvY2Vzc1Byb3h5LmgKaW5kZXggNDU3OGUzNWZhM2MzYTE1MmJjZTI5
NzhhOTA4Njg5MGE5YjFhODA3ZC4uMTJhYjUwY2JjNDY3NTY5YzJkYWYzN2U1ZmE2NTMzNWEwNzAx
OTk0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1Z2lu
UHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1BsdWdpbnMvUGx1
Z2luUHJvY2Vzc1Byb3h5LmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJDb25uZWN0aW9u
LmgiCiAjaW5jbHVkZSAiUGx1Z2luTW9kdWxlSW5mby5oIgogI2luY2x1ZGUgIlBsdWdpblByb2Nl
c3MuaCIKKyNpbmNsdWRlICJQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5oIgogI2luY2x1ZGUgIlBy
b2Nlc3NMYXVuY2hlci5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgiCiAj
aW5jbHVkZSA8d3RmL0RlcXVlLmg+CkBAIC02NCwxMiArNjUsMTMgQEAgc3RydWN0IFJhd1BsdWdp
bk1ldGFEYXRhIHsKIAogY2xhc3MgUGx1Z2luUHJvY2Vzc1Byb3h5IDogcHVibGljIENoaWxkUHJv
Y2Vzc1Byb3h5IHsKIHB1YmxpYzoKLSAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5Qcm9jZXNz
UHJveHk+IGNyZWF0ZShQbHVnaW5Qcm9jZXNzTWFuYWdlciosIGNvbnN0IFBsdWdpbk1vZHVsZUlu
Zm8mLCBQbHVnaW5Qcm9jZXNzOjpUeXBlKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5Q
cm9jZXNzUHJveHk+IGNyZWF0ZShQbHVnaW5Qcm9jZXNzTWFuYWdlciosIGNvbnN0IFBsdWdpblBy
b2Nlc3NBdHRyaWJ1dGVzJiwgdWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKTsKICAgICB+UGx1
Z2luUHJvY2Vzc1Byb3h5KCk7CiAKLSAgICBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW5J
bmZvKCkgY29uc3QgeyByZXR1cm4gbV9wbHVnaW5JbmZvOyB9CisgICAgY29uc3QgUGx1Z2luUHJv
Y2Vzc0F0dHJpYnV0ZXMmIHBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzKCkgY29uc3QgeyByZXR1cm4g
bV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRlczsgfQorICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NU
b2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luUHJvY2Vzc1Rva2VuOyB9CiAKLSAgICAvLyBB
c2tzIHRoZSBwbHVnLWluIHByb2Nlc3MgdG8gY3JlYXRlIGEgbmV3IGNvbm5lY3Rpb24gdG8gYSB3
ZWIgcHJvY2Vzcy4gVGhlIGNvbm5lY3Rpb24gaWRlbnRpZmllciB3aWxsIGJlIAorICAgIC8vIEFz
a3MgdGhlIHBsdWctaW4gcHJvY2VzcyB0byBjcmVhdGUgYSBuZXcgY29ubmVjdGlvbiB0byBhIHdl
YiBwcm9jZXNzLiBUaGUgY29ubmVjdGlvbiBpZGVudGlmaWVyIHdpbGwgYmUKICAgICAvLyBlbmNv
ZGVkIGluIHRoZSBnaXZlbiBhcmd1bWVudCBlbmNvZGVyIGFuZCBzZW50IGJhY2sgdG8gdGhlIGNv
bm5lY3Rpb24gb2YgdGhlIGdpdmVuIHdlYiBwcm9jZXNzLgogICAgIHZvaWQgZ2V0UGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24oUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vzc1Byb3h5OjpHZXRQ
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5Pik7CiAgICAgCkBAIC04MSw4ICs4
Myw2IEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNWYWxpZCgpIGNvbnN0IHsgcmV0dXJuIG1fY29u
bmVjdGlvbjsgfQogCi0gICAgUGx1Z2luUHJvY2Vzczo6VHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0
IHsgcmV0dXJuIG1fcHJvY2Vzc1R5cGU7IH0KLQogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lk
IHNldFByb2Nlc3NTdXBwcmVzc2lvbkVuYWJsZWQoYm9vbCk7CiAKQEAgLTk4LDEwICs5OCwxMCBA
QCBwdWJsaWM6CiAjZW5kaWYKIAogcHJpdmF0ZToKLSAgICBQbHVnaW5Qcm9jZXNzUHJveHkoUGx1
Z2luUHJvY2Vzc01hbmFnZXIqLCBjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiwgUGx1Z2luUHJvY2Vz
czo6VHlwZSk7CisgICAgUGx1Z2luUHJvY2Vzc1Byb3h5KFBsdWdpblByb2Nlc3NNYW5hZ2VyKiwg
Y29uc3QgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMmLCB1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9r
ZW4pOwogCiAgICAgdmlydHVhbCB2b2lkIGdldExhdW5jaE9wdGlvbnMoUHJvY2Vzc0xhdW5jaGVy
OjpMYXVuY2hPcHRpb25zJikgT1ZFUlJJREU7Ci0gICAgdm9pZCBwbGF0Zm9ybUdldExhdW5jaE9w
dGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiwgY29uc3QgUGx1Z2luTW9kdWxl
SW5mbyYpOworICAgIHZvaWQgcGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYsIGNvbnN0IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzJik7CiAKICAg
ICB2b2lkIHBsdWdpblByb2Nlc3NDcmFzaGVkT3JGYWlsZWRUb0xhdW5jaCgpOwogCkBAIC0xNDAs
OSArMTQwLDkgQEAgcHJpdmF0ZToKIAogICAgIC8vIFRoZSBwbHVnLWluIGhvc3QgcHJvY2VzcyBt
YW5hZ2VyLgogICAgIFBsdWdpblByb2Nlc3NNYW5hZ2VyKiBtX3BsdWdpblByb2Nlc3NNYW5hZ2Vy
OwotICAgIAotICAgIC8vIEluZm9ybWF0aW9uIGFib3V0IHRoZSBwbHVnLWluLgotICAgIFBsdWdp
bk1vZHVsZUluZm8gbV9wbHVnaW5JbmZvOworCisgICAgUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMg
bV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRlczsKKyAgICB1aW50NjRfdCBtX3BsdWdpblByb2Nlc3NU
b2tlbjsKIAogICAgIC8vIFRoZSBjb25uZWN0aW9uIHRvIHRoZSBwbHVnLWluIGhvc3QgcHJvY2Vz
cy4KICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4gbV9jb25uZWN0aW9uOwpAQCAtMTcy
LDggKzE3Miw2IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2Z1bGxzY3JlZW5XaW5kb3dJc1Nob3dp
bmc7CiAgICAgdW5zaWduZWQgbV9wcmVGdWxsc2NyZWVuQXBwUHJlc2VudGF0aW9uT3B0aW9uczsK
ICNlbmRpZgotCi0gICAgUGx1Z2luUHJvY2Vzczo6VHlwZSBtX3Byb2Nlc3NUeXBlOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFjLm1tIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpbkluZm9TdG9yZU1hYy5tbQppbmRleCBhMWVhNjgxODMw
Mzc4NjEyOTQ1N2Y0MTcwOGQyZTNiZWM1ZTZjNzhjLi41ZmJlYWIyN2IxNTc1OTliODY1ODhkNzM5
MTYwNDQ1ZDVjMWNiNzU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvUGx1
Z2lucy9tYWMvUGx1Z2luSW5mb1N0b3JlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9QbHVnaW5zL21hYy9QbHVnaW5JbmZvU3RvcmVNYWMubW0KQEAgLTEwOSw3ICsxMDksNyBA
QCBzdGF0aWMgYm9vbCBjaGVja0ZvclByZWZlcnJlZFBsdWdpbihWZWN0b3I8UGx1Z2luTW9kdWxl
SW5mbz4mIGFscmVhZHlMb2FkZWRQbHVnaQogCiBzdGF0aWMgYm9vbCBzaG91bGRCbG9ja1BsdWdp
bihjb25zdCBQbHVnaW5Nb2R1bGVJbmZvJiBwbHVnaW4pCiB7Ci0gICAgcmV0dXJuIFBsdWdpbklu
Zm9TdG9yZTo6cG9saWN5Rm9yUGx1Z2luKHBsdWdpbikgPT0gUGx1Z2luTW9kdWxlQmxvY2tlZDsK
KyAgICByZXR1cm4gUGx1Z2luSW5mb1N0b3JlOjpkZWZhdWx0TG9hZFBvbGljeUZvclBsdWdpbihw
bHVnaW4pID09IFBsdWdpbk1vZHVsZUJsb2NrZWQ7CiB9CiAKIGJvb2wgUGx1Z2luSW5mb1N0b3Jl
OjpzaG91bGRVc2VQbHVnaW4oVmVjdG9yPFBsdWdpbk1vZHVsZUluZm8+JiBhbHJlYWR5TG9hZGVk
UGx1Z2lucywgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQpAQCAtMTQwLDcgKzE0MCw3
IEBAIGJvb2wgUGx1Z2luSW5mb1N0b3JlOjpzaG91bGRVc2VQbHVnaW4oVmVjdG9yPFBsdWdpbk1v
ZHVsZUluZm8+JiBhbHJlYWR5TG9hZGVkUGx1CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKLVBsdWdp
bk1vZHVsZUxvYWRQb2xpY3kgUGx1Z2luSW5mb1N0b3JlOjpwb2xpY3lGb3JQbHVnaW4oY29uc3Qg
UGx1Z2luTW9kdWxlSW5mbyYgcGx1Z2luKQorUGx1Z2luTW9kdWxlTG9hZFBvbGljeSBQbHVnaW5J
bmZvU3RvcmU6OmRlZmF1bHRMb2FkUG9saWN5Rm9yUGx1Z2luKGNvbnN0IFBsdWdpbk1vZHVsZUlu
Zm8mIHBsdWdpbikKIHsKICAgICBpZiAoV0tTaG91bGRCbG9ja1BsdWdpbihwbHVnaW4uYnVuZGxl
SWRlbnRpZmllciwgcGx1Z2luLnZlcnNpb25TdHJpbmcpKQogICAgICAgICByZXR1cm4gUGx1Z2lu
TW9kdWxlQmxvY2tlZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvUGx1Z2lucy9tYWMvUGx1Z2luUHJvY2Vzc1Byb3h5TWFjLm1tCmluZGV4IDNjYTkyNGZkODhm
YmE2MjZjYmY0OGU3NzVmZGJkOGRkMzJjNTY5ZGUuLjkxZjgyYzBmOWQxODUyZmYwNDk4YzA4N2Y4
NTY3ZGFiOTE4ZDIwNDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9QbHVn
aW5zL21hYy9QbHVnaW5Qcm9jZXNzUHJveHlNYWMubW0KKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1BsdWdpbnMvbWFjL1BsdWdpblByb2Nlc3NQcm94eU1hYy5tbQpAQCAtMTM0LDExICsx
MzQsMTUgQEAgc3RhdGljIGJvb2wgc2hvdWxkVXNlWFBDKCkKIH0KICNlbmRpZgogCi12b2lkIFBs
dWdpblByb2Nlc3NQcm94eTo6cGxhdGZvcm1HZXRMYXVuY2hPcHRpb25zKFByb2Nlc3NMYXVuY2hl
cjo6TGF1bmNoT3B0aW9ucyYgbGF1bmNoT3B0aW9ucywgY29uc3QgUGx1Z2luTW9kdWxlSW5mbyYg
cGx1Z2luSW5mbykKK3ZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9w
dGlvbnMoUHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zJiBsYXVuY2hPcHRpb25zLCBjb25z
dCBQbHVnaW5Qcm9jZXNzQXR0cmlidXRlcyYgcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMpCiB7Ci0g
ICAgbGF1bmNoT3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBwbHVnaW5JbmZvLnBsdWdpbkFyY2hpdGVj
dHVyZTsKLSAgICBsYXVuY2hPcHRpb25zLmV4ZWN1dGFibGVIZWFwID0gUGx1Z2luUHJvY2Vzc1By
b3h5OjpwbHVnaW5OZWVkc0V4ZWN1dGFibGVIZWFwKHBsdWdpbkluZm8pOwotICAgIGxhdW5jaE9w
dGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJwbHVnaW4tcGF0aCIsIHBsdWdpbklu
Zm8ucGF0aCk7CisgICAgbGF1bmNoT3B0aW9ucy5hcmNoaXRlY3R1cmUgPSBwbHVnaW5Qcm9jZXNz
QXR0cmlidXRlcy5tb2R1bGVJbmZvLnBsdWdpbkFyY2hpdGVjdHVyZTsKKyAgICBsYXVuY2hPcHRp
b25zLmV4ZWN1dGFibGVIZWFwID0gUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbHVnaW5OZWVkc0V4ZWN1
dGFibGVIZWFwKHBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLm1vZHVsZUluZm8pOworICAgIGxhdW5j
aE9wdGlvbnMuZXh0cmFJbml0aWFsaXphdGlvbkRhdGEuYWRkKCJwbHVnaW4tcGF0aCIsIHBsdWdp
blByb2Nlc3NBdHRyaWJ1dGVzLm1vZHVsZUluZm8ucGF0aCk7CisKKyAgICAvLyBGSVhNRTogRG9u
J3QgYWxsb3cgdGhpcyBpZiB0aGUgVUkgcHJvY2VzcyBpcyBzYW5kYm94ZWQuCisgICAgaWYgKHBs
dWdpblByb2Nlc3NBdHRyaWJ1dGVzLnNhbmRib3hQb2xpY3kgPT0gUGx1Z2luUHJvY2Vzc1NhbmRi
b3hQb2xpY3lVbnNhbmRib3hlZCkKKyAgICAgICAgbGF1bmNoT3B0aW9ucy5leHRyYUluaXRpYWxp
emF0aW9uRGF0YS5hZGQoImRpc2FibGUtc2FuZGJveCIsICIxIik7CiAKICNpZiBIQVZFKFhQQykK
ICAgICBsYXVuY2hPcHRpb25zLnVzZVhQQyA9IHNob3VsZFVzZVhQQygpOwpAQCAtMTQ4LDcgKzE1
Miw3IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc1Byb3h5OjpwbGF0Zm9ybUdldExhdW5jaE9wdGlvbnMo
UHJvY2Vzc0xhdW5jaGVyOjpMYXVuY2hPcHRpb25zCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6
cGxhdGZvcm1Jbml0aWFsaXplUGx1Z2luUHJvY2VzcyhQbHVnaW5Qcm9jZXNzQ3JlYXRpb25QYXJh
bWV0ZXJzJiBwYXJhbWV0ZXJzKQogewogICAgIC8vIEZvciBub3cgb25seSBGbGFzaCBpcyBrbm93
biB0byBiZWhhdmUgd2l0aCBhc3luY2hyb25vdXMgcGx1Zy1pbiBpbml0aWFsaXphdGlvbi4KLSAg
ICBwYXJhbWV0ZXJzLnN1cHBvcnRzQXN5bmNocm9ub3VzUGx1Z2luSW5pdGlhbGl6YXRpb24gPSBt
X3BsdWdpbkluZm8uYnVuZGxlSWRlbnRpZmllciA9PSAiY29tLm1hY3JvbWVkaWEuRmxhc2ggUGxh
eWVyLnBsdWdpbiI7CisgICAgcGFyYW1ldGVycy5zdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbklu
aXRpYWxpemF0aW9uID0gbV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5tb2R1bGVJbmZvLmJ1bmRs
ZUlkZW50aWZpZXIgPT0gImNvbS5tYWNyb21lZGlhLkZsYXNoIFBsYXllci5wbHVnaW4iOwogCiAj
aWYgVVNFKEFDQ0VMRVJBVEVEX0NPTVBPU0lUSU5HKSAmJiBIQVZFKEhPU1RFRF9DT1JFX0FOSU1B
VElPTikKICAgICBtYWNoX3BvcnRfdCByZW5kZXJTZXJ2ZXJQb3J0ID0gW1tDQVJlbW90ZUxheWVy
U2VydmVyIHNoYXJlZFNlcnZlcl0gc2VydmVyUG9ydF07CkBAIC0zMzEsMTIgKzMzNSwxMiBAQCB2
b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6c2V0UHJvY2Vzc1N1cHByZXNzaW9uRW5hYmxlZChib29s
IHByb2Nlc3NTdXBwcmVzc2lvbkVuYQogCiB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6b3BlblBs
dWdpblByZWZlcmVuY2VQYW5lKCkKIHsKLSAgICBpZiAoIW1fcGx1Z2luSW5mby5wcmVmZXJlbmNl
UGFuZVBhdGgpCisgICAgaWYgKCFtX3BsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLm1vZHVsZUluZm8u
cHJlZmVyZW5jZVBhbmVQYXRoKQogICAgICAgICByZXR1cm47CiAKLSAgICBOU1VSTCAqcHJlZmVy
ZW5jZVVSTCA9IFtOU1VSTCBmaWxlVVJMV2l0aFBhdGg6bV9wbHVnaW5JbmZvLnByZWZlcmVuY2VQ
YW5lUGF0aF07CisgICAgTlNVUkwgKnByZWZlcmVuY2VVUkwgPSBbTlNVUkwgZmlsZVVSTFdpdGhQ
YXRoOm1fcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMubW9kdWxlSW5mby5wcmVmZXJlbmNlUGFuZVBh
dGhdOwogICAgIGlmICghcHJlZmVyZW5jZVVSTCkgewotICAgICAgICBMT0dfRVJST1IoIkNyZWF0
aW5nIFVSTCBmb3IgcHJlZmVyZW5jZSBwYW5lIHBhdGggXCIlQFwiIGZhaWxlZC4iLCAoTlNTdHJp
bmcgKiltX3BsdWdpbkluZm8ucHJlZmVyZW5jZVBhbmVQYXRoKTsKKyAgICAgICAgTE9HX0VSUk9S
KCJDcmVhdGluZyBVUkwgZm9yIHByZWZlcmVuY2UgcGFuZSBwYXRoIFwiJUBcIiBmYWlsZWQuIiwg
KE5TU3RyaW5nICopbV9wbHVnaW5Qcm9jZXNzQXR0cmlidXRlcy5tb2R1bGVJbmZvLnByZWZlcmVu
Y2VQYW5lUGF0aCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKQEAgLTM1MSw3ICszNTUsNyBA
QCB2b2lkIFBsdWdpblByb2Nlc3NQcm94eTo6b3BlblBsdWdpblByZWZlcmVuY2VQYW5lKCkKIAog
ICAgIE9TU3RhdHVzIGVycm9yID0gTFNPcGVuRnJvbVVSTFNwZWMoJnByZWZTcGVjLCAwKTsKICAg
ICBpZiAoZXJyb3IgIT0gbm9FcnIpCi0gICAgICAgIExPR19FUlJPUigiTFNPcGVuRnJvbVVSTFNw
ZWMgdG8gb3BlbiBcIiVAXCIgZmFpbGVkIHdpdGggZXJyb3IgJWQuIiwgKE5TU3RyaW5nICopbV9w
bHVnaW5JbmZvLnByZWZlcmVuY2VQYW5lUGF0aCwgZXJyb3IpOworICAgICAgICBMT0dfRVJST1Io
IkxTT3BlbkZyb21VUkxTcGVjIHRvIG9wZW4gXCIlQFwiIGZhaWxlZCB3aXRoIGVycm9yICVkLiIs
IChOU1N0cmluZyAqKW1fcGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMubW9kdWxlSW5mby5wcmVmZXJl
bmNlUGFuZVBhdGgsIGVycm9yKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGY4YmRlMTQ3MzE2ZGUyMDZh
MmU3NTA0MWRhNTUyNzgwOWM1YjMyMmUuLmZjYTI3MjRmZjBlZTUzMmYyMjU2ODA0ODU3ZTlmMTg2
NzJlMWEyNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJv
eHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBA
IC00NCw2ICs0NCw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVlc3RN
YW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGFnZUNsaWVudC5oIgogI2luY2x1ZGUgIlBsdWdpbkluZm9y
bWF0aW9uLmgiCisjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc01hbmFnZXIuaCIKICNpbmNsdWRlICJQ
cmludEluZm8uaCIKICNpbmNsdWRlICJTZXNzaW9uU3RhdGUuaCIKICNpbmNsdWRlICJUZXh0Q2hl
Y2tlci5oIgpAQCAtMTM5OCw3ICsxMzk5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmhhbmRsZUtl
eWJvYXJkRXZlbnQoY29uc3QgTmF0aXZlV2ViS2V5Ym9hcmRFdmVudCYgZXZlbnQpCiB9CiAKICNp
ZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLXZvaWQgV2ViUGFnZVByb3h5OjpmaW5kUGx1
Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25z
dCBTdHJpbmcmIGZyYW1lVVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGNv
bnN0IGJvb2wgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zLCBTdHJpbmcmIHBsdWdpblBhdGgs
IFN0cmluZyYgbmV3TWltZVR5cGUsIHVpbnQzMl90JiBwbHVnaW5Mb2FkUG9saWN5KQordm9pZCBX
ZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oY29uc3QgU3RyaW5nJiBtaW1lVHlwZSwgdWludDMyX3Qg
cHJvY2Vzc1R5cGUsIGNvbnN0IFN0cmluZyYgdXJsU3RyaW5nLCBjb25zdCBTdHJpbmcmIGZyYW1l
VVJMU3RyaW5nLCBjb25zdCBTdHJpbmcmIHBhZ2VVUkxTdHJpbmcsIGJvb2wgYWxsb3dPbmx5QXBw
bGljYXRpb25QbHVnaW5zLCB1aW50NjRfdCYgcGx1Z2luUHJvY2Vzc1Rva2VuLCBTdHJpbmcmIG5l
d01pbWVUeXBlLCB1aW50MzJfdCYgcGx1Z2luTG9hZFBvbGljeSkKIHsKICAgICBNRVNTQUdFX0NI
RUNLX1VSTCh1cmxTdHJpbmcpOwogCkBAIC0xNDA3LDEwICsxNDA4LDEyIEBAIHZvaWQgV2ViUGFn
ZVByb3h5OjpmaW5kUGx1Z2luKGNvbnN0IFN0cmluZyYgbWltZVR5cGUsIGNvbnN0IFN0cmluZyYg
dXJsU3RyaW5nLCBjCiAKICAgICBQbHVnaW5EYXRhOjpBbGxvd2VkUGx1Z2luVHlwZXMgYWxsb3dl
ZFBsdWdpblR5cGVzID0gYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zID8gUGx1Z2luRGF0YTo6
T25seUFwcGxpY2F0aW9uUGx1Z2lucyA6IFBsdWdpbkRhdGE6OkFsbFBsdWdpbnM7CiAgICAgUGx1
Z2luTW9kdWxlSW5mbyBwbHVnaW4gPSBtX3Byb2Nlc3MtPmNvbnRleHQoKS0+cGx1Z2luSW5mb1N0
b3JlKCkuZmluZFBsdWdpbihuZXdNaW1lVHlwZSwgS1VSTChLVVJMKCksIHVybFN0cmluZyksIGFs
bG93ZWRQbHVnaW5UeXBlcyk7Ci0gICAgaWYgKCFwbHVnaW4ucGF0aCkKKyAgICBpZiAoIXBsdWdp
bi5wYXRoKSB7CisgICAgICAgIHBsdWdpblByb2Nlc3NUb2tlbiA9IDA7CiAgICAgICAgIHJldHVy
bjsKKyAgICB9CiAKLSAgICBwbHVnaW5Mb2FkUG9saWN5ID0gUGx1Z2luSW5mb1N0b3JlOjpwb2xp
Y3lGb3JQbHVnaW4ocGx1Z2luKTsKKyAgICBwbHVnaW5Mb2FkUG9saWN5ID0gUGx1Z2luSW5mb1N0
b3JlOjpkZWZhdWx0TG9hZFBvbGljeUZvclBsdWdpbihwbHVnaW4pOwogCiAjaWYgUExBVEZPUk0o
TUFDKQogICAgIFJlZlB0cjxJbW11dGFibGVEaWN0aW9uYXJ5PiBwbHVnaW5JbmZvcm1hdGlvbiA9
IGNyZWF0ZVBsdWdpbkluZm9ybWF0aW9uRGljdGlvbmFyeShwbHVnaW4sIGZyYW1lVVJMU3RyaW5n
LCBTdHJpbmcoKSwgcGFnZVVSTFN0cmluZywgU3RyaW5nKCksIFN0cmluZygpKTsKQEAgLTE0MjAs
MTEgKzE0MjMsMjUgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmZpbmRQbHVnaW4oY29uc3QgU3RyaW5n
JiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGMKICAgICBVTlVTRURfUEFSQU0o
cGFnZVVSTFN0cmluZyk7CiAjZW5kaWYKIAotICAgIGlmIChwbHVnaW5Mb2FkUG9saWN5ICE9IFBs
dWdpbk1vZHVsZUxvYWROb3JtYWxseSkKKyAgICBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSBw
bHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeTsKKyAgICBzd2l0Y2ggKHBsdWdpbkxvYWRQb2xpY3kp
IHsKKyAgICBjYXNlIFBsdWdpbk1vZHVsZUxvYWROb3JtYWxseToKKyAgICAgICAgcGx1Z2luUHJv
Y2Vzc1NhbmRib3hQb2xpY3kgPSBQbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeU5vcm1hbDsKKyAg
ICAgICAgYnJlYWs7CisgICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkVW5zYW5kYm94ZWQ6CisgICAg
ICAgIHBsdWdpblByb2Nlc3NTYW5kYm94UG9saWN5ID0gUGx1Z2luUHJvY2Vzc1NhbmRib3hQb2xp
Y3lVbnNhbmRib3hlZDsKKyAgICAgICAgYnJlYWs7CisKKyAgICBjYXNlIFBsdWdpbk1vZHVsZUJs
b2NrZWQ6CisgICAgY2FzZSBQbHVnaW5Nb2R1bGVJbmFjdGl2ZToKKyAgICAgICAgcGx1Z2luUHJv
Y2Vzc1Rva2VuID0gMDsKICAgICAgICAgcmV0dXJuOworICAgIH0KIAotICAgIHBsdWdpblBhdGgg
PSBwbHVnaW4ucGF0aDsKKyAgICBwbHVnaW5Qcm9jZXNzU2FuZGJveFBvbGljeSA9IFBsdWdpblBy
b2Nlc3NTYW5kYm94UG9saWN5VW5zYW5kYm94ZWQ7CisgICAgcGx1Z2luUHJvY2Vzc1Rva2VuID0g
UGx1Z2luUHJvY2Vzc01hbmFnZXI6OnNoYXJlZCgpLnBsdWdpblByb2Nlc3NUb2tlbihwbHVnaW4s
IHN0YXRpY19jYXN0PFBsdWdpblByb2Nlc3NUeXBlPihwcm9jZXNzVHlwZSksIHBsdWdpblByb2Nl
c3NTYW5kYm94UG9saWN5KTsKIH0KKwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5f
QVBJKQogCiAjaWYgRU5BQkxFKEdFU1RVUkVfRVZFTlRTKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlBhZ2VQcm94eS5oCmluZGV4IDE3ZDRkMTZmNWUxZTViNDE5YzRjZWI2NTAxMWI2NDg2MzVl
YTE3NjkuLmZmZjhjNzFmNGM1OTc2MDNmZmMyNDAyODc4MGFlNjNlMGZlOWQ3NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmgKQEAgLTEwNDcsNyArMTA0Nyw3IEBAIHBy
aXZhdGU6CiAgICAgdm9pZCBzZW5kV2hlZWxFdmVudChjb25zdCBXZWJXaGVlbEV2ZW50Jik7CiAK
ICNpZiBFTkFCTEUoTkVUU0NBUEVfUExVR0lOX0FQSSkKLSAgICB2b2lkIGZpbmRQbHVnaW4oY29u
c3QgU3RyaW5nJiBtaW1lVHlwZSwgY29uc3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmlu
ZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0IFN0cmluZyYgcGFnZVVSTFN0cmluZywgY29uc3QgYm9v
bCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMsIFN0cmluZyYgcGx1Z2luUGF0aCwgU3RyaW5n
JiBuZXdNSU1FVHlwZSwgdWludDMyX3QmIHBsdWdpbkxvYWRQb2xpY3kpOworICAgIHZvaWQgZmlu
ZFBsdWdpbihjb25zdCBTdHJpbmcmIG1pbWVUeXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgY29u
c3QgU3RyaW5nJiB1cmxTdHJpbmcsIGNvbnN0IFN0cmluZyYgZnJhbWVVUkxTdHJpbmcsIGNvbnN0
IFN0cmluZyYgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMs
IHVpbnQ2NF90JiBwbHVnaW5Qcm9jZXNzVG9rZW4sIFN0cmluZyYgbmV3TUlNRVR5cGUsIHVpbnQz
Ml90JiBwbHVnaW5Mb2FkUG9saWN5KTsKICNlbmRpZgogCiAgICAgUGFnZUNsaWVudCogbV9wYWdl
Q2xpZW50OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94
eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkubWVz
c2FnZXMuaW4KaW5kZXggNmU4MjBiZDRlZjI0NjkyNGU0ZjBhM2UyZmU4YzI2ZGY0MjZlOTUzYy4u
YTdlZWI1NDI5ODM3YzE3MGRjYzNkOWRlYzczNjQ3ODg0NmM2ODcxMCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUGFnZVByb3h5Lm1lc3NhZ2VzLmluCkBAIC0zMTUsNyAr
MzE1LDcgQEAgbWVzc2FnZXMgLT4gV2ViUGFnZVByb3h5IHsKICNlbmRpZgogCiAjaWYgRU5BQkxF
KE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgRmluZFBsdWdpbihXVEY6OlN0cmluZyBtaW1lVHlw
ZSwgV1RGOjpTdHJpbmcgdXJsU3RyaW5nLCBXVEY6OlN0cmluZyBmcmFtZVVSTFN0cmluZywgV1RG
OjpTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMp
IC0+IChXVEY6OlN0cmluZyBwbHVnaW5QYXRoLCBXVEY6OlN0cmluZyBuZXdNSU1FVHlwZSwgdWlu
dDMyX3QgcGx1Z2luTG9hZFBvbGljeSkKKyAgICBGaW5kUGx1Z2luKFdURjo6U3RyaW5nIG1pbWVU
eXBlLCB1aW50MzJfdCBwcm9jZXNzVHlwZSwgV1RGOjpTdHJpbmcgdXJsU3RyaW5nLCBXVEY6OlN0
cmluZyBmcmFtZVVSTFN0cmluZywgV1RGOjpTdHJpbmcgcGFnZVVSTFN0cmluZywgYm9vbCBhbGxv
d09ubHlBcHBsaWNhdGlvblBsdWdpbnMpIC0+ICh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4s
IFdURjo6U3RyaW5nIG5ld01JTUVUeXBlLCB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5KQogI2Vu
ZGlmCiAKICAgICBEaWRVcGRhdGVJbldpbmRvd1N0YXRlKCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKaW5kZXggMzhjODY2YTVlZGNjZjJiMzcyMWRlMzdi
NDllMGRjODkwNDRkYmM3NC4uMjQ0MzM5YmVmNjE1NDU3YmYyYzFiNjM3OGI5M2I4YTk0ZGIxMGU0
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5jcHAKQEAg
LTMzMiw5ICszMzIsOSBAQCB2b2lkIFdlYlByb2Nlc3NQcm94eTo6Z2V0UGx1Z2lucyhib29sIHJl
ZnJlc2gsIFZlY3RvcjxQbHVnaW5JbmZvPiYgcGx1Z2lucykKICNlbmRpZiAvLyBFTkFCTEUoTkVU
U0NBUEVfUExVR0lOX0FQSSkKIAogI2lmIEVOQUJMRShQTFVHSU5fUFJPQ0VTUykKLXZvaWQgV2Vi
UHJvY2Vzc1Byb3h5OjpnZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihjb25zdCBTdHJpbmcmIHBs
dWdpblBhdGgsIHVpbnQzMl90IHByb2Nlc3NUeXBlLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQ
cm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+IHJl
cGx5KQordm9pZCBXZWJQcm9jZXNzUHJveHk6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHVp
bnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgUGFzc1JlZlB0cjxNZXNzYWdlczo6V2ViUHJvY2Vz
c1Byb3h5OjpHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6RGVsYXllZFJlcGx5PiByZXBseSkK
IHsKLSAgICBQbHVnaW5Qcm9jZXNzTWFuYWdlcjo6c2hhcmVkKCkuZ2V0UGx1Z2luUHJvY2Vzc0Nv
bm5lY3Rpb24obV9jb250ZXh0LT5wbHVnaW5JbmZvU3RvcmUoKSwgcGx1Z2luUGF0aCwgc3RhdGlj
X2Nhc3Q8UGx1Z2luUHJvY2Vzczo6VHlwZT4ocHJvY2Vzc1R5cGUpLCByZXBseSk7CisgICAgUGx1
Z2luUHJvY2Vzc01hbmFnZXI6OnNoYXJlZCgpLmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHBs
dWdpblByb2Nlc3NUb2tlbiwgcmVwbHkpOwogfQogCiAjZWxpZiBFTkFCTEUoTkVUU0NBUEVfUExV
R0lOX0FQSSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkuaAppbmRl
eCAwMjEyZDJkZWU4Mzk2NjcwYjUwNzBlMDI5YTUyODM0ZTI1NjU4NTkzLi5jZDVlNjUyM2YyMWMy
NWRmZTkwMzliOTk0ODMwMGEzZDc1NTMwYzA5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L1dlYlByb2Nlc3NQcm94eS5oCkBAIC0xNDcsNyArMTQ3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGdldFBsdWdpbnMoYm9vbCByZWZyZXNoLCBWZWN0b3I8V2ViQ29yZTo6UGx1Z2luSW5mbz4mIHBs
dWdpbnMpOwogI2VuZGlmIC8vIEVOQUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogI2lmIEVOQUJM
RShQTFVHSU5fUFJPQ0VTUykKLSAgICB2b2lkIGdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKGNv
bnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgdWludDMyX3QgcHJvY2Vzc1R5cGUsIFBhc3NSZWZQdHI8
TWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OkRl
bGF5ZWRSZXBseT4pOworICAgIHZvaWQgZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0
X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBQYXNzUmVmUHRyPE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJv
eHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uOjpEZWxheWVkUmVwbHk+KTsKICNlbGlmIEVO
QUJMRShORVRTQ0FQRV9QTFVHSU5fQVBJKQogICAgIHZvaWQgZGlkR2V0U2l0ZXNXaXRoUGx1Z2lu
RGF0YShjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpOwog
ICAgIHZvaWQgZGlkQ2xlYXJQbHVnaW5TaXRlRGF0YSh1aW50NjRfdCBjYWxsYmFja0lEKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViUHJvY2Vzc1Byb3h5Lm1lc3NhZ2Vz
LmluCmluZGV4IGFkNDI4NGY2YmE0ODIwYzA3Y2FhNzhkY2Q2YjRkMDllNGUyMzlkYmQuLmZlNmQz
YTI5NTRhNjU5YWU5NTAxODdkZjAwMjY2NWVmMDc0MzhkMGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9XZWJQcm9jZXNzUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYlByb2Nlc3NQcm94eS5tZXNzYWdlcy5pbgpAQCAtNDEsNyAr
NDEsNyBAQCBtZXNzYWdlcyAtPiBXZWJQcm9jZXNzUHJveHkgTGVnYWN5UmVjZWl2ZXIgewogICAg
IEdldFBsdWdpbnMoYm9vbCByZWZyZXNoKSAtPiAoVmVjdG9yPFdlYkNvcmU6OlBsdWdpbkluZm8+
IHBsdWdpbnMpCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiAjaWYgRU5B
QkxFKFBMVUdJTl9QUk9DRVNTKQotICAgIEdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKFdURjo6
U3RyaW5nIHBsdWdpblBhdGgsIHVpbnQzMl90IHByb2Nlc3NUeXBlKSAtPiAoQ29yZUlQQzo6QXR0
YWNobWVudCBjb25uZWN0aW9uSGFuZGxlLCBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlh
bGl6YXRpb24pIERlbGF5ZWQKKyAgICBHZXRQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbih1aW50NjRf
dCBwbHVnaW5Qcm9jZXNzVG9rZW4pIC0+IChDb3JlSVBDOjpBdHRhY2htZW50IGNvbm5lY3Rpb25I
YW5kbGUsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbikgRGVsYXllZAog
I2VuZGlmCiAjaWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpICYmICFFTkFCTEUoUExVR0lO
X1BST0NFU1MpCiAgICAgdm9pZCBEaWRHZXRTaXRlc1dpdGhQbHVnaW5EYXRhKFZlY3RvcjxXVEY6
OlN0cmluZz4gc2l0ZXMsIHVpbnQ2NF90IGNhbGxiYWNrSUQpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJLaXQyLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggZmY4ZTQxZDM3ZDA0YmM4
OGM2ZTk2OGMyN2RiMTEyNzc4NDU0MzRkNi4uZWVkMDFmNzFlNDNkNDRlNGViMDZkZjhiOWVlNmQz
YWE5NTc2OTNiNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViS2l0Mi54Y29kZXByb2ov
cHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYktpdDIueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagpAQCAtMjU1LDYgKzI1NSw3IEBACiAJCTFBQjdENzhFMTI4OENEOUEwMENG
RDA4QyAvKiBXS0Rvd25sb2FkLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDFBQjdENzhDMTI4OENEOUEwMENGRDA4QyAvKiBXS0Rvd25sb2FkLmNwcCAq
LzsgfTsKIAkJMUFDMjVGQzIxMkE0OEY2MDAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLm1t
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUFDMjVGOEEx
MkE0OEUwMzAwQkQyNjcxIC8qIFBsdWdpblByb2Nlc3NTaGltLm1tICovOyB9OwogCQkxQUM0Qzgy
OTE2Qjg3NkE5MDA2OURDQ0QgLyogTWVzc2FnZUZsYWdzLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQUM0QzgyODE2Qjg3NkE5MDA2OURDQ0QgLyogTWVz
c2FnZUZsYWdzLmggKi87IH07CisJCTFBQzVGRkMyMTc0QkZEMUIwMDAxNDgzRCAvKiBQbHVnaW5Q
cm9jZXNzQXR0cmlidXRlcy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gMUFDNUZGQzExNzRCRkQxQjAwMDE0ODNEIC8qIFBsdWdpblByb2Nlc3NBdHRyaWJ1
dGVzLmggKi87IH07CiAJCTFBQzg2RkYzMTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVE
YXRhTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSAxQUM4NkZGMTEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0YU1hbmFnZXIu
Y3BwICovOyB9OwogCQkxQUM4NkZGNDEzMEI0NkQzMDAyQzEyNTcgLyogV0tQbHVnaW5TaXRlRGF0
YU1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDFBQzg2RkYyMTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTFBQzg3MDJE
MTMwQjQ5QTIwMDJDMTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBQzg3MDJCMTMwQjQ5QTIwMDJD
MTI1NyAvKiBXZWJQbHVnaW5TaXRlRGF0YU1hbmFnZXIuaCAqLzsgfTsKQEAgLTE2OTYsNiArMTY5
Nyw3IEBACiAJCTFBQzI1RjhBMTJBNDhFMDMwMEJEMjY3MSAvKiBQbHVnaW5Qcm9jZXNzU2hpbS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFBsdWdpblByb2Nlc3NT
aGltLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQUMyNUZCMDEyQTQ4RUE3MDBC
RDI2NzEgLyogUGx1Z2luUHJvY2Vzc1NoaW0uZHlsaWIgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZXhwbGljaXRGaWxlVHlwZSA9ICJjb21waWxlZC5tYWNoLW8uZHlsaWIiOyBpbmNsdWRl
SW5JbmRleCA9IDA7IHBhdGggPSBQbHVnaW5Qcm9jZXNzU2hpbS5keWxpYjsgc291cmNlVHJlZSA9
IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUFDNEM4MjgxNkI4NzZBOTAwNjlEQ0NEIC8qIE1l
c3NhZ2VGbGFncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBNZXNzYWdlRmxh
Z3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJMUFDNUZGQzExNzRCRkQxQjAwMDE0
ODNEIC8qIFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTFBQzg2RkYxMTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFu
YWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBXS1BsdWdpblNp
dGVEYXRhTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTFBQzg2RkYy
MTMwQjQ2RDMwMDJDMTI1NyAvKiBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBXS1BsdWdpblNpdGVEYXRhTWFuYWdlci5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwogCQkxQUM4NzAyQjEzMEI0OUEyMDAyQzEyNTcgLyogV2ViUGx1
Z2luU2l0ZURhdGFNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFdl
YlBsdWdpblNpdGVEYXRhTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAt
MzQwNyw2ICszNDA5LDcgQEAKIAkJCQkxQTJEODRBMTEyN0Y2QUQxMDAxRUI5NjIgLyogTlBWYXJp
YW50RGF0YS5oICovLAogCQkJCTFBM0Q2MEZGMTNBN0NDMkEwMEY5NUQ0RSAvKiBQbHVnaW5Nb2R1
bGVJbmZvLmNwcCAqLywKIAkJCQkxQTNENjEwMDEzQTdDQzJBMDBGOTVENEUgLyogUGx1Z2luTW9k
dWxlSW5mby5oICovLAorCQkJCTFBQzVGRkMxMTc0QkZEMUIwMDAxNDgzRCAvKiBQbHVnaW5Qcm9j
ZXNzQXR0cmlidXRlcy5oICovLAogCQkJCTFBMkQ5MEQxMTI4MUM5NjYwMDFFQjk2MiAvKiBQbHVn
aW5Qcm9jZXNzQ3JlYXRpb25QYXJhbWV0ZXJzLmNwcCAqLywKIAkJCQkxQTJEOTBEMDEyODFDOTY2
MDAxRUI5NjIgLyogUGx1Z2luUHJvY2Vzc0NyZWF0aW9uUGFyYW1ldGVycy5oICovLAogCQkJCTFB
NEE5RjMxMTJCODQ0RTIwMDhGRTk4NCAvKiBQbHVnaW5RdWlya3MuaCAqLywKQEAgLTU1NzQsNiAr
NTU3Nyw3IEBACiAJCQkJQkM5QjM4QTExMEY1MzhCRTAwNDQzQTE1IC8qIFdlYkZyYW1lUHJveHku
aCBpbiBIZWFkZXJzICovLAogCQkJCUJDMUJFMUUwMTJENTRBNDEwMDA0QTIyOCAvKiBXZWJHZW9s
b2NhdGlvbkNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMwRTVGRTUxMkQ2OTcxNjAwMTJB
NzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJMUFDNUZG
QzIxNzRCRkQxQjAwMDE0ODNEIC8qIFBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmggaW4gSGVhZGVy
cyAqLywKIAkJCQlCQzBFNjA2MjEyRDZCQTkxMDAxMkE3MkEgLyogV2ViR2VvbG9jYXRpb25NYW5h
Z2VyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDNTRDQUNCMTJENjQyOTEwMDVDNjdC
MCAvKiBXZWJHZW9sb2NhdGlvbk1hbmFnZXJQcm94eS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkMw
RTYxODMxMkQ2Q0IxRDAwMTJBNzJBIC8qIFdlYkdlb2xvY2F0aW9uTWFuYWdlclByb3h5TWVzc2Fn
ZXMuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi5jcHAKaW5kZXggM2Q0NTUy
YjExNGQ5Njg2MDEwMjk5YWY2ZWIwNTRmZWE3YzU5OTFiMC4uMTYyYWFiZGQ4MzUzZjliZjlhZmU2
Nzg5MWI2ODA1NzRiOGZiYTZkOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uY3BwCkBAIC00Miwx
MSArNDIsMTAgQEAgdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCi1QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGx1
Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiBwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIsIGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luUHJvY2Vzczo6VHlwZSBwcm9jZXNz
VHlwZSwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmll
ciwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uKQorUGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb246OlBsdWdpblByb2Nlc3NDb25uZWN0aW9uKFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uTWFuYWdlciogcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLCB1aW50NjRf
dCBwbHVnaW5Qcm9jZXNzVG9rZW4sIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIgY29u
bmVjdGlvbklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFs
aXphdGlvbikKICAgICA6IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKHBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlcikKLSAgICAsIG1fcGx1Z2luUGF0aChwbHVnaW5QYXRoKQor
ICAgICwgbV9wbHVnaW5Qcm9jZXNzVG9rZW4ocGx1Z2luUHJvY2Vzc1Rva2VuKQogICAgICwgbV9z
dXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uKHN1cHBvcnRzQXN5bmNocm9u
b3VzUGx1Z2luSW5pdGlhbGl6YXRpb24pCi0gICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBl
KQogewogICAgIG1fY29ubmVjdGlvbiA9IENvcmVJUEM6OkNvbm5lY3Rpb246OmNyZWF0ZUNsaWVu
dENvbm5lY3Rpb24oY29ubmVjdGlvbklkZW50aWZpZXIsIHRoaXMsIFJ1bkxvb3A6Om1haW4oKSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Q
cm9jZXNzQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uLmgKaW5kZXggMTg4Mjk1YzgyMjU2NjRjOTQzMDYxYjg2NTAz
NmRkMzliYmM5ZGEzYy4uZTU1YmU1YTEwZDY1YzgxM2NiYTQ5MzBhZDgxMjYxNTQ0NDQwNTcwNyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1Bs
dWdpblByb2Nlc3NDb25uZWN0aW9uLmgKQEAgLTMxLDggKzMxLDggQEAKICNpbmNsdWRlICJDb25u
ZWN0aW9uLmgiCiAjaW5jbHVkZSAiUGx1Z2luLmgiCiAjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzcy5o
IgorI2luY2x1ZGUgIlBsdWdpblByb2Nlc3NBdHRyaWJ1dGVzLmgiCiAjaW5jbHVkZSA8d3RmL1Jl
ZkNvdW50ZWQuaD4KLSNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogLy8gQSBDb3Jl
SVBDIGNvbm5lY3Rpb24gdG8gYSBwbHVnLWluIHByb2Nlc3MuCiAKQEAgLTQ0LDEzICs0NCwxMyBA
QCBjbGFzcyBQbHVnaW5Qcm94eTsKICAgICAKIGNsYXNzIFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
IDogcHVibGljIFJlZkNvdW50ZWQ8UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24+LCBDb3JlSVBDOjpD
b25uZWN0aW9uOjpDbGllbnQgewogcHVibGljOgotICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uPiBjcmVhdGUoUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2Vy
KiBwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIsIGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0
aCwgUGx1Z2luUHJvY2Vzczo6VHlwZSBwcm9jZXNzVHlwZSwgQ29yZUlQQzo6Q29ubmVjdGlvbjo6
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgYm9vbCBzdXBwb3J0c0FzeW5jaHJvbm91
c1BsdWdpbkluaXRpYWxpemF0aW9uKQorICAgIHN0YXRpYyBQYXNzUmVmUHRyPFBsdWdpblByb2Nl
c3NDb25uZWN0aW9uPiBjcmVhdGUoUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiBwbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIsIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwg
Q29yZUlQQzo6Q29ubmVjdGlvbjo6SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgYm9v
bCBzdXBwb3J0c0FzeW5jaHJvbm91c1BsdWdpbkluaXRpYWxpemF0aW9uKQogICAgIHsKLSAgICAg
ICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbihwbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIsIHBsdWdpblBhdGgsIHByb2Nlc3NUeXBlLCBjb25uZWN0aW9u
SWRlbnRpZmllciwgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbikpOwor
ICAgICAgICByZXR1cm4gYWRvcHRSZWYobmV3IFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKHBsdWdp
blByb2Nlc3NDb25uZWN0aW9uTWFuYWdlciwgcGx1Z2luUHJvY2Vzc1Rva2VuLCBjb25uZWN0aW9u
SWRlbnRpZmllciwgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbikpOwog
ICAgIH0KICAgICB+UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oKTsKIAotICAgIGNvbnN0IFN0cmlu
ZyYgcGx1Z2luUGF0aCgpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luUGF0aDsgfQorICAgIHVpbnQ2
NF90IHBsdWdpblByb2Nlc3NUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fcGx1Z2luUHJvY2Vzc1Rv
a2VuOyB9CiAKICAgICBDb3JlSVBDOjpDb25uZWN0aW9uKiBjb25uZWN0aW9uKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb25uZWN0aW9uLmdldCgpOyB9CiAKQEAgLTYxLDEwICs2MSw4IEBAIHB1YmxpYzoK
IAogICAgIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbigpIGNv
bnN0IHsgcmV0dXJuIG1fc3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbjsg
fQogCi0gICAgUGx1Z2luUHJvY2Vzczo6VHlwZSBwcm9jZXNzVHlwZSgpIGNvbnN0IHsgcmV0dXJu
IG1fcHJvY2Vzc1R5cGU7IH0KLQogcHJpdmF0ZToKLSAgICBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bihQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIqLCBjb25zdCBTdHJpbmcmIHBsdWdpblBh
dGgsIFBsdWdpblByb2Nlc3M6OlR5cGUsIENvcmVJUEM6OkNvbm5lY3Rpb246OklkZW50aWZpZXIg
Y29ubmVjdGlvbklkZW50aWZpZXIsIGJvb2wgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXph
dGlvbik7CisgICAgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rp
b25NYW5hZ2VyKiwgdWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuLCBDb3JlSVBDOjpDb25uZWN0
aW9uOjpJZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBib29sIHN1cHBvcnRzQXN5bmNo
cm9ub3VzSW5pdGlhbGl6YXRpb24pOwogCiAgICAgLy8gQ29yZUlQQzo6Q29ubmVjdGlvbjo6Q2xp
ZW50CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJUEM6OkNvbm5lY3Rp
b24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwpAQCAtNzcsNyArNzUsNyBA
QCBwcml2YXRlOgogICAgIHZvaWQgc2V0RXhjZXB0aW9uKGNvbnN0IFN0cmluZyYpOwogCiAgICAg
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKiBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlcjsKLSAgICBTdHJpbmcgbV9wbHVnaW5QYXRoOworICAgIHVpbnQ2NF90IG1fcGx1Z2lu
UHJvY2Vzc1Rva2VuOwogCiAgICAgLy8gVGhlIGNvbm5lY3Rpb24gZnJvbSB0aGUgd2ViIHByb2Nl
c3MgdG8gdGhlIHBsdWctaW4gcHJvY2Vzcy4KICAgICBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOwpAQCAtODgsOCArODYsNiBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxO
UFJlbW90ZU9iamVjdE1hcD4gbV9ucFJlbW90ZU9iamVjdE1hcDsKICAgICAKICAgICBib29sIG1f
c3VwcG9ydHNBc3luY2hyb25vdXNQbHVnaW5Jbml0aWFsaXphdGlvbjsKLQotICAgIFBsdWdpblBy
b2Nlc3M6OlR5cGUgbV9wcm9jZXNzVHlwZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nl
c3NDb25uZWN0aW9uTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAppbmRleCA5YThkYzQzNWUxNTE2
NjBkZjRiMzdlZDk5YTA3OTAwNDM0NjdkNzNlLi45MDMxNThiY2I3NTgwZDIxYTc2MDdiZTQ4YTQ1
ZDJlN2M1ZTc1YTY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdp
bnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLmNwcApA
QCAtNjEsMTcgKzYxLDE4IEBAIHZvaWQgUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyOjpp
bml0aWFsaXplQ29ubmVjdGlvbihDb3JlSVBDOjpDb25uZWN0aW9uKiBjCiAgICAgY29ubmVjdGlv
bi0+YWRkV29ya1F1ZXVlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpQbHVnaW5Qcm9jZXNzQ29u
bmVjdGlvbk1hbmFnZXI6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9xdWV1ZS5nZXQoKSwgdGhp
cyk7CiB9CiAKLVBsdWdpblByb2Nlc3NDb25uZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3NDb25uZWN0aW9uKGNvbnN0IFN0cmluZyYgcGx1Z2lu
UGF0aCwgUGx1Z2luUHJvY2Vzczo6VHlwZSBwcm9jZXNzVHlwZSkKK1BsdWdpblByb2Nlc3NDb25u
ZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikKIHsKLSAgICBmb3IgKHNpemVf
dCBpID0gMDsgaSA8IG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25zLnNpemUoKTsgKytpKSB7Ci0g
ICAgICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4mIHBsdWdpblByb2Nlc3NDb25u
ZWN0aW9uID0gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnNbaV07Ci0gICAgICAgIGlmIChwbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUGF0aCgpID09IHBsdWdpblBhdGggJiYgcGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24tPnByb2Nlc3NUeXBlKCkgPT0gcHJvY2Vzc1R5cGUpCi0gICAgICAg
ICAgICByZXR1cm4gcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24uZ2V0KCk7Ci0gICAgfQorICAgIGF1
dG8gaXQgPSBzdGQ6OmZpbmRfaWYobV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnMuYmVnaW4oKSwg
bV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnMuZW5kKCksIFs9XShjb25zdCBSZWZQdHI8UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24+JiBjb25uZWN0aW9uKSB7CisgICAgICAgIHJldHVybiBjb25uZWN0
aW9uLT5wbHVnaW5Qcm9jZXNzVG9rZW4oKSA9PSBwbHVnaW5Qcm9jZXNzVG9rZW47CisgICAgfSk7
CisKKyAgICBpZiAoaXQgIT0gbV9wbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnMuZW5kKCkpCisgICAg
ICAgIHJldHVybiBpdC0+Z2V0KCk7CiAKICAgICBDb3JlSVBDOjpBdHRhY2htZW50IGVuY29kZWRD
b25uZWN0aW9uSWRlbnRpZmllcjsKICAgICBib29sIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlh
bGl6YXRpb247Ci0gICAgaWYgKCFXZWJQcm9jZXNzOjpzaGFyZWQoKS5jb25uZWN0aW9uKCktPnNl
bmRTeW5jKE1lc3NhZ2VzOjpXZWJQcm9jZXNzUHJveHk6OkdldFBsdWdpblByb2Nlc3NDb25uZWN0
aW9uKHBsdWdpblBhdGgsIHByb2Nlc3NUeXBlKSwKKyAgICBpZiAoIVdlYlByb2Nlc3M6OnNoYXJl
ZCgpLmNvbm5lY3Rpb24oKS0+c2VuZFN5bmMoTWVzc2FnZXM6OldlYlByb2Nlc3NQcm94eTo6R2V0
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24ocGx1Z2luUHJvY2Vzc1Rva2VuKSwKICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgTWVzc2FnZXM6OldlYlBy
b2Nlc3NQcm94eTo6R2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb246OlJlcGx5KGVuY29kZWRDb25u
ZWN0aW9uSWRlbnRpZmllciwgc3VwcG9ydHNBc3luY2hyb25vdXNJbml0aWFsaXphdGlvbiksIDAp
KQogICAgICAgICByZXR1cm4gMDsKIApAQCAtODUsMTQgKzg2LDE0IEBAIFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKiBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXI6OmdldFBsdWdpblByb2Nl
c3NDb25uZWN0CiAgICAgICAgIHJldHVybiAwOwogI2VuZGlmCiAKLSAgICBSZWZQdHI8UGx1Z2lu
UHJvY2Vzc0Nvbm5lY3Rpb24+IHBsdWdpblByb2Nlc3NDb25uZWN0aW9uID0gUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb246OmNyZWF0ZSh0aGlzLCBwbHVnaW5QYXRoLCBwcm9jZXNzVHlwZSwgY29ubmVj
dGlvbklkZW50aWZpZXIsIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb24pOworICAg
IFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbj4gcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24g
PSBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbjo6Y3JlYXRlKHRoaXMsIHBsdWdpblByb2Nlc3NUb2tl
biwgY29ubmVjdGlvbklkZW50aWZpZXIsIHN1cHBvcnRzQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRp
b24pOwogICAgIG1fcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25zLmFwcGVuZChwbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbik7CiAKICAgICB7Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BhdGhz
QW5kQ29ubmVjdGlvbnNNdXRleCk7Ci0gICAgICAgIEFTU0VSVCghbV9wYXRoc0FuZENvbm5lY3Rp
b25zLmNvbnRhaW5zKHN0ZDo6bWFrZV9wYWlyKHBsdWdpblByb2Nlc3NDb25uZWN0aW9uLT5wbHVn
aW5QYXRoKCksIHByb2Nlc3NUeXBlKSkpOworICAgICAgICBNdXRleExvY2tlciBsb2NrZXIobV90
b2tlbnNBbmRDb25uZWN0aW9uc011dGV4KTsKKyAgICAgICAgQVNTRVJUKCFtX3Rva2Vuc0FuZENv
bm5lY3Rpb25zLmNvbnRhaW5zKHBsdWdpblByb2Nlc3NUb2tlbikpOwogCi0gICAgICAgIG1fcGF0
aHNBbmRDb25uZWN0aW9ucy5zZXQoc3RkOjptYWtlX3BhaXIocGx1Z2luUGF0aCwgcHJvY2Vzc1R5
cGUpLCBwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi0+Y29ubmVjdGlvbigpKTsKKyAgICAgICAgbV90
b2tlbnNBbmRDb25uZWN0aW9ucy5zZXQocGx1Z2luUHJvY2Vzc1Rva2VuLCBwbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbi0+Y29ubmVjdGlvbigpKTsKICAgICB9CiAKICAgICByZXR1cm4gcGx1Z2luUHJv
Y2Vzc0Nvbm5lY3Rpb24uZ2V0KCk7CkBAIC0xMDQsMTkgKzEwNSwxOSBAQCB2b2lkIFBsdWdpblBy
b2Nlc3NDb25uZWN0aW9uTWFuYWdlcjo6cmVtb3ZlUGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oUGx1
Z2luUHJvY2VzcwogICAgIEFTU0VSVCh2ZWN0b3JJbmRleCAhPSBub3RGb3VuZCk7CiAKICAgICB7
Ci0gICAgICAgIE11dGV4TG9ja2VyIGxvY2tlcihtX3BhdGhzQW5kQ29ubmVjdGlvbnNNdXRleCk7
Ci0gICAgICAgIEFTU0VSVChtX3BhdGhzQW5kQ29ubmVjdGlvbnMuY29udGFpbnMoc3RkOjptYWtl
X3BhaXIocGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnBsdWdpblBhdGgoKSwgcGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb24tPnByb2Nlc3NUeXBlKCkpKSk7CisgICAgICAgIE11dGV4TG9ja2VyIGxvY2tl
cihtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXgpOworICAgICAgICBBU1NFUlQobV90b2tlbnNB
bmRDb25uZWN0aW9ucy5jb250YWlucyhwbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbi0+cGx1Z2luUHJv
Y2Vzc1Rva2VuKCkpKTsKICAgICAgICAgCi0gICAgICAgIG1fcGF0aHNBbmRDb25uZWN0aW9ucy5y
ZW1vdmUoc3RkOjptYWtlX3BhaXIocGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnBsdWdpblBhdGgo
KSwgcGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnByb2Nlc3NUeXBlKCkpKTsKKyAgICAgICAgbV90
b2tlbnNBbmRDb25uZWN0aW9ucy5yZW1vdmUocGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24tPnBsdWdp
blByb2Nlc3NUb2tlbigpKTsKICAgICB9CiAKICAgICBtX3BsdWdpblByb2Nlc3NDb25uZWN0aW9u
cy5yZW1vdmUodmVjdG9ySW5kZXgpOwogfQogCi12b2lkIFBsdWdpblByb2Nlc3NDb25uZWN0aW9u
TWFuYWdlcjo6cGx1Z2luUHJvY2Vzc0NyYXNoZWQoY29uc3QgU3RyaW5nJiBwbHVnaW5QYXRoLCB1
aW50MzJfdCBvcGFxdWVQbHVnaW5UeXBlKQordm9pZCBQbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1h
bmFnZXI6OnBsdWdpblByb2Nlc3NDcmFzaGVkKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikK
IHsKLSAgICBNdXRleExvY2tlciBsb2NrZXIobV9wYXRoc0FuZENvbm5lY3Rpb25zTXV0ZXgpOwot
ICAgIENvcmVJUEM6OkNvbm5lY3Rpb24qIGNvbm5lY3Rpb24gPSBtX3BhdGhzQW5kQ29ubmVjdGlv
bnMuZ2V0KHN0ZDo6bWFrZV9wYWlyKHBsdWdpblBhdGgsIHN0YXRpY19jYXN0PFBsdWdpblByb2Nl
c3M6OlR5cGU+KG9wYXF1ZVBsdWdpblR5cGUpKSk7CisgICAgTXV0ZXhMb2NrZXIgbG9ja2VyKG1f
dG9rZW5zQW5kQ29ubmVjdGlvbnNNdXRleCk7CisgICAgQ29yZUlQQzo6Q29ubmVjdGlvbiogY29u
bmVjdGlvbiA9IG1fdG9rZW5zQW5kQ29ubmVjdGlvbnMuZ2V0KHBsdWdpblByb2Nlc3NUb2tlbik7
CiAKICAgICAvLyBJdCdzIE9LIGZvciBjb25uZWN0aW9uIHRvIGJlIG51bGwgaGVyZTsgaXQgd2ls
bCBoYXBwZW4gaWYgdGhpcyB3ZWIgcHJvY2VzcyBkb2Vzbid0IGtub3cKICAgICAvLyBhbnl0aGlu
ZyBhYm91dCB0aGUgcGx1Zy1pbiBwcm9jZXNzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIv
V2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5oIGIvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlci5oCmluZGV4IDAyZDcwNDkyMWI5NTRmY2Y0YTAzZjE4M2Q1YTNkNWUxNTU1NDg0YTcuLjY5
YmM0NzhkOTA5YWNlNGE4MjA0ODFkYjY2MjdhN2E2MWI3OTlhMGYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFn
ZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJvY2Vz
c0Nvbm5lY3Rpb25NYW5hZ2VyLmgKQEAgLTQ5LDcgKzQ5LDcgQEAgcHVibGljOgogCiAgICAgdm9p
ZCBpbml0aWFsaXplQ29ubmVjdGlvbihDb3JlSVBDOjpDb25uZWN0aW9uKik7CiAKLSAgICBQbHVn
aW5Qcm9jZXNzQ29ubmVjdGlvbiogZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24oY29uc3QgU3Ry
aW5nJiBwbHVnaW5QYXRoLCBQbHVnaW5Qcm9jZXNzOjpUeXBlKTsKKyAgICBQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbiogZ2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24odWludDY0X3QgcGx1Z2luUHJv
Y2Vzc1Rva2VuKTsKICAgICB2b2lkIHJlbW92ZVBsdWdpblByb2Nlc3NDb25uZWN0aW9uKFBsdWdp
blByb2Nlc3NDb25uZWN0aW9uKik7CiAKICAgICB2b2lkIGRpZFJlY2VpdmVQbHVnaW5Qcm9jZXNz
Q29ubmVjdGlvbk1hbmFnZXJNZXNzYWdlT25Db25uZWN0aW9uV29ya1F1ZXVlKENvcmVJUEM6OkNv
bm5lY3Rpb24qLCBPd25QdHI8Q29yZUlQQzo6TWVzc2FnZURlY29kZXI+Jik7CkBAIC02MCwxNCAr
NjAsMTQgQEAgcHJpdmF0ZToKICAgICAvLyBDb3JlSVBDOjpDb25uZWN0aW9uOjpXb3JrUXVldWVN
ZXNzYWdlUmVjZWl2ZXIuCiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKENvcmVJ
UEM6OkNvbm5lY3Rpb24qLCBDb3JlSVBDOjpNZXNzYWdlRGVjb2RlciYpIE9WRVJSSURFOwogCi0g
ICAgdm9pZCBwbHVnaW5Qcm9jZXNzQ3Jhc2hlZChjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIHVp
bnQzMl90IG9wYXF1ZVBsdWdpblR5cGUpOworICAgIHZvaWQgcGx1Z2luUHJvY2Vzc0NyYXNoZWQo
dWludDY0X3QgcGx1Z2luUHJvY2Vzc1Rva2VuKTsKIAogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1f
cXVldWU7CiAKICAgICBWZWN0b3I8UmVmUHRyPFBsdWdpblByb2Nlc3NDb25uZWN0aW9uPj4gbV9w
bHVnaW5Qcm9jZXNzQ29ubmVjdGlvbnM7CiAKLSAgICBNdXRleCBtX3BhdGhzQW5kQ29ubmVjdGlv
bnNNdXRleDsKLSAgICBIYXNoTWFwPHN0ZDo6cGFpcjxTdHJpbmcsIFBsdWdpblByb2Nlc3M6OlR5
cGU+LCBSZWZQdHI8Q29yZUlQQzo6Q29ubmVjdGlvbj4+IG1fcGF0aHNBbmRDb25uZWN0aW9uczsK
KyAgICBNdXRleCBtX3Rva2Vuc0FuZENvbm5lY3Rpb25zTXV0ZXg7CisgICAgSGFzaE1hcDx1aW50
NjRfdCwgUmVmUHRyPENvcmVJUEM6OkNvbm5lY3Rpb24+PiBtX3Rva2Vuc0FuZENvbm5lY3Rpb25z
OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5z
L1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm9jZXNzQ29ubmVjdGlvbk1hbmFnZXIubWVz
c2FnZXMuaW4KaW5kZXggNjczZDdiNDdmZTAyMzU2Y2I2YTFkZWRhNjZiOTc1NmZkOTI0YWFmNC4u
MzZhOThjNWFiZWQ0ZWE3MGJjYmRkNzk2ZmY4Y2M3YjRlMmYzODc0ZCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMv
UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0yMyw3ICsyMyw3
IEBACiAjaWYgRU5BQkxFKFBMVUdJTl9QUk9DRVNTKQogCiBtZXNzYWdlcyAtPiBQbHVnaW5Qcm9j
ZXNzQ29ubmVjdGlvbk1hbmFnZXIgewotICAgIFBsdWdpblByb2Nlc3NDcmFzaGVkKFdURjo6U3Ry
aW5nIHBsdWdpblBhdGgsIHVpbnQzMl90IHByb2Nlc3NUeXBlKQorICAgIFBsdWdpblByb2Nlc3ND
cmFzaGVkKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbikKIH0KIAogI2VuZGlmCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9QbHVnaW5zL1BsdWdpblByb3h5LmNwcAppbmRleCA3
OTkwZGQ3M2Q1N2Q3OGJhOTlmMjg3ODA0OTZkMTg2NGU4OTY4YjEyLi4xYmE4NTVjODIyNzc4MjI5
NTA4YjVlMGM3YTg2ZjkyOTY2MmM4Nzc2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQ
cm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlBy
b2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5jcHAKQEAgLTU2LDEzICs1NiwxMyBAQCBzdGF0aWMg
dWludDY0X3QgZ2VuZXJhdGVQbHVnaW5JbnN0YW5jZUlEKCkKICAgICByZXR1cm4gKyt1bmlxdWVQ
bHVnaW5JbnN0YW5jZUlEOwogfQogCi1QYXNzUmVmUHRyPFBsdWdpblByb3h5PiBQbHVnaW5Qcm94
eTo6Y3JlYXRlKGNvbnN0IFN0cmluZyYgcGx1Z2luUGF0aCwgUGx1Z2luUHJvY2Vzczo6VHlwZSBw
cm9jZXNzVHlwZSwgYm9vbCBpc1Jlc3RhcnRlZFByb2Nlc3MpCitQYXNzUmVmUHRyPFBsdWdpblBy
b3h5PiBQbHVnaW5Qcm94eTo6Y3JlYXRlKHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgYm9v
bCBpc1Jlc3RhcnRlZFByb2Nlc3MpCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5Q
cm94eShwbHVnaW5QYXRoLCBwcm9jZXNzVHlwZSwgaXNSZXN0YXJ0ZWRQcm9jZXNzKSk7CisgICAg
cmV0dXJuIGFkb3B0UmVmKG5ldyBQbHVnaW5Qcm94eShwbHVnaW5Qcm9jZXNzVG9rZW4sIGlzUmVz
dGFydGVkUHJvY2VzcykpOwogfQogCi1QbHVnaW5Qcm94eTo6UGx1Z2luUHJveHkoY29uc3QgU3Ry
aW5nJiBwbHVnaW5QYXRoLCBQbHVnaW5Qcm9jZXNzOjpUeXBlIHByb2Nlc3NUeXBlLCBib29sIGlz
UmVzdGFydGVkUHJvY2VzcykKLSAgICA6IG1fcGx1Z2luUGF0aChwbHVnaW5QYXRoKQorUGx1Z2lu
UHJveHk6OlBsdWdpblByb3h5KHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbiwgYm9vbCBpc1Jl
c3RhcnRlZFByb2Nlc3MpCisgICAgOiBtX3BsdWdpblByb2Nlc3NUb2tlbihwbHVnaW5Qcm9jZXNz
VG9rZW4pCiAgICAgLCBtX3BsdWdpbkluc3RhbmNlSUQoZ2VuZXJhdGVQbHVnaW5JbnN0YW5jZUlE
KCkpCiAgICAgLCBtX3BsdWdpbkJhY2tpbmdTdG9yZUNvbnRhaW5zVmFsaWREYXRhKGZhbHNlKQog
ICAgICwgbV9pc1N0YXJ0ZWQoZmFsc2UpCkBAIC03MCw3ICs3MCw2IEBAIFBsdWdpblByb3h5OjpQ
bHVnaW5Qcm94eShjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFBsdWdpblByb2Nlc3M6OlR5cGUg
cHJvY2Vzc1R5CiAgICAgLCBtX3dhbnRzV2hlZWxFdmVudHMoZmFsc2UpCiAgICAgLCBtX3JlbW90
ZUxheWVyQ2xpZW50SUQoMCkKICAgICAsIG1fd2FpdGluZ09uQXN5bmNocm9ub3VzSW5pdGlhbGl6
YXRpb24oZmFsc2UpCi0gICAgLCBtX3Byb2Nlc3NUeXBlKHByb2Nlc3NUeXBlKQogICAgICwgbV9p
c1Jlc3RhcnRlZFByb2Nlc3MoaXNSZXN0YXJ0ZWRQcm9jZXNzKQogewogfQpAQCAtODcsNyArODYs
NyBAQCB2b2lkIFBsdWdpblByb3h5OjpwbHVnaW5Qcm9jZXNzQ3Jhc2hlZCgpCiBib29sIFBsdWdp
blByb3h5Ojppbml0aWFsaXplKGNvbnN0IFBhcmFtZXRlcnMmIHBhcmFtZXRlcnMpCiB7CiAgICAg
QVNTRVJUKCFtX2Nvbm5lY3Rpb24pOwotICAgIG1fY29ubmVjdGlvbiA9IFdlYlByb2Nlc3M6OnNo
YXJlZCgpLnBsdWdpblByb2Nlc3NDb25uZWN0aW9uTWFuYWdlcigpLmdldFBsdWdpblByb2Nlc3ND
b25uZWN0aW9uKG1fcGx1Z2luUGF0aCwgbV9wcm9jZXNzVHlwZSk7CisgICAgbV9jb25uZWN0aW9u
ID0gV2ViUHJvY2Vzczo6c2hhcmVkKCkucGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb25NYW5hZ2VyKCku
Z2V0UGx1Z2luUHJvY2Vzc0Nvbm5lY3Rpb24obV9wbHVnaW5Qcm9jZXNzVG9rZW4pOwogICAgIAog
ICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1BsdWdpbnMvUGx1Z2luUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1Z2lucy9QbHVnaW5Qcm94eS5oCmluZGV4IGY3NGYwMjUz
ZDU5MDI0ZjY0MGVlNDVmZDI0NmRhYWVmZjZkNWE4MjIuLmYxNGExMWMyNjYxNDZhZTBjNzU1NWJm
ZWUwYjQ5MjYzM2RkNTM1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
UGx1Z2lucy9QbHVnaW5Qcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvUGx1
Z2lucy9QbHVnaW5Qcm94eS5oCkBAIC01Niw3ICs1Niw3IEBAIHN0cnVjdCBQbHVnaW5DcmVhdGlv
blBhcmFtZXRlcnM7CiAKIGNsYXNzIFBsdWdpblByb3h5IDogcHVibGljIFBsdWdpbiB7CiBwdWJs
aWM6Ci0gICAgc3RhdGljIFBhc3NSZWZQdHI8UGx1Z2luUHJveHk+IGNyZWF0ZShjb25zdCBTdHJp
bmcmIHBsdWdpblBhdGgsIFBsdWdpblByb2Nlc3M6OlR5cGUsIGJvb2wgaXNSZXN0YXJ0ZWRQcm9j
ZXNzKTsKKyAgICBzdGF0aWMgUGFzc1JlZlB0cjxQbHVnaW5Qcm94eT4gY3JlYXRlKHVpbnQ2NF90
IHBsdWdpblByb2Nlc3NUb2tlbiwgYm9vbCBpc1Jlc3RhcnRlZFByb2Nlc3MpOwogICAgIH5QbHVn
aW5Qcm94eSgpOwogCiAgICAgdWludDY0X3QgcGx1Z2luSW5zdGFuY2VJRCgpIGNvbnN0IHsgcmV0
dXJuIG1fcGx1Z2luSW5zdGFuY2VJRDsgfQpAQCAtNjgsNyArNjgsNyBAQCBwdWJsaWM6CiAgICAg
Ym9vbCBpc0JlaW5nQXN5bmNocm9ub3VzbHlJbml0aWFsaXplZCgpIGNvbnN0IHsgcmV0dXJuIG1f
d2FpdGluZ09uQXN5bmNocm9ub3VzSW5pdGlhbGl6YXRpb247IH0KIAogcHJpdmF0ZToKLSAgICBl
eHBsaWNpdCBQbHVnaW5Qcm94eShjb25zdCBTdHJpbmcmIHBsdWdpblBhdGgsIFBsdWdpblByb2Nl
c3M6OlR5cGUsIGJvb2wgaXNSZXN0YXJ0ZWRQcm9jZXNzKTsKKyAgICBleHBsaWNpdCBQbHVnaW5Q
cm94eSh1aW50NjRfdCBwbHVnaW5Qcm9jZXNzVG9rZW4sIGJvb2wgaXNSZXN0YXJ0ZWRQcm9jZXNz
KTsKIAogICAgIC8vIFBsdWdpbgogICAgIHZpcnR1YWwgYm9vbCBpbml0aWFsaXplKGNvbnN0IFBh
cmFtZXRlcnMmKTsKQEAgLTE3MiwxMSArMTcyLDExIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGRp
ZENyZWF0ZVBsdWdpbihib29sIHdhbnRzV2hlZWxFdmVudHMsIHVpbnQzMl90IHJlbW90ZUxheWVy
Q2xpZW50SUQpOwogICAgIHZvaWQgZGlkRmFpbFRvQ3JlYXRlUGx1Z2luKCk7Ci0gICAgCisKICAg
ICB2b2lkIGRpZENyZWF0ZVBsdWdpbkludGVybmFsKGJvb2wgd2FudHNXaGVlbEV2ZW50cywgdWlu
dDMyX3QgcmVtb3RlTGF5ZXJDbGllbnRJRCk7CiAgICAgdm9pZCBkaWRGYWlsVG9DcmVhdGVQbHVn
aW5JbnRlcm5hbCgpOwogCi0gICAgU3RyaW5nIG1fcGx1Z2luUGF0aDsKKyAgICB1aW50NjRfdCBt
X3BsdWdpblByb2Nlc3NUb2tlbjsKIAogICAgIFJlZlB0cjxQbHVnaW5Qcm9jZXNzQ29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOwogICAgIHVpbnQ2NF90IG1fcGx1Z2luSW5zdGFuY2VJRDsKQEAgLTIx
Nyw3ICsyMTcsNiBAQCBwcml2YXRlOgogICAgIFJldGFpblB0cjxDQUxheWVyPiBtX3BsdWdpbkxh
eWVyOwogI2VuZGlmCiAKLSAgICBQbHVnaW5Qcm9jZXNzOjpUeXBlIG1fcHJvY2Vzc1R5cGU7CiAg
ICAgYm9vbCBtX2lzUmVzdGFydGVkUHJvY2VzczsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQyL1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCBjYzJkNDY3NDkwMDVhN2NhMTJhOWQw
YWE4ZDE0ZjZhZmI0M2M0ZTkzLi43YWRkOTZiMzhjM2RmNzY1NzczNDllZDEzMjBmOTc1MjEwNmZh
NTA2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFn
ZS5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CkBAIC00MSw2ICs0MSw3IEBACiAjaW5jbHVkZSAiTm90aWZpY2F0aW9uUGVybWlzc2lvblJlcXVl
c3RNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiUGFnZUJhbm5lci5oIgogI2luY2x1ZGUgIlBhZ2VPdmVy
bGF5LmgiCisjaW5jbHVkZSAiUGx1Z2luUHJvY2Vzc0F0dHJpYnV0ZXMuaCIKICNpbmNsdWRlICJQ
bHVnaW5Qcm94eS5oIgogI2luY2x1ZGUgIlBsdWdpblZpZXcuaCIKICNpbmNsdWRlICJQcmludElu
Zm8uaCIKQEAgLTUyNywxOSArNTI4LDIxIEBAIHZvaWQgV2ViUGFnZTo6aW5pdGlhbGl6ZUluamVj
dGVkQnVuZGxlRGlhZ25vc3RpY0xvZ2dpbmdDbGllbnQoV0tCdW5kbGVQYWdlRGlhZ25vCiAjaWYg
RU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCiBQYXNzUmVmUHRyPFBsdWdpbj4gV2ViUGFnZTo6
Y3JlYXRlUGx1Z2luKFdlYkZyYW1lKiBmcmFtZSwgSFRNTFBsdWdJbkVsZW1lbnQqIHBsdWdpbkVs
ZW1lbnQsIGNvbnN0IFBsdWdpbjo6UGFyYW1ldGVycyYgcGFyYW1ldGVycywgU3RyaW5nJiBuZXdN
SU1FVHlwZSkKIHsKLSAgICBTdHJpbmcgcGx1Z2luUGF0aDsKLSAgICB1aW50MzJfdCBwbHVnaW5M
b2FkUG9saWN5OwotCiAgICAgU3RyaW5nIGZyYW1lVVJMU3RyaW5nID0gZnJhbWUtPmNvcmVGcmFt
ZSgpLT5sb2FkZXIoKS0+ZG9jdW1lbnRMb2FkZXIoKS0+cmVzcG9uc2VVUkwoKS5zdHJpbmcoKTsK
ICAgICBTdHJpbmcgcGFnZVVSTFN0cmluZyA9IG1fcGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigp
LT5kb2N1bWVudExvYWRlcigpLT5yZXNwb25zZVVSTCgpLnN0cmluZygpOworICAgIFBsdWdpblBy
b2Nlc3NUeXBlIHByb2Nlc3NUeXBlID0gcGx1Z2luRWxlbWVudC0+ZGlzcGxheVN0YXRlKCkgPT0g
SFRNTFBsdWdJbkVsZW1lbnQ6OldhaXRpbmdGb3JTbmFwc2hvdCA/IFBsdWdpblByb2Nlc3NUeXBl
U25hcHNob3QgOiBQbHVnaW5Qcm9jZXNzVHlwZU5vcm1hbDsKIAogICAgIGJvb2wgYWxsb3dPbmx5
QXBwbGljYXRpb25QbHVnaW5zID0gIWZyYW1lLT5jb3JlRnJhbWUoKS0+bG9hZGVyKCktPnN1YmZy
YW1lTG9hZGVyKCktPmFsbG93UGx1Z2lucyhOb3RBYm91dFRvSW5zdGFudGlhdGVQbHVnaW4pOwot
ICAgIGlmICghc2VuZFN5bmMoTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbihwYXJh
bWV0ZXJzLm1pbWVUeXBlLCBwYXJhbWV0ZXJzLnVybC5zdHJpbmcoKSwgZnJhbWVVUkxTdHJpbmcs
IHBhZ2VVUkxTdHJpbmcsIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyksIE1lc3NhZ2VzOjpX
ZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5KHBsdWdpblBhdGgsIG5ld01JTUVUeXBlLCBw
bHVnaW5Mb2FkUG9saWN5KSkpIHsKKworICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsK
KyAgICB1aW50MzJfdCBwbHVnaW5Mb2FkUG9saWN5OworICAgIGlmICghc2VuZFN5bmMoTWVzc2Fn
ZXM6OldlYlBhZ2VQcm94eTo6RmluZFBsdWdpbihwYXJhbWV0ZXJzLm1pbWVUeXBlLCBzdGF0aWNf
Y2FzdDx1aW50MzJfdD4ocHJvY2Vzc1R5cGUpLCBwYXJhbWV0ZXJzLnVybC5zdHJpbmcoKSwgZnJh
bWVVUkxTdHJpbmcsIHBhZ2VVUkxTdHJpbmcsIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyks
IE1lc3NhZ2VzOjpXZWJQYWdlUHJveHk6OkZpbmRQbHVnaW46OlJlcGx5KHBsdWdpblByb2Nlc3NU
b2tlbiwgbmV3TUlNRVR5cGUsIHBsdWdpbkxvYWRQb2xpY3kpKSkgewogICAgICAgICByZXR1cm4g
MDsKICAgICB9CiAKICAgICBzd2l0Y2ggKHN0YXRpY19jYXN0PFBsdWdpbk1vZHVsZUxvYWRQb2xp
Y3k+KHBsdWdpbkxvYWRQb2xpY3kpKSB7CiAgICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkTm9ybWFs
bHk6CisgICAgY2FzZSBQbHVnaW5Nb2R1bGVMb2FkVW5zYW5kYm94ZWQ6CiAgICAgICAgIGJyZWFr
OwogCiAgICAgY2FzZSBQbHVnaW5Nb2R1bGVCbG9ja2VkOgpAQCAtNTU1LDcgKzU1OCw3IEBAIFBh
c3NSZWZQdHI8UGx1Z2luPiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBI
VE1MUGx1Z0luRWxlbWVudCogcGx1CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotICAgIGlm
IChwbHVnaW5QYXRoLmlzTnVsbCgpKSB7CisgICAgaWYgKCFwbHVnaW5Qcm9jZXNzVG9rZW4pIHsK
ICNpZiBQTEFURk9STShNQUMpCiAgICAgICAgIFN0cmluZyBwYXRoID0gcGFyYW1ldGVycy51cmwu
cGF0aCgpOwogICAgICAgICBpZiAoTUlNRVR5cGVSZWdpc3RyeTo6aXNQREZPclBvc3RTY3JpcHRN
SU1FVHlwZShwYXJhbWV0ZXJzLm1pbWVUeXBlKSB8fCAocGFyYW1ldGVycy5taW1lVHlwZS5pc0Vt
cHR5KCkgJiYgKHBhdGguZW5kc1dpdGgoIi5wZGYiLCBmYWxzZSkgfHwgcGF0aC5lbmRzV2l0aCgi
LnBzIiwgZmFsc2UpKSkpIHsKQEAgLTU3MSwxNiArNTc0LDEwIEBAIFBhc3NSZWZQdHI8UGx1Z2lu
PiBXZWJQYWdlOjpjcmVhdGVQbHVnaW4oV2ViRnJhbWUqIGZyYW1lLCBIVE1MUGx1Z0luRWxlbWVu
dCogcGx1CiAgICAgICAgIHJldHVybiAwOwogICAgIH0KIAotI2lmIEVOQUJMRShQTFVHSU5fUFJP
Q0VTUykKLQotICAgIFBsdWdpblByb2Nlc3M6OlR5cGUgcHJvY2Vzc1R5cGUgPSAocGx1Z2luRWxl
bWVudC0+ZGlzcGxheVN0YXRlKCkgPT0gSFRNTFBsdWdJbkVsZW1lbnQ6OldhaXRpbmdGb3JTbmFw
c2hvdCA/IFBsdWdpblByb2Nlc3M6OlR5cGVTbmFwc2hvdFByb2Nlc3MgOiBQbHVnaW5Qcm9jZXNz
OjpUeXBlUmVndWxhclByb2Nlc3MpOwogICAgIGJvb2wgaXNSZXN0YXJ0ZWRQcm9jZXNzID0gKHBs
dWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVnSW5FbGVtZW50OjpSZXN0YXJ0
aW5nIHx8IHBsdWdpbkVsZW1lbnQtPmRpc3BsYXlTdGF0ZSgpID09IEhUTUxQbHVnSW5FbGVtZW50
OjpSZXN0YXJ0aW5nV2l0aFBlbmRpbmdNb3VzZUNsaWNrKTsKLSAgICByZXR1cm4gUGx1Z2luUHJv
eHk6OmNyZWF0ZShwbHVnaW5QYXRoLCBwcm9jZXNzVHlwZSwgaXNSZXN0YXJ0ZWRQcm9jZXNzKTsK
LSNlbHNlCi0gICAgTmV0c2NhcGVQbHVnaW46OnNldFNldEV4Y2VwdGlvbkZ1bmN0aW9uKE5QUnVu
dGltZU9iamVjdE1hcDo6c2V0R2xvYmFsRXhjZXB0aW9uKTsKLSAgICByZXR1cm4gTmV0c2NhcGVQ
bHVnaW46OmNyZWF0ZShOZXRzY2FwZVBsdWdpbk1vZHVsZTo6Z2V0T3JDcmVhdGUocGx1Z2luUGF0
aCkpOwotI2VuZGlmCisgICAgcmV0dXJuIFBsdWdpblByb3h5OjpjcmVhdGUocGx1Z2luUHJvY2Vz
c1Rva2VuLCBpc1Jlc3RhcnRlZFByb2Nlc3MpOwogfQorCiAjZW5kaWYgLy8gRU5BQkxFKE5FVFND
QVBFX1BMVUdJTl9BUEkpCiAKIEVkaXRvclN0YXRlIFdlYlBhZ2U6OmVkaXRvclN0YXRlKCkgY29u
c3QKQEAgLTM4MDksMTUgKzM4MDYsMTUgQEAgdm9pZCBXZWJQYWdlOjpzZXRTY3JvbGxpbmdQZXJm
b3JtYW5jZUxvZ2dpbmdFbmFibGVkKGJvb2wgZW5hYmxlZCkKIGJvb2wgV2ViUGFnZTo6Y2FuUGx1
Z2luSGFuZGxlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7CiAj
aWYgRU5BQkxFKE5FVFNDQVBFX1BMVUdJTl9BUEkpCi0gICAgU3RyaW5nIHBsdWdpblBhdGg7Ci0g
ICAgU3RyaW5nIG5ld01JTUVUeXBlOwogICAgIHVpbnQzMl90IHBsdWdpbkxvYWRQb2xpY3k7Ci0K
ICAgICBib29sIGFsbG93T25seUFwcGxpY2F0aW9uUGx1Z2lucyA9ICFtX21haW5GcmFtZS0+Y29y
ZUZyYW1lKCktPmxvYWRlcigpLT5zdWJmcmFtZUxvYWRlcigpLT5hbGxvd1BsdWdpbnMoTm90QWJv
dXRUb0luc3RhbnRpYXRlUGx1Z2luKTsKLSAgICBpZiAoIXNlbmRTeW5jKE1lc3NhZ2VzOjpXZWJQ
YWdlUHJveHk6OkZpbmRQbHVnaW4ocmVzcG9uc2UubWltZVR5cGUoKSwgcmVzcG9uc2UudXJsKCku
c3RyaW5nKCksIHJlc3BvbnNlLnVybCgpLnN0cmluZygpLCByZXNwb25zZS51cmwoKS5zdHJpbmco
KSwgYWxsb3dPbmx5QXBwbGljYXRpb25QbHVnaW5zKSwgTWVzc2FnZXM6OldlYlBhZ2VQcm94eTo6
RmluZFBsdWdpbjo6UmVwbHkocGx1Z2luUGF0aCwgbmV3TUlNRVR5cGUsIHBsdWdpbkxvYWRQb2xp
Y3kpKSkKKworICAgIHVpbnQ2NF90IHBsdWdpblByb2Nlc3NUb2tlbjsKKyAgICBTdHJpbmcgbmV3
TUlNRVR5cGU7CisgICAgaWYgKCFzZW5kU3luYyhNZXNzYWdlczo6V2ViUGFnZVByb3h5OjpGaW5k
UGx1Z2luKHJlc3BvbnNlLm1pbWVUeXBlKCksIFBsdWdpblByb2Nlc3NUeXBlTm9ybWFsLCByZXNw
b25zZS51cmwoKS5zdHJpbmcoKSwgcmVzcG9uc2UudXJsKCkuc3RyaW5nKCksIHJlc3BvbnNlLnVy
bCgpLnN0cmluZygpLCBhbGxvd09ubHlBcHBsaWNhdGlvblBsdWdpbnMpLCBNZXNzYWdlczo6V2Vi
UGFnZVByb3h5OjpGaW5kUGx1Z2luOjpSZXBseShwbHVnaW5Qcm9jZXNzVG9rZW4sIG5ld01JTUVU
eXBlLCBwbHVnaW5Mb2FkUG9saWN5KSkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIAotICAgIHJl
dHVybiBwbHVnaW5Mb2FkUG9saWN5ICE9IFBsdWdpbk1vZHVsZUJsb2NrZWQgJiYgIXBsdWdpblBh
dGguaXNFbXB0eSgpOworICAgIHJldHVybiBwbHVnaW5Mb2FkUG9saWN5ICE9IFBsdWdpbk1vZHVs
ZUJsb2NrZWQgJiYgcGx1Z2luUHJvY2Vzc1Rva2VuOwogI2Vsc2UKICAgICByZXR1cm4gZmFsc2U7
CiAjZW5kaWYK
</data>
<flag name="review"
          id="223889"
          type_id="1"
          status="+"
          setter="kling"
    />
    <flag name="commit-queue"
          id="223891"
          type_id="3"
          status="-"
          setter="eflews.bot"
    />
          </attachment>
      

    </bug>

</bugzilla>