<?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>231676</bug_id>
          
          <creation_ts>2021-10-13 08:25:27 -0700</creation_ts>
          <short_desc>Implement FileSystemHandle move()</short_desc>
          <delta_ts>2021-10-13 18:39:40 -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>1803773</commentid>
    <comment_count>0</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-13 08:25:27 -0700</bug_when>
    <thetext>...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803778</commentid>
    <comment_count>1</comment_count>
      <attachid>441084</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-13 08:43:05 -0700</bug_when>
    <thetext>Created attachment 441084
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803780</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-10-13 08:43:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/84199823&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803790</commentid>
    <comment_count>3</comment_count>
      <attachid>441087</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-13 09:00:27 -0700</bug_when>
    <thetext>Created attachment 441087
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803809</commentid>
    <comment_count>4</comment_count>
      <attachid>441092</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-13 09:43:06 -0700</bug_when>
    <thetext>Created attachment 441092
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803823</commentid>
    <comment_count>5</comment_count>
      <attachid>441092</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-10-13 10:04:33 -0700</bug_when>
    <thetext>Comment on attachment 441092
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Provide a way to move an existing file to a new place in OPFS.

APFS?

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemHandle.cpp:66
&gt; +        promise.settle(WTFMove(result));

As a future refactoring, we should probably enqueue a task to resolve the promises. That will make sure we do this in the event loop.

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:77
&gt; +    return !(name == &quot;.&quot; || name == &quot;..&quot; || name.contains(pathSeparator));

Might be easier to read as: name != &quot;.&quot; &amp;&amp; name != &quot;..&quot; &amp;&amp; !name.containts(pathSeparator).

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:108
&gt; +    // Do not remove file if there is open access handle as web process may be performing oeprations.

s/oeprations/operations/

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:110
&gt; +        return FileSystemStorageError::InvalidState;

Do we have a test for it?

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:273
&gt; +        return FileSystemStorageError::InvalidState;

Do we have a test for it?

&gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:283
&gt; +        return FileSystemStorageError::InvalidName;

