<?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>234271</bug_id>
          
          <creation_ts>2021-12-13 14:27:16 -0800</creation_ts>
          <short_desc>REGRESSION (r286601): storage/filesystemaccess/sync-access-handle-read-write-worker.html and file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.html are consistently failing</short_desc>
          <delta_ts>2021-12-16 14:57:32 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebCore Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=233567</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Ryan Haddad">ryanhaddad</reporter>
          <assigned_to name="Sihui Liu">sihui_liu</assigned_to>
          <cc>annulen</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jenner</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>sihui_liu</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1823759</commentid>
    <comment_count>0</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-12-13 14:27:16 -0800</bug_when>
    <thetext>storage/filesystemaccess/sync-access-handle-read-write-worker.html and imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.html are consistently failing on bots after https://trac.webkit.org/changeset/286601/webkit

--- /Volumes/Data/worker/bigsur-release-tests-wk2/build/layout-test-results/storage/filesystemaccess/sync-access-handle-read-write-worker-expected.txt
+++ /Volumes/Data/worker/bigsur-release-tests-wk2/build/layout-test-results/storage/filesystemaccess/sync-access-handle-read-write-worker-actual.txt
@@ -4,26 +4,9 @@
 
 
 Starting worker: resources/sync-access-handle-read-write.js
-PASS [Worker] fileSize is 0
-[Worker] test read() and write():
-PASS [Worker] writeSize is writeBuffer.byteLength
-PASS [Worker] readSize is readBuffer.byteLength
-PASS [Worker] readText is &quot;This is first sentence.&quot;
-PASS [Worker] writeSize is writeBuffer.byteLength
-PASS [Worker] readSize is readBuffer.byteLength
-PASS [Worker] readText is &quot;This is second sentence.&quot;
-PASS [Worker] readSize is readBuffer.byteLength
-PASS [Worker] readText is &quot;This is first sentence.This is second sentence.&quot;
-PASS [Worker] accessHandle.read(new ArrayBuffer(1), { &quot;at&quot; : Number.MAX_SAFE_INTEGER }) threw exception InvalidStateError: Failed to read at offset.
-PASS [Worker] accessHandle.write(new ArrayBuffer(1), { &quot;at&quot; : Number.MAX_SAFE_INTEGER }) threw exception InvalidStateError: Failed to write at offset.
-[Worker] test flush():
-PASS [Worker] fileSize is totalWriteSize
-[Worker] test truncate():
-PASS [Worker] fileSize is 4
-[Worker] test write() with pending operation:
-[Worker] accessHandle.truncate(0)
-PASS [Worker] accessHandle.read(readBuffer, { &quot;at&quot; : 0 }) threw exception InvalidStateError: Access handle has unfinished operation.
+FAIL [Worker] InvalidStateError: The object is in an invalid state.
 PASS successfullyParsed is true
+Some tests failed.
 
 TEST COMPLETE
 

--- /Volumes/Data/worker/bigsur-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-expected.txt
+++ /Volumes/Data/worker/bigsur-release-tests-wk2/build/layout-test-results/imported/w3c/web-platform-tests/file-system-access/sandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker-actual.txt
@@ -1,5 +1,5 @@
 
-FAIL test createSyncAccessHandle.truncate with pending operation assert_unreached: Should have rejected: undefined Reached unreachable code
-PASS test SyncAccessHandle.truncate with different sizes
-PASS test SyncAccessHandle.truncate after SyncAccessHandle.write
+FAIL test createSyncAccessHandle.truncate with pending operation promise_test: Unhandled rejection with value: object &quot;InvalidStateError: The object is in an invalid state.&quot;
+FAIL test SyncAccessHandle.truncate with different sizes promise_test: Unhandled rejection with value: object &quot;InvalidStateError: The object is in an invalid state.&quot;
+FAIL test SyncAccessHandle.truncate after SyncAccessHandle.write promise_test: Unhandled rejection with value: object &quot;InvalidStateError: The object is in an invalid state.&quot;
 

https://build.webkit.org/results/Apple-BigSur-Release-WK2-Tests/r286602%20(6850)/results.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823761</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-13 14:27:47 -0800</bug_when>
    <thetext>&lt;rdar://problem/86434111&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823763</commentid>
    <comment_count>2</comment_count>
    <who name="Ryan Haddad">ryanhaddad</who>
    <bug_when>2021-12-13 14:28:03 -0800</bug_when>
    <thetext>https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;test=imported%2Fw3c%2Fweb-platform-tests%2Ffile-system-access%2Fsandboxed_FileSystemSyncAccessHandle-truncate.https.tentative.worker.html&amp;test=storage%2Ffilesystemaccess%2Fsync-access-handle-read-write-worker.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823776</commentid>
    <comment_count>3</comment_count>
    <who name="Robert Jenner">jenner</who>
    <bug_when>2021-12-13 14:35:30 -0800</bug_when>
    <thetext>*** Bug 234267 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823929</commentid>
    <comment_count>4</comment_count>
      <attachid>447115</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-14 01:03:14 -0800</bug_when>
    <thetext>Created attachment 447115
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824031</commentid>
    <comment_count>5</comment_count>
      <attachid>447115</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-14 09:49:08 -0800</bug_when>
    <thetext>Comment on attachment 447115
Patch

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

&gt; Source/WebCore/Modules/filesystemaccess/FileSystemDirectoryHandle.cpp:60
&gt; +        promise.resolve(FileSystemFileHandle::create(context, String { name }, result.returnValue(), WTFMove(connection)));

I am not sure we can guarantee that the task given to workerRunLoop.postTask in WorkerFileSystemStorageConnection::getFileHandle/getDirectoryHandle will always be executed.
Say we called worker.stop() and a few milliseconds later we call workerRunLoop::postTask.

Maybe the best approach would be for FileSystemStorageConnection::getFileHandle/getDirectoryHandle to return in the completion handler an allocated object that would have the sync handle identifier and a weakref to the IPC connection.
This object would, when destroyed, call the sync handle using connection and identifier.
Then either FileSystemFileHandle would store this object until destroyed, or FileSystemFileHandle could steal the identifier and clear the connection so that the object destructor would do nothing in that case.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824172</commentid>
    <comment_count>6</comment_count>
      <attachid>447174</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-14 16:27:52 -0800</bug_when>
    <thetext>Created attachment 447174
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824344</commentid>
    <comment_count>7</comment_count>
      <attachid>447174</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-15 07:11:50 -0800</bug_when>
    <thetext>Comment on attachment 447174
