<?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>231250</bug_id>
          
          <creation_ts>2021-10-05 13:51:00 -0700</creation_ts>
          <short_desc>FileSystemHandle should be ContextDestructionObserver</short_desc>
          <delta_ts>2021-10-26 14:42:17 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231706</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Sihui Liu">sihui_liu</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1800736</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-05 13:51:00 -0700</bug_when>
    <thetext>Same as FileSystemSyncAccessHandle.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803346</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-12 13:51:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/84164797&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808456</commentid>
    <comment_count>2</comment_count>
      <attachid>442383</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-25 10:32:24 -0700</bug_when>
    <thetext>Created attachment 442383
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808463</commentid>
    <comment_count>3</comment_count>
      <attachid>442384</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-25 10:38:22 -0700</bug_when>
    <thetext>Created attachment 442384
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1808798</commentid>
    <comment_count>4</comment_count>
      <attachid>442384</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-26 02:03:02 -0700</bug_when>
    <thetext>Comment on attachment 442384
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=442384&amp;action=review

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemHandle.h:57
&gt; +    FileSystemHandle(ScriptExecutionContext*, Kind, String&amp;&amp; name, FileSystemHandleIdentifier, Ref&lt;FileSystemStorageConnection&gt;&amp;&amp;);

We usually go with ScriptExecutionContext&amp;

&gt; Source/WebCore/Modules/storage/StorageManager.cpp:122
&gt; +        auto* context = weakNavgiator ? weakNavgiator-&gt;scriptExecutionContext() : nullptr;

s/weakNavgiator/weakNavigator</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809023</commentid>
    <comment_count>5</comment_count>
      <attachid>442528</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-26 14:11:38 -0700</bug_when>
    <thetext>Created attachment 442528
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809048</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-26 14:42:15 -0700</bug_when>
    <thetext>Committed r284900 (243577@main): &lt;https://commits.webkit.org/243577@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 442528.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442383</attachid>
            <date>2021-10-25 10:32:24 -0700</date>
            <delta_ts>2021-10-25 11:04:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231250-20211025103223.patch</filename>
            <type>text/plain</type>
            <size>31270</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA3YjgzODNlMGE0NTZk