Do we have a test for it?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803830</commentid>
    <comment_count>6</comment_count>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-13 10:13:21 -0700</bug_when>
    <thetext>(In reply to youenn fablet from comment #5)
&gt; Comment on attachment 441092 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=441092&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:9
&gt; &gt; +        Provide a way to move an existing file to a new place in OPFS.
&gt; 
&gt; APFS?

Will use Origin Private File System.

&gt; 
&gt; &gt; Source/WebCore/Modules/filesystemaccess/FileSystemHandle.cpp:66
&gt; &gt; +        promise.settle(WTFMove(result));
&gt; 
&gt; As a future refactoring, we should probably enqueue a task to resolve the
&gt; promises. That will make sure we do this in the event loop.

Sure.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:77
&gt; &gt; +    return !(name == &quot;.&quot; || name == &quot;..&quot; || name.contains(pathSeparator));
&gt; 
&gt; Might be easier to read as: name != &quot;.&quot; &amp;&amp; name != &quot;..&quot; &amp;&amp;
&gt; !name.containts(pathSeparator).

Will change.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:108
&gt; &gt; +    // Do not remove file if there is open access handle as web process may be performing oeprations.
&gt; 
&gt; s/oeprations/operations/

Will change.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:110
&gt; &gt; +        return FileSystemStorageError::InvalidState;
&gt; 
&gt; Do we have a test for it?

No, I will update existing test.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:273
&gt; &gt; +        return FileSystemStorageError::InvalidState;
&gt; 
&gt; Do we have a test for it?

Yes, it&apos;s in the new test.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/storage/FileSystemStorageHandle.cpp:283
&gt; &gt; +        return FileSystemStorageError::InvalidName;
&gt; 
&gt; Do we have a test for it?

No, will add it in the new test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803842</commentid>
    <comment_count>7</comment_count>
      <attachid>441099</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-13 10:37:08 -0700</bug_when>
    <thetext>Created attachment 441099
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803843</commentid>
    <comment_count>8</comment_count>
      <attachid>441100</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-10-13 10:38:23 -0700</bug_when>
    <thetext>Created attachment 441100
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1803947</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-10-13 13:46:56 -0700</bug_when>
    <thetext>Committed r284124 (242944@main): &lt;https://commits.webkit.org/242944@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 441100.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441084</attachid>
            <date>2021-10-13 08:43:05 -0700</date>
            <delta_ts>2021-10-13 09:00:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231676-20211013084304.patch</filename>
            <type>text/plain</type>
            <size>30127</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjMzNzYzOGYyMDYxYTM0
MjgyZGZlMmYxYjcxNWM2YWUxYTIxYTg4ZS4uOTcwZGRkNDZmZDY3Yzk0MDI5YTZkZDU1YWY0NTFm
ODIyNTU4M2I2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTEzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtSGFuZGxlIG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBtb3ZlIGFuIGV4aXN0aW5nIGZpbGUgdG8gYSBuZXcg
cGxhY2UgaW4gT1BGUy4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
aGFuZGxlLW1vdmUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6
bW92ZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjptb3ZlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisK
IDIwMjEtMTAtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIG5lZWQgdG8gY29tbWl0IGxheWVycyBv
biB0aGUgc2Nyb2xsaW5nIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4OGFhN2NkNDBiZWNmYjI1ZmEzZGI5
ZjA2Y2VlYzJmMDY3Y2I3YjQ3Li43NDk1YTcxZTUzODdmOGFlZWNlZTY4YTJmOTQ5NjcwODRhNDdm
ZjBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDIxLTEwLTEzICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtSGFuZGxl
IG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6aXNWYWxpZEZpbGVOYW1lKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6bW92ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjptb3ZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpt
b3ZlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oOgorCisyMDIxLTEwLTEzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtSGFuZGxlIG1vdmUoKQor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjc2CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBOZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6aXNWYWxpZEZpbGVOYW1lKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6bW92ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjptb3ZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjptb3ZlKToKKyAg
ICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBw
bGUuY29tPgogCiAgICAgICAgIFNjcm9sbGluZyB0aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNv
bW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNw
cAppbmRleCA1ZGE3NjU1NzFlYzliZTZjYWFmNWFiNmUyZTczMzRjOWVjZjgyNjA1Li44NzMwZjBl
ZGFlNmM2YzAzMDBhNzc5OGNkZjYxYTg1MDhjMTQ2YWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUu
Y3BwCkBAIC01NCw0ICs1NCwxNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5
KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIH0pOwog
fQogCit2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUoRmlsZVN5c3RlbUhhbmRsZSYgZGVzdGlu
YXRpb25IYW5kbGUsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBpZiAoZGVzdGluYXRpb25IYW5kbGUua2luZCgpICE9IEtp
bmQ6OkRpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IFR5cGVNaXNtYXRjaEVycm9yIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5tb3ZlKG1faWRlbnRp
ZmllciwgZGVzdGluYXRpb25IYW5kbGUuaWRlbnRpZmllcigpLCBuZXdOYW1lLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5ld05hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHBy
b21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKQorICAgICAgICAgICAgbV9uYW1lID0gbmV3TmFtZTsKKworICAgICAgICBwcm9t
aXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAppbmRleCBlYzQ0Njg3YjA5MTRjNTgzZTNiODFj
NDYzNmZlZTU5ODQ3MzcxMGI3Li41NjRkMmMxOTU3NjY5ZmIwZWM4YmRmOTAxZmRhNzI4OWJjNWJk
ZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKQEAgLTM0LDcgKzM0LDYgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAog
Y2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwotZW51bSBjbGFzcyBQZXJtaXNzaW9u
U3RhdGUgOiB1aW50OF90OwogCiBjbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIFJlZkNv
dW50ZWQ8RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmls
ZVN5c3RlbUhhbmRsZSk7CkBAIC01MCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVy
OyB9CiAKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNl
RGVmZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CisgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1I
YW5kbGUmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYm
KTsKIAogcHJvdGVjdGVkOgogICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5nJiYgbmFt
ZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCmluZGV4IGM3YTc3OTMxMDFhOTI2MzI2
ZDZiMWMyNDM3YTM2YWRmMWY5MTFlZTguLjI2YWI4NDE5NzEzMjQxYTg5MDdhOGVkNzg2OGIyNjYx
MjlkMjE5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwKQEAgLTM4LDQgKzM4LDUgQEAgZW51
bSBGaWxlU3lzdGVtSGFuZGxlS2luZCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmlu
ZyBuYW1lOwogCiAgICAgUHJvbWlzZTxib29sZWFuPiBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFu
ZGxlIG90aGVyKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gbW92ZShGaWxlU3lzdGVtSGFuZGxl
IGRlc3RpbmF0aW9uLCBVU1ZTdHJpbmcgbmV3TmFtZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDRiYTljNTgwZGExNmRlZDFkZWVjZmFmOGI0NDJm
Njg4MTVmODRkNDUuLjI3ZmExZTJjOWNlZWUyNTY1Y2YzNzViYTY5NGM0YTVhYzE3ZTk3NzQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDYgKzUxLDcg
QEAgcHVibGljOgogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgYm9vbD4+JiYpPjsKIAogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVF
bnRyeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZUhh
bmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFj
ayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZv
aWRDYWxsYmFjayYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDE1MTBjZjRlNjg5ZjlmODU3NzZlYzVlOGFiMzhkYTEz
MmE2Mzg5ZDYuLjY3MWFjNGYxMThhOTNhNmQ2NjE4MjJmOGY1ZTdkMmFhMDMwYTFhMjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBA
IC0zNjYsNCArMzY2LDI0IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpkaWRHZXRIYW5kbGVXaXRoVHlwZShDYWxsYmFja0lkZW50aWZpZXIKICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246Om1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29w
ZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
IH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6
OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtj
YWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgp
IH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRp
ZmllciwgZGVzdGluYXRpb25JZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5ld05h
bWUpXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxs
YmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0
byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCku
cG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFk
Q29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlm
IChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0
aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVz
dWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAg
ICAgICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+bW92ZShpZGVudGlmaWVy
LCBkZXN0aW5hdGlvbklkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNr
KSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA0ZGU0Mzk5MmNkYjgz
Njg0MGRlOWExNjk1NjJiOWYzMDE2MWE4MDQ5Li5jYWM5YjQyZmU4ZDVkMGQ1ODYxYmVkYzk2OTUw
MjE1NmU3ZTAzNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24KICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIG1vdmUo
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdl
dEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCAwOGY2MGNjMTJkZTkxNDk0YzJjMDdjMDNmN2E3MDFm
NzIzNjE0MTJkLi5iZWVmNmE0NmQzNzhmM2FiODE1YWU4MTUxOTY3MDJiMjQ5ZGQ3NTI3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTcyLDYgKzcyLDExIEBAIGJvb2wgRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkCiAgICAgcmV0dXJuIG1fcGF0aCA9PSBwYXRoOwogfQogCitzdGF0aWMg
Ym9vbCBpc1ZhbGlkRmlsZU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiAh
KG5hbWUgPT0gIi4iIHx8IG5hbWUgPT0gIi4uIiB8fCBuYW1lLmNvbnRhaW5zKHBhdGhTZXBhcmF0
b3IpKTsKK30KKwogRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0
Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlvbiwgVHlwZSB0
eXBlLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQogewogICAgIGlmICht
X3R5cGUgIT0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGU6OkRpcmVjdG9yeSkKQEAgLTgx
LDcgKzg2LDcgQEAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW0KICAgICAgICAgcmV0dXJuIG1ha2VV
bmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwogCiAgICAgLy8gaHR0
cHM6Ly93aWNnLmdpdGh1Yi5pby9maWxlLXN5c3RlbS1hY2Nlc3MvI3ZhbGlkLWZpbGUtbmFtZQot
ICAgIGlmIChuYW1lID09ICIuIiB8fCBuYW1lID09ICIuLiIgfHwgbmFtZS5jb250YWlucyhwYXRo
U2VwYXJhdG9yKSkKKyAgICBpZiAoIWlzVmFsaWRGaWxlTmFtZShuYW1lKSkKICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lKTsK
IAogICAgIGF1dG8gcGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0NvbXBvbmVudCht
X3BhdGgsIG5hbWUpOwpAQCAtMTAwLDYgKzEwNSwxMCBAQCBFeHBlY3RlZDxXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3Rl
bQogCiBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHkpCiB7CisgICAgLy8gRG8gbm90IHJlbW92ZSBmaWxlIGlmIHRoZXJlIGlzIG9wZW4g
YWNjZXNzIGhhbmRsZSBhcyB3ZWIgcHJvY2VzcyBtYXkgYmUgcGVyZm9ybWluZyBvZXByYXRpb25z
LgorICAgIGlmIChtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGU7CisKICAgICBpZiAobV90eXBlICE9IFR5
cGU6OkRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5
cGVNaXNtYXRjaDsKIApAQCAtMjU0LDQgKzI2MywzNiBAQCBFeHBlY3RlZDxzdGQ6OnBhaXI8V2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+LCBGaWxlU3lzdGVtU3RvcmFn
ZQogICAgIHJldHVybiBzdGQ6OnBhaXIgeyByZXN1bHQudmFsdWUoKSwgcmVzdWx0VHlwZSA9PSBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZTo6RGlyZWN0b3J5IH07CiB9CiAKK3N0ZDo6b3B0
aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6Om1v
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgaWYgKCFtX21hbmFnZXIpCisgICAg
ICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgLy8gRG8g
bm90IG1vdmUgZmlsZSBpZiB0aGVyZSBpcyBvbmdvaW5nIG9wZXJhdGlvbi4KKyAgICBpZiAobV9h
Y3RpdmVTeW5jQWNjZXNzSGFuZGxlKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcjo6SW52YWxpZFN0YXRlOworCisgICAgaWYgKG1fbWFuYWdlci0+Z2V0VHlwZShkZXN0aW5h
dGlvbklkZW50aWZpZXIpICE9IFR5cGU6OkRpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaDsKKworICAgIGF1dG8gcGF0aCA9IG1fbWFu
YWdlci0+Z2V0UGF0aChkZXN0aW5hdGlvbklkZW50aWZpZXIpOworICAgIGlmIChwYXRoLmlzRW1w
dHkoKSkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisK
KyAgICBpZiAoIWlzVmFsaWRGaWxlTmFtZShuZXdOYW1lKSkKKyAgICAgICAgcmV0dXJuIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lOworCisgICAgYXV0byBkZXN0aW5hdGlvblBh
dGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwgbmV3TmFtZSk7
CisgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZGVzdGluYXRpb25QYXRoKSkKKyAgICAg
ICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBpZiAoIUZp
bGVTeXN0ZW06Om1vdmVGaWxlKG1fcGF0aCwgZGVzdGluYXRpb25QYXRoKSkKKyAgICAgICAgcmV0
dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBtX3BhdGggPSBkZXN0
aW5hdGlvblBhdGg7CisgICAgbV9uYW1lID0gbmV3TmFtZTsKKworICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUuaAppbmRleCBiYmRmZDRjZWUxYzcxMjY4MjdiNDBiMTE5NmM0Mzc3YmNmMTdjOTI1Li4yM2Zj
ODg0YjIwOGNlMTNhYTMxNTI4ZTM2ZTA3OTU3ZDQ0ZjE3NjkyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGUuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgVHlwZSB0eXBlKCkgY29u
c3QgeyByZXR1cm4gbV90eXBlOyB9CiAKICAgICBib29sIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmV3TmFtZSk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEZpbGVIYW5kbGUoSVBD
OjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vz
c2FyeSk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KTsKICAg
ICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlbW92ZUVudHJ5KGNvbnN0
IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIuY3BwCmluZGV4IDU1MTZmYmI2Mjk0N2Y5OGRkZGU1OTIxY2Q3M2ZlYTMwMDQ3YTFhODku
LjY5YmFjODI1YmVmZjI3OWU0ZTAwZDE3OTczYzFhNDViNjk1NmI5NjUgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIu
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuY3BwCkBAIC0xODIsNiArMTgyLDE3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVuCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5pc1NhbWVFbnRyeSh0YXJnZXRJZGVu
dGlmaWVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjptb3ZlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
ZXdOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VSVCghUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhhbmRsZSkKKyAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVu
a25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5tb3ZlKGRlc3RpbmF0aW9u
SWRlbnRpZmllciwgbmV3TmFtZSkpOworfQorCiB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3Jl
YXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCA4ODQ1NTlhZDk3NjgyOTQ3OTVlZGY1Njg2NzU2MmFi
YzZkOTExMjQ3Li4wNGNjM2FmMDliYWIzZDJmMGUwZjcwMWMxZmYyOTAwYTYxNDE2MzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05l
dHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC03MCwxMCArNzAsMTIgQEAgcHJpdmF0ZToKICAgICB2
b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0b3J5KElQQzo6
Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBpc1NhbWVFbnRyeShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAgIHZvaWQgbW92
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAg
dm9pZCBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0RGly
ZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVtb3ZlRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCByZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5n
PiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKwogICAgIHVzaW5nIEFjY2Vzc0hhbmRs
ZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OwogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwogICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVpbnQ2NF90LCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIubWVzc2FnZXMuaW4KaW5kZXggZWZlNTc0ODZjMWIyZDcxOGQxMzEyOGRmMDVlNDUyMmEwNjU5
OWU2ZS4uODJlYTMxMGY4MTUxZWRmMmM0M2FiYTQ1MTE0YTgwMWM0Yjc0NmY3MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMiw2ICszMiw3IEBACiAg
ICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KSAtPiAoRXhw
ZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24KICAgICBSZW1v
dmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBT
dHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgUmVzb2x2ZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBB
c3luYworICAgIE1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVu
dGlmaWVyLCBTdHJpbmcgbmV3TmFtZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAKICAgICBDcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBHZXRTaXplRm9yQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8dWludDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0
KSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAppbmRleCA5Njg1ZmNmYThlOWM1NmJhMjg2Njk5YmExMjFhMDcwYzQzMmIyM2E2Li4xZjA2YjU5
ZjhjYzY2MGNhMzM5MDYwNWVlZjE2MjE1Nzc3YWM1YTZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMTk1LDQgKzE5NSwxNCBAQCB2b2lk
IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaQogICAgIH0pOwogfQogCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6bW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBkZXN0aW5hdGlv
bklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNrJiYgY29tcGxl
dGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3duRXJy
b3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6TW92ZShpZGVudGlm
aWVyLCBkZXN0aW5hdGlvbklkZW50aWZpZXIsIG5ld05hbWUpLCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CisgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CisgICAg
fSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDFlNmMzZDdkMDE5ODc2YzAwZTU5ZmRlOTIwMmE5
ZDA0NzRhYzRmMTkuLjdiM2ExZDFlOWVkMjc1N2VkYTFkZWI1NDU1N2U4NDY5ZmRmZDkwYjkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTcyLDEz
ICs3MiwxNCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKIAogICAgIC8vIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbgotICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpOwotICAgIHZv
aWQgZ2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwotICAgIHZvaWQgZ2V0
RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7Ci0gICAgdm9pZCByZW1v
dmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxs
YmFjayYmKTsKLSAgICB2b2lkIGdldEhhbmRsZU5hbWVzKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZU5hbWVz
Q2FsbGJhY2smJik7Ci0gICAgdm9pZCBnZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpOworICAgIHZvaWQgaXNTYW1lRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNh
bWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgbW92ZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
Z2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
Z2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CisgICAg
dm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIHJl
c29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEhhbmRsZU5hbWVzKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OkdldEhhbmRsZU5hbWVzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNr
JiYpIGZpbmFsOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0U2l6
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ODcxMGJlMzdkYjU2
MjU2NmNjOTY1YjhmNGMzMGQwNDY3OTQ4YWIyLi45OGI3NWRiOWQwNTgyOGM2MDJjNGFmNDIwY2U4
ZTQ4MzlkYzJmMDQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMgIFNpaHVpIExp
dSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1I
YW5kbGUgbW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMzE2NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS5o
dG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2Vz
L2hhbmRsZS1tb3ZlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgorICAgICAgICAo
YXN5bmMgdGVzdCk6CisKIDIwMjEtMTAtMTIgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29t
PgogCiAgICAgICAgIFtMRkNdW0lGQ10gRG8gbm90IGNvbGxhcHNlIHdoaXRlc3BhY2Ugd2l0aCB6
ZXJvLXdpZHRoIHNwYWNlIHNlcGFyYXRvciBpbi1iZXR3ZWVuCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5hMzg2MmU5ZGVlMmRkZGRjMGRhNjljNTE0Y2VjZTg0MGY4NzBhNTQ5
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L2hhbmRsZS1tb3ZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUaGlzIHRlc3QgY2hl
Y2tzIG1vdmUoKSBvZiBGaWxlU3lzdGVtSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBz
ZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVU
RSIuCisKKworVGVzdCBiYXNpYyBtb3ZlOgorUEFTUyBmaWxlSGFuZGxlLm5hbWUgaXMgImZpbGUi
CitQQVNTIGZpbGVIYW5kbGUubmFtZSBpcyAibmV3RmlsZSIKK1BBU1MgZ2V0RmlsZUhhbmRsZUVy
cm9yLnRvU3RyaW5nKCkgaXMgIk5vdEZvdW5kRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBm
b3VuZCBoZXJlLiIKK1BBU1MgZmlsZUhhbmRsZTIubmFtZSBpcyAibmV3RmlsZSIKK1BBU1MgZmls
ZUhhbmRsZTIua2luZCBpcyAiZmlsZSIKK1Rlc3QgbW92ZSB0byBhIGZpbGUgaGFuZGxlOgorUEFT
UyBtb3ZlRmlsZUVycm9yLnRvU3RyaW5nKCkgaXMgIlR5cGVNaXNtYXRjaEVycm9yOiBUaGUgdHlw
ZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBleHBlY3RlZCB0eXBlIG9m
IHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIKK1Rlc3QgbW92ZSB0byBh
IGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmlsZToKK1BBU1MgbW92ZUZpbGVFcnJvci50b1N0
cmluZygpIGlzICJVbmtub3duRXJyb3I6IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiB1bmtu
b3duIHRyYW5zaWVudCByZWFzb24gKGUuZy4gb3V0IG9mIG1lbW9yeSkuIgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMDI0ZmJhMDY4NGUxNzEwZTRhZWNlYmFkOTViN2Q1MDA0MjJlMGJkYQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS5o
dG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxz
Y3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+
Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisKK2lmICghd2lu
ZG93LnRlc3RSdW5uZXIpIHsKKyAgICBmaW5pc2hUZXN0KCJ3aW5kb3cudGVzdFJ1bm5lciBpcyBu
b3QgYXZhaWxhYmxlIik7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvaGFu
ZGxlLW1vdmUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9oYW5kbGUtbW92ZS5q
cyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvaGFuZGxl
LW1vdmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVjYTBkZDgzNDg1NDUzNzc0NjdhOGEyMTcxMWMzNjBiZjE0
ODJkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFj
Y2Vzcy9yZXNvdXJjZXMvaGFuZGxlLW1vdmUuanMKQEAgLTAsMCArMSw3MyBAQAoraWYgKHRoaXMu
aW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tzIG1vdmUoKSBv
ZiBGaWxlU3lzdGVtSGFuZGxlLiIpOworCit2YXIgcm9vdEhhbmRsZSwgZGlySGFuZGxlMSwgZGly
SGFuZGxlMiwgZmlsZUhhbmRsZSwgZmlsZUhhbmRsZTIsIHRlc3RFcnJvciwgZ2V0RmlsZUhhbmRs
ZUVycm9yLCBtb3ZlRmlsZUVycm9yOworCitmdW5jdGlvbiBmaW5pc2hUZXN0KGVycm9yKQorewor
ICAgIGlmIChlcnJvcikgeworICAgICAgICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAgICB9CisgICAg
ZmluaXNoSlNUZXN0KCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7CisgICAgdHJ5IHsK
KyAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFnZS5nZXREaXJl
Y3RvcnkoKTsKKyAgICAgICAgLy8gQ3JlYXRlIHR3byBuZXcgZm9sZGVycyBmb3IgdGhpcyB0ZXN0
LgorICAgICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJkaXIxIiwgeyAicmVjdXJz
aXZlIiA6IHRydWUgfSkudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAgICAgIGF3YWl0
IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoImRpcjIiLCB7ICJyZWN1cnNpdmUiIDogdHJ1ZSB9KS50
aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgZGlySGFuZGxlMSA9IGF3YWl0IHJv
b3RIYW5kbGUuZ2V0RGlyZWN0b3J5SGFuZGxlKCJkaXIxIiwgeyAiY3JlYXRlIiA6IHRydWUgfSk7
CisgICAgICAgIGRpckhhbmRsZTIgPSBhd2FpdCByb290SGFuZGxlLmdldERpcmVjdG9yeUhhbmRs
ZSgiZGlyMiIsIHsgImNyZWF0ZSIgOiB0cnVlIH0pOworCisgICAgICAgIGRlYnVnKCJUZXN0IGJh
c2ljIG1vdmU6IikKKyAgICAgICAgZmlsZUhhbmRsZSA9IGF3YWl0IGRpckhhbmRsZTEuZ2V0Rmls
ZUhhbmRsZSgiZmlsZSIsIHsgImNyZWF0ZSIgOiB0cnVlIH0pOworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJmaWxlIik7CisgICAgICAgIGF3YWl0IGZp
bGVIYW5kbGUubW92ZShkaXJIYW5kbGUyLCAibmV3RmlsZSIpOworICAgICAgICBzaG91bGRCZUVx
dWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJuZXdGaWxlIik7CisKKyAgICAgICAgdGVz
dEVycm9yID0gbnVsbDsKKyAgICAgICAgYXdhaXQgZGlySGFuZGxlMS5nZXRGaWxlSGFuZGxlKCJm
aWxlIiwgeyAiY3JlYXRlIiA6IGZhbHNlIH0pLnRoZW4oKGhhbmRsZSkgPT4geworICAgICAgICAg
ICAgdGVzdEVycm9yID0gIkdvdCBmaWxlIGhhbmRsZSBmcm9tIGRpckhhbmRsZTEgdW5leHBlY3Rl
ZGx5IgorICAgICAgICB9LCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgIGdldEZpbGVIYW5kbGVF
cnJvciA9IGVycm9yOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJnZXRGaWxl
SGFuZGxlRXJyb3IudG9TdHJpbmcoKSIsICJOb3RGb3VuZEVycm9yOiBUaGUgb2JqZWN0IGNhbiBu
b3QgYmUgZm91bmQgaGVyZS4iKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKHRlc3RFcnJv
cikgeworICAgICAgICAgICAgcmV0dXJuIGZpbmlzaFRlc3QodGVzdEVycm9yKTsKKyAgICAgICAg
fQorCisgICAgICAgIGZpbGVIYW5kbGUyID0gYXdhaXQgZGlySGFuZGxlMi5nZXRGaWxlSGFuZGxl
KCJuZXdGaWxlIiwgeyAiY3JlYXRlIiA6IGZhbHNlIH0pOworICAgICAgICBzaG91bGRCZUVxdWFs
VG9TdHJpbmcoImZpbGVIYW5kbGUyLm5hbWUiLCAibmV3RmlsZSIpOworICAgICAgICBzaG91bGRC
ZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUyLmtpbmQiLCAiZmlsZSIpOworCisgICAgICAgIGRl
YnVnKCJUZXN0IG1vdmUgdG8gYSBmaWxlIGhhbmRsZToiKTsKKyAgICAgICAgdGVzdEVycm9yID0g
bnVsbDsKKyAgICAgICAgZmlsZUhhbmRsZTMgPSBhd2FpdCBkaXJIYW5kbGUxLmdldEZpbGVIYW5k
bGUoInNlY29uZEZpbGUiLCB7ICJjcmVhdGUiIDogdHJ1ZSB9KTsKKyAgICAgICAgYXdhaXQgZmls
ZUhhbmRsZS5tb3ZlKGZpbGVIYW5kbGUyLCAiZmlsZSIpLnRoZW4oKCkgPT4geworICAgICAgICAg
ICAgdGVzdEVycm9yID0gICJNb3ZlZCBmaWxlIHRvIGZpbGVIYW5kbGUyIHVuZXhwZWN0ZWRseSIK
KyAgICAgICAgfSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICBtb3ZlRmlsZUVycm9yID0gZXJy
b3I7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1vdmVGaWxlRXJyb3IudG9T
dHJpbmcoKSIsICJUeXBlTWlzbWF0Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4gb2JqZWN0IHdhcyBp
bmNvbXBhdGlibGUgd2l0aCB0aGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGFzc29j
aWF0ZWQgdG8gdGhlIG9iamVjdC4iKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgZGVidWcoIlRl
c3QgbW92ZSB0byBhIGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmlsZToiKTsKKyAgICAgICAg
dGVzdEVycm9yID0gbnVsbDsKKyAgICAgICAgYXdhaXQgZmlsZUhhbmRsZS5tb3ZlKGRpckhhbmRs
ZTEsICJzZWNvbmRGaWxlIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3IgPSAg
Ik1vdmVkIGZpbGUgYmFjayB0byBkaXJIYW5kbGUxIHVuZXhwZWN0ZWRseSI7CisgICAgICAgIH0s
IChlcnJvcikgPT4geworICAgICAgICAgICAgbW92ZUZpbGVFcnJvciA9IGVycm9yOworICAgICAg
ICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtb3ZlRmlsZUVycm9yLnRvU3RyaW5nKCkiLCAi
VW5rbm93bkVycm9yOiBUaGUgb3BlcmF0aW9uIGZhaWxlZCBmb3IgYW4gdW5rbm93biB0cmFuc2ll
bnQgcmVhc29uIChlLmcuIG91dCBvZiBtZW1vcnkpLiIpOworICAgICAgICB9KTsKKworICAgICAg
ICBmaW5pc2hUZXN0KCk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAgZmluaXNoVGVz
dChlcnJvcik7CisgICAgfQorfQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441087</attachid>
            <date>2021-10-13 09:00:27 -0700</date>
            <delta_ts>2021-10-13 09:43:03 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231676-20211013090026.patch</filename>
            <type>text/plain</type>
            <size>29167</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjMzNzYzOGYyMDYxYTM0
MjgyZGZlMmYxYjcxNWM2YWUxYTIxYTg4ZS4uOTcwZGRkNDZmZDY3Yzk0MDI5YTZkZDU1YWY0NTFm
ODIyNTU4M2I2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIxLTEwLTEzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtSGFuZGxlIG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgUHJvdmlkZSBhIHdheSB0byBtb3ZlIGFuIGV4aXN0aW5nIGZpbGUgdG8gYSBuZXcg
cGxhY2UgaW4gT1BGUy4KKworICAgICAgICBUZXN0OiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
aGFuZGxlLW1vdmUuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6
bW92ZSk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRs
ZS5pZGw6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjptb3ZlKToKKyAgICAgICAgKiBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisK
IDIwMjEtMTAtMTIgIFNpbW9uIEZyYXNlciAgPHNpbW9uLmZyYXNlckBhcHBsZS5jb20+CiAKICAg
ICAgICAgU2Nyb2xsaW5nIHRocmVhZCBhbmltYXRpb25zIG5lZWQgdG8gY29tbWl0IGxheWVycyBv
biB0aGUgc2Nyb2xsaW5nIHRocmVhZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA4OGFhN2NkNDBiZWNmYjI1ZmEzZGI5
ZjA2Y2VlYzJmMDY3Y2I3YjQ3Li41ZTFjODBlMzRiNDk1YWJlNTUxOGViNzhiMjFlNTg4YWE3YmI0
NWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIxLTEwLTEzICBTaWh1aSBMaXUgIDxz
aWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtSGFuZGxl
IG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MjMxNjc2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6aXNWYWxpZEZpbGVOYW1lKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6bW92ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjptb3ZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAq
IFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpt
b3ZlKToKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5m
cmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFNjcm9sbGluZyB0aHJlYWQgYW5pbWF0aW9ucyBu
ZWVkIHRvIGNvbW1pdCBsYXllcnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxl
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVt
SGFuZGxlLmNwcAppbmRleCA1ZGE3NjU1NzFlYzliZTZjYWFmNWFiNmUyZTczMzRjOWVjZjgyNjA1
Li44NzMwZjBlZGFlNmM2YzAzMDBhNzc5OGNkZjYxYTg1MDhjMTQ2YWZlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0
ZW1IYW5kbGUuY3BwCkBAIC01NCw0ICs1NCwxNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Omlz
U2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAog
ICAgIH0pOwogfQogCit2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUoRmlsZVN5c3RlbUhhbmRs
ZSYgZGVzdGluYXRpb25IYW5kbGUsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkKK3sKKyAgICBpZiAoZGVzdGluYXRpb25IYW5kbGUua2lu
ZCgpICE9IEtpbmQ6OkRpcmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4
Y2VwdGlvbiB7IFR5cGVNaXNtYXRjaEVycm9yIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5tb3Zl
KG1faWRlbnRpZmllciwgZGVzdGluYXRpb25IYW5kbGUuaWRlbnRpZmllcigpLCBuZXdOYW1lLCBb
dGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5ld05hbWUsIHByb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVz
dWx0Lmhhc0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgbV9uYW1lID0gbmV3TmFtZTsKKworICAg
ICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAppbmRleCBlYzQ0Njg3YjA5MTRj
NTgzZTNiODFjNDYzNmZlZTU5ODQ3MzcxMGI3Li41NjRkMmMxOTU3NjY5ZmIwZWM4YmRmOTAxZmRh
NzI4OWJjNWJkZTMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKQEAgLTM0LDcgKzM0LDYgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZl
cnJlZDsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwotZW51bSBjbGFzcyBQ
ZXJtaXNzaW9uU3RhdGUgOiB1aW50OF90OwogCiBjbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVi
bGljIFJlZkNvdW50ZWQ8RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtFX0lTT19BTExP
Q0FURUQoRmlsZVN5c3RlbUhhbmRsZSk7CkBAIC01MCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9p
ZGVudGlmaWVyOyB9CiAKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBE
T01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CisgICAgdm9pZCBtb3ZlKEZp
bGVTeXN0ZW1IYW5kbGUmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJl
ZDx2b2lkPiYmKTsKIAogcHJvdGVjdGVkOgogICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3Ry
aW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCmluZGV4IGM3YTc3OTMx
MDFhOTI2MzI2ZDZiMWMyNDM3YTM2YWRmMWY5MTFlZTguLjI2YWI4NDE5NzEzMjQxYTg5MDdhOGVk
Nzg2OGIyNjYxMjlkMjE5NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwKQEAgLTM4LDQgKzM4
LDUgQEAgZW51bSBGaWxlU3lzdGVtSGFuZGxlS2luZCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFVTVlN0cmluZyBuYW1lOwogCiAgICAgUHJvbWlzZTxib29sZWFuPiBpc1NhbWVFbnRyeShGaWxl
U3lzdGVtSGFuZGxlIG90aGVyKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gbW92ZShGaWxlU3lz
dGVtSGFuZGxlIGRlc3RpbmF0aW9uLCBVU1ZTdHJpbmcgbmV3TmFtZSk7CiB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDRiYTljNTgwZGExNmRlZDFkZWVj
ZmFmOGI0NDJmNjg4MTVmODRkNDUuLjI3ZmExZTJjOWNlZWUyNTY1Y2YzNzViYTY5NGM0YTVhYzE3
ZTk3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUx
LDYgKzUxLDcgQEAgcHVibGljOgogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgYm9vbD4+JiYpPjsKIAogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFNhbWVFbnRyeUNhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
Z2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7CiAg
ICAgdmlydHVhbCB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5k
bGVDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJz
aXZlbHksIFZvaWRDYWxsYmFjayYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IDE1MTBjZjRlNjg5ZjlmODU3NzZlYzVl
OGFiMzhkYTEzMmE2Mzg5ZDYuLjY3MWFjNGYxMThhOTNhNmQ2NjE4MjJmOGY1ZTdkMmFhMDMwYTFh
MjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9X
b3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uY3BwCkBAIC0zNjYsNCArMzY2LDI0IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpkaWRHZXRIYW5kbGVXaXRoVHlwZShDYWxsYmFja0lkZW50aWZpZXIKICAgICAg
ICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246Om1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlm
ICghbV9zY29wZSkKKyAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRT
dGF0ZUVycm9yIH0pOworCisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lk
ZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQo
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUt
PnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlv
biwgaWRlbnRpZmllciwgZGVzdGluYXRpb25JZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRD
b3B5KG5ld05hbWUpXSgpIG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFj
ayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhy
ZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5y
dW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNy
b3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAg
ICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4o
c2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAg
ICBjb25uZWN0aW9uLT5jb21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdU
Rk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9k
ZSgpKTsKKyAgICAgICAgfTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+bW92ZShp
ZGVudGlmaWVyLCBkZXN0aW5hdGlvbklkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUobWFpblRocmVh
ZENhbGxiYWNrKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA0ZGU0
Mzk5MmNkYjgzNjg0MGRlOWExNjk1NjJiOWYzMDE2MWE4MDQ5Li5jYWM5YjQyZmU4ZDVkMGQ1ODYx
YmVkYzk2OTUwMjE1NmU3ZTAzNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICAv
LyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAg
ICB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9y
eUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBi
b29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhh
bmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVs
eSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCAwOGY2MGNjMTJkZTkxNDk0YzJjMDdj
MDNmN2E3MDFmNzIzNjE0MTJkLi5iZWVmNmE0NmQzNzhmM2FiODE1YWU4MTUxOTY3MDJiMjQ5ZGQ3
NTI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTcyLDYgKzcyLDExIEBA
IGJvb2wgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkCiAgICAgcmV0dXJuIG1fcGF0aCA9PSBwYXRoOwogfQog
CitzdGF0aWMgYm9vbCBpc1ZhbGlkRmlsZU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAg
IHJldHVybiAhKG5hbWUgPT0gIi4iIHx8IG5hbWUgPT0gIi4uIiB8fCBuYW1lLmNvbnRhaW5zKHBh
dGhTZXBhcmF0b3IpKTsKK30KKwogRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
OjpyZXF1ZXN0Q3JlYXRlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQgY29ubmVjdGlv
biwgVHlwZSB0eXBlLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5KQogewog
ICAgIGlmIChtX3R5cGUgIT0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGU6OkRpcmVjdG9y
eSkKQEAgLTgxLDcgKzg2LDcgQEAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW0KICAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwogCiAg
ICAgLy8gaHR0cHM6Ly93aWNnLmdpdGh1Yi5pby9maWxlLXN5c3RlbS1hY2Nlc3MvI3ZhbGlkLWZp
bGUtbmFtZQotICAgIGlmIChuYW1lID09ICIuIiB8fCBuYW1lID09ICIuLiIgfHwgbmFtZS5jb250
YWlucyhwYXRoU2VwYXJhdG9yKSkKKyAgICBpZiAoIWlzVmFsaWRGaWxlTmFtZShuYW1lKSkKICAg
ICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFs
aWROYW1lKTsKIAogICAgIGF1dG8gcGF0aCA9IEZpbGVTeXN0ZW06OnBhdGhCeUFwcGVuZGluZ0Nv
bXBvbmVudChtX3BhdGgsIG5hbWUpOwpAQCAtMTAwLDYgKzEwNSwxMCBAQCBFeHBlY3RlZDxXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
RmlsZVN5c3RlbQogCiBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpyZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wg
ZGVsZXRlUmVjdXJzaXZlbHkpCiB7CisgICAgLy8gRG8gbm90IHJlbW92ZSBmaWxlIGlmIHRoZXJl
IGlzIG9wZW4gYWNjZXNzIGhhbmRsZSBhcyB3ZWIgcHJvY2VzcyBtYXkgYmUgcGVyZm9ybWluZyBv
ZXByYXRpb25zLgorICAgIGlmIChtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUpCisgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkU3RhdGU7CisKICAgICBpZiAobV90
eXBlICE9IFR5cGU6OkRpcmVjdG9yeSkKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlR5cGVNaXNtYXRjaDsKIApAQCAtMjU0LDQgKzI2MywzNiBAQCBFeHBlY3RlZDxzdGQ6
OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+LCBGaWxlU3lz
dGVtU3RvcmFnZQogICAgIHJldHVybiBzdGQ6OnBhaXIgeyByZXN1bHQudmFsdWUoKSwgcmVzdWx0
VHlwZSA9PSBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6VHlwZTo6RGlyZWN0b3J5IH07CiB9CiAK
K3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6Om1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRp
b25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpCit7CisgICAgaWYgKCFtX21hbmFn
ZXIpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisg
ICAgLy8gRG8gbm90IG1vdmUgZmlsZSBpZiB0aGVyZSBpcyBvbmdvaW5nIG9wZXJhdGlvbi4KKyAg
ICBpZiAobV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKQorICAgICAgICByZXR1cm4gRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOworCisgICAgaWYgKG1fbWFuYWdlci0+Z2V0VHlw
ZShkZXN0aW5hdGlvbklkZW50aWZpZXIpICE9IFR5cGU6OkRpcmVjdG9yeSkKKyAgICAgICAgcmV0
dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlR5cGVNaXNtYXRjaDsKKworICAgIGF1dG8gcGF0
aCA9IG1fbWFuYWdlci0+Z2V0UGF0aChkZXN0aW5hdGlvbklkZW50aWZpZXIpOworICAgIGlmIChw
YXRoLmlzRW1wdHkoKSkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVu
a25vd247CisKKyAgICBpZiAoIWlzVmFsaWRGaWxlTmFtZShuZXdOYW1lKSkKKyAgICAgICAgcmV0
dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWROYW1lOworCisgICAgYXV0byBkZXN0
aW5hdGlvblBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQocGF0aCwg
bmV3TmFtZSk7CisgICAgaWYgKEZpbGVTeXN0ZW06OmZpbGVFeGlzdHMoZGVzdGluYXRpb25QYXRo
KSkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAg
ICBpZiAoIUZpbGVTeXN0ZW06Om1vdmVGaWxlKG1fcGF0aCwgZGVzdGluYXRpb25QYXRoKSkKKyAg
ICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CisKKyAgICBtX3Bh
dGggPSBkZXN0aW5hdGlvblBhdGg7CisgICAgbV9uYW1lID0gbmV3TmFtZTsKKworICAgIHJldHVy
biBzdGQ6Om51bGxvcHQ7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuaAppbmRleCBiYmRmZDRjZWUxYzcxMjY4MjdiNDBiMTE5NmM0Mzc3YmNmMTdj
OTI1Li4yM2ZjODg0YjIwOGNlMTNhYTMxNTI4ZTM2ZTA3OTU3ZDQ0ZjE3NjkyIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtNTAsNiArNTAsNyBAQCBwdWJsaWM6CiAgICAgVHlwZSB0
eXBlKCkgY29uc3QgeyByZXR1cm4gbV90eXBlOyB9CiAKICAgICBib29sIGlzU2FtZUVudHJ5KFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldEZpbGVI
YW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSk7CiAgICAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGdldERpcmVjdG9yeUhhbmRsZShJUEM6
OkNvbm5lY3Rpb246OlVuaXF1ZUlELCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNz
YXJ5KTsKICAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlbW92ZUVu
dHJ5KGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDU1MTZmYmI2Mjk0N2Y5OGRkZGU1OTIxY2Q3M2ZlYTMw
MDQ3YTFhODkuLjY5YmFjODI1YmVmZjI3OWU0ZTAwZDE3OTczYzFhNDViNjk1NmI5NjUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0xODIsNiArMTgyLDE3IEBAIHZvaWQgTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjppc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVuCiAgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5pc1NhbWVFbnRyeSh0
YXJnZXRJZGVudGlmaWVyKSk7CiB9CiAKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjptb3Zl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuZXdOYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIEFTU0VS
VCghUnVuTG9vcDo6aXNNYWluKCkpOworCisgICAgYXV0byBoYW5kbGUgPSBtX2ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlUmVnaXN0cnktPmdldEhhbmRsZShpZGVudGlmaWVyKTsKKyAgICBpZiAoIWhh
bmRsZSkKKyAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I6OlVua25vd24pOworCisgICAgY29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5tb3ZlKGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgbmV3TmFtZSkpOworfQorCiB2b2lkIE5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6Z2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lY3Rpb24sIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUs
IGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9O
ZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCA4ODQ1NTlhZDk3NjgyOTQ3OTVlZGY1
Njg2NzU2MmFiYzZkOTExMjQ3Li4wNGNjM2FmMDliYWIzZDJmMGUwZjcwMWMxZmYyOTAwYTYxNDE2
MzU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC03MCwxMCArNzAsMTIgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHBlcnNpc3QoY29uc3QgV2ViQ29yZTo6Q2xpZW50T3JpZ2luJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBmaWxlU3lzdGVtR2V0RGlyZWN0
b3J5KElQQzo6Q29ubmVjdGlvbiYsIGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBpc1NhbWVFbnRy
eShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOworICAg
IHZvaWQgbW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4m
Jik7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZv
aWQgZ2V0RGlyZWN0b3J5SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVt
b3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChz
dGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCByZXNv
bHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0
b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKwogICAgIHVzaW5nIEFj
Y2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OwogICAgIHZvaWQgY3JlYXRl
U3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPHVp
bnQ2NF90LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KaW5kZXggZWZlNTc0ODZjMWIyZDcxOGQxMzEyOGRmMDVl
NDUyMmEwNjU5OWU2ZS4uODJlYTMxMGY4MTUxZWRmMmM0M2FiYTQ1MTE0YTgwMWM0Yjc0NmY3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zMiw2ICsz
Miw3IEBACiAgICAgR2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5
KSAtPiAoRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBXYW50c0Nvbm5lY3Rpb24K
ICAgICBSZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSkgLT4gKHN0ZDo6b3B0
aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAg
UmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciB0YXJnZXRJZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYworICAgIE1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBTdHJpbmcgbmV3TmFtZSkgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAKICAgICBDcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIpIC0+IChFeHBlY3RlZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+LCBXZWJLaXQ6OkZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBHZXRTaXplRm9yQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSAtPiAoRXhwZWN0ZWQ8dWludDY0X3QsIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcAppbmRleCA5Njg1ZmNmYThlOWM1NmJhMjg2Njk5YmExMjFhMDcwYzQzMmIyM2E2
Li4xZjA2YjU5ZjhjYzY2MGNhMzM5MDYwNWVlZjE2MjE1Nzc3YWM1YTZhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMTk1LDQgKzE5NSwx
NCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaQogICAgIH0pOwogfQogCit2b2lkIFdlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6bW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBk
ZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpCit7CisgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCisgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpV
bmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOworCisgICAgbV9jb25uZWN0aW9u
LT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6TW92
ZShpZGVudGlmaWVyLCBkZXN0aW5hdGlvbklkZW50aWZpZXIsIG5ld05hbWUpLCBbY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJs
ZSB7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9y
KSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDFlNmMzZDdkMDE5ODc2YzAwZTU5
ZmRlOTIwMmE5ZDA0NzRhYzRmMTkuLjdiM2ExZDFlOWVkMjc1N2VkYTFkZWI1NDU1N2U4NDY5ZmRm
ZDkwYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTcyLDEzICs3MiwxNCBAQCBwcml2YXRlOgogICAgIGV4cGxpY2l0IFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbihJUEM6OkNvbm5lY3Rpb24mKTsKIAogICAgIC8vIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbgotICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYp
OwotICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwotICAg
IHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJik7Ci0gICAg
dm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKTsKLSAgICB2b2lkIHJlc29sdmUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJl
c29sdmVDYWxsYmFjayYmKTsKLSAgICB2b2lkIGdldEhhbmRsZU5hbWVzKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhh
bmRsZU5hbWVzQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBnZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpOworICAgIHZvaWQgaXNT
YW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlNhbWVFbnRyeUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgbW92ZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgVm9pZENhbGxiYWNrJiYpIGZpbmFsOwor
ICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwor
ICAgIHZvaWQgZ2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIFdlYkNv
cmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3Jl
OjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAg
ICB2b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEhhbmRs
ZU5hbWVzKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZU5hbWVzQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCBnZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlw
ZUNhbGxiYWNrJiYpIGZpbmFsOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZv
aWQgZ2V0U2l6ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OkludGVnZXJDYWxsYmFjayYmKSBmaW5hbDsKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA5ODcx
MGJlMzdkYjU2MjU2NmNjOTY1YjhmNGMzMGQwNDY3OTQ4YWIyLi45OGI3NWRiOWQwNTgyOGM2MDJj
NGFmNDIwY2U4ZTQ4MzlkYzJmMDQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
KysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTAtMTMg
IFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZp
bGVTeXN0ZW1IYW5kbGUgbW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzE2NzYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5k
bGUtbW92ZS5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
cmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzOiBBZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgor
ICAgICAgICAoYXN5bmMgdGVzdCk6CisKIDIwMjEtMTAtMTIgIEFsYW4gQnVqdGFzICA8emFsYW5A
YXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gRG8gbm90IGNvbGxhcHNlIHdoaXRlc3Bh
Y2Ugd2l0aCB6ZXJvLXdpZHRoIHNwYWNlIHNlcGFyYXRvciBpbi1iZXR3ZWVuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3Zl
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMzg2MmU5ZGVlMmRkZGRjMGRhNjljNTE0Y2VjZTg0
MGY4NzBhNTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL2hhbmRsZS1tb3ZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUaGlz
IHRlc3QgY2hlY2tzIG1vdmUoKSBvZiBGaWxlU3lzdGVtSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5
b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVT
VCBDT01QTEVURSIuCisKKworVGVzdCBiYXNpYyBtb3ZlOgorUEFTUyBmaWxlSGFuZGxlLm5hbWUg
aXMgImZpbGUiCitQQVNTIGZpbGVIYW5kbGUubmFtZSBpcyAibmV3RmlsZSIKK1BBU1MgZ2V0Rmls
ZUhhbmRsZUVycm9yLnRvU3RyaW5nKCkgaXMgIk5vdEZvdW5kRXJyb3I6IFRoZSBvYmplY3QgY2Fu
IG5vdCBiZSBmb3VuZCBoZXJlLiIKK1BBU1MgZmlsZUhhbmRsZTIubmFtZSBpcyAibmV3RmlsZSIK
K1BBU1MgZmlsZUhhbmRsZTIua2luZCBpcyAiZmlsZSIKK1Rlc3QgbW92ZSB0byBhIGZpbGUgaGFu
ZGxlOgorUEFTUyBtb3ZlRmlsZUVycm9yLnRvU3RyaW5nKCkgaXMgIlR5cGVNaXNtYXRjaEVycm9y
OiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBleHBlY3Rl
ZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIKK1Rlc3Qg
bW92ZSB0byBhIGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmlsZToKK1BBU1MgbW92ZUZpbGVF
cnJvci50b1N0cmluZygpIGlzICJVbmtub3duRXJyb3I6IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZv
ciBhbiB1bmtub3duIHRyYW5zaWVudCByZWFzb24gKGUuZy4gb3V0IG9mIG1lbW9yeSkuIgorUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS5odG1s
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMDI0ZmJhMDY4NGUxNzEwZTRhZWNlYmFkOTViN2Q1MDA0MjJlMGJkYQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5k
bGUtbW92ZS5odG1sCkBAIC0wLDAgKzEsMTYgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIganNUZXN0SXNBc3luYyA9IHRydWU7CisK
K2lmICghd2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICBmaW5pc2hUZXN0KCJ3aW5kb3cudGVzdFJ1
bm5lciBpcyBub3QgYXZhaWxhYmxlIik7Cit9Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvaGFuZGxlLW1vdmUuanMiPjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9oYW5k
bGUtbW92ZS5qcyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJj
ZXMvaGFuZGxlLW1vdmUuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNmVjYTBkZDgzNDg1NDUzNzc0NjdhOGEyMTcx
MWMzNjBiZjE0ODJkOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMvaGFuZGxlLW1vdmUuanMKQEAgLTAsMCArMSw3MyBAQAor
aWYgKHRoaXMuaW1wb3J0U2NyaXB0cykgeworICAgIGltcG9ydFNjcmlwdHMoJy4uLy4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzJyk7Cit9CisKK2Rlc2NyaXB0aW9uKCJUaGlzIHRlc3QgY2hlY2tz
IG1vdmUoKSBvZiBGaWxlU3lzdGVtSGFuZGxlLiIpOworCit2YXIgcm9vdEhhbmRsZSwgZGlySGFu
ZGxlMSwgZGlySGFuZGxlMiwgZmlsZUhhbmRsZSwgZmlsZUhhbmRsZTIsIHRlc3RFcnJvciwgZ2V0
RmlsZUhhbmRsZUVycm9yLCBtb3ZlRmlsZUVycm9yOworCitmdW5jdGlvbiBmaW5pc2hUZXN0KGVy
cm9yKQoreworICAgIGlmIChlcnJvcikgeworICAgICAgICB0ZXN0RmFpbGVkKGVycm9yKTsKKyAg
ICB9CisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK2FzeW5jIGZ1bmN0aW9uIHRlc3QoKSB7Cisg
ICAgdHJ5IHsKKyAgICAgICAgdmFyIHJvb3RIYW5kbGUgPSBhd2FpdCBuYXZpZ2F0b3Iuc3RvcmFn
ZS5nZXREaXJlY3RvcnkoKTsKKyAgICAgICAgLy8gQ3JlYXRlIHR3byBuZXcgZm9sZGVycyBmb3Ig
dGhpcyB0ZXN0LgorICAgICAgICBhd2FpdCByb290SGFuZGxlLnJlbW92ZUVudHJ5KCJkaXIxIiwg
eyAicmVjdXJzaXZlIiA6IHRydWUgfSkudGhlbigoKSA9PiB7IH0sICgpID0+IHsgfSk7CisgICAg
ICAgIGF3YWl0IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoImRpcjIiLCB7ICJyZWN1cnNpdmUiIDog
dHJ1ZSB9KS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgZGlySGFuZGxlMSA9
IGF3YWl0IHJvb3RIYW5kbGUuZ2V0RGlyZWN0b3J5SGFuZGxlKCJkaXIxIiwgeyAiY3JlYXRlIiA6
IHRydWUgfSk7CisgICAgICAgIGRpckhhbmRsZTIgPSBhd2FpdCByb290SGFuZGxlLmdldERpcmVj
dG9yeUhhbmRsZSgiZGlyMiIsIHsgImNyZWF0ZSIgOiB0cnVlIH0pOworCisgICAgICAgIGRlYnVn
KCJUZXN0IGJhc2ljIG1vdmU6IikKKyAgICAgICAgZmlsZUhhbmRsZSA9IGF3YWl0IGRpckhhbmRs
ZTEuZ2V0RmlsZUhhbmRsZSgiZmlsZSIsIHsgImNyZWF0ZSIgOiB0cnVlIH0pOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJmaWxlIik7CisgICAgICAg
IGF3YWl0IGZpbGVIYW5kbGUubW92ZShkaXJIYW5kbGUyLCAibmV3RmlsZSIpOworICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUubmFtZSIsICJuZXdGaWxlIik7CisKKyAg
ICAgICAgdGVzdEVycm9yID0gbnVsbDsKKyAgICAgICAgYXdhaXQgZGlySGFuZGxlMS5nZXRGaWxl
SGFuZGxlKCJmaWxlIiwgeyAiY3JlYXRlIiA6IGZhbHNlIH0pLnRoZW4oKGhhbmRsZSkgPT4gewor
ICAgICAgICAgICAgdGVzdEVycm9yID0gIkdvdCBmaWxlIGhhbmRsZSBmcm9tIGRpckhhbmRsZTEg
dW5leHBlY3RlZGx5IgorICAgICAgICB9LCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgIGdldEZp
bGVIYW5kbGVFcnJvciA9IGVycm9yOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5n
KCJnZXRGaWxlSGFuZGxlRXJyb3IudG9TdHJpbmcoKSIsICJOb3RGb3VuZEVycm9yOiBUaGUgb2Jq
ZWN0IGNhbiBub3QgYmUgZm91bmQgaGVyZS4iKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYg
KHRlc3RFcnJvcikgeworICAgICAgICAgICAgcmV0dXJuIGZpbmlzaFRlc3QodGVzdEVycm9yKTsK
KyAgICAgICAgfQorCisgICAgICAgIGZpbGVIYW5kbGUyID0gYXdhaXQgZGlySGFuZGxlMi5nZXRG
aWxlSGFuZGxlKCJuZXdGaWxlIiwgeyAiY3JlYXRlIiA6IGZhbHNlIH0pOworICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUyLm5hbWUiLCAibmV3RmlsZSIpOworICAgICAg
ICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImZpbGVIYW5kbGUyLmtpbmQiLCAiZmlsZSIpOworCisg
ICAgICAgIGRlYnVnKCJUZXN0IG1vdmUgdG8gYSBmaWxlIGhhbmRsZToiKTsKKyAgICAgICAgdGVz
dEVycm9yID0gbnVsbDsKKyAgICAgICAgZmlsZUhhbmRsZTMgPSBhd2FpdCBkaXJIYW5kbGUxLmdl
dEZpbGVIYW5kbGUoInNlY29uZEZpbGUiLCB7ICJjcmVhdGUiIDogdHJ1ZSB9KTsKKyAgICAgICAg
YXdhaXQgZmlsZUhhbmRsZS5tb3ZlKGZpbGVIYW5kbGUyLCAiZmlsZSIpLnRoZW4oKCkgPT4gewor
ICAgICAgICAgICAgdGVzdEVycm9yID0gICJNb3ZlZCBmaWxlIHRvIGZpbGVIYW5kbGUyIHVuZXhw
ZWN0ZWRseSIKKyAgICAgICAgfSwgKGVycm9yKSA9PiB7CisgICAgICAgICAgICBtb3ZlRmlsZUVy
cm9yID0gZXJyb3I7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1vdmVGaWxl
RXJyb3IudG9TdHJpbmcoKSIsICJUeXBlTWlzbWF0Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4gb2Jq
ZWN0IHdhcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFyYW1l
dGVyIGFzc29jaWF0ZWQgdG8gdGhlIG9iamVjdC4iKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
ZGVidWcoIlRlc3QgbW92ZSB0byBhIGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmlsZToiKTsK
KyAgICAgICAgdGVzdEVycm9yID0gbnVsbDsKKyAgICAgICAgYXdhaXQgZmlsZUhhbmRsZS5tb3Zl
KGRpckhhbmRsZTEsICJzZWNvbmRGaWxlIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0
RXJyb3IgPSAgIk1vdmVkIGZpbGUgYmFjayB0byBkaXJIYW5kbGUxIHVuZXhwZWN0ZWRseSI7Cisg
ICAgICAgIH0sIChlcnJvcikgPT4geworICAgICAgICAgICAgbW92ZUZpbGVFcnJvciA9IGVycm9y
OworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtb3ZlRmlsZUVycm9yLnRvU3Ry
aW5nKCkiLCAiVW5rbm93bkVycm9yOiBUaGUgb3BlcmF0aW9uIGZhaWxlZCBmb3IgYW4gdW5rbm93
biB0cmFuc2llbnQgcmVhc29uIChlLmcuIG91dCBvZiBtZW1vcnkpLiIpOworICAgICAgICB9KTsK
KworICAgICAgICBmaW5pc2hUZXN0KCk7CisgICAgfSBjYXRjaCAoZXJyb3IpIHsKKyAgICAgICAg
ZmluaXNoVGVzdChlcnJvcik7CisgICAgfQorfQorCit0ZXN0KCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441092</attachid>
            <date>2021-10-13 09:43:06 -0700</date>
            <delta_ts>2021-10-13 10:37:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-231676-20211013094304.patch</filename>
            <type>text/plain</type>
            <size>32397</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjMzNzYzOGYyMDYxYTM0
MjgyZGZlMmYxYjcxNWM2YWUxYTIxYTg4ZS4uMDA0MmI1ZGM1ZmVmZmY5MGMxNTM0MTMwY2I5N2Y2
NTk5ZTU2ZWRhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTEzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtSGFuZGxlIG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNjc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDE5OTgyMz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQcm92aWRlIGEgd2F5
IHRvIG1vdmUgYW4gZXhpc3RpbmcgZmlsZSB0byBhIG5ldyBwbGFjZSBpbiBPUEZTLgorCisgICAg
ICAgIFRlc3RzOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtd29ya2VyLmh0
bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS5o
dG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRs
ZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjptb3ZlKToKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlkbDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
Lmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246Om1vdmUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMS0xMC0xMiAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGxp
bmcgdGhyZWFkIGFuaW1hdGlvbnMgbmVlZCB0byBjb21taXQgbGF5ZXJzIG9uIHRoZSBzY3JvbGxp
bmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4YWE3Y2Q0MGJlY2ZiMjVmYTNkYjlmMDZjZWVjMmYwNjdj
YjdiNDcuLjIxNmJlMzNiMjU2ZWJkMTZkZDYzN2NhNmU2ZDkzZjNhNmY2ODExYzAgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
CkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTAtMTMgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBs
ZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0ZW1IYW5kbGUgbW92ZSgpCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzE2NzYKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg0MTk5ODIzPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OmlzVmFsaWRGaWxlTmFtZSk6Cisg
ICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpyZXF1ZXN0Q3JlYXRlSGFu
ZGxlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OnJlbW92ZUVu
dHJ5KToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6Om1vdmUpOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
aDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6bW92ZSk6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaDoK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6bW92ZSk6CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMS0xMC0xMiAg
U2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNvbT4KIAogICAgICAgICBTY3JvbGxp
bmcgdGhyZWFkIGFuaW1hdGlvbnMgbmVlZCB0byBjb21taXQgbGF5ZXJzIG9uIHRoZSBzY3JvbGxp
bmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKaW5kZXggNWRhNzY1NTcxZWM5YmU2Y2Fh
ZjVhYjZlMmU3MzM0YzllY2Y4MjYwNS4uODczMGYwZWRhZTZjNmMwMzAwYTc3OThjZGY2MWE4NTA4
YzE0NmFmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcApAQCAtNTQsNCArNTQsMTcgQEAgdm9p
ZCBGaWxlU3lzdGVtSGFuZGxlOjppc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiBoYW5kbGUs
IERPTVByb21pc2VEZWZlcnJlZDwKICAgICB9KTsKIH0KIAordm9pZCBGaWxlU3lzdGVtSGFuZGxl
Ojptb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmIGRlc3RpbmF0aW9uSGFuZGxlLCBjb25zdCBTdHJpbmcm
IG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByb21pc2UpCit7CisgICAgaWYg
KGRlc3RpbmF0aW9uSGFuZGxlLmtpbmQoKSAhPSBLaW5kOjpEaXJlY3RvcnkpCisgICAgICAgIHJl
dHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBUeXBlTWlzbWF0Y2hFcnJvciB9KTsKKwor
ICAgIG1fY29ubmVjdGlvbi0+bW92ZShtX2lkZW50aWZpZXIsIGRlc3RpbmF0aW9uSGFuZGxlLmlk
ZW50aWZpZXIoKSwgbmV3TmFtZSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCBuZXdOYW1lLCBwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBpZiAoIXJlc3VsdC5oYXNFeGNlcHRpb24oKSkKKyAgICAgICAgICAgIG1f
bmFtZSA9IG5ld05hbWU7CisKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQp
KTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxl
LmgKaW5kZXggZWM0NDY4N2IwOTE0YzU4M2UzYjgxYzQ2MzZmZWU1OTg0NzM3MTBiNy4uNTY0ZDJj
MTk1NzY2OWZiMGVjOGJkZjkwMWZkYTcyODliYzViZGUzMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5o
CkBAIC0zNCw3ICszNCw2IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBET01Qcm9taXNlRGVmZXJyZWQ7CiAKIGNsYXNzIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjsKLWVudW0gY2xhc3MgUGVybWlzc2lvblN0YXRlIDogdWludDhfdDsKIAogY2xhc3Mg
RmlsZVN5c3RlbUhhbmRsZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsK
ICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1IYW5kbGUpOwpAQCAtNTAsNiAr
NDksNyBAQCBwdWJsaWM6CiAgICAgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogCiAgICAgdm9pZCBpc1NhbWVFbnRy
eShGaWxlU3lzdGVtSGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNv
bnN0OworICAgIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlJiwgY29uc3QgU3RyaW5nJiBuZXdO
YW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CiAKIHByb3RlY3RlZDoKICAgICBGaWxl
U3lzdGVtSGFuZGxlKEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmlk
bCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlLmlkbAppbmRleCBjN2E3NzkzMTAxYTkyNjMyNmQ2YjFjMjQzN2EzNmFkZjFmOTExZWU4Li4y
NmFiODQxOTcxMzI0MWE4OTA3YThlZDc4NjhiMjY2MTI5ZDIxOTc5IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuaWRsCkBAIC0zOCw0ICszOCw1IEBAIGVudW0gRmlsZVN5c3RlbUhhbmRsZUtpbmQgewog
ICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBVU1ZTdHJpbmcgbmFtZTsKIAogICAgIFByb21pc2U8Ym9v
bGVhbj4gaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSBvdGhlcik7CisgICAgUHJvbWlzZTx1
bmRlZmluZWQ+IG1vdmUoRmlsZVN5c3RlbUhhbmRsZSBkZXN0aW5hdGlvbiwgVVNWU3RyaW5nIG5l
d05hbWUpOwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRl
eCA0YmE5YzU4MGRhMTZkZWQxZGVlY2ZhZjhiNDQyZjY4ODE1Zjg0ZDQ1Li4yN2ZhMWUyYzljZWVl
MjU2NWNmMzc1YmE2OTRjNGE1YWMxN2U5Nzc0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCkBAIC01MSw2ICs1MSw3IEBAIHB1YmxpYzoKICAgICB1c2luZyBHZXRI
YW5kbGVXaXRoVHlwZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxzdGQ6OnBhaXI8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+PiYmKT47CiAKICAg
ICB2aXJ0dWFsIHZvaWQgaXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTYW1lRW50cnlDYWxsYmFjayYmKSA9IDA7CisgICAg
dmlydHVhbCB2b2lkIG1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgR2V0SGFu
ZGxlQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUo
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBu
YW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBWb2lkQ2FsbGJhY2smJikgPSAwOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCAx
NTEwY2Y0ZTY4OWY5Zjg1Nzc2ZWM1ZThhYjM4ZGExMzJhNjM4OWQ2Li42NzFhYzRmMTE4YTkzYTZk
NjYxODIyZjhmNWU3ZDJhYTAzMGExYTI4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMzY2LDQgKzM2NiwyNCBAQCB2b2lkIFdv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxlV2l0aFR5cGUoQ2Fs
bGJhY2tJZGVudGlmaWVyCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAK
K3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjptb3ZlKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRl
c3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBWb2lkQ2FsbGJhY2sm
JiBjYWxsYmFjaykKK3sKKyAgICBpZiAoIW1fc2NvcGUpCisgICAgICAgIHJldHVybiBjYWxsYmFj
ayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKKworICAgIGF1dG8gY2FsbGJhY2tJ
ZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKTsKKyAg
ICBtX3ZvaWRDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFj
aykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJU
aHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9
IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIGRlc3RpbmF0aW9uSWRlbnRpZmll
ciwgbmFtZSA9IGNyb3NzVGhyZWFkQ29weShuZXdOYW1lKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
YXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJl
YWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJ
ZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3Bl
KSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNh
c3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
KSkKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+Y29tcGxldGVWb2lkQ2FsbGJhY2so
Y2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29y
a2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH07CisKKyAgICAgICAgbWFpblRo
cmVhZENvbm5lY3Rpb24tPm1vdmUoaWRlbnRpZmllciwgZGVzdGluYXRpb25JZGVudGlmaWVyLCBu
YW1lLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgIH0pOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggNGRlNDM5OTJjZGI4MzY4NDBkZTlhMTY5NTYyYjlmMzAxNjFhODA0
OS4uY2FjOWI0MmZlOGQ1ZDBkNTg2MWJlZGM5Njk1MDIxNTZlN2UwMzU1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNTgsNiArNTgs
NyBAQCBwcml2YXRlOgogCiAgICAgLy8gRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uCiAgICAg
dm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6U2FtZUVudHJ5Q2Fs
bGJhY2smJikgZmluYWw7CisgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBWb2lk
Q2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3Nhcnks
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7
CiAgICAgdm9pZCBnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJl
bW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9p
ZENhbGxiYWNrJiYpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXgg
MDhmNjBjYzEyZGU5MTQ5NGMyYzA3YzAzZjdhNzAxZjcyMzYxNDEyZC4uYmVlZjZhNDZkMzc4ZjNh
YjgxNWFlODE1MTk2NzAyYjI0OWRkNzUyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwCkBAIC03Miw2ICs3MiwxMSBAQCBib29sIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjppc1Nh
bWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZAogICAgIHJldHVy
biBtX3BhdGggPT0gcGF0aDsKIH0KIAorc3RhdGljIGJvb2wgaXNWYWxpZEZpbGVOYW1lKGNvbnN0
IFN0cmluZyYgbmFtZSkKK3sKKyAgICByZXR1cm4gIShuYW1lID09ICIuIiB8fCBuYW1lID09ICIu
LiIgfHwgbmFtZS5jb250YWlucyhwYXRoU2VwYXJhdG9yKSk7Cit9CisKIEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVxdWVzdENyZWF0ZUhhbmRsZShJUEM6OkNvbm5lY3Rp
b246OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFR5cGUgdHlwZSwgU3RyaW5nJiYgbmFtZSwgYm9vbCBj
cmVhdGVJZk5lY2Vzc2FyeSkKIHsKICAgICBpZiAobV90eXBlICE9IEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpUeXBlOjpEaXJlY3RvcnkpCkBAIC04MSw3ICs4Niw3IEBAIEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBG
aWxlU3lzdGVtCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpVbmtub3duKTsKIAogICAgIC8vIGh0dHBzOi8vd2ljZy5naXRodWIuaW8vZmlsZS1z
eXN0ZW0tYWNjZXNzLyN2YWxpZC1maWxlLW5hbWUKLSAgICBpZiAobmFtZSA9PSAiLiIgfHwgbmFt
ZSA9PSAiLi4iIHx8IG5hbWUuY29udGFpbnMocGF0aFNlcGFyYXRvcikpCisgICAgaWYgKCFpc1Zh
bGlkRmlsZU5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChGaWxlU3lz
dGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSk7CiAKICAgICBhdXRvIHBhdGggPSBGaWxlU3lz
dGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9wYXRoLCBuYW1lKTsKQEAgLTEwMCw2ICsx
MDUsMTAgQEAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW0KIAogc3RkOjpvcHRpb25hbDxGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkoY29u
c3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5KQogeworICAgIC8vIERvIG5v
dCByZW1vdmUgZmlsZSBpZiB0aGVyZSBpcyBvcGVuIGFjY2VzcyBoYW5kbGUgYXMgd2ViIHByb2Nl
c3MgbWF5IGJlIHBlcmZvcm1pbmcgb2VwcmF0aW9ucy4KKyAgICBpZiAobV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxp
ZFN0YXRlOworCiAgICAgaWYgKG1fdHlwZSAhPSBUeXBlOjpEaXJlY3RvcnkpCiAgICAgICAgIHJl
dHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g7CiAKQEAgLTI1NCw0ICsy
NjMsMzYgQEAgRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBib29sPiwgRmlsZVN5c3RlbVN0b3JhZ2UKICAgICByZXR1cm4gc3RkOjpwYWlyIHsg
cmVzdWx0LnZhbHVlKCksIHJlc3VsdFR5cGUgPT0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5
cGU6OkRpcmVjdG9yeSB9OwogfQogCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjptb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1l
KQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcjo6VW5rbm93bjsKKworICAgIC8vIERvIG5vdCBtb3ZlIGZpbGUgaWYgdGhlcmUgaXMg
b25nb2luZyBvcGVyYXRpb24uCisgICAgaWYgKG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSkKKyAg
ICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OkludmFsaWRTdGF0ZTsKKworICAg
IGlmIChtX21hbmFnZXItPmdldFR5cGUoZGVzdGluYXRpb25JZGVudGlmaWVyKSAhPSBUeXBlOjpE
aXJlY3RvcnkpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlz
bWF0Y2g7CisKKyAgICBhdXRvIHBhdGggPSBtX21hbmFnZXItPmdldFBhdGgoZGVzdGluYXRpb25J
ZGVudGlmaWVyKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgaWYgKCFpc1ZhbGlkRmlsZU5hbWUo
bmV3TmFtZSkpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlk
TmFtZTsKKworICAgIGF1dG8gZGVzdGluYXRpb25QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBw
ZW5kaW5nQ29tcG9uZW50KHBhdGgsIG5ld05hbWUpOworICAgIGlmIChGaWxlU3lzdGVtOjpmaWxl
RXhpc3RzKGRlc3RpbmF0aW9uUGF0aCkpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFn
ZUVycm9yOjpVbmtub3duOworCisgICAgaWYgKCFGaWxlU3lzdGVtOjptb3ZlRmlsZShtX3BhdGgs
IGRlc3RpbmF0aW9uUGF0aCkpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duOworCisgICAgbV9wYXRoID0gZGVzdGluYXRpb25QYXRoOworICAgIG1fbmFtZSA9
IG5ld05hbWU7CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0OworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggYmJkZmQ0Y2VlMWM3MTI2
ODI3YjQwYjExOTZjNDM3N2JjZjE3YzkyNS4uMjNmYzg4NGIyMDhjZTEzYWEzMTUyOGUzNmUwNzk1
N2Q0NGYxNzY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTUwLDYgKzUwLDcg
QEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAg
ICAgYm9vbCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7
CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBtb3ZlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAg
IEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0
cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwogICAgIEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBn
ZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlxdWVJRCwgU3RyaW5nJiYgbmFt
ZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRl
UmVjdXJzaXZlbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA1NTE2ZmJiNjI5
NDdmOThkZGRlNTkyMWNkNzNmZWEzMDA0N2ExYTg5Li42OWJhYzgyNWJlZmYyNzllNGUwMGQxNzk3
M2MxYTQ1YjY5NTZiOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTgyLDYg
KzE4MiwxNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6aXNTYW1lRW50cnkoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbgogICAgIGNvbXBsZXRpb25IYW5kbGVy
KGhhbmRsZS0+aXNTYW1lRW50cnkodGFyZ2V0SWRlbnRpZmllcikpOwogfQogCit2b2lkIE5ldHdv
cmtTdG9yYWdlTWFuYWdlcjo6bW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBkZXN0aW5h
dGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8g
aGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRl
bnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKKworICAgIGNvbXBsZXRpb25I
YW5kbGVyKGhhbmRsZS0+bW92ZShkZXN0aW5hdGlvbklkZW50aWZpZXIsIG5ld05hbWUpKTsKK30K
Kwogdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0
aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXgg
ODg0NTU5YWQ5NzY4Mjk0Nzk1ZWRmNTY4Njc1NjJhYmM2ZDkxMTI0Ny4uMDRjYzNhZjA5YmFiM2Qy
ZjBlMGY3MDFjMWZmMjkwMGE2MTQxNjM1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAt
NzAsMTAgKzcwLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJzaXN0KGNvbnN0IFdlYkNvcmU6
OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZv
aWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3Jl
OjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYp
OwogICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5ld05hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNv
bm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBl
Y3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rp
b24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4pPiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9y
Pik+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CisKICAgICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFu
ZGxlPjsKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNz
SGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldFNp
emVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYm
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGVmZTU3
NDg2YzFiMmQ3MThkMTMxMjhkZjA1ZTQ1MjJhMDY1OTllNmUuLjgyZWEzMTBmODE1MWVkZjJjNDNh
YmE0NTExNGE4MDFjNGI3NDZmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5t
ZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBAQAogICAgIEdldERpcmVjdG9yeUhhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwg
Ym9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAgUmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVj
dXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
dGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBNb3ZlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgU3RyaW5nIG5ld05hbWUpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBB
c3luYwogCiAgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFu
ZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAg
R2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6
OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggOTY4NWZjZmE4ZTljNTZiYTI4
NjY5OWJhMTIxYTA3MGM0MzJiMjNhNi4uMWYwNmI1OWY4Y2M2NjBjYTMzOTA2MDVlZWYxNjIxNTc3
N2FjNWE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKQEAgLTE5NSw0ICsxOTUsMTQgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmdldEhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmkKICAgICB9
KTsKIH0KIAordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Om1vdmUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5ld05hbWUsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICgh
bV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6
RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9
KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6Ok1vdmUoaWRlbnRpZmllciwgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBuZXdOYW1lKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252
ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRl
eCAxZTZjM2Q3ZDAxOTg3NmMwMGU1OWZkZTkyMDJhOWQwNDc0YWM0ZjE5Li43YjNhMWQxZTllZDI3
NTdlZGExZGViNTQ1NTdlODQ2OWZkZmQ5MGI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03MiwxMyArNzIsMTQgQEAgcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7
CiAKICAgICAvLyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24KLSAgICB2b2lkIGlzU2FtZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpTYW1lRW50cnlDYWxsYmFjayYmKTsKLSAgICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVh
dGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRI
YW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhh
bmRsZUNhbGxiYWNrJiYpOwotICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNp
dmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2sm
Jik7Ci0gICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJik7Ci0gICAgdm9pZCBnZXRIYW5k
bGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpOwotICAgIHZvaWQgZ2V0
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxs
YmFjayYmKTsKKyAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJ
Zk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNy
ZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxl
dGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lk
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjayYmKSBmaW5hbDsKIAogICAgIHZvaWQgY3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2sm
JikgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKaW5kZXggOTg3MTBiZTM3ZGI1NjI1NjZjYzk2NWI4ZjRjMzBkMDQ2Nzk0OGFi
Mi4uNTY0MGU0MDE0MmI0NTA3YjNmYzAyNzdiOGM5OWZiNWM3ZTk0YTliZiAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDE5IEBACisyMDIxLTEwLTEzICBTaWh1aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgor
CisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtSGFuZGxlIG1vdmUoKQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMxNjc2CisgICAgICAgIDxyZGFy
Oi8vcHJvYmxlbS84NDE5OTgyMz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5k
bGUtbW92ZS13b3JrZXItZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBzdG9yYWdlL2Zp
bGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtd29ya2VyLmh0bWw6IEFkZGVkLgorICAgICAgICAq
IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzOiBB
ZGRlZC4KKyAgICAgICAgKGZpbmlzaFRlc3QpOgorICAgICAgICAoYXN5bmMgdGVzdCk6CisKIDIw
MjEtMTAtMTIgIEFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUuY29tPgogCiAgICAgICAgIFtMRkNd
W0lGQ10gRG8gbm90IGNvbGxhcHNlIHdoaXRlc3BhY2Ugd2l0aCB6ZXJvLXdpZHRoIHNwYWNlIHNl
cGFyYXRvciBpbi1iZXR3ZWVuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
Mzg2MmU5ZGVlMmRkZGRjMGRhNjljNTE0Y2VjZTg0MGY4NzBhNTQ5Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDE5IEBACitUaGlzIHRlc3QgY2hlY2tzIG1vdmUoKSBvZiBGaWxl
U3lzdGVtSGFuZGxlLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworVGVzdCBiYXNp
YyBtb3ZlOgorUEFTUyBmaWxlSGFuZGxlLm5hbWUgaXMgImZpbGUiCitQQVNTIGZpbGVIYW5kbGUu
bmFtZSBpcyAibmV3RmlsZSIKK1BBU1MgZ2V0RmlsZUhhbmRsZUVycm9yLnRvU3RyaW5nKCkgaXMg
Ik5vdEZvdW5kRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBmb3VuZCBoZXJlLiIKK1BBU1Mg
ZmlsZUhhbmRsZTIubmFtZSBpcyAibmV3RmlsZSIKK1BBU1MgZmlsZUhhbmRsZTIua2luZCBpcyAi
ZmlsZSIKK1Rlc3QgbW92ZSB0byBhIGZpbGUgaGFuZGxlOgorUEFTUyBtb3ZlRmlsZUVycm9yLnRv
U3RyaW5nKCkgaXMgIlR5cGVNaXNtYXRjaEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2Fz
IGluY29tcGF0aWJsZSB3aXRoIHRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNz
b2NpYXRlZCB0byB0aGUgb2JqZWN0LiIKK1Rlc3QgbW92ZSB0byBhIGRlc3RpbmF0aW9uIHdpdGgg
ZXhpc3RpbmcgZmlsZToKK1BBU1MgbW92ZUZpbGVFcnJvci50b1N0cmluZygpIGlzICJVbmtub3du
RXJyb3I6IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiB1bmtub3duIHRyYW5zaWVudCByZWFz
b24gKGUuZy4gb3V0IG9mIG1lbW9yeSkuIgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS13b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjJlOTdkNjA2MWNkZGRmODc2YTRhZjVmMTY0Y2U3YjlhYTU3NTdmNAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9o
YW5kbGUtbW92ZS13b3JrZXItZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1tXb3JrZXJd
IFRoaXMgdGVzdCBjaGVja3MgbW92ZSgpIG9mIEZpbGVTeXN0ZW1IYW5kbGUuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitTdGFydGluZyB3b3JrZXI6IHJlc291cmNlcy9oYW5kbGUt
bW92ZS5qcworW1dvcmtlcl0gVGVzdCBiYXNpYyBtb3ZlOgorUEFTUyBbV29ya2VyXSBmaWxlSGFu
ZGxlLm5hbWUgaXMgImZpbGUiCitQQVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUubmFtZSBpcyAibmV3
RmlsZSIKK1BBU1MgW1dvcmtlcl0gZ2V0RmlsZUhhbmRsZUVycm9yLnRvU3RyaW5nKCkgaXMgIk5v
dEZvdW5kRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBmb3VuZCBoZXJlLiIKK1BBU1MgW1dv
cmtlcl0gZmlsZUhhbmRsZTIubmFtZSBpcyAibmV3RmlsZSIKK1BBU1MgW1dvcmtlcl0gZmlsZUhh
bmRsZTIua2luZCBpcyAiZmlsZSIKK1tXb3JrZXJdIFRlc3QgbW92ZSB0byBhIGZpbGUgaGFuZGxl
OgorUEFTUyBbV29ya2VyXSBtb3ZlRmlsZUVycm9yLnRvU3RyaW5nKCkgaXMgIlR5cGVNaXNtYXRj
aEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBl
eHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIK
K1tXb3JrZXJdIFRlc3QgbW92ZSB0byBhIGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmlsZToK
K1BBU1MgW1dvcmtlcl0gbW92ZUZpbGVFcnJvci50b1N0cmluZygpIGlzICJVbmtub3duRXJyb3I6
IFRoZSBvcGVyYXRpb24gZmFpbGVkIGZvciBhbiB1bmtub3duIHRyYW5zaWVudCByZWFzb24gKGUu
Zy4gb3V0IG9mIG1lbW9yeSkuIgorW1dvcmtlcl0gVGVzdCBtb3ZlIHdpdGggb3BlbiBhY2Nlc3Mg
aGFuZGxlOgorUEFTUyBbV29ya2VyXSBtb3ZlRmlsZUVycm9yLnRvU3RyaW5nKCkgaXMgIkludmFs
aWRTdGF0ZUVycm9yOiBUaGUgb2JqZWN0IGlzIGluIGFuIGludmFsaWQgc3RhdGUuIgorUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS13b3JrZXIu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS13
b3JrZXIuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNGY2MDVmNGZmMDUwMTQ5Nzk1NjRiMzYxYTlkNzFhMjVi
MzNkMTRlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVt
YWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci5odG1sCkBAIC0wLDAgKzEsOSBAQAorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit3b3JrZXIgPSBzdGFydFdvcmtlcigncmVzb3Vy
Y2VzL2hhbmRsZS1tb3ZlLmpzJyk7PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+ClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgZmlsZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLmh0bWwgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMjRmYmEwNjg0ZTE3MTBl
NGFlY2ViYWQ5NWI3ZDUwMDQyMmUwYmRhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLmh0bWwKQEAgLTAsMCArMSwxNiBA
QAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4uL3Jl
c291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4K
K3ZhciBqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworaWYgKCF3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgIGZpbmlzaFRlc3QoIndpbmRvdy50ZXN0UnVubmVyIGlzIG5vdCBhdmFpbGFibGUiKTsKK30K
Kzwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9oYW5kbGUtbW92ZS5qcyI+PC9zY3Jp
cHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2Zp
bGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9oYW5kbGUtbW92ZS5qcwpuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li44MWU2NTk1MjA5ZmI5MjNlODAzMTAxMjRmMzMwZTA1MTQ4OGFhMzhmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL3Jlc291cmNlcy9oYW5k
bGUtbW92ZS5qcwpAQCAtMCwwICsxLDk5IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7Cisg
ICAgaW1wb3J0U2NyaXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKwor
ZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBjaGVja3MgbW92ZSgpIG9mIEZpbGVTeXN0ZW1IYW5kbGUu
Iik7CisKK3ZhciByb290SGFuZGxlLCBkaXJIYW5kbGUxLCBkaXJIYW5kbGUyLCBmaWxlSGFuZGxl
LCBmaWxlSGFuZGxlMiwgdGVzdEVycm9yLCBnZXRGaWxlSGFuZGxlRXJyb3IsIG1vdmVGaWxlRXJy
b3I7CisKK2Z1bmN0aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7Cisg
ICAgICAgIHRlc3RGYWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30K
KworYXN5bmMgZnVuY3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgcm9vdEhh
bmRsZSA9IGF3YWl0IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVjdG9yeSgpOworICAgICAgICAv
LyBDcmVhdGUgdHdvIG5ldyBmb2xkZXJzIGZvciB0aGlzIHRlc3QuCisgICAgICAgIGF3YWl0IHJv
b3RIYW5kbGUucmVtb3ZlRW50cnkoImRpcjEiLCB7ICJyZWN1cnNpdmUiIDogdHJ1ZSB9KS50aGVu
KCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICAgICAgYXdhaXQgcm9vdEhhbmRsZS5yZW1vdmVF
bnRyeSgiZGlyMiIsIHsgInJlY3Vyc2l2ZSIgOiB0cnVlIH0pLnRoZW4oKCkgPT4geyB9LCAoKSA9
PiB7IH0pOworICAgICAgICBkaXJIYW5kbGUxID0gYXdhaXQgcm9vdEhhbmRsZS5nZXREaXJlY3Rv
cnlIYW5kbGUoImRpcjEiLCB7ICJjcmVhdGUiIDogdHJ1ZSB9KTsKKyAgICAgICAgZGlySGFuZGxl
MiA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0RGlyZWN0b3J5SGFuZGxlKCJkaXIyIiwgeyAiY3JlYXRl
IiA6IHRydWUgfSk7CisKKyAgICAgICAgZGVidWcoIlRlc3QgYmFzaWMgbW92ZToiKQorICAgICAg
ICBmaWxlSGFuZGxlID0gYXdhaXQgZGlySGFuZGxlMS5nZXRGaWxlSGFuZGxlKCJmaWxlIiwgeyAi
Y3JlYXRlIiA6IHRydWUgfSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhh
bmRsZS5uYW1lIiwgImZpbGUiKTsKKyAgICAgICAgYXdhaXQgZmlsZUhhbmRsZS5tb3ZlKGRpckhh
bmRsZTIsICJuZXdGaWxlIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhh
bmRsZS5uYW1lIiwgIm5ld0ZpbGUiKTsKKworICAgICAgICB0ZXN0RXJyb3IgPSBudWxsOworICAg
ICAgICBhd2FpdCBkaXJIYW5kbGUxLmdldEZpbGVIYW5kbGUoImZpbGUiLCB7ICJjcmVhdGUiIDog
ZmFsc2UgfSkudGhlbigoaGFuZGxlKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3IgPSAiR290
IGZpbGUgaGFuZGxlIGZyb20gZGlySGFuZGxlMSB1bmV4cGVjdGVkbHkiCisgICAgICAgIH0sIChl
cnJvcikgPT4geworICAgICAgICAgICAgZ2V0RmlsZUhhbmRsZUVycm9yID0gZXJyb3I7CisgICAg
ICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoImdldEZpbGVIYW5kbGVFcnJvci50b1N0cmlu
ZygpIiwgIk5vdEZvdW5kRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBmb3VuZCBoZXJlLiIp
OworICAgICAgICB9KTsKKworICAgICAgICBpZiAodGVzdEVycm9yKSB7CisgICAgICAgICAgICBy
ZXR1cm4gZmluaXNoVGVzdCh0ZXN0RXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgZmlsZUhh
bmRsZTIgPSBhd2FpdCBkaXJIYW5kbGUyLmdldEZpbGVIYW5kbGUoIm5ld0ZpbGUiLCB7ICJjcmVh
dGUiIDogZmFsc2UgfSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRs
ZTIubmFtZSIsICJuZXdGaWxlIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmls
ZUhhbmRsZTIua2luZCIsICJmaWxlIik7CisKKyAgICAgICAgZGVidWcoIlRlc3QgbW92ZSB0byBh
IGZpbGUgaGFuZGxlOiIpOworICAgICAgICB0ZXN0RXJyb3IgPSBudWxsOworICAgICAgICBmaWxl
SGFuZGxlMyA9IGF3YWl0IGRpckhhbmRsZTEuZ2V0RmlsZUhhbmRsZSgic2Vjb25kRmlsZSIsIHsg
ImNyZWF0ZSIgOiB0cnVlIH0pOworICAgICAgICBhd2FpdCBmaWxlSGFuZGxlLm1vdmUoZmlsZUhh
bmRsZTMsIGZpbGVIYW5kbGUubmFtZSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJy
b3IgPSAgIk1vdmVkIGZpbGUgdG8gZmlsZUhhbmRsZTMgdW5leHBlY3RlZGx5IgorICAgICAgICB9
LCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibW92ZUZpbGVFcnJvci50b1N0cmluZygpIiwg
IlR5cGVNaXNtYXRjaEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJs
ZSB3aXRoIHRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0
aGUgb2JqZWN0LiIpOworICAgICAgICB9KTsKKworICAgICAgICBpZiAodGVzdEVycm9yKSB7Cisg
ICAgICAgICAgICByZXR1cm4gZmluaXNoVGVzdCh0ZXN0RXJyb3IpOworICAgICAgICB9CisKKyAg
ICAgICAgZGVidWcoIlRlc3QgbW92ZSB0byBhIGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmls
ZToiKTsKKyAgICAgICAgdGVzdEVycm9yID0gbnVsbDsKKyAgICAgICAgYXdhaXQgZmlsZUhhbmRs
ZS5tb3ZlKGRpckhhbmRsZTEsICJzZWNvbmRGaWxlIikudGhlbigoKSA9PiB7CisgICAgICAgICAg
ICB0ZXN0RXJyb3IgPSAgIk1vdmVkIGZpbGUgdG8gZGlySGFuZGxlMSB1bmV4cGVjdGVkbHkiOwor
ICAgICAgICB9LCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJv
cjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibW92ZUZpbGVFcnJvci50b1N0
cmluZygpIiwgIlVua25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25v
d24gdHJhbnNpZW50IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5KS4iKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgaWYgKHRlc3RFcnJvcikgeworICAgICAgICAgICAgcmV0dXJuIGZpbmlzaFRl
c3QodGVzdEVycm9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICh0eXBlb2YgV29ya2VyR2xv
YmFsU2NvcGUgIT09ICd1bmRlZmluZWQnICYmIHNlbGYgaW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxT
Y29wZSkgeworICAgICAgICAgICAgZGVidWcoIlRlc3QgbW92ZSB3aXRoIG9wZW4gYWNjZXNzIGhh
bmRsZToiKTsKKyAgICAgICAgICAgIHRlc3RFcnJvciA9IG51bGw7CisgICAgICAgICAgICBhY2Nl
c3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAg
ICAgICAgICAgIGF3YWl0IGZpbGVIYW5kbGUubW92ZShkaXJIYW5kbGUxLCAiZmlsZSIpLnRoZW4o
KCkgPT4geworICAgICAgICAgICAgICAgIHRlc3RFcnJvciA9ICAiTW92ZWQgZmlsZSBiYWNrIHRv
IGRpckhhbmRsZTEgdW5leHBlY3RlZGx5IjsKKyAgICAgICAgICAgIH0sIChlcnJvcikgPT4gewor
ICAgICAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgICAgICAgICBz
aG91bGRCZUVxdWFsVG9TdHJpbmcoIm1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSIsICJJbnZhbGlk
U3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRlLiIpOworICAgICAg
ICAgICAgfSk7CisKKyAgICAgICAgICAgIGlmICh0ZXN0RXJyb3IpIHsKKyAgICAgICAgICAgICAg
ICByZXR1cm4gZmluaXNoVGVzdCh0ZXN0RXJyb3IpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgfQorCisgICAgICAgIGZpbmlzaFRl
c3QoKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBmaW5pc2hUZXN0KGVycm9yKTsK
KyAgICB9Cit9CisKK3Rlc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441099</attachid>
            <date>2021-10-13 10:37:08 -0700</date>
            <delta_ts>2021-10-13 10:38:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231676-20211013103707.patch</filename>
            <type>text/plain</type>
            <size>33732</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjMzNzYzOGYyMDYxYTM0
MjgyZGZlMmYxYjcxNWM2YWUxYTIxYTg4ZS4uZjdiZDQzMmVhMGFmYWYzNzIzZmI2MDA3ZjU4MTZl
OWNjMWU5ODBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTEzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtSGFuZGxlIG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNjc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDE5OTgyMz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkg
dG8gbW92ZSBhbiBleGlzdGluZyBmaWxlIHRvIGEgbmV3IHBsYWNlIGluIE9yaWdpbiBQcml2YXRl
IEZpbGUgU3lzdGVtLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
aGFuZGxlLW1vdmUtd29ya2VyLmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZmlsZXN5c3Rl
bWFjY2Vzcy9oYW5kbGUtbW92ZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlOjptb3ZlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtSGFuZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Om1vdmUpOgorICAgICAgICAq
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaDoKKwogMjAyMS0xMC0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIGFuaW1hdGlvbnMgbmVlZCB0byBjb21taXQg
bGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4YWE3Y2Q0MGJlY2Zi
MjVmYTNkYjlmMDZjZWVjMmYwNjdjYjdiNDcuLjUxYjRlMmRiZGYzZTcwNzUzNzQ4OTQzMzgyMGZi
ZGMxYTEwMDBhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTAtMTMgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0
ZW1IYW5kbGUgbW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzE2NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MTk5ODIzPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
aXNWYWxpZEZpbGVOYW1lKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6bW92ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjptb3ZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjptb3ZlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFNjcm9sbGluZyB0aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBs
YXllcnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAppbmRl
eCA1ZGE3NjU1NzFlYzliZTZjYWFmNWFiNmUyZTczMzRjOWVjZjgyNjA1Li44NzMwZjBlZGFlNmM2
YzAzMDBhNzc5OGNkZjYxYTg1MDhjMTQ2YWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCkBA
IC01NCw0ICs1NCwxNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIH0pOwogfQogCit2
b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUoRmlsZVN5c3RlbUhhbmRsZSYgZGVzdGluYXRpb25I
YW5kbGUsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3sKKyAgICBpZiAoZGVzdGluYXRpb25IYW5kbGUua2luZCgpICE9IEtpbmQ6OkRp
cmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVN
aXNtYXRjaEVycm9yIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5tb3ZlKG1faWRlbnRpZmllciwg
ZGVzdGluYXRpb25IYW5kbGUuaWRlbnRpZmllcigpLCBuZXdOYW1lLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5ld05hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKQorICAgICAgICAgICAgbV9uYW1lID0gbmV3TmFtZTsKKworICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAppbmRleCBlYzQ0Njg3YjA5MTRjNTgzZTNiODFjNDYzNmZl
ZTU5ODQ3MzcxMGI3Li41NjRkMmMxOTU3NjY5ZmIwZWM4YmRmOTAxZmRhNzI4OWJjNWJkZTMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmgKQEAgLTM0LDcgKzM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAogY2xhc3Mg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwotZW51bSBjbGFzcyBQZXJtaXNzaW9uU3RhdGUg
OiB1aW50OF90OwogCiBjbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8
RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmlsZVN5c3Rl
bUhhbmRsZSk7CkBAIC01MCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAK
ICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CisgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUm
LCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAog
cHJvdGVjdGVkOgogICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCmluZGV4IGM3YTc3OTMxMDFhOTI2MzI2ZDZiMWMy
NDM3YTM2YWRmMWY5MTFlZTguLjI2YWI4NDE5NzEzMjQxYTg5MDdhOGVkNzg2OGIyNjYxMjlkMjE5
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwKQEAgLTM4LDQgKzM4LDUgQEAgZW51bSBGaWxl
U3lzdGVtSGFuZGxlS2luZCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBuYW1l
OwogCiAgICAgUHJvbWlzZTxib29sZWFuPiBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlIG90
aGVyKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gbW92ZShGaWxlU3lzdGVtSGFuZGxlIGRlc3Rp
bmF0aW9uLCBVU1ZTdHJpbmcgbmV3TmFtZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCmluZGV4IDRiYTljNTgwZGExNmRlZDFkZWVjZmFmOGI0NDJmNjg4MTVm
ODRkNDUuLjI3ZmExZTJjOWNlZWUyNTY1Y2YzNzViYTY5NGM0YTVhYzE3ZTk3NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgYm9vbD4+JiYpPjsKIAogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNh
bGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFt
ZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZUhhbmRsZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZvaWRDYWxs
YmFjayYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwCmluZGV4IDE1MTBjZjRlNjg5ZjlmODU3NzZlYzVlOGFiMzhkYTEzMmE2Mzg5
ZDYuLjY3MWFjNGYxMThhOTNhNmQ2NjE4MjJmOGY1ZTdkMmFhMDMwYTFhMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zNjYs
NCArMzY2LDI0IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRH
ZXRIYW5kbGVXaXRoVHlwZShDYWxsYmFja0lkZW50aWZpZXIKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246Om1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5l
d05hbWUsIFZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwor
CisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1h
aW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5ld05hbWUpXSgp
IG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lk
ZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShy
ZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRv
IGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5j
b21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAg
fTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+bW92ZShpZGVudGlmaWVyLCBkZXN0
aW5hdGlvbklkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7Cisg
ICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA0ZGU0Mzk5MmNkYjgzNjg0MGRl
OWExNjk1NjJiOWYzMDE2MWE4MDQ5Li5jYWM5YjQyZmU4ZDVkMGQ1ODYxYmVkYzk2OTUwMjE1NmU3
ZTAzNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24KICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIG1vdmUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGVI
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmNwcAppbmRleCAwOGY2MGNjMTJkZTkxNDk0YzJjMDdjMDNmN2E3MDFmNzIzNjE0
MTJkLi5kNWZhNDAyYzhjNDNkY2MyMTg0NGQ0ODliNTY5OWQzNzQ1NDUxOTQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTcyLDYgKzcyLDExIEBAIGJvb2wgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkCiAgICAgcmV0dXJuIG1fcGF0aCA9PSBwYXRoOwogfQogCitzdGF0aWMgYm9vbCBp
c1ZhbGlkRmlsZU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBuYW1lICE9
ICIuIiAmJiBuYW1lICE9ICIuLiIgJiYgIW5hbWUuY29udGFpbnMocGF0aFNlcGFyYXRvcik7Cit9
CisKIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVxdWVzdENyZWF0ZUhh
bmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFR5cGUgdHlwZSwgU3Ry
aW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKIHsKICAgICBpZiAobV90eXBlICE9
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlOjpEaXJlY3RvcnkpCkBAIC04MSw3ICs4Niw3
IEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKIAogICAgIC8vIGh0dHBzOi8vd2lj
Zy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyN2YWxpZC1maWxlLW5hbWUKLSAgICBpZiAo
bmFtZSA9PSAiLiIgfHwgbmFtZSA9PSAiLi4iIHx8IG5hbWUuY29udGFpbnMocGF0aFNlcGFyYXRv
cikpCisgICAgaWYgKCFpc1ZhbGlkRmlsZU5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSk7CiAKICAgICBh
dXRvIHBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9wYXRoLCBu
YW1lKTsKQEAgLTEwMCw2ICsxMDUsMTIgQEAgRXhwZWN0ZWQ8V2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW0KIAogc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRs
ZTo6cmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5
KQogeworICAgIC8vIERvIG5vdCByZW1vdmUgZmlsZSBpZiB0aGVyZSBpcyBvcGVuIGFjY2VzcyBo
YW5kbGUgYXMgd2ViIHByb2Nlc3MgbWF5IGJlIHBlcmZvcm1pbmcgb2VwcmF0aW9uLgorICAgIGlm
ICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5r
bm93bjsKKyAgICBpZiAobV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKQorICAgICAgICByZXR1cm4g
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6SW52YWxpZFN0YXRlOworCiAgICAgaWYgKG1fdHlwZSAh
PSBUeXBlOjpEaXJlY3RvcnkpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpUeXBlTWlzbWF0Y2g7CiAKQEAgLTI1NCw0ICsyNjUsMzYgQEAgRXhwZWN0ZWQ8c3RkOjpwYWly
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgRmlsZVN5c3RlbVN0
b3JhZ2UKICAgICByZXR1cm4gc3RkOjpwYWlyIHsgcmVzdWx0LnZhbHVlKCksIHJlc3VsdFR5cGUg
PT0gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OlR5cGU6OkRpcmVjdG9yeSB9OwogfQogCitzdGQ6
Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
Ojptb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuZXdOYW1lKQoreworICAgIGlmICghbV9tYW5hZ2VyKQor
ICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIC8v
IERvIG5vdCBtb3ZlIGZpbGUgaWYgdGhlcmUgaXMgb25nb2luZyBvcGVyYXRpb24uCisgICAgaWYg
KG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I6OkludmFsaWRTdGF0ZTsKKworICAgIGlmIChtX21hbmFnZXItPmdldFR5cGUoZGVz
dGluYXRpb25JZGVudGlmaWVyKSAhPSBUeXBlOjpEaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g7CisKKyAgICBhdXRvIHBhdGggPSBt
X21hbmFnZXItPmdldFBhdGgoZGVzdGluYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAocGF0aC5p
c0VtcHR5KCkpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3du
OworCisgICAgaWYgKCFpc1ZhbGlkRmlsZU5hbWUobmV3TmFtZSkpCisgICAgICAgIHJldHVybiBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZTsKKworICAgIGF1dG8gZGVzdGluYXRp
b25QYXRoID0gRmlsZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIG5ld05h
bWUpOworICAgIGlmIChGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRlc3RpbmF0aW9uUGF0aCkpCisg
ICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgaWYg
KCFGaWxlU3lzdGVtOjptb3ZlRmlsZShtX3BhdGgsIGRlc3RpbmF0aW9uUGF0aCkpCisgICAgICAg
IHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9wYXRoID0g
ZGVzdGluYXRpb25QYXRoOworICAgIG1fbmFtZSA9IG5ld05hbWU7CisKKyAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlLmgKaW5kZXggYmJkZmQ0Y2VlMWM3MTI2ODI3YjQwYjExOTZjNDM3N2JjZjE3YzkyNS4u
MjNmYzg4NGIyMDhjZTEzYWEzMTUyOGUzNmUwNzk1N2Q0NGYxNzY5MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdHlwZTsgfQogCiAgICAgYm9vbCBpc1NhbWVFbnRyeShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBtb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5ld05hbWUpOwogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRGaWxlSGFuZGxl
KElQQzo6Q29ubmVjdGlvbjo6VW5pcXVlSUQsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZO
ZWNlc3NhcnkpOwogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25u
ZWN0aW9uOjpVbmlxdWVJRCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7
CiAgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShj
b25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmNwcAppbmRleCA1NTE2ZmJiNjI5NDdmOThkZGRlNTkyMWNkNzNmZWEzMDA0N2Ex
YTg5Li42OWJhYzgyNWJlZmYyNzllNGUwMGQxNzk3M2MxYTQ1YjY5NTZiOTY1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMTgyLDYgKzE4MiwxNyBAQCB2b2lkIE5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbgogICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+aXNTYW1lRW50cnkodGFyZ2V0
SWRlbnRpZmllcikpOwogfQogCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6bW92ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmV3TmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1
bkxvb3A6OmlzTWFpbigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZVJlZ2lzdHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUp
CisgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9y
OjpVbmtub3duKTsKKworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+bW92ZShkZXN0aW5h
dGlvbklkZW50aWZpZXIsIG5ld05hbWUpKTsKK30KKwogdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OmdldEZpbGVIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29s
IGNyZWF0ZUlmTmVjZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKaW5kZXggODg0NTU5YWQ5NzY4Mjk0Nzk1ZWRmNTY4Njc1
NjJhYmM2ZDkxMTI0Ny4uMDRjYzNhZjA5YmFiM2QyZjBlMGY3MDFjMWZmMjkwMGE2MTQxNjM1NiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaApAQCAtNzAsMTAgKzcwLDEyIEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBwZXJzaXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShJ
UEM6OkNvbm5lY3Rpb24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgaXNTYW1lRW50cnkoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lk
IG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwog
ICAgIHZvaWQgZ2V0RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2Fy
eSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdl
dERpcmVjdG9yeUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlbW92ZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5h
bWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0
cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisKICAgICB1c2luZyBBY2Nlc3NI
YW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKICAgICB2b2lkIGNyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRf
dCwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMu
aW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VN
YW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IGVmZTU3NDg2YzFiMmQ3MThkMTMxMjhkZjA1ZTQ1MjJh
MDY1OTllNmUuLjgyZWEzMTBmODE1MWVkZjJjNDNhYmE0NTExNGE4MDFjNGI3NDZmNzIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFn
ZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBA
QAogICAgIEdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4g
KEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAg
UmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgU3RyaW5nIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFs
PFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29s
dmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVj
dGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKKyAgICBNb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9u
SWRlbnRpZmllciwgU3RyaW5nIG5ld05hbWUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogCiAgICAgQ3JlYXRlU3luY0FjY2Vz
c0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAt
PiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikg
LT4gKEV4cGVjdGVkPHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKaW5kZXggOTY4NWZjZmE4ZTljNTZiYTI4NjY5OWJhMTIxYTA3MGM0MzJiMjNhNi4uMWYw
NmI1OWY4Y2M2NjBjYTMzOTA2MDVlZWYxNjIxNTc3N2FjNWE2YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0
L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTE5NSw0ICsxOTUsMTQgQEAg
dm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEhhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmkKICAgICB9KTsKIH0KIAordm9pZCBXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246Om1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGlu
YXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmIGNv
bXBsZXRpb25IYW5kbGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1
cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93
bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6Ok1vdmUoaWRl
bnRpZmllciwgZGVzdGluYXRpb25JZGVudGlmaWVyLCBuZXdOYW1lKSwgW2NvbXBsZXRpb25IYW5k
bGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgewor
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOwor
ICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAxZTZjM2Q3ZDAxOTg3NmMwMGU1OWZkZTky
MDJhOWQwNDc0YWM0ZjE5Li43YjNhMWQxZTllZDI3NTdlZGExZGViNTQ1NTdlODQ2OWZkZmQ5MGI5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03
MiwxMyArNzIsMTQgQEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24oSVBDOjpDb25uZWN0aW9uJik7CiAKICAgICAvLyBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24KLSAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKTsKLSAg
ICB2b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lk
IGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Y29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwotICAgIHZvaWQg
cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJik7Ci0gICAgdm9pZCByZXNvbHZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZl
Q2FsbGJhY2smJik7Ci0gICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVO
YW1lc0NhbGxiYWNrJiYpOwotICAgIHZvaWQgZ2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIGlzU2FtZUVu
dHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIG1vdmUoV2ViQ29yZTo6Rmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIGdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIGdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwor
ICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRIYW5kbGVOYW1l
cyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxs
YmFjayYmKSBmaW5hbDsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpHZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdl
dFNpemUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTg3MTBiZTM3
ZGI1NjI1NjZjYzk2NWI4ZjRjMzBkMDQ2Nzk0OGFiMi4uOGI2OTE0NzllOTRhY2UzN2U1YjQ5NzYx
NGY3NDMyN2YzYTg3ZjQxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEwLTEzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtSGFuZGxlIG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNjc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDE5OTgyMz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS13
b3JrZXIuaHRtbDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hh
bmRsZS1tb3ZlLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vz
cy9yZXNvdXJjZXMvaGFuZGxlLW1vdmUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6
CisgICAgICAgIChhc3luYyB0ZXN0KToKKwogMjAyMS0xMC0xMiAgQWxhbiBCdWp0YXMgIDx6YWxh
bkBhcHBsZS5jb20+CiAKICAgICAgICAgW0xGQ11bSUZDXSBEbyBub3QgY29sbGFwc2Ugd2hpdGVz
cGFjZSB3aXRoIHplcm8td2lkdGggc3BhY2Ugc2VwYXJhdG9yIGluLWJldHdlZW4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1v
dmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmYxMjlmYmE4ODJlMThkMjcwODAyZDk1YWIyMDli
ZjZhMjkxN2VhZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1Ro
aXMgdGVzdCBjaGVja3MgbW92ZSgpIG9mIEZpbGVTeXN0ZW1IYW5kbGUuCisKK09uIHN1Y2Nlc3Ms
IHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJU
RVNUIENPTVBMRVRFIi4KKworCitUZXN0IGJhc2ljIG1vdmU6CitQQVNTIGZpbGVIYW5kbGUubmFt
ZSBpcyAiZmlsZSIKK1BBU1MgZmlsZUhhbmRsZS5uYW1lIGlzICJuZXdGaWxlIgorUEFTUyBnZXRG
aWxlSGFuZGxlRXJyb3IudG9TdHJpbmcoKSBpcyAiTm90Rm91bmRFcnJvcjogVGhlIG9iamVjdCBj
YW4gbm90IGJlIGZvdW5kIGhlcmUuIgorUEFTUyBmaWxlSGFuZGxlMi5uYW1lIGlzICJuZXdGaWxl
IgorUEFTUyBmaWxlSGFuZGxlMi5raW5kIGlzICJmaWxlIgorVGVzdCBtb3ZlIHRvIGEgZmlsZSBo
YW5kbGU6CitQQVNTIG1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAiVHlwZU1pc21hdGNoRXJy
b3I6IFRoZSB0eXBlIG9mIGFuIG9iamVjdCB3YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVj
dGVkIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIgorVGVz
dCBtb3ZlIHRvIGEgZGVzdGluYXRpb24gd2l0aCBleGlzdGluZyBmaWxlOgorUEFTUyBtb3ZlRmls
ZUVycm9yLnRvU3RyaW5nKCkgaXMgIlVua25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQg
Zm9yIGFuIHVua25vd24gdHJhbnNpZW50IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5KS4iCitU
ZXN0IG1vdmUgd2l0aCBhbiBpbnZhbGlkIG5hbWU6CitQQVNTIG1vdmVGaWxlRXJyb3IudG9TdHJp
bmcoKSBpcyAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiCitQQVNTIG1vdmVGaWxlRXJy
b3IudG9TdHJpbmcoKSBpcyAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxl
LW1vdmUtd29ya2VyLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmI4OGI0ODcxZjE1YTczNWE3
OGNmOWMxMjBhZmIyZDliMjk4NDlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3Rv
cmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSwyNSBAQAorW1dvcmtlcl0gVGhpcyB0ZXN0IGNoZWNrcyBtb3ZlKCkgb2YgRmlsZVN5
c3RlbUhhbmRsZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNT
IiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdv
cmtlcjogcmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzCitbV29ya2VyXSBUZXN0IGJhc2ljIG1vdmU6
CitQQVNTIFtXb3JrZXJdIGZpbGVIYW5kbGUubmFtZSBpcyAiZmlsZSIKK1BBU1MgW1dvcmtlcl0g
ZmlsZUhhbmRsZS5uYW1lIGlzICJuZXdGaWxlIgorUEFTUyBbV29ya2VyXSBnZXRGaWxlSGFuZGxl
RXJyb3IudG9TdHJpbmcoKSBpcyAiTm90Rm91bmRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJl
IGZvdW5kIGhlcmUuIgorUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlMi5uYW1lIGlzICJuZXdGaWxl
IgorUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlMi5raW5kIGlzICJmaWxlIgorW1dvcmtlcl0gVGVz
dCBtb3ZlIHRvIGEgZmlsZSBoYW5kbGU6CitQQVNTIFtXb3JrZXJdIG1vdmVGaWxlRXJyb3IudG9T
dHJpbmcoKSBpcyAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBlIG9mIGFuIG9iamVjdCB3YXMg
aW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBhc3Nv
Y2lhdGVkIHRvIHRoZSBvYmplY3QuIgorW1dvcmtlcl0gVGVzdCBtb3ZlIHRvIGEgZGVzdGluYXRp
b24gd2l0aCBleGlzdGluZyBmaWxlOgorUEFTUyBbV29ya2VyXSBtb3ZlRmlsZUVycm9yLnRvU3Ry
aW5nKCkgaXMgIlVua25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25v
d24gdHJhbnNpZW50IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5KS4iCitbV29ya2VyXSBUZXN0
IG1vdmUgd2l0aCBhbiBpbnZhbGlkIG5hbWU6CitQQVNTIFtXb3JrZXJdIG1vdmVGaWxlRXJyb3Iu
dG9TdHJpbmcoKSBpcyAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiCitQQVNTIFtXb3Jr
ZXJdIG1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGlu
dmFsaWQiCitbV29ya2VyXSBUZXN0IG1vdmUgd2l0aCBvcGVuIGFjY2VzcyBoYW5kbGU6CitQQVNT
IFtXb3JrZXJdIG1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAiSW52YWxpZFN0YXRlRXJyb3I6
IFRoZSBvYmplY3QgaXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci5odG1sIGIvTGF5b3V0
VGVzdHMvc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmE0ZjYwNWY0ZmYwNTAxNDk3OTU2NGIzNjFhOWQ3MWEyNWIzM2QxNGUKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxl
LW1vdmUtd29ya2VyLmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorPHNjcmlwdD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvaGFuZGxlLW1v
dmUuanMnKTs8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBmaWxlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
aGFuZGxlLW1vdmUuaHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9o
YW5kbGUtbW92ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjAyNGZiYTA2ODRlMTcxMGU0YWVjZWJhZDk1Yjdk
NTAwNDIyZTBiZGEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIGpzVGVzdElz
QXN5bmMgPSB0cnVlOworCitpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgZmluaXNoVGVz
dCgid2luZG93LnRlc3RSdW5uZXIgaXMgbm90IGF2YWlsYWJsZSIpOworfQorPC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0icmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vz
cy9yZXNvdXJjZXMvaGFuZGxlLW1vdmUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0
ZW1hY2Nlc3MvcmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MWQ5MWJjNTM5
MmZhMDA1ODdlZWVkNWExMzBmYWZjODU1MmY2MWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzCkBA
IC0wLDAgKzEsMTI0IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2Ny
aXB0cygnLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRpb24o
IlRoaXMgdGVzdCBjaGVja3MgbW92ZSgpIG9mIEZpbGVTeXN0ZW1IYW5kbGUuIik7CisKK3ZhciBy
b290SGFuZGxlLCBkaXJIYW5kbGUxLCBkaXJIYW5kbGUyLCBmaWxlSGFuZGxlLCBmaWxlSGFuZGxl
MiwgdGVzdEVycm9yLCBnZXRGaWxlSGFuZGxlRXJyb3IsIG1vdmVGaWxlRXJyb3I7CisKK2Z1bmN0
aW9uIGZpbmlzaFRlc3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RG
YWlsZWQoZXJyb3IpOworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworYXN5bmMgZnVu
Y3Rpb24gdGVzdCgpIHsKKyAgICB0cnkgeworICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0
IG5hdmlnYXRvci5zdG9yYWdlLmdldERpcmVjdG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgdHdv
IG5ldyBmb2xkZXJzIGZvciB0aGlzIHRlc3QuCisgICAgICAgIGF3YWl0IHJvb3RIYW5kbGUucmVt
b3ZlRW50cnkoImRpcjEiLCB7ICJyZWN1cnNpdmUiIDogdHJ1ZSB9KS50aGVuKCgpID0+IHsgfSwg
KCkgPT4geyB9KTsKKyAgICAgICAgYXdhaXQgcm9vdEhhbmRsZS5yZW1vdmVFbnRyeSgiZGlyMiIs
IHsgInJlY3Vyc2l2ZSIgOiB0cnVlIH0pLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAg
ICAgICBkaXJIYW5kbGUxID0gYXdhaXQgcm9vdEhhbmRsZS5nZXREaXJlY3RvcnlIYW5kbGUoImRp
cjEiLCB7ICJjcmVhdGUiIDogdHJ1ZSB9KTsKKyAgICAgICAgZGlySGFuZGxlMiA9IGF3YWl0IHJv
b3RIYW5kbGUuZ2V0RGlyZWN0b3J5SGFuZGxlKCJkaXIyIiwgeyAiY3JlYXRlIiA6IHRydWUgfSk7
CisKKyAgICAgICAgZGVidWcoIlRlc3QgYmFzaWMgbW92ZToiKQorICAgICAgICBmaWxlSGFuZGxl
ID0gYXdhaXQgZGlySGFuZGxlMS5nZXRGaWxlSGFuZGxlKCJmaWxlIiwgeyAiY3JlYXRlIiA6IHRy
dWUgfSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwg
ImZpbGUiKTsKKyAgICAgICAgYXdhaXQgZmlsZUhhbmRsZS5tb3ZlKGRpckhhbmRsZTIsICJuZXdG
aWxlIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwg
Im5ld0ZpbGUiKTsKKworICAgICAgICB0ZXN0RXJyb3IgPSBudWxsOworICAgICAgICBhd2FpdCBk
aXJIYW5kbGUxLmdldEZpbGVIYW5kbGUoImZpbGUiLCB7ICJjcmVhdGUiIDogZmFsc2UgfSkudGhl
bigoaGFuZGxlKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3IgPSAiR290IGZpbGUgaGFuZGxl
IGZyb20gZGlySGFuZGxlMSB1bmV4cGVjdGVkbHkiCisgICAgICAgIH0sIChlcnJvcikgPT4gewor
ICAgICAgICAgICAgZ2V0RmlsZUhhbmRsZUVycm9yID0gZXJyb3I7CisgICAgICAgICAgICBzaG91
bGRCZUVxdWFsVG9TdHJpbmcoImdldEZpbGVIYW5kbGVFcnJvci50b1N0cmluZygpIiwgIk5vdEZv
dW5kRXJyb3I6IFRoZSBvYmplY3QgY2FuIG5vdCBiZSBmb3VuZCBoZXJlLiIpOworICAgICAgICB9
KTsKKworICAgICAgICBpZiAodGVzdEVycm9yKSB7CisgICAgICAgICAgICByZXR1cm4gZmluaXNo
VGVzdCh0ZXN0RXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgZmlsZUhhbmRsZTIgPSBhd2Fp
dCBkaXJIYW5kbGUyLmdldEZpbGVIYW5kbGUoIm5ld0ZpbGUiLCB7ICJjcmVhdGUiIDogZmFsc2Ug
fSk7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZTIubmFtZSIsICJu
ZXdGaWxlIik7CisgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZTIua2lu
ZCIsICJmaWxlIik7CisKKyAgICAgICAgZGVidWcoIlRlc3QgbW92ZSB0byBhIGZpbGUgaGFuZGxl
OiIpOworICAgICAgICB0ZXN0RXJyb3IgPSBudWxsOworICAgICAgICBmaWxlSGFuZGxlMyA9IGF3
YWl0IGRpckhhbmRsZTEuZ2V0RmlsZUhhbmRsZSgic2Vjb25kRmlsZSIsIHsgImNyZWF0ZSIgOiB0
cnVlIH0pOworICAgICAgICBhd2FpdCBmaWxlSGFuZGxlLm1vdmUoZmlsZUhhbmRsZTMsIGZpbGVI
YW5kbGUubmFtZSkudGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3IgPSAgIk1vdmVk
IGZpbGUgdG8gZmlsZUhhbmRsZTMgdW5leHBlY3RlZGx5IgorICAgICAgICB9LCAoZXJyb3IpID0+
IHsKKyAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgICAgIHNob3Vs
ZEJlRXF1YWxUb1N0cmluZygibW92ZUZpbGVFcnJvci50b1N0cmluZygpIiwgIlR5cGVNaXNtYXRj
aEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBl
eHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIp
OworICAgICAgICB9KTsKKworICAgICAgICBpZiAodGVzdEVycm9yKSB7CisgICAgICAgICAgICBy
ZXR1cm4gZmluaXNoVGVzdCh0ZXN0RXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgZGVidWco
IlRlc3QgbW92ZSB0byBhIGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmlsZToiKTsKKyAgICAg
ICAgdGVzdEVycm9yID0gbnVsbDsKKyAgICAgICAgYXdhaXQgZmlsZUhhbmRsZS5tb3ZlKGRpckhh
bmRsZTEsICJzZWNvbmRGaWxlIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3Ig
PSAgIk1vdmVkIGZpbGUgdG8gZGlySGFuZGxlMSB1bmV4cGVjdGVkbHkiOworICAgICAgICB9LCAo
ZXJyb3IpID0+IHsKKyAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibW92ZUZpbGVFcnJvci50b1N0cmluZygpIiwgIlVu
a25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25vd24gdHJhbnNpZW50
IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5KS4iKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAg
aWYgKHRlc3RFcnJvcikgeworICAgICAgICAgICAgcmV0dXJuIGZpbmlzaFRlc3QodGVzdEVycm9y
KTsKKyAgICAgICAgfQorCisgICAgICAgIGRlYnVnKCJUZXN0IG1vdmUgd2l0aCBhbiBpbnZhbGlk
IG5hbWU6Iik7CisgICAgICAgIHRlc3RFcnJvciA9IG51bGw7CisgICAgICAgIGF3YWl0IGZpbGVI
YW5kbGUubW92ZShkaXJIYW5kbGUxLCAiLi4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHRl
c3RFcnJvciA9ICAiTW92ZWQgZmlsZSB0byBkaXJIYW5kbGUxIHdpdGggaW52YWxpZCBuYW1lIHVu
ZXhwZWN0ZWRseSI7CisgICAgICAgIH0sIChlcnJvcikgPT4geworICAgICAgICAgICAgbW92ZUZp
bGVFcnJvciA9IGVycm9yOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtb3Zl
RmlsZUVycm9yLnRvU3RyaW5nKCkiLCAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiKTsK
KyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKHRlc3RFcnJvcikgeworICAgICAgICAgICAgcmV0
dXJuIGZpbmlzaFRlc3QodGVzdEVycm9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGF3YWl0IGZp
bGVIYW5kbGUubW92ZShkaXJIYW5kbGUxLCAicm9vdC9maWxlIikudGhlbigoKSA9PiB7CisgICAg
ICAgICAgICB0ZXN0RXJyb3IgPSAgIk1vdmVkIGZpbGUgdG8gZGlySGFuZGxlMSB3aXRoIGludmFs
aWQgbmFtZSB1bmV4cGVjdGVkbHkiOworICAgICAgICB9LCAoZXJyb3IpID0+IHsKKyAgICAgICAg
ICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibW92ZUZpbGVFcnJvci50b1N0cmluZygpIiwgIlVua25vd25FcnJvcjogTmFtZSBpcyBp
bnZhbGlkIik7CisgICAgICAgIH0pOworCisgICAgICAgIGlmICh0ZXN0RXJyb3IpIHsKKyAgICAg
ICAgICAgIHJldHVybiBmaW5pc2hUZXN0KHRlc3RFcnJvcik7CisgICAgICAgIH0KKworCisgICAg
ICAgIGlmICh0eXBlb2YgV29ya2VyR2xvYmFsU2NvcGUgIT09ICd1bmRlZmluZWQnICYmIHNlbGYg
aW5zdGFuY2VvZiBXb3JrZXJHbG9iYWxTY29wZSkgeworICAgICAgICAgICAgZGVidWcoIlRlc3Qg
bW92ZSB3aXRoIG9wZW4gYWNjZXNzIGhhbmRsZToiKTsKKyAgICAgICAgICAgIHRlc3RFcnJvciA9
IG51bGw7CisgICAgICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0
ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKKyAgICAgICAgICAgIGF3YWl0IGZpbGVIYW5kbGUubW92ZShk
aXJIYW5kbGUxLCAiZmlsZSIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIHRlc3RFcnJv
ciA9ICAiTW92ZWQgZmlsZSBiYWNrIHRvIGRpckhhbmRsZTEgdW5leHBlY3RlZGx5IjsKKyAgICAg
ICAgICAgIH0sIChlcnJvcikgPT4geworICAgICAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBl
cnJvcjsKKyAgICAgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1vdmVGaWxlRXJy
b3IudG9TdHJpbmcoKSIsICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBp
bnZhbGlkIHN0YXRlLiIpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGlmICh0ZXN0
RXJyb3IpIHsKKyAgICAgICAgICAgICAgICByZXR1cm4gZmluaXNoVGVzdCh0ZXN0RXJyb3IpOwor
ICAgICAgICAgICAgfQorCisgICAgICAgICAgICBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAg
ICAgfQorCisgICAgICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAg
ICAgICBmaW5pc2hUZXN0KGVycm9yKTsKKyAgICB9Cit9CisKK3Rlc3QoKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>441100</attachid>
            <date>2021-10-13 10:38:23 -0700</date>
            <delta_ts>2021-10-13 13:46:57 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-231676-20211013103822.patch</filename>
            <type>text/plain</type>
            <size>33150</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg0MDY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjMzNzYzOGYyMDYxYTM0
MjgyZGZlMmYxYjcxNWM2YWUxYTIxYTg4ZS4uZjdiZDQzMmVhMGFmYWYzNzIzZmI2MDA3ZjU4MTZl
OWNjMWU5ODBkMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIxLTEwLTEzICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lz
dGVtSGFuZGxlIG1vdmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjMxNjc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDE5OTgyMz4KKworICAg
ICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFByb3ZpZGUgYSB3YXkg
dG8gbW92ZSBhbiBleGlzdGluZyBmaWxlIHRvIGEgbmV3IHBsYWNlIGluIE9yaWdpbiBQcml2YXRl
IEZpbGUgU3lzdGVtLgorCisgICAgICAgIFRlc3RzOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
aGFuZGxlLW1vdmUtd29ya2VyLmh0bWwKKyAgICAgICAgICAgICAgIHN0b3JhZ2UvZmlsZXN5c3Rl
bWFjY2Vzcy9oYW5kbGUtbW92ZS5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlOjptb3ZlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtSGFuZGxlLmlkbDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Om1vdmUpOgorICAgICAgICAq
IE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaDoKKwogMjAyMS0xMC0xMiAgU2ltb24gRnJhc2VyICA8c2ltb24uZnJhc2VyQGFwcGxlLmNv
bT4KIAogICAgICAgICBTY3JvbGxpbmcgdGhyZWFkIGFuaW1hdGlvbnMgbmVlZCB0byBjb21taXQg
bGF5ZXJzIG9uIHRoZSBzY3JvbGxpbmcgdGhyZWFkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDg4YWE3Y2Q0MGJlY2Zi
MjVmYTNkYjlmMDZjZWVjMmYwNjdjYjdiNDcuLjUxYjRlMmRiZGYzZTcwNzUzNzQ4OTQzMzgyMGZi
ZGMxYTEwMDBhYjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjEtMTAtMTMgIFNpaHVp
IExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAgICAgICAgSW1wbGVtZW50IEZpbGVTeXN0
ZW1IYW5kbGUgbW92ZSgpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMzE2NzYKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg0MTk5ODIzPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
aXNWYWxpZEZpbGVOYW1lKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGU6OnJlcXVlc3RDcmVhdGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6cmVtb3ZlRW50cnkpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6bW92ZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyOjptb3ZlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjptb3ZlKToKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oOgorCiAyMDIxLTEwLTEyICBTaW1vbiBGcmFzZXIgIDxzaW1vbi5mcmFzZXJAYXBwbGUuY29t
PgogCiAgICAgICAgIFNjcm9sbGluZyB0aHJlYWQgYW5pbWF0aW9ucyBuZWVkIHRvIGNvbW1pdCBs
YXllcnMgb24gdGhlIHNjcm9sbGluZyB0aHJlYWQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAppbmRl
eCA1ZGE3NjU1NzFlYzliZTZjYWFmNWFiNmUyZTczMzRjOWVjZjgyNjA1Li44NzMwZjBlZGFlNmM2
YzAzMDBhNzc5OGNkZjYxYTg1MDhjMTQ2YWZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCkBA
IC01NCw0ICs1NCwxNyBAQCB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmlzU2FtZUVudHJ5KEZpbGVT
eXN0ZW1IYW5kbGUmIGhhbmRsZSwgRE9NUHJvbWlzZURlZmVycmVkPAogICAgIH0pOwogfQogCit2
b2lkIEZpbGVTeXN0ZW1IYW5kbGU6Om1vdmUoRmlsZVN5c3RlbUhhbmRsZSYgZGVzdGluYXRpb25I
YW5kbGUsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYg
cHJvbWlzZSkKK3sKKyAgICBpZiAoZGVzdGluYXRpb25IYW5kbGUua2luZCgpICE9IEtpbmQ6OkRp
cmVjdG9yeSkKKyAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IFR5cGVN
aXNtYXRjaEVycm9yIH0pOworCisgICAgbV9jb25uZWN0aW9uLT5tb3ZlKG1faWRlbnRpZmllciwg
ZGVzdGluYXRpb25IYW5kbGUuaWRlbnRpZmllcigpLCBuZXdOYW1lLCBbdGhpcywgcHJvdGVjdGVk
VGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5ld05hbWUsIHByb21pc2UgPSBXVEZNb3ZlKHByb21pc2Up
XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0Lmhhc0V4Y2VwdGlv
bigpKQorICAgICAgICAgICAgbV9uYW1lID0gbmV3TmFtZTsKKworICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAppbmRleCBlYzQ0Njg3YjA5MTRjNTgzZTNiODFjNDYzNmZl
ZTU5ODQ3MzcxMGI3Li41NjRkMmMxOTU3NjY5ZmIwZWM4YmRmOTAxZmRhNzI4OWJjNWJkZTMxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmgKQEAgLTM0LDcgKzM0LDYgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsKIAogY2xhc3Mg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwotZW51bSBjbGFzcyBQZXJtaXNzaW9uU3RhdGUg
OiB1aW50OF90OwogCiBjbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIFJlZkNvdW50ZWQ8
RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmlsZVN5c3Rl
bUhhbmRsZSk7CkBAIC01MCw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAK
ICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CisgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUm
LCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAog
cHJvdGVjdGVkOgogICAgIEZpbGVTeXN0ZW1IYW5kbGUoS2luZCwgU3RyaW5nJiYgbmFtZSwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+
JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaWRsCmluZGV4IGM3YTc3OTMxMDFhOTI2MzI2ZDZiMWMy
NDM3YTM2YWRmMWY5MTFlZTguLjI2YWI4NDE5NzEzMjQxYTg5MDdhOGVkNzg2OGIyNjYxMjlkMjE5
NzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtSGFuZGxlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5pZGwKQEAgLTM4LDQgKzM4LDUgQEAgZW51bSBGaWxl
U3lzdGVtSGFuZGxlS2luZCB7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBuYW1l
OwogCiAgICAgUHJvbWlzZTxib29sZWFuPiBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlIG90
aGVyKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gbW92ZShGaWxlU3lzdGVtSGFuZGxlIGRlc3Rp
bmF0aW9uLCBVU1ZTdHJpbmcgbmV3TmFtZSk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCmluZGV4IDRiYTljNTgwZGExNmRlZDFkZWVjZmFmOGI0NDJmNjg4MTVm
ODRkNDUuLjI3ZmExZTJjOWNlZWUyNTY1Y2YzNzViYTY5NGM0YTVhYzE3ZTk3NzQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTUxLDYgKzUxLDcgQEAgcHVi
bGljOgogICAgIHVzaW5nIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgYm9vbD4+JiYpPjsKIAogICAgIHZpcnR1YWwgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFNhbWVFbnRyeUNh
bGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFt
ZSwgVm9pZENhbGxiYWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZUhhbmRsZShG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0
ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlbW92ZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFZvaWRDYWxs
YmFjayYmKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uY3BwCmluZGV4IDE1MTBjZjRlNjg5ZjlmODU3NzZlYzVlOGFiMzhkYTEzMmE2Mzg5
ZDYuLjY3MWFjNGYxMThhOTNhNmQ2NjE4MjJmOGY1ZTdkMmFhMDMwYTFhMjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zNjYs
NCArMzY2LDI0IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRH
ZXRIYW5kbGVXaXRoVHlwZShDYWxsYmFja0lkZW50aWZpZXIKICAgICAgICAgY2FsbGJhY2soV1RG
TW92ZShyZXN1bHQpKTsKIH0KIAordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246Om1vdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5l
d05hbWUsIFZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIGlmICghbV9zY29wZSkKKyAg
ICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwor
CisgICAgYXV0byBjYWxsYmFja0lkZW50aWZpZXIgPSBDYWxsYmFja0lkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFj
a0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1h
aW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwg
ZGVzdGluYXRpb25JZGVudGlmaWVyLCBuYW1lID0gY3Jvc3NUaHJlYWRDb3B5KG5ld05hbWUpXSgp
IG11dGFibGUgeworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lk
ZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1
bHQpIG11dGFibGUgeworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRh
c2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShy
ZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGlmIChhdXRv
IGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQorICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5j
b21wbGV0ZVZvaWRDYWxsYmFjayhjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7
CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAg
fTsKKworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+bW92ZShpZGVudGlmaWVyLCBkZXN0
aW5hdGlvbklkZW50aWZpZXIsIG5hbWUsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7Cisg
ICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA0ZGU0Mzk5MmNkYjgzNjg0MGRl
OWExNjk1NjJiOWYzMDE2MWE4MDQ5Li5jYWM5YjQyZmU4ZDVkMGQ1ODYxYmVkYzk2OTUwMjE1NmU3
ZTAzNTU2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCkBAIC01OCw2ICs1OCw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24KICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIG1vdmUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGVI
YW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9v
bCBjcmVhdGVJZk5lY2Vzc2FyeSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmNwcAppbmRleCAwOGY2MGNjMTJkZTkxNDk0YzJjMDdjMDNmN2E3MDFmNzIzNjE0
MTJkLi4yNDJjMGEyYTIwYzQ1NzRlZWI3MWVhMzEzMTJmMWJhYTkzOTg1OWFjIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTcyLDYgKzcyLDExIEBAIGJvb2wgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OmlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkCiAgICAgcmV0dXJuIG1fcGF0aCA9PSBwYXRoOwogfQogCitzdGF0aWMgYm9vbCBp
c1ZhbGlkRmlsZU5hbWUoY29uc3QgU3RyaW5nJiBuYW1lKQoreworICAgIHJldHVybiBuYW1lICE9
ICIuIiAmJiBuYW1lICE9ICIuLiIgJiYgIW5hbWUuY29udGFpbnMocGF0aFNlcGFyYXRvcik7Cit9
CisKIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6cmVxdWVzdENyZWF0ZUhh
bmRsZShJUEM6OkNvbm5lY3Rpb246OlVuaXF1ZUlEIGNvbm5lY3Rpb24sIFR5cGUgdHlwZSwgU3Ry
aW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkKIHsKICAgICBpZiAobV90eXBlICE9
IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpUeXBlOjpEaXJlY3RvcnkpCkBAIC04MSw3ICs4Niw3
IEBAIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsKIAogICAgIC8vIGh0dHBzOi8vd2lj
Zy5naXRodWIuaW8vZmlsZS1zeXN0ZW0tYWNjZXNzLyN2YWxpZC1maWxlLW5hbWUKLSAgICBpZiAo
bmFtZSA9PSAiLiIgfHwgbmFtZSA9PSAiLi4iIHx8IG5hbWUuY29udGFpbnMocGF0aFNlcGFyYXRv
cikpCisgICAgaWYgKCFpc1ZhbGlkRmlsZU5hbWUobmFtZSkpCiAgICAgICAgIHJldHVybiBtYWtl
VW5leHBlY3RlZChGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpJbnZhbGlkTmFtZSk7CiAKICAgICBh
dXRvIHBhdGggPSBGaWxlU3lzdGVtOjpwYXRoQnlBcHBlbmRpbmdDb21wb25lbnQobV9wYXRoLCBu
YW1lKTsKQEAgLTI1NCw0ICsyNTksMzYgQEAgRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgRmlsZVN5c3RlbVN0b3JhZ2UKICAgICBy
ZXR1cm4gc3RkOjpwYWlyIHsgcmVzdWx0LnZhbHVlKCksIHJlc3VsdFR5cGUgPT0gRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OlR5cGU6OkRpcmVjdG9yeSB9OwogfQogCitzdGQ6Om9wdGlvbmFsPEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjptb3ZlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuZXdOYW1lKQoreworICAgIGlmICghbV9tYW5hZ2VyKQorICAgICAgICByZXR1
cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKKworICAgIC8vIERvIG5vdCBtb3Zl
IGZpbGUgaWYgdGhlcmUgaXMgb25nb2luZyBvcGVyYXRpb24uCisgICAgaWYgKG1fYWN0aXZlU3lu
Y0FjY2Vzc0hhbmRsZSkKKyAgICAgICAgcmV0dXJuIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6Oklu
dmFsaWRTdGF0ZTsKKworICAgIGlmIChtX21hbmFnZXItPmdldFR5cGUoZGVzdGluYXRpb25JZGVu
dGlmaWVyKSAhPSBUeXBlOjpEaXJlY3RvcnkpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpUeXBlTWlzbWF0Y2g7CisKKyAgICBhdXRvIHBhdGggPSBtX21hbmFnZXItPmdl
dFBhdGgoZGVzdGluYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAocGF0aC5pc0VtcHR5KCkpCisg
ICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgaWYg
KCFpc1ZhbGlkRmlsZU5hbWUobmV3TmFtZSkpCisgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3Rv
cmFnZUVycm9yOjpJbnZhbGlkTmFtZTsKKworICAgIGF1dG8gZGVzdGluYXRpb25QYXRoID0gRmls
ZVN5c3RlbTo6cGF0aEJ5QXBwZW5kaW5nQ29tcG9uZW50KHBhdGgsIG5ld05hbWUpOworICAgIGlm
IChGaWxlU3lzdGVtOjpmaWxlRXhpc3RzKGRlc3RpbmF0aW9uUGF0aCkpCisgICAgICAgIHJldHVy
biBGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgaWYgKCFGaWxlU3lzdGVt
Ojptb3ZlRmlsZShtX3BhdGgsIGRlc3RpbmF0aW9uUGF0aCkpCisgICAgICAgIHJldHVybiBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duOworCisgICAgbV9wYXRoID0gZGVzdGluYXRpb25Q
YXRoOworICAgIG1fbmFtZSA9IG5ld05hbWU7CisKKyAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
fQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5k
ZXggYmJkZmQ0Y2VlMWM3MTI2ODI3YjQwYjExOTZjNDM3N2JjZjE3YzkyNS4uMjNmYzg4NGIyMDhj
ZTEzYWEzMTUyOGUzNmUwNzk1N2Q0NGYxNzY5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKKysrIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
LmgKQEAgLTUwLDYgKzUwLDcgQEAgcHVibGljOgogICAgIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIG1fdHlwZTsgfQogCiAgICAgYm9vbCBpc1NhbWVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllcik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiBtb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5ld05hbWUpOwogICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBnZXRGaWxlSGFuZGxlKElQQzo6Q29ubmVj
dGlvbjo6VW5pcXVlSUQsIFN0cmluZyYmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnkpOwog
ICAgIEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPiBnZXREaXJlY3RvcnlIYW5kbGUoSVBDOjpDb25uZWN0aW9uOjpVbmlx
dWVJRCwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSk7CiAgICAgc3RkOjpv
cHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcm
IG5hbWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNw
cAppbmRleCA1NTE2ZmJiNjI5NDdmOThkZGRlNTkyMWNkNzNmZWEzMDA0N2ExYTg5Li42OWJhYzgy
NWJlZmYyNzllNGUwMGQxNzk3M2MxYTQ1YjY5NTZiOTY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmNwcApAQCAtMTgyLDYgKzE4MiwxNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
aXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbgogICAg
IGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+aXNTYW1lRW50cnkodGFyZ2V0SWRlbnRpZmllcikp
OwogfQogCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6bW92ZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmV3TmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3sKKyAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKKworICAgIGF1dG8gaGFuZGxlID0gbV9maWxlU3lzdGVtU3RvcmFnZUhhbmRsZVJlZ2lz
dHJ5LT5nZXRIYW5kbGUoaWRlbnRpZmllcik7CisgICAgaWYgKCFoYW5kbGUpCisgICAgICAgIHJl
dHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpVbmtub3duKTsK
KworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+bW92ZShkZXN0aW5hdGlvbklkZW50aWZp
ZXIsIG5ld05hbWUpKTsKK30KKwogdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmdldEZpbGVI
YW5kbGUoSVBDOjpDb25uZWN0aW9uJiBjb25uZWN0aW9uLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVj
ZXNzYXJ5LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLmgKaW5kZXggODg0NTU5YWQ5NzY4Mjk0Nzk1ZWRmNTY4Njc1NjJhYmM2ZDkxMTI0
Ny4uMDRjYzNhZjA5YmFiM2QyZjBlMGY3MDFjMWZmMjkwMGE2MTQxNjM1NiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuaApAQCAtNzAsMTAgKzcwLDEyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBwZXJz
aXN0KGNvbnN0IFdlYkNvcmU6OkNsaWVudE9yaWdpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
Ym9vbCk+JiYpOwogICAgIHZvaWQgZmlsZVN5c3RlbUdldERpcmVjdG9yeShJUEM6OkNvbm5lY3Rp
b24mLCBjb25zdCBXZWJDb3JlOjpDbGllbnRPcmlnaW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgaXNTYW1lRW50cnkoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKKyAgICB2b2lkIG1vdmUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0
RmlsZUhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhh
bmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgU3RyaW5nJiYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeHBlY3RlZDxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIHJlbW92ZUVudHJ5KFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIGJvb2wgZGVs
ZXRlUmVjdXJzaXZlbHksIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVT
eXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisKICAgICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0g
c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
SVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYm
KTsKICAgICB2b2lkIGdldFNpemVGb3JBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDx1aW50NjRfdCwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3Nh
Z2VzLmluCmluZGV4IGVmZTU3NDg2YzFiMmQ3MThkMTMxMjhkZjA1ZTQ1MjJhMDY1OTllNmUuLjgy
ZWEzMTBmODE1MWVkZjJjNDNhYmE0NTExNGE4MDFjNGI3NDZmNzIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgpAQCAtMzIsNiArMzIsNyBAQAogICAgIEdldERp
cmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBTdHJpbmcgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSkgLT4gKEV4cGVjdGVkPFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9y
YWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0aW9uCiAgICAgUmVtb3ZlRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5h
bWUsIGJvb2wgZGVsZXRlUmVjdXJzaXZlbHkpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIFJlc29sdmUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgdGFyZ2V0SWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxT
dHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAg
ICBNb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwg
U3RyaW5nIG5ld05hbWUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gcmVzdWx0KSBBc3luYwogCiAgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8
c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
SVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBy
ZXN1bHQpIEFzeW5jCiAgICAgR2V0U2l6ZUZvckFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKEV4cGVjdGVk
PHVpbnQ2NF90LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXgg
OTY4NWZjZmE4ZTljNTZiYTI4NjY5OWJhMTIxYTA3MGM0MzJiMjNhNi4uMWYwNmI1OWY4Y2M2NjBj
YTMzOTA2MDVlZWYxNjIxNTc3N2FjNWE2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTE5NSw0ICsxOTUsMTQgQEAgdm9pZCBXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmkKICAgICB9KTsKIH0KIAordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246Om1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5k
bGVyKQoreworICAgIGlmICghbV9jb25uZWN0aW9uKQorICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29u
bmVjdGlvbiBpcyBsb3N0IiB9KTsKKworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6Ok1vdmUoaWRlbnRpZmllciwgZGVz
dGluYXRpb25JZGVudGlmaWVyLCBuZXdOYW1lKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb25PcihlcnJvcikpOworICAgIH0pOworfQor
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb24uaAppbmRleCAxZTZjM2Q3ZDAxOTg3NmMwMGU1OWZkZTkyMDJhOWQwNDc0YWM0
ZjE5Li43YjNhMWQxZTllZDI3NTdlZGExZGViNTQ1NTdlODQ2OWZkZmQ5MGI5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC03MiwxMyArNzIsMTQg
QEAgcHJpdmF0ZToKICAgICBleHBsaWNpdCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24o
SVBDOjpDb25uZWN0aW9uJik7CiAKICAgICAvLyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24K
LSAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlDYWxsYmFjayYmKTsKLSAgICB2b2lkIGdldEZp
bGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKTsKLSAgICB2b2lkIGdldERpcmVjdG9y
eUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5n
JiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpOwotICAgIHZvaWQgcmVtb3ZlRW50cnko
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
Ym9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpWb2lkQ2FsbGJhY2smJik7Ci0gICAgdm9pZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJik7
Ci0gICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxiYWNr
JiYpOwotICAgIHZvaWQgZ2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
SGFuZGxlV2l0aFR5cGVDYWxsYmFjayYmKTsKKyAgICB2b2lkIGlzU2FtZUVudHJ5KFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpTYW1lRW50cnlD
YWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIG1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5ld05hbWUsIFZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEZpbGVI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYg
bmFtZSwgYm9vbCBjcmVhdGVJZk5lY2Vzc2FyeSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldERpcmVj
dG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBib29sIGNyZWF0ZUlmTmVjZXNzYXJ5LCBXZWJDb3JlOjpGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgcmVt
b3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCByZXNvbHZlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNv
bHZlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0SGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjayYmKSBmaW5h
bDsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldFNpemUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpJbnRlZ2VyQ2FsbGJhY2smJikgZmluYWw7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggOTg3MTBiZTM3ZGI1NjI1NjZjYzk2
NWI4ZjRjMzBkMDQ2Nzk0OGFiMi4uOGI2OTE0NzllOTRhY2UzN2U1YjQ5NzYxNGY3NDMyN2YzYTg3
ZjQxNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTEwLTEzICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBGaWxlU3lzdGVtSGFuZGxlIG1v
dmUoKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMx
Njc2CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NDE5OTgyMz4KKworICAgICAgICBSZXZpZXdl
ZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNz
L2hhbmRsZS1tb3ZlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS13b3JrZXIuaHRtbDog
QWRkZWQuCisgICAgICAgICogc3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMv
aGFuZGxlLW1vdmUuanM6IEFkZGVkLgorICAgICAgICAoZmluaXNoVGVzdCk6CisgICAgICAgIChh
c3luYyB0ZXN0KToKKwogMjAyMS0xMC0xMiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+
CiAKICAgICAgICAgW0xGQ11bSUZDXSBEbyBub3QgY29sbGFwc2Ugd2hpdGVzcGFjZSB3aXRoIHpl
cm8td2lkdGggc3BhY2Ugc2VwYXJhdG9yIGluLWJldHdlZW4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmYxMjlmYmE4ODJlMThkMjcwODAyZDk1YWIyMDliZjZhMjkxN2VhZDUK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
aGFuZGxlLW1vdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMjIgQEAKK1RoaXMgdGVzdCBjaGVj
a3MgbW92ZSgpIG9mIEZpbGVTeXN0ZW1IYW5kbGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworCitUZXN0IGJhc2ljIG1vdmU6CitQQVNTIGZpbGVIYW5kbGUubmFtZSBpcyAiZmlsZSIK
K1BBU1MgZmlsZUhhbmRsZS5uYW1lIGlzICJuZXdGaWxlIgorUEFTUyBnZXRGaWxlSGFuZGxlRXJy
b3IudG9TdHJpbmcoKSBpcyAiTm90Rm91bmRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJlIGZv
dW5kIGhlcmUuIgorUEFTUyBmaWxlSGFuZGxlMi5uYW1lIGlzICJuZXdGaWxlIgorUEFTUyBmaWxl
SGFuZGxlMi5raW5kIGlzICJmaWxlIgorVGVzdCBtb3ZlIHRvIGEgZmlsZSBoYW5kbGU6CitQQVNT
IG1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBl
IG9mIGFuIG9iamVjdCB3YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2Yg
dGhlIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIgorVGVzdCBtb3ZlIHRvIGEg
ZGVzdGluYXRpb24gd2l0aCBleGlzdGluZyBmaWxlOgorUEFTUyBtb3ZlRmlsZUVycm9yLnRvU3Ry
aW5nKCkgaXMgIlVua25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25v
d24gdHJhbnNpZW50IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5KS4iCitUZXN0IG1vdmUgd2l0
aCBhbiBpbnZhbGlkIG5hbWU6CitQQVNTIG1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAiVW5r
bm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiCitQQVNTIG1vdmVGaWxlRXJyb3IudG9TdHJpbmco
KSBpcyAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiCitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
c3RvcmFnZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtd29ya2Vy
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYmI4OGI0ODcxZjE1YTczNWE3OGNmOWMxMjBhZmIy
ZDliMjk4NDlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxlc3lz
dGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwyNSBA
QAorW1dvcmtlcl0gVGhpcyB0ZXN0IGNoZWNrcyBtb3ZlKCkgb2YgRmlsZVN5c3RlbUhhbmRsZS4K
KworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywg
Zm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1N0YXJ0aW5nIHdvcmtlcjogcmVzb3Vy
Y2VzL2hhbmRsZS1tb3ZlLmpzCitbV29ya2VyXSBUZXN0IGJhc2ljIG1vdmU6CitQQVNTIFtXb3Jr
ZXJdIGZpbGVIYW5kbGUubmFtZSBpcyAiZmlsZSIKK1BBU1MgW1dvcmtlcl0gZmlsZUhhbmRsZS5u
YW1lIGlzICJuZXdGaWxlIgorUEFTUyBbV29ya2VyXSBnZXRGaWxlSGFuZGxlRXJyb3IudG9TdHJp
bmcoKSBpcyAiTm90Rm91bmRFcnJvcjogVGhlIG9iamVjdCBjYW4gbm90IGJlIGZvdW5kIGhlcmUu
IgorUEFTUyBbV29ya2VyXSBmaWxlSGFuZGxlMi5uYW1lIGlzICJuZXdGaWxlIgorUEFTUyBbV29y
a2VyXSBmaWxlSGFuZGxlMi5raW5kIGlzICJmaWxlIgorW1dvcmtlcl0gVGVzdCBtb3ZlIHRvIGEg
ZmlsZSBoYW5kbGU6CitQQVNTIFtXb3JrZXJdIG1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAi
VHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBlIG9mIGFuIG9iamVjdCB3YXMgaW5jb21wYXRpYmxl
IHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRo
ZSBvYmplY3QuIgorW1dvcmtlcl0gVGVzdCBtb3ZlIHRvIGEgZGVzdGluYXRpb24gd2l0aCBleGlz
dGluZyBmaWxlOgorUEFTUyBbV29ya2VyXSBtb3ZlRmlsZUVycm9yLnRvU3RyaW5nKCkgaXMgIlVu
a25vd25FcnJvcjogVGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25vd24gdHJhbnNpZW50
IHJlYXNvbiAoZS5nLiBvdXQgb2YgbWVtb3J5KS4iCitbV29ya2VyXSBUZXN0IG1vdmUgd2l0aCBh
biBpbnZhbGlkIG5hbWU6CitQQVNTIFtXb3JrZXJdIG1vdmVGaWxlRXJyb3IudG9TdHJpbmcoKSBp
cyAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiCitQQVNTIFtXb3JrZXJdIG1vdmVGaWxl
RXJyb3IudG9TdHJpbmcoKSBpcyAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiCitbV29y
a2VyXSBUZXN0IG1vdmUgd2l0aCBvcGVuIGFjY2VzcyBoYW5kbGU6CitQQVNTIFtXb3JrZXJdIG1v
dmVGaWxlRXJyb3IudG9TdHJpbmcoKSBpcyAiSW52YWxpZFN0YXRlRXJyb3I6IFRoZSBvYmplY3Qg
aXMgaW4gYW4gaW52YWxpZCBzdGF0ZS4iCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvc3RvcmFnZS9maWxl
c3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci5odG1sIGIvTGF5b3V0VGVzdHMvc3RvcmFn
ZS9maWxlc3lzdGVtYWNjZXNzL2hhbmRsZS1tb3ZlLXdvcmtlci5odG1sCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0
ZjYwNWY0ZmYwNTAxNDk3OTU2NGIzNjFhOWQ3MWEyNWIzM2QxNGUKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUtd29ya2Vy
Lmh0bWwKQEAgLTAsMCArMSw5IEBACis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uLy4u
L3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlw
dD4KK3dvcmtlciA9IHN0YXJ0V29ya2VyKCdyZXNvdXJjZXMvaGFuZGxlLW1vdmUuanMnKTs8L3Nj
cmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvaGFuZGxlLW1vdmUu
aHRtbCBiL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9oYW5kbGUtbW92ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjAyNGZiYTA2ODRlMTcxMGU0YWVjZWJhZDk1YjdkNTAwNDIyZTBiZGEK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mv
aGFuZGxlLW1vdmUuaHRtbApAQCAtMCwwICsxLDE2IEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0PgordmFyIGpzVGVzdElzQXN5bmMgPSB0cnVl
OworCitpZiAoIXdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgZmluaXNoVGVzdCgid2luZG93LnRl
c3RSdW5uZXIgaXMgbm90IGF2YWlsYWJsZSIpOworfQorPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3N0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9yZXNvdXJjZXMv
aGFuZGxlLW1vdmUuanMgYi9MYXlvdXRUZXN0cy9zdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3MvcmVz
b3VyY2VzL2hhbmRsZS1tb3ZlLmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ5MWQ5MWJjNTM5MmZhMDA1ODdlZWVk
NWExMzBmYWZjODU1MmY2MWEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9zdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3MvcmVzb3VyY2VzL2hhbmRsZS1tb3ZlLmpzCkBAIC0wLDAgKzEsMTI0
IEBACitpZiAodGhpcy5pbXBvcnRTY3JpcHRzKSB7CisgICAgaW1wb3J0U2NyaXB0cygnLi4vLi4v
Li4vcmVzb3VyY2VzL2pzLXRlc3QuanMnKTsKK30KKworZGVzY3JpcHRpb24oIlRoaXMgdGVzdCBj
aGVja3MgbW92ZSgpIG9mIEZpbGVTeXN0ZW1IYW5kbGUuIik7CisKK3ZhciByb290SGFuZGxlLCBk
aXJIYW5kbGUxLCBkaXJIYW5kbGUyLCBmaWxlSGFuZGxlLCBmaWxlSGFuZGxlMiwgdGVzdEVycm9y
LCBnZXRGaWxlSGFuZGxlRXJyb3IsIG1vdmVGaWxlRXJyb3I7CisKK2Z1bmN0aW9uIGZpbmlzaFRl
c3QoZXJyb3IpCit7CisgICAgaWYgKGVycm9yKSB7CisgICAgICAgIHRlc3RGYWlsZWQoZXJyb3Ip
OworICAgIH0KKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworYXN5bmMgZnVuY3Rpb24gdGVzdCgp
IHsKKyAgICB0cnkgeworICAgICAgICB2YXIgcm9vdEhhbmRsZSA9IGF3YWl0IG5hdmlnYXRvci5z
dG9yYWdlLmdldERpcmVjdG9yeSgpOworICAgICAgICAvLyBDcmVhdGUgdHdvIG5ldyBmb2xkZXJz
IGZvciB0aGlzIHRlc3QuCisgICAgICAgIGF3YWl0IHJvb3RIYW5kbGUucmVtb3ZlRW50cnkoImRp
cjEiLCB7ICJyZWN1cnNpdmUiIDogdHJ1ZSB9KS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsK
KyAgICAgICAgYXdhaXQgcm9vdEhhbmRsZS5yZW1vdmVFbnRyeSgiZGlyMiIsIHsgInJlY3Vyc2l2
ZSIgOiB0cnVlIH0pLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgICAgICBkaXJIYW5k
bGUxID0gYXdhaXQgcm9vdEhhbmRsZS5nZXREaXJlY3RvcnlIYW5kbGUoImRpcjEiLCB7ICJjcmVh
dGUiIDogdHJ1ZSB9KTsKKyAgICAgICAgZGlySGFuZGxlMiA9IGF3YWl0IHJvb3RIYW5kbGUuZ2V0
RGlyZWN0b3J5SGFuZGxlKCJkaXIyIiwgeyAiY3JlYXRlIiA6IHRydWUgfSk7CisKKyAgICAgICAg
ZGVidWcoIlRlc3QgYmFzaWMgbW92ZToiKQorICAgICAgICBmaWxlSGFuZGxlID0gYXdhaXQgZGly
SGFuZGxlMS5nZXRGaWxlSGFuZGxlKCJmaWxlIiwgeyAiY3JlYXRlIiA6IHRydWUgfSk7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwgImZpbGUiKTsKKyAg
ICAgICAgYXdhaXQgZmlsZUhhbmRsZS5tb3ZlKGRpckhhbmRsZTIsICJuZXdGaWxlIik7CisgICAg
ICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZS5uYW1lIiwgIm5ld0ZpbGUiKTsK
KworICAgICAgICB0ZXN0RXJyb3IgPSBudWxsOworICAgICAgICBhd2FpdCBkaXJIYW5kbGUxLmdl
dEZpbGVIYW5kbGUoImZpbGUiLCB7ICJjcmVhdGUiIDogZmFsc2UgfSkudGhlbigoaGFuZGxlKSA9
PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3IgPSAiR290IGZpbGUgaGFuZGxlIGZyb20gZGlySGFu
ZGxlMSB1bmV4cGVjdGVkbHkiCisgICAgICAgIH0sIChlcnJvcikgPT4geworICAgICAgICAgICAg
Z2V0RmlsZUhhbmRsZUVycm9yID0gZXJyb3I7CisgICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9T
dHJpbmcoImdldEZpbGVIYW5kbGVFcnJvci50b1N0cmluZygpIiwgIk5vdEZvdW5kRXJyb3I6IFRo
ZSBvYmplY3QgY2FuIG5vdCBiZSBmb3VuZCBoZXJlLiIpOworICAgICAgICB9KTsKKworICAgICAg
ICBpZiAodGVzdEVycm9yKSB7CisgICAgICAgICAgICByZXR1cm4gZmluaXNoVGVzdCh0ZXN0RXJy
b3IpOworICAgICAgICB9CisKKyAgICAgICAgZmlsZUhhbmRsZTIgPSBhd2FpdCBkaXJIYW5kbGUy
LmdldEZpbGVIYW5kbGUoIm5ld0ZpbGUiLCB7ICJjcmVhdGUiIDogZmFsc2UgfSk7CisgICAgICAg
IHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZTIubmFtZSIsICJuZXdGaWxlIik7Cisg
ICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygiZmlsZUhhbmRsZTIua2luZCIsICJmaWxlIik7
CisKKyAgICAgICAgZGVidWcoIlRlc3QgbW92ZSB0byBhIGZpbGUgaGFuZGxlOiIpOworICAgICAg
ICB0ZXN0RXJyb3IgPSBudWxsOworICAgICAgICBmaWxlSGFuZGxlMyA9IGF3YWl0IGRpckhhbmRs
ZTEuZ2V0RmlsZUhhbmRsZSgic2Vjb25kRmlsZSIsIHsgImNyZWF0ZSIgOiB0cnVlIH0pOworICAg
ICAgICBhd2FpdCBmaWxlSGFuZGxlLm1vdmUoZmlsZUhhbmRsZTMsIGZpbGVIYW5kbGUubmFtZSku
dGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3IgPSAgIk1vdmVkIGZpbGUgdG8gZmls
ZUhhbmRsZTMgdW5leHBlY3RlZGx5IgorICAgICAgICB9LCAoZXJyb3IpID0+IHsKKyAgICAgICAg
ICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0
cmluZygibW92ZUZpbGVFcnJvci50b1N0cmluZygpIiwgIlR5cGVNaXNtYXRjaEVycm9yOiBUaGUg
dHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBleHBlY3RlZCB0eXBl
IG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIpOworICAgICAgICB9
KTsKKworICAgICAgICBpZiAodGVzdEVycm9yKSB7CisgICAgICAgICAgICByZXR1cm4gZmluaXNo
VGVzdCh0ZXN0RXJyb3IpOworICAgICAgICB9CisKKyAgICAgICAgZGVidWcoIlRlc3QgbW92ZSB0
byBhIGRlc3RpbmF0aW9uIHdpdGggZXhpc3RpbmcgZmlsZToiKTsKKyAgICAgICAgdGVzdEVycm9y
ID0gbnVsbDsKKyAgICAgICAgYXdhaXQgZmlsZUhhbmRsZS5tb3ZlKGRpckhhbmRsZTEsICJzZWNv
bmRGaWxlIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0RXJyb3IgPSAgIk1vdmVkIGZp
bGUgdG8gZGlySGFuZGxlMSB1bmV4cGVjdGVkbHkiOworICAgICAgICB9LCAoZXJyb3IpID0+IHsK
KyAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAgICAgICAgIHNob3VsZEJl
RXF1YWxUb1N0cmluZygibW92ZUZpbGVFcnJvci50b1N0cmluZygpIiwgIlVua25vd25FcnJvcjog
VGhlIG9wZXJhdGlvbiBmYWlsZWQgZm9yIGFuIHVua25vd24gdHJhbnNpZW50IHJlYXNvbiAoZS5n
LiBvdXQgb2YgbWVtb3J5KS4iKTsKKyAgICAgICAgfSk7CisKKyAgICAgICAgaWYgKHRlc3RFcnJv
cikgeworICAgICAgICAgICAgcmV0dXJuIGZpbmlzaFRlc3QodGVzdEVycm9yKTsKKyAgICAgICAg
fQorCisgICAgICAgIGRlYnVnKCJUZXN0IG1vdmUgd2l0aCBhbiBpbnZhbGlkIG5hbWU6Iik7Cisg
ICAgICAgIHRlc3RFcnJvciA9IG51bGw7CisgICAgICAgIGF3YWl0IGZpbGVIYW5kbGUubW92ZShk
aXJIYW5kbGUxLCAiLi4iKS50aGVuKCgpID0+IHsKKyAgICAgICAgICAgIHRlc3RFcnJvciA9ICAi
TW92ZWQgZmlsZSB0byBkaXJIYW5kbGUxIHdpdGggaW52YWxpZCBuYW1lIHVuZXhwZWN0ZWRseSI7
CisgICAgICAgIH0sIChlcnJvcikgPT4geworICAgICAgICAgICAgbW92ZUZpbGVFcnJvciA9IGVy
cm9yOworICAgICAgICAgICAgc2hvdWxkQmVFcXVhbFRvU3RyaW5nKCJtb3ZlRmlsZUVycm9yLnRv
U3RyaW5nKCkiLCAiVW5rbm93bkVycm9yOiBOYW1lIGlzIGludmFsaWQiKTsKKyAgICAgICAgfSk7
CisKKyAgICAgICAgaWYgKHRlc3RFcnJvcikgeworICAgICAgICAgICAgcmV0dXJuIGZpbmlzaFRl
c3QodGVzdEVycm9yKTsKKyAgICAgICAgfQorCisgICAgICAgIGF3YWl0IGZpbGVIYW5kbGUubW92
ZShkaXJIYW5kbGUxLCAicm9vdC9maWxlIikudGhlbigoKSA9PiB7CisgICAgICAgICAgICB0ZXN0
RXJyb3IgPSAgIk1vdmVkIGZpbGUgdG8gZGlySGFuZGxlMSB3aXRoIGludmFsaWQgbmFtZSB1bmV4
cGVjdGVkbHkiOworICAgICAgICB9LCAoZXJyb3IpID0+IHsKKyAgICAgICAgICAgIG1vdmVGaWxl
RXJyb3IgPSBlcnJvcjsKKyAgICAgICAgICAgIHNob3VsZEJlRXF1YWxUb1N0cmluZygibW92ZUZp
bGVFcnJvci50b1N0cmluZygpIiwgIlVua25vd25FcnJvcjogTmFtZSBpcyBpbnZhbGlkIik7Cisg
ICAgICAgIH0pOworCisgICAgICAgIGlmICh0ZXN0RXJyb3IpIHsKKyAgICAgICAgICAgIHJldHVy
biBmaW5pc2hUZXN0KHRlc3RFcnJvcik7CisgICAgICAgIH0KKworCisgICAgICAgIGlmICh0eXBl
b2YgV29ya2VyR2xvYmFsU2NvcGUgIT09ICd1bmRlZmluZWQnICYmIHNlbGYgaW5zdGFuY2VvZiBX
b3JrZXJHbG9iYWxTY29wZSkgeworICAgICAgICAgICAgZGVidWcoIlRlc3QgbW92ZSB3aXRoIG9w
ZW4gYWNjZXNzIGhhbmRsZToiKTsKKyAgICAgICAgICAgIHRlc3RFcnJvciA9IG51bGw7CisgICAg
ICAgICAgICBhY2Nlc3NIYW5kbGUgPSBhd2FpdCBmaWxlSGFuZGxlLmNyZWF0ZVN5bmNBY2Nlc3NI
YW5kbGUoKTsKKyAgICAgICAgICAgIGF3YWl0IGZpbGVIYW5kbGUubW92ZShkaXJIYW5kbGUxLCAi
ZmlsZSIpLnRoZW4oKCkgPT4geworICAgICAgICAgICAgICAgIHRlc3RFcnJvciA9ICAiTW92ZWQg
ZmlsZSBiYWNrIHRvIGRpckhhbmRsZTEgdW5leHBlY3RlZGx5IjsKKyAgICAgICAgICAgIH0sIChl
cnJvcikgPT4geworICAgICAgICAgICAgICAgIG1vdmVGaWxlRXJyb3IgPSBlcnJvcjsKKyAgICAg
ICAgICAgICAgICBzaG91bGRCZUVxdWFsVG9TdHJpbmcoIm1vdmVGaWxlRXJyb3IudG9TdHJpbmco
KSIsICJJbnZhbGlkU3RhdGVFcnJvcjogVGhlIG9iamVjdCBpcyBpbiBhbiBpbnZhbGlkIHN0YXRl
LiIpOworICAgICAgICAgICAgfSk7CisKKyAgICAgICAgICAgIGlmICh0ZXN0RXJyb3IpIHsKKyAg
ICAgICAgICAgICAgICByZXR1cm4gZmluaXNoVGVzdCh0ZXN0RXJyb3IpOworICAgICAgICAgICAg
fQorCisgICAgICAgICAgICBhY2Nlc3NIYW5kbGUuY2xvc2UoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGZpbmlzaFRlc3QoKTsKKyAgICB9IGNhdGNoIChlcnJvcikgeworICAgICAgICBmaW5pc2hU
ZXN0KGVycm9yKTsKKyAgICB9Cit9CisKK3Rlc3QoKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>