<?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>237280</bug_id>
          
          <creation_ts>2022-02-28 10:46:28 -0800</creation_ts>
          <short_desc>REGRESSION (r284472): [ Monterey ] http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html is failing</short_desc>
          <delta_ts>2022-03-04 17:07:56 -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>Page Loading</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Truitt Savell">tsavell</reporter>
          <assigned_to name="Patrick Angle">pangle</assigned_to>
          <cc>achristensen</cc>
    
    <cc>beidson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>pangle</cc>
    
    <cc>toyoshim</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
    
    <cc>yutak</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1846698</commentid>
    <comment_count>0</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2022-02-28 10:46:28 -0800</bug_when>
    <thetext>http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger.html

Possibly this test just needs a new baseline for Monterey, seems like there is a minor timing difference. 

History:
https://results.webkit.org/?suite=layout-tests&amp;test=http%2Ftests%2Fwebsocket%2Ftests%2Fhybi%2Finspector%2Fsend-and-recieve-debugger.html

Diff:
--- /Volumes/Data/worker/monterey-release-applesilicon-tests-wk2/build/layout-test-results/http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger-expected.txt
+++ /Volumes/Data/worker/monterey-release-applesilicon-tests-wk2/build/layout-test-results/http/tests/websocket/tests/hybi/inspector/send-and-recieve-debugger-actual.txt
@@ -9,10 +9,10 @@
 PASS: Frame should be outgoing.
 PASS: Message is walltime.
 Pausing script execution with `debugger` statement.
-Resuming script execution.
 PASS: Resource size should double.
 PASS: Frame data should be &apos;Hello World! ÐŸÑ€Ð¸Ð²ÐµÑ‚ ÐœÐ¸Ñ€!&apos;
 PASS: Frame should be text.
 PASS: Frame should be incoming.
 PASS: Frame walltime should be greater than the previous one.
+Resuming script execution.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846702</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-02-28 10:48:23 -0800</bug_when>
    <thetext>&lt;rdar://problem/89569036&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1846826</commentid>
    <comment_count>2</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2022-02-28 15:51:06 -0800</bug_when>
    <thetext>This looks like an outright failure, not a timing difference. The purpose of the test is to verify that messages aren&apos;t being handled while JS execution is disabled, and that&apos;s exactly what is happening here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847499</commentid>
    <comment_count>3</comment_count>
      <attachid>453635</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-02 10:44:41 -0800</bug_when>
    <thetext>Created attachment 453635
Patch v1.0 - For verification in EWS before review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847509</commentid>
    <comment_count>4</comment_count>
      <attachid>453638</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-02 11:01:52 -0800</bug_when>
    <thetext>Created attachment 453638
Patch v1.1 - For verification in EWS before review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847619</commentid>
    <comment_count>5</comment_count>
      <attachid>453660</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-02 14:31:48 -0800</bug_when>
    <thetext>Created attachment 453660
Patch v1.2 - For verification in EWS before review</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847916</commentid>
    <comment_count>6</comment_count>
      <attachid>453748</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-03 09:03:47 -0800</bug_when>
    <thetext>Created attachment 453748
Patch v1.3</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848019</commentid>
    <comment_count>7</comment_count>
      <attachid>453748</attachid>
    <who name="Devin Rousso">hi</who>
    <bug_when>2022-03-03 11:57:29 -0800</bug_when>
    <thetext>Comment on attachment 453748
Patch v1.3

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

r=me, nice fix! =D

&gt; Source/WebCore/ChangeLog:20
&gt; +        correct this the `WebKit::WebSocketChannel` now provides a hook into its helper `WebInspectorChannelInspector`

Did you mean `WebSocketChannelInspector`?

&gt; Source/WebCore/Modules/websockets/WebSocket.cpp:614
&gt; +        if (auto* inspector = m_channel-&gt;channelInspector())

NIT: Should this also be wrapped in a `if (UNLIKELY(InspectorInstrumentation::hasFrontends())) {`?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848257</commentid>
    <comment_count>8</comment_count>
      <attachid>453748</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2022-03-04 04:43:16 -0800</bug_when>
    <thetext>Comment on attachment 453748
Patch v1.3

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

&gt; Source/WebCore/ChangeLog:19
&gt; +        in the frontend &quot;in the future&quot; (e.g. before the paused script would have been able to be aware of them). To

Isn&apos;t it a good thing to have inspector showing what happens in the network, instead of what happens in JS?