MDc3MzM1YTg3OGFiMTAxOWFiMzBhOGZiNC4uZTg4MTJkNDkyYWQ2NWU4ZjgwZmYzYTVkZTQ1Mjli
NjA1YTEyOWJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEwLTI1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1IYW5kbGUg
c2hvdWxkIGJlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg0MTY0Nzk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2UgRmlsZVN5c3RlbUhhbmRsZSBhbmQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgQWN0aXZlRE9NT2JqZWN0IHRvIGNsb3NlIHRoZW0gd2hlbiBjb250ZXh0IHN0b3BzLgorCisg
ICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
RGlyZWN0b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGVOYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAq
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg6Cisg
ICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZTo6aXNDbG9zZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6aXNDbG9zaW5nT3JDbG9zZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6c3RvcCk6CisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Lmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NH
ZXREaXJlY3RvcnkpOgorCiAyMDIxLTEwLTI1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTEZDXVtJRkNdIENoZWNrIGFjcm9zcyBpbmxpbmUgYm94IGJvdW5kYXJp
ZXMgZm9yIGJyZWFrYWJsZSBwb3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUuY3BwCmluZGV4IDZiZGM3ZmM3NDRhZjIzMWQ2ODFlODdhNThlMjZmZDQ2NzUxNTY0ZjMu
LmJkZTczODIxZTRjOTI0Zjg2MTI3YTc1MzgwNzdlNjQyYTk5YmRmZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTM2LDQwICszNiw1MSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24pCitSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0
cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCi0gICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGU6OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShj
b25uZWN0aW9uKSkKK0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogRmlsZVN5c3RlbUhhbmRsZShjb250
ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpEaXJlY3RvcnksIFdURk1vdmUobmFtZSksIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0RmlsZU9wdGlvbnM+IG9wdGlvbnMs
IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbUZpbGVIYW5kbGU+PiYm
IHByb21pc2UpCiB7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQi
X3MgfSk7CisKICAgICBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/IG9wdGlvbnMt
PmNyZWF0ZSA6IGZhbHNlOwotICAgIGNvbm5lY3Rpb24oKS5nZXRGaWxlSGFuZGxlKGlkZW50aWZp
ZXIoKSwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnksIFtjb25uZWN0aW9uID0gUmVmIHsgY29ubmVj
dGlvbigpIH0sIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldEZpbGVIYW5kbGUoaWRlbnRpZmllcigpLCBu
YW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNv
bm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uKCkgfSwgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdU
Rk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8g
d2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7CisgICAgICAgIHBy
b21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5n
IHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwog
ICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9y
eUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVy
cmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4mJiBwcm9taXNlKQog
eworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOworCiAg
ICAgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSA9IG9wdGlvbnMgPyBvcHRpb25zLT5jcmVhdGUgOiBm
YWxzZTsKLSAgICBjb25uZWN0aW9uKCkuZ2V0RGlyZWN0b3J5SGFuZGxlKGlkZW50aWZpZXIoKSwg
bmFtZSwgY3JlYXRlSWZOZWNlc3NhcnksIFtjb25uZWN0aW9uID0gUmVmIHsgY29ubmVjdGlvbigp
IH0sIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgY29ubmVjdGlvbigpLmdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5h
bWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29u
bmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmNyZWF0ZShTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgp
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhp
cyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOworICAgICAg
ICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4
dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0
aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJl
bW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpSZW1vdmVPcHRpb25zPiBvcHRpb25zLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMg
Y2xvc2VkIl9zIH0pOworCiAgICAgYm9vbCBkZWxldGVSZWN1cnNpdmVseSA9IG9wdGlvbnMgPyBv
cHRpb25zLT5yZWN1cnNpdmUgOiBmYWxzZTsKICAgICBjb25uZWN0aW9uKCkucmVtb3ZlRW50cnko
aWRlbnRpZmllcigpLCBuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CkBAIC03OCw2ICs4OSw5IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFs
PEZpCiAKIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVzb2x2ZShjb25zdCBGaWxl
U3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExV
U1ZTdHJpbmc+PiYmIHByb21pc2UpCiB7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJl
dHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRs
ZSBpcyBjbG9zZWQiX3MgfSk7CisKICAgICBjb25uZWN0aW9uKCkucmVzb2x2ZShpZGVudGlmaWVy
KCksIGhhbmRsZS5pZGVudGlmaWVyKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0
byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCkpOwpAQCAtODgsMjIgKzEwMiwyOSBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6
OnJlc29sdmUoY29uc3QgRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taQogCiB2b2lk
IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZU5hbWVzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9z
IH0pOworCiAgICAgY29ubmVjdGlvbigpLmdldEhhbmRsZU5hbWVzKGlkZW50aWZpZXIoKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGU6OmdldEhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGU+PiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZ2V0SGFuZGxlKGlkZW50aWZpZXIoKSwgbmFtZSwg
W25hbWUsIGNvbm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uKCkgfSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewor
ICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOworCisg
ICAgY29ubmVjdGlvbigpLmdldEhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCBuYW1lLCBjb25uZWN0aW9uID0gUmVmIHsgY29ubmVjdGlvbigp
IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpKTsKIAogICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/
IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOwogICAgICAgICBp
ZiAoaXNEaXJlY3RvcnkpIHsKLSAgICAgICAgICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5k
bGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCBp
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgICAgIFJlZjxGaWxlU3lz
dGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29u
dGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsK
ICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwog
ICAgICAgICB9CiAKLSAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBp
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShoYW5kbGUpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZS5oCmluZGV4IDY4YTFkZWMzNjEwM2RjODhhYjg5NDFlYjIyMTk4OTRhZGIyMDU5
MWQuLmRjOGMyMmU1MDk1Y2RhMWE4MGNiZDhhMTA0ZDJhOTFiOWM4NGEzMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGJvb2wgcmVjdXJzaXZlIHsgZmFsc2UgfTsKICAgICB9OwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBjcmVhdGUoU3RyaW5n
JiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9w
dGlvbmFsPEdldEZpbGVPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNv
bnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxHZXREaXJlY3RvcnlPcHRpb25zPiwgRE9N
UHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4m
Jik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9u
YWw8UmVtb3ZlT3B0aW9ucz4sIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAgLTc3LDcg
Kzc3LDcgQEAgcHVibGljOgogICAgIFJlZjxJdGVyYXRvcj4gY3JlYXRlSXRlcmF0b3IoKTsKIAog
cHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFN0cmluZyYmLCBGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7
CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
U3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IDc4NDQ4YWNiYjhiMmE0YTllNDFlYzhlOTZjMjM0
OTUyYWFiMTJhNzAuLjM2Njg3M2FhZmQ5ZDk4ZTU3NjRjOWIyNTUxYjNjZTVlZjYyMGJmYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMzYsMTMgKzM2LDEzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
K1JlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3Rl
bUZpbGVIYW5kbGUoV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9u
KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKGNvbnRl
eHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0K
IAotRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFN0cmluZyYmIG5h
bWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUo
RmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwg
V1RGTW92ZShjb25uZWN0aW9uKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmls
ZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKGNvbnRl
eHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50aWZp
ZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKQEAgLTUzLDYgKzUzLDkgQEAgdm9pZCBG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGU+PiYmIHByb20KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAg
ICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKwogICAgIGNvbm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwpAQCAtNjEsMjcgKzY0LDM5IEBAIHZv
aWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlz
ZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHRWYWx1ZS5zZWNvbmQgPT0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKICAgICAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IsICJJbnZhbGlkIHBsYXRm
b3JtIGZpbGUgaGFuZGxlIl9zIH0pOwogCi0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0VmFs
dWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOworICAgICAgICBwcm9taXNlLnNldHRsZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgcHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0VmFsdWUuZmlyc3Qs
IHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVp
bnQ2NF90PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoaXNDbG9zZWQoKSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKKwogICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYgKGlzQ2xvc2Vk
KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CisKICAgICBjb25uZWN0aW9uKCku
dHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIl9zIH0pOworCiAgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIo
KSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAg
ICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKKwogICAg
IGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaAppbmRleCA3NDIwNzY4Mzg4MjUxYWM2OGE1NWViYjM0ZDBhOGMyZmM1OWQ1ZWNiLi45NGQ1
ZTFlMTdmOWY2ZmExOTc3NDE0MDNmNzllNGM3ODBjNmVkZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaApAQCAtMzcsNyArMzcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhj
ZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZSBmaW5hbCA6IHB1YmxpYyBGaWxl
U3lzdGVtSGFuZGxlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0
ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU+PiYmKTsKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xv
c2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lz
dGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDg3MzBmMGVkYWU2
YzZjMDMwMGE3Nzk4Y2RmNjFhODUwOGMxNDZhZmUuLmVmMDEwZjNhOTc2YWIxYmU4MzFkM2NkOTJi
NmNhMzE2MDk0MTc2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTM0LDE4ICszNCwy
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChG
aWxlU3lzdGVtSGFuZGxlKTsKIAotRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShG
aWxlU3lzdGVtSGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKLSAgICA6IG1fa2luZChraW5kKQorRmlsZVN5c3RlbUhhbmRsZTo6Rmls
ZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVt
SGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbikKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorICAgICwgbV9raW5kKGtpbmQp
CiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQogICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiB7CisgICAgc3Vz
cGVuZElmTmVlZGVkKCk7CiB9CiAKIEZpbGVTeXN0ZW1IYW5kbGU6On5GaWxlU3lzdGVtSGFuZGxl
KCkgPSBkZWZhdWx0OwogCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJv
bWlzZSkgY29uc3QKIHsKKyAgICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3Nl
ZCIgfSk7CisKICAgICBpZiAobV9raW5kICE9IGhhbmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhh
bmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoZmFsc2UpOwogCkBA
IC01Niw2ICs2MSw5IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkoRmlsZVN5
c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8CiAKIHZvaWQgRmlsZVN5c3Rl
bUhhbmRsZTo6bW92ZShGaWxlU3lzdGVtSGFuZGxlJiBkZXN0aW5hdGlvbkhhbmRsZSwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewor
ICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKwogICAgIGlm
IChkZXN0aW5hdGlvbkhhbmRsZS5raW5kKCkgIT0gS2luZDo6RGlyZWN0b3J5KQogICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IgfSk7CiAK
QEAgLTY3LDQgKzc1LDE0IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6bW92ZShGaWxlU3lzdGVt
SGFuZGxlJiBkZXN0aW5hdGlvbkhhbmRsZSwgY29uc3QgU3RyaW5nJiBuCiAgICAgfSk7CiB9CiAK
K2NvbnN0IGNoYXIqIEZpbGVTeXN0ZW1IYW5kbGU6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiAiRmlsZVN5c3RlbUhhbmRsZSI7Cit9CisKK3ZvaWQgRmlsZVN5c3Rl
bUhhbmRsZTo6c3RvcCgpCit7CisgICAgbV9pc0Nsb3NlZCA9IHRydWU7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmluZGV4IDU2NGQyYzE5NTc2NjlmYjBl
YzhiZGY5MDFmZGE3Mjg5YmM1YmRlMzEuLjBhODVlMDI4ZGIzNWZmNWRmZjYzMDFlNmQxOTNiMDYz
MTEzYjNhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CkBAIC0zNSw3ICszNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVT
eXN0ZW1IYW5kbGU+IHsKK2NsYXNzIEZpbGVTeXN0ZW1IYW5kbGUgOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RmlsZVN5c3RlbUhhbmRsZT4sIHB1YmxpYyBS
ZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEZpbGVTeXN0ZW1IYW5kbGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfkZpbGVTeXN0ZW1IYW5k
bGUoKTsKQEAgLTQ3LDE5ICs0OCwyNSBAQCBwdWJsaWM6CiAgICAgS2luZCBraW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9raW5kOyB9CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lOyB9CiAgICAgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIGJvb2wgaXNDbG9zZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CiAKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CiAgICAg
dm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5k
bGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1IYW5kbGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBz
dG9wKCkgZmluYWw7CisKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUgfTsKICAgICBTdHJp
bmcgbV9uYW1lOwogICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsK
ICAgICBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmlkbAppbmRleCAyNmFiODQxOTcxMzI0MWE4OTA3YThlZDc4Njhi
MjY2MTI5ZDIxOTc5Li5iYmE2ZWE0ZDkwNWEwZGNkMWI3MDRlYmI4ZmU1MmI5ODdkZDJhY2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCkBAIC0yOSw2ICsyOSw3IEBAIGVudW0gRmlsZVN5c3Rl
bUhhbmRsZUtpbmQgewogfTsKIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDdXN0b21U
b0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIEVuYWJsZWRCeVNl
dHRpbmc9RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmNwcAppbmRleCBjY2RiYzQwNDlhY2YzNDk4YTAzOWVjOGU4Y2EwYmUxMzc3
YmQ2Yjc2Li4yNGZjMmE3YTQyMzgzODc5ZjhlZGY5NWE2Y2FlZDgyZjM4YjFjMjY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTMzLDM3ICszMywyOSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRs
ZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCitSZWY8RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKGNvbnRl
eHQsIHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQotICAgIDogbV9zb3VyY2Uoc291
cmNlKQorRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
JiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKKyAgICA6IEFjdGl2ZURPTU9i
amVjdChjb250ZXh0KQorICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCiAgICAgLCBtX2ZpbGUoZmlsZSkKIHsKICAgICBBU1NFUlQobV9maWxlICE9
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOwogfQogCiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKCkKIHsKLSAgICBpZiAobV9jbG9zZVJlc3VsdCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgQVNTRVJUKG1fY2xvc2VQcm9taXNlcy5pc0VtcHR5KCkpOwotICAgIGNsb3NlSW50
ZXJuYWwoW10oYXV0bykgeyB9KTsKKyAgICBBU1NFUlQobV9jbG9zZVJlc3VsdCk7CiB9CiAKIGJv
b2wgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jbG9zZVJlc3VsdCB8fCAhbV9jbG9zZVByb21pc2VzLmlzRW1wdHko
KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VJbnRlcm5hbChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2ZpbGUpOwotICAgIG1fc291
cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICByZXR1cm4gbV9jbG9zZVJlc3VsdCB8fCAhbV9jbG9zZUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9
CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxv
bmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtMTA5
LDI5ICsxMDEsMzggQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Zmx1c2goRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
K3sKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIGNsb3NlSW50ZXJuYWwoW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRp
b25Db3VudC0tOworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAg
IH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFs
KENsb3NlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9jbG9zZVJlc3VsdCkKLSAg
ICAgICAgcmV0dXJuIHByb21pc2Uuc2V0dGxlKEV4Y2VwdGlvbk9yPHZvaWQ+IHsgKm1fY2xvc2VS
ZXN1bHQgfSk7Ci0gICAgCi0gICAgYXV0byBpc0Nsb3NpbmcgPSAhbV9jbG9zZVByb21pc2VzLmlz
RW1wdHkoKTsKLSAgICBtX2Nsb3NlUHJvbWlzZXMuYXBwZW5kKFdURk1vdmUocHJvbWlzZSkpOwor
ICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uT3I8dm9pZD4geyAqbV9jbG9zZVJlc3Vs
dCB9KTsKKworICAgIGF1dG8gaXNDbG9zaW5nID0gIW1fY2xvc2VDYWxsYmFja3MuaXNFbXB0eSgp
OworICAgIG1fY2xvc2VDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBp
ZiAoaXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BlbmRpbmdPcGVyYXRpb25D
b3VudCsrOwotICAgIGNsb3NlSW50ZXJuYWwoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIG1fcGVuZGluZ09wZXJhdGlv
bkNvdW50LS07CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1fZmlsZSk7CisgICAgbV9zb3Vy
Y2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XShhdXRvIHJlc3VsdCkgewogICAgICAgICBkaWRDbG9zZShXVEZNb3ZlKHJlc3VsdCkpOwog
ICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZShF
eGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKIHsKLSAgICBtX2Nsb3NlUmVzdWx0ID0gV1RGTW92
ZShyZXN1bHQpOworICAgIEFTU0VSVCghbV9jbG9zZVJlc3VsdCk7CiAKLSAgICBhdXRvIHByb21p
c2VzID0gc3RkOjpleGNoYW5nZShtX2Nsb3NlUHJvbWlzZXMsIHsgfSk7Ci0gICAgZm9yIChhdXRv
IHByb21pc2UgOiBwcm9taXNlcykKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoRXhjZXB0aW9uT3I8
dm9pZD4geyAqbV9jbG9zZVJlc3VsdCB9KTsKKyAgICBtX2Nsb3NlUmVzdWx0ID0gV1RGTW92ZShy
ZXN1bHQpOworICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2Nsb3NlQ2FsbGJh
Y2tzLCB7IH0pOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisgICAgICAg
IGNhbGxiYWNrKEV4Y2VwdGlvbk9yPHZvaWQ+IHsgKm1fY2xvc2VSZXN1bHQgfSk7CiB9CiAKIEV4
Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OnJlYWQoQnVmZmVyU291cmNlJiYgYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKQEAgLTE3Niw0ICsxNzcsMTQgQEAg
RXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6d3JpdGUoQnVmZmVyU291cmNlJiYKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitjb25zdCBj
aGFyKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSI7Cit9CisKK3Zv
aWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnN0b3AoKQoreworICAgIGNsb3NlSW50ZXJu
YWwoW10oYXV0bykgeyB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCAxMjE4OTFhOTZkOThjZjA5ZmJiNGFk
MDkxOGYyZTM1MjdmN2I0NGNhLi5iNTRlMmVmMTM5NDQ4ODNlYmMwYTQ4NWQ4NTQ4OWNlMWQ0ZmRi
MzFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMzcsMTMg
KzM3LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OwogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAotY2xhc3Mg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZT4geworY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUgOiBwdWJsaWMg
QWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZT4sIHB1YmxpYyBDYW5NYWtlV2Vha1B0cjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4g
ewogcHVibGljOgogICAgIHN0cnVjdCBGaWxlc3lzdGVtUmVhZFdyaXRlT3B0aW9ucyB7CiAgICAg
ICAgIHVuc2lnbmVkIGxvbmcgbG9uZyBhdDsKICAgICB9OwogCi0gICAgc3RhdGljIFJlZjxGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZp
bGVIYW5kbGUpOworICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IGNy
ZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmls
ZUhhbmRsZSk7CiAgICAgfkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCk7CiAKICAgICB2b2lk
IHRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJik7CkBAIC01NSwxNiArNTUsMjEgQEAgcHVibGljOgogICAgIEV4Y2VwdGlvbk9yPHVuc2ln
bmVkIGxvbmcgbG9uZz4gd3JpdGUoQnVmZmVyU291cmNlJiYsIEZpbGVzeXN0ZW1SZWFkV3JpdGVP
cHRpb25zKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKKyAgICBGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3Jt
RmlsZUhhbmRsZSk7CiAgICAgYm9vbCBpc0Nsb3NpbmdPckNsb3NlZCgpIGNvbnN0OwotICAgIHZv
aWQgY2xvc2VJbnRlcm5hbChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+
JiYpPiYmKTsKKyAgICB1c2luZyBDbG9zZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CisgICAgdm9pZCBjbG9zZUludGVybmFsKENsb3NlQ2Fs
bGJhY2smJik7CisKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3Rp
dmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CiAK
ICAgICBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IG1fc291cmNlOwogICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBtX2lkZW50aWZpZXI7CiAgICAgdWludDY0X3QgbV9w
ZW5kaW5nT3BlcmF0aW9uQ291bnQgeyAwIH07CiAgICAgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlIG1fZmlsZTsKICAgICBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbk9yPHZvaWQ+PiBtX2Ns
b3NlUmVzdWx0OwotICAgIFZlY3RvcjxET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4+IG1fY2xvc2VQ
cm9taXNlczsKKyAgICBWZWN0b3I8Q2xvc2VDYWxsYmFjaz4gbV9jbG9zZUNhbGxiYWNrczsKIH07
CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaWRsCmluZGV4IDZlYTU0Mzk3ZWVhZjM5MGQ2YzE3ODUxOGY3MjE2NWFiYWFkYTM0
MGQuLjE3NGYzYzk1NWE0YmViMzI5NWNlZmMyZDA3NzVhZjYwOTgxODg0NzcgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbApAQCAtMjQsOCArMjQsOCBAQAogICov
CiAKIFsKKyAgICBBY3RpdmVET01PYmplY3QsCiAgICAgRW5hYmxlZEJ5U2V0dGluZz1BY2Nlc3NI
YW5kbGVFbmFibGVkLAotICAgIEltcGxlbWVudGF0aW9uTGFja3NWVGFibGUsCiAgICAgRXhwb3Nl
ZD1EZWRpY2F0ZWRXb3JrZXIsCiAgICAgU2VjdXJlQ29udGV4dAogXSBpbnRlcmZhY2UgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMTA3MjU3MjRmMWFjNzEzODEzYjkzMmUzMzIx
OTljMmQ1NmQ3N2FmNC4uNjM1ZTQ3NmQ3NzVlYTMzMTE5NWUyYmE1MzFlOGFhOTg0NTkwY2NjMCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwCkBAIC0xMTUsMTIgKzExNSwxMyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVt
QWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAg
ICByZXR1cm4gcHJvbWlzZS5yZWplY3QoY29ubmVjdGlvbkluZm9PckV4Y2VwdGlvbi5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCiAgICAgYXV0byBjb25uZWN0aW9uSW5mbyA9IGNvbm5lY3Rpb25JbmZv
T3JFeGNlcHRpb24ucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgY29ubmVjdGlvbkluZm8uY29u
bmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25JbmZvLm9yaWdpbiwgW3By
b21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29u
bmVjdGlvbkluZm8uY29ubmVjdGlvbi5maWxlU3lzdGVtR2V0RGlyZWN0b3J5KGNvbm5lY3Rpb25J
bmZvLm9yaWdpbiwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpLCB3ZWFrTmF2Z2lhdG9yID0g
bV9uYXZpZ2F0b3JdKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5o
YXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQu
cmVsZWFzZUV4Y2VwdGlvbigpKTsKIAorICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha05hdmdp
YXRvciA/IHdlYWtOYXZnaWF0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7
CiAgICAgICAgIGF1dG8gaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyID0gcmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpOwotICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6Y3JlYXRlKHsgfSwgaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyLmZpcnN0LCBSZWYg
eyAqIGlkZW50aWZpZXJDb25uZWN0aW9uUGFpci5zZWNvbmQgfSkpOworICAgICAgICBwcm9taXNl
LnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIHsgfSwg
aWRlbnRpZmllckNvbm5lY3Rpb25QYWlyLmZpcnN0LCBSZWYgeyAqIGlkZW50aWZpZXJDb25uZWN0
aW9uUGFpci5zZWNvbmQgfSkpOwogICAgIH0pOwogfQogCg==
</data>
<flag name="commit-queue"
          id="466871"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442384</attachid>
            <date>2021-10-25 10:38:22 -0700</date>
            <delta_ts>2021-10-26 14:11:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231250-20211025103820.patch</filename>
            <type>text/plain</type>
            <size>31440</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0Nzg3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNzA3YjgzODNlMGE0NTZk