Patch

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

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:37
&gt; +class FileSystemHandleCloseScope : public ThreadSafeRefCounted&lt;FileSystemHandleCloseScope&gt; {

Not sure it needs to be refcounted, maybe we can just have a unique_ptr&gt;
Also, maybe we should expose this object in WebCore and callbacks with a needed WebProcess specialisation to do the clean-up.
That way, we would not need to modify the code to allow FileSystemFileHandle creation with a null context in WebCore.

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:47
&gt; +            m_connection-&gt;closeHandle(m_identifier);

I am not sure closeHandle is expected to be called from a non main thread.
You might fix this by explicitly call callOnMainThread, or make ThreadSafeRefCounted destruction main run loop.

&gt; Source/WebCore/Modules/filesystemaccess/WorkerFileSystemStorageConnection.cpp:168
&gt; +                    return;

We are doing twice the same &quot;is scope closed&quot; here and in the WebCore callback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824695</commentid>
    <comment_count>8</comment_count>
      <attachid>447331</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-15 23:53:06 -0800</bug_when>
    <thetext>Created attachment 447331
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824696</commentid>
    <comment_count>9</comment_count>
      <attachid>447332</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-16 00:02:32 -0800</bug_when>
    <thetext>Created attachment 447332
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824700</commentid>
    <comment_count>10</comment_count>
      <attachid>447335</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-16 00:34:57 -0800</bug_when>
    <thetext>Created attachment 447335
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824783</commentid>
    <comment_count>11</comment_count>
      <attachid>447363</attachid>
    <who name="Sihui Liu">sihui_liu</who>
    <bug_when>2021-12-16 09:26:47 -0800</bug_when>
    <thetext>Created attachment 447363
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824875</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-16 14:02:04 -0800</bug_when>
    <thetext>Committed r287156 (245333@main): &lt;https://commits.webkit.org/245333@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447363.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447115</attachid>
            <date>2021-12-14 01:03:14 -0800</date>
            <delta_ts>2021-12-14 16:27:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234271-20211214010313.patch</filename>
            <type>text/plain</type>
            <size>27727</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQxOTEwNDFjOGFlOTVh
OTYzNDYwMjFmOGM3MjdjYzM3NGIxYWI0OC4uYWFmMDgxOTA4OWUwZjU4NzlmMmRmOThkYzM3NTcx
YmU2ZmRmN2I3YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUwIEBACisyMDIxLTEyLTE0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2
MDEpOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFy
ZSBjb25zaXN0ZW50bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNv
bnRleHQgc3RvcHMsIEZpbGVTeXN0ZW1IYW5kbGUgc2V0cyBpdHMgc3RhdGUgdG8gY2xvc2VkLiBB
IGNsb3NlZCBGaWxlU3lzdGVtSGFuZGxlIHdpbGwgcmV0dXJuIGVhcmx5IG9uCisgICAgICAgIG9w
ZXJhdGlvbnMgaW5jbHVkaW5nIGNsb3Npbmcgc3luYyBhY2Nlc3MgaGFuZGxlIChhc2tpbmcgYmFj
a2VuZCB0byBjbG9zZSBoYW5kbGUgYW5kIHJlbGVhc2luZyBsb2NrKS4gSWYgYmFja2VuZCAKKyAg
ICAgICAgdGhpbmtzIGV4aXN0aW5nIGFjY2VzcyBoYW5kbGUgaXMgbm90IGNsb3NlZCwgaXQgd2ls
bCBwcmV2ZW50IG5ldyBhY2Nlc3MgaGFuZGxlIGZyb20gYmVpbmcgY3JlYXRlZCwgYW5kIHRoaXMg
CisgICAgICAgIGxlYWRzIHRvIHRoZSB0ZXN0IGZhaWx1cmUuCisKKyAgICAgICAgVGhlIHByb2Js
ZW0gaXMgdGhhdCBiYWNrZW5kIGlzbid0IG5vdGlmaWVkIGFib3V0IHRoZSBjbG9zZSBvZiBhIGhh
bmRsZTogd2Ugb25seSBzZXQgdGhlIGNsb3NlIHN0YXRlIGluIAorICAgICAgICBGaWxlU3lzdGVt
SGFuZGxlLiBUbyBmaXggdGhlIGlzc3VlLCBsZXQncyBtYWtlIHN1cmUgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjbG9zZUhhbmRsZSBpcyBjYWxsZWQgd2hlbiAKKyAgICAgICAgY29udGV4
dCBzdG9wcyBhbmQgd2hlbiBGaWxlU3lzdGVtSGFuZGxlIGlzIGRldHJveWVkLgorCisgICAgICAg
ICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0SGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2VTeW5jQWNjZXNzSGFu
ZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZSk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3Rl
bUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5c3Rl
bUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKToKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3JhZ2VNYW5hZ2VyOjpmaWxlU3lzdGVt
QWNjZXNzR2V0RGlyZWN0b3J5KToKKwogMjAyMS0xMi0xMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0
LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyODY5
OTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGZhOGUxMjg1Yzk3YzNjNjA4MDljOGMxY2E4NDhhZjViZmI1ZGY5Mjku
LmI4NjllOTljM2M5MGVhNjU1YzM4NGMxNGJhNGRmOTc0NGNkODU5Y2UgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMjAgQEAKKzIwMjEtMTItMTQgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+
CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4NjYwMSk6IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vz
cy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBhbmQgZmlsZS1zeXN0
ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS10cnVuY2F0ZS5o
dHRwcy50ZW50YXRpdmUud29ya2VyLmh0bWwgYXJlIGNvbnNpc3RlbnRseSBmYWlsaW5nCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQyNzEKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzg2NDM0MTExPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlOjpjbG9zZSk6IENsb3NlIGFjdGl2ZSBzeW5jIGFjY2VzcyBoYW5kbGUgd2hlbiBoYW5kbGUg
aXMgY2xvc2VkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyOjpjbG9zZUhhbmRsZSk6IFJlbW92ZSBoYW5kbGUgZnJvbSBtX2hhbmRsZXNCeUNvbm5lY3Rp
b24uCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNsb3NlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6Oldl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOiBEZWxldGVkLiBSZW5hbWVkIHRv
IGNsb3NlU3luY0FjY2Vzc0hhbmRsZS4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEyLTEzICBDb21t
aXQgUXVldWUgIDxjb21taXQtcXVldWVAd2Via2l0Lm9yZz4KIAogICAgICAgICBVbnJldmlld2Vk
LCByZXZlcnRpbmcgcjI4Njk5My4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
LmNwcAppbmRleCBjOTdkYTlhY2E5NTYwYzFhNjkzZjg4MjY2Y2Q5ZTYwNGExOTNhNGMwLi5hMDQw
ODVmNzkzMGVmNjQwY2Y0ZDM3ZmI5M2JjMTgzYTYyNGM0NDEzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCkBAIC0zNiwxMiArMzYsMTIgQEAgbmFtZXNwYWNlIFdl
YkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZSk7CiAKLVJlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlPiBGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3Ry
aW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorUmVmPEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU+IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYm
IGNvbm5lY3Rpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNv
bm5lY3Rpb24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgU3RyaW5nJiYg
bmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBj
b250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAg
OiBGaWxlU3lzdGVtSGFuZGxlKGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkRpcmVj
dG9yeSwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkKIHsK
IH0KQEAgLTU2LDE0ICs1Niw4IEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0
RmlsZUhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8CiAgICAgICAgIGlm
IChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWpl
Y3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAgYXV0byBpZGVudGlmaWVy
ID0gcmVzdWx0LnJldHVyblZhbHVlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhp
cyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOwotICAgICAg
ICBpZiAoIWNvbnRleHQpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlk
ZW50aWZpZXIpOwotICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7
IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKLSAgICAgICAg
fQotCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRl
KCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3Zl
KGNvbm5lY3Rpb24pKSk7CisgICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlKGNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVl
KCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KIApAQCAtNzcsMTQgKzcxLDgg
QEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUoY29u
c3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGkKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4
Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQucmV0dXJuVmFs
dWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIGlmICghY29udGV4dCkgewot
ICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7Ci0gICAgICAg
ICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOwotICAgICAgICB9Ci0KLSAgICAgICAgcHJvbWlz
ZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3Ry
aW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgICAg
IHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoY29udGV4
dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0
aW9uKSkpOwogICAgIH0pOwogfQogCkBAIC0xMjYsMTkgKzExNCwxNCBAQCB2b2lkIEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZShjb25zdCBTdHJpbmcmIG5hbWUsIENvbXBsZXRp
b25IYW5kbGVyPAogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOwog
Ci0gICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGlzRGlyZWN0b3J5XSA9IHJlc3VsdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1Ro
aXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIGlmICghY29u
dGV4dCkgewotICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7
Ci0gICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxp
ZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOwotICAgICAgICB9Ci0KKyAg
ICAgICAgYXV0byBbaWRlbnRpZmllciwgaXNEaXJlY3RvcnldID0gcmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpOwogICAgICAgICBpZiAoaXNEaXJlY3RvcnkpIHsKLSAgICAgICAgICAgIFJlZjxG
aWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVh
dGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0
aW9uKSk7CisgICAgICAgICAgICBSZWY8RmlsZVN5c3RlbUhhbmRsZT4gaGFuZGxlID0gRmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgaWRl
bnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSk7CiAgICAgICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGUpKTsKICAgICAgICAgfQogCi0gICAgICAgIFJlZjxG
aWxlU3lzdGVtSGFuZGxlPiBoYW5kbGUgPSBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKCpj
b250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikp
OworICAgICAgICBSZWY8RmlsZVN5c3RlbUhhbmRsZT4gaGFuZGxlID0gRmlsZVN5c3RlbUZpbGVI
YW5kbGU6OmNyZWF0ZShjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1v
dmUoY29ubmVjdGlvbikpOwogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGhhbmRs
ZSkpOwogICAgIH0pOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKaW5k
ZXggY2U2YTUzODYwYWIwYzllOTMxMTM3YWFlNWY5ODZjNTg4ODk2MDBiZC4uMWU4NDMyOGI3YjI4
NDI4Y2FmNzgyNTNmYjllZWRlZjBmYzBkZmRmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZS5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICAgICAgYm9vbCByZWN1
cnNpdmUgeyBmYWxzZSB9OwogICAgIH07CiAKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVm
PEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiwgU3Ry
aW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKICAgICB2b2lkIGdldEZpbGVIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1l
LCBzdGQ6Om9wdGlvbmFsPEdldEZpbGVPcHRpb25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETElu
dGVyZmFjZTxGaWxlU3lzdGVtRmlsZUhhbmRsZT4+JiYpOwogICAgIHZvaWQgZ2V0RGlyZWN0b3J5
SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDxHZXREaXJlY3RvcnlPcHRp
b25zPiwgRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlPj4mJik7CiAgICAgdm9pZCByZW1vdmVFbnRyeShjb25zdCBTdHJpbmcmIG5hbWUsIHN0
ZDo6b3B0aW9uYWw8UmVtb3ZlT3B0aW9ucz4sIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsK
QEAgLTc3LDcgKzc3LDcgQEAgcHVibGljOgogICAgIFJlZjxJdGVyYXRvcj4gY3JlYXRlSXRlcmF0
b3IoKTsKIAogcHJpdmF0ZToKLSAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJl
ZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApp
bmRleCA4ZjFmYjVmZGU3MWEzOWE2ZmEyN2E2NjFmNmZmY2QzMTU2NDkzMTEyLi40NmZhNDQzOWYz
NDQxMTkxYmI2M2UzZjAwMjQ0YjdjYWU1ZDdhZjFhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhh
bmRsZS5jcHAKQEAgLTM5LDEyICszOSwxMiBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIFdURl9N
QUtFX0lTT19BTExPQ0FURURfSU1QTChGaWxlU3lzdGVtRmlsZUhhbmRsZSk7CiAKLVJlZjxGaWxl
U3lzdGVtRmlsZUhhbmRsZT4gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNv
bm5lY3Rpb24pCitSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlKGNvbnRleHQsIFdURk1vdmUobmFtZSksIGlkZW50aWZpZXIs
IFdURk1vdmUoY29ubmVjdGlvbikpKTsKIH0KIAotRmlsZVN5c3RlbUZpbGVIYW5kbGU6OkZpbGVT
eXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYm
IG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK0ZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0KiBjb250ZXh0LCBT
dHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCiAgICAgOiBGaWxlU3lz
dGVtSGFuZGxlKGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQ6OkZpbGUsIFdURk1vdmUo
bmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CkBAIC04Miw3ICs4
Miw3IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
RE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSBw
cm90ZWN0ZWRUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgICAgIGlmICghY29u
dGV4dCkgewogICAgICAgICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGUpOwotICAgICAg
ICAgICAgcHJvdGVjdGVkVGhpcy0+Y2xvc2UoaWRlbnRpZmllciwgeyB9KTsKKyAgICAgICAgICAg
IHByb3RlY3RlZFRoaXMtPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCB7IH0pOwog
ICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0
ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKICAgICAgICAgfQogCkBAIC05MCwx
MiArOTAsMTIgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hh
bmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICB9KTsKIH0KIAotdm9pZCBG
aWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZpbGVTeXN0ZW1G
aWxlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYg
KGlzQ2xvc2VkKCkpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24g
eyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKLSAgICBjb25u
ZWN0aW9uKCkuY2xvc2UoaWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgY29ubmVjdGlvbigpLmNsb3NlU3luY0FjY2Vz
c0hhbmRsZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6cmVnaXN0
ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUZpbGVIYW5kbGUuaAppbmRleCA2ZTQ2ODhmYTkyZDY1OTFiZGM3YjcwZWVkYjVhNjIxMTA0
Y2JlMGVmLi45YmE1YmY3M2I5MmE4Y2RhMWMyMDAyZmJmNjgxNTdmOTMzNmY0ODJkIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtMzcsMTYgKzM3LDE2IEBAIHRlbXBsYXRlPHR5cGVu
YW1lPiBjbGFzcyBFeGNlcHRpb25PcjsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFuZGxlIGZpbmFs
IDogcHVibGljIEZpbGVTeXN0ZW1IYW5kbGUgewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQo
RmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogcHVibGljOgotICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRp
YyBSZWY8RmlsZVN5c3RlbUZpbGVIYW5kbGU+IGNyZWF0ZShTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYm
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJik7CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
Y2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21p
c2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsK
LSAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CisgICAgdm9pZCBj
bG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKICAgICB2
b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlJik7CiAgICAgdm9pZCB1bnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
OwogCiBwcml2YXRlOgotICAgIEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOworICAgIEZpbGVTeXN0ZW1GaWxlSGFuZGxlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCmluZGV4IGI1YzViOTViNDJlN2I5NWU4
ZDExZGQ5NmZjN2I2OGVjYzRmMDUxZjEuLmZiNDRkMWUyZGM0YjE4YzI3Y2ZmOWNiMzI4YTVjMGJm
ZjYzYTA1MTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFj
Y2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKQEAgLTM0LDggKzM0LDggQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxMT0NBVEVEX0lNUEwoRmlsZVN5c3Rl
bUhhbmRsZSk7CiAKLUZpbGVTeXN0ZW1IYW5kbGU6OkZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmlsZVN5c3RlbUhhbmRsZTo6S2luZCBraW5kLCBTdHJp
bmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCi0gICAgOiBBY3RpdmVET01P
YmplY3QoJmNvbnRleHQpCitGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwg
U3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVm
PEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIDogQWN0aXZl
RE9NT2JqZWN0KGNvbnRleHQpCiAgICAgLCBtX2tpbmQoa2luZCkKICAgICAsIG1fbmFtZShXVEZN
b3ZlKG5hbWUpKQogICAgICwgbV9pZGVudGlmaWVyKGlkZW50aWZpZXIpCkBAIC00NCw3ICs0NCwx
OSBAQCBGaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1IYQogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQog
Ci1GaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5c3RlbUhhbmRsZSgpID0gZGVmYXVsdDsKK0ZpbGVT
eXN0ZW1IYW5kbGU6On5GaWxlU3lzdGVtSGFuZGxlKCkKK3sKKyAgICBjbG9zZSgpOworfQorCit2
b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OmNsb3NlKCkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAg
ICAgICAgcmV0dXJuOworICAgIAorICAgIG1faXNDbG9zZWQgPSB0cnVlOworICAgIG1fY29ubmVj
dGlvbi0+Y2xvc2VIYW5kbGUobV9pZGVudGlmaWVyKTsKK30KIAogdm9pZCBGaWxlU3lzdGVtSGFu
ZGxlOjppc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZl
cnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpIGNvbnN0CiB7CkBAIC04Miw3ICs5NCw3IEBAIGNv
bnN0IGNoYXIqIEZpbGVTeXN0ZW1IYW5kbGU6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAog
CiB2b2lkIEZpbGVTeXN0ZW1IYW5kbGU6OnN0b3AoKQogewotICAgIG1faXNDbG9zZWQgPSB0cnVl
OworICAgIGNsb3NlKCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxl
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5oCmluZGV4IGJmMjgwNTAwOTAzZjdhNTY4OGNlOWRhZWE4ODU4MjYyOTY4MjQ5OTguLjkw
NzhhYzZlNzJlZWFiMjBkNjk0OGU3NWI5YWE4NTJiZmY5NGNkZGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5k
bGUuaApAQCAtNDksMTIgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5hbWUo
KSBjb25zdCB7IHJldHVybiBtX25hbWU7IH0KICAgICBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgYm9vbCBp
c0Nsb3NlZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0KKyAgICB2b2lkIGNsb3NlKCk7
CiAKICAgICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVm
ZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5k
bGUmLCBjb25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsK
IAogcHJvdGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYsIEtpbmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFuZGxlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBLaW5kLCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25u
ZWN0aW9uLmdldCgpOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggNzc2ZTEzY2E1ZWI2NDc5Nzk0M2VmM2JjNDg1M2EzMWRkZWRmYjM1
Ny4uNjRiMGU1ZDIzOWQzZmIwOWY5ZDA1NjBjNTE4NzY1NWMxNzBiYTMxMSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOwogICAgIHZp
cnR1YWwgdm9pZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxs
YmFjayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0gMDsK
LSAgICB2aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgY2xvc2VTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFj
ayYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZS5jcHAKaW5kZXggYjg1YWRhZmMyOWI0ODcwOTFkZTY1YWI1MjQzOWI0NTFkMDM2NzVj
Ny4uODM0YWNkOWRkMDQwZDlhNmZiNTljOTYzNDFlYTA5NjhhMWU0MGEzMiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0xODAsMTMgKzE4MCwxMyBAQCB2
b2lkIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQoQ2xvc2VNb2RlIG1v
ZGUpCiAgICAgICAgIHJldHVybjsKIAogICAgIGlmIChtb2RlID09IENsb3NlTW9kZTo6QXN5bmMp
IHsKLSAgICAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1f
c291cmNlLT5jbG9zZVN5bmNBY2Nlc3NIYW5kbGUobV9pZGVudGlmaWVyLCBbdGhpcywgcHJvdGVj
dGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAg
ICAgIGRpZENsb3NlQmFja2VuZChXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICB9KTsKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFtd
KGF1dG8pIHsgfSk7CisgICAgbV9zb3VyY2UtPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50
aWZpZXIsIFtdKGF1dG8pIHsgfSk7CiAgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5k
ZXggYjUzNjMyYzMxMjNhMWJmOTVmNzAzMzZjZWI4NjFiYzY4ZDRkMzE4Yy4uYTgyM2M1YTM4MWY3
ODVlZTI0OGRkMWRlYzBhMjQ4OTZiMmIzZmM0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTI3MSw3ICsyNzEsNyBAQCB2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRs
ZShGaWxlU3lzdGVtSGFuZGxlSQogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2Fs
bGJhY2spCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VTeW5j
QWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQogewog
ICAgIGlmICghbV9zY29wZSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IElu
dmFsaWRTdGF0ZUVycm9yIH0pOwpAQCAtMjg3LDcgKzI4Nyw3IEBAIHZvaWQgV29ya2VyRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBp
ZGVudGlmCiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAg
ICAgICAgfTsKIAotICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xvc2UoaWRlbnRpZmll
ciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsK
KyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVu
dGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFj
aykpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmgKaW5kZXggOTgzNmIxZTc0ZmJhNzZiZTdhMWUwODhhZGMwZTUwOTM2NzE4
MzU5Zi4uOWQyNjQ1MjQzM2ZhNWM1MGU1ZjUzODdhMDY2Mjk3ODU0MGFmNDI1MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNzEsNyAr
NzEsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2smJikg
ZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJp
bmdDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBjbG9zZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbCB7IH07CiAgICAgdm9pZCB1bnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3Rv
cmFnZS9TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggNzgwNGE4MDI3ZDQwNjkyM2EzNGMzOWVhY2Nl
YzY5M2NkMTA2MTE2Yy4uYWQwN2YzOTE1MWNhZTQzMWQxYmIzOTdiODI4ZGRiMjJhYTRhOTgyMyAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIu
Y3BwCkBAIC0xMjEsMTIgKzEyMSw3IEBAIHZvaWQgU3RvcmFnZU1hbmFnZXI6OmZpbGVTeXN0ZW1B
Y2Nlc3NHZXREaXJlY3RvcnkoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjCiAKICAgICAg
ICAgYXV0byBbaWRlbnRpZmllciwgY29ubmVjdGlvbl0gPSByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrTmF2aWdhdG9yID8gd2Vha05hdmln
YXRvci0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKCFj
b250ZXh0KSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVy
KTsKLSAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlk
U3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7Ci0gICAgICAgIH0KLQotICAg
ICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKCpj
b250ZXh0LCB7IH0sIGlkZW50aWZpZXIsIFJlZiB7ICpjb25uZWN0aW9uIH0pKTsKKyAgICAgICAg
cHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZShjb250ZXh0
LCB7IH0sIGlkZW50aWZpZXIsIFJlZiB7ICpjb25uZWN0aW9uIH0pKTsKICAgICB9KTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggNGY3MmNkMDNmMzY4ZjQ1NzZkNDM1
ZDY3ZTYyZTNhMTFiOTJjZmVhNC4uYzYyNGQxNGZiMjY3MTkyY2Q2YzNiZDRhMzEwYmU1NzcyYmE3
ZjE2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC02OCw2ICs2OCw4IEBA
IHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKCkKICAgICBpZiAoIW1fbWFuYWdl
cikKICAgICAgICAgcmV0dXJuOwogCisgICAgaWYgKG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSkK
KyAgICAgICAgY2xvc2UoKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSk7CiAgICAgbV9tYW5hZ2Vy
LT5jbG9zZUhhbmRsZSgqdGhpcyk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5j
cHAKaW5kZXggMjljZmIwYzZiMzczYTI1ZmYwMWNjZTg2MzNjOTVlNTZiMWFjYjdmNC4uMDlmODIy
MjM5OWQ3N2Y5M2RlOGI2OTkzMWRlZTRhNDNkYTMxMThlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlTWFuYWdlci5jcHAKQEAgLTk5LDYgKzk5LDEwIEBAIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VN
YW5hZ2VyOjpjbG9zZUhhbmRsZShGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZSYgaGFuZGxlKQogICAg
IGF1dG8gaWRlbnRpZmllciA9IGhhbmRsZS5pZGVudGlmaWVyKCk7CiAgICAgYXV0byB0YWtlbkhh
bmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZpZXIpOwogICAgIEFTU0VSVCh0YWtlbkhhbmRs
ZS5nZXQoKSA9PSAmaGFuZGxlKTsKKyAgICBmb3IgKGF1dG8mIGhhbmRsZXMgOiBtX2hhbmRsZXNC
eUNvbm5lY3Rpb24udmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGhhbmRsZXMucmVtb3ZlKGlkZW50
aWZpZXIpKQorICAgICAgICAgICAgYnJlYWs7CisgICAgfQogICAgIG1fcmVnaXN0cnkudW5yZWdp
c3RlckhhbmRsZShpZGVudGlmaWVyKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmNwcAppbmRleCBiN2FiZGNmZGU1Y2Y4YWJjYzYzODVlNGExYTA3
OWE4NTVlYmMyZDY3Li45ZjQzYTU3NGRhYzI0YzhmZDBjNDdjYjliNWY3YzRkM2FiM2YzM2I2IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAt
MTUzLDcgKzE1Myw3IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgfSk7CiB9CiAKLXZv
aWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNr
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNv
bm5lY3Rpb24gaXMgbG9zdCIgfSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmgKaW5kZXggM2E1MWMzZDE3ODdiYTk0M2M1NjE3MDA5MDA2OTM4NTc4ZGFiYWUy
NS4uZmQ2ZWY2NGQ0YWE5OWFkMmRhMTk3ZjRmYWZiMzNiOWFhY2RhNjUxYiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtODUsNyArODUsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZ2V0RmlsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmluYWw7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nl
c3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmlu
YWw7Ci0gICAgdm9pZCBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
ICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7CiAgICAg
dm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllcikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447174</attachid>
            <date>2021-12-14 16:27:52 -0800</date>
            <delta_ts>2021-12-15 23:53:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234271-20211214162751.patch</filename>
            <type>text/plain</type>
            <size>42798</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDAyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWQxOTEwNDFjOGFlOTVh
OTYzNDYwMjFmOGM3MjdjYzM3NGIxYWI0OC4uZTg0NmVlMzY0ZDY2MTE0NDJhMzA3NjRlNjI0ZGMw
YzU1ZGEzYmFiYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU4IEBACisyMDIxLTEyLTE0ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2
MDEpOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFy
ZSBjb25zaXN0ZW50bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIGNv
bnRleHQgc3RvcHMsIEZpbGVTeXN0ZW1IYW5kbGUgc2V0cyBpdHMgc3RhdGUgdG8gY2xvc2VkLiBB
IGNsb3NlZCBGaWxlU3lzdGVtSGFuZGxlIHdpbGwgcmV0dXJuIGVhcmx5IG9uCisgICAgICAgIG9w
ZXJhdGlvbnMgaW5jbHVkaW5nIGNsb3Npbmcgc3luYyBhY2Nlc3MgaGFuZGxlIChhc2tpbmcgYmFj
a2VuZCB0byBjbG9zZSBoYW5kbGUgYW5kIHJlbGVhc2luZyBsb2NrKS4gSWYgYmFja2VuZCAKKyAg
ICAgICAgdGhpbmtzIGV4aXN0aW5nIGFjY2VzcyBoYW5kbGUgaXMgbm90IGNsb3NlZCwgaXQgd2ls
bCBwcmV2ZW50IG5ldyBhY2Nlc3MgaGFuZGxlIGZyb20gYmVpbmcgY3JlYXRlZCwgYW5kIHRoaXMg
CisgICAgICAgIGxlYWRzIHRvIHRoZSB0ZXN0IGZhaWx1cmUuCisKKyAgICAgICAgVGhlIHByb2Js
ZW0gaXMgdGhhdCBiYWNrZW5kIGlzbid0IG5vdGlmaWVkIGFib3V0IHRoZSBjbG9zZSBvZiBhIGhh
bmRsZTogd2Ugb25seSBzZXQgdGhlIGNsb3NlIHN0YXRlIGluIAorICAgICAgICBGaWxlU3lzdGVt
SGFuZGxlLiBUbyBmaXggdGhlIGlzc3VlLCBsZXQncyBtYWtlIHN1cmUgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjbG9zZUhhbmRsZSBpcyBjYWxsZWQgd2hlbiAKKyAgICAgICAgY29udGV4
dCBzdG9wcyBhbmQgd2hlbiBGaWxlU3lzdGVtSGFuZGxlIGlzIGRldHJveWVkLgorCisgICAgICAg
ICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0SGFuZGxlKToKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZSk6CisgICAgICAgIChX
ZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2VTeW5jQWNjZXNzSGFu
ZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZSk6IERl
bGV0ZWQuCisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxl
SGFuZGxlLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3Rl
bUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5c3Rl
bUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKToKKyAgICAgICAgKiBNb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlQ2xvc2VTY29wZTo6Y3JlYXRlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVDbG9zZVNjb3BlOjp+RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU6OnJlbGVhc2UpOgorICAgICAgICAo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU6OkZpbGVTeXN0ZW1IYW5kbGVDbG9z
ZVNjb3BlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Z2V0RmlsZUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3Jl
OjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlU3luY0FjY2Vzc0hhbmRs
ZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246
OmdldEhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmNsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9k
dWxlcy9zdG9yYWdlL1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlN0b3Jh
Z2VNYW5hZ2VyOjpmaWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KToKKyAgICAgICAgKiBXZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTItMTMgIENvbW1pdCBRdWV1
ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVy
dGluZyByMjg2OTkzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmYThlMTI4NWM5N2MzYzYwODA5YzhjMWNhODQ4YWY1
YmZiNWRmOTI5Li5mNjE2OGU5ZGM4ZTgzZGIwNjU1ZWVkYzJkOTlmYjZjMjI3OWZmMmI1IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5n
ZUxvZwpAQCAtMSwzICsxLDI3IEBACisyMDIxLTEyLTE0ICBTaWh1aSBMaXUgIDxzaWh1aV9saXVA
YXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2MDEpOiBzdG9yYWdlL2ZpbGVz
eXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0bWwgYW5k
IGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUt
dHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFyZSBjb25zaXN0ZW50bHkgZmFp
bGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM0
MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4KKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFn
ZUhhbmRsZTo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNsb3NlSGFuZGxlKToKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vzc0hhbmRs
ZSk6IERlbGV0ZWQuCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbjoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJL
aXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxl
KToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9z
ZSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKwogMjAyMS0xMi0xMyAgQ29tbWl0IFF1ZXVlICA8
Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5n
IHIyODY5OTMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKaW5kZXgg
Yzk3ZGE5YWNhOTU2MGMxYTY5M2Y4ODI2NmNkOWU2MDRhMTkzYTRjMC4uYTA0MDg1Zjc5MzBlZjY0
MGNmNGQzN2ZiOTNiYzE4M2E2MjRjNDQxMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlLmNwcApAQCAtMzYsMTIgKzM2LDEyIEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
V1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUpOwog
Ci1SZWY8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZTo6Y3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUs
IEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK1JlZjxGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlPiBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIg
aWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9u
KQogewogICAgIHJldHVybiBhZG9wdFJlZigqbmV3IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUo
Y29udGV4dCwgV1RGTW92ZShuYW1lKSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkp
OwogfQogCi1GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24+JiYgY29ubmVjdGlvbikKK0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OkZpbGVT
eXN0ZW1EaXJlY3RvcnlIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU3Ry
aW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogRmlsZVN5c3Rl
bUhhbmRsZShjb250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpEaXJlY3RvcnksIFdURk1v
dmUobmFtZSksIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpCiB7CiB9CkBAIC01Niwx
NCArNTYsOCBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUo
Y29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPAogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5y
ZWxlYXNlRXhjZXB0aW9uKCkpOwogCi0gICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC5y
ZXR1cm5WYWx1ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhp
cy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKCFjb250
ZXh0KSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsK
LSAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3Rh
dGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7Ci0gICAgICAgIH0KLQotICAgICAg
ICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwg
U3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9u
KSkpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0
ZShjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3Zl
KGNvbm5lY3Rpb24pKSk7CiAgICAgfSk7CiB9CiAKQEAgLTc3LDE0ICs3MSw4IEBAIHZvaWQgRmls
ZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKGNvbnN0IFN0cmluZyYg
bmFtZSwgc3RkOjpvcHRpCiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAg
ICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7
CiAKLSAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnJldHVyblZhbHVlKCk7CiAgICAg
ICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCkgOiBudWxscHRyOwotICAgICAgICBpZiAoIWNvbnRleHQpIHsKLSAgICAgICAgICAg
IGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOwotICAgICAgICAgICAgcmV0dXJu
IHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBo
YXMgc3RvcHBlZCJfcyB9KTsKLSAgICAgICAgfQotCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShG
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUg
fSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgICAgICBwcm9taXNlLnJl
c29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKGNvbnRleHQsIFN0cmluZyB7
IG5hbWUgfSwgcmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUoY29ubmVjdGlvbikpKTsKICAg
ICB9KTsKIH0KIApAQCAtMTI2LDE5ICsxMTQsMTQgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlOjpnZXRIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjwK
ICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBj
b21wbGV0aW9uSGFuZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBh
dXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdlYWtUaGlzLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOwotICAgICAgICBpZiAoIWNvbnRleHQpIHsKLSAg
ICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZpZXIpOwotICAgICAgICAg
ICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9y
LCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKLSAgICAgICAgfQotCisgICAgICAgIGF1dG8g
W2lkZW50aWZpZXIsIGlzRGlyZWN0b3J5XSA9IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsK
ICAgICAgICAgaWYgKGlzRGlyZWN0b3J5KSB7Ci0gICAgICAgICAgICBSZWY8RmlsZVN5c3RlbUhh
bmRsZT4gaGFuZGxlID0gRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0
LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpOworICAg
ICAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGU6OmNyZWF0ZShjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdU
Rk1vdmUoY29ubmVjdGlvbikpOwogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KFdURk1vdmUoaGFuZGxlKSk7CiAgICAgICAgIH0KIAotICAgICAgICBSZWY8RmlsZVN5c3RlbUhh
bmRsZT4gaGFuZGxlID0gRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3Ry
aW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKKyAgICAgICAg
UmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVh
dGUoY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rp
b24pKTsKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShoYW5kbGUpKTsKICAgICB9
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCmluZGV4IGNlNmE1Mzg2
MGFiMGM5ZTkzMTEzN2FhZTVmOTg2YzU4ODg5NjAwYmQuLjFlODQzMjhiN2IyODQyOGNhZjc4MjUz
ZmI5ZWVkZWYwZmMwZGZkZjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUu
aApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgICAgIGJvb2wgcmVjdXJzaXZlIHsgZmFs
c2UgfTsKICAgICB9OwogCi0gICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVt
RGlyZWN0b3J5SGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYm
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCosIFN0cmluZyYmLCBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4m
Jik7CiAgICAgdm9pZCBnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRp
b25hbDxHZXRGaWxlT3B0aW9ucz4sIERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8Rmls
ZVN5c3RlbUZpbGVIYW5kbGU+PiYmKTsKICAgICB2b2lkIGdldERpcmVjdG9yeUhhbmRsZShjb25z
dCBTdHJpbmcmIG5hbWUsIHN0ZDo6b3B0aW9uYWw8R2V0RGlyZWN0b3J5T3B0aW9ucz4sIERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZT4+JiYp
OwogICAgIHZvaWQgcmVtb3ZlRW50cnkoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFs
PFJlbW92ZU9wdGlvbnM+LCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CkBAIC03Nyw3ICs3
Nyw3IEBAIHB1YmxpYzoKICAgICBSZWY8SXRlcmF0b3I+IGNyZWF0ZUl0ZXJhdG9yKCk7CiAKIHBy
aXZhdGU6Ci0gICAgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXggOGYxZmI1
ZmRlNzFhMzlhNmZhMjdhNjYxZjZmZmNkMzE1NjQ5MzExMi4uNDZmYTQ0MzlmMzQ0MTE5MWJiNjNl
M2YwMDI0NGI3Y2FlNWQ3YWYxYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCkBA
IC0zOSwxMiArMzksMTIgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBXVEZfTUFLRV9JU09fQUxM
T0NBVEVEX0lNUEwoRmlsZVN5c3RlbUZpbGVIYW5kbGUpOwogCi1SZWY8RmlsZVN5c3RlbUZpbGVI
YW5kbGU+IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgU3RyaW5nJiYgbmFtZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQor
UmVmPEZpbGVTeXN0ZW1GaWxlSGFuZGxlPiBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQqIGNvbnRleHQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24+JiYgY29ubmVjdGlvbikKIHsKICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVt
RmlsZUhhbmRsZShjb250ZXh0LCBXVEZNb3ZlKG5hbWUpLCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNv
bm5lY3Rpb24pKSk7CiB9CiAKLUZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpGaWxlU3lzdGVtRmlsZUhh
bmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBTdHJpbmcmJiBuYW1lLCBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmIGNvbm5lY3Rpb24pCitGaWxlU3lzdGVtRmlsZUhhbmRsZTo6RmlsZVN5c3Rl
bUZpbGVIYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCogY29udGV4dCwgU3RyaW5nJiYgbmFt
ZSwgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQogICAgIDogRmlsZVN5c3RlbUhhbmRsZShj
b250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kOjpGaWxlLCBXVEZNb3ZlKG5hbWUpLCBpZGVu
dGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKQogewogfQpAQCAtODIsNyArODIsNyBAQCB2b2lk
IEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VE
ZWZlcnJlZDxJRExJbnRlcmZhYwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gcHJvdGVjdGVkVGhp
cy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpOwogICAgICAgICBpZiAoIWNvbnRleHQpIHsKICAg
ICAgICAgICAgIEZpbGVTeXN0ZW06OmNsb3NlRmlsZShmaWxlKTsKLSAgICAgICAgICAgIHByb3Rl
Y3RlZFRoaXMtPmNsb3NlKGlkZW50aWZpZXIsIHsgfSk7CisgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5jbG9zZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgeyB9KTsKICAgICAgICAgICAg
IHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNv
bnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7CiAgICAgICAgIH0KIApAQCAtOTAsMTIgKzkwLDEyIEBA
IHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjCiAgICAgfSk7CiB9CiAKLXZvaWQgRmlsZVN5c3RlbUZp
bGVIYW5kbGU6OmNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZv
aWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChpc0Nsb3NlZCgp
KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0
YXRlRXJyb3IsICJIYW5kbGUgaXMgY2xvc2VkIl9zIH0pOwogCi0gICAgY29ubmVjdGlvbigpLmNs
b3NlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIGNvbm5lY3Rpb24oKS5jbG9zZVN5bmNBY2Nlc3NIYW5kbGUoaWRl
bnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CiB9CiAKIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OnJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmIGhhbmRsZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmgKaW5kZXggNmU0Njg4ZmE5MmQ2NTkxYmRjN2I3MGVlZGI1YTYyMTEwNGNiZTBlZi4uOWJh
NWJmNzNiOTJhOGNkYTFjMjAwMmZiZjY4MTU3ZjkzMzZmNDgyZCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmgKQEAgLTM3LDE2ICszNywxNiBAQCB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3Mg
RXhjZXB0aW9uT3I7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZSBmaW5hbCA6IHB1YmxpYyBG
aWxlU3lzdGVtSGFuZGxlIHsKICAgICBXVEZfTUFLRV9JU09fQUxMT0NBVEVEKEZpbGVTeXN0ZW1G
aWxlSGFuZGxlKTsKIHB1YmxpYzoKLSAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgUmVmPEZpbGVT
eXN0ZW1GaWxlSGFuZGxlPiBjcmVhdGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIFN0cmluZyYm
LCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbj4mJik7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFJlZjxGaWxlU3lzdGVtRmlsZUhh
bmRsZT4gY3JlYXRlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQqLCBTdHJpbmcmJiwgRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYpOwog
ICAgIHZvaWQgZ2V0RmlsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWNlPEZpbGU+PiYm
KTsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8
SURMSW50ZXJmYWNlPEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlPj4mJik7Ci0gICAgdm9pZCBj
bG9zZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOworICAgIHZvaWQgY2xvc2VTeW5jQWNj
ZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CiAgICAgdm9pZCByZWdpc3Rl
clN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYpOwogICAgIHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKIAogcHJpdmF0
ZToKLSAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgU3Ry
aW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtRmlsZUhhbmRsZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiwgU3RyaW5nJiYsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmNwcAppbmRleCBiNWM1Yjk1YjQyZTdiOTVlOGQxMWRkOTZmYzdi
NjhlY2M0ZjA1MWYxLi5mYjQ0ZDFlMmRjNGIxOGMyN2NmZjljYjMyOGE1YzBiZmY2M2EwNTEzIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCkBAIC0zNCw4ICszNCw4IEBAIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAogV1RGX01BS0VfSVNPX0FMTE9DQVRFRF9JTVBMKEZpbGVTeXN0ZW1IYW5kbGUpOwog
Ci1GaWxlU3lzdGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQmIGNvbnRleHQsIEZpbGVTeXN0ZW1IYW5kbGU6OktpbmQga2luZCwgU3RyaW5nJiYgbmFtZSwg
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQotICAgIDogQWN0aXZlRE9NT2JqZWN0KCZjb250
ZXh0KQorRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25D
b250ZXh0KiBjb250ZXh0LCBGaWxlU3lzdGVtSGFuZGxlOjpLaW5kIGtpbmQsIFN0cmluZyYmIG5h
bWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFJlZjxGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24+JiYgY29ubmVjdGlvbikKKyAgICA6IEFjdGl2ZURPTU9iamVjdChj
b250ZXh0KQogICAgICwgbV9raW5kKGtpbmQpCiAgICAgLCBtX25hbWUoV1RGTW92ZShuYW1lKSkK
ICAgICAsIG1faWRlbnRpZmllcihpZGVudGlmaWVyKQpAQCAtNDQsNyArNDQsMTkgQEAgRmlsZVN5
c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250
ZXh0LCBGaWxlU3lzdGVtSGEKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAotRmlsZVN5c3Rl
bUhhbmRsZTo6fkZpbGVTeXN0ZW1IYW5kbGUoKSA9IGRlZmF1bHQ7CitGaWxlU3lzdGVtSGFuZGxl
Ojp+RmlsZVN5c3RlbUhhbmRsZSgpCit7CisgICAgY2xvc2UoKTsKK30KKwordm9pZCBGaWxlU3lz
dGVtSGFuZGxlOjpjbG9zZSgpCit7CisgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIHJldHVy
bjsKKyAgICAKKyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKyAgICBtX2Nvbm5lY3Rpb24tPmNsb3Nl
SGFuZGxlKG1faWRlbnRpZmllcik7Cit9CiAKIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNTYW1l
RW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9v
bGVhbj4mJiBwcm9taXNlKSBjb25zdAogewpAQCAtODIsNyArOTQsNyBAQCBjb25zdCBjaGFyKiBG
aWxlU3lzdGVtSGFuZGxlOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIAogdm9pZCBGaWxl
U3lzdGVtSGFuZGxlOjpzdG9wKCkKIHsKLSAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKyAgICBjbG9z
ZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAppbmRl
eCBiZjI4MDUwMDkwM2Y3YTU2ODhjZTlkYWVhODg1ODI2Mjk2ODI0OTk4Li42MWUzZWMzYzZjMWUw
ZjVlYTg1NzljN2RmOWU3ODRkMDRmM2NmOGNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKQEAgLTM2
LDcgKzM2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJlZDsK
IAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwogCi1jbGFzcyBGaWxlU3lzdGVt
SGFuZGxlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZp
bGVTeXN0ZW1IYW5kbGU+LCBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtSGFuZGxlPiB7Citj
bGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIENh
bk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1IYW5kbGU+LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50
ZWQ8RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmlsZVN5
c3RlbUhhbmRsZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUhhbmRsZSgpOwpA
QCAtNDksMTIgKzQ5LDEzIEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25z
dCB7IHJldHVybiBtX25hbWU7IH0KICAgICBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgYm9vbCBpc0Nsb3Nl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0KKyAgICB2b2lkIGNsb3NlKCk7CiAKICAg
ICB2b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJyZWQ8
SURMQm9vbGVhbj4mJikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmLCBj
b25zdCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKIAogcHJv
dGVjdGVkOgotICAgIEZpbGVTeXN0ZW1IYW5kbGUoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEtp
bmQsIFN0cmluZyYmIG5hbWUsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBSZWY8RmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uPiYmKTsKKyAgICBGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQqLCBLaW5kLCBTdHJpbmcmJiBuYW1lLCBGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJik7CiAgICAgRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uJiBjb25uZWN0aW9uKCkgeyByZXR1cm4gbV9jb25uZWN0aW9u
LmdldCgpOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uLmgKaW5kZXggNzc2ZTEzY2E1ZWI2NDc5Nzk0M2VmM2JjNDg1M2EzMWRkZWRmYjM1Ny4uNjRi
MGU1ZDIzOWQzZmIwOWY5ZDA1NjBjNTE4NzY1NWMxNzBiYTMxMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNjMsNyArNjMsNyBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgY2xvc2VTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS5jcHAKaW5kZXggYjg1YWRhZmMyOWI0ODcwOTFkZTY1YWI1MjQzOWI0NTFkMDM2NzVjNy4uODM0
YWNkOWRkMDQwZDlhNmZiNTljOTYzNDFlYTA5NjhhMWU0MGEzMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0xODAsMTMgKzE4MCwxMyBAQCB2b2lkIEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQoQ2xvc2VNb2RlIG1vZGUpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmIChtb2RlID09IENsb3NlTW9kZTo6QXN5bmMpIHsKLSAg
ICAgICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fc291cmNl
LT5jbG9zZVN5bmNBY2Nlc3NIYW5kbGUobV9pZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhp
cyA9IFJlZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGRp
ZENsb3NlQmFja2VuZChXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFtdKGF1dG8p
IHsgfSk7CisgICAgbV9zb3VyY2UtPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIs
IFtdKGF1dG8pIHsgfSk7CiAgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggYjUz
NjMyYzMxMjNhMWJmOTVmNzAzMzZjZWI4NjFiYzY4ZDRkMzE4Yy4uN2M2YWI4ZjU1ZTY4NjY0MTkx
ZTFlNzUxNDA2YjRiMzY5MDMyYjZhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTM0LDYgKzM0LDM2IEBACiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKIAorY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUgOiBwdWJsaWMg
VGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+IHsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgUmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlPiBjcmVhdGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgUmVmUHRyPEZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAgIHsKKyAgICAgICAgcmV0dXJuIGFkb3B0
UmVmKCpuZXcgRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUoaWRlbnRpZmllciwgV1RGTW92ZShj
b25uZWN0aW9uKSkpOworICAgIH0KKworICAgIH5GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZSgp
CisgICAgeworICAgICAgICBpZiAobV9pZGVudGlmaWVyLmlzVmFsaWQoKSAmJiBtX2Nvbm5lY3Rp
b24pCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKG1faWRlbnRpZmllcik7
CisgICAgfQorCisgICAgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgcmVsZWFzZSgpCisgICAg
eworICAgICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgICAgICByZXR1cm4gc3RkOjpl
eGNoYW5nZShtX2lkZW50aWZpZXIsIHsgfSk7CisgICAgfQorCitwcml2YXRlOgorICAgIEZpbGVT
eXN0ZW1IYW5kbGVDbG9zZVNjb3BlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZl
ciwgUmVmUHRyPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbj4mJiBjb25uZWN0aW9uKQorICAg
ICAgICA6IG1faWRlbnRpZmllcihpZGVudGlmZXIpCisgICAgICAgICwgbV9jb25uZWN0aW9uKFdU
Rk1vdmUoY29ubmVjdGlvbikpCisgICAgeworICAgIH0KKworICAgIEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIG1faWRlbnRpZmllcjsKKyAgICBSZWZQdHI8RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uPiBtX2Nvbm5lY3Rpb247Cit9OworCiBSZWY8V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uPiBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZShXb3Jr
ZXJHbG9iYWxTY29wZSYgc2NvcGUsIFJlZjxGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+JiYg
bWFpblRocmVhZENvbm5lY3Rpb24pCiB7CiAgICAgcmV0dXJuIGFkb3B0UmVmKCpuZXcgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKHNjb3BlLCBXVEZNb3ZlKG1haW5UaHJlYWRDb25u
ZWN0aW9uKSkpOwpAQCAtMTI3LDE3ICsxNTcsMjcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIK
ICAgICBtX2dldEhhbmRsZUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIs
IHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25u
ZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgbmFtZSA9IG5hbWUu
aXNvbGF0ZWRDb3B5KCksIGNyZWF0ZUlmTmVjZXNzYXJ5XSgpIG11dGFibGUgewotICAgICAgICBh
dXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUp
IG11dGFibGUgewotICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2Fz
dDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigp
KQotICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRHZXRIYW5kbGUoY2FsbGJhY2tJ
ZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxs
YmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2Vy
VGhyZWFkKSwgbWFpblRocmVhZENvbm5lY3Rpb25dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8UmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlPj4g
Y2xvc2VTY29wZTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQorICAg
ICAgICAgICAgICAgIGNsb3NlU2NvcGUgPSBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZTo6Y3Jl
YXRlKHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBXVEZNb3ZlKG1haW5UaHJlYWRDb25uZWN0aW9uKSk7
CisKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
Y2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KSwgY2xv
c2VTY29wZSA9IFdURk1vdmUoY2xvc2VTY29wZSldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICAgICAgYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKTsKKyAgICAgICAgICAgICAg
ICBpZiAoIWNvbm5lY3Rpb24pCisgICAgICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAg
ICAgICAgICAgIGlmIChjbG9zZVNjb3BlKQorICAgICAgICAgICAgICAgICAgICBjbG9zZVNjb3Bl
LnZhbHVlKCktPnJlbGVhc2UoKTsKKworICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEdl
dEhhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAg
ICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKIAogICAgICAg
ICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Z2V0RmlsZUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBj
cmVhdGVJZk5lY2Vzc2FyeSwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKICAgICB9KTsK
IH0KLQorICAgIAogdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERp
cmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25z
dCBTdHJpbmcmIG5hbWUsIGJvb2wgY3JlYXRlSWZOZWNlc3NhcnksIEZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1f
c2NvcGUpCkBAIC0xNDcsMTAgKzE4NywyMCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudAogICAg
IG1fZ2V0SGFuZGxlQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2Fs
bGJhY2spKTsKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29y
a2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rp
b24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBuYW1lID0gbmFtZS5pc29s
YXRlZENvcHkoKSwgY3JlYXRlSWZOZWNlc3NhcnldKCkgbXV0YWJsZSB7Ci0gICAgICAgIGF1dG8g
bWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0g
V1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAg
ICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRp
ZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0
YWJsZSB7Ci0gICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdv
cmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCi0g
ICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEdldEhhbmRsZShjYWxsYmFja0lkZW50
aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNr
ID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJl
YWQpLCBtYWluVGhyZWFkQ29ubmVjdGlvbl0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAg
ICAgICAgc3RkOjpvcHRpb25hbDxSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiBjbG9z
ZVNjb3BlOworICAgICAgICAgICAgaWYgKCFyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCisgICAgICAg
ICAgICAgICAgY2xvc2VTY29wZSA9IEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlOjpjcmVhdGUo
cmVzdWx0LnJldHVyblZhbHVlKCksIFdURk1vdmUobWFpblRocmVhZENvbm5lY3Rpb24pKTsKKwor
ICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxs
YmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpLCBjbG9zZVNj
b3BlID0gV1RGTW92ZShjbG9zZVNjb3BlKV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4o
c2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpOworICAgICAgICAgICAgICAgIGlm
ICghY29ubmVjdGlvbikKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgICAg
ICAgICAgaWYgKGNsb3NlU2NvcGUpCisgICAgICAgICAgICAgICAgICAgIGNsb3NlU2NvcGUudmFs
dWUoKS0+cmVsZWFzZSgpOworCisgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkR2V0SGFu
ZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0s
IFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9OwogCkBAIC0yNzEsNyAr
MzIxLDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNyZWF0ZVN5
bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUkKICAgICB9KTsKIH0KIAotdm9pZCBXb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBh
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRD
YWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBj
YWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBjYWxsYmFjayhF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKQEAgLTI4Nyw3ICszMzcsNyBAQCB2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZgogICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVs
dE1vZGUoKSk7CiAgICAgICAgIH07CiAKLSAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmNs
b3NlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVh
ZENhbGxiYWNrKSk7CisgICAgICAgIG1haW5UaHJlYWRDb25uZWN0aW9uLT5jbG9zZVN5bmNBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWlu
VGhyZWFkQ2FsbGJhY2spKTsKICAgICB9KTsKIH0KIApAQCAtMzUxLDEwICs0MDEsMjAgQEAgdm9p
ZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEhhbmRsZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGUKICAgICBtX2dldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2tzLmFk
ZChjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKIAogICAgIGNhbGxPbk1h
aW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29w
ZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0
aW9uLCBpZGVudGlmaWVyLCBuYW1lID0gbmFtZS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsK
LSAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxl
IHsKLSAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
Y2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1
dG8mIHNjb3BlKSBtdXRhYmxlIHsKLSAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9u
ID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkR2V0SGFuZGxl
V2l0aFR5cGUoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICBh
dXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKSwgbWFpblRocmVhZENvbm5lY3Rpb25dKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgICAgIHN0ZDo6b3B0aW9uYWw8UmVmPEZpbGVTeXN0ZW1I
YW5kbGVDbG9zZVNjb3BlPj4gY2xvc2VTY29wZTsKKyAgICAgICAgICAgIGlmICghcmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKQorICAgICAgICAgICAgICAgIGNsb3NlU2NvcGUgPSBGaWxlU3lzdGVtSGFu
ZGxlQ2xvc2VTY29wZTo6Y3JlYXRlKHJlc3VsdC5yZXR1cm5WYWx1ZSgpLmZpcnN0LCBXVEZNb3Zl
KG1haW5UaHJlYWRDb25uZWN0aW9uKSk7CisgICAgCisgICAgICAgICAgICB3b3JrZXJUaHJlYWQt
PnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0g
Y3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCksIGNsb3NlU2NvcGUgPSBXVEZNb3ZlKGNsb3NlU2NvcGUp
XSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGF1dG8gY29ubmVjdGlv
biA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uKCk7CisgICAgICAgICAgICAgICAgaWYgKCFjb25uZWN0aW9uKQorICAgICAgICAg
ICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgICAgICBpZiAoY2xvc2VTY29wZSkKKyAg
ICAgICAgICAgICAgICAgICAgY2xvc2VTY29wZS52YWx1ZSgpLT5yZWxlYXNlKCk7CisKKyAgICAg
ICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRHZXRIYW5kbGVXaXRoVHlwZShjYWxsYmFja0lkZW50
aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpk
ZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDk4MzZiMWU3NGZiYTc2YmU3YTFlMDg4YWRj
MGU1MDkzNjcxODM1OWYuLjlkMjY0NTI0MzNmYTVjNTBlNWY1Mzg3YTA2NjI5Nzg1NDBhZjQyNTIg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgK
QEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNh
bGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNz
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgY2xvc2Uo
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZWdpc3Rl
clN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWwgeyB9OwogICAgIHZvaWQgdW5y
ZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvc3RvcmFnZS9TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3N0b3JhZ2UvU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDc4MDRhODAyN2Q0MDY5MjNh
MzRjMzllYWNjZWM2OTNjZDEwNjExNmMuLmFkMDdmMzkxNTFjYWU0MzFkMWJiMzk3YjgyOGRkYjIy
YWE0YTk4MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvc3RvcmFnZS9TdG9y
YWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9zdG9yYWdlL1N0b3Jh
Z2VNYW5hZ2VyLmNwcApAQCAtMTIxLDEyICsxMjEsNyBAQCB2b2lkIFN0b3JhZ2VNYW5hZ2VyOjpm
aWxlU3lzdGVtQWNjZXNzR2V0RGlyZWN0b3J5KERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZh
YwogCiAgICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGNvbm5lY3Rpb25dID0gcmVzdWx0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha05hdmlnYXRvciA/
IHdlYWtOYXZpZ2F0b3ItPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAg
ICAgIGlmICghY29udGV4dCkgewotICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUo
aWRlbnRpZmllcik7Ci0gICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9u
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOwotICAgICAg
ICB9Ci0KLSAgICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6
OmNyZWF0ZSgqY29udGV4dCwgeyB9LCBpZGVudGlmaWVyLCBSZWYgeyAqY29ubmVjdGlvbiB9KSk7
CisgICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVh
dGUoY29udGV4dCwgeyB9LCBpZGVudGlmaWVyLCBSZWYgeyAqY29ubmVjdGlvbiB9KSk7CiAgICAg
fSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmluZGV4IDRmNzJjZDAzZjM2
OGY0NTc2ZDQzNWQ2N2U2MmUzYTExYjkyY2ZlYTQuLjczYWE2NzcyMTgzMDk4NTg0ZTFmMWJlMTA5
OWNkZjM1MDAyMGZmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcApAQCAtNjgs
NiArNjgsOCBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZSgpCiAgICAgaWYg
KCFtX21hbmFnZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmIChtX2FjdGl2ZVN5bmNBY2Nl
c3NIYW5kbGUpCisgICAgICAgIGNsb3NlU3luY0FjY2Vzc0hhbmRsZSgqbV9hY3RpdmVTeW5jQWNj
ZXNzSGFuZGxlKTsKICAgICBtX21hbmFnZXItPmNsb3NlSGFuZGxlKCp0aGlzKTsKIH0KIApAQCAt
MTgxLDcgKzE4Myw3IEBAIEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpBY2Nlc3NI
YW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlCiAgICAgcmV0dXJuIHN0ZDo6
cGFpciB7ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUsIFdURk1vdmUoKmlwY0hhbmRsZSkgfTsK
IH0KIAotc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lzdGVtU3Rv
cmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCitzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NIYW5k
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUgfHwg
Km1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogICAg
ICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bjsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlLmgKaW5kZXggNDczMzhlZmU1MzgyMmE3NmE1NDg0ZjI5YzkzNTc2NzhmNDAx
ODg1Yy4uMTYxYTg5YjgwYTNkMTg0YWYxZDM5OGFlODEzZjgzMDFjZWIwNTc0NiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVibGljOgogCiAgICAgdXNp
bmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47CiAgICAgRXhwZWN0
ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gY3JlYXRlU3luY0Fj
Y2Vzc0hhbmRsZSgpOwotICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
Y2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKKyAg
ICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNsb3NlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogICAg
IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyPiBhY3RpdmVTeW5jQWNjZXNzSGFuZGxlKCkgY29uc3QgeyByZXR1cm4gbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIu
Y3BwCmluZGV4IDI5Y2ZiMGM2YjM3M2EyNWZmMDFjY2U4NjMzYzk1ZTU2YjFhY2I3ZjQuLjA5Zjgy
MjIzOTlkNzdmOTNkZThiNjk5MzFkZWU0YTQzZGEzMTE4ZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwCkBAIC05OSw2ICs5OSwxMCBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdl
TWFuYWdlcjo6Y2xvc2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUmIGhhbmRsZSkKICAg
ICBhdXRvIGlkZW50aWZpZXIgPSBoYW5kbGUuaWRlbnRpZmllcigpOwogICAgIGF1dG8gdGFrZW5I
YW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlmaWVyKTsKICAgICBBU1NFUlQodGFrZW5IYW5k
bGUuZ2V0KCkgPT0gJmhhbmRsZSk7CisgICAgZm9yIChhdXRvJiBoYW5kbGVzIDogbV9oYW5kbGVz
QnlDb25uZWN0aW9uLnZhbHVlcygpKSB7CisgICAgICAgIGlmIChoYW5kbGVzLnJlbW92ZShpZGVu
dGlmaWVyKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KICAgICBtX3JlZ2lzdHJ5LnVucmVn
aXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAK
aW5kZXggNTY0MTg1Y2E5MDc1Y2FkMDhmNzg0NzNlMTUyMDc1ZDE3MjU3MDI5MC4uMDQyOTNmOGM4
MDVlZTUwZDk1NjZkYWQ5ZjdmNTRiMGMwNTMwNDFjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5jcHAKQEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbgogICAgIGZp
bGVIYW5kbGUuY2xvc2UoKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3Nl
QWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZp
ZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8Rmls
ZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFpbigpKTsKIApAQCAtMzg3
LDcgKzM4Nyw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vzc0hhbmRs
ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllCiAgICAgaWYgKCFoYW5kbGUpCiAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVtU3RvcmFnZUVycm9yOjpV
bmtub3duKTsKIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Y2xvc2UoYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+Y2xvc2VTeW5j
QWNjZXNzSGFuZGxlKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmdldEhhbmRsZU5hbWVzKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVj
dG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3
b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCBiODA5NzI1OGZkYjkyZDEwYzU3MDAzNDA1
Y2Y4M2NkMTA5ZTAwZmU4Li5kMjFkNjU2ZDNhNjcyN2M5OGQxMmE0MTIzNzVlZDA1MmE1M2E5ZTkx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0xMDMsNyArMTAzLDcgQEAgcHJpdmF0ZToK
ICAgICB2b2lkIGdldEZpbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8U3RyaW5nLCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwogICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBzdGQ6OnBhaXI8V2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVI
YW5kbGU+OwogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxBY2Nl
c3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwotICAgIHZvaWQgY2xv
c2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CisgICAg
dm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJik7CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5n
PiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldEhhbmRsZShJUEM6
OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5n
JiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxzdGQ6OnBhaXI8V2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMu
aW4KaW5kZXggMDQyMmI2MzQ3NTFkMDM4NWY4NGUwMWY2NGFjNjFkYWYzMWMxNWU4OC4uYTUxNmFk
YTk4MzJmZGVmNWI2ODE0OTQ0MjE1ZjY4OGZkYTgxYzYxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNiw3ICszNiw3IEBACiAgICAgTW92ZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIFN0cmluZyBuZXdO
YW1lKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJl
c3VsdCkgQXN5bmMKICAgICBHZXRGaWxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxTdHJpbmcsIFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVk
PHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIs
IElQQzo6U2hhcmVkRmlsZUhhbmRsZT4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4g
cmVzdWx0KSBBc3luYwotICAgIENsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25h
bDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKKyAgICBDbG9z
ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEdldEhhbmRsZU5hbWVzKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxWZWN0
b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5j
CiAgICAgR2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFN0cmluZyBuYW1lKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGI3YWJkY2ZkZTVjZjhhYmNjNjM4
NWU0YTFhMDc5YTg1NWViYzJkNjcuLmM4OTQwYTFjMjczZmQ4ZTQ5YTNkMTFhYTMzYmNjMzE3YTM0
NzIzYmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwCkBAIC0xNTMsMTIgKzE1MywxMiBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSAogICAgIH0p
OwogfQogCi12b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZv
aWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xvc2VBY2Nl
c3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9u
SGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxl
IHsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1N0b3JhZ2VNYW5hZ2VyOjpDbG9zZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNz
SGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKICAgICB9KTsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAzYTUxYzNkMTc4N2JhOTQz
YzU2MTcwMDkwMDY5Mzg1NzhkYWJhZTI1Li5mZDZlZjY0ZDRhYTk5YWQyZGExOTdmNGZhZmIzM2I5
YWFjZGE2NTFiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oCkBAIC04NSw3ICs4NSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRGaWxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYmKSBmaW5hbDsKIAog
ICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRBY2Nl
c3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGNsb3NlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgY2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Vm9pZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgdW5yZWdp
c3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447331</attachid>
            <date>2021-12-15 23:53:06 -0800</date>
            <delta_ts>2021-12-16 00:02:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234271-20211215235305.patch</filename>
            <type>text/plain</type>
            <size>45130</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOWUzY2FhZTM0OGIwM2M1
YjgzOTVkYmU2NjNiMTJkMWY5MmFjODk0Zi4uNmMwMjA3ODczYzc0ZTczNDM3ZTBlZTdhZTg2MDkz
YjY0N2UzZTQ2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ3IEBACisyMDIxLTEyLTE1ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2
MDEpOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFy
ZSBjb25zaXN0ZW50bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdoZW4gY29u
dGV4dCBzdG9wcywgRmlsZVN5c3RlbUhhbmRsZSBzZXRzIGl0cyBzdGF0ZSB0byBjbG9zZWQuIEEg
Y2xvc2VkIEZpbGVTeXN0ZW1IYW5kbGUgd2lsbCByZXR1cm4gZWFybHkgb24KKyAgICAgICAgb3Bl
cmF0aW9ucyBpbmNsdWRpbmcgY2xvc2luZyBzeW5jIGFjY2VzcyBoYW5kbGUgKGFza2luZyBiYWNr
ZW5kIHRvIGNsb3NlIGhhbmRsZSBhbmQgcmVsZWFzaW5nIGxvY2spLiBJZiBiYWNrZW5kIAorICAg
ICAgICB0aGlua3MgZXhpc3RpbmcgYWNjZXNzIGhhbmRsZSBpcyBub3QgY2xvc2VkLCBpdCB3aWxs
IHByZXZlbnQgbmV3IGFjY2VzcyBoYW5kbGUgZnJvbSBiZWluZyBjcmVhdGVkLCBhbmQgdGhpcyAK
KyAgICAgICAgbGVhZHMgdG8gdGhlIHRlc3QgZmFpbHVyZS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IGJhY2tlbmQgaXNuJ3Qgbm90aWZpZWQgYWJvdXQgdGhlIGNsb3NlIG9mIGEgaGFu
ZGxlOiB3ZSBvbmx5IHNldCB0aGUgY2xvc2Ugc3RhdGUgaW4gCisgICAgICAgIEZpbGVTeXN0ZW1I
YW5kbGUuIFRvIGZpeCB0aGUgaXNzdWUsIGxldCdzIG1ha2Ugc3VyZSBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlIGlzIGNhbGxlZCB3aGVuIAorICAgICAgICBjb250ZXh0
IHN0b3BzIGFuZCB3aGVuIEZpbGVTeXN0ZW1IYW5kbGUgaXMgZGV0cm95ZWQuCisKKyAgICAgICAg
KiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFu
ZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERp
cmVjdG9yeUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOjpnZXRIYW5kbGUpOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRmlsZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lz
dGVtRmlsZUhhbmRsZTo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZSk6IERlbGV0ZWQuCisgICAgICAgICogTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmg6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6fkZpbGVTeXN0ZW1IYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6RmlsZVN5c3RlbUhhbmRsZTo6Y2xvc2UpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZTo6c3RvcCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQpOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRGaWxlSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6Oldv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxlKToKKyAgICAgICAg
KFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VTeW5jQWNj
ZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Z2V0SGFuZGxlKToKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisKIDIwMjEtMTItMTUgIENo
cmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2Jhc2ljLWF1dGgtc3VicmVzb3VyY2UuaHRtbCBhbmQgc29tZSBvdGhlciBodHRwIGF1dGgg
dGVzdHMgYXJlIGZsYWt5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDNhY2EwYzhmMGZjYjcwYjZjMGFhN2IyNWY5OTBi
Yjc2NWM5NTUxOGEuLjRjNGRmZGMyNzYxYWIwOTFmYWI4OWE2YTBjNzg1M2ZmNTJjNzM0NmQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMTItMTUgIFNpaHVpIExpdSAgPHNpaHVpX2xp
dUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lPTiAocjI4NjYwMSk6IHN0b3JhZ2UvZmls
ZXN5c3RlbWFjY2Vzcy9zeW5jLWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBh
bmQgZmlsZS1zeXN0ZW0tYWNjZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRs
ZS10cnVuY2F0ZS5odHRwcy50ZW50YXRpdmUud29ya2VyLmh0bWwgYXJlIGNvbnNpc3RlbnRseSBm
YWlsaW5nCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MzQyNzEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzg2NDM0MTExPgorCisgICAgICAgIFJldmll
d2VkIGJ5IFlvdWVubiBGYWJsZXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICog
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5k
bGUpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0
b3JhZ2VNYW5hZ2VyLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3Jr
U3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3Jl
U3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9y
eUhhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgor
CiAyMDIxLTEyLTE1ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZW1vdGVBdWRpb01lZGlhU3RyZWFtVHJhY2tSZW5kZXJlckludGVybmFsVW5pdE1hbmFnZXI6
OlVuaXQgc2hvdWxkIG9ubHkgcmVzZXQgb25jZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3Rv
cnlIYW5kbGUuY3BwCmluZGV4IGM5N2RhOWFjYTk1NjBjMWE2OTNmODgyNjZjZDllNjA0YTE5M2E0
YzAuLjk0MDk0ODM3MjBiYjRhNjE4OTRmNTRmMmU5NDhhODUyN2VlZDg3NzQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCiAK
KyNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oIgogI2luY2x1ZGUgIkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVk
LmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmgiCkBAIC01NiwxNCAr
NTcsMTMgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXRGaWxlSGFuZGxlKGNv
bnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDwKICAgICAgICAgaWYgKHJlc3VsdC5oYXNF
eGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQucmV0
dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMt
PnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIGlmICghY29udGV4
dCkgewotICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7Cisg
ICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7
Ci0gICAgICAgIH0KIAotICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCByZXN1bHQucmV0dXJuVmFsdWUo
KSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0Rp
cmVjdG9yeV0gPSByZXN1bHQucmV0dXJuVmFsdWUoKS0+cmVsZWFzZSgpOworICAgICAgICBBU1NF
UlQoIWlzRGlyZWN0b3J5KTsKKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKEZpbGVTeXN0ZW1GaWxl
SGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUgfSwgaWRlbnRpZmllciwgV1RG
TW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCkBAIC03NywxMyArNzcsMTIgQEAgdm9p
ZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXREaXJlY3RvcnlIYW5kbGUoY29uc3QgU3Ry
aW5nJiBuYW1lLCBzdGQ6Om9wdGkKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkK
ICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlv
bigpKTsKIAotICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsK
ICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIGlmICghY29udGV4dCkgewotICAgICAg
ICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmllcik7CisgICAgICAgIGlmICgh
Y29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJ
bnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQiX3MgfSk7Ci0gICAgICAgIH0K
IAorICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmV0dXJu
VmFsdWUoKS0+cmVsZWFzZSgpOworICAgICAgICBBU1NFUlQoaXNEaXJlY3RvcnkpOwogICAgICAg
ICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Y3JlYXRlKCpjb250
ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1vdmUoY29ubmVjdGlvbikpKTsK
ICAgICB9KTsKIH0KQEAgLTEyNiwxMiArMTI1LDEwIEBAIHZvaWQgRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6Z2V0SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8
CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CiAKLSAgICAgICAg
YXV0byBbaWRlbnRpZmllciwgaXNEaXJlY3RvcnldID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1
ZSgpOworICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmV0
dXJuVmFsdWUoKS0+cmVsZWFzZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha1RoaXMg
PyB3ZWFrVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAg
aWYgKCFjb250ZXh0KSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVu
dGlmaWVyKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBs
ZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMg
c3RvcHBlZCJfcyB9KTsKLSAgICAgICAgfQogCiAgICAgICAgIGlmIChpc0RpcmVjdG9yeSkgewog
ICAgICAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRsZSA9IEZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVy
LCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuY3BwCmlu
ZGV4IDhmMWZiNWZkZTcxYTM5YTZmYTI3YTY2MWY2ZmZjZDMxNTY0OTMxMTIuLjMxZWZjMjdkOWU0
MDEwY2U3MDZkMzg2MTAwNTUxYzQzYTMzZmVlMzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFu
ZGxlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZpbGVTeXN0ZW1GaWxlSGFuZGxl
LmgiCiAKICNpbmNsdWRlICJGaWxlLmgiCisjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUNsb3Nl
U2NvcGUuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKICNpbmNs
dWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlz
ZURlZmVycmVkLmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6
OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVyZmFjCiAg
ICAgICAgIGF1dG8qIGNvbnRleHQgPSBwcm90ZWN0ZWRUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250
ZXh0KCk7CiAgICAgICAgIGlmICghY29udGV4dCkgewogICAgICAgICAgICAgRmlsZVN5c3RlbTo6
Y2xvc2VGaWxlKGZpbGUpOwotICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y2xvc2UoaWRlbnRp
ZmllciwgeyB9KTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPmNsb3NlU3luY0FjY2Vzc0hh
bmRsZShpZGVudGlmaWVyLCB7IH0pOwogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0
KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9
KTsKICAgICAgICAgfQogCkBAIC05MCwxMiArOTEsMTIgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJm
YWMKICAgICB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y2xvc2UoRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxldGlvbkhh
bmRsZXIpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUo
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCiAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkhhbmRsZSBpcyBj
bG9zZWQiX3MgfSk7CiAKLSAgICBjb25uZWN0aW9uKCkuY2xvc2UoaWRlbnRpZmllcigpLCBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgY29u
bmVjdGlvbigpLmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyKCksIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBGaWxl
U3lzdGVtRmlsZUhhbmRsZTo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5j
QWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAppbmRleCA2ZTQ2ODhmYTky
ZDY1OTFiZGM3YjcwZWVkYjVhNjIxMTA0Y2JlMGVmLi4wZTExNzI0ZGZiZmMwYmQ5MzU5NTI4MWM4
MzI3MTIxZDk3MDhmMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaApAQCAtNDEsNyAr
NDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRGaWxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJ
bnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERP
TVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU+
PiYmKTsKLSAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJik7CisgICAg
dm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsK
ICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlJik7CiAgICAgdm9pZCB1
bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVz
eXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKaW5kZXggYjVjNWI5NWI0MmU3Yjk1ZThk
MTFkZDk2ZmM3YjY4ZWNjNGYwNTFmMS4uZTYwMzBjNjQ2YjNlOTZjNjUzYzUxNjIyMzUyZGY1Zjc3
ODY4ZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNj
ZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcApAQCAtNDQsNyArNDQsMTkgQEAgRmls
ZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0LCBGaWxlU3lzdGVtSGEKICAgICBzdXNwZW5kSWZOZWVkZWQoKTsKIH0KIAotRmlsZVN5
c3RlbUhhbmRsZTo6fkZpbGVTeXN0ZW1IYW5kbGUoKSA9IGRlZmF1bHQ7CitGaWxlU3lzdGVtSGFu
ZGxlOjp+RmlsZVN5c3RlbUhhbmRsZSgpCit7CisgICAgY2xvc2UoKTsKK30KKwordm9pZCBGaWxl
U3lzdGVtSGFuZGxlOjpjbG9zZSgpCit7CisgICAgaWYgKG1faXNDbG9zZWQpCisgICAgICAgIHJl
dHVybjsKKyAgICAKKyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKyAgICBtX2Nvbm5lY3Rpb24tPmNs
b3NlSGFuZGxlKG1faWRlbnRpZmllcik7Cit9CiAKIHZvaWQgRmlsZVN5c3RlbUhhbmRsZTo6aXNT
YW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Qcm9taXNlRGVmZXJyZWQ8SURM
Qm9vbGVhbj4mJiBwcm9taXNlKSBjb25zdAogewpAQCAtODIsNyArOTQsNyBAQCBjb25zdCBjaGFy
KiBGaWxlU3lzdGVtSGFuZGxlOjphY3RpdmVET01PYmplY3ROYW1lKCkgY29uc3QKIAogdm9pZCBG
aWxlU3lzdGVtSGFuZGxlOjpzdG9wKCkKIHsKLSAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKyAgICBj
bG9zZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApp
bmRleCBiZjI4MDUwMDkwM2Y3YTU2ODhjZTlkYWVhODg1ODI2Mjk2ODI0OTk4Li41ODZkMzkyZjI1
MmFhYWMzOWQwMGQzODExOWQ1NGYwYTdlNGE4NDZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKQEAg
LTM2LDcgKzM2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNzIERPTVByb21pc2VEZWZlcnJl
ZDsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOwogCi1jbGFzcyBGaWxlU3lz
dGVtSGFuZGxlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRy
PEZpbGVTeXN0ZW1IYW5kbGU+LCBwdWJsaWMgUmVmQ291bnRlZDxGaWxlU3lzdGVtSGFuZGxlPiB7
CitjbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1IYW5kbGU+LCBwdWJsaWMgVGhyZWFkU2FmZVJlZkNv
dW50ZWQ8RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtFX0lTT19BTExPQ0FURUQoRmls
ZVN5c3RlbUhhbmRsZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbUhhbmRsZSgp
OwpAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgY29uc3QgU3RyaW5nJiBuYW1lKCkgY29u
c3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsgfQogICAgIGJvb2wgaXNDbG9z
ZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CisgICAgdm9pZCBjbG9zZSgpOwogCiAg
ICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiwgRE9NUHJvbWlzZURlZmVycmVk
PElETEJvb2xlYW4+JiYpIGNvbnN0OwogICAgIHZvaWQgbW92ZShGaWxlU3lzdGVtSGFuZGxlJiwg
Y29uc3QgU3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJik7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggNzc2ZTEzY2E1ZWI2NDc5
Nzk0M2VmM2JjNDg1M2EzMWRkZWRmYjM1Ny4uNmUzOWU2ZTU4ZmM4NTNlNThjM2MwM2NhZjZhZTY0
MThjNjhjNWMyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApA
QCAtMzcsNiArMzcsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIEZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU7CiBjbGFzcyBGaWxlU3lzdGVtRmlsZUhhbmRsZTsKK2NsYXNzIEZpbGVT
eXN0ZW1IYW5kbGVDbG9zZVNjb3BlOwogY2xhc3MgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU7
CiB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRXhjZXB0aW9uT3I7CiAKQEAgLTQ1LDcgKzQ2LDcg
QEAgcHVibGljOgogICAgIHZpcnR1YWwgfkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpIHsg
fQogCiAgICAgdXNpbmcgU2FtZUVudHJ5Q2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPGJvb2w+JiYpPjsKLSAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXI+JiYpPjsKKyAgICB1c2luZyBHZXRIYW5kbGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlPj4mJik+Owog
ICAgIHVzaW5nIFJlc29sdmVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8VmVjdG9yPFN0cmluZz4+JiYpPjsKICAgICB1c2luZyBHZXRBY2Nlc3NIYW5kbGVDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8c3RkOjpwYWlyPEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbTo6UGxhdGZvcm1GaWxl
SGFuZGxlPj4mJik+OwogICAgIHVzaW5nIFZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OwpAQCAtNjMsMTIgKzY0LDEyIEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgcmVzb2x2ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFJlc29sdmVDYWxsYmFjayYmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGdldEZpbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZ0NhbGxi
YWNrJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgPSAwOwot
ICAgIHZpcnR1YWwgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNr
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgU2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5k
bGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZU5hbWVz
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpID0g
MDsKLSAgICB2aXJ0dWFsIHZvaWQgZ2V0SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2smJikgPSAwOwor
ICAgIHZpcnR1YWwgdm9pZCBnZXRIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNv
bnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgPSAwOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5j
cHAKaW5kZXggOWU1MmFlZmI0NDMxNDJjN2EwOTQwZDQxZWFiMTI3MjcwNmJhZjU0Yi4uYzlmZTM1
MGIxZjViYmU1NTdjZjBhYzRlN2M1ODZlM2RlMzc5YTQzOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCkBAIC0xODEsMTMgKzE4MSwxMyBAQCB2b2lkIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlOjpjbG9zZUJhY2tlbmQoQ2xvc2VNb2RlIG1vZGUpCiAgICAg
ICAgIHJldHVybjsKIAogICAgIGlmIChtb2RlID09IENsb3NlTW9kZTo6QXN5bmMpIHsKLSAgICAg
ICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBS
ZWYgeyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIG1fc291cmNlLT5j
bG9zZVN5bmNBY2Nlc3NIYW5kbGUobV9pZGVudGlmaWVyLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9
IFJlZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgICAgIGRpZENs
b3NlQmFja2VuZChXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIG1fc291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFtdKGF1dG8pIHsg
fSk7CisgICAgbV9zb3VyY2UtPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsIFtd
KGF1dG8pIHsgfSk7CiAgICAgZGlkQ2xvc2VCYWNrZW5kKHsgfSk7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVt
YWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKaW5kZXggYjUzNjMy
YzMxMjNhMWJmOTVmNzAzMzZjZWI4NjFiYzY4ZDRkMzE4Yy4uNzU1YjIyNGI0ZGE2MGNlNWEwMjQw
MzdlY2U2YzZhN2YyNTE1OGFmMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTEyOCw3ICsxMjgsOCBAQCB2b2lkIFdvcmtlckZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllcgogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3
b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVj
dGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlz
b2xhdGVkQ29weSgpLCBjcmVhdGVJZk5lY2Vzc2FyeV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0
byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQg
PSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAg
ICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVu
dGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBt
dXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gY3Jvc3NUaHJlYWRSZXN1bHQgPSByZXN1bHQuaGFz
RXhjZXB0aW9uKCkgPyBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+
PiB7IGNyb3NzVGhyZWFkQ29weShyZXN1bHQuZXhjZXB0aW9uKCkpIH0gOiBFeGNlcHRpb25PcjxS
ZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiB7IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFs
dWUoKSB9OworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JN
b2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IFdURk1vdmUoY3Jvc3NUaHJlYWRSZXN1
bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAgICAgIGlmIChhdXRvIGNv
bm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbigpKQogICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRH
ZXRIYW5kbGUoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CkBAIC0xNDgsNyArMTQ5LDggQEAg
dm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRs
ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnQKIAogICAgIGNhbGxPbk1haW5UaHJlYWQoW2NhbGxiYWNr
SWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsgbV9zY29wZS0+dGhyZWFkKCkgfSwgbWFp
blRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRDb25uZWN0aW9uLCBpZGVudGlmaWVyLCBu
YW1lID0gbmFtZS5pc29sYXRlZENvcHkoKSwgY3JlYXRlSWZOZWNlc3NhcnldKCkgbXV0YWJsZSB7
CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwg
d29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJs
ZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUo
W2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChh
dXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNyb3NzVGhyZWFkUmVzdWx0
ID0gcmVzdWx0Lmhhc0V4Y2VwdGlvbigpID8gRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5k
bGVDbG9zZVNjb3BlPj4geyBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlvbigpKSB9IDog
RXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlPj4geyByZXN1bHQucmVs
ZWFzZVJldHVyblZhbHVlKCkgfTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgp
LnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNy
b3NzVGhyZWFkUmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAg
ICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3Bl
KS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKICAgICAgICAgICAgICAgICAgICAgY29u
bmVjdGlvbi0+ZGlkR2V0SGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQp
KTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwpAQCAtMTU4
LDcgKzE2MCw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRE
aXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50CiAgICAgfSk7CiB9CiAKLXZvaWQg
V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVy
LCBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiYmIHJlc3VsdCkK
IHsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fZ2V0SGFuZGxlQ2FsbGJhY2tzLnRha2UoY2Fs
bGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKQEAg
LTI3MSw3ICsyNzMsNyBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSQogICAgIH0pOwogfQogCi12
b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlm
aWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxs
YmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9zY29wZSkKICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yIH0pOwpAQCAtMjg3LDcgKzI4OSw3
IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmCiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29w
OjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKIAotICAgICAgICBtYWluVGhyZWFkQ29ubmVj
dGlvbi0+Y2xvc2UoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV1RGTW92ZSht
YWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICAgICAgbWFpblRocmVhZENvbm5lY3Rpb24tPmNsb3Nl
U3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZN
b3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOwogICAgIH0pOwogfQogCkBAIC0zNDIsMTkgKzM0NCwy
MCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxl
TmFtZXMoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbAogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJl
c3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0
SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgR2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjayYmIGNhbGxiYWNrKQordm9pZCBXb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEhhbmRsZShGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZUNhbGxi
YWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Njb3BlKQogICAgICAgICByZXR1cm4gY2Fs
bGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CiAKICAgICBhdXRvIGNhbGxi
YWNrSWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7
Ci0gICAgbV9nZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVy
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9nZXRIYW5kbGVDYWxsYmFja3MuYWRkKGNhbGxi
YWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwogCiAgICAgY2FsbE9uTWFpblRocmVh
ZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJl
YWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlk
ZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgewogICAgICAg
ICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRo
cmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAg
ICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFj
a0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2Nv
cGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSA/IEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VT
Y29wZT4+IHsgY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdC5leGNlcHRpb24oKSkgfSA6IEV4Y2VwdGlv
bk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZT4+IHsgcmVzdWx0LnJlbGVhc2VSZXR1
cm5WYWx1ZSgpIH07CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92ZShjcm9zc1RocmVh
ZFJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1
dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCi0gICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24t
PmRpZEdldEhhbmRsZVdpdGhUeXBlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQp
KTsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkR2V0SGFuZGxlKGNhbGxiYWNr
SWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5kZXggOTgzNmIxZTc0ZmJhNzZiZTdhMWUw
ODhhZGMwZTUwOTM2NzE4MzU5Zi4uZjU0ZWUzMDA5YzU3MDQwY2ZiNmZiZWM1Njc3Y2MxOWI5ZGY2
N2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCByZWdpc3RlclN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSYpOwogICAgIHVzaW5nIENhbGxiYWNrSWRlbnRpZmllciA9IFdvcmtl
ckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxiYWNrSWRlbnRpZmllcjsKICAgICB2b2lk
IGRpZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7
Ci0gICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7CisgICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGU+PiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRp
b25PcjxWZWN0b3I8U3RyaW5nPj4mJik7CiAgICAgdm9pZCBjb21wbGV0ZVN0cmluZ0NhbGxiYWNr
KENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8U3RyaW5nPiYmKTsKICAgICB2b2lkIGRp
ZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxz
dGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVt
OjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmKTsKQEAgLTY4LDEwICs2OCwxMCBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBn
ZXRIYW5kbGVOYW1lcyhGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXND
YWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYp
IGZpbmFsOworICAgIHZvaWQgZ2V0SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBj
b25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQg
Z2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmlu
YWw7CiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOwotICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBjbG9zZVN5bmNBY2Nl
c3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJh
Y2smJikgZmluYWw7CiAgICAgdm9pZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
ZmllcikgZmluYWwgeyB9OwogICAgIHZvaWQgdW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGludmFs
aWRhdGVBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBm
aW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvagppbmRleCA0NzNiNzg5YjQ0M2UyODA4ZmVlYzNiMTExYjJlNmIxZTQ2N2I0MzRlLi43MzRm
NTI3MGUwZjg2ODQzZTE2OThjYzU1ZTY3N2QyNDg5M2JkYTBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0yOTAxLDYgKzI5MDEs
NyBAQAogCQk5MzQ0M0U4NjI2RTk5NUJEMDA1ODUzOEYgLyogRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMy
QzlCRDQyNkRENjI1QTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzQ0M0U4NzI2
RTk5NUMwMDA1ODUzOEYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzMkM5QkQ2MjZERDYyNUMwMDUzQjNEQiAv
KiBGaWxlU3lzdGVtRmlsZUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTkzNDQzRTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVt
SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzJDOUJEQTI2REQ2MjYxMDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTkzNDQ1MDg0Mjc2QTYzNTcw
MDFGNzEyQiAvKiBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0NDUwODIyNzZBNjM1NjAwMUY3MTJCIC8q
IEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0OTA3RTQxMjVCQkJDODAwN0YyM0EwIC8qIEdyYXBo
aWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA5MzQ5MDdFMzEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLzsg
c2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzQ5NTBDRDI1
Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1MEIxMjUzOTQzNDgwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbi5oICovOyB9OwogCQk5MzQ5NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyog
U3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQkMyNTM5NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJl
Y29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLzsgfTsKQEAgLTEyNTgyLDYgKzEyNTgzLDcgQEAKIAkJ
OTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0
aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0NDNFN0IyNkU4QTZCQzAw
NTg1MzhGIC8qIFN0b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9ICJTdG9y
YWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCI7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTkzNDQzRTdEMjZFOEE2QkMwMDU4NTM4RiAvKiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0
ZW1BY2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFnZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNz
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTkzNDQ1MDgyMjc2QTYzNTYwMDFGNzEy
QiAvKiBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk5MzQ5MDdFMzEyNUJCQkM4MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0
Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gR3JhcGhpY3NDb250ZXh0Q0cu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcx
IC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBs
YXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbi5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDk1MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBT
cGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTcGVlY2hSZWNvZ25p
dGlvbkVycm9yQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjUwMDQsNiAr
MjUwMDYsNyBAQAogCQkJCTkzMkM5QkQwMjZERDYyNTUwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFu
ZGxlLmNwcCAqLywKIAkJCQk5MzJDOUJEQTI2REQ2MjYxMDA1M0IzREIgLyogRmlsZVN5c3RlbUhh
bmRsZS5oICovLAogCQkJCTkzMkM5QkQ5MjZERDYyNjAwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFu
ZGxlLmlkbCAqLywKKwkJCQk5MzQ0NTA4MjI3NkE2MzU2MDAxRjcxMkIgLyogRmlsZVN5c3RlbUhh
bmRsZUNsb3NlU2NvcGUuaCAqLywKIAkJCQk5MzU0MjQyNzI3MDNCQzg4MDA1Q0E3MkMgLyogRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCAqLywKIAkJCQk5MzU0MjQyOTI3MDNCQ0FEMDA1Q0E3
MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggKi8sCiAJCQkJOTNFMjY5QTAyNzBB
NUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmNwcCAqLywKQEAgLTMz
MTIxLDcgKzMzMTI0LDYgQEAKIAkJCWlzYSA9IFBCWEhlYWRlcnNCdWlsZFBoYXNlOwogCQkJYnVp
bGRBY3Rpb25NYXNrID0gMjE0NzQ4MzY0NzsKIAkJCWZpbGVzID0gKAotCQkJCTdCNTgyREQ4Mjcx
NkY1NUIwMDRCOTJEMCAvKiAobnVsbCkgaW4gSGVhZGVycyAqLywKIAkJCQk3Q0QwRTJCODFGODBB
NDgyMDAxNkE0Q0UgLyogQWJvcnRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Qw
RTJCRjFGODBBNTZFMDAxNkE0Q0UgLyogQWJvcnRTaWduYWwuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTQ2Qjk1MTk1MjA3RDYzMzQwMEE3RDJERCAvKiBBYnN0cmFjdERPTVdpbmRvdy5oIGluIEhlYWRl
cnMgKi8sCkBAIC0zNDI4OCw2ICszNDI5MCw3IEBACiAJCQkJODNGQjMzNzUxRjUwOEE1QjAwOTg2
RTU0IC8qIEZpbGVTeXN0ZW1GaWxlRW50cnkuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDQzRTg3
MjZFOTk1QzAwMDU4NTM4RiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJOTM0NDNFODgyNkU5OTVDNDAwNTg1MzhGIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCBpbiBI
ZWFkZXJzICovLAorCQkJCTkzNDQ1MDg0Mjc2QTYzNTcwMDFGNzEyQiAvKiBGaWxlU3lzdGVtSGFu
ZGxlQ2xvc2VTY29wZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MkYyNzAzQ0E1MTAwNUNB
NzJDIC8qIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5
MzU0MjQzMDI3MDNDQjg2MDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk5M0UyNjlBMjI3MEE1RDVEMDAyQzRGRjAgLyogRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhh
bmRsZS5jcHAKaW5kZXggNGY3MmNkMDNmMzY4ZjQ1NzZkNDM1ZDY3ZTYyZTNhMTFiOTJjZmVhNC4u
NzNhYTY3NzIxODMwOTg1ODRlMWYxYmUxMDk5Y2RmMzUwMDIwZmZiMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxl
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC02OCw2ICs2OCw4IEBAIHZvaWQgRmlsZVN5c3RlbVN0b3Jh
Z2VIYW5kbGU6OmNsb3NlKCkKICAgICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAgcmV0dXJuOwog
CisgICAgaWYgKG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSkKKyAgICAgICAgY2xvc2VTeW5jQWNj
ZXNzSGFuZGxlKCptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUpOwogICAgIG1fbWFuYWdlci0+Y2xv
c2VIYW5kbGUoKnRoaXMpOwogfQogCkBAIC0xODEsNyArMTgzLDcgQEAgRXhwZWN0ZWQ8RmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+IEZpbGUKICAgICByZXR1cm4gc3RkOjpwYWlyIHsgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRs
ZSwgV1RGTW92ZSgqaXBjSGFuZGxlKSB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikK
K3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGU6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIW1f
YWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlICE9IGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yOjpVbmtub3duOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCA0NzMzOGVmZTUz
ODIyYTc2YTU0ODRmMjljOTM1NzY3OGY0MDE4ODVjLi4xNjFhODliODBhM2QxODRhZjFkMzk4YWU4
MTNmODMwMWNlYjA1NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApAQCAtNjEsNyAr
NjEsNyBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWly
PFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFy
ZWRGaWxlSGFuZGxlPjsKICAgICBFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7Ci0gICAgc3RkOjpvcHRpb25h
bDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3Jh
Z2VFcnJvcj4gY2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllcik7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+IGFjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUoKSBj
b25zdCB7IHJldHVybiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7IH0KIAogcHJpdmF0ZToKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMjljZmIwYzZiMzczYTI1ZmYwMWNj
ZTg2MzNjOTVlNTZiMWFjYjdmNC4uMDlmODIyMjM5OWQ3N2Y5M2RlOGI2OTkzMWRlZTRhNDNkYTMx
MThlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTk5LDYgKzk5LDEw
IEBAIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjbG9zZUhhbmRsZShGaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZSYgaGFuZGxlKQogICAgIGF1dG8gaWRlbnRpZmllciA9IGhhbmRsZS5pZGVu
dGlmaWVyKCk7CiAgICAgYXV0byB0YWtlbkhhbmRsZSA9IG1faGFuZGxlcy50YWtlKGlkZW50aWZp
ZXIpOwogICAgIEFTU0VSVCh0YWtlbkhhbmRsZS5nZXQoKSA9PSAmaGFuZGxlKTsKKyAgICBmb3Ig
KGF1dG8mIGhhbmRsZXMgOiBtX2hhbmRsZXNCeUNvbm5lY3Rpb24udmFsdWVzKCkpIHsKKyAgICAg
ICAgaWYgKGhhbmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpKQorICAgICAgICAgICAgYnJlYWs7Cisg
ICAgfQogICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRsZShpZGVudGlmaWVyKTsKIH0KIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtT
dG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA1NjQxODVjYTkwNzVjYWQwOGY3ODQ3M2Ux
NTIwNzVkMTcyNTcwMjkwLi4wNDI5M2Y4YzgwNWVlNTBkOTU2NmRhZDlmN2Y1NGIwYzA1MzA0MWNk
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29y
a1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMzc5LDcgKzM3OSw3IEBAIHZvaWQg
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVuCiAgICAgZmlsZUhhbmRsZS5jbG9zZSgpOwogfQogCi12b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VTeW5jQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFTU0VSVCghUnVu
TG9vcDo6aXNNYWluKCkpOwogCkBAIC0zODcsNyArMzg3LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWUKICAgICBpZiAoIWhhbmRsZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVy
KEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwogCi0gICAgY29tcGxldGlvbkhhbmRs
ZXIoaGFuZGxlLT5jbG9zZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7CisgICAgY29tcGxldGlv
bkhhbmRsZXIoaGFuZGxlLT5jbG9zZVN5bmNBY2Nlc3NIYW5kbGUoYWNjZXNzSGFuZGxlSWRlbnRp
ZmllcikpOwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0SGFuZGxlTmFtZXMo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VF
cnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCmluZGV4
IGI4MDk3MjU4ZmRiOTJkMTBjNTcwMDM0MDVjZjgzY2QxMDllMDBmZTguLmQyMWQ2NTZkM2E2NzI3
Yzk4ZDEyYTQxMjM3NWVkMDUyYTUzYTllOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKQEAg
LTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RmlsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxT
dHJpbmcsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdXNpbmcgQWNjZXNzSGFu
ZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47CiAgICAgdm9pZCBjcmVhdGVTeW5jQWNj
ZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7Ci0gICAgdm9pZCBjbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9u
YWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldEhhbmRsZU5hbWVz
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYp
OwogICAgIHZvaWQgZ2V0SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwg
Ym9vbD4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAwNDIyYjYzNDc1MWQwMzg1Zjg0ZTAx
ZjY0YWM2MWRhZjMxYzE1ZTg4Li5hNTE2YWRhOTgzMmZkZWY1YjY4MTQ5NDQyMTVmNjg4ZmRhODFj
NjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KQEAgLTM2
LDcgKzM2LDcgQEAKICAgICBNb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgU3RyaW5nIG5ld05hbWUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEdldEZpbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFN0
cmluZywgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAg
Q3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPiwgV2ViS2l0
OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgQ2xvc2VBY2Nlc3NI
YW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gcmVzdWx0KSBBc3luYworICAgIENsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAg
ICAgR2V0SGFuZGxlTmFtZXMoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBHZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUpIC0+IChFeHBlY3Rl
ZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+LCBX
ZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2FudHNDb25uZWN0
aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAK
aW5kZXggYjdhYmRjZmRlNWNmOGFiY2M2Mzg1ZTRhMWEwNzlhODU1ZWJjMmQ2Ny4uM2M4N2UxZjc1
NGZjNTkzNGNjYTlhOTI1ODA5NDY4ZDlmZWU4NGU0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRl
IDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRmlsZUhhbmRsZS5o
PgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KICNpbmNsdWRlIDxXZWJDb3Jl
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
V29ya2VyR2xvYmFsU2NvcGUuaD4KQEAgLTc4LDEzICs3OSwxMyBAQCB2b2lkIFdlYkZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbgogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29u
bmVjdGlvbiBpcyBsb3N0IiB9KTsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUoaWRlbnRp
ZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAg
IG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3Nh
cnkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5hbWUsIGNvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKICAgICAgICAg
YXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVChpZGVudGlm
aWVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaWRlbnRp
ZmllcikpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlQ2xvc2VTY29wZTo6Y3JlYXRlKGlkZW50aWZpZXIsIGZhbHNlLCAqdGhpcykpOwogICAgIH0p
OwogfQogCkBAIC05MywxMyArOTQsMTMgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGwKICAgICBp
ZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNv
cmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMgbG9z
dCIgfSk7CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUoaWRlbnRpZmllciwgbmFt
ZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgIG1fY29ubmVj
dGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6
OkdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSks
IFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbmFtZSwgY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUg
ewogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAgICAgICBhdXRv
IGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgQVNTRVJUKGlkZW50aWZpZXIu
aXNWYWxpZCgpKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShpZGVudGlmaWVy
KSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVD
bG9zZVNjb3BlOjpjcmVhdGUoaWRlbnRpZmllciwgdHJ1ZSwgKnRoaXMpKTsKICAgICB9KTsKIH0K
IApAQCAtMTUzLDEyICsxNTQsMTIgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUgKICAgICB9KTsK
IH0KIAotdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lk
Q2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNsb3NlQWNjZXNz
SGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhh
bmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7
CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtT
dG9yYWdlTWFuYWdlcjo6Q2xvc2VTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CiAgICAgfSk7CiB9CkBAIC0xNzYsMTYgKzE3
NywxOCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlTmFt
ZXMoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZQogICAgIH0pOwogfQogCi12b2lkIFdlYkZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYgY29tcGxldGlv
bkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKIAotICAgIG1fY29ubmVjdGlv
bi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6Okdl
dEhhbmRsZShpZGVudGlmaWVyLCBuYW1lKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpH
ZXRIYW5kbGUoaWRlbnRpZmllciwgbmFtZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0o
YXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAg
IHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9y
KCkpKTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3VsdC52YWx1ZSgp
KSk7CisgICAgICAgIAorICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSBy
ZXN1bHQudmFsdWUoKTsKKyAgICAgICAgQVNTRVJUKGlkZW50aWZpZXIuaXNWYWxpZCgpKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGU6OmNyZWF0ZShpZGVudGlmaWVyLCBpc0RpcmVjdG9yeSwgKnRoaXMpKTsKICAgICB9KTsKIH0K
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDNh
NTFjM2QxNzg3YmE5NDNjNTYxNzAwOTAwNjkzODU3OGRhYmFlMjUuLjc4MzAyZjgyNDk5ZDE2Mzli
ZDgxZDY2ZjQyMGU3N2E2ZTNkZmZkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTgxLDExICs4MSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQg
cmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0
cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZXNvbHZl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpS
ZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0SGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjayYmKSBm
aW5hbDsKKyAgICB2b2lkIGdldEhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Okdl
dEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmluYWw7CiAKICAgICB2
b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFu
ZGxlQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFj
ayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRD
YWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHVucmVnaXN0ZXJT
eW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllcikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447332</attachid>
            <date>2021-12-16 00:02:32 -0800</date>
            <delta_ts>2021-12-16 00:35:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234271-20211216000231.patch</filename>
            <type>text/plain</type>
            <size>50043</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI0YzQ4OTkwOTM2ZDM2
NTI2NTc4ZDU4OTNlZWY5MGZjYzY4NjQyYS4uYzBlY2MxMmI5YjhiNzcwYzdlNDc0NGQ0MDA4OGZh
Y2VlN2ZmYzI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTE2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2
MDEpOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFy
ZSBjb25zaXN0ZW50bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdoZW4gY29u
dGV4dCBzdG9wcywgRmlsZVN5c3RlbUhhbmRsZSBzZXRzIGl0cyBzdGF0ZSB0byBjbG9zZWQuIEEg
Y2xvc2VkIEZpbGVTeXN0ZW1IYW5kbGUgd2lsbCByZXR1cm4gZWFybHkgb24KKyAgICAgICAgb3Bl
cmF0aW9ucyBpbmNsdWRpbmcgY2xvc2luZyBzeW5jIGFjY2VzcyBoYW5kbGUgKGFza2luZyBiYWNr
ZW5kIHRvIGNsb3NlIGhhbmRsZSBhbmQgcmVsZWFzaW5nIGxvY2spLiBJZiBiYWNrZW5kIAorICAg
ICAgICB0aGlua3MgZXhpc3RpbmcgYWNjZXNzIGhhbmRsZSBpcyBub3QgY2xvc2VkLCBpdCB3aWxs
IHByZXZlbnQgbmV3IGFjY2VzcyBoYW5kbGUgZnJvbSBiZWluZyBjcmVhdGVkLCBhbmQgdGhpcyAK
KyAgICAgICAgbGVhZHMgdG8gdGhlIHRlc3QgZmFpbHVyZS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IGJhY2tlbmQgaXNuJ3Qgbm90aWZpZWQgYWJvdXQgdGhlIGNsb3NlIG9mIGEgaGFu
ZGxlOiB3ZSBvbmx5IHNldCB0aGUgY2xvc2Ugc3RhdGUgaW4gCisgICAgICAgIEZpbGVTeXN0ZW1I
YW5kbGUuIFRvIGZpeCB0aGUgaXNzdWUsIGxldCdzIG1ha2Ugc3VyZSBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlIGlzIGNhbGxlZCB3aGVuIAorICAgICAgICBjb250ZXh0
IHN0b3BzIGFuZCB3aGVuIEZpbGVTeXN0ZW1IYW5kbGUgaXMgZGV0cm95ZWQuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZSk6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NI
YW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5
c3RlbUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU6On5GaWxlU3lz
dGVtSGFuZGxlQ2xvc2VTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
Q2xvc2VTY29wZTo6cmVsZWFzZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
Q2xvc2VTY29wZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRHZXRIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRIYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0xMi0xNSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWElzb2xhdGVkT2JqZWN0Ojp0ZXh0TWFy
a2VyUmFuZ2VGb3JOU1JhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZDIwYThhMmUxZDI2YTZlZmQ5MDVjMGY2
MGUzYTI4NjRlZTJhZTc5Li5jMWZkNzNhYTBlYWYyNzYyZTQ1ZDlhODUyZGE2ZjZiNTliOTNjNmI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTEyLTE2ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2MDEpOiBzdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0
bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFyZSBjb25zaXN0ZW50
bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y2xvc2VIYW5kbGUpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZVN5bmNBY2Nlc3NIYW5k
bGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNz
SGFuZGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJl
Y3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmNsb3NlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aDoKKwogMjAyMS0xMi0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU29tZSB3ZWJwdXNodG9vbCBpbXByb3ZlbWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRl
eCAzMjhhZGI4YzAzMmM2ZDViZmY3NjUxNTMyYmNlZWY3NmRmZGY1OTFmLi41OWJhZjYwOTZhYzg2
YWYxYTY5MGJjNzU4YjU4MThlNzA4MTQ5N2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE3Miw2
ICsxNzIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaAogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAorICAgIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oCiAgICAgTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCmluZGV4IGM5N2RhOWFjYTk1NjBjMWE2OTNm
ODgyNjZjZDllNjA0YTE5M2E0YzAuLjk0MDk0ODM3MjBiYjRhNjE4OTRmNTRmMmU5NDhhODUyN2Vl
ZDg3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmgiCiAKKyNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlLmgiCkBAIC01NiwxNCArNTcsMTMgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
OjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDwKICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRvIGlkZW50
aWZpZXIgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdl
YWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0g
ICAgICAgIGlmICghY29udGV4dCkgewotICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5k
bGUoaWRlbnRpZmllcik7CisgICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQg
aGFzIHN0b3BwZWQiX3MgfSk7Ci0gICAgICAgIH0KIAotICAgICAgICBwcm9taXNlLnJlc29sdmUo
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBy
ZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgICAgICBhdXRv
IFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmV0dXJuVmFsdWUoKS0+cmVsZWFz
ZSgpOworICAgICAgICBBU1NFUlQoIWlzRGlyZWN0b3J5KTsKKyAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUg
fSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCkBAIC03
NywxMyArNzcsMTIgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXREaXJlY3Rv
cnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGkKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1
bHQucmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vh
a1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIGlmICgh
Y29udGV4dCkgewotICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmll
cik7CisgICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQi
X3MgfSk7Ci0gICAgICAgIH0KIAorICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9y
eV0gPSByZXN1bHQucmV0dXJuVmFsdWUoKS0+cmVsZWFzZSgpOworICAgICAgICBBU1NFUlQoaXNE
aXJlY3RvcnkpOwogICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1v
dmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KQEAgLTEyNiwxMiArMTI1LDEwIEBAIHZvaWQg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7CiAKLSAgICAgICAgYXV0byBbaWRlbnRpZmllciwgaXNEaXJlY3RvcnldID0gcmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVj
dG9yeV0gPSByZXN1bHQucmV0dXJuVmFsdWUoKS0+cmVsZWFzZSgpOwogICAgICAgICBhdXRvKiBj
b250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDog
bnVsbHB0cjsKLSAgICAgICAgaWYgKCFjb250ZXh0KSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9u
LT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKLSAgICAgICAgfQogCiAgICAgICAgIGlm
IChpc0RpcmVjdG9yeSkgewogICAgICAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRs
ZSA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsg
bmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuY3BwCmluZGV4IDhmMWZiNWZkZTcxYTM5YTZmYTI3YTY2MWY2ZmZjZDMxNTY0
OTMxMTIuLjMxZWZjMjdkOWU0MDEwY2U3MDZkMzg2MTAwNTUxYzQzYTMzZmVlMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAKICNpbmNsdWRlICJGaWxlLmgiCisjaW5jbHVkZSAiRmls
ZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgogI2lu
Y2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQgRmls
ZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVy
cmVkPElETEludGVyZmFjCiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSBwcm90ZWN0ZWRUaGlzLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgICAgIGlmICghY29udGV4dCkgewogICAgICAg
ICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGUpOwotICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+Y2xvc2UoaWRlbnRpZmllciwgeyB9KTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCB7IH0pOwogICAgICAgICAgICAgcmV0
dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4
dCBoYXMgc3RvcHBlZCJfcyB9KTsKICAgICAgICAgfQogCkBAIC05MCwxMiArOTEsMTIgQEAgdm9p
ZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNl
RGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9z
ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCiAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKLSAgICBjb25uZWN0aW9uKCkuY2xvc2Uo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisgICAgY29ubmVjdGlvbigpLmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlm
aWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aAppbmRleCA2ZTQ2ODhmYTkyZDY1OTFiZGM3YjcwZWVkYjVhNjIxMTA0Y2JlMGVmLi4wZTExNzI0
ZGZiZmMwYmQ5MzU5NTI4MWM4MzI3MTIxZDk3MDhmMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRGaWxlKERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKLSAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJik7CisgICAgdm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKaW5kZXgg
YjVjNWI5NWI0MmU3Yjk1ZThkMTFkZDk2ZmM3YjY4ZWNjNGYwNTFmMS4uZTYwMzBjNjQ2YjNlOTZj
NjUzYzUxNjIyMzUyZGY1Zjc3ODY4ZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcApAQCAt
NDQsNyArNDQsMTkgQEAgRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVtSGEKICAgICBzdXNwZW5kSWZOZWVk
ZWQoKTsKIH0KIAotRmlsZVN5c3RlbUhhbmRsZTo6fkZpbGVTeXN0ZW1IYW5kbGUoKSA9IGRlZmF1
bHQ7CitGaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5c3RlbUhhbmRsZSgpCit7CisgICAgY2xvc2Uo
KTsKK30KKwordm9pZCBGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSgpCit7CisgICAgaWYgKG1faXND
bG9zZWQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKyAg
ICBtX2Nvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKG1faWRlbnRpZmllcik7Cit9CiAKIHZvaWQgRmls
ZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Q
cm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNlKSBjb25zdAogewpAQCAtODIsNyAr
OTQsNyBAQCBjb25zdCBjaGFyKiBGaWxlU3lzdGVtSGFuZGxlOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKIAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKCkKIHsKLSAgICBtX2lzQ2xv
c2VkID0gdHJ1ZTsKKyAgICBjbG9zZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuaAppbmRleCBiZjI4MDUwMDkwM2Y3YTU2ODhjZTlkYWVhODg1ODI2Mjk2
ODI0OTk4Li41ODZkMzkyZjI1MmFhYWMzOWQwMGQzODExOWQ1NGYwYTdlNGE4NDZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlLmgKQEAgLTM2LDcgKzM2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IERPTVByb21pc2VEZWZlcnJlZDsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OwogCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1IYW5kbGU+LCBwdWJsaWMgUmVmQ291bnRlZDxG
aWxlU3lzdGVtSGFuZGxlPiB7CitjbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIEFjdGl2
ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1IYW5kbGU+LCBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoRmlsZVN5c3RlbUhhbmRsZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
RmlsZVN5c3RlbUhhbmRsZSgpOwpAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQogICAgIGJvb2wgaXNDbG9zZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CisgICAg
dm9pZCBjbG9zZSgpOwogCiAgICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiwg
RE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogICAgIHZvaWQgbW92ZShG
aWxlU3lzdGVtSGFuZGxlJiwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjViMGRmYTEzMWZiODNhMTg3MTkxODc1ZmIzY2I0MzFhYWFmZDUyZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZUNsb3NlU2NvcGUuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZp
bGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEZp
bGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVu
TG9vcD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGU+IGNyZWF0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGlz
RGlyZWN0b3J5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29w
ZShpZGVudGlmaWVyLCBpc0RpcmVjdG9yeSwgY29ubmVjdGlvbikpOworICAgIH0KKworICAgIH5G
aWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZSgpCisgICAgeworICAgICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgICAgIGlmIChtX2lkZW50aWZpZXIuaXNWYWxpZCgpKQorICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5jbG9zZUhhbmRsZShtX2lkZW50aWZpZXIpOworICAgIH0K
KworICAgIHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4gcmVsZWFz
ZSgpCisgICAgeworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CisgICAgICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobV9pZGVudGlmaWVyLmlzVmFsaWQoKSwgIkZpbGVTeXN0ZW1IYW5k
bGVDbG9zZVNjb3BlIHNob3VsZCBub3QgYmUgcmVsZWFzZWQgbW9yZSB0aGFuIG9uY2UiKTsKKyAg
ICAgICAgcmV0dXJuIHsgc3RkOjpleGNoYW5nZShtX2lkZW50aWZpZXIsIHsgfSksIG1faXNEaXJl
Y3RvcnkgfTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmVyLCBib29sIGlzRGlyZWN0b3J5
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9p
ZGVudGlmaWVyKGlkZW50aWZlcikKKyAgICAgICAgLCBtX2lzRGlyZWN0b3J5KGlzRGlyZWN0b3J5
KQorICAgICAgICAsIG1fY29ubmVjdGlvbihSZWYgeyBjb25uZWN0aW9uIH0pCisgICAgeworICAg
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIH0KKworICAgIExvY2sgbV9sb2Nr
OworICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllciBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fbG9jayk7CisgICAgYm9vbCBtX2lzRGlyZWN0b3J5OworICAgIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRl
eCA3NzZlMTNjYTVlYjY0Nzk3OTQzZWYzYmM0ODUzYTMxZGRlZGZiMzU3Li42ZTM5ZTZlNThmYzg1
M2U1OGMzYzAzY2FmNmFlNjQxOGM2OGM1YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOworY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU7CiBjbGFzcyBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsK
IApAQCAtNDUsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKCkgeyB9CiAKICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OwotICAgIHVzaW5nIEdldEhh
bmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNs
b3NlU2NvcGU+PiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwogICAgIHVzaW5nIEdl
dEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmKT47CiAgICAgdXNpbmcgVm9pZENhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CkBAIC02MywxMiAr
NjQsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVzb2x2ZUNhbGxiYWNr
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgU3RyaW5nQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVD
YWxsYmFjayYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxs
YmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclN5bmNB
Y2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0SGFuZGxlTmFtZXMoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEhhbmRsZU5h
bWVzQ2FsbGJhY2smJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlV2l0aFR5cGVD
YWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9
IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCA5ZTUyYWVmYjQ0MzE0MmM3YTA5NDBkNDFlYWIxMjcy
NzA2YmFmNTRiLi5jOWZlMzUwYjFmNWJiZTU1N2NmMGFjNGU3YzU4NmUzZGUzNzlhNDM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTE4MSwxMyArMTgx
LDEzIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlQmFja2VuZChDbG9z
ZU1vZGUgbW9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1vZGUgPT0gQ2xvc2VNb2Rl
OjpBc3luYykgewotICAgICAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgbV9zb3VyY2UtPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICAgICAgZGlkQ2xvc2VCYWNrZW5kKFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRp
ZmllciwgW10oYXV0bykgeyB9KTsKKyAgICBtX3NvdXJjZS0+Y2xvc2VTeW5jQWNjZXNzSGFuZGxl
KG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKICAgICBkaWRDbG9zZUJhY2tlbmQoeyB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcAppbmRleCBiNTM2MzJjMzEyM2ExYmY5NWY3MDMzNmNlYjg2MWJjNjhkNGQzMThjLi43NTVi
MjI0YjRkYTYwY2U1YTAyNDAzN2VjZTZjNmE3ZjI1MTU4YWYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMTI4LDcgKzEyOCw4
IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyCiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxs
YmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0s
IG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmll
ciwgbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCksIGNyZWF0ZUlmTmVjZXNzYXJ5XSgpIG11dGFi
bGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZp
ZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11
dGFibGUgewotICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JN
b2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQp
XSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJl
c3VsdCA9IHJlc3VsdC5oYXNFeGNlcHRpb24oKSA/IEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVt
SGFuZGxlQ2xvc2VTY29wZT4+IHsgY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdC5leGNlcHRpb24oKSkg
fSA6IEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZT4+IHsgcmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH07CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxv
b3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92
ZShjcm9zc1RocmVhZFJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAg
ICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihz
Y29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAg
IGNvbm5lY3Rpb24tPmRpZEdldEhhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVz
dWx0KSk7CiAgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKQEAg
LTE0OCw3ICsxNDksOCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Z2V0RGlyZWN0b3J5SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudAogCiAgICAgY2FsbE9uTWFp
blRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3Bl
LT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rp
b24sIGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xhdGVkQ29weSgpLCBjcmVhdGVJZk5lY2Vz
c2FyeV0oKSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2Fs
bGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1
dG8gcmVzdWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgp
LnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVh
ZENvcHkocmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8g
Y3Jvc3NUaHJlYWRSZXN1bHQgPSByZXN1bHQuaGFzRXhjZXB0aW9uKCkgPyBFeGNlcHRpb25PcjxS
ZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiB7IGNyb3NzVGhyZWFkQ29weShyZXN1bHQu
ZXhjZXB0aW9uKCkpIH0gOiBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGU+PiB7IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9OworICAgICAgICAgICAgd29ya2Vy
VGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJl
c3VsdCA9IFdURk1vdmUoY3Jvc3NUaHJlYWRSZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUg
ewogICAgICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJH
bG9iYWxTY29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQogICAgICAg
ICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRHZXRIYW5kbGUoY2FsbGJhY2tJZGVudGlmaWVy
LCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVs
dE1vZGUoKSk7CkBAIC0xNTgsNyArMTYwLDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnQKICAg
ICB9KTsKIH0KIAotdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZEdl
dEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25P
cjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpCit2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBj
YWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VT
Y29wZT4+JiYgcmVzdWx0KQogewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRIYW5kbGVD
YWxsYmFja3MudGFrZShjYWxsYmFja0lkZW50aWZpZXIpKQogICAgICAgICBjYWxsYmFjayhXVEZN
b3ZlKHJlc3VsdCkpOwpAQCAtMjcxLDcgKzI3Myw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0
b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJ
CiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpj
bG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Njb3BlKQog
ICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7
CkBAIC0yODcsNyArMjg5LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OmNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWYKICAgICAgICAgICAg
IH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9OwogCi0gICAgICAg
IG1haW5UaHJlYWRDb25uZWN0aW9uLT5jbG9zZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgICAgICBtYWluVGhyZWFk
Q29ubmVjdGlvbi0+Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRs
ZUlkZW50aWZpZXIsIFdURk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CiAgICAgfSk7CiB9CiAK
QEAgLTM0MiwxOSArMzQ0LDIwIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpkaWRHZXRIYW5kbGVOYW1lcyhDYWxsYmFja0lkZW50aWZpZXIgY2FsCiAgICAgICAgIGNh
bGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpnZXRIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYgY2Fs
bGJhY2spCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFt
ZSwgR2V0SGFuZGxlQ2FsbGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCiAg
ICAgICAgIHJldHVybiBjYWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsK
IAogICAgIGF1dG8gY2FsbGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKTsKLSAgICBtX2dldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2tzLmFkZChj
YWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2dldEhhbmRsZUNh
bGxiYWNrcy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAKICAg
ICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJl
ZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhy
ZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCldKCkg
bXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRl
bnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3Vs
dCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJl
c3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNyb3NzVGhy
ZWFkUmVzdWx0ID0gcmVzdWx0Lmhhc0V4Y2VwdGlvbigpID8gRXhjZXB0aW9uT3I8UmVmPEZpbGVT
eXN0ZW1IYW5kbGVDbG9zZVNjb3BlPj4geyBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlv
bigpKSB9IDogRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlPj4geyBy
ZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+
cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBX
VEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAg
ICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2Nv
cGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKLSAgICAgICAgICAgICAg
ICAgICAgY29ubmVjdGlvbi0+ZGlkR2V0SGFuZGxlV2l0aFR5cGUoY2FsbGJhY2tJZGVudGlmaWVy
LCBXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRH
ZXRIYW5kbGUoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAg
ICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgICAgIH07CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5ODM2
YjFlNzRmYmE3NmJlN2ExZTA4OGFkYzBlNTA5MzY3MTgzNTlmLi5mNTRlZTMwMDljNTcwNDBjZmI2
ZmJlYzU2NzdjYzE5YjlkZjY3Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lk
IHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlJik7CiAgICAgdXNpbmcgQ2FsbGJhY2tJ
ZGVudGlmaWVyID0gV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uQ2FsbGJhY2tJZGVu
dGlmaWVyOwogICAgIHZvaWQgZGlkSXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNl
cHRpb25Pcjxib29sPiYmKTsKLSAgICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZp
ZXIsIEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKKyAgICB2b2lk
IGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lz
dGVtSGFuZGxlQ2xvc2VTY29wZT4+JiYpOwogICAgIHZvaWQgZGlkUmVzb2x2ZShDYWxsYmFja0lk
ZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKICAgICB2b2lkIGNvbXBs
ZXRlU3RyaW5nQ2FsbGJhY2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxTdHJpbmc+
JiYpOwogICAgIHZvaWQgZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZp
ZXIsIEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwpAQCAtNjgsMTAgKzY4
LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lk
IHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBm
aW5hbDsKICAgICB2b2lkIGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0SGFuZGxlKEZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZVdp
dGhUeXBlQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXRIYW5kbGUoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlQ2FsbGJhY2smJikg
ZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJp
bmdDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBjbG9zZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2
b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmls
ZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vz
c0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbCB7IH07CiAgICAgdm9pZCB1bnJlZ2lzdGVyU3lu
Y0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDU4YjhhNjE1NDRkNDdiNDdkNmVhNzk2NDc3NDlj
ODBlMDdlYzVkOWYuLjZhMjRhNTQ1YWRmMjg2OWIzM2ViYzJmYTM2YzAxZGY5MWQ1NTM4NTIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJv
agorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTI5MDEsNiArMjkwMSw3IEBACiAJCTkzNDQzRTg2MjZFOTk1QkQwMDU4NTM4RiAvKiBGaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA5MzJDOUJENDI2REQ2MjVBMDA1M0IzREIgLyogRmlsZVN5c3RlbURpcmVj
dG9yeUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzNDQzRTg3MjZFOTk1QzAwMDU4NTM4RiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRsZS5o
IGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyQzlCRDYy
NkRENjI1QzAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0NDNFODgyNkU5OTVDNDAwNTg1
MzhGIC8qIEZpbGVTeXN0ZW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDkzMkM5QkRBMjZERDYyNjEwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFu
ZGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJ
OTM0NDUwODQyNzZBNjM1NzAwMUY3MTJCIC8qIEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ0NTA4MjI3
NkE2MzU2MDAxRjcxMkIgLyogRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4
MDA3RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGlj
c0NvbnRleHRDRy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTkzNDk1MENEMjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjEyNTM5
NDM0ODAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CiAJCTkzNDk1MENFMjUz
OTQzNjUwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCQzI1Mzk0MzRFMDA5
OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9OwpAQCAtMTI1ODQs
NiArMTI1ODUsNyBAQAogCQk5MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93
c0NvbGxlY3Rpb24uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRN
TFRhYmxlUm93c0NvbGxlY3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5
MzQ0M0U3QjI2RThBNkJDMDA1ODUzOEYgLyogU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vz
cy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0
ZXh0OyBwYXRoID0gIlN0b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsIjsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0NDNFN0QyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3Jh
Z2VNYW5hZ2VyRmlsZVN5c3RlbUFjY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTWFuYWdl
ckZpbGVTeXN0ZW1BY2Nlc3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NDUw
ODIyNzZBNjM1NjAwMUY3MTJCIC8qIEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAv
KiBHcmFwaGljc0NvbnRleHRDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBH
cmFwaGljc0NvbnRleHRDRy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5NTBB
RDI1Mzk0MzQ2MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb24uaWRsICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJl
Y29nbml0aW9uLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTUwQUYyNTM5
NDM0NzAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yNTAxMCw2ICsyNTAxMiw3IEBACiAJCQkJOTMyQzlCRDAyNkRENjI1NTAwNTNCM0RC
IC8qIEZpbGVTeXN0ZW1IYW5kbGUuY3BwICovLAogCQkJCTkzMkM5QkRBMjZERDYyNjEwMDUzQjNE
QiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggKi8sCiAJCQkJOTMyQzlCRDkyNkRENjI2MDAwNTNCM0RC
IC8qIEZpbGVTeXN0ZW1IYW5kbGUuaWRsICovLAorCQkJCTkzNDQ1MDgyMjc2QTYzNTYwMDFGNzEy
QiAvKiBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oICovLAogCQkJCTkzNTQyNDI3MjcwM0JD
ODgwMDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNTQy
NDI5MjcwM0JDQUQwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywK
IAkJCQk5M0UyNjlBMDI3MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUuY3BwICovLApAQCAtMzQyOTQsNiArMzQyOTcsNyBAQAogCQkJCTgzRkIzMzc1MUY1MDhBNUIw
MDk4NkU1NCAvKiBGaWxlU3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0
M0U4NzI2RTk5NUMwMDA1ODUzOEYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNDQzRTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxlLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk5MzQ0NTA4NDI3NkE2MzU3MDAxRjcxMkIgLyogRmlsZVN5c3Rl
bUhhbmRsZUNsb3NlU2NvcGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTQyNDJGMjcwM0NBNTEw
MDVDQTcyQyAvKiBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM1NDI0MzAyNzAzQ0I4NjAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmggaW4gSGVhZGVycyAqLywKQEAgLTM2MTUzLDYgKzM2MTU3
LDcgQEAKIAkJCQkzMTJDMEM0MTE0NkRDNkNDMDAxNkM5MTEgLyogTm90aWZpY2F0aW9uLmggaW4g
SGVhZGVycyAqLywKIAkJCQkzMzUwM0M5QTEwMTc5QTc0MDAzQjQ3RTEgLyogTm90aWZpY2F0aW9u
Q2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTI4Q0E2QjE0NzMzMTYzMDA3NEM3MkEgLyog
Tm90aWZpY2F0aW9uQ29udHJvbGxlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTExMjNFMkYyNzY5
NDBDQTAwRjlENDFCIC8qIE5vdGlmaWNhdGlvbkRhdGEuaCBpbiBIZWFkZXJzICovLAogCQkJCTdD
QzJERTAzMUVDQTA0QTUwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25EaXJlY3Rpb24uaCBpbiBIZWFk
ZXJzICovLAogCQkJCTdDQzJEREZCMUVDOTQxNUEwMDI3Qjc3NCAvKiBOb3RpZmljYXRpb25QZXJt
aXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMUZFNkRGQTE1MDA0QzJBMDAwNEVCQzQgLyog
Tm90aWZpY2F0aW9uUGVybWlzc2lvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKQEAgLTM3MDY2
LDcgKzM3MDcxLDYgQEAKIAkJCQk3RTQ3NEUxRTEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0
YWJhc2VUcmFja2VyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNUE2ODQyMjBGRkFCRTk4
MDBEMjQ2ODkgLyogU1FMaXRlRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQkRC
NEIxQzQ1NkZGQTAwNjQ5NERGIC8qIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMg
Ki8sCi0JCQkJNTExMjNFMkYyNzY5NDBDQTAwRjlENDFCIC8qIE5vdGlmaWNhdGlvbkRhdGEuaCBp
biBIZWFkZXJzICovLAogCQkJCTUxMUVDMTMwMUM1MEFCRjUwMDMyRjk4MyAvKiBTUUxpdGVJREJD
dXJzb3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMUVDMTJDMUM1MEFCQkYwMDMyRjk4MyAvKiBT
UUxpdGVJREJUcmFuc2FjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyMjQ2NEMwQ0M5OERE
QjAwQzA1MjQwIC8qIFNRTGl0ZVN0YXRlbWVudC5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VI
YW5kbGUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0
ZW1TdG9yYWdlSGFuZGxlLmNwcAppbmRleCA0ZjcyY2QwM2YzNjhmNDU3NmQ0MzVkNjdlNjJlM2Ex
MWI5MmNmZWE0Li43M2FhNjc3MjE4MzA5ODU4NGUxZjFiZTEwOTljZGYzNTAwMjBmZmIzIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0
b3JhZ2VIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKQEAgLTY4LDYgKzY4LDggQEAgdm9pZCBGaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoKQogICAgIGlmICghbV9tYW5hZ2VyKQogICAgICAg
ICByZXR1cm47CiAKKyAgICBpZiAobV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKQorICAgICAgICBj
bG9zZVN5bmNBY2Nlc3NIYW5kbGUoKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSk7CiAgICAgbV9t
YW5hZ2VyLT5jbG9zZUhhbmRsZSgqdGhpcyk7CiB9CiAKQEAgLTE4MSw3ICsxODMsNyBAQCBFeHBl
Y3RlZDxGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gRmlsZQogICAgIHJldHVybiBzdGQ6OnBhaXIgeyAqbV9hY3RpdmVTeW5j
QWNjZXNzSGFuZGxlLCBXVEZNb3ZlKCppcGNIYW5kbGUpIH07CiB9CiAKLXN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKQorc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKQogewog
ICAgIGlmICghbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlIHx8ICptX2FjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUgIT0gYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKICAgICAgICAgcmV0dXJuIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I6OlVua25vd247CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaCBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCmluZGV4
IDQ3MzM4ZWZlNTM4MjJhNzZhNTQ4NGYyOWM5MzU3Njc4ZjQwMTg4NWMuLjE2MWE4OWI4MGEzZDE4
NGFmMWQzOThhZTgxM2Y4MzAxY2ViMDU3NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5o
CkBAIC02MSw3ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8g
PSBzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
LCBJUEM6OlNoYXJlZEZpbGVIYW5kbGU+OwogICAgIEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8s
IEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoKTsKLSAgICBz
dGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNsb3NlKFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CisgICAgc3RkOjpvcHRpb25hbDxGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKTsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNv
cmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcj4gYWN0aXZlU3luY0FjY2Vz
c0hhbmRsZSgpIGNvbnN0IHsgcmV0dXJuIG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZTsgfQogCiBw
cml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCAyOWNmYjBjNmIz
NzNhMjVmZjAxY2NlODYzM2M5NWU1NmIxYWNiN2Y0Li4wOWY4MjIyMzk5ZDc3ZjkzZGU4YjY5OTMx
ZGVlNGE0M2RhMzExOGU5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcApAQCAt
OTksNiArOTksMTAgQEAgdm9pZCBGaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXI6OmNsb3NlSGFuZGxl
KEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlJiBoYW5kbGUpCiAgICAgYXV0byBpZGVudGlmaWVyID0g
aGFuZGxlLmlkZW50aWZpZXIoKTsKICAgICBhdXRvIHRha2VuSGFuZGxlID0gbV9oYW5kbGVzLnRh
a2UoaWRlbnRpZmllcik7CiAgICAgQVNTRVJUKHRha2VuSGFuZGxlLmdldCgpID09ICZoYW5kbGUp
OworICAgIGZvciAoYXV0byYgaGFuZGxlcyA6IG1faGFuZGxlc0J5Q29ubmVjdGlvbi52YWx1ZXMo
KSkgeworICAgICAgICBpZiAoaGFuZGxlcy5yZW1vdmUoaWRlbnRpZmllcikpCisgICAgICAgICAg
ICBicmVhazsKKyAgICB9CiAgICAgbV9yZWdpc3RyeS51bnJlZ2lzdGVySGFuZGxlKGlkZW50aWZp
ZXIpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDU2NDE4NWNhOTA3NWNh
ZDA4Zjc4NDczZTE1MjA3NWQxNzI1NzAyOTAuLjA0MjkzZjhjODA1ZWU1MGQ5NTY2ZGFkOWY3ZjU0
YjBjMDUzMDQxY2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC0zNzksNyArMzc5
LDcgQEAgdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW4KICAgICBmaWxlSGFuZGxlLmNsb3NlKCk7CiB9
CiAKLXZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9z
ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRl
bnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
QVNTRVJUKCFSdW5Mb29wOjppc01haW4oKSk7CiAKQEAgLTM4Nyw3ICszODcsNyBAQCB2b2lkIE5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZQogICAgIGlmICghaGFuZGxlKQogICAgICAgICByZXR1cm4gY29tcGxl
dGlvbkhhbmRsZXIoRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93bik7CiAKLSAgICBjb21w
bGV0aW9uSGFuZGxlcihoYW5kbGUtPmNsb3NlKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKKyAg
ICBjb21wbGV0aW9uSGFuZGxlcihoYW5kbGUtPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShhY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpnZXRI
YW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lz
dGVtU3RvcmFnZUVycm9yPik+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmgKaW5kZXggYjgwOTcyNThmZGI5MmQxMGM1NzAwMzQwNWNmODNjZDEwOWUwMGZlOC4uZDIx
ZDY1NmQzYTY3MjdjOThkMTJhNDEyMzc1ZWQwNTJhNTNhOWU5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIuaApAQCAtMTAzLDcgKzEwMyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRGaWxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4cGVjdGVkPFN0cmluZywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB1c2lu
ZyBBY2Nlc3NIYW5kbGVJbmZvID0gc3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKICAgICB2b2lkIGNy
ZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKLSAgICB2b2lkIGNsb3NlQWNjZXNzSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0Fj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOworICAgIHZvaWQgY2xvc2VTeW5jQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHZvaWQgZ2V0
SGFuZGxlTmFtZXMoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdl
RXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRIYW5kbGUoSVBDOjpDb25uZWN0aW9uJiwgV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFN0cmluZyYmIG5hbWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBib29sPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3Rv
cmFnZU1hbmFnZXIubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCmluZGV4IDA0MjJiNjM0NzUx
ZDAzODVmODRlMDFmNjRhYzYxZGFmMzFjMTVlODguLmE1MTZhZGE5ODMyZmRlZjViNjgxNDk0NDIx
NWY2ODhmZGE4MWM2MTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
c3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdl
cy5pbgpAQCAtMzYsNyArMzYsNyBAQAogICAgIE1vdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBTdHJpbmcgbmV3TmFtZSkgLT4gKHN0ZDo6b3B0aW9u
YWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCiAgICAgR2V0
RmlsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAo
RXhwZWN0ZWQ8U3RyaW5nLCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMKICAgICBDcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6OnBhaXI8V2ViQ29yZTo6
RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJUEM6OlNoYXJlZEZpbGVIYW5k
bGU+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKLSAgICBD
bG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVu
dGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNj
ZXNzSGFuZGxlSWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVt
U3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCisgICAgQ2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3Vs
dCkgQXN5bmMKICAgICBHZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIFdlYktpdDo6
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEdldEhhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgbmFtZSkg
LT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgYm9vbD4sIFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYyBX
YW50c0Nvbm5lY3Rpb24KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uLmNwcAppbmRleCBiN2FiZGNmZGU1Y2Y4YWJjYzYzODVlNGExYTA3OWE4NTVlYmMyZDY3
Li4zYzg3ZTFmNzU0ZmM1OTM0Y2NhOWE5MjU4MDk0NjhkOWZlZTg0ZTRhIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1
cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMzAsNiArMzAsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvRXhjZXB0aW9uT3IuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Zp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0ZpbGVTeXN0ZW1G
aWxlSGFuZGxlLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29w
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2NyaXB0RXhlY3V0aW9uQ29udGV4dC5oPgogI2luY2x1
ZGUgPFdlYkNvcmUvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9Xb3JrZXJHbG9iYWxTY29wZS5oPgpAQCAtNzgsMTMgKzc5LDEzIEBAIHZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVuCiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3JlOjpVbmtub3du
RXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCi0gICAgbV9jb25uZWN0aW9uLT5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RmlsZUhh
bmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0
aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0
YWJsZSB7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0RmlsZUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVh
dGVJZk5lY2Vzc2FyeSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbmFt
ZSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBy
ZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVy
biBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsK
IAogICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgQVNT
RVJUKGlkZW50aWZpZXIuaXNWYWxpZCgpKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RG
TW92ZShpZGVudGlmaWVyKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlOjpjcmVhdGUoaWRlbnRpZmllciwgZmFsc2UsICp0aGlz
KSk7CiAgICAgfSk7CiB9CiAKQEAgLTkzLDEzICs5NCwxMyBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbAogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhh
bmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVj
dGlvbiBpcyBsb3N0IiB9KTsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRsZShpZGVu
dGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5lY2Vzc2FyeSksIFtuYW1lLCBjb21wbGV0aW9uSGFuZGxl
ciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlm
TmVjZXNzYXJ5KSwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBuYW1lLCBj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3Vs
dCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCiAg
ICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBBU1NFUlQo
aWRlbnRpZmllci5pc1ZhbGlkKCkpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3Zl
KGlkZW50aWZpZXIpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUNsb3NlU2NvcGU6OmNyZWF0ZShpZGVudGlmaWVyLCB0cnVlLCAqdGhpcykpOwog
ICAgIH0pOwogfQogCkBAIC0xNTMsMTIgKzE1NCwxMiBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SAogICAgIH0pOwogfQogCi12b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xv
c2UoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29y
ZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50
aWZpZXIsIFZvaWRDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBXZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxi
YWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rpb24pCiAgICAg
ICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24geyBXZWJDb3Jl
OjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCi0gICAgbV9jb25uZWN0
aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6
Q2xvc2VBY2Nlc3NIYW5kbGUoaWRlbnRpZmllciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtj
b21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9y
KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDbG9zZVN5bmNBY2Nlc3NIYW5kbGUoaWRlbnRpZmll
ciwgYWNjZXNzSGFuZGxlSWRlbnRpZmllciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXShhdXRvIGVycm9yKSBtdXRhYmxlIHsKICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uT3IoZXJyb3IpKTsKICAgICB9KTsKIH0KQEAg
LTE3NiwxNiArMTc3LDE4IEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpn
ZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlCiAgICAgfSk7CiB9CiAK
LXZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1l
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sm
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEhh
bmRsZUNhbGxiYWNrJiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKCFtX2Nvbm5lY3Rp
b24pCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRpb24g
eyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCi0gICAg
bV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdl
TWFuYWdlcjo6R2V0SGFuZGxlKGlkZW50aWZpZXIsIG5hbWUpLCBbY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAg
IG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkdldEhhbmRsZShpZGVudGlmaWVyLCBuYW1lKSwgW3RoaXMsIHByb3RlY3RlZFRo
aXMgPSBSZWYgeyAqdGhpcyB9LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghcmVzdWx0KQog
ICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbihy
ZXN1bHQuZXJyb3IoKSkpOwotCi0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUocmVz
dWx0LnZhbHVlKCkpKTsKKyAgICAgICAgCisgICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGlzRGly
ZWN0b3J5XSA9IHJlc3VsdC52YWx1ZSgpOworICAgICAgICBBU1NFUlQoaWRlbnRpZmllci5pc1Zh
bGlkKCkpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlQ2xvc2VTY29wZTo6Y3JlYXRlKGlkZW50aWZpZXIsIGlzRGlyZWN0b3J5LCAqdGhpcykpOwog
ICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmgKaW5kZXggM2E1MWMzZDE3ODdiYTk0M2M1NjE3MDA5MDA2OTM4NTc4ZGFiYWUyNS4uNzgzMDJm
ODI0OTlkMTYzOWJkODFkNjZmNDIwZTc3YTZlM2RmZmQ2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtODEsMTEgKzgxLDExIEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZW1vdmVFbnRyeShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgY29uc3QgU3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBXZWJDb3JlOjpG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2
b2lkIHJlc29sdmUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEhhbmRsZU5h
bWVzKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OkdldEhhbmRsZU5hbWVzQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBn
ZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmlu
ZyYgbmFtZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNh
bGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRGaWxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYmKSBmaW5h
bDsKIAogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpH
ZXRBY2Nlc3NIYW5kbGVDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGNsb3NlKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Vm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgY2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNz
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQg
dW5yZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUo
V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsK
</data>
<flag name="commit-queue"
          id="472932"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447335</attachid>
            <date>2021-12-16 00:34:57 -0800</date>
            <delta_ts>2021-12-16 09:26:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234271-20211216003457.patch</filename>
            <type>text/plain</type>
            <size>49756</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWI0YzQ4OTkwOTM2ZDM2
NTI2NTc4ZDU4OTNlZWY5MGZjYzY4NjQyYS4uYzBlY2MxMmI5YjhiNzcwYzdlNDc0NGQ0MDA4OGZh
Y2VlN2ZmYzI1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTE2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2
MDEpOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFy
ZSBjb25zaXN0ZW50bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdoZW4gY29u
dGV4dCBzdG9wcywgRmlsZVN5c3RlbUhhbmRsZSBzZXRzIGl0cyBzdGF0ZSB0byBjbG9zZWQuIEEg
Y2xvc2VkIEZpbGVTeXN0ZW1IYW5kbGUgd2lsbCByZXR1cm4gZWFybHkgb24KKyAgICAgICAgb3Bl
cmF0aW9ucyBpbmNsdWRpbmcgY2xvc2luZyBzeW5jIGFjY2VzcyBoYW5kbGUgKGFza2luZyBiYWNr
ZW5kIHRvIGNsb3NlIGhhbmRsZSBhbmQgcmVsZWFzaW5nIGxvY2spLiBJZiBiYWNrZW5kIAorICAg
ICAgICB0aGlua3MgZXhpc3RpbmcgYWNjZXNzIGhhbmRsZSBpcyBub3QgY2xvc2VkLCBpdCB3aWxs
IHByZXZlbnQgbmV3IGFjY2VzcyBoYW5kbGUgZnJvbSBiZWluZyBjcmVhdGVkLCBhbmQgdGhpcyAK
KyAgICAgICAgbGVhZHMgdG8gdGhlIHRlc3QgZmFpbHVyZS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IGJhY2tlbmQgaXNuJ3Qgbm90aWZpZWQgYWJvdXQgdGhlIGNsb3NlIG9mIGEgaGFu
ZGxlOiB3ZSBvbmx5IHNldCB0aGUgY2xvc2Ugc3RhdGUgaW4gCisgICAgICAgIEZpbGVTeXN0ZW1I
YW5kbGUuIFRvIGZpeCB0aGUgaXNzdWUsIGxldCdzIG1ha2Ugc3VyZSBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlIGlzIGNhbGxlZCB3aGVuIAorICAgICAgICBjb250ZXh0
IHN0b3BzIGFuZCB3aGVuIEZpbGVTeXN0ZW1IYW5kbGUgaXMgZGV0cm95ZWQuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZSk6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NI
YW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5
c3RlbUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU6On5GaWxlU3lz
dGVtSGFuZGxlQ2xvc2VTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
Q2xvc2VTY29wZTo6cmVsZWFzZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
Q2xvc2VTY29wZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRHZXRIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRIYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0xMi0xNSAgQW5kcmVzIEdvbnphbGV6ICA8YW5kcmVzZ18yMkBhcHBsZS5j
b20+CiAKICAgICAgICAgRml4IGZvciBjcmFzaCBpbiBBWElzb2xhdGVkT2JqZWN0Ojp0ZXh0TWFy
a2VyUmFuZ2VGb3JOU1JhbmdlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBkZDIwYThhMmUxZDI2YTZlZmQ5MDVjMGY2
MGUzYTI4NjRlZTJhZTc5Li5jMWZkNzNhYTBlYWYyNzYyZTQ1ZDlhODUyZGE2ZjZiNTliOTNjNmI3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDMwIEBACisyMDIxLTEyLTE2ICBTaWh1aSBMaXUgIDxzaWh1
aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2MDEpOiBzdG9yYWdl
L2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3JpdGUtd29ya2VyLmh0
bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFyZSBjb25zaXN0ZW50
bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZpbGVT
eXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaDoKKyAgICAgICAgKiBOZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y2xvc2VIYW5kbGUpOgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjbG9zZVN5bmNBY2Nlc3NIYW5k
bGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNz
SGFuZGxlKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0
d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2Vi
Q29yZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKToK
KyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJl
Y3RvcnlIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmNsb3NlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6OldlYkZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2Vi
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6IERlbGV0ZWQuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24u
aDoKKwogMjAyMS0xMi0xNSAgQnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgU29tZSB3ZWJwdXNodG9vbCBpbXByb3ZlbWVudHMuCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9IZWFkZXJzLmNtYWtlIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQppbmRl
eCAzMjhhZGI4YzAzMmM2ZDViZmY3NjUxNTMyYmNlZWY3NmRmZGY1OTFmLi41OWJhZjYwOTZhYzg2
YWYxYTY5MGJjNzU4YjU4MThlNzA4MTQ5N2RhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9I
ZWFkZXJzLmNtYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKQEAgLTE3Miw2
ICsxNzIsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAgTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaAogICAgIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCiAgICAgTW9kdWxl
cy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaAorICAgIE1vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oCiAgICAgTW9kdWxlcy9maWxl
c3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLmgKICAgICBNb2R1bGVzL2Zp
bGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKICAgICBNb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuaApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJl
Y3RvcnlIYW5kbGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuY3BwCmluZGV4IGM5N2RhOWFjYTk1NjBjMWE2OTNm
ODgyNjZjZDllNjA0YTE5M2E0YzAuLjk0MDk0ODM3MjBiYjRhNjE4OTRmNTRmMmU5NDhhODUyN2Vl
ZDg3NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAKQEAgLTI2
LDYgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtRGly
ZWN0b3J5SGFuZGxlLmgiCiAKKyNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5o
IgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUgIkpT
RE9NUHJvbWlzZURlZmVycmVkLmgiCiAjaW5jbHVkZSAiSlNGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlLmgiCkBAIC01NiwxNCArNTcsMTMgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxl
OjpnZXRGaWxlSGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwgc3RkOjpvcHRpb25hbDwKICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNl
LnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRvIGlkZW50
aWZpZXIgPSByZXN1bHQucmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdl
YWtUaGlzID8gd2Vha1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0g
ICAgICAgIGlmICghY29udGV4dCkgewotICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5k
bGUoaWRlbnRpZmllcik7CisgICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVy
biBwcm9taXNlLnJlamVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQg
aGFzIHN0b3BwZWQiX3MgfSk7Ci0gICAgICAgIH0KIAotICAgICAgICBwcm9taXNlLnJlc29sdmUo
RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBy
ZXN1bHQucmV0dXJuVmFsdWUoKSwgV1RGTW92ZShjb25uZWN0aW9uKSkpOworICAgICAgICBhdXRv
IFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmV0dXJuVmFsdWUoKS0+cmVsZWFz
ZSgpOworICAgICAgICBBU1NFUlQoIWlzRGlyZWN0b3J5KTsKKyAgICAgICAgcHJvbWlzZS5yZXNv
bHZlKEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGUoKmNvbnRleHQsIFN0cmluZyB7IG5hbWUg
fSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAgIH0pOwogfQogCkBAIC03
NywxMyArNzcsMTIgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpnZXREaXJlY3Rv
cnlIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGkKICAgICAgICAgaWYgKHJlc3Vs
dC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJlamVjdChyZXN1
bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1
bHQucmV0dXJuVmFsdWUoKTsKICAgICAgICAgYXV0byogY29udGV4dCA9IHdlYWtUaGlzID8gd2Vh
a1RoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKSA6IG51bGxwdHI7Ci0gICAgICAgIGlmICgh
Y29udGV4dCkgewotICAgICAgICAgICAgY29ubmVjdGlvbi0+Y2xvc2VIYW5kbGUoaWRlbnRpZmll
cik7CisgICAgICAgIGlmICghY29udGV4dCkKICAgICAgICAgICAgIHJldHVybiBwcm9taXNlLnJl
amVjdChFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgIkNvbnRleHQgaGFzIHN0b3BwZWQi
X3MgfSk7Ci0gICAgICAgIH0KIAorICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVjdG9y
eV0gPSByZXN1bHQucmV0dXJuVmFsdWUoKS0+cmVsZWFzZSgpOworICAgICAgICBBU1NFUlQoaXNE
aXJlY3RvcnkpOwogICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdURk1v
dmUoY29ubmVjdGlvbikpKTsKICAgICB9KTsKIH0KQEAgLTEyNiwxMiArMTI1LDEwIEBAIHZvaWQg
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0SGFuZGxlKGNvbnN0IFN0cmluZyYgbmFtZSwg
Q29tcGxldGlvbkhhbmRsZXI8CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpCiAg
ICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIocmVzdWx0LnJlbGVhc2VFeGNlcHRp
b24oKSk7CiAKLSAgICAgICAgYXV0byBbaWRlbnRpZmllciwgaXNEaXJlY3RvcnldID0gcmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVj
dG9yeV0gPSByZXN1bHQucmV0dXJuVmFsdWUoKS0+cmVsZWFzZSgpOwogICAgICAgICBhdXRvKiBj
b250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhpcy0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpIDog
bnVsbHB0cjsKLSAgICAgICAgaWYgKCFjb250ZXh0KSB7Ci0gICAgICAgICAgICBjb25uZWN0aW9u
LT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFjb250ZXh0KQogICAgICAg
ICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKLSAgICAgICAgfQogCiAgICAgICAgIGlm
IChpc0RpcmVjdG9yeSkgewogICAgICAgICAgICAgUmVmPEZpbGVTeXN0ZW1IYW5kbGU+IGhhbmRs
ZSA9IEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsg
bmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3ZlKGNvbm5lY3Rpb24pKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRs
ZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUZpbGVIYW5kbGUuY3BwCmluZGV4IDhmMWZiNWZkZTcxYTM5YTZmYTI3YTY2MWY2ZmZjZDMxNTY0
OTMxMTIuLjMxZWZjMjdkOWU0MDEwY2U3MDZkMzg2MTAwNTUxYzQzYTMzZmVlMzMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgIkZp
bGVTeXN0ZW1GaWxlSGFuZGxlLmgiCiAKICNpbmNsdWRlICJGaWxlLmgiCisjaW5jbHVkZSAiRmls
ZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCIKICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgogI2lu
Y2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCkBAIC04Miw3ICs4Myw3IEBAIHZvaWQgRmls
ZVN5c3RlbUZpbGVIYW5kbGU6OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJvbWlzZURlZmVy
cmVkPElETEludGVyZmFjCiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSBwcm90ZWN0ZWRUaGlzLT5z
Y3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CiAgICAgICAgIGlmICghY29udGV4dCkgewogICAgICAg
ICAgICAgRmlsZVN5c3RlbTo6Y2xvc2VGaWxlKGZpbGUpOwotICAgICAgICAgICAgcHJvdGVjdGVk
VGhpcy0+Y2xvc2UoaWRlbnRpZmllciwgeyB9KTsKKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMt
PmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCB7IH0pOwogICAgICAgICAgICAgcmV0
dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4
dCBoYXMgc3RvcHBlZCJfcyB9KTsKICAgICAgICAgfQogCkBAIC05MCwxMiArOTEsMTIgQEAgdm9p
ZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNl
RGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICB9KTsKIH0KIAotdm9pZCBGaWxlU3lzdGVtRmlsZUhh
bmRsZTo6Y2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9z
ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8
dm9pZD4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGlzQ2xvc2VkKCkpCiAg
ICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVF
cnJvciwgIkhhbmRsZSBpcyBjbG9zZWQiX3MgfSk7CiAKLSAgICBjb25uZWN0aW9uKCkuY2xvc2Uo
aWRlbnRpZmllcigpLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7CisgICAgY29ubmVjdGlvbigpLmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlm
aWVyKCksIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKIH0KIAogdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6cmVnaXN0ZXJTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYgaGFuZGxlKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
aAppbmRleCA2ZTQ2ODhmYTkyZDY1OTFiZGM3YjcwZWVkYjVhNjIxMTA0Y2JlMGVmLi4wZTExNzI0
ZGZiZmMwYmQ5MzU5NTI4MWM4MzI3MTIxZDk3MDhmMjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBnZXRGaWxlKERPTVBy
b21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZT4+JiYpOwogCiAgICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhY2U8RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGU+PiYmKTsKLSAgICB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2
b2lkPiYmKT4mJik7CisgICAgdm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5
bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlv
bk9yPHZvaWQ+JiYpPiYmKTsKICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlJik7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5jcHAKaW5kZXgg
YjVjNWI5NWI0MmU3Yjk1ZThkMTFkZDk2ZmM3YjY4ZWNjNGYwNTFmMS4uZTYwMzBjNjQ2YjNlOTZj
NjUzYzUxNjIyMzUyZGY1Zjc3ODY4ZGY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcApAQCAt
NDQsNyArNDQsMTkgQEAgRmlsZVN5c3RlbUhhbmRsZTo6RmlsZVN5c3RlbUhhbmRsZShTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGaWxlU3lzdGVtSGEKICAgICBzdXNwZW5kSWZOZWVk
ZWQoKTsKIH0KIAotRmlsZVN5c3RlbUhhbmRsZTo6fkZpbGVTeXN0ZW1IYW5kbGUoKSA9IGRlZmF1
bHQ7CitGaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5c3RlbUhhbmRsZSgpCit7CisgICAgY2xvc2Uo
KTsKK30KKwordm9pZCBGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSgpCit7CisgICAgaWYgKG1faXND
bG9zZWQpCisgICAgICAgIHJldHVybjsKKyAgICAKKyAgICBtX2lzQ2xvc2VkID0gdHJ1ZTsKKyAg
ICBtX2Nvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKG1faWRlbnRpZmllcik7Cit9CiAKIHZvaWQgRmls
ZVN5c3RlbUhhbmRsZTo6aXNTYW1lRW50cnkoRmlsZVN5c3RlbUhhbmRsZSYgaGFuZGxlLCBET01Q
cm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNlKSBjb25zdAogewpAQCAtODIsNyAr
OTQsNyBAQCBjb25zdCBjaGFyKiBGaWxlU3lzdGVtSGFuZGxlOjphY3RpdmVET01PYmplY3ROYW1l
KCkgY29uc3QKIAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKCkKIHsKLSAgICBtX2lzQ2xv
c2VkID0gdHJ1ZTsKKyAgICBjbG9zZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0Zp
bGVTeXN0ZW1IYW5kbGUuaAppbmRleCBiZjI4MDUwMDkwM2Y3YTU2ODhjZTlkYWVhODg1ODI2Mjk2
ODI0OTk4Li41ODZkMzkyZjI1MmFhYWMzOWQwMGQzODExOWQ1NGYwYTdlNGE4NDZmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhh
bmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtSGFuZGxlLmgKQEAgLTM2LDcgKzM2LDcgQEAgdGVtcGxhdGU8dHlwZW5hbWU+IGNsYXNz
IERPTVByb21pc2VEZWZlcnJlZDsKIAogY2xhc3MgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OwogCi1jbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIEFjdGl2ZURPTU9iamVjdCwgcHVi
bGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1IYW5kbGU+LCBwdWJsaWMgUmVmQ291bnRlZDxG
aWxlU3lzdGVtSGFuZGxlPiB7CitjbGFzcyBGaWxlU3lzdGVtSGFuZGxlIDogcHVibGljIEFjdGl2
ZURPTU9iamVjdCwgcHVibGljIENhbk1ha2VXZWFrUHRyPEZpbGVTeXN0ZW1IYW5kbGU+LCBwdWJs
aWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbUhhbmRsZT4gewogICAgIFdURl9NQUtF
X0lTT19BTExPQ0FURUQoRmlsZVN5c3RlbUhhbmRsZSk7CiBwdWJsaWM6CiAgICAgdmlydHVhbCB+
RmlsZVN5c3RlbUhhbmRsZSgpOwpAQCAtNDksNiArNDksNyBAQCBwdWJsaWM6CiAgICAgY29uc3Qg
U3RyaW5nJiBuYW1lKCkgY29uc3QgeyByZXR1cm4gbV9uYW1lOyB9CiAgICAgRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1faWRlbnRpZmllcjsg
fQogICAgIGJvb2wgaXNDbG9zZWQoKSBjb25zdCB7IHJldHVybiBtX2lzQ2xvc2VkOyB9CisgICAg
dm9pZCBjbG9zZSgpOwogCiAgICAgdm9pZCBpc1NhbWVFbnRyeShGaWxlU3lzdGVtSGFuZGxlJiwg
RE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogICAgIHZvaWQgbW92ZShG
aWxlU3lzdGVtSGFuZGxlJiwgY29uc3QgU3RyaW5nJiBuZXdOYW1lLCBET01Qcm9taXNlRGVmZXJy
ZWQ8dm9pZD4mJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0
ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjViMGRmYTEzMWZiODNhMTg3MTkxODc1ZmIzY2I0MzFhYWFmZDUyZWMKLS0tIC9kZXYv
bnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5
c3RlbUhhbmRsZUNsb3NlU2NvcGUuaApAQCAtMCwwICsxLDcwIEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCIKKyNp
bmNsdWRlIDx3dGYvUnVuTG9vcC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIEZp
bGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPEZp
bGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLCBXVEY6OkRlc3RydWN0aW9uVGhyZWFkOjpNYWluUnVu
TG9vcD4geworcHVibGljOgorICAgIHN0YXRpYyBSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGU+IGNyZWF0ZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBib29sIGlz
RGlyZWN0b3J5LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAg
eworICAgICAgICByZXR1cm4gYWRvcHRSZWYoKm5ldyBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29w
ZShpZGVudGlmaWVyLCBpc0RpcmVjdG9yeSwgY29ubmVjdGlvbikpOworICAgIH0KKworICAgIH5G
aWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZSgpCisgICAgeworICAgICAgICBBU1NFUlQoUnVuTG9v
cDo6aXNNYWluKCkpOworCisgICAgICAgIGlmIChtX2lkZW50aWZpZXIuaXNWYWxpZCgpKQorICAg
ICAgICAgICAgbV9jb25uZWN0aW9uLT5jbG9zZUhhbmRsZShtX2lkZW50aWZpZXIpOworICAgIH0K
KworICAgIHN0ZDo6cGFpcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgYm9vbD4gcmVsZWFz
ZSgpCisgICAgeworICAgICAgICBMb2NrZXIgbG9ja2VyIHsgbV9sb2NrIH07CisgICAgICAgIEFT
U0VSVF9XSVRIX01FU1NBR0UobV9pZGVudGlmaWVyLmlzVmFsaWQoKSwgIkZpbGVTeXN0ZW1IYW5k
bGVDbG9zZVNjb3BlIHNob3VsZCBub3QgYmUgcmVsZWFzZWQgbW9yZSB0aGFuIG9uY2UiKTsKKyAg
ICAgICAgcmV0dXJuIHsgc3RkOjpleGNoYW5nZShtX2lkZW50aWZpZXIsIHsgfSksIG1faXNEaXJl
Y3RvcnkgfTsKKyAgICB9CisKK3ByaXZhdGU6CisgICAgRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmVyLCBib29sIGlzRGlyZWN0b3J5
LCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24mIGNvbm5lY3Rpb24pCisgICAgICAgIDogbV9p
ZGVudGlmaWVyKGlkZW50aWZlcikKKyAgICAgICAgLCBtX2lzRGlyZWN0b3J5KGlzRGlyZWN0b3J5
KQorICAgICAgICAsIG1fY29ubmVjdGlvbihSZWYgeyBjb25uZWN0aW9uIH0pCisgICAgeworICAg
ICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOworICAgIH0KKworICAgIExvY2sgbV9sb2Nr
OworICAgIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIG1faWRlbnRpZmllciBXVEZfR1VBUkRF
RF9CWV9MT0NLKG1fbG9jayk7CisgICAgYm9vbCBtX2lzRGlyZWN0b3J5OworICAgIFJlZjxGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24+IG1fY29ubmVjdGlvbjsKK307CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRl
eCA3NzZlMTNjYTVlYjY0Nzk3OTQzZWYzYmM0ODUzYTMxZGRlZGZiMzU3Li42ZTM5ZTZlNThmYzg1
M2U1OGMzYzAzY2FmNmFlNjQxOGM2OGM1YzI3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oCkBAIC0zNyw2ICszNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAog
Y2xhc3MgRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZTsKIGNsYXNzIEZpbGVTeXN0ZW1GaWxlSGFu
ZGxlOworY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU7CiBjbGFzcyBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTsKIHRlbXBsYXRlPHR5cGVuYW1lPiBjbGFzcyBFeGNlcHRpb25PcjsK
IApAQCAtNDUsNyArNDYsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+RmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uKCkgeyB9CiAKICAgICB1c2luZyBTYW1lRW50cnlDYWxsYmFjayA9IENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8Ym9vbD4mJik+OwotICAgIHVzaW5nIEdldEhh
bmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxGaWxlU3lz
dGVtSGFuZGxlSWRlbnRpZmllcj4mJik+OworICAgIHVzaW5nIEdldEhhbmRsZUNhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNs
b3NlU2NvcGU+PiYmKT47CiAgICAgdXNpbmcgUmVzb2x2ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik+OwogICAgIHVzaW5nIEdl
dEFjY2Vzc0hhbmRsZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25P
cjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmKT47CiAgICAgdXNpbmcgVm9pZENhbGxiYWNrID0g
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT47CkBAIC02MywxMiAr
NjQsMTIgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgUmVzb2x2ZUNhbGxiYWNr
JiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZ2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciwgU3RyaW5nQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBjcmVhdGVTeW5j
QWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRBY2Nlc3NIYW5kbGVD
YWxsYmFjayYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lkIGNsb3NlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxs
YmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBWb2lkQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZWdpc3RlclN5bmNB
Y2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCB1bnJlZ2lz
dGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
ID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgZ2V0SGFuZGxlTmFtZXMoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEdldEhhbmRsZU5h
bWVzQ2FsbGJhY2smJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBnZXRIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlV2l0aFR5cGVD
YWxsYmFjayYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBHZXRIYW5kbGVDYWxsYmFjayYmKSA9
IDA7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmNwcAppbmRleCA5ZTUyYWVmYjQ0MzE0MmM3YTA5NDBkNDFlYWIxMjcy
NzA2YmFmNTRiLi5jOWZlMzUwYjFmNWJiZTU1N2NmMGFjNGU3YzU4NmUzZGUzNzlhNDM5IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAKQEAgLTE4MSwxMyArMTgx
LDEzIEBAIHZvaWQgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3NlQmFja2VuZChDbG9z
ZU1vZGUgbW9kZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgaWYgKG1vZGUgPT0gQ2xvc2VNb2Rl
OjpBc3luYykgewotICAgICAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbdGhpcywg
cHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH1dKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAg
ICAgICAgbV9zb3VyY2UtPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShtX2lkZW50aWZpZXIsIFt0aGlz
LCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYXV0byByZXN1bHQpIG11dGFibGUgewog
ICAgICAgICAgICAgZGlkQ2xvc2VCYWNrZW5kKFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAgIH0p
OwogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgbV9zb3VyY2UtPmNsb3NlKG1faWRlbnRp
ZmllciwgW10oYXV0bykgeyB9KTsKKyAgICBtX3NvdXJjZS0+Y2xvc2VTeW5jQWNjZXNzSGFuZGxl
KG1faWRlbnRpZmllciwgW10oYXV0bykgeyB9KTsKICAgICBkaWRDbG9zZUJhY2tlbmQoeyB9KTsK
IH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmNwcAppbmRleCBiNTM2MzJjMzEyM2ExYmY5NWY3MDMzNmNlYjg2MWJjNjhkNGQzMThjLi5iMjJl
ZTA4MWJmYzc0OTAwZjhjMmM0NWFhN2IwYTVhOWMxYTYxOTcwIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcApAQCAtMjYsNiArMjYsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIldvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5oIgogCisjaW5jbHVkZSAiRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCIK
ICNpbmNsdWRlICJGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIgogI2luY2x1ZGUgIldvcmtl
ckdsb2JhbFNjb3BlLmgiCiAjaW5jbHVkZSAiV29ya2VyTG9hZGVyUHJveHkuaCIKQEAgLTEyOCw3
ICsxMjksOCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0Rmls
ZUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcgogCiAgICAgY2FsbE9uTWFpblRocmVh
ZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJl
YWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlk
ZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xhdGVkQ29weSgpLCBjcmVhdGVJZk5lY2Vzc2FyeV0o
KSBtdXRhYmxlIHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJ
ZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKLSAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RU
YXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHko
cmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gY3Jvc3NU
aHJlYWRSZXN1bHQgPSByZXN1bHQuaGFzRXhjZXB0aW9uKCkgPyBFeGNlcHRpb25PcjxSZWY8Rmls
ZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiB7IGNyb3NzVGhyZWFkQ29weShyZXN1bHQuZXhjZXB0
aW9uKCkpIH0gOiBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiB7
IHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSB9OworICAgICAgICAgICAgd29ya2VyVGhyZWFk
LT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9
IFdURk1vdmUoY3Jvc3NUaHJlYWRSZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAg
ICAgICAgICAgICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxT
Y29wZT4oc2NvcGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQogICAgICAgICAgICAg
ICAgICAgICBjb25uZWN0aW9uLT5kaWRHZXRIYW5kbGUoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZN
b3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUo
KSk7CkBAIC0xNDgsNyArMTUwLDggQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnQKIAogICAgIGNh
bGxPbk1haW5UaHJlYWQoW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gUmVmIHsg
bV9zY29wZS0+dGhyZWFkKCkgfSwgbWFpblRocmVhZENvbm5lY3Rpb24gPSBtX21haW5UaHJlYWRD
b25uZWN0aW9uLCBpZGVudGlmaWVyLCBuYW1lID0gbmFtZS5pc29sYXRlZENvcHkoKSwgY3JlYXRl
SWZOZWNlc3NhcnldKCkgbXV0YWJsZSB7CiAgICAgICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNr
ID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2VyVGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJl
YWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0gICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1
bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jv
c3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAg
ICBhdXRvIGNyb3NzVGhyZWFkUmVzdWx0ID0gcmVzdWx0Lmhhc0V4Y2VwdGlvbigpID8gRXhjZXB0
aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlPj4geyBjcm9zc1RocmVhZENvcHko
cmVzdWx0LmV4Y2VwdGlvbigpKSB9IDogRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVD
bG9zZVNjb3BlPj4geyByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkgfTsKKyAgICAgICAgICAg
IHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlm
aWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhyZWFkUmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBt
dXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAoYXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkK
ICAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlvbi0+ZGlkR2V0SGFuZGxlKGNhbGxiYWNrSWRl
bnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOwpAQCAtMTU4LDcgKzE2MSw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50CiAgICAgfSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbGxiYWNrSWRlbnRpZmllciwgRXhj
ZXB0aW9uT3I8RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXI+JiYgcmVzdWx0KQordm9pZCBXb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50
aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRs
ZUNsb3NlU2NvcGU+PiYmIHJlc3VsdCkKIHsKICAgICBpZiAoYXV0byBjYWxsYmFjayA9IG1fZ2V0
SGFuZGxlQ2FsbGJhY2tzLnRha2UoY2FsbGJhY2tJZGVudGlmaWVyKSkKICAgICAgICAgY2FsbGJh
Y2soV1RGTW92ZShyZXN1bHQpKTsKQEAgLTI3MSw3ICsyNzQsNyBAQCB2b2lkIFdvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
SGFuZGxlSQogICAgIH0pOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Y2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZp
bGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lk
IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VTeW5jQWNjZXNzSGFuZGxl
KEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQogewogICAgIGlmICghbV9z
Y29wZSkKICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVy
cm9yIH0pOwpAQCAtMjg3LDcgKzI5MCw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmCiAgICAg
ICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKICAgICAgICAgfTsKIAot
ICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xvc2UoaWRlbnRpZmllciwgYWNjZXNzSGFu
ZGxlSWRlbnRpZmllciwgV1RGTW92ZShtYWluVGhyZWFkQ2FsbGJhY2spKTsKKyAgICAgICAgbWFp
blRocmVhZENvbm5lY3Rpb24tPmNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKG1haW5UaHJlYWRDYWxsYmFjaykpOwogICAgIH0p
OwogfQogCkBAIC0zNDIsMTkgKzM0NSwyMCBAQCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbjo6ZGlkR2V0SGFuZGxlTmFtZXMoQ2FsbGJhY2tJZGVudGlmaWVyIGNhbAogICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwogfQogCi12b2lkIFdvcmtlckZpbGVTeXN0
ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFj
ayYmIGNhbGxiYWNrKQordm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Omdl
dEhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJp
bmcmIG5hbWUsIEdldEhhbmRsZUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Nj
b3BlKQogICAgICAgICByZXR1cm4gY2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJy
b3IgfSk7CiAKICAgICBhdXRvIGNhbGxiYWNrSWRlbnRpZmllciA9IENhbGxiYWNrSWRlbnRpZmll
cjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCk7Ci0gICAgbV9nZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNr
cy5hZGQoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9nZXRI
YW5kbGVDYWxsYmFja3MuYWRkKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykp
OwogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJhY2tJZGVudGlmaWVyLCB3b3JrZXJUaHJl
YWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBtYWluVGhyZWFkQ29ubmVjdGlvbiA9IG1f
bWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIsIG5hbWUgPSBuYW1lLmlzb2xhdGVkQ29w
eSgpXSgpIG11dGFibGUgewogICAgICAgICBhdXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxs
YmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0
byByZXN1bHQpIG11dGFibGUgewotICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCku
cG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFk
Q29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgYXV0byBj
cm9zc1RocmVhZFJlc3VsdCA9IHJlc3VsdC5oYXNFeGNlcHRpb24oKSA/IEV4Y2VwdGlvbk9yPFJl
ZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZT4+IHsgY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdC5l
eGNlcHRpb24oKSkgfSA6IEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29w
ZT4+IHsgcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpIH07CisgICAgICAgICAgICB3b3JrZXJU
aHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVz
dWx0ID0gV1RGTW92ZShjcm9zc1RocmVhZFJlc3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7
CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8gY29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckds
b2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uKCkpCi0gICAgICAg
ICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRpZEdldEhhbmRsZVdpdGhUeXBlKGNhbGxiYWNrSWRl
bnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi0+ZGlkR2V0SGFuZGxlKGNhbGxiYWNrSWRlbnRpZmllciwgV1RGTW92ZShyZXN1bHQpKTsKICAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKaW5k
ZXggOTgzNmIxZTc0ZmJhNzZiZTdhMWUwODhhZGMwZTUwOTM2NzE4MzU5Zi4uZjU0ZWUzMDA5YzU3
MDQwY2ZiNmZiZWM1Njc3Y2MxOWI5ZGY2N2NmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaApAQCAtNDcsNyArNDcsNyBAQCBwdWJsaWM6CiAg
ICAgdm9pZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZSYpOwogICAgIHVzaW5nIENh
bGxiYWNrSWRlbnRpZmllciA9IFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbkNhbGxi
YWNrSWRlbnRpZmllcjsKICAgICB2b2lkIGRpZElzU2FtZUVudHJ5KENhbGxiYWNrSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3I8Ym9vbD4mJik7Ci0gICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllcj4mJik7Cisg
ICAgdm9pZCBkaWRHZXRIYW5kbGUoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxSZWY8
RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiYmKTsKICAgICB2b2lkIGRpZFJlc29sdmUoQ2Fs
bGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxWZWN0b3I8U3RyaW5nPj4mJik7CiAgICAgdm9p
ZCBjb21wbGV0ZVN0cmluZ0NhbGxiYWNrKENhbGxiYWNrSWRlbnRpZmllciwgRXhjZXB0aW9uT3I8
U3RyaW5nPiYmKTsKICAgICB2b2lkIGRpZENyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoQ2FsbGJhY2tJ
ZGVudGlmaWVyLCBFeGNlcHRpb25PcjxzdGQ6OnBhaXI8RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtOjpQbGF0Zm9ybUZpbGVIYW5kbGU+PiYmKTsKQEAgLTY4
LDEwICs2OCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcmVtb3ZlRW50cnkoRmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVs
eSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CiAg
ICAgdm9pZCByZXNvbHZlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpSZXNvbHZlQ2FsbGJh
Y2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGdldEhh
bmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBHZXRI
YW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0SGFuZGxlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZUNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgU3RyaW5nQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBjcmVhdGVTeW5jQWNjZXNzSGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgY2xvc2UoRmls
ZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRp
ZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZp
ZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCByZWdpc3RlclN5
bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcikgZmluYWwgeyB9OwogICAgIHZvaWQgdW5yZWdp
c3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVy
KSBmaW5hbDsKICAgICB2b2lkIGludmFsaWRhdGVBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1OGI4YTYxNTQ0ZDQ3YjQ3ZDZlYTc5
NjQ3NzQ5YzgwZTA3ZWM1ZDlmLi45MjYyODllNjI2YmNhY2IxNDc2OTQzNDkxZGNiZGZjODhjYmE1
NzUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0
LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCkBAIC0yOTAxLDYgKzI5MDEsNyBAQAogCQk5MzQ0M0U4NjI2RTk5NUJEMDA1ODUzOEYg
LyogRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyQzlCRDQyNkRENjI1QTAwNTNCM0RCIC8qIEZpbGVTeXN0
ZW1EaXJlY3RvcnlIYW5kbGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5MzQ0M0U4NzI2RTk5NUMwMDA1ODUzOEYgLyogRmlsZVN5c3RlbUZpbGVI
YW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkz
MkM5QkQ2MjZERDYyNUMwMDUzQjNEQiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRsZS5oICovOyBzZXR0
aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNDQzRTg4MjZFOTk1
QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzJDOUJEQTI2REQ2MjYxMDA1M0IzREIgLyogRmlsZVN5
c3RlbUhhbmRsZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CisJCTkzNDQ1MDg0Mjc2QTYzNTcwMDFGNzEyQiAvKiBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VT
Y29wZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0
NDUwODIyNzZBNjM1NjAwMUY3MTJCIC8qIEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0OTA3RTQx
MjVCQkJDODAwN0YyM0EwIC8qIEdyYXBoaWNzQ29udGV4dENHLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5MDdFMzEyNUJCQkM4MDA3RjIzQTAgLyog
R3JhcGhpY3NDb250ZXh0Q0cuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRl
LCApOyB9OyB9OwogCQk5MzQ5NTBDRDI1Mzk0MzYxMDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRp
b24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDkzNDk1
MEIxMjUzOTQzNDgwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oICovOyB9OwogCQk5MzQ5
NTBDRTI1Mzk0MzY1MDA5OUYxNzEgLyogU3BlZWNoUmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQkMyNTM5
NDM0RTAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uQWx0ZXJuYXRpdmUuaCAqLzsgfTsKQEAg
LTEyNTg0LDYgKzEyNTg1LDcgQEAKIAkJOTM0NDJDOUYwRDJCMzM2MDAwMzM4RkY5IC8qIEhUTUxU
YWJsZVJvd3NDb2xsZWN0aW9uLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEhUTUxUYWJsZVJvd3NDb2xsZWN0aW9uLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKIAkJOTM0NDNFN0IyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0
ZW1BY2Nlc3MuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgcGF0aCA9ICJTdG9yYWdlTWFuYWdlcitGaWxlU3lzdGVtQWNjZXNzLmlkbCI7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDQzRTdEMjZFOEE2QkMwMDU4NTM4RiAv
KiBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nlc3MuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU3RvcmFn
ZU1hbmFnZXJGaWxlU3lzdGVtQWNjZXNzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJ
CTkzNDQ1MDgyMjc2QTYzNTYwMDFGNzEyQiAvKiBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VT
Y29wZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5MDdFMzEyNUJCQkM4MDA3
RjIzQTAgLyogR3JhcGhpY3NDb250ZXh0Q0cuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gR3JhcGhpY3NDb250ZXh0Q0cuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
OTM0OTUwQUQyNTM5NDM0NjAwOTlGMTcxIC8qIFNwZWVjaFJlY29nbml0aW9uLmlkbCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBT
cGVlY2hSZWNvZ25pdGlvbi5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTkzNDk1
MEFGMjUzOTQzNDcwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTcGVlY2hSZWNvZ25pdGlvbkVycm9yQ29kZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwpAQCAtMjUwMTAsNiArMjUwMTIsNyBAQAogCQkJCTkzMkM5QkQwMjZERDYyNTUw
MDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmNwcCAqLywKIAkJCQk5MzJDOUJEQTI2REQ2MjYx
MDA1M0IzREIgLyogRmlsZVN5c3RlbUhhbmRsZS5oICovLAogCQkJCTkzMkM5QkQ5MjZERDYyNjAw
MDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmlkbCAqLywKKwkJCQk5MzQ0NTA4MjI3NkE2MzU2
MDAxRjcxMkIgLyogRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCAqLywKIAkJCQk5MzU0MjQy
NzI3MDNCQzg4MDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCAqLywKIAkJ
CQk5MzU0MjQyOTI3MDNCQ0FEMDA1Q0E3MkMgLyogRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
LmggKi8sCiAJCQkJOTNFMjY5QTAyNzBBNUQ1QzAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNj
ZXNzSGFuZGxlLmNwcCAqLywKQEAgLTM0Mjk0LDYgKzM0Mjk3LDcgQEAKIAkJCQk4M0ZCMzM3NTFG
NTA4QTVCMDA5ODZFNTQgLyogRmlsZVN5c3RlbUZpbGVFbnRyeS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJOTM0NDNFODcyNkU5OTVDMDAwNTg1MzhGIC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggaW4g
SGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4ODI2RTk5NUM0MDA1ODUzOEYgLyogRmlsZVN5c3RlbUhh
bmRsZS5oIGluIEhlYWRlcnMgKi8sCisJCQkJOTM0NDUwODQyNzZBNjM1NzAwMUY3MTJCIC8qIEZp
bGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzU0MjQyRjI3
MDNDQTUxMDA1Q0E3MkMgLyogRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTkzNTQyNDMwMjcwM0NCODYwMDVDQTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzRTI2OUEyMjcwQTVENUQwMDJDNEZGMCAv
KiBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0zNzA2Niw3
ICszNzA3MCw2IEBACiAJCQkJN0U0NzRFMUUxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFi
YXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVBNjg0MjIwRkZBQkU5ODAw
RDI0Njg5IC8qIFNRTGl0ZUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkJEQjRC
MUM0NTZGRkEwMDY0OTRERiAvKiBTUUxpdGVJREJCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICov
LAotCQkJCTUxMTIzRTJGMjc2OTQwQ0EwMEY5RDQxQiAvKiBOb3RpZmljYXRpb25EYXRhLmggaW4g
SGVhZGVycyAqLywKIAkJCQk1MTFFQzEzMDFDNTBBQkY1MDAzMkY5ODMgLyogU1FMaXRlSURCQ3Vy
c29yLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTFFQzEyQzFDNTBBQkJGMDAzMkY5ODMgLyogU1FM
aXRlSURCVHJhbnNhY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjI0NjRDMENDOThEREIw
MEMwNTI0MCAvKiBTUUxpdGVTdGF0ZW1lbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZUhhbmRsZS5jcHAKaW5kZXggNGY3MmNkMDNmMzY4ZjQ1NzZkNDM1ZDY3ZTYyZTNhMTFi
OTJjZmVhNC4uNzNhYTY3NzIxODMwOTg1ODRlMWYxYmUxMDk5Y2RmMzUwMDIwZmZiMyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9y
YWdlSGFuZGxlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2Uv
RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCkBAIC02OCw2ICs2OCw4IEBAIHZvaWQgRmlsZVN5
c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlKCkKICAgICBpZiAoIW1fbWFuYWdlcikKICAgICAgICAg
cmV0dXJuOwogCisgICAgaWYgKG1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSkKKyAgICAgICAgY2xv
c2VTeW5jQWNjZXNzSGFuZGxlKCptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUpOwogICAgIG1fbWFu
YWdlci0+Y2xvc2VIYW5kbGUoKnRoaXMpOwogfQogCkBAIC0xODEsNyArMTgzLDcgQEAgRXhwZWN0
ZWQ8RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OkFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IEZpbGUKICAgICByZXR1cm4gc3RkOjpwYWlyIHsgKm1fYWN0aXZlU3luY0Fj
Y2Vzc0hhbmRsZSwgV1RGTW92ZSgqaXBjSGFuZGxlKSB9OwogfQogCi1zdGQ6Om9wdGlvbmFsPEZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9zZShXZWJD
b3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRl
bnRpZmllcikKK3N0ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGU6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikKIHsKICAg
ICBpZiAoIW1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSB8fCAqbV9hY3RpdmVTeW5jQWNjZXNzSGFu
ZGxlICE9IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiAgICAgICAgIHJldHVybiBGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmggYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAppbmRleCA0
NzMzOGVmZTUzODIyYTc2YTU0ODRmMjljOTM1NzY3OGY0MDE4ODVjLi4xNjFhODliODBhM2QxODRh
ZjFkMzk4YWU4MTNmODMwMWNlYjA1NzQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuaApA
QCAtNjEsNyArNjEsNyBAQCBwdWJsaWM6CiAKICAgICB1c2luZyBBY2Nlc3NIYW5kbGVJbmZvID0g
c3RkOjpwYWlyPFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
SVBDOjpTaGFyZWRGaWxlSGFuZGxlPjsKICAgICBFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBG
aWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKCk7Ci0gICAgc3Rk
OjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBjbG9zZShXZWJDb3JlOjpGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpOworICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5
c3RlbVN0b3JhZ2VFcnJvcj4gY2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcik7CiAgICAgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXI+IGFjdGl2ZVN5bmNBY2Nlc3NI
YW5kbGUoKSBjb25zdCB7IHJldHVybiBtX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGU7IH0KIAogcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9G
aWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKaW5kZXggMjljZmIwYzZiMzcz
YTI1ZmYwMWNjZTg2MzNjOTVlNTZiMWFjYjdmNC4uMDlmODIyMjM5OWQ3N2Y5M2RlOGI2OTkzMWRl
ZTRhNDNkYTMxMThlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9z
dG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlTWFuYWdlci5jcHAKQEAgLTk5
LDYgKzk5LDEwIEBAIHZvaWQgRmlsZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyOjpjbG9zZUhhbmRsZShG
aWxlU3lzdGVtU3RvcmFnZUhhbmRsZSYgaGFuZGxlKQogICAgIGF1dG8gaWRlbnRpZmllciA9IGhh
bmRsZS5pZGVudGlmaWVyKCk7CiAgICAgYXV0byB0YWtlbkhhbmRsZSA9IG1faGFuZGxlcy50YWtl
KGlkZW50aWZpZXIpOwogICAgIEFTU0VSVCh0YWtlbkhhbmRsZS5nZXQoKSA9PSAmaGFuZGxlKTsK
KyAgICBmb3IgKGF1dG8mIGhhbmRsZXMgOiBtX2hhbmRsZXNCeUNvbm5lY3Rpb24udmFsdWVzKCkp
IHsKKyAgICAgICAgaWYgKGhhbmRsZXMucmVtb3ZlKGlkZW50aWZpZXIpKQorICAgICAgICAgICAg
YnJlYWs7CisgICAgfQogICAgIG1fcmVnaXN0cnkudW5yZWdpc3RlckhhbmRsZShpZGVudGlmaWVy
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdl
L05ldHdvcmtTdG9yYWdlTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAppbmRleCA1NjQxODVjYTkwNzVjYWQw
OGY3ODQ3M2UxNTIwNzVkMTcyNTcwMjkwLi4wNDI5M2Y4YzgwNWVlNTBkOTU2NmRhZDlmN2Y1NGIw
YzA1MzA0MWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3Jh
Z2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmNwcApAQCAtMzc5LDcgKzM3OSw3
IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVuCiAgICAgZmlsZUhhbmRsZS5jbG9zZSgpOwogfQog
Ci12b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6
RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+
JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VT
eW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIEFT
U0VSVCghUnVuTG9vcDo6aXNNYWluKCkpOwogCkBAIC0zODcsNyArMzg3LDcgQEAgdm9pZCBOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWUKICAgICBpZiAoIWhhbmRsZSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I6OlVua25vd24pOwogCi0gICAgY29tcGxl
dGlvbkhhbmRsZXIoaGFuZGxlLT5jbG9zZShhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSk7CisgICAg
Y29tcGxldGlvbkhhbmRsZXIoaGFuZGxlLT5jbG9zZVN5bmNBY2Nlc3NIYW5kbGUoYWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikpOwogfQogCiB2b2lkIE5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Z2V0SGFu
ZGxlTmFtZXMoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdl
ci5oCmluZGV4IGI4MDk3MjU4ZmRiOTJkMTBjNTcwMDM0MDVjZjgzY2QxMDllMDBmZTguLmQyMWQ2
NTZkM2E2NzI3Yzk4ZDEyYTQxMjM3NWVkMDUyYTUzYTllOTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5h
Z2VyLmgKQEAgLTEwMyw3ICsxMDMsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0RmlsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChF
eHBlY3RlZDxTdHJpbmcsIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdXNpbmcg
QWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT47CiAgICAgdm9pZCBjcmVh
dGVTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPEFjY2Vzc0hhbmRsZUluZm8sIEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJik7Ci0gICAgdm9pZCBjbG9zZUFjY2Vzc0hhbmRsZShXZWJDb3Jl
OjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8
RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKKyAgICB2b2lkIGNsb3NlU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lkIGdldEhh
bmRsZU5hbWVzKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBGaWxlU3lzdGVtU3RvcmFnZUVy
cm9yPik+JiYpOwogICAgIHZvaWQgZ2V0SGFuZGxlKElQQzo6Q29ubmVjdGlvbiYsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmcmJiBuYW1lLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgYm9vbD4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3Jh
Z2VNYW5hZ2VyLm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5pbgppbmRleCAwNDIyYjYzNDc1MWQw
Mzg1Zjg0ZTAxZjY0YWM2MWRhZjMxYzE1ZTg4Li5hNTE2YWRhOTgzMmZkZWY1YjY4MTQ5NDQyMTVm
Njg4ZmRhODFjNjE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVzc2FnZXMu
aW4KQEAgLTM2LDcgKzM2LDcgQEAKICAgICBNb3ZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGRlc3RpbmF0aW9uSWRlbnRpZmllciwgU3RyaW5nIG5ld05hbWUpIC0+IChzdGQ6Om9wdGlvbmFs
PFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEdldEZp
bGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4
cGVjdGVkPFN0cmluZywgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFz
eW5jCiAgICAgQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
SWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWlyPFdlYkNvcmU6OkZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgSVBDOjpTaGFyZWRGaWxlSGFuZGxl
PiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jCi0gICAgQ2xv
c2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRp
ZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vz
c0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYworICAgIENsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllcikg
LT4gKHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQp
IEFzeW5jCiAgICAgR2V0SGFuZGxlTmFtZXMoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFZlY3RvcjxTdHJpbmc+LCBXZWJLaXQ6OkZp
bGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBHZXRIYW5kbGUoV2ViQ29y
ZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nIG5hbWUpIC0+
IChFeHBlY3RlZDxzdGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGJvb2w+LCBXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMgV2Fu
dHNDb25uZWN0aW9uCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5jcHAKaW5kZXggYjdhYmRjZmRlNWNmOGFiY2M2Mzg1ZTRhMWEwNzlhODU1ZWJjMmQ2Ny4u
M2M4N2UxZjc1NGZjNTkzNGNjYTlhOTI1ODA5NDY4ZDlmZWU4NGU0YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdl
Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHAKQEAgLTMwLDYgKzMwLDcgQEAK
ICNpbmNsdWRlIDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtRmls
ZUhhbmRsZS5oPgorI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL1NjcmlwdEV4ZWN1dGlvbkNvbnRleHQuaD4KICNpbmNsdWRl
IDxXZWJDb3JlL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvV29ya2VyR2xvYmFsU2NvcGUuaD4KQEAgLTc4LDEzICs3OSwxMyBAQCB2b2lkIFdl
YkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RmlsZUhhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbgogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6VW5rbm93bkVy
cm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKIAotICAgIG1fY29ubmVjdGlvbi0+c2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5k
bGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlv
bkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFi
bGUgeworICAgIG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrU3RvcmFnZU1hbmFnZXI6OkdldEZpbGVIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRl
SWZOZWNlc3NhcnkpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5hbWUs
IGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVz
dWx0KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4g
Y29tcGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAK
ICAgICAgICAgYXV0byBpZGVudGlmaWVyID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIEFTU0VS
VChpZGVudGlmaWVyLmlzVmFsaWQoKSk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1v
dmUoaWRlbnRpZmllcikpOworICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlQ2xvc2VTY29wZTo6Y3JlYXRlKGlkZW50aWZpZXIsIGZhbHNlLCAqdGhpcykp
OwogICAgIH0pOwogfQogCkBAIC05MywxMyArOTQsMTMgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGwKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rp
b24gaXMgbG9zdCIgfSk7CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3RvcnlIYW5kbGUoaWRlbnRp
ZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbbmFtZSwgY29tcGxldGlvbkhhbmRsZXIg
PSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAg
IG1fY29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OkdldERpcmVjdG9yeUhhbmRsZShpZGVudGlmaWVyLCBuYW1lLCBjcmVhdGVJZk5l
Y2Vzc2FyeSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgbmFtZSwgY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byByZXN1bHQp
IG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVzdWx0LmVycm9yKCkpKTsKIAogICAg
ICAgICBhdXRvIGlkZW50aWZpZXIgPSByZXN1bHQudmFsdWUoKTsKICAgICAgICAgQVNTRVJUKGlk
ZW50aWZpZXIuaXNWYWxpZCgpKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShp
ZGVudGlmaWVyKSk7CisgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVDbG9zZVNjb3BlOjpjcmVhdGUoaWRlbnRpZmllciwgdHJ1ZSwgKnRoaXMpKTsKICAg
ICB9KTsKIH0KIApAQCAtMTUzLDEyICsxNTQsMTIgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUgK
ICAgICB9KTsKIH0KIAotdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3Nl
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6
OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgV2ViRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFj
ayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9uKQogICAgICAg
ICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsgV2ViQ29yZTo6
VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKIAotICAgIG1fY29ubmVjdGlv
bi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OkNs
b3NlQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29t
cGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikg
bXV0YWJsZSB7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Q2xvc2VTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIs
IGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oYXV0byBlcnJvcikgbXV0YWJsZSB7CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGNvbnZlcnRUb0V4Y2VwdGlvbk9yKGVycm9yKSk7CiAgICAgfSk7CiB9CkBAIC0x
NzYsMTYgKzE3NywxOCBAQCB2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0
SGFuZGxlTmFtZXMoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZQogICAgIH0pOwogfQogCi12
b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwg
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Z2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5k
bGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmICghbV9jb25uZWN0aW9u
KQogICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RXhjZXB0aW9uIHsg
V2ViQ29yZTo6VW5rbm93bkVycm9yLCAiQ29ubmVjdGlvbiBpcyBsb3N0IiB9KTsKIAotICAgIG1f
Y29ubmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1h
bmFnZXI6OkdldEhhbmRsZShpZGVudGlmaWVyLCBuYW1lKSwgW2NvbXBsZXRpb25IYW5kbGVyID0g
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBt
X2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VN
YW5hZ2VyOjpHZXRIYW5kbGUoaWRlbnRpZmllciwgbmFtZSksIFt0aGlzLCBwcm90ZWN0ZWRUaGlz
ID0gUmVmIHsgKnRoaXMgfSwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKV0oYXV0byByZXN1bHQpIG11dGFibGUgewogICAgICAgICBpZiAoIXJlc3VsdCkKICAg
ICAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9FeGNlcHRpb24ocmVz
dWx0LmVycm9yKCkpKTsKLQotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlc3Vs
dC52YWx1ZSgpKSk7CisgICAgICAgIAorICAgICAgICBhdXRvIFtpZGVudGlmaWVyLCBpc0RpcmVj
dG9yeV0gPSByZXN1bHQudmFsdWUoKTsKKyAgICAgICAgQVNTRVJUKGlkZW50aWZpZXIuaXNWYWxp
ZCgpKTsKKyAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUNsb3NlU2NvcGU6OmNyZWF0ZShpZGVudGlmaWVyLCBpc0RpcmVjdG9yeSwgKnRoaXMpKTsKICAg
ICB9KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkNvcmVT
dXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5o
CmluZGV4IDNhNTFjM2QxNzg3YmE5NDNjNTYxNzAwOTAwNjkzODU3OGRhYmFlMjUuLjc4MzAyZjgy
NDk5ZDE2MzliZDgxZDY2ZjQyMGU3N2E2ZTNkZmZkNmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTgxLDExICs4MSwxMSBAQCBwcml2YXRlOgog
ICAgIHZvaWQgcmVtb3ZlRW50cnkoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgYm9vbCBkZWxldGVSZWN1cnNpdmVseSwgV2ViQ29yZTo6Rmls
ZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9p
ZCByZXNvbHZlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25u
ZWN0aW9uOjpSZXNvbHZlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1l
cyhXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpHZXRIYW5kbGVOYW1lc0NhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0
SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxs
YmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OkdldEhhbmRsZUNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0RmlsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgU3RyaW5nQ2FsbGJhY2smJikgZmluYWw7
CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhh
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0
QWNjZXNzSGFuZGxlQ2FsbGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBjbG9zZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NI
YW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rp
b246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdlYkNv
cmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyKSBmaW5hbDsKICAgICB2b2lkIHVu
cmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdl
YkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgZmluYWw7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447363</attachid>
            <date>2021-12-16 09:26:47 -0800</date>
            <delta_ts>2021-12-16 14:57:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234271-20211216092646.patch</filename>
            <type>text/plain</type>
            <size>49223</size>
            <attacher name="Sihui Liu">sihui_liu</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MTM2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEzYjBhYmM4NGJmYmFk
ZGRmM2EyY2M4M2JiNDEzNzRhODQzOWZlMC4uYjJkZmY5MDUzMWE1NWJiODkyODE4M2VjYzkzM2Yz
MTk3NDZmNjA2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDUzIEBACisyMDIxLTEyLTE2ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgorCisgICAgICAgIFJFR1JFU1NJT04gKHIyODY2
MDEpOiBzdG9yYWdlL2ZpbGVzeXN0ZW1hY2Nlc3Mvc3luYy1hY2Nlc3MtaGFuZGxlLXJlYWQtd3Jp
dGUtd29ya2VyLmh0bWwgYW5kIGZpbGUtc3lzdGVtLWFjY2Vzcy9zYW5kYm94ZWRfRmlsZVN5c3Rl
bVN5bmNBY2Nlc3NIYW5kbGUtdHJ1bmNhdGUuaHR0cHMudGVudGF0aXZlLndvcmtlci5odG1sIGFy
ZSBjb25zaXN0ZW50bHkgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM0MjcxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84NjQzNDExMT4K
KworICAgICAgICBSZXZpZXdlZCBieSBZb3Vlbm4gRmFibGV0LgorCisgICAgICAgIFdoZW4gY29u
dGV4dCBzdG9wcywgRmlsZVN5c3RlbUhhbmRsZSBzZXRzIGl0cyBzdGF0ZSB0byBjbG9zZWQuIEEg
Y2xvc2VkIEZpbGVTeXN0ZW1IYW5kbGUgd2lsbCByZXR1cm4gZWFybHkgb24KKyAgICAgICAgb3Bl
cmF0aW9ucyBpbmNsdWRpbmcgY2xvc2luZyBzeW5jIGFjY2VzcyBoYW5kbGUgKGFza2luZyBiYWNr
ZW5kIHRvIGNsb3NlIGhhbmRsZSBhbmQgcmVsZWFzaW5nIGxvY2spLiBJZiBiYWNrZW5kIAorICAg
ICAgICB0aGlua3MgZXhpc3RpbmcgYWNjZXNzIGhhbmRsZSBpcyBub3QgY2xvc2VkLCBpdCB3aWxs
IHByZXZlbnQgbmV3IGFjY2VzcyBoYW5kbGUgZnJvbSBiZWluZyBjcmVhdGVkLCBhbmQgdGhpcyAK
KyAgICAgICAgbGVhZHMgdG8gdGhlIHRlc3QgZmFpbHVyZS4KKworICAgICAgICBUaGUgcHJvYmxl
bSBpcyB0aGF0IGJhY2tlbmQgaXNuJ3Qgbm90aWZpZWQgYWJvdXQgdGhlIGNsb3NlIG9mIGEgaGFu
ZGxlOiB3ZSBvbmx5IHNldCB0aGUgY2xvc2Ugc3RhdGUgaW4gCisgICAgICAgIEZpbGVTeXN0ZW1I
YW5kbGUuIFRvIGZpeCB0aGUgaXNzdWUsIGxldCdzIG1ha2Ugc3VyZSBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OmNsb3NlSGFuZGxlIGlzIGNhbGxlZCB3aGVuIAorICAgICAgICBjb250ZXh0
IHN0b3BzIGFuZCB3aGVuIEZpbGVTeXN0ZW1IYW5kbGUgaXMgZGV0cm95ZWQuCisKKyAgICAgICAg
KiBIZWFkZXJzLmNtYWtlOgorICAgICAgICAqIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1E
aXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5
c3RlbURpcmVjdG9yeUhhbmRsZTo6Z2V0RGlyZWN0b3J5SGFuZGxlKToKKyAgICAgICAgKFdlYkNv
cmU6OkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEhhbmRsZSk6CisgICAgICAgICogTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKToK
KyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZVN5bmNBY2Nlc3NI
YW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlKTog
RGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZp
bGVIYW5kbGUuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjp+RmlsZVN5
c3RlbUhhbmRsZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpjbG9zZSk6
CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlOjpzdG9wKToKKyAgICAgICAgKiBN
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oOgorICAgICAgICAqIE1v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlOjpjcmVhdGUp
OgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU6On5GaWxlU3lz
dGVtSGFuZGxlQ2xvc2VTY29wZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
Q2xvc2VTY29wZTo6cmVsZWFzZSk6CisgICAgICAgIChXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxl
Q2xvc2VTY29wZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUpOgorICAgICAgICAqIE1vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGU6OmNsb3Nl
QmFja2VuZCk6CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVT
eXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViQ29y
ZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXREaXJlY3RvcnlIYW5kbGUp
OgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpk
aWRHZXRIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VD
b25uZWN0aW9uOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUpOgorICAgICAgICAoV2ViQ29yZTo6V29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRIYW5kbGUpOgorICAgICAgICAoV2Vi
Q29yZTo6V29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZSk6IERlbGV0ZWQu
CisgICAgICAgICogTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvajoKKwogMjAyMS0xMi0xNiAgQWxhbiBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0xGQ11bSUZDXSBBZGQgc3VwcG9ydCBmb3IgbWl4ZWQgbHRyL3J0bCBjb250ZW50CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCmluZGV4IGRkMjBhOGEyZTFkMjZhNmVmZDkwNWMwZjYwZTNhMjg2NGVlMmFlNzkuLmMxZmQ3
M2FhMGVhZjI3NjJlNDVkOWE4NTJkYTZmNmI1OWI5M2M2YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MzAgQEAKKzIwMjEtMTItMTYgIFNpaHVpIExpdSAgPHNpaHVpX2xpdUBhcHBsZS5jb20+CisKKyAg
ICAgICAgUkVHUkVTU0lPTiAocjI4NjYwMSk6IHN0b3JhZ2UvZmlsZXN5c3RlbWFjY2Vzcy9zeW5j
LWFjY2Vzcy1oYW5kbGUtcmVhZC13cml0ZS13b3JrZXIuaHRtbCBhbmQgZmlsZS1zeXN0ZW0tYWNj
ZXNzL3NhbmRib3hlZF9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS10cnVuY2F0ZS5odHRwcy50
ZW50YXRpdmUud29ya2VyLmh0bWwgYXJlIGNvbnNpc3RlbnRseSBmYWlsaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQyNzEKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzg2NDM0MTExPgorCisgICAgICAgIFJldmlld2VkIGJ5IFlvdWVubiBGYWJs
ZXQuCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNs
b3NlKToKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGU6OmNsb3NlU3lu
Y0FjY2Vzc0hhbmRsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lz
dGVtU3RvcmFnZUhhbmRsZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmls
ZVN5c3RlbVN0b3JhZ2VNYW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6RmlsZVN5c3RlbVN0
b3JhZ2VNYW5hZ2VyOjpjbG9zZUhhbmRsZSk6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3Rv
cmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
U3RvcmFnZU1hbmFnZXI6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6Y2xvc2VBY2Nlc3NIYW5kbGUpOiBEZWxldGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmg6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIubWVz
c2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb246OmdldEZpbGVIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJG
aWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldERpcmVjdG9yeUhhbmRsZSk6CisgICAgICAg
IChXZWJLaXQ6OldlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Y2xvc2VTeW5jQWNjZXNz
SGFuZGxlKToKKyAgICAgICAgKFdlYktpdDo6V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpnZXRIYW5kbGUpOgorICAgICAgICAoV2ViS2l0OjpXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5l
Y3Rpb246OmNsb3NlKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYkNvcmVTdXBw
b3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oOgorCiAyMDIxLTEyLTE1ICBCcmFk
eSBFaWRzb24gIDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBTb21lIHdlYnB1c2h0b29s
IGltcHJvdmVtZW50cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2Ug
Yi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDMyOGFkYjhjMDMyYzZkNWJmZjc2
NTE1MzJiY2VlZjc2ZGZkZjU5MWYuLjU5YmFmNjA5NmFjODZhZjFhNjkwYmM3NThiNTgxOGU3MDgx
NDk3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291
cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTcyLDYgKzE3Miw3IEBAIHNldChXZWJDb3Jl
X1BSSVZBVEVfRlJBTUVXT1JLX0hFQURFUlMKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oCiAgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmls
ZVN5c3RlbUhhbmRsZS5oCisgICAgTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1I
YW5kbGVDbG9zZVNjb3BlLmgKICAgICBNb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIuaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb24uaAogICAgIE1vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbURpcmVjdG9yeUhh
bmRsZS5jcHAKaW5kZXggYzk3ZGE5YWNhOTU2MGMxYTY5M2Y4ODI2NmNkOWU2MDRhMTkzYTRjMC4u
OTQwOTQ4MzcyMGJiNGE2MTg5NGY1NGYyZTk0OGE4NTI3ZWVkODc3NCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1EaXJlY3RvcnlI
YW5kbGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9G
aWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKIAorI2lu
Y2x1ZGUgIkZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmgiCiAjaW5jbHVkZSAiRmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIK
ICNpbmNsdWRlICJKU0ZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGUuaCIKQEAgLTU2LDE0ICs1Nywx
MyBAQCB2b2lkIEZpbGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldEZpbGVIYW5kbGUoY29uc3Qg
U3RyaW5nJiBuYW1lLCBzdGQ6Om9wdGlvbmFsPAogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2Vw
dGlvbigpKQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNl
RXhjZXB0aW9uKCkpOwogCi0gICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC5yZXR1cm5W
YWx1ZSgpOwogICAgICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhpcy0+c2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKCFjb250ZXh0KSB7
Ci0gICAgICAgICAgICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAg
ICAgaWYgKCFjb250ZXh0KQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKLSAg
ICAgICAgfQogCi0gICAgICAgIHByb21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRmlsZUhhbmRsZTo6
Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIHJlc3VsdC5yZXR1cm5WYWx1ZSgpLCBX
VEZNb3ZlKGNvbm5lY3Rpb24pKSk7CisgICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGlzRGlyZWN0
b3J5XSA9IHJlc3VsdC5yZXR1cm5WYWx1ZSgpLT5yZWxlYXNlKCk7CisgICAgICAgIEFTU0VSVCgh
aXNEaXJlY3RvcnkpOworICAgICAgICBwcm9taXNlLnJlc29sdmUoRmlsZVN5c3RlbUZpbGVIYW5k
bGU6OmNyZWF0ZSgqY29udGV4dCwgU3RyaW5nIHsgbmFtZSB9LCBpZGVudGlmaWVyLCBXVEZNb3Zl
KGNvbm5lY3Rpb24pKSk7CiAgICAgfSk7CiB9CiAKQEAgLTc3LDEzICs3NywxMiBAQCB2b2lkIEZp
bGVTeXN0ZW1EaXJlY3RvcnlIYW5kbGU6OmdldERpcmVjdG9yeUhhbmRsZShjb25zdCBTdHJpbmcm
IG5hbWUsIHN0ZDo6b3B0aQogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKQogICAg
ICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkp
OwogCi0gICAgICAgIGF1dG8gaWRlbnRpZmllciA9IHJlc3VsdC5yZXR1cm5WYWx1ZSgpOwogICAg
ICAgICBhdXRvKiBjb250ZXh0ID0gd2Vha1RoaXMgPyB3ZWFrVGhpcy0+c2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpIDogbnVsbHB0cjsKLSAgICAgICAgaWYgKCFjb250ZXh0KSB7Ci0gICAgICAgICAg
ICBjb25uZWN0aW9uLT5jbG9zZUhhbmRsZShpZGVudGlmaWVyKTsKKyAgICAgICAgaWYgKCFjb250
ZXh0KQogICAgICAgICAgICAgcmV0dXJuIHByb21pc2UucmVqZWN0KEV4Y2VwdGlvbiB7IEludmFs
aWRTdGF0ZUVycm9yLCAiQ29udGV4dCBoYXMgc3RvcHBlZCJfcyB9KTsKLSAgICAgICAgfQogCisg
ICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGlzRGlyZWN0b3J5XSA9IHJlc3VsdC5yZXR1cm5WYWx1
ZSgpLT5yZWxlYXNlKCk7CisgICAgICAgIEFTU0VSVChpc0RpcmVjdG9yeSk7CiAgICAgICAgIHBy
b21pc2UucmVzb2x2ZShGaWxlU3lzdGVtRGlyZWN0b3J5SGFuZGxlOjpjcmVhdGUoKmNvbnRleHQs
IFN0cmluZyB7IG5hbWUgfSwgaWRlbnRpZmllciwgV1RGTW92ZShjb25uZWN0aW9uKSkpOwogICAg
IH0pOwogfQpAQCAtMTI2LDEyICsxMjUsMTAgQEAgdm9pZCBGaWxlU3lzdGVtRGlyZWN0b3J5SGFu
ZGxlOjpnZXRIYW5kbGUoY29uc3QgU3RyaW5nJiBuYW1lLCBDb21wbGV0aW9uSGFuZGxlcjwKICAg
ICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkKICAgICAgICAgICAgIHJldHVybiBjb21w
bGV0aW9uSGFuZGxlcihyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKIAotICAgICAgICBhdXRv
IFtpZGVudGlmaWVyLCBpc0RpcmVjdG9yeV0gPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7
CisgICAgICAgIGF1dG8gW2lkZW50aWZpZXIsIGlzRGlyZWN0b3J5XSA9IHJlc3VsdC5yZXR1cm5W
YWx1ZSgpLT5yZWxlYXNlKCk7CiAgICAgICAgIGF1dG8qIGNvbnRleHQgPSB3ZWFrVGhpcyA/IHdl
YWtUaGlzLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCkgOiBudWxscHRyOwotICAgICAgICBpZiAo
IWNvbnRleHQpIHsKLSAgICAgICAgICAgIGNvbm5lY3Rpb24tPmNsb3NlSGFuZGxlKGlkZW50aWZp
ZXIpOworICAgICAgICBpZiAoIWNvbnRleHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlv
bkhhbmRsZXIoRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9w
cGVkIl9zIH0pOwotICAgICAgICB9CiAKICAgICAgICAgaWYgKGlzRGlyZWN0b3J5KSB7CiAgICAg
ICAgICAgICBSZWY8RmlsZVN5c3RlbUhhbmRsZT4gaGFuZGxlID0gRmlsZVN5c3RlbURpcmVjdG9y
eUhhbmRsZTo6Y3JlYXRlKCpjb250ZXh0LCBTdHJpbmcgeyBuYW1lIH0sIGlkZW50aWZpZXIsIFdU
Rk1vdmUoY29ubmVjdGlvbikpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9m
aWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5jcHAKaW5kZXgg
OGYxZmI1ZmRlNzFhMzlhNmZhMjdhNjYxZjZmZmNkMzE1NjQ5MzExMi4uMzFlZmMyN2Q5ZTQwMTBj
ZTcwNmQzODYxMDA1NTFjNDNhMzNmZWUzMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1GaWxlSGFuZGxlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUu
Y3BwCkBAIC0yNyw2ICsyNyw3IEBACiAjaW5jbHVkZSAiRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCIK
IAogI2luY2x1ZGUgIkZpbGUuaCIKKyNpbmNsdWRlICJGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29w
ZS5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgogI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKQEAgLTgyLDcgKzgzLDcgQEAgdm9pZCBGaWxlU3lzdGVtRmlsZUhhbmRsZTo6Y3Jl
YXRlU3luY0FjY2Vzc0hhbmRsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMSW50ZXJmYWMKICAgICAg
ICAgYXV0byogY29udGV4dCA9IHByb3RlY3RlZFRoaXMtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KTsKICAgICAgICAgaWYgKCFjb250ZXh0KSB7CiAgICAgICAgICAgICBGaWxlU3lzdGVtOjpjbG9z
ZUZpbGUoZmlsZSk7Ci0gICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5jbG9zZShpZGVudGlmaWVy
LCB7IH0pOworICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+Y2xvc2VTeW5jQWNjZXNzSGFuZGxl
KGlkZW50aWZpZXIsIHsgfSk7CiAgICAgICAgICAgICByZXR1cm4gcHJvbWlzZS5yZWplY3QoRXhj
ZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJDb250ZXh0IGhhcyBzdG9wcGVkIl9zIH0pOwog
ICAgICAgICB9CiAKQEAgLTkwLDEyICs5MSwxMiBAQCB2b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxl
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKERPTVByb21pc2VEZWZlcnJlZDxJRExJbnRlcmZhYwog
ICAgIH0pOwogfQogCi12b2lkIEZpbGVTeXN0ZW1GaWxlSGFuZGxlOjpjbG9zZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKK3ZvaWQgRmlsZVN5c3RlbUZpbGVIYW5kbGU6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25Pcjx2b2lkPiYmKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBpZiAoaXNDbG9zZWQoKSkKICAgICAgICAgcmV0dXJuIGNvbXBsZXRp
b25IYW5kbGVyKEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiSGFuZGxlIGlzIGNsb3Nl
ZCJfcyB9KTsKIAotICAgIGNvbm5lY3Rpb24oKS5jbG9zZShpZGVudGlmaWVyKCksIGFjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBjb25uZWN0
aW9uKCkuY2xvc2VTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIoKSwgYWNjZXNzSGFuZGxlSWRl
bnRpZmllciwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIEZpbGVTeXN0
ZW1GaWxlSGFuZGxlOjpyZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
JiBoYW5kbGUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1h
Y2Nlc3MvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmls
ZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCmluZGV4IDZlNDY4OGZhOTJkNjU5
MWJkYzdiNzBlZWRiNWE2MjExMDRjYmUwZWYuLjBlMTE3MjRkZmJmYzBiZDkzNTk1MjgxYzgzMjcx
MjFkOTcwOGYyOGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtRmlsZUhhbmRsZS5oCkBAIC00MSw3ICs0MSw3
IEBAIHB1YmxpYzoKICAgICB2b2lkIGdldEZpbGUoRE9NUHJvbWlzZURlZmVycmVkPElETEludGVy
ZmFjZTxGaWxlPj4mJik7CiAKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRE9NUHJv
bWlzZURlZmVycmVkPElETEludGVyZmFjZTxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZT4+JiYp
OwotICAgIHZvaWQgY2xvc2UoRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPiYmKTsKKyAgICB2b2lk
IGNsb3NlU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZp
ZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+JiYpOwogICAg
IHZvaWQgcmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUmKTsKICAgICB2b2lkIHVucmVn
aXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
cik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtSGFuZGxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmNwcAppbmRleCBiNWM1Yjk1YjQyZTdiOTVlOGQxMWRk
OTZmYzdiNjhlY2M0ZjA1MWYxLi5lNjAzMGM2NDZiM2U5NmM2NTNjNTE2MjIzNTJkZjVmNzc4Njhk
ZjYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3Mv
RmlsZVN5c3RlbUhhbmRsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lz
dGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuY3BwCkBAIC00NCw3ICs0NCwxOSBAQCBGaWxlU3lz
dGVtSGFuZGxlOjpGaWxlU3lzdGVtSGFuZGxlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQsIEZpbGVTeXN0ZW1IYQogICAgIHN1c3BlbmRJZk5lZWRlZCgpOwogfQogCi1GaWxlU3lzdGVt
SGFuZGxlOjp+RmlsZVN5c3RlbUhhbmRsZSgpID0gZGVmYXVsdDsKK0ZpbGVTeXN0ZW1IYW5kbGU6
On5GaWxlU3lzdGVtSGFuZGxlKCkKK3sKKyAgICBjbG9zZSgpOworfQorCit2b2lkIEZpbGVTeXN0
ZW1IYW5kbGU6OmNsb3NlKCkKK3sKKyAgICBpZiAobV9pc0Nsb3NlZCkKKyAgICAgICAgcmV0dXJu
OworICAgIAorICAgIG1faXNDbG9zZWQgPSB0cnVlOworICAgIG1fY29ubmVjdGlvbi0+Y2xvc2VI
YW5kbGUobV9pZGVudGlmaWVyKTsKK30KIAogdm9pZCBGaWxlU3lzdGVtSGFuZGxlOjppc1NhbWVF
bnRyeShGaWxlU3lzdGVtSGFuZGxlJiBoYW5kbGUsIERPTVByb21pc2VEZWZlcnJlZDxJRExCb29s
ZWFuPiYmIHByb21pc2UpIGNvbnN0CiB7CkBAIC04Miw3ICs5NCw3IEBAIGNvbnN0IGNoYXIqIEZp
bGVTeXN0ZW1IYW5kbGU6OmFjdGl2ZURPTU9iamVjdE5hbWUoKSBjb25zdAogCiB2b2lkIEZpbGVT
eXN0ZW1IYW5kbGU6OnN0b3AoKQogewotICAgIG1faXNDbG9zZWQgPSB0cnVlOworICAgIGNsb3Nl
KCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbUhhbmRsZS5oCmluZGV4
IGJmMjgwNTAwOTAzZjdhNTY4OGNlOWRhZWE4ODU4MjYyOTY4MjQ5OTguLjU4NmQzOTJmMjUyYWFh
YzM5ZDAwZDM4MTE5ZDU0ZjBhN2U0YTg0NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1IYW5kbGUuaApAQCAtMzYs
NyArMzYsNyBAQCB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwog
CiBjbGFzcyBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb247CiAKLWNsYXNzIEZpbGVTeXN0ZW1I
YW5kbGUgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2FuTWFrZVdlYWtQdHI8Rmls
ZVN5c3RlbUhhbmRsZT4sIHB1YmxpYyBSZWZDb3VudGVkPEZpbGVTeXN0ZW1IYW5kbGU+IHsKK2Ns
YXNzIEZpbGVTeXN0ZW1IYW5kbGUgOiBwdWJsaWMgQWN0aXZlRE9NT2JqZWN0LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8RmlsZVN5c3RlbUhhbmRsZT4sIHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRl
ZDxGaWxlU3lzdGVtSGFuZGxlPiB7CiAgICAgV1RGX01BS0VfSVNPX0FMTE9DQVRFRChGaWxlU3lz
dGVtSGFuZGxlKTsKIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtSGFuZGxlKCk7CkBA
IC00OSw2ICs0OSw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBTdHJpbmcmIG5hbWUoKSBjb25zdCB7
IHJldHVybiBtX25hbWU7IH0KICAgICBGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlm
aWVyKCkgY29uc3QgeyByZXR1cm4gbV9pZGVudGlmaWVyOyB9CiAgICAgYm9vbCBpc0Nsb3NlZCgp
IGNvbnN0IHsgcmV0dXJuIG1faXNDbG9zZWQ7IH0KKyAgICB2b2lkIGNsb3NlKCk7CiAKICAgICB2
b2lkIGlzU2FtZUVudHJ5KEZpbGVTeXN0ZW1IYW5kbGUmLCBET01Qcm9taXNlRGVmZXJyZWQ8SURM
Qm9vbGVhbj4mJikgY29uc3Q7CiAgICAgdm9pZCBtb3ZlKEZpbGVTeXN0ZW1IYW5kbGUmLCBjb25z
dCBTdHJpbmcmIG5ld05hbWUsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFu
ZGxlQ2xvc2VTY29wZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWIwZGZhMTMxZmI4M2Ex
ODcxOTE4NzVmYjNjYjQzMWFhYWZkNTJlYwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5o
CkBAIC0wLDAgKzEsNzAgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUg
IkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIgorI2luY2x1ZGUgPHd0Zi9SdW5Mb29wLmg+
CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGUgOiBwdWJsaWMgVGhyZWFkU2FmZVJlZkNvdW50ZWQ8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW5SdW5Mb29wPiB7CitwdWJsaWM6CisgICAg
c3RhdGljIFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZT4gY3JlYXRlKEZpbGVTeXN0ZW1I
YW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGJvb2wgaXNEaXJlY3RvcnksIEZpbGVTeXN0ZW1T
dG9yYWdlQ29ubmVjdGlvbiYgY29ubmVjdGlvbikKKyAgICB7CisgICAgICAgIHJldHVybiBhZG9w
dFJlZigqbmV3IEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlKGlkZW50aWZpZXIsIGlzRGlyZWN0
b3J5LCBjb25uZWN0aW9uKSk7CisgICAgfQorCisgICAgfkZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNj
b3BlKCkKKyAgICB7CisgICAgICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CisKKyAgICAg
ICAgaWYgKG1faWRlbnRpZmllci5pc1ZhbGlkKCkpCisgICAgICAgICAgICBtX2Nvbm5lY3Rpb24t
PmNsb3NlSGFuZGxlKG1faWRlbnRpZmllcik7CisgICAgfQorCisgICAgc3RkOjpwYWlyPEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiByZWxlYXNlKCkKKyAgICB7CisgICAgICAgIExv
Y2tlciBsb2NrZXIgeyBtX2xvY2sgfTsKKyAgICAgICAgQVNTRVJUX1dJVEhfTUVTU0FHRShtX2lk
ZW50aWZpZXIuaXNWYWxpZCgpLCAiRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUgc2hvdWxkIG5v
dCBiZSByZWxlYXNlZCBtb3JlIHRoYW4gb25jZSIpOworICAgICAgICByZXR1cm4geyBzdGQ6OmV4
Y2hhbmdlKG1faWRlbnRpZmllciwgeyB9KSwgbV9pc0RpcmVjdG9yeSB9OworICAgIH0KKworcHJp
dmF0ZToKKyAgICBGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZShGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciBpZGVudGlmZXIsIGJvb2wgaXNEaXJlY3RvcnksIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbiYgY29ubmVjdGlvbikKKyAgICAgICAgOiBtX2lkZW50aWZpZXIoaWRlbnRpZmVyKQor
ICAgICAgICAsIG1faXNEaXJlY3RvcnkoaXNEaXJlY3RvcnkpCisgICAgICAgICwgbV9jb25uZWN0
aW9uKFJlZiB7IGNvbm5lY3Rpb24gfSkKKyAgICB7CisgICAgICAgIEFTU0VSVChSdW5Mb29wOjpp
c01haW4oKSk7CisgICAgfQorCisgICAgTG9jayBtX2xvY2s7CisgICAgRmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgbV9pZGVudGlmaWVyIFdURl9HVUFSREVEX0JZX0xPQ0sobV9sb2NrKTsKKyAg
ICBib29sIG1faXNEaXJlY3Rvcnk7CisgICAgUmVmPEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlv
bj4gbV9jb25uZWN0aW9uOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1TdG9y
YWdlQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNz
L0ZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oCmluZGV4IDc3NmUxM2NhNWViNjQ3OTc5NDNl
ZjNiYzQ4NTNhMzFkZGVkZmIzNTcuLjZlMzllNmU1OGZjODUzZTU4YzNjMDNjYWY2YWU2NDE4YzY4
YzVjMjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKQEAgLTM3
LDYgKzM3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogCiBjbGFzcyBGaWxlU3lzdGVtRGlyZWN0
b3J5SGFuZGxlOwogY2xhc3MgRmlsZVN5c3RlbUZpbGVIYW5kbGU7CitjbGFzcyBGaWxlU3lzdGVt
SGFuZGxlQ2xvc2VTY29wZTsKIGNsYXNzIEZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlOwogdGVt
cGxhdGU8dHlwZW5hbWU+IGNsYXNzIEV4Y2VwdGlvbk9yOwogCkBAIC00NSw3ICs0Niw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIH5GaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSB7IH0KIAog
ICAgIHVzaW5nIFNhbWVFbnRyeUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNl
cHRpb25Pcjxib29sPiYmKT47Ci0gICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYm
KT47CisgICAgdXNpbmcgR2V0SGFuZGxlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZT4+JiYpPjsKICAgICB1
c2luZyBSZXNvbHZlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9y
PFZlY3RvcjxTdHJpbmc+PiYmKT47CiAgICAgdXNpbmcgR2V0QWNjZXNzSGFuZGxlQ2FsbGJhY2sg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHN0ZDo6cGFpcjxGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW06OlBsYXRmb3JtRmlsZUhhbmRs
ZT4+JiYpPjsKICAgICB1c2luZyBWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKQEAgLTYzLDEyICs2NCwxMiBAQCBwdWJsaWM6CiAgICAg
dmlydHVhbCB2b2lkIHJlc29sdmUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyLCBSZXNvbHZlQ2FsbGJhY2smJikgPSAwOwogICAgIHZpcnR1YWwg
dm9pZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYm
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEdldEFjY2Vzc0hhbmRsZUNhbGxiYWNrJiYpID0gMDsKLSAgICB2
aXJ0dWFsIHZvaWQgY2xvc2UoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0
dWFsIHZvaWQgY2xvc2VTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
LCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFZvaWRDYWxsYmFjayYmKSA9
IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHVucmVnaXN0ZXJTeW5jQWNjZXNzSGFuZGxlKEZp
bGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBpbnZhbGlkYXRlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFu
ZGxlSWRlbnRpZmllcikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBnZXRIYW5kbGVOYW1lcyhGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgR2V0SGFuZGxlTmFtZXNDYWxsYmFjayYmKSA9IDA7Ci0g
ICAgdmlydHVhbCB2b2lkIGdldEhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29u
c3QgU3RyaW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZ2V0SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBT
dHJpbmcmIG5hbWUsIEdldEhhbmRsZUNhbGxiYWNrJiYpID0gMDsKIH07CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3Rl
bWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwCmlu
ZGV4IDllNTJhZWZiNDQzMTQyYzdhMDk0MGQ0MWVhYjEyNzI3MDZiYWY1NGIuLmM5ZmUzNTBiMWY1
YmJlNTU3Y2YwYWM0ZTdjNTg2ZTNkZTM3OWE0MzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9GaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL0ZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmNwcApAQCAtMTgxLDEzICsxODEsMTMgQEAgdm9pZCBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZTo6Y2xvc2VCYWNrZW5kKENsb3NlTW9kZSBtb2RlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBpZiAobW9kZSA9PSBDbG9zZU1vZGU6OkFzeW5jKSB7Ci0gICAgICAgIG1f
c291cmNlLT5jbG9zZShtX2lkZW50aWZpZXIsIFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0oYXV0byByZXN1bHQpIG11dGFibGUgeworICAgICAgICBtX3NvdXJjZS0+Y2xvc2VT
eW5jQWNjZXNzSGFuZGxlKG1faWRlbnRpZmllciwgW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9XShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgICAgICBkaWRDbG9zZUJh
Y2tlbmQoV1RGTW92ZShyZXN1bHQpKTsKICAgICAgICAgfSk7CiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAKLSAgICBtX3NvdXJjZS0+Y2xvc2UobV9pZGVudGlmaWVyLCBbXShhdXRvKSB7IH0pOwor
ICAgIG1fc291cmNlLT5jbG9zZVN5bmNBY2Nlc3NIYW5kbGUobV9pZGVudGlmaWVyLCBbXShhdXRv
KSB7IH0pOwogICAgIGRpZENsb3NlQmFja2VuZCh7IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nlc3MvV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vz
cy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGI1MzYzMmMzMTIz
YTFiZjk1ZjcwMzM2Y2ViODYxYmM2OGQ0ZDMxOGMuLmIyMmVlMDgxYmZjNzQ5MDBmOGMyYzQ1YWE3
YjBhNWE5YzFhNjE5NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5
c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgiCiAKKyNpbmNs
dWRlICJGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZS5oIgogI2luY2x1ZGUgIkZpbGVTeXN0ZW1T
eW5jQWNjZXNzSGFuZGxlLmgiCiAjaW5jbHVkZSAiV29ya2VyR2xvYmFsU2NvcGUuaCIKICNpbmNs
dWRlICJXb3JrZXJMb2FkZXJQcm94eS5oIgpAQCAtMTI4LDcgKzEyOSw4IEBAIHZvaWQgV29ya2Vy
RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRGaWxlSGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyCiAKICAgICBjYWxsT25NYWluVGhyZWFkKFtjYWxsYmFja0lkZW50aWZpZXIs
IHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRocmVhZCgpIH0sIG1haW5UaHJlYWRDb25u
ZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwgaWRlbnRpZmllciwgbmFtZSA9IG5hbWUu
aXNvbGF0ZWRDb3B5KCksIGNyZWF0ZUlmTmVjZXNzYXJ5XSgpIG11dGFibGUgewogICAgICAgICBh
dXRvIG1haW5UaHJlYWRDYWxsYmFjayA9IFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVh
ZCA9IFdURk1vdmUod29ya2VyVGhyZWFkKV0oYXV0byByZXN1bHQpIG11dGFibGUgewotICAgICAg
ICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lk
ZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShyZXN1bHQpXSAoYXV0byYgc2NvcGUp
IG11dGFibGUgeworICAgICAgICAgICAgYXV0byBjcm9zc1RocmVhZFJlc3VsdCA9IHJlc3VsdC5o
YXNFeGNlcHRpb24oKSA/IEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29w
ZT4+IHsgY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdC5leGNlcHRpb24oKSkgfSA6IEV4Y2VwdGlvbk9y
PFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZT4+IHsgcmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpIH07CisgICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zv
ck1vZGUoW2NhbGxiYWNrSWRlbnRpZmllciwgcmVzdWx0ID0gV1RGTW92ZShjcm9zc1RocmVhZFJl
c3VsdCldIChhdXRvJiBzY29wZSkgbXV0YWJsZSB7CiAgICAgICAgICAgICAgICAgaWYgKGF1dG8g
Y29ubmVjdGlvbiA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuZmlsZVN5c3Rl
bVN0b3JhZ2VDb25uZWN0aW9uKCkpCiAgICAgICAgICAgICAgICAgICAgIGNvbm5lY3Rpb24tPmRp
ZEdldEhhbmRsZShjYWxsYmFja0lkZW50aWZpZXIsIFdURk1vdmUocmVzdWx0KSk7CiAgICAgICAg
ICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKQEAgLTE0OCw3ICsxNTAsOCBA
QCB2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0RGlyZWN0b3J5SGFu
ZGxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudAogCiAgICAgY2FsbE9uTWFpblRocmVhZChbY2FsbGJh
Y2tJZGVudGlmaWVyLCB3b3JrZXJUaHJlYWQgPSBSZWYgeyBtX3Njb3BlLT50aHJlYWQoKSB9LCBt
YWluVGhyZWFkQ29ubmVjdGlvbiA9IG1fbWFpblRocmVhZENvbm5lY3Rpb24sIGlkZW50aWZpZXIs
IG5hbWUgPSBuYW1lLmlzb2xhdGVkQ29weSgpLCBjcmVhdGVJZk5lY2Vzc2FyeV0oKSBtdXRhYmxl
IHsKICAgICAgICAgYXV0byBtYWluVGhyZWFkQ2FsbGJhY2sgPSBbY2FsbGJhY2tJZGVudGlmaWVy
LCB3b3JrZXJUaHJlYWQgPSBXVEZNb3ZlKHdvcmtlclRocmVhZCldKGF1dG8gcmVzdWx0KSBtdXRh
YmxlIHsKLSAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVzdWx0KV0g
KGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgIGF1dG8gY3Jvc3NUaHJlYWRSZXN1
bHQgPSByZXN1bHQuaGFzRXhjZXB0aW9uKCkgPyBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhh
bmRsZUNsb3NlU2NvcGU+PiB7IGNyb3NzVGhyZWFkQ29weShyZXN1bHQuZXhjZXB0aW9uKCkpIH0g
OiBFeGNlcHRpb25PcjxSZWY8RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGU+PiB7IHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSB9OworICAgICAgICAgICAgd29ya2VyVGhyZWFkLT5ydW5Mb29w
KCkucG9zdFRhc2tGb3JNb2RlKFtjYWxsYmFja0lkZW50aWZpZXIsIHJlc3VsdCA9IFdURk1vdmUo
Y3Jvc3NUaHJlYWRSZXN1bHQpXSAoYXV0byYgc2NvcGUpIG11dGFibGUgewogICAgICAgICAgICAg
ICAgIGlmIChhdXRvIGNvbm5lY3Rpb24gPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2Nv
cGUpLmZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbigpKQogICAgICAgICAgICAgICAgICAgICBj
b25uZWN0aW9uLT5kaWRHZXRIYW5kbGUoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3Vs
dCkpOwogICAgICAgICAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CkBAIC0x
NTgsNyArMTYxLDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246Omdl
dERpcmVjdG9yeUhhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnQKICAgICB9KTsKIH0KIAotdm9p
ZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmRpZEdldEhhbmRsZShDYWxsYmFj
a0lkZW50aWZpZXIgY2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxGaWxlU3lzdGVtSGFu
ZGxlSWRlbnRpZmllcj4mJiByZXN1bHQpCit2b2lkIFdvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6ZGlkR2V0SGFuZGxlKENhbGxiYWNrSWRlbnRpZmllciBjYWxsYmFja0lkZW50aWZp
ZXIsIEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZT4+JiYgcmVzdWx0
KQogewogICAgIGlmIChhdXRvIGNhbGxiYWNrID0gbV9nZXRIYW5kbGVDYWxsYmFja3MudGFrZShj
YWxsYmFja0lkZW50aWZpZXIpKQogICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOwpA
QCAtMjcxLDcgKzI3NCw3IEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9u
OjpjcmVhdGVTeW5jQWNjZXNzSGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJCiAgICAgfSk7CiB9CiAK
LXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0
aW9uOjpWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3ZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3Jh
Z2VDb25uZWN0aW9uOjpjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIgaWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFj
Y2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Vm9pZENh
bGxiYWNrJiYgY2FsbGJhY2spCiB7CiAgICAgaWYgKCFtX3Njb3BlKQogICAgICAgICByZXR1cm4g
Y2FsbGJhY2soRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IgfSk7CkBAIC0yODcsNyArMjkw
LDcgQEAgdm9pZCBXb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmNsb3NlKEZpbGVT
eXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWYKICAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxv
b3A6OmRlZmF1bHRNb2RlKCkpOwogICAgICAgICB9OwogCi0gICAgICAgIG1haW5UaHJlYWRDb25u
ZWN0aW9uLT5jbG9zZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXVEZNb3Zl
KG1haW5UaHJlYWRDYWxsYmFjaykpOworICAgICAgICBtYWluVGhyZWFkQ29ubmVjdGlvbi0+Y2xv
c2VTeW5jQWNjZXNzSGFuZGxlKGlkZW50aWZpZXIsIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFdU
Rk1vdmUobWFpblRocmVhZENhbGxiYWNrKSk7CiAgICAgfSk7CiB9CiAKQEAgLTM0MiwxOSArMzQ1
LDIwIEBAIHZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpkaWRHZXRIYW5k
bGVOYW1lcyhDYWxsYmFja0lkZW50aWZpZXIgY2FsCiAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUo
cmVzdWx0KSk7CiB9CiAKLXZvaWQgV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpn
ZXRIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmllciwgY29uc3QgU3Ry
aW5nJiBuYW1lLCBHZXRIYW5kbGVXaXRoVHlwZUNhbGxiYWNrJiYgY2FsbGJhY2spCit2b2lkIFdv
cmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6Z2V0SGFuZGxlKEZpbGVTeXN0ZW1IYW5k
bGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlQ2Fs
bGJhY2smJiBjYWxsYmFjaykKIHsKICAgICBpZiAoIW1fc2NvcGUpCiAgICAgICAgIHJldHVybiBj
YWxsYmFjayhFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9KTsKIAogICAgIGF1dG8gY2Fs
bGJhY2tJZGVudGlmaWVyID0gQ2FsbGJhY2tJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUo
KTsKLSAgICBtX2dldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2tzLmFkZChjYWxsYmFja0lkZW50aWZp
ZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2dldEhhbmRsZUNhbGxiYWNrcy5hZGQoY2Fs
bGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAKICAgICBjYWxsT25NYWluVGhy
ZWFkKFtjYWxsYmFja0lkZW50aWZpZXIsIHdvcmtlclRocmVhZCA9IFJlZiB7IG1fc2NvcGUtPnRo
cmVhZCgpIH0sIG1haW5UaHJlYWRDb25uZWN0aW9uID0gbV9tYWluVGhyZWFkQ29ubmVjdGlvbiwg
aWRlbnRpZmllciwgbmFtZSA9IG5hbWUuaXNvbGF0ZWRDb3B5KCldKCkgbXV0YWJsZSB7CiAgICAg
ICAgIGF1dG8gbWFpblRocmVhZENhbGxiYWNrID0gW2NhbGxiYWNrSWRlbnRpZmllciwgd29ya2Vy
VGhyZWFkID0gV1RGTW92ZSh3b3JrZXJUaHJlYWQpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7Ci0g
ICAgICAgICAgICB3b3JrZXJUaHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFza0Zvck1vZGUoW2NhbGxi
YWNrSWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldIChhdXRvJiBz
Y29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICBhdXRvIGNyb3NzVGhyZWFkUmVzdWx0ID0gcmVz
dWx0Lmhhc0V4Y2VwdGlvbigpID8gRXhjZXB0aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9z
ZVNjb3BlPj4geyBjcm9zc1RocmVhZENvcHkocmVzdWx0LmV4Y2VwdGlvbigpKSB9IDogRXhjZXB0
aW9uT3I8UmVmPEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlPj4geyByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCkgfTsKKyAgICAgICAgICAgIHdvcmtlclRocmVhZC0+cnVuTG9vcCgpLnBvc3RU
YXNrRm9yTW9kZShbY2FsbGJhY2tJZGVudGlmaWVyLCByZXN1bHQgPSBXVEZNb3ZlKGNyb3NzVGhy
ZWFkUmVzdWx0KV0gKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKICAgICAgICAgICAgICAgICBpZiAo
YXV0byBjb25uZWN0aW9uID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5maWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24oKSkKLSAgICAgICAgICAgICAgICAgICAgY29ubmVjdGlv
bi0+ZGlkR2V0SGFuZGxlV2l0aFR5cGUoY2FsbGJhY2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3Vs
dCkpOworICAgICAgICAgICAgICAgICAgICBjb25uZWN0aW9uLT5kaWRHZXRIYW5kbGUoY2FsbGJh
Y2tJZGVudGlmaWVyLCBXVEZNb3ZlKHJlc3VsdCkpOwogICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiAgICAgICAgIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3JrZXJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmlsZXN5c3RlbWFjY2Vzcy9Xb3Jr
ZXJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCA5ODM2YjFlNzRmYmE3NmJlN2Ex
ZTA4OGFkYzBlNTA5MzY3MTgzNTlmLi5mNTRlZTMwMDljNTcwNDBjZmI2ZmJlYzU2NzdjYzE5Yjlk
ZjY3Y2Y2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZpbGVzeXN0ZW1hY2Nl
c3MvV29ya2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9maWxlc3lzdGVtYWNjZXNzL1dvcmtlckZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCkBAIC00Nyw3ICs0Nyw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHJlZ2lzdGVyU3luY0Fj
Y2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW1TeW5jQWNjZXNzSGFuZGxlJik7CiAgICAgdXNpbmcgQ2FsbGJhY2tJZGVudGlmaWVyID0gV29y
a2VyRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uQ2FsbGJhY2tJZGVudGlmaWVyOwogICAgIHZv
aWQgZGlkSXNTYW1lRW50cnkoQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25Pcjxib29sPiYm
KTsKLSAgICB2b2lkIGRpZEdldEhhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyPiYmKTsKKyAgICB2b2lkIGRpZEdldEhhbmRsZShD
YWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9yPFJlZjxGaWxlU3lzdGVtSGFuZGxlQ2xvc2VT
Y29wZT4+JiYpOwogICAgIHZvaWQgZGlkUmVzb2x2ZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2Vw
dGlvbk9yPFZlY3RvcjxTdHJpbmc+PiYmKTsKICAgICB2b2lkIGNvbXBsZXRlU3RyaW5nQ2FsbGJh
Y2soQ2FsbGJhY2tJZGVudGlmaWVyLCBFeGNlcHRpb25PcjxTdHJpbmc+JiYpOwogICAgIHZvaWQg
ZGlkQ3JlYXRlU3luY0FjY2Vzc0hhbmRsZShDYWxsYmFja0lkZW50aWZpZXIsIEV4Y2VwdGlvbk9y
PHN0ZDo6cGFpcjxGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0
ZW06OlBsYXRmb3JtRmlsZUhhbmRsZT4+JiYpOwpAQCAtNjgsMTAgKzY4LDEwIEBAIHByaXZhdGU6
CiAgICAgdm9pZCByZW1vdmVFbnRyeShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3Qg
U3RyaW5nJiBuYW1lLCBib29sIGRlbGV0ZVJlY3Vyc2l2ZWx5LCBGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlc29sdmUoRmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lz
dGVtU3RvcmFnZUNvbm5lY3Rpb246OlJlc29sdmVDYWxsYmFjayYmKSBmaW5hbDsKICAgICB2b2lk
IGdldEhhbmRsZU5hbWVzKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBHZXRIYW5kbGVOYW1l
c0NhbGxiYWNrJiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0SGFuZGxlKEZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2sm
JikgZmluYWw7CisgICAgdm9pZCBnZXRIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIs
IGNvbnN0IFN0cmluZyYgbmFtZSwgR2V0SGFuZGxlQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9p
ZCBnZXRGaWxlKEZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBTdHJpbmdDYWxsYmFjayYmKSBm
aW5hbDsKICAgICB2b2lkIGNyZWF0ZVN5bmNBY2Nlc3NIYW5kbGUoRmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0QWNjZXNzSGFuZGxlQ2Fs
bGJhY2smJikgZmluYWw7Ci0gICAgdm9pZCBjbG9zZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmll
ciwgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFn
ZUNvbm5lY3Rpb246OlZvaWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGNsb3NlU3luY0Fj
Y2Vzc0hhbmRsZShGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgRmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyLCBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OlZvaWRDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIHJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShGaWxlU3lz
dGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyKSBmaW5hbCB7IH07CiAgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hhbmRsZShG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwogICAgIHZvaWQgaW52
YWxpZGF0ZUFjY2Vzc0hhbmRsZShGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIp
IGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCmluZGV4IDA5N2FmODVhNTQzMzc1ZjBlNjEwZDllYTg4NWFkNTc5MGUzOTE5YmUuLmVl
NDZiNWJjMzk4YjI1MmIzMWM4MmMzMTc5ZTU0MzNiMDYwMmYwN2QgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTI5MDEsNiArMjkw
MSw3IEBACiAJCTkzNDQzRTg2MjZFOTk1QkQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtRGlyZWN0b3J5
SGFuZGxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5
MzJDOUJENDI2REQ2MjVBMDA1M0IzREIgLyogRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRsZS5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNDQzRTg3
MjZFOTk1QzAwMDU4NTM4RiAvKiBGaWxlU3lzdGVtRmlsZUhhbmRsZS5oIGluIEhlYWRlcnMgKi8g
PSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTMyQzlCRDYyNkRENjI1QzAwNTNCM0RC
IC8qIEZpbGVTeXN0ZW1GaWxlSGFuZGxlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJOTM0NDNFODgyNkU5OTVDNDAwNTg1MzhGIC8qIEZpbGVTeXN0
ZW1IYW5kbGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDkzMkM5QkRBMjZERDYyNjEwMDUzQjNEQiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJOTM0NDUwODQyNzZBNjM1
NzAwMUY3MTJCIC8qIEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ0NTA4MjI3NkE2MzU2MDAxRjcxMkIg
LyogRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2NvcGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRF
UyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk5MzQ5MDdFNDEyNUJCQkM4MDA3RjIzQTAgLyogR3Jh
cGhpY3NDb250ZXh0Q0cuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRleHRDRy5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTkzNDk1MENE
MjUzOTQzNjEwMDk5RjE3MSAvKiBTcGVlY2hSZWNvZ25pdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gOTM0OTUwQjEyNTM5NDM0ODAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uLmggKi87IH07CiAJCTkzNDk1MENFMjUzOTQzNjUwMDk5RjE3MSAv
KiBTcGVlY2hSZWNvZ25pdGlvbkFsdGVybmF0aXZlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA5MzQ5NTBCQzI1Mzk0MzRFMDA5OUYxNzEgLyogU3BlZWNo
UmVjb2duaXRpb25BbHRlcm5hdGl2ZS5oICovOyB9OwpAQCAtMTI1ODUsNiArMTI1ODYsNyBAQAog
CQk5MzQ0MkM5RjBEMkIzMzYwMDAzMzhGRjkgLyogSFRNTFRhYmxlUm93c0NvbGxlY3Rpb24uY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSFRNTFRhYmxlUm93c0NvbGxl
Y3Rpb24uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ0M0U3QjI2RThBNkJD
MDA1ODUzOEYgLyogU3RvcmFnZU1hbmFnZXIrRmlsZVN5c3RlbUFjY2Vzcy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gIlN0
b3JhZ2VNYW5hZ2VyK0ZpbGVTeXN0ZW1BY2Nlc3MuaWRsIjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJOTM0NDNFN0QyNkU4QTZCQzAwNTg1MzhGIC8qIFN0b3JhZ2VNYW5hZ2VyRmlsZVN5
c3RlbUFjY2Vzcy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTdG9yYWdlTWFuYWdlckZpbGVTeXN0ZW1BY2Nl
c3MuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJOTM0NDUwODIyNzZBNjM1NjAwMUY3
MTJCIC8qIEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IEZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTkzNDkwN0UzMTI1QkJCQzgwMDdGMjNBMCAvKiBHcmFwaGljc0NvbnRl
eHRDRy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBHcmFwaGljc0NvbnRleHRD
Ry5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk5MzQ5NTBBRDI1Mzk0MzQ2MDA5OUYx
NzEgLyogU3BlZWNoUmVjb2duaXRpb24uaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFNwZWVjaFJlY29nbml0aW9uLmlkbDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJOTM0OTUwQUYyNTM5NDM0NzAwOTlGMTcxIC8q
IFNwZWVjaFJlY29nbml0aW9uRXJyb3JDb2RlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNwZWVjaFJlY29n
bml0aW9uRXJyb3JDb2RlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yNTAxMiw2
ICsyNTAxNCw3IEBACiAJCQkJOTMyQzlCRDAyNkRENjI1NTAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1I
YW5kbGUuY3BwICovLAogCQkJCTkzMkM5QkRBMjZERDYyNjEwMDUzQjNEQiAvKiBGaWxlU3lzdGVt
SGFuZGxlLmggKi8sCiAJCQkJOTMyQzlCRDkyNkRENjI2MDAwNTNCM0RCIC8qIEZpbGVTeXN0ZW1I
YW5kbGUuaWRsICovLAorCQkJCTkzNDQ1MDgyMjc2QTYzNTYwMDFGNzEyQiAvKiBGaWxlU3lzdGVt
SGFuZGxlQ2xvc2VTY29wZS5oICovLAogCQkJCTkzNTQyNDI3MjcwM0JDODgwMDVDQTcyQyAvKiBG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllci5oICovLAogCQkJCTkzNTQyNDI5MjcwM0JDQUQwMDVD
QTcyQyAvKiBGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaCAqLywKIAkJCQk5M0UyNjlBMDI3
MEE1RDVDMDAyQzRGRjAgLyogRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGUuY3BwICovLApAQCAt
MzQyOTYsNiArMzQyOTksNyBAQAogCQkJCTgzRkIzMzc1MUY1MDhBNUIwMDk4NkU1NCAvKiBGaWxl
U3lzdGVtRmlsZUVudHJ5LmggaW4gSGVhZGVycyAqLywKIAkJCQk5MzQ0M0U4NzI2RTk5NUMwMDA1
ODUzOEYgLyogRmlsZVN5c3RlbUZpbGVIYW5kbGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNDQz
RTg4MjZFOTk1QzQwMDU4NTM4RiAvKiBGaWxlU3lzdGVtSGFuZGxlLmggaW4gSGVhZGVycyAqLywK
KwkJCQk5MzQ0NTA4NDI3NkE2MzU3MDAxRjcxMkIgLyogRmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNTQyNDJGMjcwM0NBNTEwMDVDQTcyQyAvKiBGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1NDI0MzAyNzAz
Q0I4NjAwNUNBNzJDIC8qIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJOTNFMjY5QTIyNzBBNUQ1RDAwMkM0RkYwIC8qIEZpbGVTeXN0ZW1TeW5jQWNjZXNz
SGFuZGxlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VIYW5kbGUuY3BwCmlu
ZGV4IDRmNzJjZDAzZjM2OGY0NTc2ZDQzNWQ2N2U2MmUzYTExYjkyY2ZlYTQuLjczYWE2NzcyMTgz
MDk4NTg0ZTFmMWJlMTA5OWNkZjM1MDAyMGZmYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3RvcmFnZUhhbmRsZS5jcHAKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFu
ZGxlLmNwcApAQCAtNjgsNiArNjgsOCBAQCB2b2lkIEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpj
bG9zZSgpCiAgICAgaWYgKCFtX21hbmFnZXIpCiAgICAgICAgIHJldHVybjsKIAorICAgIGlmICht
X2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUpCisgICAgICAgIGNsb3NlU3luY0FjY2Vzc0hhbmRsZSgq
bV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlKTsKICAgICBtX21hbmFnZXItPmNsb3NlSGFuZGxlKCp0
aGlzKTsKIH0KIApAQCAtMTgxLDcgKzE4Myw3IEBAIEV4cGVjdGVkPEZpbGVTeXN0ZW1TdG9yYWdl
SGFuZGxlOjpBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPiBGaWxlCiAg
ICAgcmV0dXJuIHN0ZDo6cGFpciB7ICptX2FjdGl2ZVN5bmNBY2Nlc3NIYW5kbGUsIFdURk1vdmUo
KmlwY0hhbmRsZSkgfTsKIH0KIAotc3RkOjpvcHRpb25hbDxGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiBGaWxlU3lzdGVtU3RvcmFnZUhhbmRsZTo6Y2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNB
Y2Nlc3NIYW5kbGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCitzdGQ6Om9wdGlv
bmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IEZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlOjpjbG9z
ZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVu
dGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpCiB7CiAgICAgaWYgKCFtX2FjdGl2ZVN5bmNB
Y2Nlc3NIYW5kbGUgfHwgKm1fYWN0aXZlU3luY0FjY2Vzc0hhbmRsZSAhPSBhY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKQogICAgICAgICByZXR1cm4gRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcjo6VW5rbm93
bjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxl
U3lzdGVtU3RvcmFnZUhhbmRsZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9y
YWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKaW5kZXggNDczMzhlZmU1MzgyMmE3NmE1NDg0
ZjI5YzkzNTc2NzhmNDAxODg1Yy4uMTYxYTg5YjgwYTNkMTg0YWYxZDM5OGFlODEzZjgzMDFjZWIw
NTc0NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL0Zp
bGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9zdG9yYWdlL0ZpbGVTeXN0ZW1TdG9yYWdlSGFuZGxlLmgKQEAgLTYxLDcgKzYxLDcgQEAgcHVi
bGljOgogCiAgICAgdXNpbmcgQWNjZXNzSGFuZGxlSW5mbyA9IHN0ZDo6cGFpcjxXZWJDb3JlOjpG
aWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRs
ZT47CiAgICAgRXhwZWN0ZWQ8QWNjZXNzSGFuZGxlSW5mbywgRmlsZVN5c3RlbVN0b3JhZ2VFcnJv
cj4gY3JlYXRlU3luY0FjY2Vzc0hhbmRsZSgpOwotICAgIHN0ZDo6b3B0aW9uYWw8RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gY2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJ
ZGVudGlmaWVyKTsKKyAgICBzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IGNs
b3NlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlk
ZW50aWZpZXIpOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nl
c3NIYW5kbGVJZGVudGlmaWVyPiBhY3RpdmVTeW5jQWNjZXNzSGFuZGxlKCkgY29uc3QgeyByZXR1
cm4gbV9hY3RpdmVTeW5jQWNjZXNzSGFuZGxlOyB9CiAKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvRmlsZVN5c3RlbVN0b3JhZ2VNYW5h
Z2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVt
U3RvcmFnZU1hbmFnZXIuY3BwCmluZGV4IDI5Y2ZiMGM2YjM3M2EyNWZmMDFjY2U4NjMzYzk1ZTU2
YjFhY2I3ZjQuLjA5ZjgyMjIzOTlkNzdmOTNkZThiNjk5MzFkZWU0YTQzZGEzMTE4ZTkgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9GaWxlU3lzdGVtU3Rv
cmFnZU1hbmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFn
ZS9GaWxlU3lzdGVtU3RvcmFnZU1hbmFnZXIuY3BwCkBAIC05OSw2ICs5OSwxMCBAQCB2b2lkIEZp
bGVTeXN0ZW1TdG9yYWdlTWFuYWdlcjo6Y2xvc2VIYW5kbGUoRmlsZVN5c3RlbVN0b3JhZ2VIYW5k
bGUmIGhhbmRsZSkKICAgICBhdXRvIGlkZW50aWZpZXIgPSBoYW5kbGUuaWRlbnRpZmllcigpOwog
ICAgIGF1dG8gdGFrZW5IYW5kbGUgPSBtX2hhbmRsZXMudGFrZShpZGVudGlmaWVyKTsKICAgICBB
U1NFUlQodGFrZW5IYW5kbGUuZ2V0KCkgPT0gJmhhbmRsZSk7CisgICAgZm9yIChhdXRvJiBoYW5k
bGVzIDogbV9oYW5kbGVzQnlDb25uZWN0aW9uLnZhbHVlcygpKSB7CisgICAgICAgIGlmIChoYW5k
bGVzLnJlbW92ZShpZGVudGlmaWVyKSkKKyAgICAgICAgICAgIGJyZWFrOworICAgIH0KICAgICBt
X3JlZ2lzdHJ5LnVucmVnaXN0ZXJIYW5kbGUoaWRlbnRpZmllcik7CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFn
ZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9y
YWdlTWFuYWdlci5jcHAKaW5kZXggNTY0MTg1Y2E5MDc1Y2FkMDhmNzg0NzNlMTUyMDc1ZDE3MjU3
MDI5MC4uMDQyOTNmOGM4MDVlZTUwZDk1NjZkYWQ5ZjdmNTRiMGMwNTMwNDFjZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFu
YWdlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdv
cmtTdG9yYWdlTWFuYWdlci5jcHAKQEAgLTM3OSw3ICszNzksNyBAQCB2b2lkIE5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6Y3JlYXRlU3luY0FjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFu
ZGxlSWRlbgogICAgIGZpbGVIYW5kbGUuY2xvc2UoKTsKIH0KIAotdm9pZCBOZXR3b3JrU3RvcmFn
ZU1hbmFnZXI6OmNsb3NlQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVu
dGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRl
bnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQordm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmNsb3NlU3luY0FjY2Vzc0hhbmRsZShXZWJD
b3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxl
U3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoIVJ1bkxvb3A6OmlzTWFp
bigpKTsKIApAQCAtMzg3LDcgKzM4Nyw3IEBAIHZvaWQgTmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpj
bG9zZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllCiAgICAg
aWYgKCFoYW5kbGUpCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihGaWxlU3lzdGVt
U3RvcmFnZUVycm9yOjpVbmtub3duKTsKIAotICAgIGNvbXBsZXRpb25IYW5kbGVyKGhhbmRsZS0+
Y2xvc2UoYWNjZXNzSGFuZGxlSWRlbnRpZmllcikpOworICAgIGNvbXBsZXRpb25IYW5kbGVyKGhh
bmRsZS0+Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpKTsKIH0K
IAogdm9pZCBOZXR3b3JrU3RvcmFnZU1hbmFnZXI6OmdldEhhbmRsZU5hbWVzKFdlYkNvcmU6OkZp
bGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhwZWN0ZWQ8VmVjdG9yPFN0cmluZz4sIEZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+KT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIuaAppbmRleCBiODA5NzI1OGZk
YjkyZDEwYzU3MDAzNDA1Y2Y4M2NkMTA5ZTAwZmU4Li5kMjFkNjU2ZDNhNjcyN2M5OGQxMmE0MTIz
NzVlZDA1MmE1M2E5ZTkxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5oCkBAIC0xMDMsNyArMTAz
LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldEZpbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8U3RyaW5nLCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIHVzaW5nIEFjY2Vzc0hhbmRsZUluZm8gPSBz
dGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBJ
UEM6OlNoYXJlZEZpbGVIYW5kbGU+OwogICAgIHZvaWQgY3JlYXRlU3luY0FjY2Vzc0hhbmRsZShX
ZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChFeHBlY3RlZDxBY2Nlc3NIYW5kbGVJbmZvLCBGaWxlU3lzdGVtU3RvcmFnZUVycm9yPik+JiYp
OwotICAgIHZvaWQgY2xvc2VBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlk
ZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0ZW1TdG9yYWdlRXJy
b3I+KT4mJik7CisgICAgdm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbUhhbmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxl
SWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPEZpbGVTeXN0
ZW1TdG9yYWdlRXJyb3I+KT4mJik7CiAgICAgdm9pZCBnZXRIYW5kbGVOYW1lcyhXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3Rl
ZDxWZWN0b3I8U3RyaW5nPiwgRmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4pPiYmKTsKICAgICB2b2lk
IGdldEhhbmRsZShJUEM6OkNvbm5lY3Rpb24mLCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRl
bnRpZmllciwgU3RyaW5nJiYgbmFtZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeHBlY3RlZDxz
dGQ6OnBhaXI8V2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGJvb2w+LCBGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPik+JiYpOwogICAgIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdlTWFuYWdlci5tZXNzYWdlcy5p
biBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1h
bmFnZXIubWVzc2FnZXMuaW4KaW5kZXggMDQyMmI2MzQ3NTFkMDM4NWY4NGUwMWY2NGFjNjFkYWYz
MWMxNWU4OC4uYTUxNmFkYTk4MzJmZGVmNWI2ODE0OTQ0MjE1ZjY4OGZkYTgxYzYxNSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9zdG9yYWdlL05ldHdvcmtTdG9yYWdl
TWFuYWdlci5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL3N0
b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2VyLm1lc3NhZ2VzLmluCkBAIC0zNiw3ICszNiw3IEBA
CiAgICAgTW92ZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVy
LCBXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZp
ZXIsIFN0cmluZyBuZXdOYW1lKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1T
dG9yYWdlRXJyb3I+IHJlc3VsdCkgQXN5bmMKICAgICBHZXRGaWxlKFdlYkNvcmU6OkZpbGVTeXN0
ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxTdHJpbmcsIFdlYktp
dDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIENyZWF0ZVN5bmNB
Y2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIgaWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPHN0ZDo6cGFpcjxXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hh
bmRsZUlkZW50aWZpZXIsIElQQzo6U2hhcmVkRmlsZUhhbmRsZT4sIFdlYktpdDo6RmlsZVN5c3Rl
bVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwotICAgIENsb3NlQWNjZXNzSGFuZGxlKFdlYkNv
cmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVT
eXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSAt
PiAoc3RkOjpvcHRpb25hbDxXZWJLaXQ6OkZpbGVTeXN0ZW1TdG9yYWdlRXJyb3I+IHJlc3VsdCkg
QXN5bmMKKyAgICBDbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIgaWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGVJZGVudGlmaWVyIGFjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIC0+IChzdGQ6Om9wdGlvbmFsPFdl
YktpdDo6RmlsZVN5c3RlbVN0b3JhZ2VFcnJvcj4gcmVzdWx0KSBBc3luYwogICAgIEdldEhhbmRs
ZU5hbWVzKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+
IChFeHBlY3RlZDxWZWN0b3I8U3RyaW5nPiwgV2ViS2l0OjpGaWxlU3lzdGVtU3RvcmFnZUVycm9y
PiByZXN1bHQpIEFzeW5jCiAgICAgR2V0SGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJ
ZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyBuYW1lKSAtPiAoRXhwZWN0ZWQ8c3RkOjpwYWly
PFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBib29sPiwgV2ViS2l0OjpGaWxl
U3lzdGVtU3RvcmFnZUVycm9yPiByZXN1bHQpIEFzeW5jIFdhbnRzQ29ubmVjdGlvbgogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2ViRmlsZVN5
c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJD
b3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCmluZGV4IGI3YWJk
Y2ZkZTVjZjhhYmNjNjM4NWU0YTFhMDc5YTg1NWViYzJkNjcuLjNjODdlMWY3NTRmYzU5MzRjY2E5
YTkyNTgwOTQ2OGQ5ZmVlODRlNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb24uY3BwCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9F
eGNlcHRpb25Pci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbURpcmVjdG9yeUhhbmRs
ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmlsZVN5c3RlbUZpbGVIYW5kbGUuaD4KKyNpbmNsdWRl
IDxXZWJDb3JlL0ZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TY3JpcHRFeGVjdXRpb25Db250ZXh0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Xb3JrZXJGaWxl
U3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1dvcmtlckdsb2Jh
bFNjb3BlLmg+CkBAIC03OCwxMyArNzksMTMgQEAgdm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNv
bm5lY3Rpb246OmdldEZpbGVIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW4KICAg
ICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKFdl
YkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5lY3Rpb24gaXMg
bG9zdCIgfSk7CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRGaWxlSGFuZGxlKGlkZW50aWZpZXIsIG5hbWUs
IGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rp
b24tPnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpH
ZXRGaWxlSGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlmTmVjZXNzYXJ5KSwgW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBuYW1lLCBjb21wbGV0aW9uSGFuZGxlciA9
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAg
ICAgIGlmICghcmVzdWx0KQogICAgICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5kbGVyKGNv
bnZlcnRUb0V4Y2VwdGlvbihyZXN1bHQuZXJyb3IoKSkpOwogCiAgICAgICAgIGF1dG8gaWRlbnRp
ZmllciA9IHJlc3VsdC52YWx1ZSgpOwogICAgICAgICBBU1NFUlQoaWRlbnRpZmllci5pc1ZhbGlk
KCkpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKGlkZW50aWZpZXIpKTsKKyAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUNsb3NlU2Nv
cGU6OmNyZWF0ZShpZGVudGlmaWVyLCBmYWxzZSwgKnRoaXMpKTsKICAgICB9KTsKIH0KIApAQCAt
OTMsMTMgKzk0LDEzIEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpnZXRE
aXJlY3RvcnlIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsCiAgICAgaWYgKCFtX2Nvbm5l
Y3Rpb24pCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpFeGNlcHRp
b24geyBXZWJDb3JlOjpVbmtub3duRXJyb3IsICJDb25uZWN0aW9uIGlzIGxvc3QiIH0pOwogCi0g
ICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9y
YWdlTWFuYWdlcjo6R2V0RGlyZWN0b3J5SGFuZGxlKGlkZW50aWZpZXIsIG5hbWUsIGNyZWF0ZUlm
TmVjZXNzYXJ5KSwgW25hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKKyAgICBtX2Nvbm5lY3Rpb24tPnNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXREaXJlY3Rv
cnlIYW5kbGUoaWRlbnRpZmllciwgbmFtZSwgY3JlYXRlSWZOZWNlc3NhcnkpLCBbdGhpcywgcHJv
dGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIG5hbWUsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAg
aWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gY29tcGxldGlvbkhhbmRsZXIoY29udmVy
dFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7CiAKICAgICAgICAgYXV0byBpZGVudGlmaWVy
ID0gcmVzdWx0LnZhbHVlKCk7CiAgICAgICAgIEFTU0VSVChpZGVudGlmaWVyLmlzVmFsaWQoKSk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKFdURk1vdmUoaWRlbnRpZmllcikpOworICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcihXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlQ2xvc2VTY29wZTo6
Y3JlYXRlKGlkZW50aWZpZXIsIHRydWUsICp0aGlzKSk7CiAgICAgfSk7CiB9CiAKQEAgLTE1Mywx
MiArMTU0LDEyIEBAIHZvaWQgV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1ICiAgICAgfSk7CiB9CiAKLXZvaWQg
V2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpjbG9zZShXZWJDb3JlOjpGaWxlU3lzdGVt
SGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vz
c0hhbmRsZUlkZW50aWZpZXIgYWNjZXNzSGFuZGxlSWRlbnRpZmllciwgVm9pZENhbGxiYWNrJiYg
Y29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFdlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6
Y2xvc2VTeW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVy
IGlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBWb2lkQ2FsbGJhY2smJiBjb21wbGV0aW9uSGFuZGxl
cikKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25I
YW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJvciwgIkNvbm5l
Y3Rpb24gaXMgbG9zdCIgfSk7CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpDbG9zZUFjY2Vzc0hhbmRsZShpZGVu
dGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlmaWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gZXJyb3IpIG11dGFibGUgeworICAgIG1fY29u
bmVjdGlvbi0+c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrU3RvcmFnZU1hbmFn
ZXI6OkNsb3NlU3luY0FjY2Vzc0hhbmRsZShpZGVudGlmaWVyLCBhY2Nlc3NIYW5kbGVJZGVudGlm
aWVyKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1
dG8gZXJyb3IpIG11dGFibGUgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihjb252ZXJ0VG9F
eGNlcHRpb25PcihlcnJvcikpOwogICAgIH0pOwogfQpAQCAtMTc2LDE2ICsxNzcsMTggQEAgdm9p
ZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEhhbmRsZU5hbWVzKFdlYkNvcmU6
OkZpbGVTeXN0ZW1IYW5kbGVJZGUKICAgICB9KTsKIH0KIAotdm9pZCBXZWJGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OmdldEhhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtSGFuZGxlSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUsIEZpbGVTeXN0ZW1TdG9yYWdlQ29u
bmVjdGlvbjo6R2V0SGFuZGxlV2l0aFR5cGVDYWxsYmFjayYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBXZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OmdldEhhbmRsZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciBpZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxlQ2FsbGJhY2smJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKICAgICBpZiAoIW1fY29ubmVjdGlvbikKICAgICAgICAgcmV0dXJuIGNv
bXBsZXRpb25IYW5kbGVyKFdlYkNvcmU6OkV4Y2VwdGlvbiB7IFdlYkNvcmU6OlVua25vd25FcnJv
ciwgIkNvbm5lY3Rpb24gaXMgbG9zdCIgfSk7CiAKLSAgICBtX2Nvbm5lY3Rpb24tPnNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1N0b3JhZ2VNYW5hZ2VyOjpHZXRIYW5kbGUoaWRl
bnRpZmllciwgbmFtZSksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXShhdXRvIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgbV9jb25uZWN0aW9uLT5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtTdG9yYWdlTWFuYWdlcjo6R2V0SGFuZGxlKGlk
ZW50aWZpZXIsIG5hbWUpLCBbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0aGlzIH0sIGNv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKGF1dG8gcmVzdWx0
KSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgICAgICByZXR1cm4gY29t
cGxldGlvbkhhbmRsZXIoY29udmVydFRvRXhjZXB0aW9uKHJlc3VsdC5lcnJvcigpKSk7Ci0KLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXN1bHQudmFsdWUoKSkpOworICAgICAg
ICAKKyAgICAgICAgYXV0byBbaWRlbnRpZmllciwgaXNEaXJlY3RvcnldID0gcmVzdWx0LnZhbHVl
KCk7CisgICAgICAgIEFTU0VSVChpZGVudGlmaWVyLmlzVmFsaWQoKSk7CisgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVDbG9zZVNjb3BlOjpjcmVhdGUo
aWRlbnRpZmllciwgaXNEaXJlY3RvcnksICp0aGlzKSk7CiAgICAgfSk7CiB9CiAKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJGaWxlU3lzdGVt
U3RvcmFnZUNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJDb3JlU3Vw
cG9ydC9XZWJGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb24uaAppbmRleCAzYTUxYzNkMTc4N2Jh
OTQzYzU2MTcwMDkwMDY5Mzg1NzhkYWJhZTI1Li43ODMwMmY4MjQ5OWQxNjM5YmQ4MWQ2NmY0MjBl
NzdhNmUzZGZmZDZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQ29y
ZVN1cHBvcnQvV2ViRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbi5oCkBAIC04MSwxMSArODEsMTEgQEAgcHJpdmF0ZToKICAgICB2b2lkIHJlbW92ZUVudHJ5
KFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIG5hbWUs
IGJvb2wgZGVsZXRlUmVjdXJzaXZlbHksIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVj
dGlvbjo6Vm9pZENhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgcmVzb2x2ZShXZWJDb3JlOjpG
aWxlU3lzdGVtSGFuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6UmVzb2x2ZUNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0SGFuZGxlTmFtZXMoV2ViQ29yZTo6RmlsZVN5c3Rl
bUhhbmRsZUlkZW50aWZpZXIsIEZpbGVTeXN0ZW1TdG9yYWdlQ29ubmVjdGlvbjo6R2V0SGFuZGxl
TmFtZXNDYWxsYmFjayYmKSBmaW5hbDsKLSAgICB2b2lkIGdldEhhbmRsZShXZWJDb3JlOjpGaWxl
U3lzdGVtSGFuZGxlSWRlbnRpZmllciwgY29uc3QgU3RyaW5nJiBuYW1lLCBGaWxlU3lzdGVtU3Rv
cmFnZUNvbm5lY3Rpb246OkdldEhhbmRsZVdpdGhUeXBlQ2FsbGJhY2smJikgZmluYWw7CisgICAg
dm9pZCBnZXRIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50aWZpZXIsIGNvbnN0
IFN0cmluZyYgbmFtZSwgRmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpHZXRIYW5kbGVDYWxs
YmFjayYmKSBmaW5hbDsKICAgICB2b2lkIGdldEZpbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFN0cmluZ0NhbGxiYWNrJiYpIGZpbmFsOwogCiAgICAgdm9pZCBjcmVhdGVT
eW5jQWNjZXNzSGFuZGxlKFdlYkNvcmU6OkZpbGVTeXN0ZW1IYW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpGaWxlU3lzdGVtU3RvcmFnZUNvbm5lY3Rpb246OkdldEFjY2Vzc0hhbmRsZUNhbGxiYWNr
JiYpIGZpbmFsOwotICAgIHZvaWQgY2xvc2UoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRsZUlkZW50
aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmllciwgV2Vi
Q29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBjbG9zZVN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5c3RlbUhhbmRs
ZUlkZW50aWZpZXIsIFdlYkNvcmU6OkZpbGVTeXN0ZW1TeW5jQWNjZXNzSGFuZGxlSWRlbnRpZmll
ciwgV2ViQ29yZTo6RmlsZVN5c3RlbVN0b3JhZ2VDb25uZWN0aW9uOjpWb2lkQ2FsbGJhY2smJikg
ZmluYWw7CiAgICAgdm9pZCByZWdpc3RlclN5bmNBY2Nlc3NIYW5kbGUoV2ViQ29yZTo6RmlsZVN5
c3RlbVN5bmNBY2Nlc3NIYW5kbGVJZGVudGlmaWVyLCBXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcikgZmluYWw7CiAgICAgdm9pZCB1bnJlZ2lzdGVyU3luY0FjY2Vzc0hh
bmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3luY0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFs
OwogICAgIHZvaWQgaW52YWxpZGF0ZUFjY2Vzc0hhbmRsZShXZWJDb3JlOjpGaWxlU3lzdGVtU3lu
Y0FjY2Vzc0hhbmRsZUlkZW50aWZpZXIpIGZpbmFsOwo=
</data>
<flag name="commit-queue"
          id="473009"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>