&gt; Source/WebCore/Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:222
&gt; +    m_pendingTasks.append(makeUnique&lt;ScriptExecutionContext::Task&gt;([this, protectedThis = Ref { *this }, reason] (ScriptExecutionContext&amp;) {

didClose is isolating copy reason, which might not be needed.
We should probably be consistent though.

&gt; Source/WebCore/Modules/websockets/WorkerThreadableWebSocketChannel.cpp:330
&gt; +    m_loaderProxy.postTaskForModeToWorkerOrWorkletGlobalScope([workerClientWrapper = m_workerClientWrapper, reason](ScriptExecutionContext&amp; context) mutable {

We need to isolateCopy here since we are hoping to another thread.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848302</commentid>
    <comment_count>9</comment_count>
      <attachid>453748</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-04 08:24:10 -0800</bug_when>
    <thetext>Comment on attachment 453748
Patch v1.3

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

&gt;&gt; Source/WebCore/ChangeLog:19
&gt;&gt; +        in the frontend &quot;in the future&quot; (e.g. before the paused script would have been able to be aware of them). To
&gt; 
&gt; Isn&apos;t it a good thing to have inspector showing what happens in the network, instead of what happens in JS?

The web socket is a viewable &quot;source&quot; with a list of events in the Sources Tab of Web Inspector. The behavior before r284472 was that we only showed these messages when they logically happened in relationship to JS.  This is also how Web Socket messages in Web Inspector are still represented pre-Monterey, since the instrumentation isn&apos;t called until script execution is resumed and the event loop has its next chance to fire the appropriate events in JS - otherwise the socket may show messages that the author would have wanted to handle, leaving them wondering why their handler was not called as they step through their code since the handler will be informed some time in the future of the message.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848331</commentid>
    <comment_count>10</comment_count>
      <attachid>453850</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-04 09:40:10 -0800</bug_when>
    <thetext>Created attachment 453850
Patch v1.4</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848442</commentid>
    <comment_count>11</comment_count>
      <attachid>453850</attachid>
    <who name="Patrick Angle">pangle</who>
    <bug_when>2022-03-04 16:23:39 -0800</bug_when>
    <thetext>Comment on attachment 453850
Patch v1.4

Oops - meant to set cq+, not r+</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848458</commentid>
    <comment_count>12</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-04 17:07:52 -0800</bug_when>
    <thetext>Committed r290856 (248088@main): &lt;https://commits.webkit.org/248088@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 453850.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453635</attachid>
            <date>2022-03-02 10:44:41 -0800</date>
            <delta_ts>2022-03-02 11:16:41 -0800</delta_ts>
            <desc>Patch v1.0 - For verification in EWS before review</desc>
            <filename>bug-237280-20220302104440.patch</filename>
            <type>text/plain</type>
            <size>40603</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjNTkzOTA0ZDEyNzZl
MDk3YTBjZDJmOTg4Nzg3ZGUxMDM4ZTlmMi4uZjQ0YzQ2M2FkOTdiMzI2ZWU4NmViNzE3MDBkYmZl
OTRhY2E2Y2Q2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDIyLTAzLTAyICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0
NDcyKTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVj
dG9yL3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyogdGVzdCBjYXNlcy4K
KworICAgICAgICBPbiBtYWNPUyBNb250ZXJleSB3ZSB1c2UgTlNVUkxTZXNzaW9uLWJhc2VkIFdl
YlNvY2tldHMgYnkgZGVmYXVsdC4gVGhlIGNoYW5uZWwgZm9yIHRoZXNlIHNvY2tldHMgaXMgaW1w
bGVtZW50ZWQKKyAgICAgICAgaW4gYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAuIFRoZSBub24t
TlNVUkxTZXNzaW9uIFdlYlNvY2tldHMgY2hhbm5lbCAoYXQgbGVhc3Qgb24gQ29jb2EgcGxhdGZv
cm1zKSBpcworICAgICAgICBpbXBsZW1lbnRlZCBpbiBgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bGAKKworICAgICAgICBBcyBvZiByMjg0NDcyIHRoZSBsb2dpYyB0byBkZWxheSB0aGUgZGlzcGF0
Y2ggb2YgcmVjZWl2ZWQgV2ViU29ja2V0IG1lc3NhZ2VzIGlzIGhhbmRsZWQgYnkgYFdlYkNvcmU6
OldlYlNvY2tldGAsCisgICAgICAgIG5vdCB0aGUgYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAu
IGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIG5vdyBpbW1lZGlhdGVseSBkb2VzIHRoZSB3b3Jr
IGl0IG5lZWRzIHRvLCBhbmQKKyAgICAgICAgb25seSB0aGUgZGVsZWdhdGVkIHdvcmsgdG8gYFdl
YlNvY2tldGAgaXMgcXVldWVkIGFuZCB0YWtlbiBjYXJlIG9mIHdoZW4gdGhlIHNvY2tldCBoYXMg
cmVzdW1lZC4gVGhpcyByZXN1bHRlZCBpbgorICAgICAgICB0aGUgaW5zdHJ1bWVudGF0aW9uIGlu
IGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIGJlaW5nIGFibGUgdG8gYmUgY2FsbGVkIHdoaWxl
IHRoZSBzb2NrZXQgd2FzIHN1c3BlbmRlZCBsZWFkaW5nCisgICAgICAgIHRvIGV2ZW50cyBiZWlu
ZyBsb2dnZWQgaW4gdGhlIGZyb250ZW5kICJpbiB0aGUgZnV0dXJlIiAoZS5nLiBiZWZvcmUgdGhl
IHBhdXNlZCBzY3JpcHQgd291bGQgaGF2ZSBiZWVuIGFibGUgdG8gYmUKKyAgICAgICAgYXdhcmUg
b2YgdGhlbSkuIFRvIGNvcnJlY3QgdGhpcyB0aGUgYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAg
bm93IHByb3ZpZGVzIGEgaG9vayBpbnRvIGl0cyBoZWxwZXIKKyAgICAgICAgYFdlYkluc3BlY3Rv
ckNoYW5uZWxJbnNwZWN0b3JgIG9iamVjdCB0byBhbGxvdyB0aGUgYFdlYkNvcmU6OldlYlNvY2tl
dGAgdG8gbm90aWZ5IFdlYiBJbnNwZWN0b3Igb2YgZXZlbnRzIGF0IHRoZSAKKyAgICAgICAgYW1l
IHRpbWUgaXQgaXMgYmVpbmcgbG9naWNhbGx5IGhhbmRsZWQgYnkgdGhlIHBhZ2UuCisKKyAgICAg
ICAgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbCB3YXMgbm90IGFmZmVjdGVkIGJ5IHRoZSBjaGFu
Z2VzIGluIHIyODQ0NzIgYXMgaXQgYXBwZWFycyB0byBoYXZlIGhhZCBhIGRpZmZlcmVudCB3YXkK
KyAgICAgICAgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIG1ldGhvZHMgY29udGFpbmluZyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24gd2VyZSBub3QgY2FsbGVkIHdoaWxlIHRoZSBjaGFubmVsIHdhcwor
ICAgICAgICBzdXNwZW5kZWQgKGFuZCBlbmZvcmNlZCB3aXRoIG51bWVyb3VzIGBBU1NFUlQoIW1f
c3VzcGVuZGVkKWAgY2hlY2tzKS4gSG93ZXZlciwgc2luY2UgYFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWxgCisgICAgICAgIGNhbGxzIGluIHRvIHRoZSBzYW1lIGhvb2tzIGluIGBXZWJTb2NrZXRg
IGFzIGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIGRvZXMsIGl0IG1ha2VzIHNlbnNlIHRvIGdl
bmVyYWxpemUgdGhlCisgICAgICAgIGluc3RydW1lbnRhdGlvbiB0byB1c2UgdGhlIHNhbWUgYFdl
Ykluc3BlY3RvckNoYW5uZWxJbnNwZWN0b3JgIGZvciB0aG9zZSBpbnN0cnVtZW50YXRpb24gcG9p
bnRzIHRvIGF2b2lkIHN1YnRsZQorICAgICAgICBkaWZmZXJlbmNlcyBpbiB3aGVuIG1lc3NhZ2Vz
IGFyZSBkZWxpdmVyZWQgdG8gV2ViIEluc3BlY3Rvci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNoYW5uZWxJbnNwZWN0b3IgY29uc3QpOgorICAg
ICAgICAtIEFkZCBuZXcgaG9vayBmb3Igc3ViY2xhc3NlcyB0byBvcHRpb25hbGx5IHByb3ZpZGUg
YW4gaW5zdGFuY2Ugb2YgYFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3JgIGZvciBgV2ViU29ja2V0
YAorICAgICAgICB0byBpbmZvcm0gb2YgcmVsZXZhbnQgZXZlbnRzLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaDoKKworICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRp
ZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRp
ZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
ZGlkQ2xvc2VTb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bDo6ZGlkRmFpbFNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzZW5k
RnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmg6
CisgICAgICAgIC0gVG8gaW5jcmVhc2UgcGFyaXR5IGluIHdoZW4gV2ViIEluc3BlY3RvciBpcyBp
bmZvcm1lZCBvZiBldmVudHMgYmV0d2VlbiB0aGUgbm9uLU5TVVJMU2Vzc2lvbiBhbmQgTlNVUkxT
ZXNzaW9uCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBvZiBgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxgLCBsZXQgYFdlYlNvY2tldGAgaGFuZGxlIGluZm9ybWluZyBXZWIgSW5zcGVjdG9yIG9m
IG1hbnkgZXZlbnRzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWxDbGllbnQuaDoKKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3I6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OndpbGxTZW5kV2ViU29j
a2V0SGFuZHNoYWtlUmVxdWVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ2xv
c2VXZWJTb2NrZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRXZWJTb2NrZXRGcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWVFcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRDcmVhdGVXZWJTb2NrZXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6d2lsbFNlbmRXZWJTb2Nr
ZXRIYW5kc2hha2VSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpk
aWRDbG9zZVdlYlNvY2tldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tl
dEZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oOgorICAgICAg
ICAtIEtlZXAgYSBXZWFrUmVmIHRvIHRoZSBgRG9jdW1lbnRgIHRvIG1ha2UgdXNpbmcgdGhpcyBB
UEkgbW9yZSBlcmdvbm9taWMgZnJvbSBgV2ViU29ja2V0YCwgd2hlcmUgZ2V0dGluZyB0aGUKKyAg
ICAgICAgYERvY3VtZW50YCB3b3VsZCBiZSBtb3JlIHZlcmJvc2UuCisKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisKIDIwMjItMDMt
MDEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjkwNjE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YzdlMDUwNzAxN2JhZGU0
M2MzZTQ2Mjc3Mzg2ZTE0YTc4YWJkZjkwLi4wMzMzZWM4OGVhOTAxNDAyOTU3NTEzNjMxYzI0Mjdk
ODY5ZGE5ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAzLTAyICBQYXRyaWNr
IEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0NDcy
KTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9y
L3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
bm90aWZ5U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRD
aGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hh
bm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
ZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVXZWJTb2NrZXRGcmFtZUZvcldlYkluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaDoKKwogMjAyMi0wMy0wMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIElmIHRoZSBt
YWluIHJlc291cmNlIHdhcyBsb2FkZWQgb3ZlciBwcml2YXRlIHJlbGF5LCBsb2FkIGFsbCBzdWIg
cmVzb3VyY2VzIG92ZXIgcHJpdmF0ZSByZWxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCAzMGI0YjM3MTYyMTViODJiODM2NjZkNGU1YmM0YWYzOTgzYjJlYTlkLi43MzE5OGQ1MDA4
MGQ5OGMwNjk5OTY3Mzk5YTY2MWIwMDZiZjYyNmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgV2ViU29j
a2V0Q2hhbm5lbDsKK2NsYXNzIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I7CiBjbGFzcyBXZWJT
b2NrZXRDaGFubmVsQ2xpZW50OwogCiB1c2luZyBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8V2ViU29ja2V0Q2hhbm5lbD47CkBAIC04NCw2ICs4NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVzdW1lKCkgPSAwOwogCisgICAgdmlydHVhbCBjb25zdCBXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yKiBjaGFubmVsSW5zcGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICAgICB2
aXJ0dWFsIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ3JlYXRlZEhhbmRzaGFrZSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb25uZWN0ZWQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IDc4Nzg3
OWZhNjg3NmE5ODQ4NTUxZDE2YWRlMzg1YjJlNzRlMWFkNzIuLmMxNjFhZjc3OTRiNzQ4MjQ0NGI4
N2ZkMTkxYjVlMWFiMDk0MDlkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC0yMTcsMTEgKzIxNywxMSBAQCB2b2lkIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkQ2xvc2UodW5zaWduZWQgdW5o
YW5kbGVkQnVmZmVyZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKLXZvaWQg
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKCkKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpk
aWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKQogewotICAgIG1fcGVu
ZGluZ1Rhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzaz4oW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCByZWFzb25dIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAg
ICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKICAgICB9
KSk7CiAKICAgICBpZiAoIW1fc3VzcGVuZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmluZGV4IDhkYTE4YzAwNjdkMGE1YWI3ZTdiNDI0MTJm
NmY1ZGEyYzAyZWFiZGMuLjZhZWJhNTNlOGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgK
QEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91
bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlKCk7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFt
b3VudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudDo6Q2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25T
dGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pOwogICAgIHZvaWQgZGlkVXBncmFkZVVSTCgpOwog
CiAgICAgdm9pZCBzdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGM1NTg3OTIzMjE1NWQ0NTVhOGU5M2JkODZiZmZiYzgx
ZjQwOTU5MzkuLjQ1ZjlhNWJiZTRmMzllNzcwMGQ1YmQ0NDg5ZWM1YzVlMmRiMjNiZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC00
Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VF
dmVudC5oIgogI2luY2x1ZGUgIk1peGVkQ29udGVudENoZWNrZXIuaCIKQEAgLTU2NSw2ICs1NjYs
MTMgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbXNn
KQogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2Vi
U29ja2V0LCBbdGhpcywgbXNnXSB7CiAgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVj
dG9yID0gbV9jaGFubmVsLT5jaGFubmVsSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBh
dXRvIHV0ZjhNZXNzYWdlID0gbXNnLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBpbnNwZWN0b3It
PmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVh
dGVGcmFtZSh1dGY4TWVzc2FnZS5kYXRhQXNVSW50OFB0cigpLCB1dGY4TWVzc2FnZS5sZW5ndGgo
KSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCkpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAg
ICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKICAgICB9KTsKQEAgLTU3Niw2ICs1ODQs
MTIgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90
PiYmIGJpbmFyeURhdGEpCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBU
YXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCBiaW5hcnlEYXRhID0gV1RGTW92ZShiaW5hcnlE
YXRhKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBpbnNwZWN0b3Ig
PSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNwZWN0b3IoKSkKKyAgICAgICAgICAgICAgICBpbnNwZWN0
b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpj
cmVhdGVGcmFtZShiaW5hcnlEYXRhLmRhdGEoKSwgYmluYXJ5RGF0YS5zaXplKCksIFdlYlNvY2tl
dEZyYW1lOjpPcENvZGU6Ok9wQ29kZUJpbmFyeSkpOworICAgICAgICB9CisKICAgICAgICAgc3dp
dGNoIChtX2JpbmFyeVR5cGUpIHsKICAgICAgICAgY2FzZSBCaW5hcnlUeXBlOjpCbG9iOgogICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIGp1c3QgcmVjZWl2ZWQgdGhlIGRhdGEgZnJvbSBOZXR3b3Jr
UHJvY2VzcywgYW5kIGFyZSBzZW5kaW5nIGl0IGJhY2suIFRoaXMgaXMgaW5lZmZpY2llbnQuCkBA
IC01ODgsMTQgKzYwMiwxOCBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
VmVjdG9yPHVpbnQ4X3Q+JiYgYmluYXJ5RGF0YSkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pCiB7CiAgICAgTE9HKE5ldHdvcmssICJX
ZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZUVycm9yTWVzc2FnZSgpIiwgdGhpcyk7Ci0gICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlz
XSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpX
ZWJTb2NrZXQsIFt0aGlzLCByZWFzb25dIHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VE
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAg
ICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKworICAgICAgICBpZiAoYXV0byog
aW5zcGVjdG9yID0gbV9jaGFubmVsLT5jaGFubmVsSW5zcGVjdG9yKCkpCisgICAgICAgICAgICBp
bnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKHJlYXNvbik7CisKICAgICAg
ICAgLy8gRklYTUU6IEFzIHBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWItc29ja2V0cy5odG1sI2ZlZWRiYWNrLWZyb20tdGhlLXByb3RvY29sOmNvbmNlcHQtd2Vi
c29ja2V0LWNsb3NlZCwgd2Ugc2hvdWxkIHN5bmNocm9ub3VzbHkgZmlyZSBhIGNsb3NlIGV2ZW50
LgogICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnRJZk5lZWRlZCgpOwogICAgIH0pOwpAQCAtNjI2
LDYgKzY0NCwxNCBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVk
QnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbAogICAgICAgICBpZiAoIW1fY2hh
bm5lbCkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvKiBpbnNwZWN0b3IgPSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNwZWN0b3IoKSkgeworICAgICAg
ICAgICAgICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlQ2xvc2UsIHRydWUsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgaW5zcGVjdG9y
LT5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoY2xvc2luZ0ZyYW1lKTsKKyAgICAgICAgICAgICAg
ICBpbnNwZWN0b3ItPmRpZENsb3NlV2ViU29ja2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKwogICAgICAgICBib29sIHdhc0NsZWFuID0gbV9zdGF0ZSA9PSBDTE9TSU5HICYmICF1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudCAmJiBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvbiA9PSBDbG9z
aW5nSGFuZHNoYWtlQ29tcGxldGUgJiYgY29kZSAhPSBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2
ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NFRDsKICAgICAg
ICAgbV9idWZmZXJlZEFtb3VudCA9IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGFiZTNkYTk2ZjVm
OGRmODRmZWY0NTczNWQ1YzgwYmJhYzIwNGQ2ZmYuLjBjMzZhMjM2MTEzN2UwODY1ODVhMDE3Yjlj
NmIxZjVlMTc4ZTZlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ29u
bmVjdCgpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50
OF90PiYmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pIGZp
bmFsOwogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRB
bW91bnQpIGZpbmFsOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgZmluYWw7
CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xv
c2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCAyZjdiODMzN2IwNGI2Zjll
MGM4MTI0ODUzMDIwOGI1MjQ3YmZhNDdjLi4xZWRjODQwNmQ5ZTFiYmQzY2ZlMzFiM2NiOGQwMTI4
ZTAyYjlkMDJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC02Niw3ICs2Niw3IEBAIFdlYlNvY2tldENoYW5u
ZWw6OldlYlNvY2tldENoYW5uZWwoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVs
Q2xpZW50JiBjCiAgICAgLCBtX2NsaWVudChjbGllbnQpCiAgICAgLCBtX3Jlc3VtZVRpbWVyKCp0
aGlzLCAmV2ViU29ja2V0Q2hhbm5lbDo6cmVzdW1lVGltZXJGaXJlZCkKICAgICAsIG1fY2xvc2lu
Z1RpbWVyKCp0aGlzLCAmV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2luZ1RpbWVyRmlyZWQpCi0gICAg
LCBtX3Byb2dyZXNzSWRlbnRpZmllcihXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllcjo6Z2VuZXJh
dGVUaHJlYWRTYWZlKCkpCisgICAgLCBtX2luc3BlY3Rvcihkb2N1bWVudCkKICAgICAsIG1fc29j
a2V0UHJvdmlkZXIocHJvdmlkZXIpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFu
bmVsICVwIGN0b3IsIHByb2dyZXNzIGlkZW50aWZpZXIgJSIgUFJJdTY0LCB0aGlzLCBtX3Byb2dy
ZXNzSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKQEAgLTEwMSw4ICsxMDEsNyBAQCBXZWJTb2NrZXRD
aGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3QgVVJM
JiByZXF1ZXN0ZWRVUgogICAgIG1faGFuZHNoYWtlID0gbWFrZVVuaXF1ZTxXZWJTb2NrZXRIYW5k
c2hha2U+KHZhbGlkYXRlZFVSTC0+dXJsLCBwcm90b2NvbCwgdXNlckFnZW50LCBjbGllbnRPcmln
aW4sIG1fYWxsb3dDb29raWVzLCBpc0FwcEluaXRpYXRlZCk7CiAgICAgbV9oYW5kc2hha2UtPnJl
c2V0KCk7CiAgICAgbV9oYW5kc2hha2UtPmFkZEV4dGVuc2lvblByb2Nlc3NvcihtX2RlZmxhdGVG
cmFtZXIuY3JlYXRlRXh0ZW5zaW9uUHJvY2Vzc29yKCkpOwotICAgIGlmIChtX3Byb2dyZXNzSWRl
bnRpZmllcikKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJT
b2NrZXQobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHZhbGlkYXRlZFVS
TC0+dXJsKTsKKyAgICBtX2luc3BlY3Rvci5kaWRDcmVhdGVXZWJTb2NrZXQodmFsaWRhdGVkVVJM
LT51cmwpOwogCiAgICAgYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LT5mcmFtZSgpOwogICAgIGF1
dG8qIHBhZ2UgPSBtX2RvY3VtZW50LT5wYWdlKCk7CkBAIC0yMTgsOCArMjE3LDYgQEAgdm9pZCBX
ZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgIFJFTEVBU0Vf
TE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGZhaWwoKSByZWFzb249JyVzJyIsIHRo
aXMsIHJlYXNvbi51dGY4KCkuZGF0YSgpKTsKICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKICAg
ICBpZiAobV9kb2N1bWVudCkgewotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJ
ZGVudGlmaWVyLCByZWFzb24pOwotCiAgICAgICAgIFN0cmluZyBjb25zb2xlTWVzc2FnZTsKICAg
ICAgICAgaWYgKG1faGFuZHNoYWtlKQogICAgICAgICAgICAgY29uc29sZU1lc3NhZ2UgPSBtYWtl
U3RyaW5nKCJXZWJTb2NrZXQgY29ubmVjdGlvbiB0byAnIiwgbV9oYW5kc2hha2UtPnVybCgpLnN0
cmluZ0NlbnRlckVsbGlwc2l6ZWRUb0xlbmd0aCgpLCAiJyBmYWlsZWQ6ICIsIHJlYXNvbik7CkBA
IC0yMzksNyArMjM2LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmlu
ZyYgcmVhc29uKQogICAgIG1faGFzQ29udGludW91c0ZyYW1lID0gZmFsc2U7CiAgICAgbV9jb250
aW51b3VzRnJhbWVEYXRhLmNsZWFyKCk7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2Ns
aWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVj
ZWl2ZU1lc3NhZ2VFcnJvcihyZWFzb24pOwogCiAgICAgaWYgKG1faGFuZGxlICYmICFtX2Nsb3Nl
ZCkKICAgICAgICAgbV9oYW5kbGUtPmRpc2Nvbm5lY3QoKTsgLy8gV2lsbCBjYWxsIGRpZENsb3Nl
U29ja2V0U3RyZWFtKCkgYnV0IG1heWJlIG5vdCBzeW5jaHJvbm91c2x5LgpAQCAtMjQ4LDggKzI0
NSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikK
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiB7CiAgICAgTE9HKE5ldHdvcmss
ICJXZWJTb2NrZXRDaGFubmVsICVwIGRpc2Nvbm5lY3QoKSIsIHRoaXMpOwotICAgIGlmIChtX3By
b2dyZXNzSWRlbnRpZmllciAmJiBtX2RvY3VtZW50KQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJ
ZGVudGlmaWVyKTsKKyAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldCgpOwogICAgIG1f
Y2xpZW50ID0gbnVsbHB0cjsKICAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKICAgICBpZiAobV9o
YW5kbGUpCkBAIC0yNzQsMTMgKzI3MCwxMyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9w
ZW5Tb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUpCiAgICAgQVNTRVJUKCZo
YW5kbGUgPT0gbV9oYW5kbGUpOwogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJu
OwotICAgIGlmIChtX3Byb2dyZXNzSWRlbnRpZmllciAmJiBVTkxJS0VMWShJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKSkgeworICAgIGlmIChVTkxJS0VMWShJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKSkgewogICAgICAgICBhdXRvIGNvb2tp
ZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVlID0gW2RvY3VtZW50ID0gbV9kb2N1bWVudF0gKGNvbnN0
IFVSTCYgdXJsKSAtPiBTdHJpbmcgewogICAgICAgICAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9j
dW1lbnQtPnBhZ2UoKSkKICAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAg
cmV0dXJuIGRvY3VtZW50LT5wYWdlKCktPmNvb2tpZUphcigpLmNvb2tpZVJlcXVlc3RIZWFkZXJG
aWVsZFZhbHVlKCpkb2N1bWVudCwgdXJsKTsKICAgICAgICAgfTsKLSAgICAgICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QobV9kb2N1
bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIG1faGFuZHNoYWtlLT5jbGllbnRIYW5k
c2hha2VSZXF1ZXN0KFdURk1vdmUoY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpKSk7Cisg
ICAgICAgIG1faW5zcGVjdG9yLndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChtX2hh
bmRzaGFrZS0+Y2xpZW50SGFuZHNoYWtlUmVxdWVzdChXVEZNb3ZlKGNvb2tpZVJlcXVlc3RIZWFk
ZXJGaWVsZFZhbHVlKSkpOwogICAgIH0KICAgICBhdXRvIGhhbmRzaGFrZU1lc3NhZ2UgPSBtX2hh
bmRzaGFrZS0+Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpOwogICAgIHN0ZDo6b3B0aW9uYWw8Q29v
a2llUmVxdWVzdEhlYWRlckZpZWxkUHJveHk+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5
OwpAQCAtMjk4LDggKzI5NCw2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3BlblNvY2tl
dFN0cmVhbShTb2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSkKIHZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6ZGlkQ2xvc2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUpCiB7CiAg
ICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZENsb3NlU29ja2V0U3RyZWFt
KCkiLCB0aGlzKTsKLSAgICBpZiAobV9wcm9ncmVzc0lkZW50aWZpZXIgJiYgbV9kb2N1bWVudCkK
LSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChtX2Rv
Y3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllcik7CiAgICAgQVNTRVJUX1VOVVNFRCho
YW5kbGUsICZoYW5kbGUgPT0gbV9oYW5kbGUgfHwgIW1faGFuZGxlKTsKICAgICBtX2Nsb3NlZCA9
IHRydWU7CiAgICAgaWYgKG1fY2xvc2luZ1RpbWVyLmlzQWN0aXZlKCkpCkBAIC0zNjUsMjEgKzM1
OSwyMCBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0
U3RyZWFtSGFuZGxlJiBoYW5kbGUsIGNvbnN0IFNvYwogewogICAgIExPRyhOZXR3b3JrLCAiV2Vi
U29ja2V0Q2hhbm5lbCAlcCBkaWRGYWlsU29ja2V0U3RyZWFtKCkiLCB0aGlzKTsKICAgICBBU1NF
UlQoJmhhbmRsZSA9PSBtX2hhbmRsZSB8fCAhbV9oYW5kbGUpOworICAgIFN0cmluZyBtZXNzYWdl
ID0gZW1wdHlTdHJpbmcoKTsKICAgICBpZiAobV9kb2N1bWVudCkgewotICAgICAgICBTdHJpbmcg
bWVzc2FnZTsKICAgICAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQogICAgICAgICAgICAgbWVzc2Fn
ZSA9ICJXZWJTb2NrZXQgbmV0d29yayBlcnJvciJfczsKICAgICAgICAgZWxzZSBpZiAoZXJyb3Iu
bG9jYWxpemVkRGVzY3JpcHRpb24oKS5pc051bGwoKSkKICAgICAgICAgICAgIG1lc3NhZ2UgPSBt
YWtlU3RyaW5nKCJXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogZXJyb3IgY29kZSAiLCBlcnJvci5l
cnJvckNvZGUoKSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1lc3NhZ2UgPSAiV2ViU29j
a2V0IG5ldHdvcmsgZXJyb3I6ICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpOwotICAg
ICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVy
cm9yKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBtZXNzYWdlKTsKICAg
ICAgICAgbV9kb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6TmV0d29y
aywgTWVzc2FnZUxldmVsOjpFcnJvciwgbWVzc2FnZSk7CiAgICAgICAgIExPR19FUlJPUigiJXMi
LCBtZXNzYWdlLnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KICAgICBtX3Nob3VsZERpc2NhcmRSZWNl
aXZlZERhdGEgPSB0cnVlOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRp
ZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNz
YWdlRXJyb3IobWVzc2FnZSk7CiAgICAgaGFuZGxlLmRpc2Nvbm5lY3QoKTsKIH0KIApAQCAtNDU5
LDggKzQ1Miw3IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcigpCiAgICAg
ICAgIGlmIChoZWFkZXJMZW5ndGggPD0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICAgICAgaWYgKG1faGFuZHNoYWtlLT5tb2RlKCkgPT0gV2ViU29ja2V0SGFuZHNoYWtlOjpDb25u
ZWN0ZWQpIHsKLSAgICAgICAgICAgIGlmIChtX3Byb2dyZXNzSWRlbnRpZmllcikKLSAgICAgICAg
ICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5k
c2hha2VSZXNwb25zZShtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgbV9o
YW5kc2hha2UtPnNlcnZlckhhbmRzaGFrZVJlc3BvbnNlKCkpOworICAgICAgICAgICAgbV9pbnNw
ZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKG1faGFuZHNoYWtlLT5z
ZXJ2ZXJIYW5kc2hha2VSZXNwb25zZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBzZXJ2ZXJTZXRD
b29raWUgPSBtX2hhbmRzaGFrZS0+c2VydmVyU2V0Q29va2llKCk7CiAgICAgICAgICAgICBpZiAo
IXNlcnZlclNldENvb2tpZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAobV9kb2N1
bWVudCAmJiBtX2RvY3VtZW50LT5wYWdlKCkgJiYgbV9kb2N1bWVudC0+cGFnZSgpLT5jb29raWVK
YXIoKS5jb29raWVzRW5hYmxlZCgqbV9kb2N1bWVudCkpCkBAIC01OTQsOCArNTg2LDYgQEAgYm9v
bCBXZWJTb2NrZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgfQogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29j
a2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIGZyYW1lKTsK
LQogICAgIHN3aXRjaCAoZnJhbWUub3BDb2RlKSB7CiAgICAgY2FzZSBXZWJTb2NrZXRGcmFtZTo6
T3BDb2RlQ29udGludWF0aW9uOgogICAgICAgICAvLyBBbiB1bmV4cGVjdGVkIGNvbnRpbnVhdGlv
biBmcmFtZSBpcyByZWNlaXZlZCB3aXRob3V0IGFueSBsZWFkaW5nIGZyYW1lLgpAQCAtODMyLDcg
KzgyMiw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZEZyYW1lKFdlYlNvY2tldEZyYW1l
OjpPcENvZGUgb3BDb2RlLCBjb25zdCB1aW50OF90KiBkCiAgICAgQVNTRVJUKCFtX3N1c3BlbmRl
ZCk7CiAKICAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZShvcENvZGUsIHRydWUsIGZhbHNlLCB0cnVl
LCBkYXRhLCBkYXRhTGVuZ3RoKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNl
bmRXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwg
ZnJhbWUpOworICAgIG1faW5zcGVjdG9yLmRpZFNlbmRXZWJTb2NrZXRGcmFtZShmcmFtZSk7CiAK
ICAgICBhdXRvIGRlZmxhdGVSZXN1bHQgPSBtX2RlZmxhdGVGcmFtZXIuZGVmbGF0ZShmcmFtZSk7
CiAgICAgaWYgKCFkZWZsYXRlUmVzdWx0LT5zdWNjZWVkZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggYzky
NmI0MWZhNGRhMjU5Y2IyNTdjMGM5NWQ4ZWQxYTI0NWY3NjNmZC4uNTE5ZTliN2M1ZGFmNGZiY2Yy
OGIwMTcwNDM2ZWM3MjMwMjIwMjlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5j
bHVkZSAiU29ja2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuaCIKICNpbmNsdWRlICJXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgi
CiAjaW5jbHVkZSAiV2ViU29ja2V0RnJhbWUuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5kc2hh
a2UuaCIKQEAgLTExNyw3ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hMb2Fk
aW5nKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgZXJyb3JDb2Rl
KSBvdmVycmlkZTsKIAotICAgIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRl
bnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvZ3Jlc3NJZGVudGlmaWVyOyB9Cisg
ICAgY29uc3QgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciogY2hhbm5lbEluc3BlY3RvcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICZtX2luc3BlY3RvcjsgfQorICAgIFdlYlNvY2tldENoYW5uZWxJ
ZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW5z
cGVjdG9yLnByb2dyZXNzSWRlbnRpZmllcigpOyB9CiAgICAgYm9vbCBoYXNDcmVhdGVkSGFuZHNo
YWtlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gISFtX2hhbmRzaGFrZTsgfQogICAgIGJvb2wgaXND
b25uZWN0ZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2hhbmRzaGFrZS0+bW9kZSgpID09IFdl
YlNvY2tldEhhbmRzaGFrZTo6TW9kZTo6Q29ubmVjdGVkOyB9CiAgICAgUmVzb3VyY2VSZXF1ZXN0
IGNsaWVudEhhbmRzaGFrZVJlcXVlc3QoY29uc3QgQ29va2llR2V0dGVyJikgY29uc3QgZmluYWw7
CkBAIC0yMTIsNyArMjE0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkRGlzY2FyZFJl
Y2VpdmVkRGF0YSB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV91bmhhbmRsZWRCdWZmZXJlZEFt
b3VudCB7IDAgfTsKIAotICAgIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIG1fcHJvZ3Jlc3NJ
ZGVudGlmaWVyOworICAgIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IgbV9pbnNwZWN0b3I7CiAK
ICAgICAvLyBQcml2YXRlIG1lbWJlcnMgb25seSBmb3IgaHliaS0xMCBwcm90b2NvbC4KICAgICBi
b29sIG1faGFzQ29udGludW91c0ZyYW1lIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCmlu
ZGV4IDg0MDFiNWM2NjFjMzU1MWRhNzlmZjExZmQ3M2Y5ZGIxODg5MWI3YjEuLjdmNzEzMWNhMTll
NzhjMGM3NGFhNDk3ODk0NTBiNjE2NTM3YmQwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaApAQCAt
NDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYp
ID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpID0gMDsKKyAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGJ1ZmZl
cmVkQW1vdW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFr
ZSgpID0gMDsKICAgICBlbnVtIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcAppbmRleCBjYTc2ODcwOTVkNGY4ODA5NjRkMzM1YzEz
NmJhYjYwMjYwMTk5YTJjLi5jZjcxOTI2ZjQzMDM5ZjQ0ZmQ3MjBhNWJhNjkyNDhlOWFiMDM1ODhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuY3BwCkBAIC0zMCw2NiArMzAsNzAgQEAKICNp
bmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAj
aW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiV2ViU29ja2V0RnJhbWUuaCIK
IAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yKERvY3VtZW50JikKLSAgICA6IG1fcHJvZ3Jlc3NJZGVudGlm
aWVyKFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkgeyB9
CitXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKERv
Y3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX3By
b2dyZXNzSWRlbnRpZmllcihXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJl
YWRTYWZlKCkpCit7Cit9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3Jl
YXRlV2ViU29ja2V0KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCit2b2lkIFdl
YlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldChjb25zdCBVUkwmIHVy
bCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkK
KyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tl
dChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHVybCk7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9n
cmVzc0lkZW50aWZpZXIsIHVybCk7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rv
cjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KERvY3VtZW50KiBkb2N1bWVudCwg
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5z
cGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIg
fHwgIWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1fZG9jdW1l
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2ls
bFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRp
ZmllciwgcmVxdWVzdCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdl
YlNvY2tldEhhbmRzaGFrZVJlcXVlc3QobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50
aWZpZXIsIHJlcXVlc3QpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRp
ZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVudCogZG9jdW1lbnQsIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5z
cGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoY29uc3QgUmVzb3Vy
Y2VSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRp
ZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhbV9k
b2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoZG9jdW1lbnQsIG1fcHJvZ3Jl
c3NJZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpk
aWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UobV9kb2N1bWVudC5nZXQoKSwgbV9w
cm9ncmVzc0lkZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVs
SW5zcGVjdG9yOjpkaWRDbG9zZVdlYlNvY2tldChEb2N1bWVudCogZG9jdW1lbnQpCit2b2lkIFdl
YlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KCkgY29uc3QKIHsKLSAg
ICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICBpZiAoIW1fcHJv
Z3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KGRvY3VtZW50LCBtX3By
b2dyZXNzSWRlbnRpZmllcik7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbG9z
ZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllcik7CiB9CiAK
LXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1l
KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQordm9pZCBX
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoY29uc3Qg
V2ViU29ja2V0RnJhbWUmIGZyYW1lKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50
aWZpZXIgfHwgIWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1f
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmll
ciwgZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNv
Y2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7
CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tldEZy
YW1lKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQordm9p
ZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUoY29uc3Qg
V2ViU29ja2V0RnJhbWUmIGZyYW1lKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50
aWZpZXIgfHwgIWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1f
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwg
ZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2VuZFdlYlNvY2tldEZy
YW1lKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7CiB9CiAK
LXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1l
RXJyb3IoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3Zv
aWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJy
b3IoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3Byb2dy
ZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmll
ciB8fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1
bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihkb2N1bWVudCwgbV9wcm9n
cmVzc0lkZW50aWZpZXIsIGVycm9yTWVzc2FnZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihtX2RvY3VtZW50LmdldCgpLCBtX3By
b2dyZXNzSWRlbnRpZmllciwgZXJyb3JNZXNzYWdlKTsKIH0KIAogV2ViU29ja2V0Q2hhbm5lbElk
ZW50aWZpZXIgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6cHJvZ3Jlc3NJZGVudGlmaWVyKCkg
Y29uc3QKQEAgLTk3LDQgKzEwMSwyMiBAQCBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciBXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjpwcm9ncmVzc0lkZW50aWZpZXIoKSBjb25zdAogICAgIHJl
dHVybiBtX3Byb2dyZXNzSWRlbnRpZmllcjsKIH0KIAorV2ViU29ja2V0RnJhbWUgV2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUpCit7CisgICAgLy8gVGhpcyBp
cyBhbiBhcHByb3hpbWF0aW9uIHNpbmNlIGZyYW1lcyBjYW4gYmUgbWVyZ2VkIG9uIGEgc2luZ2xl
IG1lc3NhZ2UuCisgICAgV2ViU29ja2V0RnJhbWUgZnJhbWU7CisgICAgZnJhbWUub3BDb2RlID0g
b3BDb2RlOworICAgIGZyYW1lLm1hc2tlZCA9IGZhbHNlOworICAgIGZyYW1lLnBheWxvYWQgPSBk
YXRhOworICAgIGZyYW1lLnBheWxvYWRMZW5ndGggPSBsZW5ndGg7CisKKyAgICAvLyBXZWJJbnNw
ZWN0b3IgZG9lcyBub3QgdXNlIHRoZW0uCisgICAgZnJhbWUuZmluYWwgPSBmYWxzZTsKKyAgICBm
cmFtZS5jb21wcmVzcyA9IGZhbHNlOworICAgIGZyYW1lLnJlc2VydmVkMiA9IGZhbHNlOworICAg
IGZyYW1lLnJlc2VydmVkMyA9IGZhbHNlOworCisgICAgcmV0dXJuIGZyYW1lOworfQorCiB9IC8v
IG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaAppbmRleCBkMDM2YzUy
N2E0NDcyOGUzM2E1NDNkNWRjOTQ1MDk5YWZiYTVkZTA3Li44MzczYzAxYThjMmYyMjEwM2RhMGUy
MmQyNDlhZDkxMjY4MTRkZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKQEAgLTI1LDYg
KzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXZWJTb2NrZXRGcmFtZS5oIgog
I2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIu
aD4KIApAQCAtMzUsNyArMzYsNiBAQCBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNv
dXJjZVJlc3BvbnNlOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbDsKIGNsYXNzIFdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3I7Ci1zdHJ1Y3QgV2ViU29ja2V0RnJhbWU7CiAKIHVzaW5nIFdlYlNvY2tl
dENoYW5uZWxJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxXZWJTb2NrZXRDaGFubmVsPjsK
IApAQCAtNDMsMTcgKzQzLDIwIEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENoYW5u
ZWxJbnNwZWN0b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3IoRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0KERvY3VtZW50
KiwgY29uc3QgVVJMJik7Ci0gICAgdm9pZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVl
c3QoRG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIGRpZFJlY2Vp
dmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVudCosIGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmKTsKLSAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KERvY3VtZW50Kik7Ci0gICAgdm9p
ZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqLCBjb25zdCBXZWJTb2NrZXRGcmFt
ZSYpOwotICAgIHZvaWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiwgY29uc3QgV2Vi
U29ja2V0RnJhbWUmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKERv
Y3VtZW50KiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgZGlkQ3JlYXRl
V2ViU29ja2V0KGNvbnN0IFVSTCYpIGNvbnN0OworICAgIHZvaWQgd2lsbFNlbmRXZWJTb2NrZXRI
YW5kc2hha2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OworICAgIHZvaWQg
ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmKSBjb25zdDsKKyAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KCkgY29uc3Q7CisgICAgdm9p
ZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoY29uc3QgV2ViU29ja2V0RnJhbWUmKSBjb25zdDsK
KyAgICB2b2lkIGRpZFNlbmRXZWJTb2NrZXRGcmFtZShjb25zdCBXZWJTb2NrZXRGcmFtZSYpIGNv
bnN0OworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IoY29uc3QgU3RyaW5n
JiBlcnJvck1lc3NhZ2UpIGNvbnN0OwogICAgIAogICAgIFdlYlNvY2tldENoYW5uZWxJZGVudGlm
aWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0OwogCisgICAgV0VCQ09SRV9FWFBPUlQgc3Rh
dGljIFdlYlNvY2tldEZyYW1lIGNyZWF0ZUZyYW1lKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBsZW5ndGgsIFdlYlNvY2tldEZyYW1lOjpPcENvZGUpOworCiBwcml2YXRlOgorICAgIFdlYWtQ
dHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgV2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIg
bV9wcm9ncmVzc0lkZW50aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcAppbmRleCA5ZmJjOTRlN2NlZjYzZDc0MWIzMWRhYzJlYjc4ZGE3ZGI1MDE1
NmEyLi40MTA4MWZiZDUzZjhhNzgwMmMwMDhiNzE5OWVkNjhhOWVjZjZiYWQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMyMywxMyArMzIzLDEzIEBA
IHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENsb3NlKHVu
c2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmVkCiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKLXZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoKQordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbikKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVyID0gbV93b3JrZXJD
bGllbnRXcmFwcGVyXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsK
KyAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIsIHJlYXNv
bl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgIEFT
U0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkgfHwgY29u
dGV4dC5pc1dvcmtsZXRHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgd29ya2VyQ2xpZW50V3JhcHBl
ci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICB3b3JrZXJDbGllbnRXcmFwcGVy
LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNvbik7CiAgICAgfSwgbV90YXNrTW9kZSk7CiB9
CiAKQEAgLTQyMCw3ICs0MjAsNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpCcmlkZ2U6OmNvbm5lY3QoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cgogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHBlZXItPmNvbm5lY3QodXJsLCBwcm90b2NvbCkgPT0gVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OkNvbm5lY3RTdGF0dXM6OktPKQotICAgICAgICAgICAgcGVlci0+
ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICAgICAgcGVlci0+ZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihudWxsU3RyaW5nKCkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDZhYzkzZmNkZGJmYzAxYTBhNzFkZWEzOTZiMWZh
OTc4MzgxNzgzODkuLjExZGYwNjE3MjJjZDA2N2JlOWIxMTBjY2Y3NjUwN2RiZjA0NjdmYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC05NCw3ICs5NCw3IEBA
IHB1YmxpYzoKICAgICAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBi
dWZmZXJlZEFtb3VudCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNo
YWtlKCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVm
ZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBz
aG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Ci0gICAgICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcigpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFVw
Z3JhZGVVUkwoKSBmaW5hbDsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDVhNzVmMzY2
OGIyZGI1NWQzM2VmYjNlMTZhM2MwNTUzZjY1YmQ2M2QuLjQzZTRjMGUxYzNlZTVmOTA1ZmY2YTQ2
NmFhOTg0MzdiZWMwYzc4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxXZWJT
b2NrZXRDaGFubmVsPiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoV2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJvCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6Om5vdGlmeVNlbmRGcmFtZShX
ZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCkKIHsKICAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZShvcENvZGUsIHRydWUsIGZhbHNl
LCB0cnVlLCBkYXRhLCBsZW5ndGgpOwotICAgIG1faW5zcGVjdG9yLmRpZFNlbmRXZWJTb2NrZXRG
cmFtZShtX2RvY3VtZW50LmdldCgpLCBmcmFtZSk7CisgICAgbV9pbnNwZWN0b3IuZGlkU2VuZFdl
YlNvY2tldEZyYW1lKGZyYW1lKTsKIH0KIAogTmV0d29ya1NlbmRRdWV1ZSBXZWJTb2NrZXRDaGFu
bmVsOjpjcmVhdGVNZXNzYWdlUXVldWUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFu
bmVsJiBjaGFubmVsKQpAQCAtMTE2LDcgKzExNiw3IEBAIFdlYlNvY2tldENoYW5uZWw6OkNvbm5l
Y3RTdGF0dXMgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QK
ICAgICBpZiAocmVxdWVzdC0+dXJsKCkgIT0gdXJsICYmIG1fY2xpZW50KQogICAgICAgICBtX2Ns
aWVudC0+ZGlkVXBncmFkZVVSTCgpOwogCi0gICAgbV9pbnNwZWN0b3IuZGlkQ3JlYXRlV2ViU29j
a2V0KG1fZG9jdW1lbnQuZ2V0KCksIHVybCk7CisgICAgbV9pbnNwZWN0b3IuZGlkQ3JlYXRlV2Vi
U29ja2V0KHVybCk7CiAgICAgbV91cmwgPSByZXF1ZXN0LT51cmwoKTsKICAgICBNZXNzYWdlU2Vu
ZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRl
U29ja2V0Q2hhbm5lbCB7ICpyZXF1ZXN0LCBwcm90b2NvbCwgbV9pZGVudGlmaWVyLCBtX3dlYlBh
Z2VQcm94eUlELCBtX2RvY3VtZW50LT5jbGllbnRPcmlnaW4oKSwgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuaGFkTWFpbkZyYW1lTWFpblJlc291cmNlUHJpdmF0ZVJlbGF5ZWQoKSB9KTsKICAgICBy
ZXR1cm4gQ29ubmVjdFN0YXR1czo6T0s7CkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgQVNT
RVJUKGNvZGUgPj0gMCB8fCBjb2RlID09IFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OkNsb3Nl
RXZlbnRDb2RlTm90U3BlY2lmaWVkKTsKIAogICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFt
ZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ2xvc2UsIHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICBt
X2luc3BlY3Rvci5kaWRTZW5kV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY2xvc2lu
Z0ZyYW1lKTsKKyAgICBtX2luc3BlY3Rvci5kaWRTZW5kV2ViU29ja2V0RnJhbWUoY2xvc2luZ0Zy
YW1lKTsKIAogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsOjpDbG9zZSB7IGNvZGUsIHJlYXNvbiB9KTsKIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCB2
b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAKICAgICBs
b2dFcnJvck1lc3NhZ2UocmVhc29uKTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZUVycm9yKHJlYXNvbik7CiAKICAgICBpZiAobV9pc0Nsb3NpbmcpCiAgICAgICAg
IHJldHVybjsKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpc2Nv
bm5lY3QoKQogICAgIG1fZG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fbWVzc2FnZVF1ZXVlLmNs
ZWFyKCk7CiAKLSAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50Lmdl
dCgpKTsKKyAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldCgpOwogCiAgICAgTWVzc2Fn
ZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OkNsb3NlIHsgV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVHb2luZ0F3YXksIHsgfSB9KTsK
IH0KQEAgLTI1MywyNCArMjUzLDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0
KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRlbnNpb25zKQogICAgIG1fY2xpZW50
LT5kaWRDb25uZWN0KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgV2ViU29ja2V0RnJhbWUgY3JlYXRl
V2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUpCi17Ci0gICAgLy8gVGhpcyBp
cyBhbiBhcHByb3hpbWF0aW9uIHNpbmNlIGZyYW1lcyBjYW4gYmUgbWVyZ2VkIG9uIGEgc2luZ2xl
IG1lc3NhZ2UuCi0gICAgV2ViU29ja2V0RnJhbWUgZnJhbWU7Ci0gICAgZnJhbWUub3BDb2RlID0g
b3BDb2RlOwotICAgIGZyYW1lLm1hc2tlZCA9IGZhbHNlOwotICAgIGZyYW1lLnBheWxvYWQgPSBk
YXRhOwotICAgIGZyYW1lLnBheWxvYWRMZW5ndGggPSBsZW5ndGg7Ci0KLSAgICAvLyBXZWJJbnNw
ZWN0b3IgZG9lcyBub3QgdXNlIHRoZW0uCi0gICAgZnJhbWUuZmluYWwgPSBmYWxzZTsKLSAgICBm
cmFtZS5jb21wcmVzcyA9IGZhbHNlOwotICAgIGZyYW1lLnJlc2VydmVkMiA9IGZhbHNlOwotICAg
IGZyYW1lLnJlc2VydmVkMyA9IGZhbHNlOwotCi0gICAgcmV0dXJuIGZyYW1lOwotfQotCiB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVUZXh0KFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAg
ICAgaWYgKG1faXNDbG9zaW5nKQpAQCAtMjc5LDkgKzI2MSw2IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKICAgICBpZiAoIW1fY2xpZW50
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVzc2FnZS51dGY4
KCk7Ci0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQu
Z2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKHV0ZjhNZXNzYWdlLmRh
dGFBc1VJbnQ4UHRyKCksIHV0ZjhNZXNzYWdlLmxlbmd0aCgpLCBXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlOjpPcENvZGVUZXh0KSk7Ci0KICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVz
c2FnZSk7CiB9CiAKQEAgLTI5Myw4ICsyNzIsNiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiAgICAgaWYgKCFt
X2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2Vi
SW5zcGVjdG9yKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZTo6T3BDb2RlQmluYXJ5KSk7Ci0KICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
eyBkYXRhIH0pOwogfQogCkBAIC0zMDMsMTAgKzI4MCw2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6ZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3RyaW5nJiYgcmVhc29uKQogICAgIGlm
ICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlNvY2tldEZyYW1lIGNsb3Np
bmdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ2xvc2UsIHRydWUsIGZhbHNlLCBmYWxzZSk7
Ci0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0
KCksIGNsb3NpbmdGcmFtZSk7Ci0gICAgbV9pbnNwZWN0b3IuZGlkQ2xvc2VXZWJTb2NrZXQobV9k
b2N1bWVudC5nZXQoKSk7Ci0KICAgICAvLyBBbiBhdHRlbXB0IHRvIHNlbmQgY2xvc2luZyBoYW5k
c2hha2UgbWF5IGZhaWwsIHdoaWNoIHdpbGwgZ2V0IHRoZSBjaGFubmVsIGNsb3NlZCBhbmQgZGVy
ZWZlcmVuY2VkLgogICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKIApAQCAtMzM2LDcg
KzMwOSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihT
dHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGxvZ0Vycm9yTWVz
c2FnZShlcnJvck1lc3NhZ2UpOwotICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9y
KCk7CisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoZXJyb3JNZXNzYWdlKTsK
IH0KIAogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQpAQCAt
MzU0LDEzICszMjcsMTMgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpyZXN1bWUoKQogCiB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QpCiB7Ci0gICAgbV9pbnNwZWN0b3Iud2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hh
a2VSZXF1ZXN0KG1fZG9jdW1lbnQuZ2V0KCksIHJlcXVlc3QpOworICAgIG1faW5zcGVjdG9yLndp
bGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChyZXF1ZXN0KTsKICAgICBtX2hhbmRzaGFr
ZVJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
CiB7Ci0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNl
KG1fZG9jdW1lbnQuZ2V0KCksIHJlc3BvbnNlKTsKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZl
V2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgIG1faGFuZHNoYWtlUmVz
cG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IGJlOGU3NjkwMWRmYjQ1
Y2JmOWI0MTllZjljMDY0OTY5YzM4OWQzM2UuLjI3YzAyNzQ5NDZiODA0MDc1OWYwODcwMzZhMDRh
YTc5NWU5ZjcwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTk3LDYgKzk3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRlY3JlYXNlQnVmZmVyZWRBbW91bnQoc2l6ZV90KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB2b2lkIHNlbmRNZXNzYWdlKFQmJiwgc2l6ZV90IGJ5dGVMZW5ndGgpOwogCisgICAgY29uc3Qg
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciogY2hhbm5lbEluc3BlY3RvcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICZtX2luc3BlY3RvcjsgfQogICAgIFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1faW5zcGVjdG9yLnByb2dyZXNzSWRlbnRpZmllcigpOyB9CiAgICAgYm9vbCBoYXNDcmVh
dGVkSGFuZHNoYWtlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fdXJsLmlzTnVsbCgpOyB9CiAg
ICAgYm9vbCBpc0Nvbm5lY3RlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX2hhbmRzaGFrZVJl
c3BvbnNlLmlzTnVsbCgpOyB9Cg==
</data>
<flag name="commit-queue"
          id="481071"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453638</attachid>
            <date>2022-03-02 11:01:52 -0800</date>
            <delta_ts>2022-03-02 14:31:45 -0800</delta_ts>
            <desc>Patch v1.1 - For verification in EWS before review</desc>
            <filename>bug-237280-20220302110151.patch</filename>
            <type>text/plain</type>
            <size>40765</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjNTkzOTA0ZDEyNzZl
MDk3YTBjZDJmOTg4Nzg3ZGUxMDM4ZTlmMi4uZjQ0YzQ2M2FkOTdiMzI2ZWU4NmViNzE3MDBkYmZl
OTRhY2E2Y2Q2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDIyLTAzLTAyICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0
NDcyKTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVj
dG9yL3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyogdGVzdCBjYXNlcy4K
KworICAgICAgICBPbiBtYWNPUyBNb250ZXJleSB3ZSB1c2UgTlNVUkxTZXNzaW9uLWJhc2VkIFdl
YlNvY2tldHMgYnkgZGVmYXVsdC4gVGhlIGNoYW5uZWwgZm9yIHRoZXNlIHNvY2tldHMgaXMgaW1w
bGVtZW50ZWQKKyAgICAgICAgaW4gYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAuIFRoZSBub24t
TlNVUkxTZXNzaW9uIFdlYlNvY2tldHMgY2hhbm5lbCAoYXQgbGVhc3Qgb24gQ29jb2EgcGxhdGZv
cm1zKSBpcworICAgICAgICBpbXBsZW1lbnRlZCBpbiBgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bGAKKworICAgICAgICBBcyBvZiByMjg0NDcyIHRoZSBsb2dpYyB0byBkZWxheSB0aGUgZGlzcGF0
Y2ggb2YgcmVjZWl2ZWQgV2ViU29ja2V0IG1lc3NhZ2VzIGlzIGhhbmRsZWQgYnkgYFdlYkNvcmU6
OldlYlNvY2tldGAsCisgICAgICAgIG5vdCB0aGUgYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAu
IGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIG5vdyBpbW1lZGlhdGVseSBkb2VzIHRoZSB3b3Jr
IGl0IG5lZWRzIHRvLCBhbmQKKyAgICAgICAgb25seSB0aGUgZGVsZWdhdGVkIHdvcmsgdG8gYFdl
YlNvY2tldGAgaXMgcXVldWVkIGFuZCB0YWtlbiBjYXJlIG9mIHdoZW4gdGhlIHNvY2tldCBoYXMg
cmVzdW1lZC4gVGhpcyByZXN1bHRlZCBpbgorICAgICAgICB0aGUgaW5zdHJ1bWVudGF0aW9uIGlu
IGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIGJlaW5nIGFibGUgdG8gYmUgY2FsbGVkIHdoaWxl
IHRoZSBzb2NrZXQgd2FzIHN1c3BlbmRlZCBsZWFkaW5nCisgICAgICAgIHRvIGV2ZW50cyBiZWlu
ZyBsb2dnZWQgaW4gdGhlIGZyb250ZW5kICJpbiB0aGUgZnV0dXJlIiAoZS5nLiBiZWZvcmUgdGhl
IHBhdXNlZCBzY3JpcHQgd291bGQgaGF2ZSBiZWVuIGFibGUgdG8gYmUKKyAgICAgICAgYXdhcmUg
b2YgdGhlbSkuIFRvIGNvcnJlY3QgdGhpcyB0aGUgYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAg
bm93IHByb3ZpZGVzIGEgaG9vayBpbnRvIGl0cyBoZWxwZXIKKyAgICAgICAgYFdlYkluc3BlY3Rv
ckNoYW5uZWxJbnNwZWN0b3JgIG9iamVjdCB0byBhbGxvdyB0aGUgYFdlYkNvcmU6OldlYlNvY2tl
dGAgdG8gbm90aWZ5IFdlYiBJbnNwZWN0b3Igb2YgZXZlbnRzIGF0IHRoZSAKKyAgICAgICAgYW1l
IHRpbWUgaXQgaXMgYmVpbmcgbG9naWNhbGx5IGhhbmRsZWQgYnkgdGhlIHBhZ2UuCisKKyAgICAg
ICAgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbCB3YXMgbm90IGFmZmVjdGVkIGJ5IHRoZSBjaGFu
Z2VzIGluIHIyODQ0NzIgYXMgaXQgYXBwZWFycyB0byBoYXZlIGhhZCBhIGRpZmZlcmVudCB3YXkK
KyAgICAgICAgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIG1ldGhvZHMgY29udGFpbmluZyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24gd2VyZSBub3QgY2FsbGVkIHdoaWxlIHRoZSBjaGFubmVsIHdhcwor
ICAgICAgICBzdXNwZW5kZWQgKGFuZCBlbmZvcmNlZCB3aXRoIG51bWVyb3VzIGBBU1NFUlQoIW1f
c3VzcGVuZGVkKWAgY2hlY2tzKS4gSG93ZXZlciwgc2luY2UgYFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWxgCisgICAgICAgIGNhbGxzIGluIHRvIHRoZSBzYW1lIGhvb2tzIGluIGBXZWJTb2NrZXRg
IGFzIGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIGRvZXMsIGl0IG1ha2VzIHNlbnNlIHRvIGdl
bmVyYWxpemUgdGhlCisgICAgICAgIGluc3RydW1lbnRhdGlvbiB0byB1c2UgdGhlIHNhbWUgYFdl
Ykluc3BlY3RvckNoYW5uZWxJbnNwZWN0b3JgIGZvciB0aG9zZSBpbnN0cnVtZW50YXRpb24gcG9p
bnRzIHRvIGF2b2lkIHN1YnRsZQorICAgICAgICBkaWZmZXJlbmNlcyBpbiB3aGVuIG1lc3NhZ2Vz
IGFyZSBkZWxpdmVyZWQgdG8gV2ViIEluc3BlY3Rvci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNoYW5uZWxJbnNwZWN0b3IgY29uc3QpOgorICAg
ICAgICAtIEFkZCBuZXcgaG9vayBmb3Igc3ViY2xhc3NlcyB0byBvcHRpb25hbGx5IHByb3ZpZGUg
YW4gaW5zdGFuY2Ugb2YgYFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3JgIGZvciBgV2ViU29ja2V0
YAorICAgICAgICB0byBpbmZvcm0gb2YgcmVsZXZhbnQgZXZlbnRzLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaDoKKworICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRp
ZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRp
ZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
ZGlkQ2xvc2VTb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bDo6ZGlkRmFpbFNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzZW5k
RnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmg6
CisgICAgICAgIC0gVG8gaW5jcmVhc2UgcGFyaXR5IGluIHdoZW4gV2ViIEluc3BlY3RvciBpcyBp
bmZvcm1lZCBvZiBldmVudHMgYmV0d2VlbiB0aGUgbm9uLU5TVVJMU2Vzc2lvbiBhbmQgTlNVUkxT
ZXNzaW9uCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBvZiBgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxgLCBsZXQgYFdlYlNvY2tldGAgaGFuZGxlIGluZm9ybWluZyBXZWIgSW5zcGVjdG9yIG9m
IG1hbnkgZXZlbnRzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWxDbGllbnQuaDoKKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3I6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OndpbGxTZW5kV2ViU29j
a2V0SGFuZHNoYWtlUmVxdWVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ2xv
c2VXZWJTb2NrZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRXZWJTb2NrZXRGcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWVFcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRDcmVhdGVXZWJTb2NrZXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6d2lsbFNlbmRXZWJTb2Nr
ZXRIYW5kc2hha2VSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpk
aWRDbG9zZVdlYlNvY2tldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tl
dEZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oOgorICAgICAg
ICAtIEtlZXAgYSBXZWFrUmVmIHRvIHRoZSBgRG9jdW1lbnRgIHRvIG1ha2UgdXNpbmcgdGhpcyBB
UEkgbW9yZSBlcmdvbm9taWMgZnJvbSBgV2ViU29ja2V0YCwgd2hlcmUgZ2V0dGluZyB0aGUKKyAg
ICAgICAgYERvY3VtZW50YCB3b3VsZCBiZSBtb3JlIHZlcmJvc2UuCisKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisKIDIwMjItMDMt
MDEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjkwNjE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YzdlMDUwNzAxN2JhZGU0
M2MzZTQ2Mjc3Mzg2ZTE0YTc4YWJkZjkwLi4wMzMzZWM4OGVhOTAxNDAyOTU3NTEzNjMxYzI0Mjdk
ODY5ZGE5ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAzLTAyICBQYXRyaWNr
IEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0NDcy
KTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9y
L3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
bm90aWZ5U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRD
aGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hh
bm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
ZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVXZWJTb2NrZXRGcmFtZUZvcldlYkluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaDoKKwogMjAyMi0wMy0wMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIElmIHRoZSBt
YWluIHJlc291cmNlIHdhcyBsb2FkZWQgb3ZlciBwcml2YXRlIHJlbGF5LCBsb2FkIGFsbCBzdWIg
cmVzb3VyY2VzIG92ZXIgcHJpdmF0ZSByZWxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCAzMGI0YjM3MTYyMTViODJiODM2NjZkNGU1YmM0YWYzOTgzYjJlYTlkLi43MzE5OGQ1MDA4
MGQ5OGMwNjk5OTY3Mzk5YTY2MWIwMDZiZjYyNmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgV2ViU29j
a2V0Q2hhbm5lbDsKK2NsYXNzIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I7CiBjbGFzcyBXZWJT
b2NrZXRDaGFubmVsQ2xpZW50OwogCiB1c2luZyBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8V2ViU29ja2V0Q2hhbm5lbD47CkBAIC04NCw2ICs4NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVzdW1lKCkgPSAwOwogCisgICAgdmlydHVhbCBjb25zdCBXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yKiBjaGFubmVsSW5zcGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICAgICB2
aXJ0dWFsIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ3JlYXRlZEhhbmRzaGFrZSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb25uZWN0ZWQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IDc4Nzg3
OWZhNjg3NmE5ODQ4NTUxZDE2YWRlMzg1YjJlNzRlMWFkNzIuLmMxNjFhZjc3OTRiNzQ4MjQ0NGI4
N2ZkMTkxYjVlMWFiMDk0MDlkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC0yMTcsMTEgKzIxNywxMSBAQCB2b2lkIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkQ2xvc2UodW5zaWduZWQgdW5o
YW5kbGVkQnVmZmVyZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKLXZvaWQg
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKCkKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpk
aWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKQogewotICAgIG1fcGVu
ZGluZ1Rhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzaz4oW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCByZWFzb25dIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAg
ICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKICAgICB9
KSk7CiAKICAgICBpZiAoIW1fc3VzcGVuZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmluZGV4IDhkYTE4YzAwNjdkMGE1YWI3ZTdiNDI0MTJm
NmY1ZGEyYzAyZWFiZGMuLjZhZWJhNTNlOGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgK
QEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91
bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlKCk7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFt
b3VudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudDo6Q2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25T
dGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pOwogICAgIHZvaWQgZGlkVXBncmFkZVVSTCgpOwog
CiAgICAgdm9pZCBzdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGM1NTg3OTIzMjE1NWQ0NTVhOGU5M2JkODZiZmZiYzgx
ZjQwOTU5MzkuLjQ1ZjlhNWJiZTRmMzllNzcwMGQ1YmQ0NDg5ZWM1YzVlMmRiMjNiZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC00
Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VF
dmVudC5oIgogI2luY2x1ZGUgIk1peGVkQ29udGVudENoZWNrZXIuaCIKQEAgLTU2NSw2ICs1NjYs
MTMgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbXNn
KQogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2Vi
U29ja2V0LCBbdGhpcywgbXNnXSB7CiAgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVj
dG9yID0gbV9jaGFubmVsLT5jaGFubmVsSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBh
dXRvIHV0ZjhNZXNzYWdlID0gbXNnLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBpbnNwZWN0b3It
PmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVh
dGVGcmFtZSh1dGY4TWVzc2FnZS5kYXRhQXNVSW50OFB0cigpLCB1dGY4TWVzc2FnZS5sZW5ndGgo
KSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCkpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAg
ICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKICAgICB9KTsKQEAgLTU3Niw2ICs1ODQs
MTIgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90
PiYmIGJpbmFyeURhdGEpCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBU
YXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCBiaW5hcnlEYXRhID0gV1RGTW92ZShiaW5hcnlE
YXRhKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBpbnNwZWN0b3Ig
PSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNwZWN0b3IoKSkKKyAgICAgICAgICAgICAgICBpbnNwZWN0
b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpj
cmVhdGVGcmFtZShiaW5hcnlEYXRhLmRhdGEoKSwgYmluYXJ5RGF0YS5zaXplKCksIFdlYlNvY2tl
dEZyYW1lOjpPcENvZGU6Ok9wQ29kZUJpbmFyeSkpOworICAgICAgICB9CisKICAgICAgICAgc3dp
dGNoIChtX2JpbmFyeVR5cGUpIHsKICAgICAgICAgY2FzZSBCaW5hcnlUeXBlOjpCbG9iOgogICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIGp1c3QgcmVjZWl2ZWQgdGhlIGRhdGEgZnJvbSBOZXR3b3Jr
UHJvY2VzcywgYW5kIGFyZSBzZW5kaW5nIGl0IGJhY2suIFRoaXMgaXMgaW5lZmZpY2llbnQuCkBA
IC01ODgsMTQgKzYwMiwxOCBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
VmVjdG9yPHVpbnQ4X3Q+JiYgYmluYXJ5RGF0YSkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pCiB7CiAgICAgTE9HKE5ldHdvcmssICJX
ZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZUVycm9yTWVzc2FnZSgpIiwgdGhpcyk7Ci0gICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlz
XSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpX
ZWJTb2NrZXQsIFt0aGlzLCByZWFzb25dIHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VE
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAg
ICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKworICAgICAgICBpZiAoYXV0byog
aW5zcGVjdG9yID0gbV9jaGFubmVsLT5jaGFubmVsSW5zcGVjdG9yKCkpCisgICAgICAgICAgICBp
bnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKHJlYXNvbik7CisKICAgICAg
ICAgLy8gRklYTUU6IEFzIHBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWItc29ja2V0cy5odG1sI2ZlZWRiYWNrLWZyb20tdGhlLXByb3RvY29sOmNvbmNlcHQtd2Vi
c29ja2V0LWNsb3NlZCwgd2Ugc2hvdWxkIHN5bmNocm9ub3VzbHkgZmlyZSBhIGNsb3NlIGV2ZW50
LgogICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnRJZk5lZWRlZCgpOwogICAgIH0pOwpAQCAtNjI2
LDYgKzY0NCwxNCBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVk
QnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbAogICAgICAgICBpZiAoIW1fY2hh
bm5lbCkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvKiBpbnNwZWN0b3IgPSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNwZWN0b3IoKSkgeworICAgICAg
ICAgICAgICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlQ2xvc2UsIHRydWUsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgaW5zcGVjdG9y
LT5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoY2xvc2luZ0ZyYW1lKTsKKyAgICAgICAgICAgICAg
ICBpbnNwZWN0b3ItPmRpZENsb3NlV2ViU29ja2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKwogICAgICAgICBib29sIHdhc0NsZWFuID0gbV9zdGF0ZSA9PSBDTE9TSU5HICYmICF1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudCAmJiBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvbiA9PSBDbG9z
aW5nSGFuZHNoYWtlQ29tcGxldGUgJiYgY29kZSAhPSBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2
ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NFRDsKICAgICAg
ICAgbV9idWZmZXJlZEFtb3VudCA9IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGFiZTNkYTk2ZjVm
OGRmODRmZWY0NTczNWQ1YzgwYmJhYzIwNGQ2ZmYuLjBjMzZhMjM2MTEzN2UwODY1ODVhMDE3Yjlj
NmIxZjVlMTc4ZTZlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ29u
bmVjdCgpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50
OF90PiYmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pIGZp
bmFsOwogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRB
bW91bnQpIGZpbmFsOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgZmluYWw7
CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xv
c2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCAyZjdiODMzN2IwNGI2Zjll
MGM4MTI0ODUzMDIwOGI1MjQ3YmZhNDdjLi5iNzAzYTAwYjRhNzQxMjhkYWJjODliN2M5OWQzNzFh
OTVjZDcxYmM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC02NiwxMCArNjYsMTAgQEAgV2ViU29ja2V0Q2hh
bm5lbDo6V2ViU29ja2V0Q2hhbm5lbChEb2N1bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5u
ZWxDbGllbnQmIGMKICAgICAsIG1fY2xpZW50KGNsaWVudCkKICAgICAsIG1fcmVzdW1lVGltZXIo
KnRoaXMsICZXZWJTb2NrZXRDaGFubmVsOjpyZXN1bWVUaW1lckZpcmVkKQogICAgICwgbV9jbG9z
aW5nVGltZXIoKnRoaXMsICZXZWJTb2NrZXRDaGFubmVsOjpjbG9zaW5nVGltZXJGaXJlZCkKLSAg
ICAsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyKFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyOjpnZW5l
cmF0ZVRocmVhZFNhZmUoKSkKKyAgICAsIG1faW5zcGVjdG9yKGRvY3VtZW50KQogICAgICwgbV9z
b2NrZXRQcm92aWRlcihwcm92aWRlcikKIHsKLSAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENo
YW5uZWwgJXAgY3RvciwgcHJvZ3Jlc3MgaWRlbnRpZmllciAlIiBQUkl1NjQsIHRoaXMsIG1fcHJv
Z3Jlc3NJZGVudGlmaWVyLnRvVUludDY0KCkpOworICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0
Q2hhbm5lbCAlcCBjdG9yLCBwcm9ncmVzcyBpZGVudGlmaWVyICUiIFBSSXU2NCwgdGhpcywgcHJv
Z3Jlc3NJZGVudGlmaWVyKCkudG9VSW50NjQoKSk7CiB9CiAKIFdlYlNvY2tldENoYW5uZWw6On5X
ZWJTb2NrZXRDaGFubmVsKCkKQEAgLTEwMSw4ICsxMDEsNyBAQCBXZWJTb2NrZXRDaGFubmVsOjpD
b25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QoY29uc3QgVVJMJiByZXF1ZXN0
ZWRVUgogICAgIG1faGFuZHNoYWtlID0gbWFrZVVuaXF1ZTxXZWJTb2NrZXRIYW5kc2hha2U+KHZh
bGlkYXRlZFVSTC0+dXJsLCBwcm90b2NvbCwgdXNlckFnZW50LCBjbGllbnRPcmlnaW4sIG1fYWxs
b3dDb29raWVzLCBpc0FwcEluaXRpYXRlZCk7CiAgICAgbV9oYW5kc2hha2UtPnJlc2V0KCk7CiAg
ICAgbV9oYW5kc2hha2UtPmFkZEV4dGVuc2lvblByb2Nlc3NvcihtX2RlZmxhdGVGcmFtZXIuY3Jl
YXRlRXh0ZW5zaW9uUHJvY2Vzc29yKCkpOwotICAgIGlmIChtX3Byb2dyZXNzSWRlbnRpZmllcikK
LSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQobV9k
b2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHZhbGlkYXRlZFVSTC0+dXJsKTsK
KyAgICBtX2luc3BlY3Rvci5kaWRDcmVhdGVXZWJTb2NrZXQodmFsaWRhdGVkVVJMLT51cmwpOwog
CiAgICAgYXV0byogZnJhbWUgPSBtX2RvY3VtZW50LT5mcmFtZSgpOwogICAgIGF1dG8qIHBhZ2Ug
PSBtX2RvY3VtZW50LT5wYWdlKCk7CkBAIC0yMTgsOCArMjE3LDYgQEAgdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgIFJFTEVBU0VfTE9HKE5ldHdv
cmssICJXZWJTb2NrZXRDaGFubmVsICVwIGZhaWwoKSByZWFzb249JyVzJyIsIHRoaXMsIHJlYXNv
bi51dGY4KCkuZGF0YSgpKTsKICAgICBBU1NFUlQoIW1fc3VzcGVuZGVkKTsKICAgICBpZiAobV9k
b2N1bWVudCkgewotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZUVycm9yKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVy
LCByZWFzb24pOwotCiAgICAgICAgIFN0cmluZyBjb25zb2xlTWVzc2FnZTsKICAgICAgICAgaWYg
KG1faGFuZHNoYWtlKQogICAgICAgICAgICAgY29uc29sZU1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJX
ZWJTb2NrZXQgY29ubmVjdGlvbiB0byAnIiwgbV9oYW5kc2hha2UtPnVybCgpLnN0cmluZ0NlbnRl
ckVsbGlwc2l6ZWRUb0xlbmd0aCgpLCAiJyBmYWlsZWQ6ICIsIHJlYXNvbik7CkBAIC0yMzksNyAr
MjM2LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29u
KQogICAgIG1faGFzQ29udGludW91c0ZyYW1lID0gZmFsc2U7CiAgICAgbV9jb250aW51b3VzRnJh
bWVEYXRhLmNsZWFyKCk7CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3Nh
Z2VFcnJvcihyZWFzb24pOwogCiAgICAgaWYgKG1faGFuZGxlICYmICFtX2Nsb3NlZCkKICAgICAg
ICAgbV9oYW5kbGUtPmRpc2Nvbm5lY3QoKTsgLy8gV2lsbCBjYWxsIGRpZENsb3NlU29ja2V0U3Ry
ZWFtKCkgYnV0IG1heWJlIG5vdCBzeW5jaHJvbm91c2x5LgpAQCAtMjQ4LDggKzI0NSw3IEBAIHZv
aWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJlYXNvbikKIHZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2Nr
ZXRDaGFubmVsICVwIGRpc2Nvbm5lY3QoKSIsIHRoaXMpOwotICAgIGlmIChtX3Byb2dyZXNzSWRl
bnRpZmllciAmJiBtX2RvY3VtZW50KQotICAgICAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246
OmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVy
KTsKKyAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldCgpOwogICAgIG1fY2xpZW50ID0g
bnVsbHB0cjsKICAgICBtX2RvY3VtZW50ID0gbnVsbHB0cjsKICAgICBpZiAobV9oYW5kbGUpCkBA
IC0yNzQsMTMgKzI3MCwxMyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZE9wZW5Tb2NrZXRT
dHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUpCiAgICAgQVNTRVJUKCZoYW5kbGUgPT0g
bV9oYW5kbGUpOwogICAgIGlmICghbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwotICAgIGlm
IChtX3Byb2dyZXNzSWRlbnRpZmllciAmJiBVTkxJS0VMWShJbnNwZWN0b3JJbnN0cnVtZW50YXRp
b246Omhhc0Zyb250ZW5kcygpKSkgeworICAgIGlmIChVTkxJS0VMWShJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246Omhhc0Zyb250ZW5kcygpKSkgewogICAgICAgICBhdXRvIGNvb2tpZVJlcXVlc3RI
ZWFkZXJGaWVsZFZhbHVlID0gW2RvY3VtZW50ID0gbV9kb2N1bWVudF0gKGNvbnN0IFVSTCYgdXJs
KSAtPiBTdHJpbmcgewogICAgICAgICAgICAgaWYgKCFkb2N1bWVudCB8fCAhZG9jdW1lbnQtPnBh
Z2UoKSkKICAgICAgICAgICAgICAgICByZXR1cm4geyB9OwogICAgICAgICAgICAgcmV0dXJuIGRv
Y3VtZW50LT5wYWdlKCktPmNvb2tpZUphcigpLmNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZhbHVl
KCpkb2N1bWVudCwgdXJsKTsKICAgICAgICAgfTsKLSAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QobV9kb2N1bWVudC5nZXQo
KSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIG1faGFuZHNoYWtlLT5jbGllbnRIYW5kc2hha2VSZXF1
ZXN0KFdURk1vdmUoY29va2llUmVxdWVzdEhlYWRlckZpZWxkVmFsdWUpKSk7CisgICAgICAgIG1f
aW5zcGVjdG9yLndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChtX2hhbmRzaGFrZS0+
Y2xpZW50SGFuZHNoYWtlUmVxdWVzdChXVEZNb3ZlKGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFZh
bHVlKSkpOwogICAgIH0KICAgICBhdXRvIGhhbmRzaGFrZU1lc3NhZ2UgPSBtX2hhbmRzaGFrZS0+
Y2xpZW50SGFuZHNoYWtlTWVzc2FnZSgpOwogICAgIHN0ZDo6b3B0aW9uYWw8Q29va2llUmVxdWVz
dEhlYWRlckZpZWxkUHJveHk+IGNvb2tpZVJlcXVlc3RIZWFkZXJGaWVsZFByb3h5OwpAQCAtMjk4
LDggKzI5NCw2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkT3BlblNvY2tldFN0cmVhbShT
b2NrZXRTdHJlYW1IYW5kbGUmIGhhbmRsZSkKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2xv
c2VTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUpCiB7CiAgICAgTE9HKE5l
dHdvcmssICJXZWJTb2NrZXRDaGFubmVsICVwIGRpZENsb3NlU29ja2V0U3RyZWFtKCkiLCB0aGlz
KTsKLSAgICBpZiAobV9wcm9ncmVzc0lkZW50aWZpZXIgJiYgbV9kb2N1bWVudCkKLSAgICAgICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50Lmdl
dCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllcik7CiAgICAgQVNTRVJUX1VOVVNFRChoYW5kbGUsICZo
YW5kbGUgPT0gbV9oYW5kbGUgfHwgIW1faGFuZGxlKTsKICAgICBtX2Nsb3NlZCA9IHRydWU7CiAg
ICAgaWYgKG1fY2xvc2luZ1RpbWVyLmlzQWN0aXZlKCkpCkBAIC0zNjUsMjEgKzM1OSwyMCBAQCB2
b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFu
ZGxlJiBoYW5kbGUsIGNvbnN0IFNvYwogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hh
bm5lbCAlcCBkaWRGYWlsU29ja2V0U3RyZWFtKCkiLCB0aGlzKTsKICAgICBBU1NFUlQoJmhhbmRs
ZSA9PSBtX2hhbmRsZSB8fCAhbV9oYW5kbGUpOworICAgIFN0cmluZyBtZXNzYWdlID0gZW1wdHlT
dHJpbmcoKTsKICAgICBpZiAobV9kb2N1bWVudCkgewotICAgICAgICBTdHJpbmcgbWVzc2FnZTsK
ICAgICAgICAgaWYgKGVycm9yLmlzTnVsbCgpKQogICAgICAgICAgICAgbWVzc2FnZSA9ICJXZWJT
b2NrZXQgbmV0d29yayBlcnJvciJfczsKICAgICAgICAgZWxzZSBpZiAoZXJyb3IubG9jYWxpemVk
RGVzY3JpcHRpb24oKS5pc051bGwoKSkKICAgICAgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5n
KCJXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogZXJyb3IgY29kZSAiLCBlcnJvci5lcnJvckNvZGUo
KSk7CiAgICAgICAgIGVsc2UKICAgICAgICAgICAgIG1lc3NhZ2UgPSAiV2ViU29ja2V0IG5ldHdv
cmsgZXJyb3I6ICIgKyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpOwotICAgICAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKG1fZG9j
dW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBtZXNzYWdlKTsKICAgICAgICAgbV9k
b2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2Fn
ZUxldmVsOjpFcnJvciwgbWVzc2FnZSk7CiAgICAgICAgIExPR19FUlJPUigiJXMiLCBtZXNzYWdl
LnV0ZjgoKS5kYXRhKCkpOwogICAgIH0KICAgICBtX3Nob3VsZERpc2NhcmRSZWNlaXZlZERhdGEg
PSB0cnVlOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IoKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Io
bWVzc2FnZSk7CiAgICAgaGFuZGxlLmRpc2Nvbm5lY3QoKTsKIH0KIApAQCAtNDU5LDggKzQ1Miw3
IEBAIGJvb2wgV2ViU29ja2V0Q2hhbm5lbDo6cHJvY2Vzc0J1ZmZlcigpCiAgICAgICAgIGlmICho
ZWFkZXJMZW5ndGggPD0gMCkKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgaWYg
KG1faGFuZHNoYWtlLT5tb2RlKCkgPT0gV2ViU29ja2V0SGFuZHNoYWtlOjpDb25uZWN0ZWQpIHsK
LSAgICAgICAgICAgIGlmIChtX3Byb2dyZXNzSWRlbnRpZmllcikKLSAgICAgICAgICAgICAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNw
b25zZShtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgbV9oYW5kc2hha2Ut
PnNlcnZlckhhbmRzaGFrZVJlc3BvbnNlKCkpOworICAgICAgICAgICAgbV9pbnNwZWN0b3IuZGlk
UmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKG1faGFuZHNoYWtlLT5zZXJ2ZXJIYW5k
c2hha2VSZXNwb25zZSgpKTsKICAgICAgICAgICAgIFN0cmluZyBzZXJ2ZXJTZXRDb29raWUgPSBt
X2hhbmRzaGFrZS0+c2VydmVyU2V0Q29va2llKCk7CiAgICAgICAgICAgICBpZiAoIXNlcnZlclNl
dENvb2tpZS5pc0VtcHR5KCkpIHsKICAgICAgICAgICAgICAgICBpZiAobV9kb2N1bWVudCAmJiBt
X2RvY3VtZW50LT5wYWdlKCkgJiYgbV9kb2N1bWVudC0+cGFnZSgpLT5jb29raWVKYXIoKS5jb29r
aWVzRW5hYmxlZCgqbV9kb2N1bWVudCkpCkBAIC01OTQsOCArNTg2LDYgQEAgYm9vbCBXZWJTb2Nr
ZXRDaGFubmVsOjpwcm9jZXNzRnJhbWUoKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQog
Ci0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUo
bV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIGZyYW1lKTsKLQogICAgIHN3
aXRjaCAoZnJhbWUub3BDb2RlKSB7CiAgICAgY2FzZSBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ29u
dGludWF0aW9uOgogICAgICAgICAvLyBBbiB1bmV4cGVjdGVkIGNvbnRpbnVhdGlvbiBmcmFtZSBp
cyByZWNlaXZlZCB3aXRob3V0IGFueSBsZWFkaW5nIGZyYW1lLgpAQCAtODMyLDcgKzgyMiw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6c2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUg
b3BDb2RlLCBjb25zdCB1aW50OF90KiBkCiAgICAgQVNTRVJUKCFtX3N1c3BlbmRlZCk7CiAKICAg
ICBXZWJTb2NrZXRGcmFtZSBmcmFtZShvcENvZGUsIHRydWUsIGZhbHNlLCB0cnVlLCBkYXRhLCBk
YXRhTGVuZ3RoKTsKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2Nr
ZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZnJhbWUpOwor
ICAgIG1faW5zcGVjdG9yLmRpZFNlbmRXZWJTb2NrZXRGcmFtZShmcmFtZSk7CiAKICAgICBhdXRv
IGRlZmxhdGVSZXN1bHQgPSBtX2RlZmxhdGVGcmFtZXIuZGVmbGF0ZShmcmFtZSk7CiAgICAgaWYg
KCFkZWZsYXRlUmVzdWx0LT5zdWNjZWVkZWQoKSkgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggYzkyNmI0MWZhNGRh
MjU5Y2IyNTdjMGM5NWQ4ZWQxYTI0NWY3NjNmZC4uNTE5ZTliN2M1ZGFmNGZiY2YyOGIwMTcwNDM2
ZWM3MjMwMjIwMjlmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU29j
a2V0U3RyZWFtSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3IuaCIKICNpbmNsdWRlICJXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgiCiAjaW5jbHVk
ZSAiV2ViU29ja2V0RnJhbWUuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2UuaCIKQEAg
LTExNyw3ICsxMTgsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKCkgb3Zl
cnJpZGU7CiAgICAgdm9pZCBkaWRGYWlsKEV4Y2VwdGlvbkNvZGUgZXJyb3JDb2RlKSBvdmVycmlk
ZTsKIAotICAgIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigp
IGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fcHJvZ3Jlc3NJZGVudGlmaWVyOyB9CisgICAgY29uc3Qg
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciogY2hhbm5lbEluc3BlY3RvcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICZtX2luc3BlY3RvcjsgfQorICAgIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVy
IHByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW5zcGVjdG9yLnBy
b2dyZXNzSWRlbnRpZmllcigpOyB9CiAgICAgYm9vbCBoYXNDcmVhdGVkSGFuZHNoYWtlKCkgY29u
c3QgZmluYWwgeyByZXR1cm4gISFtX2hhbmRzaGFrZTsgfQogICAgIGJvb2wgaXNDb25uZWN0ZWQo
KSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2hhbmRzaGFrZS0+bW9kZSgpID09IFdlYlNvY2tldEhh
bmRzaGFrZTo6TW9kZTo6Q29ubmVjdGVkOyB9CiAgICAgUmVzb3VyY2VSZXF1ZXN0IGNsaWVudEhh
bmRzaGFrZVJlcXVlc3QoY29uc3QgQ29va2llR2V0dGVyJikgY29uc3QgZmluYWw7CkBAIC0yMTIs
NyArMjE0LDcgQEAgcHJpdmF0ZToKICAgICBib29sIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0
YSB7IGZhbHNlIH07CiAgICAgdW5zaWduZWQgbV91bmhhbmRsZWRCdWZmZXJlZEFtb3VudCB7IDAg
fTsKIAotICAgIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIG1fcHJvZ3Jlc3NJZGVudGlmaWVy
OworICAgIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IgbV9pbnNwZWN0b3I7CiAKICAgICAvLyBQ
cml2YXRlIG1lbWJlcnMgb25seSBmb3IgaHliaS0xMCBwcm90b2NvbC4KICAgICBib29sIG1faGFz
Q29udGludW91c0ZyYW1lIHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCmluZGV4IDg0MDFi
NWM2NjFjMzU1MWRhNzlmZjExZmQ3M2Y5ZGIxODg5MWI3YjEuLjdmNzEzMWNhMTllNzhjMGM3NGFh
NDk3ODk0NTBiNjE2NTM3YmQwZmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaApAQCAtNDEsNyArNDEs
NyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRpZENvbm5lY3QoKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYpID0gMDsKLSAg
ICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpID0gMDsK
ICAgICBlbnVtIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzIHsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yLmNwcAppbmRleCBjYTc2ODcwOTVkNGY4ODA5NjRkMzM1YzEzNmJhYjYwMjYw
MTk5YTJjLi5jZjcxOTI2ZjQzMDM5ZjQ0ZmQ3MjBhNWJhNjkyNDhlOWFiMDM1ODhhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNv
Y2tldENoYW5uZWxJbnNwZWN0b3IuY3BwCkBAIC0zMCw2NiArMzAsNzAgQEAKICNpbmNsdWRlICJJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNsdWRlICJQYWdlLmgiCiAjaW5jbHVkZSAi
UHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiV2ViU29ja2V0RnJhbWUuaCIKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCi1XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yKERvY3VtZW50JikKLSAgICA6IG1fcHJvZ3Jlc3NJZGVudGlmaWVyKFdlYlNv
Y2tldENoYW5uZWxJZGVudGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkgeyB9CitXZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKERvY3VtZW50JiBk
b2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1lbnQpCisgICAgLCBtX3Byb2dyZXNzSWRl
bnRpZmllcihXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkp
Cit7Cit9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29j
a2V0KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJMJiB1cmwpCit2b2lkIFdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldChjb25zdCBVUkwmIHVybCkgY29uc3QK
IHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICBpZiAo
IW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldChkb2N1bWVu
dCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHVybCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50
aWZpZXIsIHVybCk7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6d2lsbFNl
bmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3
aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiBy
ZXF1ZXN0KSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3Vt
ZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJT
b2NrZXRIYW5kc2hha2VSZXF1ZXN0KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVx
dWVzdCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhh
bmRzaGFrZVJlcXVlc3QobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHJl
cXVlc3QpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFJlc291
cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpk
aWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25z
ZSYgcmVzcG9uc2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAh
ZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhbV9kb2N1bWVudCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNl
aXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlm
aWVyLCByZXNwb25zZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZl
V2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lk
ZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9y
OjpkaWRDbG9zZVdlYlNvY2tldChEb2N1bWVudCogZG9jdW1lbnQpCit2b2lkIFdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KCkgY29uc3QKIHsKLSAgICBpZiAoIW1f
cHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVu
dGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRl
bnRpZmllcik7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tl
dChtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllcik7CiB9CiAKLXZvaWQgV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKERvY3VtZW50
KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQordm9pZCBXZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoY29uc3QgV2ViU29ja2V0
RnJhbWUmIGZyYW1lKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwg
IWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZVdlYlNvY2tldEZyYW1lKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZnJhbWUp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1l
KG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7CiB9CiAKLXZv
aWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3Vt
ZW50KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKQordm9pZCBXZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUoY29uc3QgV2ViU29ja2V0
RnJhbWUmIGZyYW1lKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwg
IWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2Vu
ZFdlYlNvY2tldEZyYW1lKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZnJhbWUpOwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKG1fZG9j
dW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7CiB9CiAKLXZvaWQgV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IoRG9j
dW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKK3ZvaWQgV2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IoY29uc3Qg
U3RyaW5nJiBlcnJvck1lc3NhZ2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRp
ZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhbV9k
b2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50
aWZpZXIsIGVycm9yTWVzc2FnZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRS
ZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRl
bnRpZmllciwgZXJyb3JNZXNzYWdlKTsKIH0KIAogV2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIg
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6cHJvZ3Jlc3NJZGVudGlmaWVyKCkgY29uc3QKQEAg
LTk3LDQgKzEwMSwyMiBAQCBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciBXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjpwcm9ncmVzc0lkZW50aWZpZXIoKSBjb25zdAogICAgIHJldHVybiBtX3By
b2dyZXNzSWRlbnRpZmllcjsKIH0KIAorV2ViU29ja2V0RnJhbWUgV2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6Y3JlYXRlRnJhbWUoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCwg
V2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUpCit7CisgICAgLy8gVGhpcyBpcyBhbiBhcHBy
b3hpbWF0aW9uIHNpbmNlIGZyYW1lcyBjYW4gYmUgbWVyZ2VkIG9uIGEgc2luZ2xlIG1lc3NhZ2Uu
CisgICAgV2ViU29ja2V0RnJhbWUgZnJhbWU7CisgICAgZnJhbWUub3BDb2RlID0gb3BDb2RlOwor
ICAgIGZyYW1lLm1hc2tlZCA9IGZhbHNlOworICAgIGZyYW1lLnBheWxvYWQgPSBkYXRhOworICAg
IGZyYW1lLnBheWxvYWRMZW5ndGggPSBsZW5ndGg7CisKKyAgICAvLyBXZWJJbnNwZWN0b3IgZG9l
cyBub3QgdXNlIHRoZW0uCisgICAgZnJhbWUuZmluYWwgPSBmYWxzZTsKKyAgICBmcmFtZS5jb21w
cmVzcyA9IGZhbHNlOworICAgIGZyYW1lLnJlc2VydmVkMiA9IGZhbHNlOworICAgIGZyYW1lLnJl
c2VydmVkMyA9IGZhbHNlOworCisgICAgcmV0dXJuIGZyYW1lOworfQorCiB9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaAppbmRleCBkMDM2YzUyN2E0NDcyOGUz
M2E1NDNkNWRjOTQ1MDk5YWZiYTVkZTA3Li44MzczYzAxYThjMmYyMjEwM2RhMGUyMmQyNDlhZDkx
MjY4MTRkZmNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKQEAgLTI1LDYgKzI1LDcgQEAK
IAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXZWJTb2NrZXRGcmFtZS5oIgogI2luY2x1ZGUg
PHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09iamVjdElkZW50aWZpZXIuaD4KIApAQCAt
MzUsNyArMzYsNiBAQCBjbGFzcyBSZXNvdXJjZVJlcXVlc3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3Bv
bnNlOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbDsKIGNsYXNzIFdlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3I7Ci1zdHJ1Y3QgV2ViU29ja2V0RnJhbWU7CiAKIHVzaW5nIFdlYlNvY2tldENoYW5uZWxJ
ZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxXZWJTb2NrZXRDaGFubmVsPjsKIApAQCAtNDMs
MTcgKzQzLDIwIEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JUIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0
b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IoRG9j
dW1lbnQmKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0KERvY3VtZW50KiwgY29uc3Qg
VVJMJik7Ci0gICAgdm9pZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1l
bnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2Nr
ZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVudCosIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKTsK
LSAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KERvY3VtZW50Kik7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqLCBjb25zdCBXZWJTb2NrZXRGcmFtZSYpOwotICAg
IHZvaWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiwgY29uc3QgV2ViU29ja2V0RnJh
bWUmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKERvY3VtZW50Kiwg
Y29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAgIHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0
KGNvbnN0IFVSTCYpIGNvbnN0OworICAgIHZvaWQgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VS
ZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNvbnN0OworICAgIHZvaWQgZGlkUmVjZWl2
ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmKSBjb25z
dDsKKyAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KCkgY29uc3Q7CisgICAgdm9pZCBkaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWUoY29uc3QgV2ViU29ja2V0RnJhbWUmKSBjb25zdDsKKyAgICB2b2lk
IGRpZFNlbmRXZWJTb2NrZXRGcmFtZShjb25zdCBXZWJTb2NrZXRGcmFtZSYpIGNvbnN0OworICAg
IHZvaWQgZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IoY29uc3QgU3RyaW5nJiBlcnJvck1l
c3NhZ2UpIGNvbnN0OwogICAgIAogICAgIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIHByb2dy
ZXNzSWRlbnRpZmllcigpIGNvbnN0OwogCisgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIFdlYlNv
Y2tldEZyYW1lIGNyZWF0ZUZyYW1lKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgs
IFdlYlNvY2tldEZyYW1lOjpPcENvZGUpOworCiBwcml2YXRlOgorICAgIFdlYWtQdHI8RG9jdW1l
bnQ+IG1fZG9jdW1lbnQ7CiAgICAgV2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIgbV9wcm9ncmVz
c0lkZW50aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
LmNwcAppbmRleCA5ZmJjOTRlN2NlZjYzZDc0MWIzMWRhYzJlYjc4ZGE3ZGI1MDE1NmEyLi40MTA4
MWZiZDUzZjhhNzgwMmMwMDhiNzE5OWVkNjhhOWVjZjZiYWQ0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMyMywxMyArMzIzLDEzIEBAIHZvaWQgV29y
a2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENsb3NlKHVuc2lnbmVkIHVu
aGFuZGxlZEJ1ZmZlcmVkCiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKLXZvaWQgV29ya2VyVGhy
ZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKQor
dm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbikKIHsKICAgICBBU1NFUlQoaXNNYWluVGhy
ZWFkKCkpOwogCi0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29y
a2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVyID0gbV93b3JrZXJDbGllbnRXcmFw
cGVyXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsKKyAgICBtX2xv
YWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3dv
cmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIsIHJlYXNvbl0oU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgIEFTU0VSVF9VTlVT
RUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkgfHwgY29udGV4dC5pc1dv
cmtsZXRHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkUmVj
ZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNl
aXZlTWVzc2FnZUVycm9yKHJlYXNvbik7CiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKQEAgLTQy
MCw3ICs0MjAsNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlk
Z2U6OmNvbm5lY3QoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cgogICAgICAgICB9CiAKICAgICAg
ICAgaWYgKHBlZXItPmNvbm5lY3QodXJsLCBwcm90b2NvbCkgPT0gVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWw6OkNvbm5lY3RTdGF0dXM6OktPKQotICAgICAgICAgICAgcGVlci0+ZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICAgICAgcGVlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJv
cihudWxsU3RyaW5nKCkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oCmluZGV4IDZhYzkzZmNkZGJmYzAxYTBhNzFkZWEzOTZiMWZhOTc4MzgxNzgz
ODkuLjExZGYwNjE3MjJjZDA2N2JlOWIxMTBjY2Y3NjUwN2RiZjA0NjdmYjIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29j
a2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC05NCw3ICs5NCw3IEBAIHB1YmxpYzoK
ICAgICAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFt
b3VudCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgZmlu
YWw7CiAgICAgICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVyZWRBbW91
bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2Rl
LCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Ci0gICAgICAgIHZvaWQgZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcigpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3Io
Y29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFVwZ3JhZGVVUkwo
KSBmaW5hbDsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDVhNzVmMzY2OGIyZGI1NWQz
M2VmYjNlMTZhM2MwNTUzZjY1YmQ2M2QuLjQzZTRjMGUxYzNlZTVmOTA1ZmY2YTQ2NmFhOTg0Mzdi
ZWMwYzc4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dl
YlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxXZWJTb2NrZXRDaGFu
bmVsPiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoV2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQ
YWdlUHJvCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6Om5vdGlmeVNlbmRGcmFtZShXZWJTb2NrZXRG
cmFtZTo6T3BDb2RlIG9wQ29kZSwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCkK
IHsKICAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZShvcENvZGUsIHRydWUsIGZhbHNlLCB0cnVlLCBk
YXRhLCBsZW5ndGgpOwotICAgIG1faW5zcGVjdG9yLmRpZFNlbmRXZWJTb2NrZXRGcmFtZShtX2Rv
Y3VtZW50LmdldCgpLCBmcmFtZSk7CisgICAgbV9pbnNwZWN0b3IuZGlkU2VuZFdlYlNvY2tldEZy
YW1lKGZyYW1lKTsKIH0KIAogTmV0d29ya1NlbmRRdWV1ZSBXZWJTb2NrZXRDaGFubmVsOjpjcmVh
dGVNZXNzYWdlUXVldWUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFubmVsJiBjaGFu
bmVsKQpAQCAtMTE2LDcgKzExNiw3IEBAIFdlYlNvY2tldENoYW5uZWw6OkNvbm5lY3RTdGF0dXMg
V2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QKICAgICBpZiAo
cmVxdWVzdC0+dXJsKCkgIT0gdXJsICYmIG1fY2xpZW50KQogICAgICAgICBtX2NsaWVudC0+ZGlk
VXBncmFkZVVSTCgpOwogCi0gICAgbV9pbnNwZWN0b3IuZGlkQ3JlYXRlV2ViU29ja2V0KG1fZG9j
dW1lbnQuZ2V0KCksIHVybCk7CisgICAgbV9pbnNwZWN0b3IuZGlkQ3JlYXRlV2ViU29ja2V0KHVy
bCk7CiAgICAgbV91cmwgPSByZXF1ZXN0LT51cmwoKTsKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRlU29ja2V0Q2hh
bm5lbCB7ICpyZXF1ZXN0LCBwcm90b2NvbCwgbV9pZGVudGlmaWVyLCBtX3dlYlBhZ2VQcm94eUlE
LCBtX2RvY3VtZW50LT5jbGllbnRPcmlnaW4oKSwgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCkuaGFk
TWFpbkZyYW1lTWFpblJlc291cmNlUHJpdmF0ZVJlbGF5ZWQoKSB9KTsKICAgICByZXR1cm4gQ29u
bmVjdFN0YXR1czo6T0s7CkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
OjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgQVNTRVJUKGNvZGUg
Pj0gMCB8fCBjb2RlID09IFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZlbnRDb2Rl
Tm90U3BlY2lmaWVkKTsKIAogICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFtZShXZWJTb2Nr
ZXRGcmFtZTo6T3BDb2RlQ2xvc2UsIHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICBtX2luc3BlY3Rv
ci5kaWRTZW5kV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY2xvc2luZ0ZyYW1lKTsK
KyAgICBtX2luc3BlY3Rvci5kaWRTZW5kV2ViU29ja2V0RnJhbWUoY2xvc2luZ0ZyYW1lKTsKIAog
ICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRDaGFubmVsOjpD
bG9zZSB7IGNvZGUsIHJlYXNvbiB9KTsKIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCB2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAKICAgICBsb2dFcnJvck1l
c3NhZ2UocmVhc29uKTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRS
ZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKHJlYXNvbik7CiAKICAgICBpZiAobV9pc0Nsb3NpbmcpCiAgICAgICAgIHJldHVybjsK
QEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QoKQog
ICAgIG1fZG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fbWVzc2FnZVF1ZXVlLmNsZWFyKCk7CiAK
LSAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpKTsKKyAg
ICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldCgpOwogCiAgICAgTWVzc2FnZVNlbmRlcjo6
c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OkNsb3NlIHsgV2ViQ29yZTo6V2Vi
U29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVHb2luZ0F3YXksIHsgfSB9KTsKIH0KQEAgLTI1
MywyNCArMjUzLDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0KFN0cmluZyYm
IHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRlbnNpb25zKQogICAgIG1fY2xpZW50LT5kaWRDb25u
ZWN0KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgV2ViU29ja2V0RnJhbWUgY3JlYXRlV2ViU29ja2V0
RnJhbWVGb3JXZWJJbnNwZWN0b3IoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IGxlbmd0aCwg
V2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUpCi17Ci0gICAgLy8gVGhpcyBpcyBhbiBhcHBy
b3hpbWF0aW9uIHNpbmNlIGZyYW1lcyBjYW4gYmUgbWVyZ2VkIG9uIGEgc2luZ2xlIG1lc3NhZ2Uu
Ci0gICAgV2ViU29ja2V0RnJhbWUgZnJhbWU7Ci0gICAgZnJhbWUub3BDb2RlID0gb3BDb2RlOwot
ICAgIGZyYW1lLm1hc2tlZCA9IGZhbHNlOwotICAgIGZyYW1lLnBheWxvYWQgPSBkYXRhOwotICAg
IGZyYW1lLnBheWxvYWRMZW5ndGggPSBsZW5ndGg7Ci0KLSAgICAvLyBXZWJJbnNwZWN0b3IgZG9l
cyBub3QgdXNlIHRoZW0uCi0gICAgZnJhbWUuZmluYWwgPSBmYWxzZTsKLSAgICBmcmFtZS5jb21w
cmVzcyA9IGZhbHNlOwotICAgIGZyYW1lLnJlc2VydmVkMiA9IGZhbHNlOwotICAgIGZyYW1lLnJl
c2VydmVkMyA9IGZhbHNlOwotCi0gICAgcmV0dXJuIGZyYW1lOwotfQotCiB2b2lkIFdlYlNvY2tl
dENoYW5uZWw6OmRpZFJlY2VpdmVUZXh0KFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAgICAgaWYgKG1f
aXNDbG9zaW5nKQpAQCAtMjc5LDkgKzI2MSw2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlk
UmVjZWl2ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVzc2FnZS51dGY4KCk7Ci0gICAg
bV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNy
ZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKHV0ZjhNZXNzYWdlLmRhdGFBc1VJbnQ4
UHRyKCksIHV0ZjhNZXNzYWdlLmxlbmd0aCgpLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENv
ZGVUZXh0KSk7Ci0KICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVzc2FnZSk7CiB9
CiAKQEAgLTI5Myw4ICsyNzIsNiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVC
aW5hcnlEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiAgICAgaWYgKCFtX2NsaWVudCkK
ICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZy
YW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9y
KGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2Rl
QmluYXJ5KSk7Ci0KICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUJpbmFyeURhdGEoeyBkYXRhIH0p
OwogfQogCkBAIC0zMDMsMTAgKzI4MCw2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2xv
c2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3RyaW5nJiYgcmVhc29uKQogICAgIGlmICghbV9jbGll
bnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFtZShX
ZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ2xvc2UsIHRydWUsIGZhbHNlLCBmYWxzZSk7Ci0gICAgbV9p
bnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNsb3Np
bmdGcmFtZSk7Ci0gICAgbV9pbnNwZWN0b3IuZGlkQ2xvc2VXZWJTb2NrZXQobV9kb2N1bWVudC5n
ZXQoKSk7Ci0KICAgICAvLyBBbiBhdHRlbXB0IHRvIHNlbmQgY2xvc2luZyBoYW5kc2hha2UgbWF5
IGZhaWwsIHdoaWNoIHdpbGwgZ2V0IHRoZSBjaGFubmVsIGNsb3NlZCBhbmQgZGVyZWZlcmVuY2Vk
LgogICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKIApAQCAtMzM2LDcgKzMwOSw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihTdHJpbmcmJiBl
cnJvck1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGxvZ0Vycm9yTWVzc2FnZShlcnJv
ck1lc3NhZ2UpOwotICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAg
bV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoZXJyb3JNZXNzYWdlKTsKIH0KIAogdm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQpAQCAtMzU0LDEzICsz
MjcsMTMgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpyZXN1bWUoKQogCiB2b2lkIFdlYlNvY2tl
dENoYW5uZWw6OmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0KFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QpCiB7Ci0gICAgbV9pbnNwZWN0b3Iud2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0
KG1fZG9jdW1lbnQuZ2V0KCksIHJlcXVlc3QpOworICAgIG1faW5zcGVjdG9yLndpbGxTZW5kV2Vi
U29ja2V0SGFuZHNoYWtlUmVxdWVzdChyZXF1ZXN0KTsKICAgICBtX2hhbmRzaGFrZVJlcXVlc3Qg
PSBXVEZNb3ZlKHJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2Vp
dmVIYW5kc2hha2VSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2UpCiB7Ci0gICAg
bV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKG1fZG9jdW1l
bnQuZ2V0KCksIHJlc3BvbnNlKTsKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0
SGFuZHNoYWtlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgIG1faGFuZHNoYWtlUmVzcG9uc2UgPSBX
VEZNb3ZlKHJlc3BvbnNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IGJlOGU3NjkwMWRmYjQ1Y2JmOWI0MTll
ZjljMDY0OTY5YzM4OWQzM2UuLjI3YzAyNzQ5NDZiODA0MDc1OWYwODcwMzZhMDRhYTc5NWU5Zjcw
NjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tl
dENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmgKQEAgLTk3LDYgKzk3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRlY3JlYXNl
QnVmZmVyZWRBbW91bnQoc2l6ZV90KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIHNl
bmRNZXNzYWdlKFQmJiwgc2l6ZV90IGJ5dGVMZW5ndGgpOwogCisgICAgY29uc3QgV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciogY2hhbm5lbEluc3BlY3RvcigpIGNvbnN0IGZpbmFs
IHsgcmV0dXJuICZtX2luc3BlY3RvcjsgfQogICAgIFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJ
ZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1faW5z
cGVjdG9yLnByb2dyZXNzSWRlbnRpZmllcigpOyB9CiAgICAgYm9vbCBoYXNDcmVhdGVkSGFuZHNo
YWtlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fdXJsLmlzTnVsbCgpOyB9CiAgICAgYm9vbCBp
c0Nvbm5lY3RlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX2hhbmRzaGFrZVJlc3BvbnNlLmlz
TnVsbCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453660</attachid>
            <date>2022-03-02 14:31:48 -0800</date>
            <delta_ts>2022-03-03 09:03:44 -0800</delta_ts>
            <desc>Patch v1.2 - For verification in EWS before review</desc>
            <filename>bug-237280-20220302143147.patch</filename>
            <type>text/plain</type>
            <size>34675</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNjY1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYmFjNTkzOTA0ZDEyNzZl
MDk3YTBjZDJmOTg4Nzg3ZGUxMDM4ZTlmMi4uZjQ0YzQ2M2FkOTdiMzI2ZWU4NmViNzE3MDBkYmZl
OTRhY2E2Y2Q2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDkxIEBACisyMDIyLTAzLTAyICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0
NDcyKTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVj
dG9yL3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyogdGVzdCBjYXNlcy4K
KworICAgICAgICBPbiBtYWNPUyBNb250ZXJleSB3ZSB1c2UgTlNVUkxTZXNzaW9uLWJhc2VkIFdl
YlNvY2tldHMgYnkgZGVmYXVsdC4gVGhlIGNoYW5uZWwgZm9yIHRoZXNlIHNvY2tldHMgaXMgaW1w
bGVtZW50ZWQKKyAgICAgICAgaW4gYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAuIFRoZSBub24t
TlNVUkxTZXNzaW9uIFdlYlNvY2tldHMgY2hhbm5lbCAoYXQgbGVhc3Qgb24gQ29jb2EgcGxhdGZv
cm1zKSBpcworICAgICAgICBpbXBsZW1lbnRlZCBpbiBgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bGAKKworICAgICAgICBBcyBvZiByMjg0NDcyIHRoZSBsb2dpYyB0byBkZWxheSB0aGUgZGlzcGF0
Y2ggb2YgcmVjZWl2ZWQgV2ViU29ja2V0IG1lc3NhZ2VzIGlzIGhhbmRsZWQgYnkgYFdlYkNvcmU6
OldlYlNvY2tldGAsCisgICAgICAgIG5vdCB0aGUgYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAu
IGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIG5vdyBpbW1lZGlhdGVseSBkb2VzIHRoZSB3b3Jr
IGl0IG5lZWRzIHRvLCBhbmQKKyAgICAgICAgb25seSB0aGUgZGVsZWdhdGVkIHdvcmsgdG8gYFdl
YlNvY2tldGAgaXMgcXVldWVkIGFuZCB0YWtlbiBjYXJlIG9mIHdoZW4gdGhlIHNvY2tldCBoYXMg
cmVzdW1lZC4gVGhpcyByZXN1bHRlZCBpbgorICAgICAgICB0aGUgaW5zdHJ1bWVudGF0aW9uIGlu
IGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIGJlaW5nIGFibGUgdG8gYmUgY2FsbGVkIHdoaWxl
IHRoZSBzb2NrZXQgd2FzIHN1c3BlbmRlZCBsZWFkaW5nCisgICAgICAgIHRvIGV2ZW50cyBiZWlu
ZyBsb2dnZWQgaW4gdGhlIGZyb250ZW5kICJpbiB0aGUgZnV0dXJlIiAoZS5nLiBiZWZvcmUgdGhl
IHBhdXNlZCBzY3JpcHQgd291bGQgaGF2ZSBiZWVuIGFibGUgdG8gYmUKKyAgICAgICAgYXdhcmUg
b2YgdGhlbSkuIFRvIGNvcnJlY3QgdGhpcyB0aGUgYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAg
bm93IHByb3ZpZGVzIGEgaG9vayBpbnRvIGl0cyBoZWxwZXIKKyAgICAgICAgYFdlYkluc3BlY3Rv
ckNoYW5uZWxJbnNwZWN0b3JgIG9iamVjdCB0byBhbGxvdyB0aGUgYFdlYkNvcmU6OldlYlNvY2tl
dGAgdG8gbm90aWZ5IFdlYiBJbnNwZWN0b3Igb2YgZXZlbnRzIGF0IHRoZSAKKyAgICAgICAgYW1l
IHRpbWUgaXQgaXMgYmVpbmcgbG9naWNhbGx5IGhhbmRsZWQgYnkgdGhlIHBhZ2UuCisKKyAgICAg
ICAgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbCB3YXMgbm90IGFmZmVjdGVkIGJ5IHRoZSBjaGFu
Z2VzIGluIHIyODQ0NzIgYXMgaXQgYXBwZWFycyB0byBoYXZlIGhhZCBhIGRpZmZlcmVudCB3YXkK
KyAgICAgICAgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIG1ldGhvZHMgY29udGFpbmluZyBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb24gd2VyZSBub3QgY2FsbGVkIHdoaWxlIHRoZSBjaGFubmVsIHdhcwor
ICAgICAgICBzdXNwZW5kZWQgKGFuZCBlbmZvcmNlZCB3aXRoIG51bWVyb3VzIGBBU1NFUlQoIW1f
c3VzcGVuZGVkKWAgY2hlY2tzKS4gSG93ZXZlciwgc2luY2UgYFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWxgCisgICAgICAgIGNhbGxzIGluIHRvIHRoZSBzYW1lIGhvb2tzIGluIGBXZWJTb2NrZXRg
IGFzIGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIGRvZXMsIGl0IG1ha2VzIHNlbnNlIHRvIGdl
bmVyYWxpemUgdGhlCisgICAgICAgIGluc3RydW1lbnRhdGlvbiB0byB1c2UgdGhlIHNhbWUgYFdl
Ykluc3BlY3RvckNoYW5uZWxJbnNwZWN0b3JgIGZvciB0aG9zZSBpbnN0cnVtZW50YXRpb24gcG9p
bnRzIHRvIGF2b2lkIHN1YnRsZQorICAgICAgICBkaWZmZXJlbmNlcyBpbiB3aGVuIG1lc3NhZ2Vz
IGFyZSBkZWxpdmVyZWQgdG8gV2ViIEluc3BlY3Rvci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OmNoYW5uZWxJbnNwZWN0b3IgY29uc3QpOgorICAg
ICAgICAtIEFkZCBuZXcgaG9vayBmb3Igc3ViY2xhc3NlcyB0byBvcHRpb25hbGx5IHByb3ZpZGUg
YW4gaW5zdGFuY2Ugb2YgYFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3JgIGZvciBgV2ViU29ja2V0
YAorICAgICAgICB0byBpbmZvcm0gb2YgcmVsZXZhbnQgZXZlbnRzLgorCisgICAgICAgICogTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29j
a2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaDoKKworICAgICAg
ICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6
ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRp
ZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Lmg6CisKKyAg
ICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpXZWJTb2NrZXRDaGFubmVsKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpkaXNjb25uZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmRp
ZE9wZW5Tb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
ZGlkQ2xvc2VTb2NrZXRTdHJlYW0pOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5l
bDo6ZGlkRmFpbFNvY2tldFN0cmVhbSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsOjpwcm9jZXNzQnVmZmVyKToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6
OnByb2Nlc3NGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpzZW5k
RnJhbWUpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmg6
CisgICAgICAgIC0gVG8gaW5jcmVhc2UgcGFyaXR5IGluIHdoZW4gV2ViIEluc3BlY3RvciBpcyBp
bmZvcm1lZCBvZiBldmVudHMgYmV0d2VlbiB0aGUgbm9uLU5TVVJMU2Vzc2lvbiBhbmQgTlNVUkxT
ZXNzaW9uCisgICAgICAgIGltcGxlbWVudGF0aW9ucyBvZiBgVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxgLCBsZXQgYFdlYlNvY2tldGAgaGFuZGxlIGluZm9ybWluZyBXZWIgSW5zcGVjdG9yIG9m
IG1hbnkgZXZlbnRzLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWxDbGllbnQuaDoKKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3I6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0IGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OndpbGxTZW5kV2ViU29j
a2V0SGFuZHNoYWtlUmVxdWVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ2xv
c2VXZWJTb2NrZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lIGNvbnN0KToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRXZWJTb2NrZXRGcmFtZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWVFcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2Nr
ZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZSk6CisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRDcmVhdGVXZWJTb2NrZXQpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6d2lsbFNlbmRXZWJTb2Nr
ZXRIYW5kc2hha2VSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpk
aWRDbG9zZVdlYlNvY2tldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRD
aGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tl
dEZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKTogRGVsZXRlZC4KKyAgICAgICAg
KiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oOgorICAgICAg
ICAtIEtlZXAgYSBXZWFrUmVmIHRvIHRoZSBgRG9jdW1lbnRgIHRvIG1ha2UgdXNpbmcgdGhpcyBB
UEkgbW9yZSBlcmdvbm9taWMgZnJvbSBgV2ViU29ja2V0YCwgd2hlcmUgZ2V0dGluZyB0aGUKKyAg
ICAgICAgYERvY3VtZW50YCB3b3VsZCBiZSBtb3JlIHZlcmJvc2UuCisKKyAgICAgICAgKiBNb2R1
bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRp
ZFJlY2VpdmVNZXNzYWdlRXJyb3IpOgorICAgICAgICAoV2ViQ29yZTo6V29ya2VyVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdCk6CisgICAgICAgICogTW9kdWxlcy93
ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisKIDIwMjItMDMt
MDEgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJldmVydGluZyByMjkwNjE5LgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCA2YzdlMDUwNzAxN2JhZGU0
M2MzZTQ2Mjc3Mzg2ZTE0YTc4YWJkZjkwLi4wMzMzZWM4OGVhOTAxNDAyOTU3NTEzNjMxYzI0Mjdk
ODY5ZGE5ZGM2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAzLTAyICBQYXRyaWNr
IEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0NDcy
KTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9y
L3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9X
ZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
bm90aWZ5U2VuZEZyYW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y29u
bmVjdCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNsb3NlKToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJLaXQ6Oldl
YlNvY2tldENoYW5uZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRD
aGFubmVsOjpkaWRSZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5u
ZWw6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hh
bm5lbDo6ZGlkQ2xvc2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6
ZGlkU2VuZEhhbmRzaGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpjcmVh
dGVXZWJTb2NrZXRGcmFtZUZvcldlYkluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogV2Vi
UHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaDoKKwogMjAyMi0wMy0wMSAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIElmIHRoZSBt
YWluIHJlc291cmNlIHdhcyBsb2FkZWQgb3ZlciBwcml2YXRlIHJlbGF5LCBsb2FkIGFsbCBzdWIg
cmVzb3VyY2VzIG92ZXIgcHJpdmF0ZSByZWxheQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaApp
bmRleCAzMGI0YjM3MTYyMTViODJiODM2NjZkNGU1YmM0YWYzOTgzYjJlYTlkLi43MzE5OGQ1MDA4
MGQ5OGMwNjk5OTY3Mzk5YTY2MWIwMDZiZjYyNmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xhc3MgV2ViU29j
a2V0Q2hhbm5lbDsKK2NsYXNzIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I7CiBjbGFzcyBXZWJT
b2NrZXRDaGFubmVsQ2xpZW50OwogCiB1c2luZyBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciA9
IE9iamVjdElkZW50aWZpZXI8V2ViU29ja2V0Q2hhbm5lbD47CkBAIC04NCw2ICs4NSw3IEBAIHB1
YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
cmVzdW1lKCkgPSAwOwogCisgICAgdmlydHVhbCBjb25zdCBXZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yKiBjaGFubmVsSW5zcGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsgfTsKICAgICB2
aXJ0dWFsIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNv
bnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ3JlYXRlZEhhbmRzaGFrZSgpIGNvbnN0ID0g
MDsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb25uZWN0ZWQoKSBjb25zdCA9IDA7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmluZGV4IDc4Nzg3
OWZhNjg3NmE5ODQ4NTUxZDE2YWRlMzg1YjJlNzRlMWFkNzIuLmMxNjFhZjc3OTRiNzQ4MjQ0NGI4
N2ZkMTkxYjVlMWFiMDk0MDlkOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC0yMTcsMTEgKzIxNywxMSBAQCB2b2lkIFRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkQ2xvc2UodW5zaWduZWQgdW5o
YW5kbGVkQnVmZmVyZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9CiAKLXZvaWQg
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKCkKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpk
aWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKQogewotICAgIG1fcGVu
ZGluZ1Rhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmKSB7CisgICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dDo6VGFzaz4oW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9
LCByZWFzb25dIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgewogICAgICAgICBpZiAobV9jbGll
bnQpCi0gICAgICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAg
ICAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKICAgICB9
KSk7CiAKICAgICBpZiAoIW1fc3VzcGVuZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBl
ci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCmluZGV4IDhkYTE4YzAwNjdkMGE1YWI3ZTdiNDI0MTJm
NmY1ZGEyYzAyZWFiZGMuLjZhZWJhNTNlOGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2Mg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgK
QEAgLTc5LDcgKzc5LDcgQEAgcHVibGljOgogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91
bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFu
ZHNoYWtlKCk7CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFt
b3VudCwgV2ViU29ja2V0Q2hhbm5lbENsaWVudDo6Q2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25T
dGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKLSAgICB2
b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pOwogICAgIHZvaWQgZGlkVXBncmFkZVVSTCgpOwog
CiAgICAgdm9pZCBzdXNwZW5kKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4IGM1NTg3OTIzMjE1NWQ0NTVhOGU5M2JkODZiZmZiYzgx
ZjQwOTU5MzkuLjQ1ZjlhNWJiZTRmMzllNzcwMGQ1YmQ0NDg5ZWM1YzVlMmRiMjNiZWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC00
Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAiRnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5o
IgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VF
dmVudC5oIgogI2luY2x1ZGUgIk1peGVkQ29udGVudENoZWNrZXIuaCIKQEAgLTU2NSw2ICs1NjYs
MTMgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbXNn
KQogICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2Vi
U29ja2V0LCBbdGhpcywgbXNnXSB7CiAgICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAg
ICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1l
bnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVj
dG9yID0gbV9jaGFubmVsLT5jaGFubmVsSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBh
dXRvIHV0ZjhNZXNzYWdlID0gbXNnLnV0ZjgoKTsKKyAgICAgICAgICAgICAgICBpbnNwZWN0b3It
PmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVh
dGVGcmFtZSh1dGY4TWVzc2FnZS5kYXRhQXNVSW50OFB0cigpLCB1dGY4TWVzc2FnZS5sZW5ndGgo
KSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCkpOworICAgICAgICAgICAgfQor
ICAgICAgICB9CiAgICAgICAgIEFTU0VSVChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAg
ICAgICBkaXNwYXRjaEV2ZW50KE1lc3NhZ2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmln
aW46OmNyZWF0ZShtX3VybCktPnRvU3RyaW5nKCkpKTsKICAgICB9KTsKQEAgLTU3Niw2ICs1ODQs
MTIgQEAgdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90
PiYmIGJpbmFyeURhdGEpCiAgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBU
YXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCBiaW5hcnlEYXRhID0gV1RGTW92ZShiaW5hcnlE
YXRhKV0oKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKICAgICAgICAg
ICAgIHJldHVybjsKKworICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBpbnNwZWN0b3Ig
PSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNwZWN0b3IoKSkKKyAgICAgICAgICAgICAgICBpbnNwZWN0
b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpj
cmVhdGVGcmFtZShiaW5hcnlEYXRhLmRhdGEoKSwgYmluYXJ5RGF0YS5zaXplKCksIFdlYlNvY2tl
dEZyYW1lOjpPcENvZGU6Ok9wQ29kZUJpbmFyeSkpOworICAgICAgICB9CisKICAgICAgICAgc3dp
dGNoIChtX2JpbmFyeVR5cGUpIHsKICAgICAgICAgY2FzZSBCaW5hcnlUeXBlOjpCbG9iOgogICAg
ICAgICAgICAgLy8gRklYTUU6IFdlIGp1c3QgcmVjZWl2ZWQgdGhlIGRhdGEgZnJvbSBOZXR3b3Jr
UHJvY2VzcywgYW5kIGFyZSBzZW5kaW5nIGl0IGJhY2suIFRoaXMgaXMgaW5lZmZpY2llbnQuCkBA
IC01ODgsMTQgKzYwMiwxOCBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
VmVjdG9yPHVpbnQ4X3Q+JiYgYmluYXJ5RGF0YSkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pCiB7CiAgICAgTE9HKE5ldHdvcmssICJX
ZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZUVycm9yTWVzc2FnZSgpIiwgdGhpcyk7Ci0gICAgcXVldWVU
YXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlz
XSB7CisgICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpX
ZWJTb2NrZXQsIFt0aGlzLCByZWFzb25dIHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VE
KQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAg
ICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpKTsKKworICAgICAgICBpZiAoYXV0byog
aW5zcGVjdG9yID0gbV9jaGFubmVsLT5jaGFubmVsSW5zcGVjdG9yKCkpCisgICAgICAgICAgICBp
bnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKHJlYXNvbik7CisKICAgICAg
ICAgLy8gRklYTUU6IEFzIHBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFn
ZS93ZWItc29ja2V0cy5odG1sI2ZlZWRiYWNrLWZyb20tdGhlLXByb3RvY29sOmNvbmNlcHQtd2Vi
c29ja2V0LWNsb3NlZCwgd2Ugc2hvdWxkIHN5bmNocm9ub3VzbHkgZmlyZSBhIGNsb3NlIGV2ZW50
LgogICAgICAgICBkaXNwYXRjaEVycm9yRXZlbnRJZk5lZWRlZCgpOwogICAgIH0pOwpAQCAtNjI2
LDYgKzY0NCwxNCBAQCB2b2lkIFdlYlNvY2tldDo6ZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVk
QnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbAogICAgICAgICBpZiAoIW1fY2hh
bm5lbCkKICAgICAgICAgICAgIHJldHVybjsKIAorICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsKKyAgICAgICAgICAgIGlmIChh
dXRvKiBpbnNwZWN0b3IgPSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNwZWN0b3IoKSkgeworICAgICAg
ICAgICAgICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlQ2xvc2UsIHRydWUsIGZhbHNlLCBmYWxzZSk7CisgICAgICAgICAgICAgICAgaW5zcGVjdG9y
LT5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoY2xvc2luZ0ZyYW1lKTsKKyAgICAgICAgICAgICAg
ICBpbnNwZWN0b3ItPmRpZENsb3NlV2ViU29ja2V0KCk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0KKwogICAgICAgICBib29sIHdhc0NsZWFuID0gbV9zdGF0ZSA9PSBDTE9TSU5HICYmICF1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudCAmJiBjbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvbiA9PSBDbG9z
aW5nSGFuZHNoYWtlQ29tcGxldGUgJiYgY29kZSAhPSBXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2
ZW50Q29kZUFibm9ybWFsQ2xvc3VyZTsKICAgICAgICAgbV9zdGF0ZSA9IENMT1NFRDsKICAgICAg
ICAgbV9idWZmZXJlZEFtb3VudCA9IHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCmluZGV4IGFiZTNkYTk2ZjVm
OGRmODRmZWY0NTczNWQ1YzgwYmJhYzIwNGQ2ZmYuLjBjMzZhMjM2MTEzN2UwODY1ODVhMDE3Yjlj
NmIxZjVlMTc4ZTZlZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0LmgKQEAgLTExNSw3ICsxMTUsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkQ29u
bmVjdCgpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2UoY29uc3QgU3RyaW5nJiBt
ZXNzYWdlKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50
OF90PiYmKSBmaW5hbDsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSBmaW5hbDsK
KyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pIGZp
bmFsOwogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRB
bW91bnQpIGZpbmFsOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgZmluYWw7
CiAgICAgdm9pZCBkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xv
c2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAppbmRleCAyZjdiODMzN2IwNGI2Zjll
MGM4MTI0ODUzMDIwOGI1MjQ3YmZhNDdjLi5mYWYzNmI0ODliODA3MmYxNzJjOTNlODAzZTRhYjM2
MDBkYWZiMmI5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMv
V2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC0yMzksNyArMjM5LDcgQEAgdm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpmYWlsKGNvbnN0IFN0cmluZyYgcmVhc29uKQogICAgIG1faGFzQ29udGludW91
c0ZyYW1lID0gZmFsc2U7CiAgICAgbV9jb250aW51b3VzRnJhbWVEYXRhLmNsZWFyKCk7CiAgICAg
aWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigp
OworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihyZWFzb24pOwogCiAg
ICAgaWYgKG1faGFuZGxlICYmICFtX2Nsb3NlZCkKICAgICAgICAgbV9oYW5kbGUtPmRpc2Nvbm5l
Y3QoKTsgLy8gV2lsbCBjYWxsIGRpZENsb3NlU29ja2V0U3RyZWFtKCkgYnV0IG1heWJlIG5vdCBz
eW5jaHJvbm91c2x5LgpAQCAtMzY1LDIxICszNjUsMjMgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVs
OjpkaWRGYWlsU29ja2V0U3RyZWFtKFNvY2tldFN0cmVhbUhhbmRsZSYgaGFuZGxlLCBjb25zdCBT
b2MKIHsKICAgICBMT0coTmV0d29yaywgIldlYlNvY2tldENoYW5uZWwgJXAgZGlkRmFpbFNvY2tl
dFN0cmVhbSgpIiwgdGhpcyk7CiAgICAgQVNTRVJUKCZoYW5kbGUgPT0gbV9oYW5kbGUgfHwgIW1f
aGFuZGxlKTsKKworICAgIFN0cmluZyBtZXNzYWdlOworICAgIGlmIChlcnJvci5pc051bGwoKSkK
KyAgICAgICAgbWVzc2FnZSA9ICJXZWJTb2NrZXQgbmV0d29yayBlcnJvciJfczsKKyAgICBlbHNl
IGlmIChlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpLmlzTnVsbCgpKQorICAgICAgICBtZXNz
YWdlID0gbWFrZVN0cmluZygiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IGVycm9yIGNvZGUgIiwg
ZXJyb3IuZXJyb3JDb2RlKCkpOworICAgIGVsc2UKKyAgICAgICAgbWVzc2FnZSA9ICJXZWJTb2Nr
ZXQgbmV0d29yayBlcnJvcjogIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCk7CisKICAg
ICBpZiAobV9kb2N1bWVudCkgewotICAgICAgICBTdHJpbmcgbWVzc2FnZTsKLSAgICAgICAgaWYg
KGVycm9yLmlzTnVsbCgpKQotICAgICAgICAgICAgbWVzc2FnZSA9ICJXZWJTb2NrZXQgbmV0d29y
ayBlcnJvciJfczsKLSAgICAgICAgZWxzZSBpZiAoZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KS5pc051bGwoKSkKLSAgICAgICAgICAgIG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJXZWJTb2NrZXQg
bmV0d29yayBlcnJvcjogZXJyb3IgY29kZSAiLCBlcnJvci5lcnJvckNvZGUoKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIG1lc3NhZ2UgPSAiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6ICIg
KyBlcnJvci5sb2NhbGl6ZWREZXNjcmlwdGlvbigpOwogICAgICAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKG1fZG9jdW1lbnQuZ2V0KCks
IG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBtZXNzYWdlKTsKICAgICAgICAgbV9kb2N1bWVudC0+YWRk
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6TmV0d29yaywgTWVzc2FnZUxldmVsOjpFcnJv
ciwgbWVzc2FnZSk7CiAgICAgICAgIExPR19FUlJPUigiJXMiLCBtZXNzYWdlLnV0ZjgoKS5kYXRh
KCkpOwogICAgIH0KICAgICBtX3Nob3VsZERpc2NhcmRSZWNlaXZlZERhdGEgPSB0cnVlOwogICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Io
KTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IobWVzc2FnZSk7CiAg
ICAgaGFuZGxlLmRpc2Nvbm5lY3QoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggYzkyNmI0MWZhNGRhMjU5
Y2IyNTdjMGM5NWQ4ZWQxYTI0NWY3NjNmZC4uNTIyNWJjOWVjNDZjNTgyYTU4NjNkNDgzYWQwNWIx
YTk3MjZjN2U0ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC0zNSw2ICszNSw3IEBACiAjaW5jbHVkZSAiU29ja2V0
U3RyZWFtSGFuZGxlQ2xpZW50LmgiCiAjaW5jbHVkZSAiVGhyZWFkYWJsZVdlYlNvY2tldENoYW5u
ZWwuaCIKICNpbmNsdWRlICJUaW1lci5oIgorI2luY2x1ZGUgIldlYlNvY2tldENoYW5uZWxJbnNw
ZWN0b3IuaCIKICNpbmNsdWRlICJXZWJTb2NrZXREZWZsYXRlRnJhbWVyLmgiCiAjaW5jbHVkZSAi
V2ViU29ja2V0RnJhbWUuaCIKICNpbmNsdWRlICJXZWJTb2NrZXRIYW5kc2hha2UuaCIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVs
Q2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hh
bm5lbENsaWVudC5oCmluZGV4IDg0MDFiNWM2NjFjMzU1MWRhNzlmZjExZmQ3M2Y5ZGIxODg5MWI3
YjEuLjdmNzEzMWNhMTllNzhjMGM3NGFhNDk3ODk0NTBiNjE2NTM3YmQwZmMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5u
ZWxDbGllbnQuaApAQCAtNDEsNyArNDEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIGRp
ZENvbm5lY3QoKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlKGNvbnN0
IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVj
dG9yPHVpbnQ4X3Q+JiYpID0gMDsKLSAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VF
cnJvcigpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25z
dCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50
KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGRpZFN0YXJ0
Q2xvc2luZ0hhbmRzaGFrZSgpID0gMDsKICAgICBlbnVtIENsb3NpbmdIYW5kc2hha2VDb21wbGV0
aW9uU3RhdHVzIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcAppbmRleCBjYTc2ODcwOTVk
NGY4ODA5NjRkMzM1YzEzNmJhYjYwMjYwMTk5YTJjLi5jZjcxOTI2ZjQzMDM5ZjQ0ZmQ3MjBhNWJh
NjkyNDhlOWFiMDM1ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuY3BwCkBAIC0zMCw2
NiArMzAsNzAgQEAKICNpbmNsdWRlICJJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCIKICNpbmNs
dWRlICJQYWdlLmgiCiAjaW5jbHVkZSAiUHJvZ3Jlc3NUcmFja2VyLmgiCisjaW5jbHVkZSAiV2Vi
U29ja2V0RnJhbWUuaCIKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1XZWJTb2NrZXRDaGFubmVs
SW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKERvY3VtZW50JikKLSAgICA6IG1f
cHJvZ3Jlc3NJZGVudGlmaWVyKFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyOjpnZW5lcmF0ZVRo
cmVhZFNhZmUoKSkgeyB9CitXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yKERvY3VtZW50JiBkb2N1bWVudCkKKyAgICA6IG1fZG9jdW1lbnQoZG9jdW1l
bnQpCisgICAgLCBtX3Byb2dyZXNzSWRlbnRpZmllcihXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmll
cjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpCit7Cit9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0KERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgVVJM
JiB1cmwpCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tl
dChjb25zdCBVUkwmIHVybCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVy
IHx8ICFkb2N1bWVudCkKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3Vt
ZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRp
ZENyZWF0ZVdlYlNvY2tldChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHVybCk7Cisg
ICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVu
dC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHVybCk7CiB9CiAKLXZvaWQgV2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KERvY3Vt
ZW50KiBkb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qo
Y29uc3QgUmVzb3VyY2VSZXF1ZXN0JiByZXF1ZXN0KSBjb25zdAogewotICAgIGlmICghbV9wcm9n
cmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZp
ZXIgfHwgIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KGRvY3VtZW50LCBt
X3Byb2dyZXNzSWRlbnRpZmllciwgcmVxdWVzdCk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QobV9kb2N1bWVudC5nZXQoKSwg
bV9wcm9ncmVzc0lkZW50aWZpZXIsIHJlcXVlc3QpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5u
ZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVu
dCogZG9jdW1lbnQsIGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQordm9pZCBXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9u
c2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dyZXNzSWRl
bnRpZmllciB8fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UoZG9j
dW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCByZXNwb25zZSk7CisgICAgSW5zcGVjdG9ySW5z
dHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UobV9kb2N1
bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHJlc3BvbnNlKTsKIH0KIAotdm9pZCBX
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRDbG9zZVdlYlNvY2tldChEb2N1bWVudCogZG9j
dW1lbnQpCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0
KCkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkK
KyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0
KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllcik7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRl
bnRpZmllcik7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2
ZVdlYlNvY2tldEZyYW1lKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJhbWUm
IGZyYW1lKQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29j
a2V0RnJhbWUoY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKSBjb25zdAogewotICAgIGlmICgh
bV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lk
ZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKGRvY3VtZW50LCBtX3By
b2dyZXNzSWRlbnRpZmllciwgZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6
ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVu
dGlmaWVyLCBmcmFtZSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlk
U2VuZFdlYlNvY2tldEZyYW1lKERvY3VtZW50KiBkb2N1bWVudCwgY29uc3QgV2ViU29ja2V0RnJh
bWUmIGZyYW1lKQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRTZW5kV2ViU29j
a2V0RnJhbWUoY29uc3QgV2ViU29ja2V0RnJhbWUmIGZyYW1lKSBjb25zdAogewotICAgIGlmICgh
bV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lk
ZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rv
ckluc3RydW1lbnRhdGlvbjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKGRvY3VtZW50LCBtX3Byb2dy
ZXNzSWRlbnRpZmllciwgZnJhbWUpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
U2VuZFdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVy
LCBmcmFtZSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2
ZVdlYlNvY2tldEZyYW1lRXJyb3IoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBTdHJpbmcmIGVy
cm9yTWVzc2FnZSkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lRXJyb3IoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIGNvbnN0CiB7Ci0g
ICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3By
b2dyZXNzSWRlbnRpZmllciB8fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAg
SW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihk
b2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIGVycm9yTWVzc2FnZSk7CisgICAgSW5zcGVj
dG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihtX2RvY3Vt
ZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZXJyb3JNZXNzYWdlKTsKIH0KIAogV2Vi
U29ja2V0Q2hhbm5lbElkZW50aWZpZXIgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6cHJvZ3Jl
c3NJZGVudGlmaWVyKCkgY29uc3QKQEAgLTk3LDQgKzEwMSwyMiBAQCBXZWJTb2NrZXRDaGFubmVs
SWRlbnRpZmllciBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpwcm9ncmVzc0lkZW50aWZpZXIo
KSBjb25zdAogICAgIHJldHVybiBtX3Byb2dyZXNzSWRlbnRpZmllcjsKIH0KIAorV2ViU29ja2V0
RnJhbWUgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUoY29uc3QgdWludDhf
dCogZGF0YSwgc2l6ZV90IGxlbmd0aCwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUpCit7
CisgICAgLy8gVGhpcyBpcyBhbiBhcHByb3hpbWF0aW9uIHNpbmNlIGZyYW1lcyBjYW4gYmUgbWVy
Z2VkIG9uIGEgc2luZ2xlIG1lc3NhZ2UuCisgICAgV2ViU29ja2V0RnJhbWUgZnJhbWU7CisgICAg
ZnJhbWUub3BDb2RlID0gb3BDb2RlOworICAgIGZyYW1lLm1hc2tlZCA9IGZhbHNlOworICAgIGZy
YW1lLnBheWxvYWQgPSBkYXRhOworICAgIGZyYW1lLnBheWxvYWRMZW5ndGggPSBsZW5ndGg7CisK
KyAgICAvLyBXZWJJbnNwZWN0b3IgZG9lcyBub3QgdXNlIHRoZW0uCisgICAgZnJhbWUuZmluYWwg
PSBmYWxzZTsKKyAgICBmcmFtZS5jb21wcmVzcyA9IGZhbHNlOworICAgIGZyYW1lLnJlc2VydmVk
MiA9IGZhbHNlOworICAgIGZyYW1lLnJlc2VydmVkMyA9IGZhbHNlOworCisgICAgcmV0dXJuIGZy
YW1lOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3Iu
aAppbmRleCBkMDM2YzUyN2E0NDcyOGUzM2E1NDNkNWRjOTQ1MDk5YWZiYTVkZTA3Li5iYjUxNzlj
ZDJkYzk2ZTk1ZjEzMjM3OWEzZDZlMmYwODc3NzM4NjMxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oCisrKyBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVj
dG9yLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI3ByYWdtYSBvbmNlCiAKKyNpbmNsdWRlICJXZWJT
b2NrZXRGcmFtZS5oIgogI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CiAjaW5jbHVkZSA8d3RmL09i
amVjdElkZW50aWZpZXIuaD4KIApAQCAtMzUsNyArMzYsNiBAQCBjbGFzcyBSZXNvdXJjZVJlcXVl
c3Q7CiBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbDsKIGNs
YXNzIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I7Ci1zdHJ1Y3QgV2ViU29ja2V0RnJhbWU7CiAK
IHVzaW5nIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyID0gT2JqZWN0SWRlbnRpZmllcjxXZWJT
b2NrZXRDaGFubmVsPjsKIApAQCAtNDMsMTcgKzQzLDIwIEBAIGNsYXNzIFdFQkNPUkVfRVhQT1JU
IFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IgewogcHVibGljOgogICAgIGV4cGxpY2l0IFdlYlNv
Y2tldENoYW5uZWxJbnNwZWN0b3IoRG9jdW1lbnQmKTsKIAotICAgIHZvaWQgZGlkQ3JlYXRlV2Vi
U29ja2V0KERvY3VtZW50KiwgY29uc3QgVVJMJik7Ci0gICAgdm9pZCB3aWxsU2VuZFdlYlNvY2tl
dEhhbmRzaGFrZVJlcXVlc3QoRG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmKTsKLSAg
ICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShEb2N1bWVudCosIGNv
bnN0IFJlc291cmNlUmVzcG9uc2UmKTsKLSAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KERvY3Vt
ZW50Kik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqLCBjb25z
dCBXZWJTb2NrZXRGcmFtZSYpOwotICAgIHZvaWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKERvY3Vt
ZW50KiwgY29uc3QgV2ViU29ja2V0RnJhbWUmKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2Nr
ZXRGcmFtZUVycm9yKERvY3VtZW50KiwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpOworICAg
IHZvaWQgZGlkQ3JlYXRlV2ViU29ja2V0KGNvbnN0IFVSTCYpIGNvbnN0OworICAgIHZvaWQgd2ls
bFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYpIGNv
bnN0OworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKGNvbnN0
IFJlc291cmNlUmVzcG9uc2UmKSBjb25zdDsKKyAgICB2b2lkIGRpZENsb3NlV2ViU29ja2V0KCkg
Y29uc3Q7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoY29uc3QgV2ViU29ja2V0
RnJhbWUmKSBjb25zdDsKKyAgICB2b2lkIGRpZFNlbmRXZWJTb2NrZXRGcmFtZShjb25zdCBXZWJT
b2NrZXRGcmFtZSYpIGNvbnN0OworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJy
b3IoY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpIGNvbnN0OwogICAgIAogICAgIFdlYlNvY2tl
dENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0OwogCisgICAgc3Rh
dGljIFdlYlNvY2tldEZyYW1lIGNyZWF0ZUZyYW1lKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVf
dCBsZW5ndGgsIFdlYlNvY2tldEZyYW1lOjpPcENvZGUpOworCiBwcml2YXRlOgorICAgIFdlYWtQ
dHI8RG9jdW1lbnQ+IG1fZG9jdW1lbnQ7CiAgICAgV2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIg
bV9wcm9ncmVzc0lkZW50aWZpZXI7CiB9OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuY3BwIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmNwcAppbmRleCA5ZmJjOTRlN2NlZjYzZDc0MWIzMWRhYzJlYjc4ZGE3ZGI1MDE1
NmEyLi40MTA4MWZiZDUzZjhhNzgwMmMwMDhiNzE5OWVkNjhhOWVjZjZiYWQ0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
b3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTMyMywxMyArMzIzLDEzIEBA
IHZvaWQgV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZENsb3NlKHVu
c2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmVkCiAgICAgfSwgbV90YXNrTW9kZSk7CiB9CiAKLXZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdl
RXJyb3IoKQordm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNvbikKIHsKICAgICBBU1NFUlQo
aXNNYWluVGhyZWFkKCkpOwogCi0gICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1vZGVUb1dv
cmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVyID0gbV93b3JrZXJD
bGllbnRXcmFwcGVyXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0KSBtdXRhYmxlIHsK
KyAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFs
U2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dvcmtlckNsaWVudFdyYXBwZXIsIHJlYXNv
bl0oU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CiAgICAgICAgIEFT
U0VSVF9VTlVTRUQoY29udGV4dCwgY29udGV4dC5pc1dvcmtlckdsb2JhbFNjb3BlKCkgfHwgY29u
dGV4dC5pc1dvcmtsZXRHbG9iYWxTY29wZSgpKTsKLSAgICAgICAgd29ya2VyQ2xpZW50V3JhcHBl
ci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICB3b3JrZXJDbGllbnRXcmFwcGVy
LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNvbik7CiAgICAgfSwgbV90YXNrTW9kZSk7CiB9
CiAKQEAgLTQyMCw3ICs0MjAsNyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsOjpCcmlkZ2U6OmNvbm5lY3QoY29uc3QgVVJMJiB1cmwsIGNvbnN0IFN0cgogICAgICAgICB9
CiAKICAgICAgICAgaWYgKHBlZXItPmNvbm5lY3QodXJsLCBwcm90b2NvbCkgPT0gVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OkNvbm5lY3RTdGF0dXM6OktPKQotICAgICAgICAgICAgcGVlci0+
ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICAgICAgcGVlci0+ZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcihudWxsU3RyaW5nKCkpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IDZhYzkzZmNkZGJmYzAxYTBhNzFkZWEzOTZiMWZh
OTc4MzgxNzgzODkuLjExZGYwNjE3MjJjZDA2N2JlOWIxMTBjY2Y3NjUwN2RiZjA0NjdmYjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC05NCw3ICs5NCw3IEBA
IHB1YmxpYzoKICAgICAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBi
dWZmZXJlZEFtb3VudCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNo
YWtlKCkgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5oYW5kbGVkQnVm
ZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBz
aG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7Ci0gICAgICAgIHZvaWQgZGlk
UmVjZWl2ZU1lc3NhZ2VFcnJvcigpIGZpbmFsOworICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNz
YWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOwogICAgICAgICB2b2lkIGRpZFVw
Z3JhZGVVUkwoKSBmaW5hbDsKIAogICAgIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDVhNzVmMzY2
OGIyZGI1NWQzM2VmYjNlMTZhM2MwNTUzZjY1YmQ2M2QuLjQzZTRjMGUxYzNlZTVmOTA1ZmY2YTQ2
NmFhOTg0MzdiZWMwYzc4M2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9O
ZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuY3BwCkBAIC01MSw3ICs1MSw3IEBAIFJlZjxXZWJT
b2NrZXRDaGFubmVsPiBXZWJTb2NrZXRDaGFubmVsOjpjcmVhdGUoV2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJvCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6Om5vdGlmeVNlbmRGcmFtZShX
ZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29kZSwgY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCkKIHsKICAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZShvcENvZGUsIHRydWUsIGZhbHNl
LCB0cnVlLCBkYXRhLCBsZW5ndGgpOwotICAgIG1faW5zcGVjdG9yLmRpZFNlbmRXZWJTb2NrZXRG
cmFtZShtX2RvY3VtZW50LmdldCgpLCBmcmFtZSk7CisgICAgbV9pbnNwZWN0b3IuZGlkU2VuZFdl
YlNvY2tldEZyYW1lKGZyYW1lKTsKIH0KIAogTmV0d29ya1NlbmRRdWV1ZSBXZWJTb2NrZXRDaGFu
bmVsOjpjcmVhdGVNZXNzYWdlUXVldWUoRG9jdW1lbnQmIGRvY3VtZW50LCBXZWJTb2NrZXRDaGFu
bmVsJiBjaGFubmVsKQpAQCAtMTE2LDcgKzExNiw3IEBAIFdlYlNvY2tldENoYW5uZWw6OkNvbm5l
Y3RTdGF0dXMgV2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdChjb25zdCBVUkwmIHVybCwgY29uc3QK
ICAgICBpZiAocmVxdWVzdC0+dXJsKCkgIT0gdXJsICYmIG1fY2xpZW50KQogICAgICAgICBtX2Ns
aWVudC0+ZGlkVXBncmFkZVVSTCgpOwogCi0gICAgbV9pbnNwZWN0b3IuZGlkQ3JlYXRlV2ViU29j
a2V0KG1fZG9jdW1lbnQuZ2V0KCksIHVybCk7CisgICAgbV9pbnNwZWN0b3IuZGlkQ3JlYXRlV2Vi
U29ja2V0KHVybCk7CiAgICAgbV91cmwgPSByZXF1ZXN0LT51cmwoKTsKICAgICBNZXNzYWdlU2Vu
ZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3b3JrQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Q3JlYXRl
U29ja2V0Q2hhbm5lbCB7ICpyZXF1ZXN0LCBwcm90b2NvbCwgbV9pZGVudGlmaWVyLCBtX3dlYlBh
Z2VQcm94eUlELCBtX2RvY3VtZW50LT5jbGllbnRPcmlnaW4oKSwgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuaGFkTWFpbkZyYW1lTWFpblJlc291cmNlUHJpdmF0ZVJlbGF5ZWQoKSB9KTsKICAgICBy
ZXR1cm4gQ29ubmVjdFN0YXR1czo6T0s7CkBAIC0yMDgsNyArMjA4LDcgQEAgdm9pZCBXZWJTb2Nr
ZXRDaGFubmVsOjpjbG9zZShpbnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgQVNT
RVJUKGNvZGUgPj0gMCB8fCBjb2RlID09IFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OkNsb3Nl
RXZlbnRDb2RlTm90U3BlY2lmaWVkKTsKIAogICAgIFdlYlNvY2tldEZyYW1lIGNsb3NpbmdGcmFt
ZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ2xvc2UsIHRydWUsIGZhbHNlLCB0cnVlKTsKLSAgICBt
X2luc3BlY3Rvci5kaWRTZW5kV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY2xvc2lu
Z0ZyYW1lKTsKKyAgICBtX2luc3BlY3Rvci5kaWRTZW5kV2ViU29ja2V0RnJhbWUoY2xvc2luZ0Zy
YW1lKTsKIAogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtTb2NrZXRD
aGFubmVsOjpDbG9zZSB7IGNvZGUsIHJlYXNvbiB9KTsKIH0KQEAgLTIyMCw3ICsyMjAsNyBAQCB2
b2lkIFdlYlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAKICAgICBs
b2dFcnJvck1lc3NhZ2UocmVhc29uKTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xp
ZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNl
aXZlTWVzc2FnZUVycm9yKHJlYXNvbik7CiAKICAgICBpZiAobV9pc0Nsb3NpbmcpCiAgICAgICAg
IHJldHVybjsKQEAgLTIzNSw3ICsyMzUsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpc2Nv
bm5lY3QoKQogICAgIG1fZG9jdW1lbnQgPSBudWxscHRyOwogICAgIG1fbWVzc2FnZVF1ZXVlLmNs
ZWFyKCk7CiAKLSAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50Lmdl
dCgpKTsKKyAgICBtX2luc3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldCgpOwogCiAgICAgTWVzc2Fn
ZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OkNsb3NlIHsgV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVHb2luZ0F3YXksIHsgfSB9KTsK
IH0KQEAgLTI1MywyNCArMjUzLDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDb25uZWN0
KFN0cmluZyYmIHN1YnByb3RvY29sLCBTdHJpbmcmJiBleHRlbnNpb25zKQogICAgIG1fY2xpZW50
LT5kaWRDb25uZWN0KCk7CiB9CiAKLXN0YXRpYyBpbmxpbmUgV2ViU29ja2V0RnJhbWUgY3JlYXRl
V2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90
IGxlbmd0aCwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUpCi17Ci0gICAgLy8gVGhpcyBp
cyBhbiBhcHByb3hpbWF0aW9uIHNpbmNlIGZyYW1lcyBjYW4gYmUgbWVyZ2VkIG9uIGEgc2luZ2xl
IG1lc3NhZ2UuCi0gICAgV2ViU29ja2V0RnJhbWUgZnJhbWU7Ci0gICAgZnJhbWUub3BDb2RlID0g
b3BDb2RlOwotICAgIGZyYW1lLm1hc2tlZCA9IGZhbHNlOwotICAgIGZyYW1lLnBheWxvYWQgPSBk
YXRhOwotICAgIGZyYW1lLnBheWxvYWRMZW5ndGggPSBsZW5ndGg7Ci0KLSAgICAvLyBXZWJJbnNw
ZWN0b3IgZG9lcyBub3QgdXNlIHRoZW0uCi0gICAgZnJhbWUuZmluYWwgPSBmYWxzZTsKLSAgICBm
cmFtZS5jb21wcmVzcyA9IGZhbHNlOwotICAgIGZyYW1lLnJlc2VydmVkMiA9IGZhbHNlOwotICAg
IGZyYW1lLnJlc2VydmVkMyA9IGZhbHNlOwotCi0gICAgcmV0dXJuIGZyYW1lOwotfQotCiB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVUZXh0KFN0cmluZyYmIG1lc3NhZ2UpCiB7CiAg
ICAgaWYgKG1faXNDbG9zaW5nKQpAQCAtMjc5LDkgKzI2MSw2IEBAIHZvaWQgV2ViU29ja2V0Q2hh
bm5lbDo6ZGlkUmVjZWl2ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKICAgICBpZiAoIW1fY2xpZW50
KQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbWVzc2FnZS51dGY4
KCk7Ci0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQu
Z2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKHV0ZjhNZXNzYWdlLmRh
dGFBc1VJbnQ4UHRyKCksIHV0ZjhNZXNzYWdlLmxlbmd0aCgpLCBXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlOjpPcENvZGVUZXh0KSk7Ci0KICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2UobWVz
c2FnZSk7CiB9CiAKQEAgLTI5Myw4ICsyNzIsNiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKElQQzo6RGF0YVJlZmVyZW5jZSYmIGRhdGEpCiAgICAgaWYgKCFt
X2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2Vi
SW5zcGVjdG9yKGRhdGEuZGF0YSgpLCBkYXRhLnNpemUoKSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZTo6T3BDb2RlQmluYXJ5KSk7Ci0KICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZUJpbmFyeURhdGEo
eyBkYXRhIH0pOwogfQogCkBAIC0zMDMsMTAgKzI4MCw2IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5l
bDo6ZGlkQ2xvc2UodW5zaWduZWQgc2hvcnQgY29kZSwgU3RyaW5nJiYgcmVhc29uKQogICAgIGlm
ICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIFdlYlNvY2tldEZyYW1lIGNsb3Np
bmdGcmFtZShXZWJTb2NrZXRGcmFtZTo6T3BDb2RlQ2xvc2UsIHRydWUsIGZhbHNlLCBmYWxzZSk7
Ci0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0
KCksIGNsb3NpbmdGcmFtZSk7Ci0gICAgbV9pbnNwZWN0b3IuZGlkQ2xvc2VXZWJTb2NrZXQobV9k
b2N1bWVudC5nZXQoKSk7Ci0KICAgICAvLyBBbiBhdHRlbXB0IHRvIHNlbmQgY2xvc2luZyBoYW5k
c2hha2UgbWF5IGZhaWwsIHdoaWNoIHdpbGwgZ2V0IHRoZSBjaGFubmVsIGNsb3NlZCBhbmQgZGVy
ZWZlcmVuY2VkLgogICAgIFJlZiBwcm90ZWN0ZWRUaGlzIHsgKnRoaXMgfTsKIApAQCAtMzM2LDcg
KzMwOSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihT
dHJpbmcmJiBlcnJvck1lc3NhZ2UpCiAgICAgICAgIHJldHVybjsKIAogICAgIGxvZ0Vycm9yTWVz
c2FnZShlcnJvck1lc3NhZ2UpOwotICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9y
KCk7CisgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoZXJyb3JNZXNzYWdlKTsK
IH0KIAogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpuZXR3b3JrUHJvY2Vzc0NyYXNoZWQoKQpAQCAt
MzU0LDEzICszMjcsMTMgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpyZXN1bWUoKQogCiB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0KFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QpCiB7Ci0gICAgbV9pbnNwZWN0b3Iud2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hh
a2VSZXF1ZXN0KG1fZG9jdW1lbnQuZ2V0KCksIHJlcXVlc3QpOworICAgIG1faW5zcGVjdG9yLndp
bGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChyZXF1ZXN0KTsKICAgICBtX2hhbmRzaGFr
ZVJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmRpZFJlY2VpdmVIYW5kc2hha2VSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNlJiYgcmVzcG9uc2Up
CiB7Ci0gICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNl
KG1fZG9jdW1lbnQuZ2V0KCksIHJlc3BvbnNlKTsKKyAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZl
V2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UocmVzcG9uc2UpOwogICAgIG1faGFuZHNoYWtlUmVz
cG9uc2UgPSBXVEZNb3ZlKHJlc3BvbnNlKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCmluZGV4IGJlOGU3NjkwMWRmYjQ1
Y2JmOWI0MTllZjljMDY0OTY5YzM4OWQzM2UuLjI3YzAyNzQ5NDZiODA0MDc1OWYwODcwMzZhMDRh
YTc5NWU5ZjcwNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3Jr
L1dlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29y
ay9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTk3LDYgKzk3LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IGRlY3JlYXNlQnVmZmVyZWRBbW91bnQoc2l6ZV90KTsKICAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBU
PiB2b2lkIHNlbmRNZXNzYWdlKFQmJiwgc2l6ZV90IGJ5dGVMZW5ndGgpOwogCisgICAgY29uc3Qg
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciogY2hhbm5lbEluc3BlY3RvcigpIGNv
bnN0IGZpbmFsIHsgcmV0dXJuICZtX2luc3BlY3RvcjsgfQogICAgIFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1faW5zcGVjdG9yLnByb2dyZXNzSWRlbnRpZmllcigpOyB9CiAgICAgYm9vbCBoYXNDcmVh
dGVkSGFuZHNoYWtlKCkgY29uc3QgZmluYWwgeyByZXR1cm4gIW1fdXJsLmlzTnVsbCgpOyB9CiAg
ICAgYm9vbCBpc0Nvbm5lY3RlZCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuICFtX2hhbmRzaGFrZVJl
c3BvbnNlLmlzTnVsbCgpOyB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453748</attachid>
            <date>2022-03-03 09:03:47 -0800</date>
            <delta_ts>2022-03-04 09:40:07 -0800</delta_ts>
            <desc>Patch v1.3</desc>
            <filename>bug-237280-20220303090346.patch</filename>
            <type>text/plain</type>
            <size>34871</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzc2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzlkODRkZDQ0MzcyZWMw
ZjQ5Y2JlODg3ZWIyYWQyNzQxNTE4MTdlOS4uZmU5MzA0Mzc3ZTcwZDg0N2Q3ODQzODQyYzAyY2Ez
ZDVkYTIzMjk5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIyLTAzLTAzICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0
NDcyKTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVj
dG9yL3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBDb3ZlcmVkIGJ5IGV4aXN0aW5n
IGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVjdG9yLyogdGVzdCBjYXNlcy4K
KworICAgICAgICBPbiBtYWNPUyBNb250ZXJleSB3ZSB1c2UgTlNVUkxTZXNzaW9uLWJhc2VkIFdl
YlNvY2tldHMgYnkgZGVmYXVsdCwgdW5saWtlIGVhcmxpZXIgdmVyc2lvbnMgb2YgbWFjT1MuIFRo
ZSBjaGFubmVsCisgICAgICAgIGZvciB0aGVzZSBzb2NrZXRzIGlzIGltcGxlbWVudGVkIGluIGBX
ZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgLiBUaGUgbm9uLU5TVVJMU2Vzc2lvbiBXZWJTb2NrZXRz
IGNoYW5uZWwgKGF0CisgICAgICAgIGxlYXN0IG9uIENvY29hIHBsYXRmb3JtcykgaXMgaW1wbGVt
ZW50ZWQgaW4gYFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxgLgorCisgICAgICAgIEFzIG9mIHIy
ODQ0NzIgdGhlIGxvZ2ljIHRvIGRlbGF5IHRoZSBkaXNwYXRjaCBvZiByZWNlaXZlZCBXZWJTb2Nr
ZXQgbWVzc2FnZSBvbiBwbGF0Zm9ybXMgdXNpbmcKKyAgICAgICAgTlNVUkxTZXNzaW9uLWJhc2Vk
IFdlYlNvY2tldHMgaXMgaGFuZGxlZCBieSBgV2ViQ29yZTo6V2ViU29ja2V0YCwgbm90IHRoZSBg
V2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsYC4KKyAgICAgICAgYFdlYktpdDo6V2ViU29ja2V0Q2hh
bm5lbGAgbm93IGltbWVkaWF0ZWx5IGRvZXMgdGhlIHdvcmsgaXQgbmVlZHMgdG8sIGFuZCBvbmx5
IHRoZSBkZWxlZ2F0ZWQgd29yayB0byBgV2ViU29ja2V0YAorICAgICAgICBpcyBxdWV1ZWQgYW5k
IHRha2VuIGNhcmUgb2Ygd2hlbiB0aGUgc29ja2V0IGhhcyByZXN1bWVkLiBUaGlzIHJlc3VsdGVk
IGluIHNvbWUgb2YgdGhlIGluc3RydW1lbnRhdGlvbiBpbgorICAgICAgICBgV2ViS2l0OjpXZWJT
b2NrZXRDaGFubmVsYCBiZWluZyBhYmxlIHRvIGJlIGNhbGxlZCB3aGlsZSB0aGUgc29ja2V0IHdh
cyBzdXNwZW5kZWQgbGVhZGluZyB0byBldmVudHMgYmVpbmcgbG9nZ2VkCisgICAgICAgIGluIHRo
ZSBmcm9udGVuZCAiaW4gdGhlIGZ1dHVyZSIgKGUuZy4gYmVmb3JlIHRoZSBwYXVzZWQgc2NyaXB0
IHdvdWxkIGhhdmUgYmVlbiBhYmxlIHRvIGJlIGF3YXJlIG9mIHRoZW0pLiBUbworICAgICAgICBj
b3JyZWN0IHRoaXMgdGhlIGBXZWJLaXQ6OldlYlNvY2tldENoYW5uZWxgIG5vdyBwcm92aWRlcyBh
IGhvb2sgaW50byBpdHMgaGVscGVyIGBXZWJJbnNwZWN0b3JDaGFubmVsSW5zcGVjdG9yYAorICAg
ICAgICBvYmplY3QgdG8gYWxsb3cgdGhlIGBXZWJDb3JlOjpXZWJTb2NrZXRgIHRvIG5vdGlmeSBX
ZWIgSW5zcGVjdG9yIG9mIGV2ZW50cyBhdCB0aGUgc2FtZSB0aW1lIGl0IGlzIGJlaW5nCisgICAg
ICAgIGxvZ2ljYWxseSBoYW5kbGVkIGJ5IHRoZSBwYWdlLgorCisgICAgICAgIE90aGVyIGBUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbGAgaW1wbGVtZW50YXRpb25zIHdpbGwgaW5zdGVhZCBwcm92
aWRlIGBudWxscHRyYCBpbiBwbGFjZSBvZiBhIHBvaW50ZXIgdG8gYQorICAgICAgICBgV2ViSW5z
cGVjdG9yQ2hhbm5lbEluc3BlY3RvcmAuIGBXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsYCB3YXMg
bm90IGFmZmVjdGVkIGJ5IHRoZSBjaGFuZ2VzIGluIHIyODQ0NzIgYXMgaXQgaGFzCisgICAgICAg
IGEgZGlmZmVyZW50IHdheSB0byBndWFyYW50ZWUgdGhhdCB0aGUgbWV0aG9kcyBjb250YWluaW5n
IEluc3BlY3Rvckluc3RydW1lbnRhdGlvbiB3ZXJlIG5vdCBjYWxsZWQgd2hpbGUgdGhlCisgICAg
ICAgIGNoYW5uZWwgd2FzIHN1c3BlbmRlZCAoYW5kIGVuZm9yY2VkIHdpdGggbnVtZXJvdXMgYEFT
U0VSVCghbV9zdXNwZW5kZWQpYCBjaGVja3MpLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmg6CisgICAgICAgIChXZWJDb3JlOjpUaHJl
YWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Y2hhbm5lbEluc3BlY3RvciBjb25zdCk6CisKKyAgICAg
ICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oOgorICAgICAg
ICAtIEFkZCBgcmVhc29uYCBmb3IgZXJyb3IgbWVzc2FnZXMgc28gdGhleSBjYW4gYmUgc2VudCB0
byBXZWIgSW5zcGVjdG9yLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlKToK
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEpOgorICAg
ICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkQ2xvc2UpOgorICAgICAgICAqIE1vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXQuaDoKKyAgICAgICAgLSBNb3ZlIGluc3BlY3RvciBpbnN0cnVtZW50
YXRpb24gY2FsbHMgZnJvbSBgV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsYCB0byBoZXJlIHNvIHRo
YXQgdGhleSBhcmUgbm90IGNhbGxlZCB1bnRpbAorICAgICAgICB0aGUgc29ja2V0IGlzIHJlc3Vt
ZWQuCisgICAgICAgIC0gV2UgYWxzbyBub3cgd3JhcCB0aGVzZSBpbnN0cnVtZW50YXRpb24gY2Fs
bHMgaW4gYW4gdW5saWtlbHkgY2hlY2sgZm9yIGZyb250ZW5kcyB0byBhdm9pZCBhbGxvY2F0aW5n
IHRoZSAKKyAgICAgICAgc2ltdWxhdGVkIGNhbGwgZnJhbWVzIHdoZW4gV2ViIEluc3BlY3RvciBp
c24ndCBldmVuIG9wZW4uCisgICAgICAgIAorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3I6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0IGNv
bnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OndpbGxT
ZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVz
cG9uc2UgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rv
cjo6ZGlkQ2xvc2VXZWJTb2NrZXQgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lIGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRXZWJTb2NrZXRG
cmFtZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9y
OjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvciBjb25zdCk6CisgICAgICAgIChXZWJDb3Jl
OjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZSk6CisgICAgICAgIChXZWJD
b3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRDcmVhdGVXZWJTb2NrZXQpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6d2lsbFNl
bmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6
OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VS
ZXNwb25zZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5z
cGVjdG9yOjpkaWRDbG9zZVdlYlNvY2tldCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpX
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkU2Vu
ZFdlYlNvY2tldEZyYW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKTogRGVsZXRlZC4K
KyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5o
OgorICAgICAgICAtIFVwZGF0ZSB0byBrZWVwIGEgV2Vha1JlZiB0byB0aGUgYERvY3VtZW50YCB0
byByZWR1Y2UgdGhlIGFtb3VudCBvZiBwbHVtYmluZyBuZWNlc3NhcnkgdG8gY2FsbCB0aGVzZSBt
ZXRob2RzCisgICAgICAgIGZyb20gYFdlYlNvY2tldGAuCisgICAgICAgIC0gTW92ZSBzdGF0aWMg
dXRpbGl0eSBtZXRob2QgYGNyZWF0ZUZyYW1lYCBoZXJlIGZyb20gYFdlYktpdDo6V2ViU29ja2V0
Q2hhbm5lbGAgc2luY2UgaXQgaXMgb25seSB1c2VkIGZvcgorICAgICAgICBpbnNwZWN0b3IgaW5z
dHJ1bWVudGF0aW9uLgorCisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVyOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKToKKyAg
ICAgICAgKFdlYkNvcmU6OldvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpCcmlkZ2U6
OmNvbm5lY3QpOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRh
YmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
VGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tl
dENoYW5uZWxDbGllbnRXcmFwcGVyLmg6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dl
YlNvY2tldENoYW5uZWwuY3BwOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6
ZmFpbCk6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpkaWRGYWlsU29ja2V0
U3RyZWFtKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5o
OgorICAgICAgICAtIFVwZGF0ZSB0aGVzZSBjbGFzc2VzIHRvIHBhc3MgYWxvbmcgYSByZWFzb24s
IGlmIGF2YWlsYWJsZSwgZm9yIGVycm9ycy4KKwogMjAyMi0wMy0wMyAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI5MDM1Ni1yMjkwMzUxPyk6
IFsgaU9TIEVXUyBdIDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvKiB0ZXN0cyBhcmUgY29uc3RhbnQgdGV4dCBmYWlsdXJlcy4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cKaW5kZXggOTc3MWQyMTFmNDAxMWM2NDdlZTg0ZDJjZWRkMTU0OWEwZmEyYmRjOC4uNmUz
NWM4Mzg4MDZmMTYzYmE2ZTI1OGEyZjdkZjcxMmE0NjBkMGJiMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyOSBAQAorMjAyMi0wMy0wMyAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CisK
KyAgICAgICAgUkVHUkVTU0lPTiAocjI4NDQ3Mik6IFsgTW9udGVyZXkgXSBodHRwL3Rlc3RzL3dl
YnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci9zZW5kLWFuZC1yZWNpZXZlLWRlYnVnZ2VyLmh0
bWwgaXMgZmFpbGluZworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM3MjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgTW92ZSBpbnNwZWN0b3IgaW5zdHJ1bWVudGF0aW9uIGZvciB0aGluZ3MgdGhhdCBzaG91
bGQgYmUgZGVsYXllZCB1bnRpbCB0aGUgd2Vic29ja2V0IGhhcyByZXN1bWVkIChpbiBnZW5lcmFs
LAorICAgICAgICB0aGVzZSBhcmUgaW5zdHJ1bWVudGF0aW9uIHBvaW50cyBmb3IgcmVjZWl2aW5n
IG1lc3NhZ2VzKSBpbnRvIFdlYkNvcmU6OldlYlNvY2tldCBzbyB0aGF0IHRoZXkgYXJlIHNlbnQg
YXQgdGhlCisgICAgICAgIGV4cGVjdGVkIHRpbWUgaW4gdGhlIGZyb250ZW5kLCBub3QgImluIHRo
ZSBmdXR1cmUiIHdoZW4gc2NyaXB0IGV4ZWN1dGlvbiBpcyBzdXNwZW5kZWQgKGUuZy4gd2hpbGUg
ZGVidWdnaW5nKS4KKworICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFu
bmVsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6bm90aWZ5U2VuZEZy
YW1lKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6Y29ubmVjdCk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmNsb3NlKToKKyAgICAgICAgKFdlYktpdDo6
V2ViU29ja2V0Q2hhbm5lbDo6ZmFpbCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5u
ZWw6OmRpc2Nvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRS
ZWNlaXZlVGV4dCk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFJlY2Vp
dmVCaW5hcnlEYXRhKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkQ2xv
c2UpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlTWVzc2Fn
ZUVycm9yKToKKyAgICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkU2VuZEhhbmRz
aGFrZVJlcXVlc3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNl
aXZlSGFuZHNoYWtlUmVzcG9uc2UpOgorICAgICAgICAoV2ViS2l0OjpjcmVhdGVXZWJTb2NrZXRG
cmFtZUZvcldlYkluc3BlY3Rvcik6IERlbGV0ZWQuCisgICAgICAgICogV2ViUHJvY2Vzcy9OZXR3
b3JrL1dlYlNvY2tldENoYW5uZWwuaDoKKwogMjAyMi0wMy0wMyAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04ocjI5MDM1Ni1yMjkwMzUxPyk6IFsg
aU9TIEVXUyBdIDMgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvKiB0ZXN0cyBhcmUgY29uc3RhbnQgdGV4dCBmYWlsdXJlcy4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKaW5kZXggMzBiNGIzNzE2MjE1YjgyYjgzNjY2ZDRlNWJj
NGFmMzk4M2IyZWE5ZC4uNzMxOThkNTAwODBkOThjMDY5OTk2NzM5OWE2NjFiMDA2YmY2MjZiMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVX
ZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRz
L1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgY2xhc3MgUmVz
b3VyY2VSZXNwb25zZTsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTb2Nr
ZXRQcm92aWRlcjsKIGNsYXNzIFdlYlNvY2tldENoYW5uZWw7CitjbGFzcyBXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbENsaWVudDsKIAogdXNpbmcgV2Vi
U29ja2V0Q2hhbm5lbElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVyPFdlYlNvY2tldENoYW5u
ZWw+OwpAQCAtODQsNiArODUsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB2b2lkIHN1c3BlbmQo
KSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHJlc3VtZSgpID0gMDsKIAorICAgIHZpcnR1YWwgY29u
c3QgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciogY2hhbm5lbEluc3BlY3RvcigpIGNvbnN0IHsg
cmV0dXJuIG51bGxwdHI7IH07CiAgICAgdmlydHVhbCBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmll
ciBwcm9ncmVzc0lkZW50aWZpZXIoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGhhc0Ny
ZWF0ZWRIYW5kc2hha2UoKSBjb25zdCA9IDA7CiAgICAgdmlydHVhbCBib29sIGlzQ29ubmVjdGVk
KCkgY29uc3QgPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGll
bnRXcmFwcGVyLmNwcAppbmRleCA3ODc4NzlmYTY4NzZhOTg0ODU1MWQxNmFkZTM4NWIyZTc0ZTFh
ZDcyLi5jMTYxYWY3Nzk0Yjc0ODI0NDRiODdmZDE5MWI1ZTFhYjA5NDA5ZDk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWxDbGllbnRXcmFwcGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcApAQCAtMjE3
LDExICsyMTcsMTEgQEAgdm9pZCBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXI6OmRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmUKICAgICAgICAgcHJvY2Vzc1Bl
bmRpbmdUYXNrcygpOwogfQogCi12b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50
V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpCit2b2lkIFRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJp
bmcmIHJlYXNvbikKIHsKLSAgICBtX3BlbmRpbmdUYXNrcy5hcHBlbmQobWFrZVVuaXF1ZTxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0OjpUYXNrPihbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJlZiB7ICp0
aGlzIH1dIChTY3JpcHRFeGVjdXRpb25Db250ZXh0JikgeworICAgIG1fcGVuZGluZ1Rhc2tzLmFw
cGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ6OlRhc2s+KFt0aGlzLCBwcm90
ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgcmVhc29uXSAoU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYpIHsKICAgICAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICAgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVz
c2FnZUVycm9yKHJlYXNvbik7CiAgICAgfSkpOwogCiAgICAgaWYgKCFtX3N1c3BlbmRlZCkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2Vi
U29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuaAppbmRleCA4
ZGExOGMwMDY3ZDBhNWFiN2U3YjQyNDEyZjZmNWRhMmMwMmVhYmRjLi42YWViYTUzZThmYzQyMzRl
ODMxZGUxZDdkNjk5MDA1NmI3ODE2YmNjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1
bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oCkBAIC03OSw3ICs3OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KTsKICAg
ICB2b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpOwogICAgIHZvaWQgZGlkQ2xvc2UodW5z
aWduZWQgdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQsIFdlYlNvY2tldENoYW5uZWxDbGllbnQ6OkNs
b3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25z
dCBTdHJpbmcmIHJlYXNvbik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7Cisg
ICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKTsKICAg
ICB2b2lkIGRpZFVwZ3JhZGVVUkwoKTsKIAogICAgIHZvaWQgc3VzcGVuZCgpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNwcAppbmRleCBjNTU4Nzky
MzIxNTVkNDU1YThlOTNiZDg2YmZmYmM4MWY0MDk1OTM5Li40NWY5YTViYmU0ZjM5ZTc3MDBkNWJk
NDQ4OWVjNWM1ZTJkYjIzYmVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0LmNwcApAQCAtNDMsNiArNDMsNyBAQAogI2luY2x1ZGUgIkZyYW1lLmgi
CiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5o
IgorI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgogI2luY2x1ZGUgIkxvZ2dp
bmcuaCIKICNpbmNsdWRlICJNZXNzYWdlRXZlbnQuaCIKICNpbmNsdWRlICJNaXhlZENvbnRlbnRD
aGVja2VyLmgiCkBAIC01NjUsNiArNTY2LDEzIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZl
TWVzc2FnZShjb25zdCBTdHJpbmcmIG1zZykKICAgICBxdWV1ZVRhc2tLZWVwaW5nT2JqZWN0QWxp
dmUoKnRoaXMsIFRhc2tTb3VyY2U6OldlYlNvY2tldCwgW3RoaXMsIG1zZ10gewogICAgICAgICBp
ZiAobV9zdGF0ZSAhPSBPUEVOKQogICAgICAgICAgICAgcmV0dXJuOworCisgICAgICAgIGlmIChV
TkxJS0VMWShJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKSkgeworICAg
ICAgICAgICAgaWYgKGF1dG8qIGluc3BlY3RvciA9IG1fY2hhbm5lbC0+Y2hhbm5lbEluc3BlY3Rv
cigpKSB7CisgICAgICAgICAgICAgICAgYXV0byB1dGY4TWVzc2FnZSA9IG1zZy51dGY4KCk7Cisg
ICAgICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoV2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUodXRmOE1lc3NhZ2UuZGF0YUFzVUludDhQ
dHIoKSwgdXRmOE1lc3NhZ2UubGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29k
ZVRleHQpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgICAgICBBU1NFUlQoc2NyaXB0
RXhlY3V0aW9uQ29udGV4dCgpKTsKICAgICAgICAgZGlzcGF0Y2hFdmVudChNZXNzYWdlRXZlbnQ6
OmNyZWF0ZShtc2csIFNlY3VyaXR5T3JpZ2luOjpjcmVhdGUobV91cmwpLT50b1N0cmluZygpKSk7
CiAgICAgfSk7CkBAIC01NzYsNiArNTg0LDEyIEBAIHZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZl
QmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJiBiaW5hcnlEYXRhKQogICAgIHF1ZXVlVGFza0tl
ZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgYmlu
YXJ5RGF0YSA9IFdURk1vdmUoYmluYXJ5RGF0YSldKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICht
X3N0YXRlICE9IE9QRU4pCiAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgaWYgKFVOTElL
RUxZKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkpKSB7CisgICAgICAg
ICAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9jaGFubmVsLT5jaGFubmVsSW5zcGVjdG9yKCkp
CisgICAgICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoV2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUoYmluYXJ5RGF0YS5kYXRhKCksIGJp
bmFyeURhdGEuc2l6ZSgpLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVCaW5hcnkpKTsK
KyAgICAgICAgfQorCiAgICAgICAgIHN3aXRjaCAobV9iaW5hcnlUeXBlKSB7CiAgICAgICAgIGNh
c2UgQmluYXJ5VHlwZTo6QmxvYjoKICAgICAgICAgICAgIC8vIEZJWE1FOiBXZSBqdXN0IHJlY2Vp
dmVkIHRoZSBkYXRhIGZyb20gTmV0d29ya1Byb2Nlc3MsIGFuZCBhcmUgc2VuZGluZyBpdCBiYWNr
LiBUaGlzIGlzIGluZWZmaWNpZW50LgpAQCAtNTg4LDE0ICs2MDIsMTggQEAgdm9pZCBXZWJTb2Nr
ZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGJpbmFyeURhdGEpCiAg
ICAgfSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkKK3Zv
aWQgV2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29u
KQogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0ICVwIGRpZFJlY2VpdmVFcnJvck1lc3Nh
Z2UoKSIsIHRoaXMpOwotICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RBbGl2ZSgqdGhpcywgVGFz
a1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpc10geworICAgIHF1ZXVlVGFza0tlZXBpbmdPYmplY3RB
bGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgcmVhc29uXSB7CiAgICAg
ICAgIGlmIChtX3N0YXRlID09IENMT1NFRCkKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAg
bV9zdGF0ZSA9IENMT1NFRDsKICAgICAgICAgQVNTRVJUKHNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KSk7CisKKyAgICAgICAgaWYgKGF1dG8qIGluc3BlY3RvciA9IG1fY2hhbm5lbC0+Y2hhbm5lbElu
c3BlY3RvcigpKQorICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRSZWNlaXZlV2ViU29ja2V0RnJh
bWVFcnJvcihyZWFzb24pOworCiAgICAgICAgIC8vIEZJWE1FOiBBcyBwZXIgaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2ViLXNvY2tldHMuaHRtbCNmZWVkYmFjay1mcm9t
LXRoZS1wcm90b2NvbDpjb25jZXB0LXdlYnNvY2tldC1jbG9zZWQsIHdlIHNob3VsZCBzeW5jaHJv
bm91c2x5IGZpcmUgYSBjbG9zZSBldmVudC4KICAgICAgICAgZGlzcGF0Y2hFcnJvckV2ZW50SWZO
ZWVkZWQoKTsKICAgICB9KTsKQEAgLTYyNiw2ICs2NDQsMTQgQEAgdm9pZCBXZWJTb2NrZXQ6OmRp
ZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFuZHNoYWtl
Q29tcGwKICAgICAgICAgaWYgKCFtX2NoYW5uZWwpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAg
ICAgICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRz
KCkpKSB7CisgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9jaGFubmVsLT5jaGFu
bmVsSW5zcGVjdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBXZWJTb2NrZXRGcmFtZSBjbG9zaW5n
RnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNsb3NlLCB0cnVlLCBmYWxzZSwgZmFsc2UpOwor
ICAgICAgICAgICAgICAgIGluc3BlY3Rvci0+ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKGNsb3Np
bmdGcmFtZSk7CisgICAgICAgICAgICAgICAgaW5zcGVjdG9yLT5kaWRDbG9zZVdlYlNvY2tldCgp
OworICAgICAgICAgICAgfQorICAgICAgICB9CisKICAgICAgICAgYm9vbCB3YXNDbGVhbiA9IG1f
c3RhdGUgPT0gQ0xPU0lORyAmJiAhdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQgJiYgY2xvc2luZ0hh
bmRzaGFrZUNvbXBsZXRpb24gPT0gQ2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRlICYmIGNvZGUgIT0g
V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVBYm5vcm1hbENsb3N1cmU7CiAgICAgICAg
IG1fc3RhdGUgPSBDTE9TRUQ7CiAgICAgICAgIG1fYnVmZmVyZWRBbW91bnQgPSB1bmhhbmRsZWRC
dWZmZXJlZEFtb3VudDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJT
b2NrZXQuaAppbmRleCBhYmUzZGE5NmY1ZjhkZjg0ZmVmNDU3MzVkNWM4MGJiYWMyMDRkNmZmLi4w
YzM2YTIzNjExMzdlMDg2NTg1YTAxN2I5YzZiMWY1ZTE3OGU2ZWU2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldC5oCkBAIC0xMTUsNyArMTE1LDcgQEAg
cHJpdmF0ZToKICAgICB2b2lkIGRpZENvbm5lY3QoKSBmaW5hbDsKICAgICB2b2lkIGRpZFJlY2Vp
dmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbWVzc2FnZSkgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNl
aXZlQmluYXJ5RGF0YShWZWN0b3I8dWludDhfdD4mJikgZmluYWw7Ci0gICAgdm9pZCBkaWRSZWNl
aXZlTWVzc2FnZUVycm9yKCkgZmluYWw7CisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9y
KGNvbnN0IFN0cmluZyYgcmVhc29uKSBmaW5hbDsKICAgICB2b2lkIGRpZFVwZGF0ZUJ1ZmZlcmVk
QW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KSBmaW5hbDsKICAgICB2b2lkIGRpZFN0YXJ0
Q2xvc2luZ0hhbmRzaGFrZSgpIGZpbmFsOwogICAgIHZvaWQgZGlkQ2xvc2UodW5zaWduZWQgdW5o
YW5kbGVkQnVmZmVyZWRBbW91bnQsIENsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uU3RhdHVzLCB1
bnNpZ25lZCBzaG9ydCBjb2RlLCBjb25zdCBTdHJpbmcmIHJlYXNvbikgZmluYWw7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKaW5kZXggMmY3YjgzMzdiMDRiNmY5ZTBjODEyNDg1MzAyMDhiNTI0N2JmYTQ3Yy4uZmFmMzZi
NDg5YjgwNzJmMTcyYzkzZTgwM2U0YWIzNjAwZGFmYjJiOSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMjM5
LDcgKzIzOSw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChjb25zdCBTdHJpbmcmIHJl
YXNvbikKICAgICBtX2hhc0NvbnRpbnVvdXNGcmFtZSA9IGZhbHNlOwogICAgIG1fY29udGludW91
c0ZyYW1lRGF0YS5jbGVhcigpOwogICAgIGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQt
PmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVN
ZXNzYWdlRXJyb3IocmVhc29uKTsKIAogICAgIGlmIChtX2hhbmRsZSAmJiAhbV9jbG9zZWQpCiAg
ICAgICAgIG1faGFuZGxlLT5kaXNjb25uZWN0KCk7IC8vIFdpbGwgY2FsbCBkaWRDbG9zZVNvY2tl
dFN0cmVhbSgpIGJ1dCBtYXliZSBub3Qgc3luY2hyb25vdXNseS4KQEAgLTM2NSwyMSArMzY1LDIz
IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbFNvY2tldFN0cmVhbShTb2NrZXRTdHJl
YW1IYW5kbGUmIGhhbmRsZSwgY29uc3QgU29jCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2Nr
ZXRDaGFubmVsICVwIGRpZEZhaWxTb2NrZXRTdHJlYW0oKSIsIHRoaXMpOwogICAgIEFTU0VSVCgm
aGFuZGxlID09IG1faGFuZGxlIHx8ICFtX2hhbmRsZSk7CisKKyAgICBTdHJpbmcgbWVzc2FnZTsK
KyAgICBpZiAoZXJyb3IuaXNOdWxsKCkpCisgICAgICAgIG1lc3NhZ2UgPSAiV2ViU29ja2V0IG5l
dHdvcmsgZXJyb3IiX3M7CisgICAgZWxzZSBpZiAoZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24o
KS5pc051bGwoKSkKKyAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIldlYlNvY2tldCBuZXR3
b3JrIGVycm9yOiBlcnJvciBjb2RlICIsIGVycm9yLmVycm9yQ29kZSgpKTsKKyAgICBlbHNlCisg
ICAgICAgIG1lc3NhZ2UgPSAiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6ICIgKyBlcnJvci5sb2Nh
bGl6ZWREZXNjcmlwdGlvbigpOworCiAgICAgaWYgKG1fZG9jdW1lbnQpIHsKLSAgICAgICAgU3Ry
aW5nIG1lc3NhZ2U7Ci0gICAgICAgIGlmIChlcnJvci5pc051bGwoKSkKLSAgICAgICAgICAgIG1l
c3NhZ2UgPSAiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3IiX3M7Ci0gICAgICAgIGVsc2UgaWYgKGVy
cm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkuaXNOdWxsKCkpCi0gICAgICAgICAgICBtZXNzYWdl
ID0gbWFrZVN0cmluZygiV2ViU29ja2V0IG5ldHdvcmsgZXJyb3I6IGVycm9yIGNvZGUgIiwgZXJy
b3IuZXJyb3JDb2RlKCkpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBtZXNzYWdlID0gIldl
YlNvY2tldCBuZXR3b3JrIGVycm9yOiAiICsgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKTsK
ICAgICAgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJh
bWVFcnJvcihtX2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgbWVzc2FnZSk7
CiAgICAgICAgIG1fZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6Ok5l
dHdvcmssIE1lc3NhZ2VMZXZlbDo6RXJyb3IsIG1lc3NhZ2UpOwogICAgICAgICBMT0dfRVJST1Io
IiVzIiwgbWVzc2FnZS51dGY4KCkuZGF0YSgpKTsKICAgICB9CiAgICAgbV9zaG91bGREaXNjYXJk
UmVjZWl2ZWREYXRhID0gdHJ1ZTsKICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50
LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZl
TWVzc2FnZUVycm9yKG1lc3NhZ2UpOwogICAgIGhhbmRsZS5kaXNjb25uZWN0KCk7CiB9CiAKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5l
bC5oCmluZGV4IGM5MjZiNDFmYTRkYTI1OWNiMjU3YzBjOTVkOGVkMWEyNDVmNzYzZmQuLjUyMjVi
YzllYzQ2YzU4MmE1ODYzZDQ4M2FkMDViMWE5NzI2YzdlNGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaApAQCAtMzUsNiAr
MzUsNyBAQAogI2luY2x1ZGUgIlNvY2tldFN0cmVhbUhhbmRsZUNsaWVudC5oIgogI2luY2x1ZGUg
IlRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgiCiAjaW5jbHVkZSAiVGltZXIuaCIKKyNpbmNs
dWRlICJXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0RGVm
bGF0ZUZyYW1lci5oIgogI2luY2x1ZGUgIldlYlNvY2tldEZyYW1lLmgiCiAjaW5jbHVkZSAiV2Vi
U29ja2V0SGFuZHNoYWtlLmgiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaAppbmRleCA4NDAxYjVjNjYxYzM1
NTFkYTc5ZmYxMWZkNzNmOWRiMTg4OTFiN2IxLi43ZjcxMzFjYTE5ZTc4YzBjNzRhYTQ5Nzg5NDUw
YjYxNjUzN2JkMGZjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbENsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsQ2xpZW50LmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVi
bGljOgogICAgIHZpcnR1YWwgdm9pZCBkaWRDb25uZWN0KCkgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJpbmcmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRpZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmKSA9IDA7Ci0gICAgdmlydHVh
bCB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGRp
ZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9p
ZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBidWZmZXJlZEFtb3VudCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSA9IDA7CiAgICAgZW51
bSBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cyB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3Rvci5jcHAKaW5kZXggY2E3Njg3MDk1ZDRmODgwOTY0ZDMzNWMxMzZiYWI2MDI2MDE5OWEyYy4u
Y2Y3MTkyNmY0MzAzOWY0NGZkNzIwYTViYTY5MjQ4ZTlhYjAzNTg4YSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3Iu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yLmNwcApAQCAtMzAsNjYgKzMwLDcwIEBACiAjaW5jbHVkZSAiSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVkZSAiUGFnZS5oIgogI2luY2x1ZGUgIlByb2dyZXNz
VHJhY2tlci5oIgorI2luY2x1ZGUgIldlYlNvY2tldEZyYW1lLmgiCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6V2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3RvcihEb2N1bWVudCYpCi0gICAgOiBtX3Byb2dyZXNzSWRlbnRpZmllcihXZWJTb2NrZXRDaGFu
bmVsSWRlbnRpZmllcjo6Z2VuZXJhdGVUaHJlYWRTYWZlKCkpIHsgfQorV2ViU29ja2V0Q2hhbm5l
bEluc3BlY3Rvcjo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcihEb2N1bWVudCYgZG9jdW1lbnQp
CisgICAgOiBtX2RvY3VtZW50KGRvY3VtZW50KQorICAgICwgbV9wcm9ncmVzc0lkZW50aWZpZXIo
V2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXI6OmdlbmVyYXRlVGhyZWFkU2FmZSgpKQoreworfQog
Ci12b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldChEb2N1
bWVudCogZG9jdW1lbnQsIGNvbnN0IFVSTCYgdXJsKQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5z
cGVjdG9yOjpkaWRDcmVhdGVXZWJTb2NrZXQoY29uc3QgVVJMJiB1cmwpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dy
ZXNzSWRlbnRpZmllciB8fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRDcmVhdGVXZWJTb2NrZXQoZG9jdW1lbnQsIG1fcHJv
Z3Jlc3NJZGVudGlmaWVyLCB1cmwpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlk
Q3JlYXRlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCB1
cmwpOwogfQogCi12b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OndpbGxTZW5kV2ViU29j
a2V0SGFuZHNoYWtlUmVxdWVzdChEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFJlc291cmNlUmVx
dWVzdCYgcmVxdWVzdCkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6d2lsbFNlbmRX
ZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KGNvbnN0IFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkg
Y29uc3QKIHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAg
ICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICByZXR1
cm47CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFu
ZHNoYWtlUmVxdWVzdChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHJlcXVlc3QpOwor
ICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6d2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VS
ZXF1ZXN0KG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCByZXF1ZXN0KTsK
IH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0
SGFuZHNoYWtlUmVzcG9uc2UoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2
ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3Bv
bnNlKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3VtZW50
KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQpCiAgICAgICAg
IHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNv
Y2tldEhhbmRzaGFrZVJlc3BvbnNlKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVz
cG9uc2UpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tl
dEhhbmRzaGFrZVJlc3BvbnNlKG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVy
LCByZXNwb25zZSk7CiB9CiAKLXZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ2xv
c2VXZWJTb2NrZXQoRG9jdW1lbnQqIGRvY3VtZW50KQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5z
cGVjdG9yOjpkaWRDbG9zZVdlYlNvY2tldCgpIGNvbnN0CiB7Ci0gICAgaWYgKCFtX3Byb2dyZXNz
SWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8
fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9ySW5zdHJ1bWVu
dGF0aW9uOjpkaWRDbG9zZVdlYlNvY2tldChkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIp
OworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJTb2NrZXQobV9kb2N1
bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShEb2N1bWVudCogZG9jdW1l
bnQsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbElu
c3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKGNvbnN0IFdlYlNvY2tldEZyYW1lJiBm
cmFtZSkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVu
dCkKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJT
b2NrZXRGcmFtZShkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIGZyYW1lKTsKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShtX2RvY3Vt
ZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZnJhbWUpOwogfQogCi12b2lkIFdlYlNv
Y2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShEb2N1bWVudCogZG9j
dW1lbnQsIGNvbnN0IFdlYlNvY2tldEZyYW1lJiBmcmFtZSkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5l
bEluc3BlY3Rvcjo6ZGlkU2VuZFdlYlNvY2tldEZyYW1lKGNvbnN0IFdlYlNvY2tldEZyYW1lJiBm
cmFtZSkgY29uc3QKIHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVu
dCkKKyAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAg
ICByZXR1cm47CiAKLSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2Nr
ZXRGcmFtZShkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIGZyYW1lKTsKKyAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFNlbmRXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50Lmdl
dCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZnJhbWUpOwogfQogCi12b2lkIFdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKERvY3VtZW50KiBk
b2N1bWVudCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2UpCit2b2lkIFdlYlNvY2tldENoYW5u
ZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKGNvbnN0IFN0cmluZyYg
ZXJyb3JNZXNzYWdlKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwg
IWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQp
CiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVj
ZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IoZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBl
cnJvck1lc3NhZ2UpOworICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lRXJyb3IobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIs
IGVycm9yTWVzc2FnZSk7CiB9CiAKIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIFdlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3I6OnByb2dyZXNzSWRlbnRpZmllcigpIGNvbnN0CkBAIC05Nyw0ICsx
MDEsMjIgQEAgV2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIgV2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3Rvcjo6cHJvZ3Jlc3NJZGVudGlmaWVyKCkgY29uc3QKICAgICByZXR1cm4gbV9wcm9ncmVzc0lk
ZW50aWZpZXI7CiB9CiAKK1dlYlNvY2tldEZyYW1lIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6
OmNyZWF0ZUZyYW1lKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgsIFdlYlNvY2tl
dEZyYW1lOjpPcENvZGUgb3BDb2RlKQoreworICAgIC8vIFRoaXMgaXMgYW4gYXBwcm94aW1hdGlv
biBzaW5jZSBmcmFtZXMgY2FuIGJlIG1lcmdlZCBvbiBhIHNpbmdsZSBtZXNzYWdlLgorICAgIFdl
YlNvY2tldEZyYW1lIGZyYW1lOworICAgIGZyYW1lLm9wQ29kZSA9IG9wQ29kZTsKKyAgICBmcmFt
ZS5tYXNrZWQgPSBmYWxzZTsKKyAgICBmcmFtZS5wYXlsb2FkID0gZGF0YTsKKyAgICBmcmFtZS5w
YXlsb2FkTGVuZ3RoID0gbGVuZ3RoOworCisgICAgLy8gV2ViSW5zcGVjdG9yIGRvZXMgbm90IHVz
ZSB0aGVtLgorICAgIGZyYW1lLmZpbmFsID0gZmFsc2U7CisgICAgZnJhbWUuY29tcHJlc3MgPSBm
YWxzZTsKKyAgICBmcmFtZS5yZXNlcnZlZDIgPSBmYWxzZTsKKyAgICBmcmFtZS5yZXNlcnZlZDMg
PSBmYWxzZTsKKworICAgIHJldHVybiBmcmFtZTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9X
ZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgKaW5kZXggZDAzNmM1MjdhNDQ3MjhlMzNhNTQzZDVk
Yzk0NTA5OWFmYmE1ZGUwNy4uYmI1MTc5Y2QyZGM5NmU5NWYxMzIzNzlhM2Q2ZTJmMDg3NzczODYz
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5oCkBAIC0yNSw2ICsyNSw3IEBACiAKICNwcmFn
bWEgb25jZQogCisjaW5jbHVkZSAiV2ViU29ja2V0RnJhbWUuaCIKICNpbmNsdWRlIDx3dGYvRm9y
d2FyZC5oPgogI2luY2x1ZGUgPHd0Zi9PYmplY3RJZGVudGlmaWVyLmg+CiAKQEAgLTM1LDcgKzM2
LDYgQEAgY2xhc3MgUmVzb3VyY2VSZXF1ZXN0OwogY2xhc3MgUmVzb3VyY2VSZXNwb25zZTsKIGNs
YXNzIFdlYlNvY2tldENoYW5uZWw7CiBjbGFzcyBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOwot
c3RydWN0IFdlYlNvY2tldEZyYW1lOwogCiB1c2luZyBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmll
ciA9IE9iamVjdElkZW50aWZpZXI8V2ViU29ja2V0Q2hhbm5lbD47CiAKQEAgLTQzLDE3ICs0Mywy
MCBAQCBjbGFzcyBXRUJDT1JFX0VYUE9SVCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yIHsKIHB1
YmxpYzoKICAgICBleHBsaWNpdCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKERvY3VtZW50Jik7
CiAKLSAgICB2b2lkIGRpZENyZWF0ZVdlYlNvY2tldChEb2N1bWVudCosIGNvbnN0IFVSTCYpOwot
ICAgIHZvaWQgd2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1ZXN0KERvY3VtZW50KiwgY29u
c3QgUmVzb3VyY2VSZXF1ZXN0Jik7Ci0gICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNo
YWtlUmVzcG9uc2UoRG9jdW1lbnQqLCBjb25zdCBSZXNvdXJjZVJlc3BvbnNlJik7Ci0gICAgdm9p
ZCBkaWRDbG9zZVdlYlNvY2tldChEb2N1bWVudCopOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNv
Y2tldEZyYW1lKERvY3VtZW50KiwgY29uc3QgV2ViU29ja2V0RnJhbWUmKTsKLSAgICB2b2lkIGRp
ZFNlbmRXZWJTb2NrZXRGcmFtZShEb2N1bWVudCosIGNvbnN0IFdlYlNvY2tldEZyYW1lJik7Ci0g
ICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihEb2N1bWVudCosIGNvbnN0IFN0
cmluZyYgZXJyb3JNZXNzYWdlKTsKKyAgICB2b2lkIGRpZENyZWF0ZVdlYlNvY2tldChjb25zdCBV
UkwmKSBjb25zdDsKKyAgICB2b2lkIHdpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChj
b25zdCBSZXNvdXJjZVJlcXVlc3QmKSBjb25zdDsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2Nr
ZXRIYW5kc2hha2VSZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJikgY29uc3Q7CisgICAg
dm9pZCBkaWRDbG9zZVdlYlNvY2tldCgpIGNvbnN0OworICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNv
Y2tldEZyYW1lKGNvbnN0IFdlYlNvY2tldEZyYW1lJikgY29uc3Q7CisgICAgdm9pZCBkaWRTZW5k
V2ViU29ja2V0RnJhbWUoY29uc3QgV2ViU29ja2V0RnJhbWUmKSBjb25zdDsKKyAgICB2b2lkIGRp
ZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKSBj
b25zdDsKICAgICAKICAgICBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciBwcm9ncmVzc0lkZW50
aWZpZXIoKSBjb25zdDsKIAorICAgIHN0YXRpYyBXZWJTb2NrZXRGcmFtZSBjcmVhdGVGcmFtZShj
b25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2Rl
KTsKKwogcHJpdmF0ZToKKyAgICBXZWFrUHRyPERvY3VtZW50PiBtX2RvY3VtZW50OwogICAgIFdl
YlNvY2tldENoYW5uZWxJZGVudGlmaWVyIG1fcHJvZ3Jlc3NJZGVudGlmaWVyOwogfTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFi
bGVXZWJTb2NrZXRDaGFubmVsLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5jcHAKaW5kZXggOWZiYzk0ZTdjZWY2
M2Q3NDFiMzFkYWMyZWI3OGRhN2RiNTAxNTZhMi4uNDEwODFmYmQ1M2Y4YTc4MDJjMDA4YjcxOTll
ZDY4YTllY2Y2YmFkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
Y3BwCkBAIC0zMjMsMTMgKzMyMywxMyBAQCB2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRD
aGFubmVsOjpQZWVyOjpkaWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZAogICAgIH0s
IG1fdGFza01vZGUpOwogfQogCi12b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVs
OjpQZWVyOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkKK3ZvaWQgV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWw6OlBlZXI6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5n
JiByZWFzb24pCiB7CiAgICAgQVNTRVJUKGlzTWFpblRocmVhZCgpKTsKIAotICAgIG1fbG9hZGVy
UHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRHbG9iYWxTY29wZShbd29ya2Vy
Q2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlcl0oU2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCYgY29udGV4dCkgbXV0YWJsZSB7CisgICAgbV9sb2FkZXJQcm94eS5wb3N0VGFza0Zvck1v
ZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt3b3JrZXJDbGllbnRXcmFwcGVyID0gbV93
b3JrZXJDbGllbnRXcmFwcGVyLCByZWFzb25dKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRl
eHQpIG11dGFibGUgewogICAgICAgICBBU1NFUlRfVU5VU0VEKGNvbnRleHQsIGNvbnRleHQuaXNX
b3JrZXJHbG9iYWxTY29wZSgpIHx8IGNvbnRleHQuaXNXb3JrbGV0R2xvYmFsU2NvcGUoKSk7Ci0g
ICAgICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAg
ICAgICAgd29ya2VyQ2xpZW50V3JhcHBlci0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihyZWFzb24p
OwogICAgIH0sIG1fdGFza01vZGUpOwogfQogCkBAIC00MjAsNyArNDIwLDcgQEAgdm9pZCBXb3Jr
ZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpjb25uZWN0KGNvbnN0IFVSTCYg
dXJsLCBjb25zdCBTdHIKICAgICAgICAgfQogCiAgICAgICAgIGlmIChwZWVyLT5jb25uZWN0KHVy
bCwgcHJvdG9jb2wpID09IFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpDb25uZWN0U3RhdHVz
OjpLTykKLSAgICAgICAgICAgIHBlZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICAg
ICAgICAgIHBlZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IobnVsbFN0cmluZygpKTsKICAgICB9
KTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dv
cmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAppbmRleCA2YWM5
M2ZjZGRiZmMwMWEwYTcxZGVhMzk2YjFmYTk3ODM4MTc4Mzg5Li4xMWRmMDYxNzIyY2QwNjdiZTli
MTEwY2NmNzY1MDdkYmYwNDY3ZmIyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaApAQCAtOTQsNyArOTQsNyBAQCBwdWJsaWM6CiAgICAgICAgIHZvaWQgZGlkVXBkYXRl
QnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpIGZpbmFsOwogICAgICAgICB2
b2lkIGRpZFN0YXJ0Q2xvc2luZ0hhbmRzaGFrZSgpIGZpbmFsOwogICAgICAgICB2b2lkIGRpZENs
b3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50LCBDbG9zaW5nSGFuZHNoYWtlQ29t
cGxldGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwgY29uc3QgU3RyaW5nJiByZWFzb24p
IGZpbmFsOwotICAgICAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKSBmaW5hbDsKKyAg
ICAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKSBm
aW5hbDsKICAgICAgICAgdm9pZCBkaWRVcGdyYWRlVVJMKCkgZmluYWw7CiAKICAgICBwcml2YXRl
OgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0
Q2hhbm5lbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRD
aGFubmVsLmNwcAppbmRleCA1YTc1ZjM2NjhiMmRiNTVkMzNlZmIzZTE2YTNjMDU1M2Y2NWJkNjNk
Li40M2U0YzBlMWMzZWU1ZjkwNWZmNmE0NjZhYTk4NDM3YmVjMGM3ODNmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmNwcApA
QCAtNTEsNyArNTEsNyBAQCBSZWY8V2ViU29ja2V0Q2hhbm5lbD4gV2ViU29ja2V0Q2hhbm5lbDo6
Y3JlYXRlKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVBybwogdm9pZCBXZWJTb2NrZXRD
aGFubmVsOjpub3RpZnlTZW5kRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSBvcENvZGUsIGNv
bnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgpCiB7CiAgICAgV2ViU29ja2V0RnJhbWUg
ZnJhbWUob3BDb2RlLCB0cnVlLCBmYWxzZSwgdHJ1ZSwgZGF0YSwgbGVuZ3RoKTsKLSAgICBtX2lu
c3BlY3Rvci5kaWRTZW5kV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgZnJhbWUpOwor
ICAgIG1faW5zcGVjdG9yLmRpZFNlbmRXZWJTb2NrZXRGcmFtZShmcmFtZSk7CiB9CiAKIE5ldHdv
cmtTZW5kUXVldWUgV2ViU29ja2V0Q2hhbm5lbDo6Y3JlYXRlTWVzc2FnZVF1ZXVlKERvY3VtZW50
JiBkb2N1bWVudCwgV2ViU29ja2V0Q2hhbm5lbCYgY2hhbm5lbCkKQEAgLTExNiw3ICsxMTYsNyBA
QCBXZWJTb2NrZXRDaGFubmVsOjpDb25uZWN0U3RhdHVzIFdlYlNvY2tldENoYW5uZWw6OmNvbm5l
Y3QoY29uc3QgVVJMJiB1cmwsIGNvbnN0CiAgICAgaWYgKHJlcXVlc3QtPnVybCgpICE9IHVybCAm
JiBtX2NsaWVudCkKICAgICAgICAgbV9jbGllbnQtPmRpZFVwZ3JhZGVVUkwoKTsKIAotICAgIG1f
aW5zcGVjdG9yLmRpZENyZWF0ZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpLCB1cmwpOworICAg
IG1faW5zcGVjdG9yLmRpZENyZWF0ZVdlYlNvY2tldCh1cmwpOwogICAgIG1fdXJsID0gcmVxdWVz
dC0+dXJsKCk7CiAgICAgTWVzc2FnZVNlbmRlcjo6c2VuZChNZXNzYWdlczo6TmV0d29ya0Nvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OkNyZWF0ZVNvY2tldENoYW5uZWwgeyAqcmVxdWVzdCwgcHJvdG9j
b2wsIG1faWRlbnRpZmllciwgbV93ZWJQYWdlUHJveHlJRCwgbV9kb2N1bWVudC0+Y2xpZW50T3Jp
Z2luKCksIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmhhZE1haW5GcmFtZU1haW5SZXNvdXJjZVBy
aXZhdGVSZWxheWVkKCkgfSk7CiAgICAgcmV0dXJuIENvbm5lY3RTdGF0dXM6Ok9LOwpAQCAtMjA4
LDcgKzIwOCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6Y2xvc2UoaW50IGNvZGUsIGNvbnN0
IFN0cmluZyYgcmVhc29uKQogICAgIEFTU0VSVChjb2RlID49IDAgfHwgY29kZSA9PSBXZWJDb3Jl
OjpXZWJTb2NrZXRDaGFubmVsOjpDbG9zZUV2ZW50Q29kZU5vdFNwZWNpZmllZCk7CiAKICAgICBX
ZWJTb2NrZXRGcmFtZSBjbG9zaW5nRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNsb3NlLCB0
cnVlLCBmYWxzZSwgdHJ1ZSk7Ci0gICAgbV9pbnNwZWN0b3IuZGlkU2VuZFdlYlNvY2tldEZyYW1l
KG1fZG9jdW1lbnQuZ2V0KCksIGNsb3NpbmdGcmFtZSk7CisgICAgbV9pbnNwZWN0b3IuZGlkU2Vu
ZFdlYlNvY2tldEZyYW1lKGNsb3NpbmdGcmFtZSk7CiAKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5k
KE1lc3NhZ2VzOjpOZXR3b3JrU29ja2V0Q2hhbm5lbDo6Q2xvc2UgeyBjb2RlLCByZWFzb24gfSk7
CiB9CkBAIC0yMjAsNyArMjIwLDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpmYWlsKGNvbnN0
IFN0cmluZyYgcmVhc29uKQogCiAgICAgbG9nRXJyb3JNZXNzYWdlKHJlYXNvbik7CiAgICAgaWYg
KG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOwor
ICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihyZWFzb24pOwogCiAgICAg
aWYgKG1faXNDbG9zaW5nKQogICAgICAgICByZXR1cm47CkBAIC0yMzUsNyArMjM1LDcgQEAgdm9p
ZCBXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KCkKICAgICBtX2RvY3VtZW50ID0gbnVsbHB0
cjsKICAgICBtX21lc3NhZ2VRdWV1ZS5jbGVhcigpOwogCi0gICAgbV9pbnNwZWN0b3IuZGlkQ2xv
c2VXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSk7CisgICAgbV9pbnNwZWN0b3IuZGlkQ2xvc2VX
ZWJTb2NrZXQoKTsKIAogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtT
b2NrZXRDaGFubmVsOjpDbG9zZSB7IFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OkNsb3NlRXZl
bnRDb2RlR29pbmdBd2F5LCB7IH0gfSk7CiB9CkBAIC0yNTMsMjQgKzI1Myw2IEBAIHZvaWQgV2Vi
U29ja2V0Q2hhbm5lbDo6ZGlkQ29ubmVjdChTdHJpbmcmJiBzdWJwcm90b2NvbCwgU3RyaW5nJiYg
ZXh0ZW5zaW9ucykKICAgICBtX2NsaWVudC0+ZGlkQ29ubmVjdCgpOwogfQogCi1zdGF0aWMgaW5s
aW5lIFdlYlNvY2tldEZyYW1lIGNyZWF0ZVdlYlNvY2tldEZyYW1lRm9yV2ViSW5zcGVjdG9yKGNv
bnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBsZW5ndGgsIFdlYlNvY2tldEZyYW1lOjpPcENvZGUg
b3BDb2RlKQotewotICAgIC8vIFRoaXMgaXMgYW4gYXBwcm94aW1hdGlvbiBzaW5jZSBmcmFtZXMg
Y2FuIGJlIG1lcmdlZCBvbiBhIHNpbmdsZSBtZXNzYWdlLgotICAgIFdlYlNvY2tldEZyYW1lIGZy
YW1lOwotICAgIGZyYW1lLm9wQ29kZSA9IG9wQ29kZTsKLSAgICBmcmFtZS5tYXNrZWQgPSBmYWxz
ZTsKLSAgICBmcmFtZS5wYXlsb2FkID0gZGF0YTsKLSAgICBmcmFtZS5wYXlsb2FkTGVuZ3RoID0g
bGVuZ3RoOwotCi0gICAgLy8gV2ViSW5zcGVjdG9yIGRvZXMgbm90IHVzZSB0aGVtLgotICAgIGZy
YW1lLmZpbmFsID0gZmFsc2U7Ci0gICAgZnJhbWUuY29tcHJlc3MgPSBmYWxzZTsKLSAgICBmcmFt
ZS5yZXNlcnZlZDIgPSBmYWxzZTsKLSAgICBmcmFtZS5yZXNlcnZlZDMgPSBmYWxzZTsKLQotICAg
IHJldHVybiBmcmFtZTsKLX0KLQogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4
dChTdHJpbmcmJiBtZXNzYWdlKQogewogICAgIGlmIChtX2lzQ2xvc2luZykKQEAgLTI3OSw5ICsy
NjEsNiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZFJlY2VpdmVUZXh0KFN0cmluZyYmIG1l
c3NhZ2UpCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byB1
dGY4TWVzc2FnZSA9IG1lc3NhZ2UudXRmOCgpOwotICAgIG1faW5zcGVjdG9yLmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBjcmVhdGVXZWJTb2NrZXRGcmFtZUZvcldl
Ykluc3BlY3Rvcih1dGY4TWVzc2FnZS5kYXRhQXNVSW50OFB0cigpLCB1dGY4TWVzc2FnZS5sZW5n
dGgoKSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZTo6T3BDb2RlVGV4dCkpOwotCiAgICAgbV9jbGll
bnQtPmRpZFJlY2VpdmVNZXNzYWdlKG1lc3NhZ2UpOwogfQogCkBAIC0yOTMsOCArMjcyLDYgQEAg
dm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlQmluYXJ5RGF0YShJUEM6OkRhdGFSZWZl
cmVuY2UmJiBkYXRhKQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAg
IG1faW5zcGVjdG9yLmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBj
cmVhdGVXZWJTb2NrZXRGcmFtZUZvcldlYkluc3BlY3RvcihkYXRhLmRhdGEoKSwgZGF0YS5zaXpl
KCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZUJpbmFyeSkpOwotCiAgICAgbV9jbGll
bnQtPmRpZFJlY2VpdmVCaW5hcnlEYXRhKHsgZGF0YSB9KTsKIH0KIApAQCAtMzAzLDEwICsyODAs
NiBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKHVuc2lnbmVkIHNob3J0IGNvZGUs
IFN0cmluZyYmIHJlYXNvbikKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBXZWJTb2NrZXRGcmFtZSBjbG9zaW5nRnJhbWUoV2ViU29ja2V0RnJhbWU6Ok9wQ29kZUNs
b3NlLCB0cnVlLCBmYWxzZSwgZmFsc2UpOwotICAgIG1faW5zcGVjdG9yLmRpZFJlY2VpdmVXZWJT
b2NrZXRGcmFtZShtX2RvY3VtZW50LmdldCgpLCBjbG9zaW5nRnJhbWUpOwotICAgIG1faW5zcGVj
dG9yLmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCkpOwotCiAgICAgLy8gQW4gYXR0
ZW1wdCB0byBzZW5kIGNsb3NpbmcgaGFuZHNoYWtlIG1heSBmYWlsLCB3aGljaCB3aWxsIGdldCB0
aGUgY2hhbm5lbCBjbG9zZWQgYW5kIGRlcmVmZXJlbmNlZC4KICAgICBSZWYgcHJvdGVjdGVkVGhp
cyB7ICp0aGlzIH07CiAKQEAgLTMzNiw3ICszMDksNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6
OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoU3RyaW5nJiYgZXJyb3JNZXNzYWdlKQogICAgICAgICBy
ZXR1cm47CiAKICAgICBsb2dFcnJvck1lc3NhZ2UoZXJyb3JNZXNzYWdlKTsKLSAgICBtX2NsaWVu
dC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVz
c2FnZUVycm9yKGVycm9yTWVzc2FnZSk7CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6bmV0
d29ya1Byb2Nlc3NDcmFzaGVkKCkKQEAgLTM1NCwxMyArMzI3LDEzIEBAIHZvaWQgV2ViU29ja2V0
Q2hhbm5lbDo6cmVzdW1lKCkKIAogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRTZW5kSGFuZHNo
YWtlUmVxdWVzdChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0KQogewotICAgIG1faW5zcGVjdG9y
LndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChtX2RvY3VtZW50LmdldCgpLCByZXF1
ZXN0KTsKKyAgICBtX2luc3BlY3Rvci53aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qo
cmVxdWVzdCk7CiAgICAgbV9oYW5kc2hha2VSZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KTsKIH0K
IAogdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlSGFuZHNoYWtlUmVzcG9uc2UoUmVz
b3VyY2VSZXNwb25zZSYmIHJlc3BvbnNlKQogewotICAgIG1faW5zcGVjdG9yLmRpZFJlY2VpdmVX
ZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShtX2RvY3VtZW50LmdldCgpLCByZXNwb25zZSk7Cisg
ICAgbV9pbnNwZWN0b3IuZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKHJlc3Bv
bnNlKTsKICAgICBtX2hhbmRzaGFrZVJlc3BvbnNlID0gV1RGTW92ZShyZXNwb25zZSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENo
YW5uZWwuaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5u
ZWwuaAppbmRleCBiZThlNzY5MDFkZmI0NWNiZjliNDE5ZWY5YzA2NDk2OWMzODlkMzNlLi4yN2Mw
Mjc0OTQ2YjgwNDA3NTlmMDg3MDM2YTA0YWE3OTVlOWY3MDYxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVsLmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCkBAIC05Nyw2ICs5
Nyw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBkZWNyZWFzZUJ1ZmZlcmVkQW1vdW50KHNpemVfdCk7
CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCBzZW5kTWVzc2FnZShUJiYsIHNpemVfdCBi
eXRlTGVuZ3RoKTsKIAorICAgIGNvbnN0IFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0
b3IqIGNoYW5uZWxJbnNwZWN0b3IoKSBjb25zdCBmaW5hbCB7IHJldHVybiAmbV9pbnNwZWN0b3I7
IH0KICAgICBXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciBwcm9ncmVzc0lkZW50
aWZpZXIoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2luc3BlY3Rvci5wcm9ncmVzc0lkZW50aWZp
ZXIoKTsgfQogICAgIGJvb2wgaGFzQ3JlYXRlZEhhbmRzaGFrZSgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuICFtX3VybC5pc051bGwoKTsgfQogICAgIGJvb2wgaXNDb25uZWN0ZWQoKSBjb25zdCBmaW5h
bCB7IHJldHVybiAhbV9oYW5kc2hha2VSZXNwb25zZS5pc051bGwoKTsgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453850</attachid>
            <date>2022-03-04 09:40:10 -0800</date>
            <delta_ts>2022-03-04 17:07:54 -0800</delta_ts>
            <desc>Patch v1.4</desc>
            <filename>bug-237280-20220304094009.patch</filename>
            <type>text/plain</type>
            <size>34818</size>
            <attacher name="Patrick Angle">pangle</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzk4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWM3NjI3YTk1ZDkyNTBi
ZTQzNzBkMTZkMTQ4NGQzMDBiMWRmYmI2Yy4uYTM5NTM4N2Q4NWM5NTljYjI1MTBiODZjMjEwOTAy
NjA2NzgyN2ZhYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDg0IEBACisyMDIyLTAzLTAzICBQYXRy
aWNrIEFuZ2xlICA8cGFuZ2xlQGFwcGxlLmNvbT4KKworICAgICAgICBSRUdSRVNTSU9OIChyMjg0
NDcyKTogWyBNb250ZXJleSBdIGh0dHAvdGVzdHMvd2Vic29ja2V0L3Rlc3RzL2h5YmkvaW5zcGVj
dG9yL3NlbmQtYW5kLXJlY2lldmUtZGVidWdnZXIuaHRtbCBpcyBmYWlsaW5nCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzcyODAKKworICAgICAgICBS
ZXZpZXdlZCBieSBEZXZpbiBSb3Vzc28uCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyBo
dHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJpL2luc3BlY3Rvci8qIHRlc3QgY2FzZXMuCisK
KyAgICAgICAgT24gbWFjT1MgTW9udGVyZXkgd2UgdXNlIE5TVVJMU2Vzc2lvbi1iYXNlZCBXZWJT
b2NrZXRzIGJ5IGRlZmF1bHQsIHVubGlrZSBlYXJsaWVyIHZlcnNpb25zIG9mIG1hY09TLiBUaGUg
Y2hhbm5lbAorICAgICAgICBmb3IgdGhlc2Ugc29ja2V0cyBpcyBpbXBsZW1lbnRlZCBpbiBgV2Vi
S2l0OjpXZWJTb2NrZXRDaGFubmVsYC4gVGhlIG5vbi1OU1VSTFNlc3Npb24gV2ViU29ja2V0cyBj
aGFubmVsIChhdAorICAgICAgICBsZWFzdCBvbiBDb2NvYSBwbGF0Zm9ybXMpIGlzIGltcGxlbWVu
dGVkIGluIGBXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsYC4KKworICAgICAgICBBcyBvZiByMjg0
NDcyIHRoZSBsb2dpYyB0byBkZWxheSB0aGUgZGlzcGF0Y2ggb2YgcmVjZWl2ZWQgV2ViU29ja2V0
IG1lc3NhZ2Ugb24gcGxhdGZvcm1zIHVzaW5nCisgICAgICAgIE5TVVJMU2Vzc2lvbi1iYXNlZCBX
ZWJTb2NrZXRzIGlzIGhhbmRsZWQgYnkgYFdlYkNvcmU6OldlYlNvY2tldGAsIG5vdCB0aGUgYFdl
YktpdDo6V2ViU29ja2V0Q2hhbm5lbGAuCisgICAgICAgIGBXZWJLaXQ6OldlYlNvY2tldENoYW5u
ZWxgIG5vdyBpbW1lZGlhdGVseSBkb2VzIHRoZSB3b3JrIGl0IG5lZWRzIHRvLCBhbmQgb25seSB0
aGUgZGVsZWdhdGVkIHdvcmsgdG8gYFdlYlNvY2tldGAKKyAgICAgICAgaXMgcXVldWVkIGFuZCB0
YWtlbiBjYXJlIG9mIHdoZW4gdGhlIHNvY2tldCBoYXMgcmVzdW1lZC4gVGhpcyByZXN1bHRlZCBp
biBzb21lIG9mIHRoZSBpbnN0cnVtZW50YXRpb24gaW4KKyAgICAgICAgYFdlYktpdDo6V2ViU29j
a2V0Q2hhbm5lbGAgYmVpbmcgYWJsZSB0byBiZSBjYWxsZWQgd2hpbGUgdGhlIHNvY2tldCB3YXMg
c3VzcGVuZGVkIGxlYWRpbmcgdG8gZXZlbnRzIGJlaW5nIGxvZ2dlZAorICAgICAgICBpbiB0aGUg
ZnJvbnRlbmQgImluIHRoZSBmdXR1cmUiIChlLmcuIGJlZm9yZSB0aGUgcGF1c2VkIHNjcmlwdCB3
b3VsZCBoYXZlIGJlZW4gYWJsZSB0byBiZSBhd2FyZSBvZiB0aGVtKS4gVG8KKyAgICAgICAgY29y
cmVjdCB0aGlzIHRoZSBgV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsYCBub3cgcHJvdmlkZXMgYSBo
b29rIGludG8gaXRzIGhlbHBlciBgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcmAKKyAgICAgICAg
b2JqZWN0IHRvIGFsbG93IHRoZSBgV2ViQ29yZTo6V2ViU29ja2V0YCB0byBub3RpZnkgV2ViIElu
c3BlY3RvciBvZiBldmVudHMgYXQgdGhlIHNhbWUgdGltZSBpdCBpcyBiZWluZworICAgICAgICBs
b2dpY2FsbHkgaGFuZGxlZCBieSB0aGUgcGFnZS4KKworICAgICAgICBPdGhlciBgVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxgIGltcGxlbWVudGF0aW9ucyB3aWxsIGluc3RlYWQgcHJvdmlkZSBg
bnVsbHB0cmAgaW4gcGxhY2Ugb2YgYSBwb2ludGVyIHRvIGEKKyAgICAgICAgYFdlYkluc3BlY3Rv
ckNoYW5uZWxJbnNwZWN0b3JgLiBgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbGAgd2FzIG5vdCBh
ZmZlY3RlZCBieSB0aGUgY2hhbmdlcyBpbiByMjg0NDcyIGFzIGl0IGhhcworICAgICAgICBhIGRp
ZmZlcmVudCB3YXkgdG8gZ3VhcmFudGVlIHRoYXQgdGhlIG1ldGhvZHMgY29udGFpbmluZyBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb24gd2VyZSBub3QgY2FsbGVkIHdoaWxlIHRoZQorICAgICAgICBj
aGFubmVsIHdhcyBzdXNwZW5kZWQgKGFuZCBlbmZvcmNlZCB3aXRoIG51bWVyb3VzIGBBU1NFUlQo
IW1fc3VzcGVuZGVkKWAgY2hlY2tzKS4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9U
aHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oOgorICAgICAgICAoV2ViQ29yZTo6VGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWw6OmNoYW5uZWxJbnNwZWN0b3IgY29uc3QpOgorCisgICAgICAgICog
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxDbGllbnQuaDoKKyAgICAgICAgLSBB
ZGQgYHJlYXNvbmAgZm9yIGVycm9yIG1lc3NhZ2VzIHNvIHRoZXkgY2FuIGJlIHNlbnQgdG8gV2Vi
IEluc3BlY3Rvci4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0OjpkaWRSZWNlaXZlTWVzc2FnZSk6CisgICAg
ICAgIChXZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZFJlY2VpdmVCaW5hcnlEYXRhKToKKyAgICAgICAg
KFdlYkNvcmU6OldlYlNvY2tldDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXQ6OmRpZENsb3NlKToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tl
dHMvV2ViU29ja2V0Lmg6CisgICAgICAgIC0gTW92ZSBpbnNwZWN0b3IgaW5zdHJ1bWVudGF0aW9u
IGNhbGxzIGZyb20gYFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbGAgdG8gaGVyZSBzbyB0aGF0IHRo
ZXkgYXJlIG5vdCBjYWxsZWQgdW50aWwKKyAgICAgICAgdGhlIHNvY2tldCBpcyByZXN1bWVkLgor
ICAgICAgICAtIFdlIGFsc28gbm93IHdyYXAgdGhlc2UgaW5zdHJ1bWVudGF0aW9uIGNhbGxzIGlu
IGFuIHVubGlrZWx5IGNoZWNrIGZvciBmcm9udGVuZHMgdG8gYXZvaWQgYWxsb2NhdGluZyB0aGUg
CisgICAgICAgIHNpbXVsYXRlZCBjYWxsIGZyYW1lcyB3aGVuIFdlYiBJbnNwZWN0b3IgaXNuJ3Qg
ZXZlbiBvcGVuLgorICAgICAgICAKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yKToKKyAgICAgICAgKFdlYkNv
cmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENyZWF0ZVdlYlNvY2tldCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdl
YlNvY2tldEhhbmRzaGFrZVJlcXVlc3QgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNl
IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRp
ZENsb3NlV2ViU29ja2V0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5u
ZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZSBjb25zdCk6CisgICAgICAgIChX
ZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlk
UmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6V2Vi
U29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6Y3JlYXRlRnJhbWUpOgorICAgICAgICAoV2ViQ29yZTo6
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2ViU29ja2V0KTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OndpbGxTZW5kV2Vi
U29ja2V0SGFuZHNoYWtlUmVxdWVzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9u
c2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rv
cjo6ZGlkQ2xvc2VXZWJTb2NrZXQpOiBEZWxldGVkLgorICAgICAgICAoV2ViQ29yZTo6V2ViU29j
a2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lKTogRGVsZXRlZC4K
KyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRXZWJT
b2NrZXRGcmFtZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVs
SW5zcGVjdG9yOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcik6IERlbGV0ZWQuCisgICAg
ICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuaDoKKyAg
ICAgICAgLSBVcGRhdGUgdG8ga2VlcCBhIFdlYWtSZWYgdG8gdGhlIGBEb2N1bWVudGAgdG8gcmVk
dWNlIHRoZSBhbW91bnQgb2YgcGx1bWJpbmcgbmVjZXNzYXJ5IHRvIGNhbGwgdGhlc2UgbWV0aG9k
cworICAgICAgICBmcm9tIGBXZWJTb2NrZXRgLgorICAgICAgICAtIE1vdmUgc3RhdGljIHV0aWxp
dHkgbWV0aG9kIGBjcmVhdGVGcmFtZWAgaGVyZSBmcm9tIGBXZWJLaXQ6OldlYlNvY2tldENoYW5u
ZWxgIHNpbmNlIGl0IGlzIG9ubHkgdXNlZCBmb3IKKyAgICAgICAgaW5zcGVjdG9yIGluc3RydW1l
bnRhdGlvbi4KKworICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAg
IChXZWJDb3JlOjpXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6QnJpZGdlOjpjb25u
ZWN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlRocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJv
cik6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFu
bmVsQ2xpZW50V3JhcHBlci5oOgorICAgICAgICAqIE1vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldlYlNvY2tldENoYW5uZWw6OmZhaWwp
OgorICAgICAgICAoV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkRmFpbFNvY2tldFN0cmVh
bSk6CisgICAgICAgICogTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaDoKKyAg
ICAgICAgLSBVcGRhdGUgdGhlc2UgY2xhc3NlcyB0byBwYXNzIGFsb25nIGEgcmVhc29uLCBpZiBh
dmFpbGFibGUsIGZvciBlcnJvcnMuCisKIDIwMjItMDMtMDMgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgbmFzYS5nb3YgcGFnZSB3aXRoIGZpeGVkIGJh
Y2tncm91bmRzIHBhaW50cyBpbmNvcnJlY3RseSBvbiBzY3JvbGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYWU1YzQ4
YmFlNWRlNTdlZTc4MWE0OGFmMzRmZTI1NGUwNmNkZDY5OC4uM2VmZDQxMDkzMTc4MGI1NWFkN2E3
Nzg4ODE0ODAyYjBiNzU4MjljNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOSBAQAorMjAyMi0wMy0w
MyAgUGF0cmljayBBbmdsZSAgPHBhbmdsZUBhcHBsZS5jb20+CisKKyAgICAgICAgUkVHUkVTU0lP
TiAocjI4NDQ3Mik6IFsgTW9udGVyZXkgXSBodHRwL3Rlc3RzL3dlYnNvY2tldC90ZXN0cy9oeWJp
L2luc3BlY3Rvci9zZW5kLWFuZC1yZWNpZXZlLWRlYnVnZ2VyLmh0bWwgaXMgZmFpbGluZworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM3MjgwCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGV2aW4gUm91c3NvLgorCisgICAgICAgIE1vdmUgaW5zcGVjdG9y
IGluc3RydW1lbnRhdGlvbiBmb3IgdGhpbmdzIHRoYXQgc2hvdWxkIGJlIGRlbGF5ZWQgdW50aWwg
dGhlIHdlYnNvY2tldCBoYXMgcmVzdW1lZCAoaW4gZ2VuZXJhbCwKKyAgICAgICAgdGhlc2UgYXJl
IGluc3RydW1lbnRhdGlvbiBwb2ludHMgZm9yIHJlY2VpdmluZyBtZXNzYWdlcykgaW50byBXZWJD
b3JlOjpXZWJTb2NrZXQgc28gdGhhdCB0aGV5IGFyZSBzZW50IGF0IHRoZQorICAgICAgICBleHBl
Y3RlZCB0aW1lIGluIHRoZSBmcm9udGVuZCwgbm90ICJpbiB0aGUgZnV0dXJlIiB3aGVuIHNjcmlw
dCBleGVjdXRpb24gaXMgc3VzcGVuZGVkIChlLmcuIHdoaWxlIGRlYnVnZ2luZykuCisKKyAgICAg
ICAgKiBXZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6Om5vdGlmeVNlbmRGcmFtZSk6CisgICAgICAgIChXZWJL
aXQ6OldlYlNvY2tldENoYW5uZWw6OmNvbm5lY3QpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2Nr
ZXRDaGFubmVsOjpjbG9zZSk6CisgICAgICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmZh
aWwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaXNjb25uZWN0KToKKyAg
ICAgICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZVRleHQpOgorICAgICAg
ICAoV2ViS2l0OjpXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlQmluYXJ5RGF0YSk6CisgICAg
ICAgIChXZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZENsb3NlKToKKyAgICAgICAgKFdlYktp
dDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcik6CisgICAgICAgIChX
ZWJLaXQ6OldlYlNvY2tldENoYW5uZWw6OmRpZFNlbmRIYW5kc2hha2VSZXF1ZXN0KToKKyAgICAg
ICAgKFdlYktpdDo6V2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNl
KToKKyAgICAgICAgKFdlYktpdDo6Y3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3Ip
OiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRDaGFubmVs
Lmg6CisKIDIwMjItMDMtMDMgIFJvYmVydCBKZW5uZXIgIDxKZW5uZXJAYXBwbGUuY29tPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjkwNzUyLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENo
YW5uZWwuaAppbmRleCAzMGI0YjM3MTYyMTViODJiODM2NjZkNGU1YmM0YWYzOTgzYjJlYTlkLi43
MzE5OGQ1MDA4MGQ5OGMwNjk5OTY3Mzk5YTY2MWIwMDZiZjYyNmIyIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWwu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdlYlNv
Y2tldENoYW5uZWwuaApAQCAtNDksNiArNDksNyBAQCBjbGFzcyBSZXNvdXJjZVJlc3BvbnNlOwog
Y2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4dDsKIGNsYXNzIFNvY2tldFByb3ZpZGVyOwogY2xh
c3MgV2ViU29ja2V0Q2hhbm5lbDsKK2NsYXNzIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I7CiBj
bGFzcyBXZWJTb2NrZXRDaGFubmVsQ2xpZW50OwogCiB1c2luZyBXZWJTb2NrZXRDaGFubmVsSWRl
bnRpZmllciA9IE9iamVjdElkZW50aWZpZXI8V2ViU29ja2V0Q2hhbm5lbD47CkBAIC04NCw2ICs4
NSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc3VzcGVuZCgpID0gMDsKICAgICB2aXJ0
dWFsIHZvaWQgcmVzdW1lKCkgPSAwOwogCisgICAgdmlydHVhbCBjb25zdCBXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yKiBjaGFubmVsSW5zcGVjdG9yKCkgY29uc3QgeyByZXR1cm4gbnVsbHB0cjsg
fTsKICAgICB2aXJ0dWFsIFdlYlNvY2tldENoYW5uZWxJZGVudGlmaWVyIHByb2dyZXNzSWRlbnRp
ZmllcigpIGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaGFzQ3JlYXRlZEhhbmRzaGFrZSgp
IGNvbnN0ID0gMDsKICAgICB2aXJ0dWFsIGJvb2wgaXNDb25uZWN0ZWQoKSBjb25zdCA9IDA7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCmlu
ZGV4IDc4Nzg3OWZhNjg3NmE5ODQ4NTUxZDE2YWRlMzg1YjJlNzRlMWFkNzIuLjdiMTQ0MWQzMWNi
Y2JmNzBhMzkxMmE5YTIxMDU3NWFkMzVjZjU5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBw
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbENsaWVudFdyYXBwZXIuY3BwCkBAIC0yMTcsMTEgKzIxNywxMSBAQCB2
b2lkIFRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlcjo6ZGlkQ2xvc2UodW5z
aWduZWQgdW5oYW5kbGVkQnVmZmVyZQogICAgICAgICBwcm9jZXNzUGVuZGluZ1Rhc2tzKCk7CiB9
CiAKLXZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyOjpkaWRSZWNl
aXZlTWVzc2FnZUVycm9yKCkKK3ZvaWQgVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWxDbGllbnRX
cmFwcGVyOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKQogewot
ICAgIG1fcGVuZGluZ1Rhc2tzLmFwcGVuZChtYWtlVW5pcXVlPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHQ6OlRhc2s+KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0gKFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmKSB7CisgICAgbV9wZW5kaW5nVGFza3MuYXBwZW5kKG1ha2VVbmlxdWU8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dDo6VGFzaz4oW3RoaXMsIHByb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9LCByZWFzb24gPSByZWFzb24uaXNvbGF0ZWRDb3B5KCldIChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JikgewogICAgICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgICAgICBtX2NsaWVu
dC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpOworICAgICAgICAgICAgbV9jbGllbnQtPmRpZFJl
Y2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKICAgICB9KSk7CiAKICAgICBpZiAoIW1fc3VzcGVu
ZGVkKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1RocmVh
ZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1RocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsQ2xpZW50V3JhcHBlci5o
CmluZGV4IDhkYTE4YzAwNjdkMGE1YWI3ZTdiNDI0MTJmNmY1ZGEyYzAyZWFiZGMuLjZhZWJhNTNl
OGZjNDIzNGU4MzFkZTFkN2Q2OTkwMDU2Yjc4MTZiY2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9UaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbENsaWVudFdy
YXBwZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvVGhyZWFkYWJs
ZVdlYlNvY2tldENoYW5uZWxDbGllbnRXcmFwcGVyLmgKQEAgLTc5LDcgKzc5LDcgQEAgcHVibGlj
OgogICAgIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRBbW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91
bnQpOwogICAgIHZvaWQgZGlkU3RhcnRDbG9zaW5nSGFuZHNoYWtlKCk7CiAgICAgdm9pZCBkaWRD
bG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgV2ViU29ja2V0Q2hhbm5lbENs
aWVudDo6Q2xvc2luZ0hhbmRzaGFrZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNv
ZGUsIGNvbnN0IFN0cmluZyYgcmVhc29uKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IoKTsKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5nJiByZWFz
b24pOwogICAgIHZvaWQgZGlkVXBncmFkZVVSTCgpOwogCiAgICAgdm9pZCBzdXNwZW5kKCk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCmluZGV4
IGM1NTg3OTIzMjE1NWQ0NTVhOGU5M2JkODZiZmZiYzgxZjQwOTU5MzkuLmFiZGMxNDM1NDRlYzFk
MWYyYWIyMDkyYWRkZjMwNzBiY2I5ZmUwMDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvd2Vic29ja2V0cy9XZWJTb2NrZXQuY3BwCkBAIC00Myw2ICs0Myw3IEBACiAjaW5jbHVkZSAi
RnJhbWUuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVy
Q2xpZW50LmgiCisjaW5jbHVkZSAiSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmgiCiAjaW5jbHVk
ZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIk1lc3NhZ2VFdmVudC5oIgogI2luY2x1ZGUgIk1peGVk
Q29udGVudENoZWNrZXIuaCIKQEAgLTU2NSw2ICs1NjYsMTMgQEAgdm9pZCBXZWJTb2NrZXQ6OmRp
ZFJlY2VpdmVNZXNzYWdlKGNvbnN0IFN0cmluZyYgbXNnKQogICAgIHF1ZXVlVGFza0tlZXBpbmdP
YmplY3RBbGl2ZSgqdGhpcywgVGFza1NvdXJjZTo6V2ViU29ja2V0LCBbdGhpcywgbXNnXSB7CiAg
ICAgICAgIGlmIChtX3N0YXRlICE9IE9QRU4pCiAgICAgICAgICAgICByZXR1cm47CisKKyAgICAg
ICAgaWYgKFVOTElLRUxZKEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6aGFzRnJvbnRlbmRzKCkp
KSB7CisgICAgICAgICAgICBpZiAoYXV0byogaW5zcGVjdG9yID0gbV9jaGFubmVsLT5jaGFubmVs
SW5zcGVjdG9yKCkpIHsKKyAgICAgICAgICAgICAgICBhdXRvIHV0ZjhNZXNzYWdlID0gbXNnLnV0
ZjgoKTsKKyAgICAgICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFt
ZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZSh1dGY4TWVzc2FnZS5kYXRh
QXNVSW50OFB0cigpLCB1dGY4TWVzc2FnZS5sZW5ndGgoKSwgV2ViU29ja2V0RnJhbWU6Ok9wQ29k
ZTo6T3BDb2RlVGV4dCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgICAgIEFTU0VS
VChzY3JpcHRFeGVjdXRpb25Db250ZXh0KCkpOwogICAgICAgICBkaXNwYXRjaEV2ZW50KE1lc3Nh
Z2VFdmVudDo6Y3JlYXRlKG1zZywgU2VjdXJpdHlPcmlnaW46OmNyZWF0ZShtX3VybCktPnRvU3Ry
aW5nKCkpKTsKICAgICB9KTsKQEAgLTU3Niw2ICs1ODQsMTIgQEAgdm9pZCBXZWJTb2NrZXQ6OmRp
ZFJlY2VpdmVCaW5hcnlEYXRhKFZlY3Rvcjx1aW50OF90PiYmIGJpbmFyeURhdGEpCiAgICAgcXVl
dWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0
aGlzLCBiaW5hcnlEYXRhID0gV1RGTW92ZShiaW5hcnlEYXRhKV0oKSBtdXRhYmxlIHsKICAgICAg
ICAgaWYgKG1fc3RhdGUgIT0gT1BFTikKICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICBp
ZiAoVU5MSUtFTFkoSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsK
KyAgICAgICAgICAgIGlmIChhdXRvKiBpbnNwZWN0b3IgPSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNw
ZWN0b3IoKSkKKyAgICAgICAgICAgICAgICBpbnNwZWN0b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRG
cmFtZShXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZShiaW5hcnlEYXRhLmRh
dGEoKSwgYmluYXJ5RGF0YS5zaXplKCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZUJp
bmFyeSkpOworICAgICAgICB9CisKICAgICAgICAgc3dpdGNoIChtX2JpbmFyeVR5cGUpIHsKICAg
ICAgICAgY2FzZSBCaW5hcnlUeXBlOjpCbG9iOgogICAgICAgICAgICAgLy8gRklYTUU6IFdlIGp1
c3QgcmVjZWl2ZWQgdGhlIGRhdGEgZnJvbSBOZXR3b3JrUHJvY2VzcywgYW5kIGFyZSBzZW5kaW5n
IGl0IGJhY2suIFRoaXMgaXMgaW5lZmZpY2llbnQuCkBAIC01ODgsMTQgKzYwMiwyMCBAQCB2b2lk
IFdlYlNvY2tldDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVjdG9yPHVpbnQ4X3Q+JiYgYmluYXJ5
RGF0YSkKICAgICB9KTsKIH0KIAotdm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJy
b3IoKQordm9pZCBXZWJTb2NrZXQ6OmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoY29uc3QgU3RyaW5n
JiByZWFzb24pCiB7CiAgICAgTE9HKE5ldHdvcmssICJXZWJTb2NrZXQgJXAgZGlkUmVjZWl2ZUVy
cm9yTWVzc2FnZSgpIiwgdGhpcyk7Ci0gICAgcXVldWVUYXNrS2VlcGluZ09iamVjdEFsaXZlKCp0
aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzXSB7CisgICAgcXVldWVUYXNrS2VlcGlu
Z09iamVjdEFsaXZlKCp0aGlzLCBUYXNrU291cmNlOjpXZWJTb2NrZXQsIFt0aGlzLCByZWFzb25d
IHsKICAgICAgICAgaWYgKG1fc3RhdGUgPT0gQ0xPU0VEKQogICAgICAgICAgICAgcmV0dXJuOwog
ICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwogICAgICAgICBBU1NFUlQoc2NyaXB0RXhlY3V0aW9u
Q29udGV4dCgpKTsKKworICAgICAgICBpZiAoVU5MSUtFTFkoSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpoYXNGcm9udGVuZHMoKSkpIHsKKyAgICAgICAgICAgIGlmIChhdXRvKiBpbnNwZWN0b3Ig
PSBtX2NoYW5uZWwtPmNoYW5uZWxJbnNwZWN0b3IoKSkKKyAgICAgICAgICAgICAgICBpbnNwZWN0
b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKHJlYXNvbik7CisgICAgICAgIH0KKwog
ICAgICAgICAvLyBGSVhNRTogQXMgcGVyIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVs
dGlwYWdlL3dlYi1zb2NrZXRzLmh0bWwjZmVlZGJhY2stZnJvbS10aGUtcHJvdG9jb2w6Y29uY2Vw
dC13ZWJzb2NrZXQtY2xvc2VkLCB3ZSBzaG91bGQgc3luY2hyb25vdXNseSBmaXJlIGEgY2xvc2Ug
ZXZlbnQuCiAgICAgICAgIGRpc3BhdGNoRXJyb3JFdmVudElmTmVlZGVkKCk7CiAgICAgfSk7CkBA
IC02MjYsNiArNjQ2LDE0IEBAIHZvaWQgV2ViU29ja2V0OjpkaWRDbG9zZSh1bnNpZ25lZCB1bmhh
bmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFrZUNvbXBsCiAgICAgICAgIGlmICgh
bV9jaGFubmVsKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIGlmIChVTkxJS0VMWShJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246Omhhc0Zyb250ZW5kcygpKSkgeworICAgICAgICAgICAg
aWYgKGF1dG8qIGluc3BlY3RvciA9IG1fY2hhbm5lbC0+Y2hhbm5lbEluc3BlY3RvcigpKSB7Cisg
ICAgICAgICAgICAgICAgV2ViU29ja2V0RnJhbWUgY2xvc2luZ0ZyYW1lKFdlYlNvY2tldEZyYW1l
OjpPcENvZGVDbG9zZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKKyAgICAgICAgICAgICAgICBpbnNw
ZWN0b3ItPmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShjbG9zaW5nRnJhbWUpOworICAgICAgICAg
ICAgICAgIGluc3BlY3Rvci0+ZGlkQ2xvc2VXZWJTb2NrZXQoKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfQorCiAgICAgICAgIGJvb2wgd2FzQ2xlYW4gPSBtX3N0YXRlID09IENMT1NJTkcgJiYg
IXVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50ICYmIGNsb3NpbmdIYW5kc2hha2VDb21wbGV0aW9uID09
IENsb3NpbmdIYW5kc2hha2VDb21wbGV0ZSAmJiBjb2RlICE9IFdlYlNvY2tldENoYW5uZWw6OkNs
b3NlRXZlbnRDb2RlQWJub3JtYWxDbG9zdXJlOwogICAgICAgICBtX3N0YXRlID0gQ0xPU0VEOwog
ICAgICAgICBtX2J1ZmZlcmVkQW1vdW50ID0gdW5oYW5kbGVkQnVmZmVyZWRBbW91bnQ7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmggYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0LmgKaW5kZXggYWJlM2Rh
OTZmNWY4ZGY4NGZlZjQ1NzM1ZDVjODBiYmFjMjA0ZDZmZi4uMGMzNmEyMzYxMTM3ZTA4NjU4NWEw
MTdiOWM2YjFmNWUxNzhlNmVlNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJzb2NrZXRzL1dlYlNvY2tldC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXQuaApAQCAtMTE1LDcgKzExNSw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBk
aWRDb25uZWN0KCkgZmluYWw7CiAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZShjb25zdCBTdHJp
bmcmIG1lc3NhZ2UpIGZpbmFsOwogICAgIHZvaWQgZGlkUmVjZWl2ZUJpbmFyeURhdGEoVmVjdG9y
PHVpbnQ4X3Q+JiYpIGZpbmFsOwotICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcigpIGZp
bmFsOworICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNv
bikgZmluYWw7CiAgICAgdm9pZCBkaWRVcGRhdGVCdWZmZXJlZEFtb3VudCh1bnNpZ25lZCBidWZm
ZXJlZEFtb3VudCkgZmluYWw7CiAgICAgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSBm
aW5hbDsKICAgICB2b2lkIGRpZENsb3NlKHVuc2lnbmVkIHVuaGFuZGxlZEJ1ZmZlcmVkQW1vdW50
LCBDbG9zaW5nSGFuZHNoYWtlQ29tcGxldGlvblN0YXR1cywgdW5zaWduZWQgc2hvcnQgY29kZSwg
Y29uc3QgU3RyaW5nJiByZWFzb24pIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDJmN2I4MzM3YjA0
YjZmOWUwYzgxMjQ4NTMwMjA4YjUyNDdiZmE0N2MuLmZhZjM2YjQ4OWI4MDcyZjE3MmM5M2U4MDNl
NGFiMzYwMGRhZmIyYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29j
a2V0cy9XZWJTb2NrZXRDaGFubmVsLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5jcHAKQEAgLTIzOSw3ICsyMzksNyBAQCB2b2lkIFdl
YlNvY2tldENoYW5uZWw6OmZhaWwoY29uc3QgU3RyaW5nJiByZWFzb24pCiAgICAgbV9oYXNDb250
aW51b3VzRnJhbWUgPSBmYWxzZTsKICAgICBtX2NvbnRpbnVvdXNGcmFtZURhdGEuY2xlYXIoKTsK
ICAgICBpZiAobV9jbGllbnQpCi0gICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVy
cm9yKCk7CisgICAgICAgIG1fY2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKHJlYXNvbik7
CiAKICAgICBpZiAobV9oYW5kbGUgJiYgIW1fY2xvc2VkKQogICAgICAgICBtX2hhbmRsZS0+ZGlz
Y29ubmVjdCgpOyAvLyBXaWxsIGNhbGwgZGlkQ2xvc2VTb2NrZXRTdHJlYW0oKSBidXQgbWF5YmUg
bm90IHN5bmNocm9ub3VzbHkuCkBAIC0zNjUsMjEgKzM2NSwyMyBAQCB2b2lkIFdlYlNvY2tldENo
YW5uZWw6OmRpZEZhaWxTb2NrZXRTdHJlYW0oU29ja2V0U3RyZWFtSGFuZGxlJiBoYW5kbGUsIGNv
bnN0IFNvYwogewogICAgIExPRyhOZXR3b3JrLCAiV2ViU29ja2V0Q2hhbm5lbCAlcCBkaWRGYWls
U29ja2V0U3RyZWFtKCkiLCB0aGlzKTsKICAgICBBU1NFUlQoJmhhbmRsZSA9PSBtX2hhbmRsZSB8
fCAhbV9oYW5kbGUpOworCisgICAgU3RyaW5nIG1lc3NhZ2U7CisgICAgaWYgKGVycm9yLmlzTnVs
bCgpKQorICAgICAgICBtZXNzYWdlID0gIldlYlNvY2tldCBuZXR3b3JrIGVycm9yIl9zOworICAg
IGVsc2UgaWYgKGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCkuaXNOdWxsKCkpCisgICAgICAg
IG1lc3NhZ2UgPSBtYWtlU3RyaW5nKCJXZWJTb2NrZXQgbmV0d29yayBlcnJvcjogZXJyb3IgY29k
ZSAiLCBlcnJvci5lcnJvckNvZGUoKSk7CisgICAgZWxzZQorICAgICAgICBtZXNzYWdlID0gIldl
YlNvY2tldCBuZXR3b3JrIGVycm9yOiAiICsgZXJyb3IubG9jYWxpemVkRGVzY3JpcHRpb24oKTsK
KwogICAgIGlmIChtX2RvY3VtZW50KSB7Ci0gICAgICAgIFN0cmluZyBtZXNzYWdlOwotICAgICAg
ICBpZiAoZXJyb3IuaXNOdWxsKCkpCi0gICAgICAgICAgICBtZXNzYWdlID0gIldlYlNvY2tldCBu
ZXR3b3JrIGVycm9yIl9zOwotICAgICAgICBlbHNlIGlmIChlcnJvci5sb2NhbGl6ZWREZXNjcmlw
dGlvbigpLmlzTnVsbCgpKQotICAgICAgICAgICAgbWVzc2FnZSA9IG1ha2VTdHJpbmcoIldlYlNv
Y2tldCBuZXR3b3JrIGVycm9yOiBlcnJvciBjb2RlICIsIGVycm9yLmVycm9yQ29kZSgpKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgbWVzc2FnZSA9ICJXZWJTb2NrZXQgbmV0d29yayBlcnJv
cjogIiArIGVycm9yLmxvY2FsaXplZERlc2NyaXB0aW9uKCk7CiAgICAgICAgIEluc3BlY3Rvcklu
c3RydW1lbnRhdGlvbjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEZyYW1lRXJyb3IobV9kb2N1bWVudC5n
ZXQoKSwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIG1lc3NhZ2UpOwogICAgICAgICBtX2RvY3VtZW50
LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpOZXR3b3JrLCBNZXNzYWdlTGV2ZWw6
OkVycm9yLCBtZXNzYWdlKTsKICAgICAgICAgTE9HX0VSUk9SKCIlcyIsIG1lc3NhZ2UudXRmOCgp
LmRhdGEoKSk7CiAgICAgfQogICAgIG1fc2hvdWxkRGlzY2FyZFJlY2VpdmVkRGF0YSA9IHRydWU7
CiAgICAgaWYgKG1fY2xpZW50KQotICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VF
cnJvcigpOworICAgICAgICBtX2NsaWVudC0+ZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihtZXNzYWdl
KTsKICAgICBoYW5kbGUuZGlzY29ubmVjdCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWwuaAppbmRleCBjOTI2YjQxZmE0
ZGEyNTljYjI1N2MwYzk1ZDhlZDFhMjQ1Zjc2M2ZkLi41MjI1YmM5ZWM0NmM1ODJhNTg2M2Q0ODNh
ZDA1YjFhOTcyNmM3ZTRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNv
Y2tldHMvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
c29ja2V0cy9XZWJTb2NrZXRDaGFubmVsLmgKQEAgLTM1LDYgKzM1LDcgQEAKICNpbmNsdWRlICJT
b2NrZXRTdHJlYW1IYW5kbGVDbGllbnQuaCIKICNpbmNsdWRlICJUaHJlYWRhYmxlV2ViU29ja2V0
Q2hhbm5lbC5oIgogI2luY2x1ZGUgIlRpbWVyLmgiCisjaW5jbHVkZSAiV2ViU29ja2V0Q2hhbm5l
bEluc3BlY3Rvci5oIgogI2luY2x1ZGUgIldlYlNvY2tldERlZmxhdGVGcmFtZXIuaCIKICNpbmNs
dWRlICJXZWJTb2NrZXRGcmFtZS5oIgogI2luY2x1ZGUgIldlYlNvY2tldEhhbmRzaGFrZS5oIgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENo
YW5uZWxDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2Nr
ZXRDaGFubmVsQ2xpZW50LmgKaW5kZXggODQwMWI1YzY2MWMzNTUxZGE3OWZmMTFmZDczZjlkYjE4
ODkxYjdiMS4uN2Y3MTMxY2ExOWU3OGMwYzc0YWE0OTc4OTQ1MGI2MTY1MzdiZDBmYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxD
bGllbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0
Q2hhbm5lbENsaWVudC5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZv
aWQgZGlkQ29ubmVjdCgpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2Uo
Y29uc3QgU3RyaW5nJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlQmluYXJ5RGF0
YShWZWN0b3I8dWludDhfdD4mJikgPSAwOwotICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVz
c2FnZUVycm9yKCkgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9y
KGNvbnN0IFN0cmluZyYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlkVXBkYXRlQnVmZmVyZWRB
bW91bnQodW5zaWduZWQgYnVmZmVyZWRBbW91bnQpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgZGlk
U3RhcnRDbG9zaW5nSGFuZHNoYWtlKCkgPSAwOwogICAgIGVudW0gQ2xvc2luZ0hhbmRzaGFrZUNv
bXBsZXRpb25TdGF0dXMgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJz
b2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IuY3BwCmluZGV4IGNhNzY4
NzA5NWQ0Zjg4MDk2NGQzMzVjMTM2YmFiNjAyNjAxOTlhMmMuLmNmNzE5MjZmNDMwMzlmNDRmZDcy
MGE1YmE2OTI0OGU5YWIwMzU4OGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvci5jcHAKQEAg
LTMwLDY2ICszMCw3MCBAQAogI2luY2x1ZGUgIkluc3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIgog
I2luY2x1ZGUgIlBhZ2UuaCIKICNpbmNsdWRlICJQcm9ncmVzc1RyYWNrZXIuaCIKKyNpbmNsdWRl
ICJXZWJTb2NrZXRGcmFtZS5oIgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKLVdlYlNvY2tldENo
YW5uZWxJbnNwZWN0b3I6OldlYlNvY2tldENoYW5uZWxJbnNwZWN0b3IoRG9jdW1lbnQmKQotICAg
IDogbV9wcm9ncmVzc0lkZW50aWZpZXIoV2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXI6OmdlbmVy
YXRlVGhyZWFkU2FmZSgpKSB7IH0KK1dlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OldlYlNvY2tl
dENoYW5uZWxJbnNwZWN0b3IoRG9jdW1lbnQmIGRvY3VtZW50KQorICAgIDogbV9kb2N1bWVudChk
b2N1bWVudCkKKyAgICAsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyKFdlYlNvY2tldENoYW5uZWxJZGVu
dGlmaWVyOjpnZW5lcmF0ZVRocmVhZFNhZmUoKSkKK3sKK30KIAotdm9pZCBXZWJTb2NrZXRDaGFu
bmVsSW5zcGVjdG9yOjpkaWRDcmVhdGVXZWJTb2NrZXQoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25z
dCBVUkwmIHVybCkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ3JlYXRlV2Vi
U29ja2V0KGNvbnN0IFVSTCYgdXJsKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50
aWZpZXIgfHwgIWRvY3VtZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1f
ZG9jdW1lbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlv
bjo6ZGlkQ3JlYXRlV2ViU29ja2V0KGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgdXJs
KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZENyZWF0ZVdlYlNvY2tldChtX2Rv
Y3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgdXJsKTsKIH0KIAotdm9pZCBXZWJT
b2NrZXRDaGFubmVsSW5zcGVjdG9yOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3Qo
RG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCit2b2lk
IFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVx
dWVzdChjb25zdCBSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpIGNvbnN0CiB7Ci0gICAgaWYgKCFt
X3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dyZXNzSWRl
bnRpZmllciB8fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5zcGVjdG9y
SW5zdHJ1bWVudGF0aW9uOjp3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoZG9jdW1l
bnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCByZXF1ZXN0KTsKKyAgICBJbnNwZWN0b3JJbnN0cnVt
ZW50YXRpb246OndpbGxTZW5kV2ViU29ja2V0SGFuZHNoYWtlUmVxdWVzdChtX2RvY3VtZW50Lmdl
dCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVxdWVzdCk7CiB9CiAKLXZvaWQgV2ViU29ja2V0
Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKERv
Y3VtZW50KiBkb2N1bWVudCwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit2b2lk
IFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VS
ZXNwb25zZShjb25zdCBSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSkgY29uc3QKIHsKLSAgICBp
ZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICBpZiAoIW1fcHJvZ3Jl
c3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBJbnNw
ZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25z
ZShkb2N1bWVudCwgbV9wcm9ncmVzc0lkZW50aWZpZXIsIHJlc3BvbnNlKTsKKyAgICBJbnNwZWN0
b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZSht
X2RvY3VtZW50LmdldCgpLCBtX3Byb2dyZXNzSWRlbnRpZmllciwgcmVzcG9uc2UpOwogfQogCi12
b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZENsb3NlV2ViU29ja2V0KERvY3VtZW50
KiBkb2N1bWVudCkKK3ZvaWQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3Rvcjo6ZGlkQ2xvc2VXZWJT
b2NrZXQoKSBjb25zdAogewotICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIWRvY3Vt
ZW50KQorICAgIGlmICghbV9wcm9ncmVzc0lkZW50aWZpZXIgfHwgIW1fZG9jdW1lbnQpCiAgICAg
ICAgIHJldHVybjsKIAotICAgIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbjo6ZGlkQ2xvc2VXZWJT
b2NrZXQoZG9jdW1lbnQsIG1fcHJvZ3Jlc3NJZGVudGlmaWVyKTsKKyAgICBJbnNwZWN0b3JJbnN0
cnVtZW50YXRpb246OmRpZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jl
c3NJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRS
ZWNlaXZlV2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBXZWJTb2NrZXRG
cmFtZSYgZnJhbWUpCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFJlY2VpdmVX
ZWJTb2NrZXRGcmFtZShjb25zdCBXZWJTb2NrZXRGcmFtZSYgZnJhbWUpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dy
ZXNzSWRlbnRpZmllciB8fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUoZG9jdW1lbnQs
IG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0
aW9uOjpkaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVz
c0lkZW50aWZpZXIsIGZyYW1lKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9y
OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUoRG9jdW1lbnQqIGRvY3VtZW50LCBjb25zdCBXZWJTb2Nr
ZXRGcmFtZSYgZnJhbWUpCit2b2lkIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OmRpZFNlbmRX
ZWJTb2NrZXRGcmFtZShjb25zdCBXZWJTb2NrZXRGcmFtZSYgZnJhbWUpIGNvbnN0CiB7Ci0gICAg
aWYgKCFtX3Byb2dyZXNzSWRlbnRpZmllciB8fCAhZG9jdW1lbnQpCisgICAgaWYgKCFtX3Byb2dy
ZXNzSWRlbnRpZmllciB8fCAhbV9kb2N1bWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgSW5z
cGVjdG9ySW5zdHJ1bWVudGF0aW9uOjpkaWRTZW5kV2ViU29ja2V0RnJhbWUoZG9jdW1lbnQsIG1f
cHJvZ3Jlc3NJZGVudGlmaWVyLCBmcmFtZSk7CisgICAgSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9u
OjpkaWRTZW5kV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgbV9wcm9ncmVzc0lkZW50
aWZpZXIsIGZyYW1lKTsKIH0KIAotdm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRS
ZWNlaXZlV2ViU29ja2V0RnJhbWVFcnJvcihEb2N1bWVudCogZG9jdW1lbnQsIGNvbnN0IFN0cmlu
ZyYgZXJyb3JNZXNzYWdlKQordm9pZCBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpkaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgY29uc3QK
IHsKLSAgICBpZiAoIW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFkb2N1bWVudCkKKyAgICBpZiAo
IW1fcHJvZ3Jlc3NJZGVudGlmaWVyIHx8ICFtX2RvY3VtZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVy
cm9yKGRvY3VtZW50LCBtX3Byb2dyZXNzSWRlbnRpZmllciwgZXJyb3JNZXNzYWdlKTsKKyAgICBJ
bnNwZWN0b3JJbnN0cnVtZW50YXRpb246OmRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZUVycm9yKG1f
ZG9jdW1lbnQuZ2V0KCksIG1fcHJvZ3Jlc3NJZGVudGlmaWVyLCBlcnJvck1lc3NhZ2UpOwogfQog
CiBXZWJTb2NrZXRDaGFubmVsSWRlbnRpZmllciBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpw
cm9ncmVzc0lkZW50aWZpZXIoKSBjb25zdApAQCAtOTcsNCArMTAxLDIyIEBAIFdlYlNvY2tldENo
YW5uZWxJZGVudGlmaWVyIFdlYlNvY2tldENoYW5uZWxJbnNwZWN0b3I6OnByb2dyZXNzSWRlbnRp
ZmllcigpIGNvbnN0CiAgICAgcmV0dXJuIG1fcHJvZ3Jlc3NJZGVudGlmaWVyOwogfQogCitXZWJT
b2NrZXRGcmFtZSBXZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yOjpjcmVhdGVGcmFtZShjb25zdCB1
aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlIG9wQ29k
ZSkKK3sKKyAgICAvLyBUaGlzIGlzIGFuIGFwcHJveGltYXRpb24gc2luY2UgZnJhbWVzIGNhbiBi
ZSBtZXJnZWQgb24gYSBzaW5nbGUgbWVzc2FnZS4KKyAgICBXZWJTb2NrZXRGcmFtZSBmcmFtZTsK
KyAgICBmcmFtZS5vcENvZGUgPSBvcENvZGU7CisgICAgZnJhbWUubWFza2VkID0gZmFsc2U7Cisg
ICAgZnJhbWUucGF5bG9hZCA9IGRhdGE7CisgICAgZnJhbWUucGF5bG9hZExlbmd0aCA9IGxlbmd0
aDsKKworICAgIC8vIFdlYkluc3BlY3RvciBkb2VzIG5vdCB1c2UgdGhlbS4KKyAgICBmcmFtZS5m
aW5hbCA9IGZhbHNlOworICAgIGZyYW1lLmNvbXByZXNzID0gZmFsc2U7CisgICAgZnJhbWUucmVz
ZXJ2ZWQyID0gZmFsc2U7CisgICAgZnJhbWUucmVzZXJ2ZWQzID0gZmFsc2U7CisKKyAgICByZXR1
cm4gZnJhbWU7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV2ViU29ja2V0Q2hhbm5lbEluc3Bl
Y3Rvci5oCmluZGV4IGQwMzZjNTI3YTQ0NzI4ZTMzYTU0M2Q1ZGM5NDUwOTlhZmJhNWRlMDcuLmJi
NTE3OWNkMmRjOTZlOTVmMTMyMzc5YTNkNmUyZjA4Nzc3Mzg2MzEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9XZWJTb2NrZXRDaGFubmVsSW5zcGVjdG9yLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dlYlNvY2tldENoYW5uZWxJ
bnNwZWN0b3IuaApAQCAtMjUsNiArMjUsNyBAQAogCiAjcHJhZ21hIG9uY2UKIAorI2luY2x1ZGUg
IldlYlNvY2tldEZyYW1lLmgiCiAjaW5jbHVkZSA8d3RmL0ZvcndhcmQuaD4KICNpbmNsdWRlIDx3
dGYvT2JqZWN0SWRlbnRpZmllci5oPgogCkBAIC0zNSw3ICszNiw2IEBAIGNsYXNzIFJlc291cmNl
UmVxdWVzdDsKIGNsYXNzIFJlc291cmNlUmVzcG9uc2U7CiBjbGFzcyBXZWJTb2NrZXRDaGFubmVs
OwogY2xhc3MgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcjsKLXN0cnVjdCBXZWJTb2NrZXRGcmFt
ZTsKIAogdXNpbmcgV2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIgPSBPYmplY3RJZGVudGlmaWVy
PFdlYlNvY2tldENoYW5uZWw+OwogCkBAIC00MywxNyArNDMsMjAgQEAgY2xhc3MgV0VCQ09SRV9F
WFBPUlQgV2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvciB7CiBwdWJsaWM6CiAgICAgZXhwbGljaXQg
V2ViU29ja2V0Q2hhbm5lbEluc3BlY3RvcihEb2N1bWVudCYpOwogCi0gICAgdm9pZCBkaWRDcmVh
dGVXZWJTb2NrZXQoRG9jdW1lbnQqLCBjb25zdCBVUkwmKTsKLSAgICB2b2lkIHdpbGxTZW5kV2Vi
U29ja2V0SGFuZHNoYWtlUmVxdWVzdChEb2N1bWVudCosIGNvbnN0IFJlc291cmNlUmVxdWVzdCYp
OwotICAgIHZvaWQgZGlkUmVjZWl2ZVdlYlNvY2tldEhhbmRzaGFrZVJlc3BvbnNlKERvY3VtZW50
KiwgY29uc3QgUmVzb3VyY2VSZXNwb25zZSYpOwotICAgIHZvaWQgZGlkQ2xvc2VXZWJTb2NrZXQo
RG9jdW1lbnQqKTsKLSAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShEb2N1bWVudCos
IGNvbnN0IFdlYlNvY2tldEZyYW1lJik7Ci0gICAgdm9pZCBkaWRTZW5kV2ViU29ja2V0RnJhbWUo
RG9jdW1lbnQqLCBjb25zdCBXZWJTb2NrZXRGcmFtZSYpOwotICAgIHZvaWQgZGlkUmVjZWl2ZVdl
YlNvY2tldEZyYW1lRXJyb3IoRG9jdW1lbnQqLCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSk7
CisgICAgdm9pZCBkaWRDcmVhdGVXZWJTb2NrZXQoY29uc3QgVVJMJikgY29uc3Q7CisgICAgdm9p
ZCB3aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QoY29uc3QgUmVzb3VyY2VSZXF1ZXN0
JikgY29uc3Q7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2Uo
Y29uc3QgUmVzb3VyY2VSZXNwb25zZSYpIGNvbnN0OworICAgIHZvaWQgZGlkQ2xvc2VXZWJTb2Nr
ZXQoKSBjb25zdDsKKyAgICB2b2lkIGRpZFJlY2VpdmVXZWJTb2NrZXRGcmFtZShjb25zdCBXZWJT
b2NrZXRGcmFtZSYpIGNvbnN0OworICAgIHZvaWQgZGlkU2VuZFdlYlNvY2tldEZyYW1lKGNvbnN0
IFdlYlNvY2tldEZyYW1lJikgY29uc3Q7CisgICAgdm9pZCBkaWRSZWNlaXZlV2ViU29ja2V0RnJh
bWVFcnJvcihjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkgY29uc3Q7CiAgICAgCiAgICAgV2Vi
U29ja2V0Q2hhbm5lbElkZW50aWZpZXIgcHJvZ3Jlc3NJZGVudGlmaWVyKCkgY29uc3Q7CiAKKyAg
ICBzdGF0aWMgV2ViU29ja2V0RnJhbWUgY3JlYXRlRnJhbWUoY29uc3QgdWludDhfdCogZGF0YSwg
c2l6ZV90IGxlbmd0aCwgV2ViU29ja2V0RnJhbWU6Ok9wQ29kZSk7CisKIHByaXZhdGU6CisgICAg
V2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1bWVudDsKICAgICBXZWJTb2NrZXRDaGFubmVsSWRlbnRp
ZmllciBtX3Byb2dyZXNzSWRlbnRpZmllcjsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYnNvY2tldHMvV29ya2VyVGhyZWFkYWJsZVdl
YlNvY2tldENoYW5uZWwuY3BwCmluZGV4IDlmYmM5NGU3Y2VmNjNkNzQxYjMxZGFjMmViNzhkYTdk
YjUwMTU2YTIuLjkzMzRjNTUxYzQ0ZTQxNTMxZTBkNTY2ZjIyYjUyOTY5ZDQ2MTBkODIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0cy9Xb3JrZXJUaHJlYWRhYmxl
V2ViU29ja2V0Q2hhbm5lbC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2Nr
ZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmNwcApAQCAtMzIzLDEzICszMjMs
MTMgQEAgdm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkQ2xv
c2UodW5zaWduZWQgdW5oYW5kbGVkQnVmZmVyZWQKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0KIAot
dm9pZCBXb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6UGVlcjo6ZGlkUmVjZWl2ZU1l
c3NhZ2VFcnJvcigpCit2b2lkIFdvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsOjpQZWVy
OjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKGNvbnN0IFN0cmluZyYgcmVhc29uKQogewogICAgIEFT
U0VSVChpc01haW5UaHJlYWQoKSk7CiAKLSAgICBtX2xvYWRlclByb3h5LnBvc3RUYXNrRm9yTW9k
ZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3dvcmtlckNsaWVudFdyYXBwZXIgPSBtX3dv
cmtlckNsaWVudFdyYXBwZXJdKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpIG11dGFi
bGUgeworICAgIG1fbG9hZGVyUHJveHkucG9zdFRhc2tGb3JNb2RlVG9Xb3JrZXJPcldvcmtsZXRH
bG9iYWxTY29wZShbd29ya2VyQ2xpZW50V3JhcHBlciA9IG1fd29ya2VyQ2xpZW50V3JhcHBlciwg
cmVhc29uID0gcmVhc29uLmlzb2xhdGVkQ29weSgpXShTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBj
b250ZXh0KSBtdXRhYmxlIHsKICAgICAgICAgQVNTRVJUX1VOVVNFRChjb250ZXh0LCBjb250ZXh0
LmlzV29ya2VyR2xvYmFsU2NvcGUoKSB8fCBjb250ZXh0LmlzV29ya2xldEdsb2JhbFNjb3BlKCkp
OwotICAgICAgICB3b3JrZXJDbGllbnRXcmFwcGVyLT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7
CisgICAgICAgIHdvcmtlckNsaWVudFdyYXBwZXItPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVh
c29uKTsKICAgICB9LCBtX3Rhc2tNb2RlKTsKIH0KIApAQCAtNDIwLDcgKzQyMCw3IEBAIHZvaWQg
V29ya2VyVGhyZWFkYWJsZVdlYlNvY2tldENoYW5uZWw6OkJyaWRnZTo6Y29ubmVjdChjb25zdCBV
UkwmIHVybCwgY29uc3QgU3RyCiAgICAgICAgIH0KIAogICAgICAgICBpZiAocGVlci0+Y29ubmVj
dCh1cmwsIHByb3RvY29sKSA9PSBUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0
YXR1czo6S08pCi0gICAgICAgICAgICBwZWVyLT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKCk7Cisg
ICAgICAgICAgICBwZWVyLT5kaWRSZWNlaXZlTWVzc2FnZUVycm9yKG51bGxTdHJpbmcoKSk7CiAg
ICAgfSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vic29ja2V0
cy9Xb3JrZXJUaHJlYWRhYmxlV2ViU29ja2V0Q2hhbm5lbC5oIGIvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKaW5kZXgg
NmFjOTNmY2RkYmZjMDFhMGE3MWRlYTM5NmIxZmE5NzgzODE3ODM4OS4uMTFkZjA2MTcyMmNkMDY3
YmU5YjExMGNjZjc2NTA3ZGJmMDQ2N2ZiMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2NrZXRDaGFubmVsLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJzb2NrZXRzL1dvcmtlclRocmVhZGFibGVXZWJTb2Nr
ZXRDaGFubmVsLmgKQEAgLTk0LDcgKzk0LDcgQEAgcHVibGljOgogICAgICAgICB2b2lkIGRpZFVw
ZGF0ZUJ1ZmZlcmVkQW1vdW50KHVuc2lnbmVkIGJ1ZmZlcmVkQW1vdW50KSBmaW5hbDsKICAgICAg
ICAgdm9pZCBkaWRTdGFydENsb3NpbmdIYW5kc2hha2UoKSBmaW5hbDsKICAgICAgICAgdm9pZCBk
aWRDbG9zZSh1bnNpZ25lZCB1bmhhbmRsZWRCdWZmZXJlZEFtb3VudCwgQ2xvc2luZ0hhbmRzaGFr
ZUNvbXBsZXRpb25TdGF0dXMsIHVuc2lnbmVkIHNob3J0IGNvZGUsIGNvbnN0IFN0cmluZyYgcmVh
c29uKSBmaW5hbDsKLSAgICAgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2FnZUVycm9yKCkgZmluYWw7
CisgICAgICAgIHZvaWQgZGlkUmVjZWl2ZU1lc3NhZ2VFcnJvcihjb25zdCBTdHJpbmcmIHJlYXNv
bikgZmluYWw7CiAgICAgICAgIHZvaWQgZGlkVXBncmFkZVVSTCgpIGZpbmFsOwogCiAgICAgcHJp
dmF0ZToKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNv
Y2tldENoYW5uZWwuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29j
a2V0Q2hhbm5lbC5jcHAKaW5kZXggNWE3NWYzNjY4YjJkYjU1ZDMzZWZiM2UxNmEzYzA1NTNmNjVi
ZDYzZC4uNDNlNGMwZTFjM2VlNWY5MDVmZjZhNDY2YWE5ODQzN2JlYzBjNzgzZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5jcHAK
KysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5j
cHAKQEAgLTUxLDcgKzUxLDcgQEAgUmVmPFdlYlNvY2tldENoYW5uZWw+IFdlYlNvY2tldENoYW5u
ZWw6OmNyZWF0ZShXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm8KIHZvaWQgV2ViU29j
a2V0Q2hhbm5lbDo6bm90aWZ5U2VuZEZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGUgb3BDb2Rl
LCBjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoKQogewogICAgIFdlYlNvY2tldEZy
YW1lIGZyYW1lKG9wQ29kZSwgdHJ1ZSwgZmFsc2UsIHRydWUsIGRhdGEsIGxlbmd0aCk7Ci0gICAg
bV9pbnNwZWN0b3IuZGlkU2VuZFdlYlNvY2tldEZyYW1lKG1fZG9jdW1lbnQuZ2V0KCksIGZyYW1l
KTsKKyAgICBtX2luc3BlY3Rvci5kaWRTZW5kV2ViU29ja2V0RnJhbWUoZnJhbWUpOwogfQogCiBO
ZXR3b3JrU2VuZFF1ZXVlIFdlYlNvY2tldENoYW5uZWw6OmNyZWF0ZU1lc3NhZ2VRdWV1ZShEb2N1
bWVudCYgZG9jdW1lbnQsIFdlYlNvY2tldENoYW5uZWwmIGNoYW5uZWwpCkBAIC0xMTYsNyArMTE2
LDcgQEAgV2ViU29ja2V0Q2hhbm5lbDo6Q29ubmVjdFN0YXR1cyBXZWJTb2NrZXRDaGFubmVsOjpj
b25uZWN0KGNvbnN0IFVSTCYgdXJsLCBjb25zdAogICAgIGlmIChyZXF1ZXN0LT51cmwoKSAhPSB1
cmwgJiYgbV9jbGllbnQpCiAgICAgICAgIG1fY2xpZW50LT5kaWRVcGdyYWRlVVJMKCk7CiAKLSAg
ICBtX2luc3BlY3Rvci5kaWRDcmVhdGVXZWJTb2NrZXQobV9kb2N1bWVudC5nZXQoKSwgdXJsKTsK
KyAgICBtX2luc3BlY3Rvci5kaWRDcmVhdGVXZWJTb2NrZXQodXJsKTsKICAgICBtX3VybCA9IHJl
cXVlc3QtPnVybCgpOwogICAgIE1lc3NhZ2VTZW5kZXI6OnNlbmQoTWVzc2FnZXM6Ok5ldHdvcmtD
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpDcmVhdGVTb2NrZXRDaGFubmVsIHsgKnJlcXVlc3QsIHBy
b3RvY29sLCBtX2lkZW50aWZpZXIsIG1fd2ViUGFnZVByb3h5SUQsIG1fZG9jdW1lbnQtPmNsaWVu
dE9yaWdpbigpLCBXZWJQcm9jZXNzOjpzaW5nbGV0b24oKS5oYWRNYWluRnJhbWVNYWluUmVzb3Vy
Y2VQcml2YXRlUmVsYXllZCgpIH0pOwogICAgIHJldHVybiBDb25uZWN0U3RhdHVzOjpPSzsKQEAg
LTIwOCw3ICsyMDgsNyBAQCB2b2lkIFdlYlNvY2tldENoYW5uZWw6OmNsb3NlKGludCBjb2RlLCBj
b25zdCBTdHJpbmcmIHJlYXNvbikKICAgICBBU1NFUlQoY29kZSA+PSAwIHx8IGNvZGUgPT0gV2Vi
Q29yZTo6V2ViU29ja2V0Q2hhbm5lbDo6Q2xvc2VFdmVudENvZGVOb3RTcGVjaWZpZWQpOwogCiAg
ICAgV2ViU29ja2V0RnJhbWUgY2xvc2luZ0ZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENvZGVDbG9z
ZSwgdHJ1ZSwgZmFsc2UsIHRydWUpOwotICAgIG1faW5zcGVjdG9yLmRpZFNlbmRXZWJTb2NrZXRG
cmFtZShtX2RvY3VtZW50LmdldCgpLCBjbG9zaW5nRnJhbWUpOworICAgIG1faW5zcGVjdG9yLmRp
ZFNlbmRXZWJTb2NrZXRGcmFtZShjbG9zaW5nRnJhbWUpOwogCiAgICAgTWVzc2FnZVNlbmRlcjo6
c2VuZChNZXNzYWdlczo6TmV0d29ya1NvY2tldENoYW5uZWw6OkNsb3NlIHsgY29kZSwgcmVhc29u
IH0pOwogfQpAQCAtMjIwLDcgKzIyMCw3IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZmFpbChj
b25zdCBTdHJpbmcmIHJlYXNvbikKIAogICAgIGxvZ0Vycm9yTWVzc2FnZShyZWFzb24pOwogICAg
IGlmIChtX2NsaWVudCkKLSAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3Io
KTsKKyAgICAgICAgbV9jbGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IocmVhc29uKTsKIAog
ICAgIGlmIChtX2lzQ2xvc2luZykKICAgICAgICAgcmV0dXJuOwpAQCAtMjM1LDcgKzIzNSw3IEBA
IHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlzY29ubmVjdCgpCiAgICAgbV9kb2N1bWVudCA9IG51
bGxwdHI7CiAgICAgbV9tZXNzYWdlUXVldWUuY2xlYXIoKTsKIAotICAgIG1faW5zcGVjdG9yLmRp
ZENsb3NlV2ViU29ja2V0KG1fZG9jdW1lbnQuZ2V0KCkpOworICAgIG1faW5zcGVjdG9yLmRpZENs
b3NlV2ViU29ja2V0KCk7CiAKICAgICBNZXNzYWdlU2VuZGVyOjpzZW5kKE1lc3NhZ2VzOjpOZXR3
b3JrU29ja2V0Q2hhbm5lbDo6Q2xvc2UgeyBXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsOjpDbG9z
ZUV2ZW50Q29kZUdvaW5nQXdheSwgeyB9IH0pOwogfQpAQCAtMjUzLDI0ICsyNTMsNiBAQCB2b2lk
IFdlYlNvY2tldENoYW5uZWw6OmRpZENvbm5lY3QoU3RyaW5nJiYgc3VicHJvdG9jb2wsIFN0cmlu
ZyYmIGV4dGVuc2lvbnMpCiAgICAgbV9jbGllbnQtPmRpZENvbm5lY3QoKTsKIH0KIAotc3RhdGlj
IGlubGluZSBXZWJTb2NrZXRGcmFtZSBjcmVhdGVXZWJTb2NrZXRGcmFtZUZvcldlYkluc3BlY3Rv
cihjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3QgbGVuZ3RoLCBXZWJTb2NrZXRGcmFtZTo6T3BD
b2RlIG9wQ29kZSkKLXsKLSAgICAvLyBUaGlzIGlzIGFuIGFwcHJveGltYXRpb24gc2luY2UgZnJh
bWVzIGNhbiBiZSBtZXJnZWQgb24gYSBzaW5nbGUgbWVzc2FnZS4KLSAgICBXZWJTb2NrZXRGcmFt
ZSBmcmFtZTsKLSAgICBmcmFtZS5vcENvZGUgPSBvcENvZGU7Ci0gICAgZnJhbWUubWFza2VkID0g
ZmFsc2U7Ci0gICAgZnJhbWUucGF5bG9hZCA9IGRhdGE7Ci0gICAgZnJhbWUucGF5bG9hZExlbmd0
aCA9IGxlbmd0aDsKLQotICAgIC8vIFdlYkluc3BlY3RvciBkb2VzIG5vdCB1c2UgdGhlbS4KLSAg
ICBmcmFtZS5maW5hbCA9IGZhbHNlOwotICAgIGZyYW1lLmNvbXByZXNzID0gZmFsc2U7Ci0gICAg
ZnJhbWUucmVzZXJ2ZWQyID0gZmFsc2U7Ci0gICAgZnJhbWUucmVzZXJ2ZWQzID0gZmFsc2U7Ci0K
LSAgICByZXR1cm4gZnJhbWU7Ci19Ci0KIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2
ZVRleHQoU3RyaW5nJiYgbWVzc2FnZSkKIHsKICAgICBpZiAobV9pc0Nsb3NpbmcpCkBAIC0yNzks
OSArMjYxLDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRSZWNlaXZlVGV4dChTdHJpbmcm
JiBtZXNzYWdlKQogICAgIGlmICghbV9jbGllbnQpCiAgICAgICAgIHJldHVybjsKIAotICAgIGF1
dG8gdXRmOE1lc3NhZ2UgPSBtZXNzYWdlLnV0ZjgoKTsKLSAgICBtX2luc3BlY3Rvci5kaWRSZWNl
aXZlV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY3JlYXRlV2ViU29ja2V0RnJhbWVG
b3JXZWJJbnNwZWN0b3IodXRmOE1lc3NhZ2UuZGF0YUFzVUludDhQdHIoKSwgdXRmOE1lc3NhZ2Uu
bGVuZ3RoKCksIFdlYlNvY2tldEZyYW1lOjpPcENvZGU6Ok9wQ29kZVRleHQpKTsKLQogICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlTWVzc2FnZShtZXNzYWdlKTsKIH0KIApAQCAtMjkzLDggKzI3Miw2
IEBAIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZUJpbmFyeURhdGEoSVBDOjpEYXRh
UmVmZXJlbmNlJiYgZGF0YSkKICAgICBpZiAoIW1fY2xpZW50KQogICAgICAgICByZXR1cm47CiAK
LSAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZlV2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQo
KSwgY3JlYXRlV2ViU29ja2V0RnJhbWVGb3JXZWJJbnNwZWN0b3IoZGF0YS5kYXRhKCksIGRhdGEu
c2l6ZSgpLCBXZWJTb2NrZXRGcmFtZTo6T3BDb2RlOjpPcENvZGVCaW5hcnkpKTsKLQogICAgIG1f
Y2xpZW50LT5kaWRSZWNlaXZlQmluYXJ5RGF0YSh7IGRhdGEgfSk7CiB9CiAKQEAgLTMwMywxMCAr
MjgwLDYgQEAgdm9pZCBXZWJTb2NrZXRDaGFubmVsOjpkaWRDbG9zZSh1bnNpZ25lZCBzaG9ydCBj
b2RlLCBTdHJpbmcmJiByZWFzb24pCiAgICAgaWYgKCFtX2NsaWVudCkKICAgICAgICAgcmV0dXJu
OwogCi0gICAgV2ViU29ja2V0RnJhbWUgY2xvc2luZ0ZyYW1lKFdlYlNvY2tldEZyYW1lOjpPcENv
ZGVDbG9zZSwgdHJ1ZSwgZmFsc2UsIGZhbHNlKTsKLSAgICBtX2luc3BlY3Rvci5kaWRSZWNlaXZl
V2ViU29ja2V0RnJhbWUobV9kb2N1bWVudC5nZXQoKSwgY2xvc2luZ0ZyYW1lKTsKLSAgICBtX2lu
c3BlY3Rvci5kaWRDbG9zZVdlYlNvY2tldChtX2RvY3VtZW50LmdldCgpKTsKLQogICAgIC8vIEFu
IGF0dGVtcHQgdG8gc2VuZCBjbG9zaW5nIGhhbmRzaGFrZSBtYXkgZmFpbCwgd2hpY2ggd2lsbCBn
ZXQgdGhlIGNoYW5uZWwgY2xvc2VkIGFuZCBkZXJlZmVyZW5jZWQuCiAgICAgUmVmIHByb3RlY3Rl
ZFRoaXMgeyAqdGhpcyB9OwogCkBAIC0zMzYsNyArMzA5LDcgQEAgdm9pZCBXZWJTb2NrZXRDaGFu
bmVsOjpkaWRSZWNlaXZlTWVzc2FnZUVycm9yKFN0cmluZyYmIGVycm9yTWVzc2FnZSkKICAgICAg
ICAgcmV0dXJuOwogCiAgICAgbG9nRXJyb3JNZXNzYWdlKGVycm9yTWVzc2FnZSk7Ci0gICAgbV9j
bGllbnQtPmRpZFJlY2VpdmVNZXNzYWdlRXJyb3IoKTsKKyAgICBtX2NsaWVudC0+ZGlkUmVjZWl2
ZU1lc3NhZ2VFcnJvcihlcnJvck1lc3NhZ2UpOwogfQogCiB2b2lkIFdlYlNvY2tldENoYW5uZWw6
Om5ldHdvcmtQcm9jZXNzQ3Jhc2hlZCgpCkBAIC0zNTQsMTMgKzMyNywxMyBAQCB2b2lkIFdlYlNv
Y2tldENoYW5uZWw6OnJlc3VtZSgpCiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkU2VuZEhh
bmRzaGFrZVJlcXVlc3QoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCkKIHsKLSAgICBtX2luc3Bl
Y3Rvci53aWxsU2VuZFdlYlNvY2tldEhhbmRzaGFrZVJlcXVlc3QobV9kb2N1bWVudC5nZXQoKSwg
cmVxdWVzdCk7CisgICAgbV9pbnNwZWN0b3Iud2lsbFNlbmRXZWJTb2NrZXRIYW5kc2hha2VSZXF1
ZXN0KHJlcXVlc3QpOwogICAgIG1faGFuZHNoYWtlUmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCk7
CiB9CiAKIHZvaWQgV2ViU29ja2V0Q2hhbm5lbDo6ZGlkUmVjZWl2ZUhhbmRzaGFrZVJlc3BvbnNl
KFJlc291cmNlUmVzcG9uc2UmJiByZXNwb25zZSkKIHsKLSAgICBtX2luc3BlY3Rvci5kaWRSZWNl
aXZlV2ViU29ja2V0SGFuZHNoYWtlUmVzcG9uc2UobV9kb2N1bWVudC5nZXQoKSwgcmVzcG9uc2Up
OworICAgIG1faW5zcGVjdG9yLmRpZFJlY2VpdmVXZWJTb2NrZXRIYW5kc2hha2VSZXNwb25zZShy
ZXNwb25zZSk7CiAgICAgbV9oYW5kc2hha2VSZXNwb25zZSA9IFdURk1vdmUocmVzcG9uc2UpOwog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2Nr
ZXRDaGFubmVsLmggYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvTmV0d29yay9XZWJTb2NrZXRD
aGFubmVsLmgKaW5kZXggYmU4ZTc2OTAxZGZiNDVjYmY5YjQxOWVmOWMwNjQ5NjljMzg5ZDMzZS4u
MjdjMDI3NDk0NmI4MDQwNzU5ZjA4NzAzNmEwNGFhNzk1ZTlmNzA2MSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL05ldHdvcmsvV2ViU29ja2V0Q2hhbm5lbC5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9OZXR3b3JrL1dlYlNvY2tldENoYW5uZWwuaApAQCAtOTcs
NiArOTcsNyBAQCBwcml2YXRlOgogICAgIHZvaWQgZGVjcmVhc2VCdWZmZXJlZEFtb3VudChzaXpl
X3QpOwogICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+IHZvaWQgc2VuZE1lc3NhZ2UoVCYmLCBzaXpl
X3QgYnl0ZUxlbmd0aCk7CiAKKyAgICBjb25zdCBXZWJDb3JlOjpXZWJTb2NrZXRDaGFubmVsSW5z
cGVjdG9yKiBjaGFubmVsSW5zcGVjdG9yKCkgY29uc3QgZmluYWwgeyByZXR1cm4gJm1faW5zcGVj
dG9yOyB9CiAgICAgV2ViQ29yZTo6V2ViU29ja2V0Q2hhbm5lbElkZW50aWZpZXIgcHJvZ3Jlc3NJ
ZGVudGlmaWVyKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9pbnNwZWN0b3IucHJvZ3Jlc3NJZGVu
dGlmaWVyKCk7IH0KICAgICBib29sIGhhc0NyZWF0ZWRIYW5kc2hha2UoKSBjb25zdCBmaW5hbCB7
IHJldHVybiAhbV91cmwuaXNOdWxsKCk7IH0KICAgICBib29sIGlzQ29ubmVjdGVkKCkgY29uc3Qg
ZmluYWwgeyByZXR1cm4gIW1faGFuZHNoYWtlUmVzcG9uc2UuaXNOdWxsKCk7IH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>