MDc3MzM1YTg3OGFiMTAxOWFiMzBhOGZiNC4uZTg4MTJkNDkyYWQ2NWU4ZjgwZmYzYTVkZTQ1Mjli
NjA1YTEyOWJkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEwLTI1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1IYW5kbGUg
c2hvdWxkIGJlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg0MTY0Nzk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIE1ha2UgRmlsZVN5c3RlbUhhbmRsZSBhbmQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgQWN0aXZlRE9NT2JqZWN0IHRvIGNsb3NlIHRoZW0gd2hlbiBjb250ZXh0IHN0b3BzLgorCisg
ICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3Jl
YXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
RGlyZWN0b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViQ29y
ZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVzb2x2ZSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGVOYW1lcyk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAq
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg6Cisg
ICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNw
cDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxl
KToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRT
aXplKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Zmx1c2gpOgorICAgICAg
ICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaDoKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZTo6aXNDbG9zZWQgY29uc3QpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUpOgorICAg
ICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6On5GaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6aXNDbG9zaW5nT3JDbG9zZWQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFsKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6c3RvcCk6CisgICAg
ICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
Lmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NH
ZXREaXJlY3RvcnkpOgorCiAyMDIxLTEwLTI1ICBBbGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNv
bT4KIAogICAgICAgICBbTEZDXVtJRkNdIENoZWNrIGFjcm9zcyBpbmxpbmUgYm94IGJvdW5kYXJp
ZXMgZm9yIGJyZWFrYWJsZSBwb3NpdGlvbgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUuY3BwCmluZGV4IDZiZGM3ZmM3NDRhZjIzMWQ2ODFlODdhNThlMjZmZDQ2NzUxNTY0ZjMu
LmJkZTczODIxZTRjOTI0Zjg2MTI3YTc1MzgwNzdlNjQyYTk5YmRmZDEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTM2LDQwICszNiw1MSBAQCBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24pCitSZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0
cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKIHsKLSAgICByZXR1cm4g
YWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFdURk1vdmUobmFtZSksIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICByZXR1cm4gYWRvcHRSZWYoKm5l
dyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50
aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCi0gICAgOiBGaWxlU3lzdGVtSGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGU6OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShj
b25uZWN0aW9uKSkKK0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogRmlsZVN5c3RlbUhhbmRsZShjb250
ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpEaXJlY3RvcnksIFdURk1vdmUobmFtZSksIGlk
ZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbURp
cmVjdG9yeUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0RmlsZU9wdGlvbnM+IG9wdGlvbnMs
IERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbUZpbGVIYW5kbGU+PiYm
IHByb21pc2UpCiB7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQi
X3MgfSk7CisKICAgICBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5ID0gb3B0aW9ucyA/IG9wdGlvbnMt
PmNyZWF0ZSA6IGZhbHNlOwotICAgIGNvbm5lY3Rpb24oKS5nZXRGaWxlSGFuZGxlKGlkZW50aWZp
ZXIoKSwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnksIFtjb25uZWN0aW9uID0gUmVmIHsgY29ubmVj
dGlvbigpIH0sIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkg
bXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldEZpbGVIYW5kbGUoaWRlbnRpZmllcigpLCBu
YW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIGNv
bm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uKCkgfSwgbmFtZSwgcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRmls
ZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdU
Rk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8g
d2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7CisgICAgICAgIHBy
b21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5n
IHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwog
ICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9y
eUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0aW9ucywgRE9NUHJvbWlzZURlZmVy
cmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4mJiBwcm9taXNlKQog
eworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOworCiAg
ICAgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSA9IG9wdGlvbnMgPyBvcHRpb25zLT5jcmVhdGUgOiBm
YWxzZTsKLSAgICBjb25uZWN0aW9uKCkuZ2V0RGlyZWN0b3J5SGFuZGxlKGlkZW50aWZpZXIoKSwg
bmFtZSwgY3JlYXRlSWZOZWNlc3NhcnksIFtjb25uZWN0aW9uID0gUmVmIHsgY29ubmVjdGlvbigp
IH0sIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7CisgICAgY29ubmVjdGlvbigpLmdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyKCksIG5h
bWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgY29u
bmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1lLCBwcm9taXNlID0gV1RGTW92ZShw
cm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmNyZWF0ZShTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgp
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhp
cyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOworICAgICAg
ICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4
dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0
aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJl
bW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpSZW1vdmVPcHRpb25zPiBvcHRpb25zLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMg
Y2xvc2VkIl9zIH0pOworCiAgICAgYm9vbCBkZWxldGVSZWN1cnNpdmVseSA9IG9wdGlvbnMgPyBv
cHRpb25zLT5yZWN1cnNpdmUgOiBmYWxzZTsKICAgICBjb25uZWN0aW9uKCkucmVtb3ZlRW50cnko
aWRlbnRpZmllcigpLCBuYW1lLCBkZWxldGVSZWN1cnNpdmVseSwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21pc2Uuc2V0dGxl
KFdURk1vdmUocmVzdWx0KSk7CkBAIC03OCw2ICs4OSw5IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFs
PEZpCiAKIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVzb2x2ZShjb25zdCBGaWxl
U3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZlcnJlZDxJRExTZXF1ZW5jZTxJRExV
U1ZTdHJpbmc+PiYmIHByb21pc2UpCiB7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJl
dHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRs
ZSBpcyBjbG9zZWQiX3MgfSk7CisKICAgICBjb25uZWN0aW9uKCkucmVzb2x2ZShpZGVudGlmaWVy
KCksIGhhbmRsZS5pZGVudGlmaWVyKCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0
byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQog
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9u
KCkpOwpAQCAtODgsMjIgKzEwMiwyOSBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6
OnJlc29sdmUoY29uc3QgRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taQogCiB2b2lk
IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZU5hbWVzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9z
IH0pOworCiAgICAgY29ubmVjdGlvbigpLmdldEhhbmRsZU5hbWVzKGlkZW50aWZpZXIoKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGU6OmdldEhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGU+PiYmKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZ2V0SGFuZGxlKGlkZW50aWZpZXIoKSwgbmFtZSwg
W25hbWUsIGNvbm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uKCkgfSwgY29tcGxldGlvbkhhbmRs
ZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewor
ICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOworCisg
ICAgY29ubmVjdGlvbigpLmdldEhhbmRsZShpZGVudGlmaWVyKCksIG5hbWUsIFt3ZWFrVGhpcyA9
IFdlYWtQdHIgeyAqdGhpcyB9LCBuYW1lLCBjb25uZWN0aW9uID0gUmVmIHsgY29ubmVjdGlvbigp
IH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8g
cmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpKTsKIAogICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/
IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOwogICAgICAgICBp
ZiAoaXNEaXJlY3RvcnkpIHsKLSAgICAgICAgICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5k
bGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCBp
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgICAgIFJlZjxGaWxlU3lz
dGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29u
dGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsK
ICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRsZSkpOwog
ICAgICAgICB9CiAKLSAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVT
eXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBp
ZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoV1RGTW92ZShoYW5kbGUpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZS5oCmluZGV4IDY4YTFkZWMzNjEwM2RjODhhYjg5NDFlYjIyMTk4OTRhZGIyMDU5
MWQuLmRjOGMyMmU1MDk1Y2RhMWE4MGNiZDhhMTA0ZDJhOTFiOWM4NGEzMDAgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgICAgIGJvb2wgcmVjdXJzaXZlIHsgZmFsc2UgfTsKICAgICB9OwogCi0gICAgV0VCQ09SRV9F
WFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBjcmVhdGUoU3RyaW5n
JiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9w
dGlvbmFsPEdldEZpbGVPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxG
aWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKGNv
bnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxHZXREaXJlY3RvcnlPcHRpb25zPiwgRE9N
UHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPj4m
Jik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9u
YWw8UmVtb3ZlT3B0aW9ucz4sIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAgLTc3LDcg
Kzc3LDcgQEAgcHVibGljOgogICAgIFJlZjxJdGVyYXRvcj4gY3JlYXRlSXRlcmF0b3IoKTsKIAog
cHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFN0cmluZyYmLCBGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7
CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Kiwg
U3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IDc4NDQ4YWNiYjhiMmE0YTllNDFlYzhlOTZjMjM0
OTUyYWFiMTJhNzAuLjM2Njg3M2FhZmQ5ZDk4ZTU3NjRjOWIyNTUxYjNjZTVlZjYyMGJmYjggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMzYsMTMgKzM2LDEzIEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikK
K1JlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShT
Y3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3Rl
bUZpbGVIYW5kbGUoV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9u
KSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKGNvbnRl
eHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0K
IAotRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlKFN0cmluZyYmIG5h
bWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICA6IEZpbGVTeXN0ZW1IYW5kbGUo
RmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RmlsZSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwg
V1RGTW92ZShjb25uZWN0aW9uKSkKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmls
ZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBGaWxlU3lzdGVtSGFuZGxlKGNvbnRl
eHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUobmFtZSksIGlkZW50aWZp
ZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKQEAgLTUzLDYgKzUzLDkgQEAgdm9pZCBG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWNlPEZpbGU+PiYmIHByb20KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3lu
Y0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAg
ICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKwogICAgIGNvbm5lY3Rpb24oKS5jcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBw
cm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAg
ICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2Uu
cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwpAQCAtNjEsMjcgKzY0LDM5IEBAIHZv
aWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlz
ZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChyZXN1bHRWYWx1ZS5zZWNvbmQgPT0g
RmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRsZSkKICAgICAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBVbmtub3duRXJyb3IsICJJbnZhbGlkIHBsYXRm
b3JtIGZpbGUgaGFuZGxlIl9zIH0pOwogCi0gICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0VmFs
dWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOworICAgICAgICBwcm9taXNlLnNldHRsZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHByb3RlY3RlZFRoaXMtPnNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQoKSwgcHJvdGVjdGVkVGhpcy5nZXQoKSwgcmVzdWx0VmFsdWUuZmlyc3Qs
IHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHVp
bnQ2NF90PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoaXNDbG9zZWQoKSkK
KyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKKwogICAgIGNvbm5lY3Rpb24oKS5nZXRT
aXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjp0cnVuY2F0ZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CisgICAgaWYgKGlzQ2xvc2Vk
KCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CisKICAgICBjb25uZWN0aW9uKCku
dHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBzaXplLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5k
bGUgaXMgY2xvc2VkIl9zIH0pOworCiAgICAgY29ubmVjdGlvbigpLmZsdXNoKGlkZW50aWZpZXIo
KSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKKyAg
ICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKKwogICAg
IGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5k
bGUuaAppbmRleCA3NDIwNzY4Mzg4MjUxYWM2OGE1NWViYjM0ZDBhOGMyZmM1OWQ1ZWNiLi45NGQ1
ZTFlMTdmOWY2ZmExOTc3NDE0MDNmNzllNGM3ODBjNmVkZGJlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaApAQCAtMzcsNyArMzcsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhj
ZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZSBmaW5hbCA6IHB1YmxpYyBGaWxl
U3lzdGVtSGFuZGxlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0
ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCosIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGU+PiYmKTsKQEAgLTQ3LDcgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2xv
c2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lz
dGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IDg3MzBmMGVkYWU2
YzZjMDMwMGE3Nzk4Y2RmNjFhODUwOGMxNDZhZmUuLmVmMDEwZjNhOTc2YWIxYmU4MzFkM2NkOTJi
NmNhMzE2MDk0MTc2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTM0LDE4ICszNCwy
MyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FURURfSU1QTChG
aWxlU3lzdGVtSGFuZGxlKTsKIAotRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShG
aWxlU3lzdGVtSGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYgY29ubmVjdGlvbikKLSAgICA6IG1fa2luZChraW5kKQorRmlsZVN5c3RlbUhhbmRsZTo6Rmls
ZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVt
SGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbikKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorICAgICwgbV9raW5kKGtpbmQp
CiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKICAgICAsIG1faWRlbnRpZmllcihpZGVudGlm
aWVyKQogICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29ubmVjdGlvbikpCiB7CisgICAgc3Vz
cGVuZElmTmVlZGVkKCk7CiB9CiAKIEZpbGVTeXN0ZW1IYW5kbGU6On5GaWxlU3lzdGVtSGFuZGxl
KCkgPSBkZWZhdWx0OwogCiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJv
bWlzZSkgY29uc3QKIHsKKyAgICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3Nl
ZCIgfSk7CisKICAgICBpZiAobV9raW5kICE9IGhhbmRsZS5raW5kKCkgfHwgbV9uYW1lICE9IGhh
bmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlc29sdmUoZmFsc2UpOwogCkBA
IC01Niw2ICs2MSw5IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkoRmlsZVN5
c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8CiAKIHZvaWQgRmlsZVN5c3Rl
bUhhbmRsZTo6bW92ZShGaWxlU3lzdGVtSGFuZGxlJiBkZXN0aW5hdGlvbkhhbmRsZSwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogewor
ICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0
aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKwogICAgIGlm
IChkZXN0aW5hdGlvbkhhbmRsZS5raW5kKCkgIT0gS2luZDo6RGlyZWN0b3J5KQogICAgICAgICBy
ZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlwZU1pc21hdGNoRXJyb3IgfSk7CiAK
QEAgLTY3LDQgKzc1LDE0IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6bW92ZShGaWxlU3lzdGVt
SGFuZGxlJiBkZXN0aW5hdGlvbkhhbmRsZSwgY29uc3QgU3RyaW5nJiBuCiAgICAgfSk7CiB9CiAK
K2NvbnN0IGNoYXIqIEZpbGVTeXN0ZW1IYW5kbGU6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25z
dAoreworICAgIHJldHVybiAiRmlsZVN5c3RlbUhhbmRsZSI7Cit9CisKK3ZvaWQgRmlsZVN5c3Rl
bUhhbmRsZTo6c3RvcCgpCit7CisgICAgbV9pc0Nsb3NlZCA9IHRydWU7Cit9CisKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmluZGV4IDU2NGQyYzE5NTc2NjlmYjBl
YzhiZGY5MDFmZGE3Mjg5YmM1YmRlMzEuLjBhODVlMDI4ZGIzNWZmNWRmZjYzMDFlNmQxOTNiMDYz
MTEzYjNhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJh
Z21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRl
IDx3dGYvSXNvTWFsbG9jLmg+CkBAIC0zNSw3ICszNiw3IEBAIHRlbXBsYXRlPHR5cGVuYW1lPiBj
bGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVT
eXN0ZW1IYW5kbGU+IHsKK2NsYXNzIEZpbGVTeXN0ZW1IYW5kbGUgOiBwdWJsaWMgQWN0aXZlRE9N
T2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RmlsZVN5c3RlbUhhbmRsZT4sIHB1YmxpYyBS
ZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVE
KEZpbGVTeXN0ZW1IYW5kbGUpOwogcHVibGljOgogICAgIHZpcnR1YWwgfkZpbGVTeXN0ZW1IYW5k
bGUoKTsKQEAgLTQ3LDE5ICs0OCwyNSBAQCBwdWJsaWM6CiAgICAgS2luZCBraW5kKCkgY29uc3Qg
eyByZXR1cm4gbV9raW5kOyB9CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1
cm4gbV9uYW1lOyB9CiAgICAgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigp
IGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAgIGJvb2wgaXNDbG9zZWQoKSBjb25z
dCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CiAKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0
ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CiAgICAg
dm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5k
bGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1IYW5kbGUoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCosIEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24oKSB7IHJldHVybiBtX2Nvbm5l
Y3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKKyAgICAvLyBBY3RpdmVET01PYmplY3QKKyAgICBj
b25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QgZmluYWw7CisgICAgdm9pZCBz
dG9wKCkgZmluYWw7CisKICAgICBLaW5kIG1fa2luZCB7IEtpbmQ6OkZpbGUgfTsKICAgICBTdHJp
bmcgbV9uYW1lOwogICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsK
ICAgICBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiBtX2Nvbm5lY3Rpb247CisgICAg
Ym9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmlkbAppbmRleCAyNmFiODQxOTcxMzI0MWE4OTA3YThlZDc4Njhi
MjY2MTI5ZDIxOTc5Li5iYmE2ZWE0ZDkwNWEwZGNkMWI3MDRlYmI4ZmU1MmI5ODdkZDJhY2U0IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCkBAIC0yOSw2ICsyOSw3IEBAIGVudW0gRmlsZVN5c3Rl
bUhhbmRsZUtpbmQgewogfTsKIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBDdXN0b21U
b0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3JrZXIpLAogICAgIEVuYWJsZWRCeVNl
dHRpbmc9RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmNwcAppbmRleCBjY2RiYzQwNDlhY2YzNDk4YTAzOWVjOGU4Y2EwYmUxMzc3
YmQ2Yjc2Li4yNGZjMmE3YTQyMzgzODc5ZjhlZGY5NWE2Y2FlZDgyZjM4YjFjMjY4IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTMzLDM3ICszMywyOSBA
QAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0ZShGaWxlU3lzdGVtRmlsZUhhbmRs
ZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZpbGUpCitSZWY8RmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwor
ICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKGNvbnRl
eHQsIHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQogCi1GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUm
IHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQotICAgIDogbV9zb3VyY2Uoc291
cmNlKQorRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
JiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmlsZSkKKyAgICA6IEFjdGl2ZURPTU9i
amVjdChjb250ZXh0KQorICAgICwgbV9zb3VyY2Uoc291cmNlKQogICAgICwgbV9pZGVudGlmaWVy
KGlkZW50aWZpZXIpCiAgICAgLCBtX2ZpbGUoZmlsZSkKIHsKICAgICBBU1NFUlQobV9maWxlICE9
IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIHN1c3BlbmRJZk5l
ZWRlZCgpOwogfQogCiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKCkKIHsKLSAgICBpZiAobV9jbG9zZVJlc3VsdCkKLSAgICAgICAgcmV0dXJu
OwotCi0gICAgQVNTRVJUKG1fY2xvc2VQcm9taXNlcy5pc0VtcHR5KCkpOwotICAgIGNsb3NlSW50
ZXJuYWwoW10oYXV0bykgeyB9KTsKKyAgICBBU1NFUlQobV9jbG9zZVJlc3VsdCk7CiB9CiAKIGJv
b2wgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3QK
IHsKLSAgICByZXR1cm4gbV9jbG9zZVJlc3VsdCB8fCAhbV9jbG9zZVByb21pc2VzLmlzRW1wdHko
KTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VJbnRlcm5hbChD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShtX2ZpbGUpOwotICAgIG1fc291
cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICByZXR1cm4gbV9jbG9zZVJlc3VsdCB8fCAhbV9jbG9zZUNhbGxiYWNrcy5pc0VtcHR5KCk7CiB9
CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnRydW5jYXRlKHVuc2lnbmVkIGxv
bmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQpAQCAtMTA5
LDI5ICsxMDEsMzggQEAgdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Zmx1c2goRE9N
UHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIH0KIAogdm9pZCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkK
K3sKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOworICAgIGNsb3NlSW50ZXJuYWwoW3dl
YWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShh
dXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHdlYWtUaGlzLT5tX3BlbmRpbmdPcGVyYXRp
b25Db3VudC0tOworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAg
IH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUludGVybmFs
KENsb3NlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAobV9jbG9zZVJlc3VsdCkKLSAg
ICAgICAgcmV0dXJuIHByb21pc2Uuc2V0dGxlKEV4Y2VwdGlvbk9yPHZvaWQ+IHsgKm1fY2xvc2VS
ZXN1bHQgfSk7Ci0gICAgCi0gICAgYXV0byBpc0Nsb3NpbmcgPSAhbV9jbG9zZVByb21pc2VzLmlz
RW1wdHkoKTsKLSAgICBtX2Nsb3NlUHJvbWlzZXMuYXBwZW5kKFdURk1vdmUocHJvbWlzZSkpOwor
ICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uT3I8dm9pZD4geyAqbV9jbG9zZVJlc3Vs
dCB9KTsKKworICAgIGF1dG8gaXNDbG9zaW5nID0gIW1fY2xvc2VDYWxsYmFja3MuaXNFbXB0eSgp
OworICAgIG1fY2xvc2VDYWxsYmFja3MuYXBwZW5kKFdURk1vdmUoY2FsbGJhY2spKTsKICAgICBp
ZiAoaXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CiAKLSAgICBtX3BlbmRpbmdPcGVyYXRpb25D
b3VudCsrOwotICAgIGNsb3NlSW50ZXJuYWwoW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAq
dGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgIG1fcGVuZGluZ09wZXJhdGlv
bkNvdW50LS07CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKG1fZmlsZSk7CisgICAgbV9zb3Vy
Y2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhp
cyB9XShhdXRvIHJlc3VsdCkgewogICAgICAgICBkaWRDbG9zZShXVEZNb3ZlKHJlc3VsdCkpOwog
ICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpkaWRDbG9zZShF
eGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKIHsKLSAgICBtX2Nsb3NlUmVzdWx0ID0gV1RGTW92
ZShyZXN1bHQpOworICAgIEFTU0VSVCghbV9jbG9zZVJlc3VsdCk7CiAKLSAgICBhdXRvIHByb21p
c2VzID0gc3RkOjpleGNoYW5nZShtX2Nsb3NlUHJvbWlzZXMsIHsgfSk7Ci0gICAgZm9yIChhdXRv
IHByb21pc2UgOiBwcm9taXNlcykKLSAgICAgICAgcHJvbWlzZS5zZXR0bGUoRXhjZXB0aW9uT3I8
dm9pZD4geyAqbV9jbG9zZVJlc3VsdCB9KTsKKyAgICBtX2Nsb3NlUmVzdWx0ID0gV1RGTW92ZShy
ZXN1bHQpOworICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpleGNoYW5nZShtX2Nsb3NlQ2FsbGJh
Y2tzLCB7IH0pOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sgOiBjYWxsYmFja3MpCisgICAgICAg
IGNhbGxiYWNrKEV4Y2VwdGlvbk9yPHZvaWQ+IHsgKm1fY2xvc2VSZXN1bHQgfSk7CiB9CiAKIEV4
Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OnJlYWQoQnVmZmVyU291cmNlJiYgYnVmZmVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6
RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykKQEAgLTE3Niw0ICsxNzcsMTQgQEAg
RXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZTo6d3JpdGUoQnVmZmVyU291cmNlJiYKICAgICByZXR1cm4gcmVzdWx0OwogfQogCitjb25zdCBj
aGFyKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6YWN0aXZlRE9NT2JqZWN0TmFtZSgpIGNv
bnN0Cit7CisgICAgcmV0dXJuICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSI7Cit9CisKK3Zv
aWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnN0b3AoKQoreworICAgIGNsb3NlSW50ZXJu
YWwoW10oYXV0bykgeyB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCAxMjE4OTFhOTZkOThjZjA5ZmJiNGFk
MDkxOGYyZTM1MjdmN2I0NGNhLi5lZDI5YmU1OTE2ZjE5OTI5YTkxMzIyNTY2NTFlZWRkNGZmYjdh
ZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApAQCAtMjUsNiAr
MjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVjdC5oIgog
I2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbk9yLmgiCiAjaW5j
bHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLmgiCkBAIC0zNywxMyAr
MzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7
CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCi1jbGFzcyBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlPiB7CitjbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSA6IHB1YmxpYyBB
Y3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiB7
CiBwdWJsaWM6CiAgICAgc3RydWN0IEZpbGVzeXN0ZW1SZWFkV3JpdGVPcHRpb25zIHsKICAgICAg
ICAgdW5zaWduZWQgbG9uZyBsb25nIGF0OwogICAgIH07CiAKLSAgICBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5c3RlbUZpbGVIYW5kbGUmLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmls
ZUhhbmRsZSk7CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gY3Jl
YXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlKTsKICAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUoKTsKIAogICAgIHZvaWQg
dHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lk
PiYmKTsKQEAgLTU1LDE2ICs1NiwyMSBAQCBwdWJsaWM6CiAgICAgRXhjZXB0aW9uT3I8dW5zaWdu
ZWQgbG9uZyBsb25nPiB3cml0ZShCdWZmZXJTb3VyY2UmJiwgRmlsZXN5c3RlbVJlYWRXcml0ZU9w
dGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKEZpbGVT
eXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAgIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3lzdGVtRmlsZUhhbmRsZSYsIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1G
aWxlSGFuZGxlKTsKICAgICBib29sIGlzQ2xvc2luZ09yQ2xvc2VkKCkgY29uc3Q7Ci0gICAgdm9p
ZCBjbG9zZUludGVybmFsKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYpOworICAgIHVzaW5nIENsb3NlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKKyAgICB2b2lkIGNsb3NlSW50ZXJuYWwoQ2xvc2VDYWxs
YmFjayYmKTsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdAorICAgIGNvbnN0IGNoYXIqIGFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKKyAgICB2b2lkIHN0b3AoKSBmaW5hbDsKIAog
ICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9zb3VyY2U7CiAgICAgRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllcjsKICAgICB1aW50NjRfdCBtX3Bl
bmRpbmdPcGVyYXRpb25Db3VudCB7IDAgfTsKICAgICBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVI
YW5kbGUgbV9maWxlOwogICAgIHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uT3I8dm9pZD4+IG1fY2xv
c2VSZXN1bHQ7Ci0gICAgVmVjdG9yPERPTVByb21pc2VEZWZlcnJlZDx2b2lkPj4gbV9jbG9zZVBy
b21pc2VzOworICAgIFZlY3RvcjxDbG9zZUNhbGxiYWNrPiBtX2Nsb3NlQ2FsbGJhY2tzOwogfTsK
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5pZGwKaW5kZXggNmVhNTQzOTdlZWFmMzkwZDZjMTc4NTE4ZjcyMTY1YWJhYWRhMzQw
ZC4uMTc0ZjNjOTU1YTRiZWIzMjk1Y2VmYzJkMDc3NWFmNjA5ODE4ODQ3NyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCkBAIC0yNCw4ICsyNCw4IEBACiAgKi8K
IAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBFbmFibGVkQnlTZXR0aW5nPUFjY2Vzc0hh
bmRsZUVuYWJsZWQsCi0gICAgSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSwKICAgICBFeHBvc2Vk
PURlZGljYXRlZFdvcmtlciwKICAgICBTZWN1cmVDb250ZXh0CiBdIGludGVyZmFjZSBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9y
YWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAxMDcyNTcyNGYxYWM3MTM4MTNiOTMyZTMzMjE5
OWMyZDU2ZDc3YWY0Li42MzVlNDc2ZDc3NWVhMzMxMTk1ZTJiYTUzMWU4YWE5ODQ1OTBjY2MwIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5j
cHAKQEAgLTExNSwxMiArMTE1LDEzIEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1B
Y2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAg
IHJldHVybiBwcm9taXNlLnJlamVjdChjb25uZWN0aW9uSW5mb09yRXhjZXB0aW9uLnJlbGVhc2VF
eGNlcHRpb24oKSk7CiAKICAgICBhdXRvIGNvbm5lY3Rpb25JbmZvID0gY29ubmVjdGlvbkluZm9P
ckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAgICBjb25uZWN0aW9uSW5mby5jb25u
ZWN0aW9uLmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29ubmVjdGlvbkluZm8ub3JpZ2luLCBbcHJv
bWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBjb25u
ZWN0aW9uSW5mby5jb25uZWN0aW9uLmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29ubmVjdGlvbklu
Zm8ub3JpZ2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSksIHdlYWtOYXZnaWF0b3IgPSBt
X25hdmlnYXRvcl0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCkpOwogCisgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrTmF2Z2lh
dG9yID8gd2Vha05hdmdpYXRvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsK
ICAgICAgICAgYXV0byBpZGVudGlmaWVyQ29ubmVjdGlvblBhaXIgPSByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCk7Ci0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpjcmVhdGUoeyB9LCBpZGVudGlmaWVyQ29ubmVjdGlvblBhaXIuZmlyc3QsIFJlZiB7
ICogaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyLnNlY29uZCB9KSk7CisgICAgICAgIHByb21pc2Uu
cmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgeyB9LCBp
ZGVudGlmaWVyQ29ubmVjdGlvblBhaXIuZmlyc3QsIFJlZiB7ICogaWRlbnRpZmllckNvbm5lY3Rp
b25QYWlyLnNlY29uZCB9KSk7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>442528</attachid>
            <date>2021-10-26 14:11:38 -0700</date>
            <delta_ts>2021-10-26 14:42:16 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231250-20211026141137.patch</filename>
            <type>text/plain</type>
            <size>31461</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0ODkyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWU1YWI4YzE5N2IwNWY4
ZDJmMjQzOTcwMDAyN2ZlMjlmNjE4NzUyZS4uOWUwYTZlNTkxYjZiODljZjEzNzNmZmVlNmUyN2Y3
Y2MwZTMxNWU4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU2IEBACisyMDIxLTEwLTI2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEZpbGVTeXN0ZW1IYW5kbGUg
c2hvdWxkIGJlIENvbnRleHREZXN0cnVjdGlvbk9ic2VydmVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzEyNTAKKyAgICAgICAgPHJkYXI6Ly9wcm9i
bGVtLzg0MTY0Nzk3PgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAg
ICAgICAgTWFrZSBGaWxlU3lzdGVtSGFuZGxlIGFuZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZSBBY3RpdmVET01PYmplY3QgdG8gY2xvc2UgdGhlbSB3aGVuIGNvbnRleHQgc3RvcHMuCisKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVh
dGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpG
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpyZW1vdmVFbnRyeSk6CisgICAgICAgIChXZWJDb3Jl
OjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpyZXNvbHZlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZU5hbWVzKToKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZSk6CisgICAgICAgICog
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaDoKKyAg
ICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmdldFNp
emUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OnRydW5jYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpmbHVzaCk6CisgICAgICAg
IChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVTeXN0ZW1IYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkgY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6bW92ZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGU6OnN0b3ApOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmg6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlOjppc0Nsb3NlZCBjb25zdCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6fkZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlOjppc0Nsb3NpbmdPckNsb3NlZCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlSW50ZXJuYWwpOgorICAgICAgICAoV2ViQ29yZTo6Rmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjphY3RpdmVET01PYmplY3ROYW1lIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpzdG9wKToKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
aDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaWRsOgorICAgICAgICAqIE1vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpTdG9yYWdlTWFuYWdlcjo6ZmlsZVN5c3RlbUFjY2Vzc0dl
dERpcmVjdG9yeSk6CisKIDIwMjEtMTAtMjYgIFRpbSBIb3J0b24gIDx0aW1vdGh5X2hvcnRvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgRGlzcGxheUxpc3Q6OlJlY29yZGVyJ3MgY2xpcEJvdW5kcygp
IGJlY29tZXMgZW1wdHkgaWYgYSBmbGlwIGlzIGFwcGxpZWQgdG8gdGhlIENUTQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCmluZGV4IDVlNzJmNmM5YmJlZmZhZWU3YTVm
NjliOTEzMzRhNGU0ZDQzN2FmYjMuLjY3ZmZjOGM0OTNkMTQyNDUxMDQ5MzAyMGNiY2Y3M2ZlZTI3
MTAxOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTM2
LDQwICszNiw1MSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtFX0lTT19BTExPQ0FU
RURfSU1QTChGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTdHJpbmcmJiBu
YW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCitSZWY8RmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQqIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVj
dGlvbikKIHsKLSAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlKFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAg
ICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKGNvbnRleHQs
IFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAot
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTdHJp
bmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCi0gICAgOiBGaWxlU3lzdGVt
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkRpcmVjdG9yeSwgV1RGTW92ZShuYW1lKSwg
aWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkKK0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5k
bGU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29u
dGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDog
RmlsZVN5c3RlbUhhbmRsZShjb250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpEaXJlY3Rv
cnksIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9
CiAKIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RmlsZUhhbmRsZShjb25zdCBT
dHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0
RmlsZU9wdGlvbnM+IG9wdGlvbnMsIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8Rmls
ZVN5c3RlbUZpbGVIYW5kbGU+PiYmIHByb21pc2UpCiB7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisg
ICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJv
ciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CisKICAgICBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
ID0gb3B0aW9ucyA/IG9wdGlvbnMtPmNyZWF0ZSA6IGZhbHNlOwotICAgIGNvbm5lY3Rpb24oKS5n
ZXRGaWxlSGFuZGxlKGlkZW50aWZpZXIoKSwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnksIFtjb25u
ZWN0aW9uID0gUmVmIHsgY29ubmVjdGlvbigpIH0sIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldEZpbGVI
YW5kbGUoaWRlbnRpZmllcigpLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSwgW3dlYWtUaGlzID0g
V2Vha1B0ciB7ICp0aGlzIH0sIGNvbm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9uKCkgfSwgbmFt
ZSwgcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAg
ICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9t
aXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBwcm9taXNl
LnNldHRsZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyB7IG5hbWUgfSwgcmVz
dWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKKyAgICAgICAgYXV0byog
Y29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6
IG51bGxwdHI7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpj
cmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RG
TW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6R2V0RGlyZWN0b3J5T3B0aW9ucz4gb3B0
aW9ucywgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlPj4mJiBwcm9taXNlKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1
cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUg
aXMgY2xvc2VkIl9zIH0pOworCiAgICAgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSA9IG9wdGlvbnMg
PyBvcHRpb25zLT5jcmVhdGUgOiBmYWxzZTsKLSAgICBjb25uZWN0aW9uKCkuZ2V0RGlyZWN0b3J5
SGFuZGxlKGlkZW50aWZpZXIoKSwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnksIFtjb25uZWN0aW9u
ID0gUmVmIHsgY29ubmVjdGlvbigpIH0sIG5hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgY29ubmVjdGlvbigpLmdldERpcmVjdG9yeUhh
bmRsZShpZGVudGlmaWVyKCksIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5LCBbd2Vha1RoaXMgPSBX
ZWFrUHRyIHsgKnRoaXMgfSwgY29ubmVjdGlvbiA9IFJlZiB7IGNvbm5lY3Rpb24oKSB9LCBuYW1l
LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAg
ICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21p
c2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIHByb21pc2Uu
c2V0dGxlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTdHJpbmcgeyBuYW1lIH0s
IHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgICAgIGF1
dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCkgOiBudWxscHRyOworICAgICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFs
dWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGU6OnJlbW92ZUVudHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpSZW1vdmVPcHRpb25zPiBvcHRpb25z
LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9taXNlKQogeworICAgIGlmIChpc0Nsb3Nl
ZCgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOworCiAgICAgYm9vbCBkZWxldGVSZWN1
cnNpdmVseSA9IG9wdGlvbnMgPyBvcHRpb25zLT5yZWN1cnNpdmUgOiBmYWxzZTsKICAgICBjb25u
ZWN0aW9uKCkucmVtb3ZlRW50cnkoaWRlbnRpZmllcigpLCBuYW1lLCBkZWxldGVSZWN1cnNpdmVs
eSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CkBAIC03OCw2ICs4OSw5IEBA
IHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6cmVtb3ZlRW50cnkoY29uc3QgU3RyaW5n
JiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEZpCiAKIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6cmVzb2x2ZShjb25zdCBGaWxlU3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZl
cnJlZDxJRExTZXF1ZW5jZTxJRExVU1ZTdHJpbmc+PiYmIHByb21pc2UpCiB7CisgICAgaWYgKGlz
Q2xvc2VkKCkpCisgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZh
bGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CisKICAgICBjb25uZWN0aW9u
KCkucmVzb2x2ZShpZGVudGlmaWVyKCksIGhhbmRsZS5pZGVudGlmaWVyKCksIFtwcm9taXNlID0g
V1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJl
c3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwpAQCAtODgsMjIgKzEwMiwyOSBAQCB2b2lkIEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU6OnJlc29sdmUoY29uc3QgRmlsZVN5c3RlbUhhbmRsZSYgaGFu
ZGxlLCBET01Qcm9taQogCiB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRs
ZU5hbWVzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8VmVjdG9yPFN0cmluZz4+
JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOworCiAgICAgY29ubmVjdGlvbigpLmdldEhhbmRsZU5h
bWVzKGlkZW50aWZpZXIoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lk
IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGU+
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBjb25uZWN0aW9uKCkuZ2V0SGFuZGxl
KGlkZW50aWZpZXIoKSwgbmFtZSwgW25hbWUsIGNvbm5lY3Rpb24gPSBSZWYgeyBjb25uZWN0aW9u
KCkgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0
byByZXN1bHQpIG11dGFibGUgeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUg
aXMgY2xvc2VkIl9zIH0pOworCisgICAgY29ubmVjdGlvbigpLmdldEhhbmRsZShpZGVudGlmaWVy
KCksIG5hbWUsIFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBuYW1lLCBjb25uZWN0aW9u
ID0gUmVmIHsgY29ubmVjdGlvbigpIH0sIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihy
ZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAogICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBp
c0RpcmVjdG9yeV0gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgIGF1dG8q
IGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkg
OiBudWxscHRyOwogICAgICAgICBpZiAoaXNEaXJlY3RvcnkpIHsKLSAgICAgICAgICAgIFJlZjxG
aWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVh
dGUoU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAg
ICAgICAgICAgIFJlZjxGaWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKGhhbmRsZSkpOwogICAgICAgICB9CiAKLSAgICAgICAgUmVmPEZpbGVTeXN0ZW1I
YW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU3RyaW5nIHsgbmFt
ZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAgUmVmPEZpbGVT
eXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoY29udGV4
dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGUpKTsKICAgICB9KTsKIH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCmluZGV4IDg4NjllYTQ2NzIzMjMzZGMw
OWU0NGRkYTJlMThjMTkzMDUxZTRmNTAuLjFlODQzMjhiN2IyODQyOGNhZjc4MjUzZmI5ZWVkZWYw
ZmMwZGZkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaApAQCAtNDcs
NyArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgcmVjdXJzaXZlIHsgZmFsc2UgfTsKICAg
ICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0
aWMgUmVmPEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPEdldEZpbGVPcHRpb25zPiwgRE9NUHJvbWlzZURl
ZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQg
Z2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxHZXRE
aXJlY3RvcnlPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lz
dGVtRGlyZWN0b3J5SGFuZGxlPj4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJp
bmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8UmVtb3ZlT3B0aW9ucz4sIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKQEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFJlZjxJdGVyYXRvcj4g
Y3JlYXRlSXRlcmF0b3IoKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlKFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbj4mJik7CisgICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3Jp
cHRFeGVjdXRpb25Db250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmluZGV4IDc4NDQ4YWNi
YjhiMmE0YTllNDFlYzhlOTZjMjM0OTUyYWFiMTJhNzAuLjM2Njg3M2FhZmQ5ZDk4ZTU3NjRjOWIy
NTUxYjNjZTVlZjYyMGJmYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAt
MzYsMTMgKzM2LDEzIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9D
QVRFRF9JTVBMKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKTsKIAotUmVmPEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlPiBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+JiYgY29ubmVjdGlvbikKK1JlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gRmlsZVN5c3Rl
bUZpbGVIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJp
bmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiB7Ci0gICAgcmV0dXJuIGFk
b3B0UmVmKCpuZXcgRmlsZVN5c3RlbUZpbGVIYW5kbGUoV1RGTW92ZShuYW1lKSwgaWRlbnRpZmll
ciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVT
eXN0ZW1GaWxlSGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1v
dmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVTeXN0ZW1G
aWxlSGFuZGxlKFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAg
ICA6IEZpbGVTeXN0ZW1IYW5kbGUoRmlsZVN5c3RlbUhhbmRsZTo6S2luZDo6RmlsZSwgV1RGTW92
ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkKK0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250
ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCisgICAgOiBG
aWxlU3lzdGVtSGFuZGxlKGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdU
Rk1vdmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CiAKQEAg
LTUzLDYgKzUzLDkgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Z2V0RmlsZShET01Qcm9t
aXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYmIHByb20KIAogdm9pZCBGaWxlU3lzdGVt
RmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURM
SW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJiBwcm9taXNlKQogeworICAg
IGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIiB9KTsKKwogICAgIGNvbm5l
Y3Rpb24oKS5jcmVhdGVTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgW3Byb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1
bHQpIG11dGFibGUgewogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAg
ICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwpA
QCAtNjEsMjcgKzY0LDM5IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGlmIChy
ZXN1bHRWYWx1ZS5zZWNvbmQgPT0gRmlsZVN5c3RlbTo6aW52YWxpZFBsYXRmb3JtRmlsZUhhbmRs
ZSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBVbmtub3du
RXJyb3IsICJJbnZhbGlkIHBsYXRmb3JtIGZpbGUgaGFuZGxlIl9zIH0pOwogCi0gICAgICAgIHBy
b21pc2Uuc2V0dGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjcmVhdGUocHJvdGVjdGVk
VGhpcy5nZXQoKSwgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOworICAg
ICAgICBwcm9taXNlLnNldHRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y3JlYXRlKHBy
b3RlY3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSwgcHJvdGVjdGVkVGhpcy5nZXQo
KSwgcmVzdWx0VmFsdWUuZmlyc3QsIHJlc3VsdFZhbHVlLnNlY29uZCkpOwogICAgIH0pOwogfQog
CiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpnZXRTaXplKEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKEV4Y2VwdGlvbk9yPHVpbnQ2NF90PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
KyAgICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4
Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3NlZCJfcyB9KTsKKwog
ICAgIGNvbm5lY3Rpb24oKS5nZXRTaXplKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjp0cnVuY2F0ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIg
YWNjZXNzSGFuZGxlSWRlbnRpZmllciwgdW5zaWduZWQgbG9uZyBsb25nIHNpemUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CisgICAgaWYgKGlzQ2xvc2VkKCkpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxl
cihFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7
CisKICAgICBjb25uZWN0aW9uKCkudHJ1bmNhdGUoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBzaXplLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQg
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmZsdXNoKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogeworICAgIGlmIChpc0Ns
b3NlZCgpKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOworCiAgICAgY29ubmVjdGlv
bigpLmZsdXNoKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9z
ZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKKyAgICBpZiAoaXNDbG9zZWQoKSkKKyAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlz
IGNsb3NlZCJfcyB9KTsKKwogICAgIGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAppbmRleCA3NDIwNzY4Mzg4MjUxYWM2OGE1NWViYjM0
ZDBhOGMyZmM1OWQ1ZWNiLi45NGQ1ZTFlMTdmOWY2ZmExOTc3NDE0MDNmNzllNGM3ODBjNmVkZGJl
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUZpbGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtMzcsNyArMzcsNyBAQCB0ZW1wbGF0
ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRs
ZSBmaW5hbCA6IHB1YmxpYyBGaWxlU3lzdGVtSGFuZGxlIHsKICAgICBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEKEZpbGVTeXN0ZW1GaWxlSGFuZGxlKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9S
VCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU3RyaW5nJiYsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYm
KTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBj
cmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgdm9p
ZCBnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAg
ICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRl
cmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKQEAgLTQ3LDcgKzQ3LDcgQEAg
cHVibGljOgogICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKIAog
cHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTdHJpbmcmJiwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAg
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
Y3BwCmluZGV4IDg3MzBmMGVkYWU2YzZjMDMwMGE3Nzk4Y2RmNjFhODUwOGMxNDZhZmUuLmVmMDEw
ZjNhOTc2YWIxYmU4MzFkM2NkOTJiNmNhMzE2MDk0MTc2ZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRs
ZS5jcHAKQEAgLTM0LDE4ICszNCwyMyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9NQUtF
X0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtSGFuZGxlKTsKIAotRmlsZVN5c3RlbUhhbmRs
ZTo6RmlsZVN5c3RlbUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYm
IG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKLSAgICA6IG1fa2luZChraW5kKQor
RmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
KiBjb250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5hbWUsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0
KQorICAgICwgbV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkKICAgICAs
IG1faWRlbnRpZmllcihpZGVudGlmaWVyKQogICAgICwgbV9jb25uZWN0aW9uKFdURk1vdmUoY29u
bmVjdGlvbikpCiB7CisgICAgc3VzcGVuZElmTmVlZGVkKCk7CiB9CiAKIEZpbGVTeXN0ZW1IYW5k
bGU6On5GaWxlU3lzdGVtSGFuZGxlKCkgPSBkZWZhdWx0OwogCiB2b2lkIEZpbGVTeXN0ZW1IYW5k
bGU6OmlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVy
cmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkgY29uc3QKIHsKKyAgICBpZiAoaXNDbG9zZWQoKSkK
KyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiSGFuZGxlIGlzIGNsb3NlZCIgfSk7CisKICAgICBpZiAobV9raW5kICE9IGhhbmRsZS5r
aW5kKCkgfHwgbV9uYW1lICE9IGhhbmRsZS5uYW1lKCkpCiAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlc29sdmUoZmFsc2UpOwogCkBAIC01Niw2ICs2MSw5IEBAIHZvaWQgRmlsZVN5c3RlbUhhbmRs
ZTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJy
ZWQ8CiAKIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6bW92ZShGaWxlU3lzdGVtSGFuZGxlJiBkZXN0
aW5hdGlvbkhhbmRsZSwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8
dm9pZD4mJiBwcm9taXNlKQogeworICAgIGlmIChpc0Nsb3NlZCgpKQorICAgICAgICByZXR1cm4g
cHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJIYW5kbGUgaXMg
Y2xvc2VkIiB9KTsKKwogICAgIGlmIChkZXN0aW5hdGlvbkhhbmRsZS5raW5kKCkgIT0gS2luZDo6
RGlyZWN0b3J5KQogICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgVHlw
ZU1pc21hdGNoRXJyb3IgfSk7CiAKQEAgLTY3LDQgKzc1LDE0IEBAIHZvaWQgRmlsZVN5c3RlbUhh
bmRsZTo6bW92ZShGaWxlU3lzdGVtSGFuZGxlJiBkZXN0aW5hdGlvbkhhbmRsZSwgY29uc3QgU3Ry
aW5nJiBuCiAgICAgfSk7CiB9CiAKK2NvbnN0IGNoYXIqIEZpbGVTeXN0ZW1IYW5kbGU6OmFjdGl2
ZURPTU9iamVjdE5hbWUoKSBjb25zdAoreworICAgIHJldHVybiAiRmlsZVN5c3RlbUhhbmRsZSI7
Cit9CisKK3ZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6c3RvcCgpCit7CisgICAgbV9pc0Nsb3NlZCA9
IHRydWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmlu
ZGV4IDU2NGQyYzE5NTc2NjlmYjBlYzhiZGY5MDFmZGE3Mjg5YmM1YmRlMzEuLjBhODVlMDI4ZGIz
NWZmNWRmZjYzMDFlNmQxOTNiMDYzMTEzYjNhMjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAt
MjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUgIkFjdGl2ZURPTU9iamVj
dC5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAi
SURMVHlwZXMuaCIKICNpbmNsdWRlIDx3dGYvSXNvTWFsbG9jLmg+CkBAIC0zNSw3ICszNiw3IEBA
IHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKIGNsYXNzIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjsKIAotY2xhc3MgRmlsZVN5c3RlbUhhbmRsZSA6IHB1
YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKK2NsYXNzIEZpbGVTeXN0ZW1IYW5k
bGUgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8RmlsZVN5
c3RlbUhhbmRsZT4sIHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKICAgICBX
VEZfTUFLRV9JU09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1IYW5kbGUpOwogcHVibGljOgogICAgIHZp
cnR1YWwgfkZpbGVTeXN0ZW1IYW5kbGUoKTsKQEAgLTQ3LDE5ICs0OCwyNSBAQCBwdWJsaWM6CiAg
ICAgS2luZCBraW5kKCkgY29uc3QgeyByZXR1cm4gbV9raW5kOyB9CiAgICAgY29uc3QgU3RyaW5n
JiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQorICAg
IGJvb2wgaXNDbG9zZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CiAKICAgICB2b2lk
IGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9v
bGVhbj4mJikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmLCBjb25zdCBT
dHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAogcHJvdGVjdGVk
OgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAg
IEZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIEtpbmQsIFN0cmluZyYm
IG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKICAgICBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rp
b24oKSB7IHJldHVybiBtX2Nvbm5lY3Rpb24uZ2V0KCk7IH0KIAogcHJpdmF0ZToKKyAgICAvLyBB
Y3RpdmVET01PYmplY3QKKyAgICBjb25zdCBjaGFyKiBhY3RpdmVET01PYmplY3ROYW1lKCkgY29u
c3QgZmluYWw7CisgICAgdm9pZCBzdG9wKCkgZmluYWw7CisKICAgICBLaW5kIG1fa2luZCB7IEtp
bmQ6OkZpbGUgfTsKICAgICBTdHJpbmcgbV9uYW1lOwogICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIG1faWRlbnRpZmllcjsKICAgICBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
PiBtX2Nvbm5lY3Rpb247CisgICAgYm9vbCBtX2lzQ2xvc2VkIHsgZmFsc2UgfTsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbAppbmRleCAyNmFiODQx
OTcxMzI0MWE4OTA3YThlZDc4NjhiMjY2MTI5ZDIxOTc5Li5iYmE2ZWE0ZDkwNWEwZGNkMWI3MDRl
YmI4ZmU1MmI5ODdkZDJhY2U0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCkBAIC0yOSw2ICsy
OSw3IEBAIGVudW0gRmlsZVN5c3RlbUhhbmRsZUtpbmQgewogfTsKIAogWworICAgIEFjdGl2ZURP
TU9iamVjdCwKICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgIEV4cG9zZWQ9KFdpbmRvdyxXb3Jr
ZXIpLAogICAgIEVuYWJsZWRCeVNldHRpbmc9RmlsZVN5c3RlbUFjY2Vzc0VuYWJsZWQsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCBjY2RiYzQwNDlhY2Yz
NDk4YTAzOWVjOGU4Y2EwYmUxMzc3YmQ2Yjc2Li4yNGZjMmE3YTQyMzgzODc5ZjhlZGY5NWE2Y2Fl
ZDgyZjM4YjFjMjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHAKQEAgLTMzLDM3ICszMywyOSBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVJlZjxGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4gRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNyZWF0
ZShGaWxlU3lzdGVtRmlsZUhhbmRsZSYgc291cmNlLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlIGZp
bGUpCitSZWY8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+IEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgRmlsZVN5c3Rl
bUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxlKQogewotICAg
IHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKHNvdXJjZSwg
aWRlbnRpZmllciwgZmlsZSkpOworICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKGNvbnRleHQsIHNvdXJjZSwgaWRlbnRpZmllciwgZmlsZSkpOwogfQog
Ci1GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbUZpbGVIYW5kbGUmIHNvdXJjZSwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSBmaWxl
KQotICAgIDogbV9zb3VyY2Uoc291cmNlKQorRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQs
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiBzb3VyY2UsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgZmls
ZSkKKyAgICA6IEFjdGl2ZURPTU9iamVjdChjb250ZXh0KQorICAgICwgbV9zb3VyY2Uoc291cmNl
KQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCiAgICAgLCBtX2ZpbGUoZmlsZSkKIHsK
ICAgICBBU1NFUlQobV9maWxlICE9IEZpbGVTeXN0ZW06OmludmFsaWRQbGF0Zm9ybUZpbGVIYW5k
bGUpOworICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6fkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKCkKIHsKLSAgICBpZiAobV9jbG9zZVJl
c3VsdCkKLSAgICAgICAgcmV0dXJuOwotCi0gICAgQVNTRVJUKG1fY2xvc2VQcm9taXNlcy5pc0Vt
cHR5KCkpOwotICAgIGNsb3NlSW50ZXJuYWwoW10oYXV0bykgeyB9KTsKKyAgICBBU1NFUlQobV9j
bG9zZVJlc3VsdCk7CiB9CiAKIGJvb2wgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmlzQ2xv
c2luZ09yQ2xvc2VkKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV9jbG9zZVJlc3VsdCB8fCAhbV9j
bG9zZVByb21pc2VzLmlzRW1wdHkoKTsKLX0KLQotdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZTo6Y2xvc2VJbnRlcm5hbChDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIEZpbGVTeXN0ZW06OmNsb3NlRmls
ZShtX2ZpbGUpOwotICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICByZXR1cm4gbV9jbG9zZVJlc3VsdCB8fCAhbV9jbG9zZUNh
bGxiYWNrcy5pc0VtcHR5KCk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6
OnRydW5jYXRlKHVuc2lnbmVkIGxvbmcgbG9uZyBzaXplLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9p
ZD4mJiBwcm9taXNlKQpAQCAtMTA5LDI5ICsxMDEsMzggQEAgdm9pZCBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZTo6Zmx1c2goRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKIH0K
IAogdm9pZCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2UoRE9NUHJvbWlzZURlZmVy
cmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwor
ICAgIGNsb3NlSW50ZXJuYWwoW3dlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHByb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHdlYWtU
aGlzLT5tX3BlbmRpbmdPcGVyYXRpb25Db3VudC0tOworICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlOjpjbG9zZUludGVybmFsKENsb3NlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBp
ZiAobV9jbG9zZVJlc3VsdCkKLSAgICAgICAgcmV0dXJuIHByb21pc2Uuc2V0dGxlKEV4Y2VwdGlv
bk9yPHZvaWQ+IHsgKm1fY2xvc2VSZXN1bHQgfSk7Ci0gICAgCi0gICAgYXV0byBpc0Nsb3Npbmcg
PSAhbV9jbG9zZVByb21pc2VzLmlzRW1wdHkoKTsKLSAgICBtX2Nsb3NlUHJvbWlzZXMuYXBwZW5k
KFdURk1vdmUocHJvbWlzZSkpOworICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uT3I8
dm9pZD4geyAqbV9jbG9zZVJlc3VsdCB9KTsKKworICAgIGF1dG8gaXNDbG9zaW5nID0gIW1fY2xv
c2VDYWxsYmFja3MuaXNFbXB0eSgpOworICAgIG1fY2xvc2VDYWxsYmFja3MuYXBwZW5kKFdURk1v
dmUoY2FsbGJhY2spKTsKICAgICBpZiAoaXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CiAKLSAg
ICBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCsrOwotICAgIGNsb3NlSW50ZXJuYWwoW3RoaXMsIHBy
b3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAg
ICAgIG1fcGVuZGluZ09wZXJhdGlvbkNvdW50LS07CisgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxl
KG1fZmlsZSk7CisgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3Rl
Y3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgewogICAgICAgICBkaWRDbG9z
ZShXVEZNb3ZlKHJlc3VsdCkpOwogICAgIH0pOwogfQogCiB2b2lkIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlOjpkaWRDbG9zZShFeGNlcHRpb25Pcjx2b2lkPiYmIHJlc3VsdCkKIHsKLSAgICBt
X2Nsb3NlUmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpOworICAgIEFTU0VSVCghbV9jbG9zZVJlc3Vs
dCk7CiAKLSAgICBhdXRvIHByb21pc2VzID0gc3RkOjpleGNoYW5nZShtX2Nsb3NlUHJvbWlzZXMs
IHsgfSk7Ci0gICAgZm9yIChhdXRvIHByb21pc2UgOiBwcm9taXNlcykKLSAgICAgICAgcHJvbWlz
ZS5zZXR0bGUoRXhjZXB0aW9uT3I8dm9pZD4geyAqbV9jbG9zZVJlc3VsdCB9KTsKKyAgICBtX2Ns
b3NlUmVzdWx0ID0gV1RGTW92ZShyZXN1bHQpOworICAgIGF1dG8gY2FsbGJhY2tzID0gc3RkOjpl
eGNoYW5nZShtX2Nsb3NlQ2FsbGJhY2tzLCB7IH0pOworICAgIGZvciAoYXV0byYgY2FsbGJhY2sg
OiBjYWxsYmFja3MpCisgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbk9yPHZvaWQ+IHsgKm1fY2xv
c2VSZXN1bHQgfSk7CiB9CiAKIEV4Y2VwdGlvbk9yPHVuc2lnbmVkIGxvbmcgbG9uZz4gRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnJlYWQoQnVmZmVyU291cmNlJiYgYnVmZmVyLCBGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZTo6RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMgb3B0aW9ucykK
QEAgLTE3Niw0ICsxNzcsMTQgQEAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6d3JpdGUoQnVmZmVyU291cmNlJiYKICAgICByZXR1cm4g
cmVzdWx0OwogfQogCitjb25zdCBjaGFyKiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZTo6YWN0
aXZlRE9NT2JqZWN0TmFtZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICJGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSI7Cit9CisKK3ZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OnN0b3Ao
KQoreworICAgIGNsb3NlSW50ZXJuYWwoW10oYXV0bykgeyB9KTsKK30KKwogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAppbmRleCAx
MjE4OTFhOTZkOThjZjA5ZmJiNGFkMDkxOGYyZTM1MjdmN2I0NGNhLi5lZDI5YmU1OTE2ZjE5OTI5
YTkxMzIyNTY2NTFlZWRkNGZmYjdhZDdiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGUuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IkFjdGl2ZURPTU9iamVjdC5oIgogI2luY2x1ZGUgIkJ1ZmZlclNvdXJjZS5oIgogI2luY2x1ZGUg
IkV4Y2VwdGlvbk9yLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLmgiCkBAIC0zNywxMyArMzgsMTMgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogY2xhc3Mg
RmlsZVN5c3RlbUZpbGVIYW5kbGU7CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlz
ZURlZmVycmVkOwogCi1jbGFzcyBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSA6IHB1YmxpYyBS
ZWZDb3VudGVkPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiwgcHVibGljIENhbk1ha2VXZWFr
UHRyPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiB7CitjbGFzcyBGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZSA6IHB1YmxpYyBBY3RpdmVET01PYmplY3QsIHB1YmxpYyBSZWZDb3VudGVkPEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlPiB7CiBwdWJsaWM6CiAgICAgc3RydWN0IEZpbGVzeXN0ZW1SZWFk
V3JpdGVPcHRpb25zIHsKICAgICAgICAgdW5zaWduZWQgbG9uZyBsb25nIGF0OwogICAgIH07CiAK
LSAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPiBjcmVhdGUoRmlsZVN5
c3RlbUZpbGVIYW5kbGUmLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZSk7CisgICAgc3RhdGljIFJlZjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxlU3lz
dGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICB+RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUoKTsKIAogICAgIHZvaWQgdHJ1bmNhdGUodW5zaWduZWQgbG9uZyBsb25nIHNpemUsIERP
TVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKQEAgLTU1LDE2ICs1NiwyMSBAQCBwdWJsaWM6CiAg
ICAgRXhjZXB0aW9uT3I8dW5zaWduZWQgbG9uZyBsb25nPiB3cml0ZShCdWZmZXJTb3VyY2UmJiwg
RmlsZXN5c3RlbVJlYWRXcml0ZU9wdGlvbnMpOwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlJiwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUpOworICAg
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBGaWxl
U3lzdGVtRmlsZUhhbmRsZSYsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
RmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxlSGFuZGxlKTsKICAgICBib29sIGlzQ2xvc2luZ09yQ2xv
c2VkKCkgY29uc3Q7Ci0gICAgdm9pZCBjbG9zZUludGVybmFsKENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHVzaW5nIENsb3NlQ2FsbGJhY2sgPSBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKKyAgICB2b2lkIGNs
b3NlSW50ZXJuYWwoQ2xvc2VDYWxsYmFjayYmKTsKKworICAgIC8vIEFjdGl2ZURPTU9iamVjdAor
ICAgIGNvbnN0IGNoYXIqIGFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdCBmaW5hbDsKKyAgICB2
b2lkIHN0b3AoKSBmaW5hbDsKIAogICAgIFJlZjxGaWxlU3lzdGVtRmlsZUhhbmRsZT4gbV9zb3Vy
Y2U7CiAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmll
cjsKICAgICB1aW50NjRfdCBtX3BlbmRpbmdPcGVyYXRpb25Db3VudCB7IDAgfTsKICAgICBGaWxl
U3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGUgbV9maWxlOwogICAgIHN0ZDo6b3B0aW9uYWw8RXhj
ZXB0aW9uT3I8dm9pZD4+IG1fY2xvc2VSZXN1bHQ7Ci0gICAgVmVjdG9yPERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPj4gbV9jbG9zZVByb21pc2VzOworICAgIFZlY3RvcjxDbG9zZUNhbGxiYWNrPiBt
X2Nsb3NlQ2FsbGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5pZGwKaW5kZXggNmVhNTQzOTdlZWFmMzkwZDZj
MTc4NTE4ZjcyMTY1YWJhYWRhMzQwZC4uMTc0ZjNjOTU1YTRiZWIzMjk1Y2VmYzJkMDc3NWFmNjA5
ODE4ODQ3NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaWRsCkBA
IC0yNCw4ICsyNCw4IEBACiAgKi8KIAogWworICAgIEFjdGl2ZURPTU9iamVjdCwKICAgICBFbmFi
bGVkQnlTZXR0aW5nPUFjY2Vzc0hhbmRsZUVuYWJsZWQsCi0gICAgSW1wbGVtZW50YXRpb25MYWNr
c1ZUYWJsZSwKICAgICBFeHBvc2VkPURlZGljYXRlZFdvcmtlciwKICAgICBTZWN1cmVDb250ZXh0
CiBdIGludGVyZmFjZSBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSB7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAxMDcyNTcy
NGYxYWM3MTM4MTNiOTMyZTMzMjE5OWMyZDU2ZDc3YWY0Li5jZjA3YTVhZjQ5YzVlYjRmNDMyOTU3
YjMxN2JiOTA0NWFjNjI4OTkwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0
b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTExNSwxMiArMTE1LDEzIEBAIHZvaWQgU3RvcmFn
ZU1hbmFnZXI6OmZpbGVTeXN0ZW1BY2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVk
PElETEludGVyZmFjCiAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChjb25uZWN0aW9uSW5m
b09yRXhjZXB0aW9uLnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKICAgICBhdXRvIGNvbm5lY3Rpb25J
bmZvID0gY29ubmVjdGlvbkluZm9PckV4Y2VwdGlvbi5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKLSAg
ICBjb25uZWN0aW9uSW5mby5jb25uZWN0aW9uLmZpbGVTeXN0ZW1HZXREaXJlY3RvcnkoY29ubmVj
dGlvbkluZm8ub3JpZ2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKKyAgICBjb25uZWN0aW9uSW5mby5jb25uZWN0aW9uLmZpbGVTeXN0ZW1HZXRE
aXJlY3RvcnkoY29ubmVjdGlvbkluZm8ub3JpZ2luLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlz
ZSksIHdlYWtOYXZpZ2F0b3IgPSBtX25hdmlnYXRvcl0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHBy
b21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwogCisgICAgICAgIGF1dG8q
IGNvbnRleHQgPSB3ZWFrTmF2aWdhdG9yID8gd2Vha05hdmlnYXRvci0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIDogbnVsbHB0cjsKICAgICAgICAgYXV0byBpZGVudGlmaWVyQ29ubmVjdGlvblBh
aXIgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7Ci0gICAgICAgIHByb21pc2UucmVzb2x2
ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoeyB9LCBpZGVudGlmaWVyQ29ubmVj
dGlvblBhaXIuZmlyc3QsIFJlZiB7ICogaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyLnNlY29uZCB9
KSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpj
cmVhdGUoY29udGV4dCwgeyB9LCBpZGVudGlmaWVyQ29ubmVjdGlvblBhaXIuZmlyc3QsIFJlZiB7
ICogaWRlbnRpZmllckNvbm5lY3Rpb25QYWlyLnNlY29uZCB9KSk7CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>