<?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>234892</bug_id>
          
          <creation_ts>2022-01-05 11:29:23 -0800</creation_ts>
          <short_desc>Make WebResourceLoadStatisticsStore a MessageReceiver</short_desc>
          <delta_ts>2022-01-16 12:39:33 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>NEW</bug_status>
          <resolution></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="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>annulen</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>mkwst</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1828337</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-05 11:29:23 -0800</bug_when>
    <thetext>Make WebResourceLoadStatisticsStore a MessageReceiver</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828339</commentid>
    <comment_count>1</comment_count>
      <attachid>448413</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-05 11:31:26 -0800</bug_when>
    <thetext>Created attachment 448413
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828346</commentid>
    <comment_count>2</comment_count>
      <attachid>448414</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-05 11:47:40 -0800</bug_when>
    <thetext>Created attachment 448414
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828348</commentid>
    <comment_count>3</comment_count>
      <attachid>448415</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-05 12:05:44 -0800</bug_when>
    <thetext>Created attachment 448415
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828443</commentid>
    <comment_count>4</comment_count>
      <attachid>448415</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2022-01-05 16:02:58 -0800</bug_when>
    <thetext>Comment on attachment 448415
Patch

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

r=me bar addressing the test failures.

&gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:-85
&gt; -void WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned(bool value)

Was this intentionally deleted? Doesn&apos;t seem to be part of the gist of this patch. A comment on why it can be removed would be good.

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:539
&gt;  void NetworkProcess::updatePrevalentDomainsToBlockCookiesFor(PAL::SessionID sessionID, const Vector&lt;RegistrableDomain&gt;&amp; domainsToBlock, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

Was this particular one not moved?

&gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:684
&gt; +void NetworkProcess::setShouldEnableSameSiteStrictEnforcementForTesting(PAL::SessionID sessionID, WebCore::SameSiteStrictEnforcementEnabled enabled, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)

Nice catch.

&gt; Source/WebKit/UIProcess/WebPageProxy.cpp:5572
&gt; +    websiteDataStore().networkProcess().send(Messages::WebResourceLoadStatisticsStore::LogFrameNavigation(RegistrableDomain { targetURL }, RegistrableDomain { pageURL }, RegistrableDomain { sourceURL }, isRedirect, frame.isMainFrame(), MonotonicTime::now() - m_didFinishDocumentLoadForMainFrameTimestamp, wasPotentiallyInitiatedByUser), sessionID().toUInt64());

Would be nice to be able to send session ID objects directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828468</commentid>
    <comment_count>5</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-05 17:17:59 -0800</bug_when>
    <thetext>(In reply to John Wilander from comment #4)
&gt; Comment on attachment 448415 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=448415&amp;action=review
&gt; 
&gt; r=me bar addressing the test failures.
&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/Classifier/WebResourceLoadStatisticsStore.cpp:-85
&gt; &gt; -void WebResourceLoadStatisticsStore::setNotifyPagesWhenDataRecordsWereScanned(bool value)
&gt; 
&gt; Was this intentionally deleted? Doesn&apos;t seem to be part of the gist of this
&gt; patch. A comment on why it can be removed would be good.
It was dead code.  Will note in change log.

&gt; 
&gt; &gt; Source/WebKit/NetworkProcess/NetworkProcess.cpp:539
&gt; &gt;  void NetworkProcess::updatePrevalentDomainsToBlockCookiesFor(PAL::SessionID sessionID, const Vector&lt;RegistrableDomain&gt;&amp; domainsToBlock, CompletionHandler&lt;void()&gt;&amp;&amp; completionHandler)
&gt; 
&gt; Was this particular one not moved?
I only moved the ones that were straightforwardly doing nothing but finding the WebResourceLoadStatisticsStore and forwarding parameters to it.  This one goes to the NetworkStorageSession, so it&apos;ll be moved in a different patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828473</commentid>
    <comment_count>6</comment_count>
      <attachid>448457</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-05 17:35:17 -0800</bug_when>
    <thetext>Created attachment 448457
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828474</commentid>
    <comment_count>7</comment_count>
      <attachid>448458</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2022-01-05 17:36:47 -0800</bug_when>
    <thetext>Created attachment 448458
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830239</commentid>
    <comment_count>8</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-01-12 11:30:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/87471616&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1831321</commentid>
    <comment_count>9</comment_count>
      <attachid>448458</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-16 12:39:33 -0800</bug_when>
    <thetext>Comment on attachment 448458
Patch

TestWebKitAPI.ResourceLoadStatistics.DataSummaryWithCachedProcess test is failing</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448413</attachid>
            <date>2022-01-05 11:31:26 -0800</date>
            <delta_ts>2022-01-05 12:00:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234892-20220105113125.patch</filename>
            <type>text/plain</type>
            <size>120697</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmODk5ODU2NjQzNzRjNTU4
NWE1MTAzMjk5ZDdkZDQyOGUyZDcyNTcuLmM3MTA1ZGQwYTdkZGU5ZjI5OTI0NjI4MjdkMDE3ZTYw
ZmRhZGNiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI3IEBACisyMDIyLTAxLTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYSBNZXNzYWdlUmVjZWl2ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlzIGEgbG90IG9mIGJv
aWxlcnBsYXRlIGNvZGUgdGhhdCBmaW5kcyB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlIGFuZCBmb3J3YXJkcyB0aGUgSVBDIHBhcmFtZXRlcnMgdG8gaXQuCisgICAgICAgIExldCdz
IGp1c3Qgc2VuZCBtZXNzYWdlcyBkaXJlY3RseSB0byB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLgorICAgICAgICBBbHNvIHJlbW92ZSB0aGUgdW51c2VkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5oLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1bXBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmlzR3JhbmRmYXRoZXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjppc1ByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50
UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1Vw
ZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpnZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzUHJvY2Vzc2luZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21h
aW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4p
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0TGFzdFNlZW4pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1lcmdlU3RhdGlzdGljRm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbnNlcnRF
eHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmhhZFVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc1JlbGF0aW9uc2hpcE9ubHlJbkRh
dGFiYXNlT25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpj
bGVhclVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0TWF4U3RhdGlzdGljc0VudHJpZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJl
Y29yZHNSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnNldFBydW5lRW50cmllc0Rvd25Ubyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RXBoZW1lcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFwcEJvdW5kRG9tYWluc0Zv
clJlc291cmNlTG9hZFN0YXRpc3RpY3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJl
c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRh
Ymxlcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1VzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Omhhc0hhZFVz
ZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Omlz
UmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRmYXRoZXJlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YVN1bW1hcnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3Zh
bCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFBydW5lRW50cmll
c0Rvd25Ubyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmFibGVTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZEVu
YmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIyLTAxLTA0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFBhcnRpYWwgcmV2ZXJ0IG9mIGh0dHBzOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yODczNzEvd2Via2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAyNTllNDcyYjU3
ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxLi44ZmMwMjA2NTRhZTUxYTE5N2JkZTNhZjBh
NGIyZmEyY2E3N2JiODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE4NSw2ICsxODUsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcgogCisgICAgTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUKKwogICAgIE5ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlcgogCiAgICAgTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGI2MjE4OWNiNDc4
ZjVlZTJkMTZmZDUzMTg0MWI4YzI2NmVjYjk3ZTEuLjMxNzBkNWNiNDAxNzA2MzQ0ZmQ1NDhhMmM0
NzRlZWY4ODBjOGVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0MCw2ICsx
NDAsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0
b3IgXAogCU5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eSBcCisJTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUgXAogCU5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlciBcCiAJ
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIgXAogCVNoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZmNjdiZjA4OGRj
NjAwMjIzZjhiZmEzMGZkZjc4NDhlMGJlZWQyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLQotI2luY2x1ZGUgIlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oIgotI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1jbGFzcyBLZXllZERlY29kZXI7Ci1jbGFzcyBLZXllZEVuY29kZXI7Ci1lbnVtIGNs
YXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA6IGJvb2w7Ci1lbnVtIGNsYXNzIFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkIDogYm9vbDsKLXN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gVGhpcyBpcyBhbHdheXMgY29uc3RydWN0
ZWQgLyB1c2VkIC8gZGVzdHJveWVkIG9uIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUncyBzdGF0aXN0aWNzIHF1ZXVlLgotY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlIGZpbmFsIDogcHVibGljIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB7Ci1wdWJs
aWM6Ci0gICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSYsIFN1c3BlbmRhYmxlV29ya1F1ZXVlJiwgU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCk7Ci0KLSAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBWZWN0
b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gYWdncmVn
YXRlZFRoaXJkUGFydHlEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgY29uc3QgSGFzaE1hcDxS
ZWdpc3RyYWJsZURvbWFpbiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M+PiYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwOyB9Ci0K
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWRFbmNvZGVyPiBjcmVhdGVFbmNvZGVy
RnJvbURhdGEoKSBjb25zdDsKLSAgICB2b2lkIG1lcmdlV2l0aERhdGFGcm9tRGVjb2RlcihXZWJD
b3JlOjpLZXllZERlY29kZXImKTsKLQotICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNzKFZlY3RvcjxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHByb2Nlc3NTdGF0
aXN0aWNzKGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYp
PiYpIGNvbnN0OwotCi0gICAgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBjbGFzc2lmeVByZXZhbGVudFJl
c291cmNlcygpIG92ZXJyaWRlOwotCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVy
T3BlbmVyKERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgT3BlbmVyRG9tYWluJiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBncmFuZGZhdGhlckRh
dGFGb3JEb21haW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jikgb3ZlcnJpZGU7
Ci0KLSAgICBib29sIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihjb25zdCBTdWJSZXNv
dXJjZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWluJiwgY29uc3QgUmVk
aXJlY3RlZFRvRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNsZWFyUHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlkZTsKLSAgICB2b2lk
IGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
U3RyaW5nJik+JiYpIGZpbmFsOwotICAgIGJvb2wgaXNQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mKSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgdmFsdWUpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAg
ICB2b2lkIHNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVEb21haW4oY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3REb21haW4m
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKGNv
bnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3REb21haW4mKSBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IFJlZGlyZWN0RG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0
RG9tYWluJikgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGFyZUFsbFRoaXJkUGFydHlDb29raWVzQmxv
Y2tlZFVuZGVyKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgQ29va2llQWNj
ZXNzIGNvb2tpZUFjY2Vzcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mKTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Njb3Bl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRp
b24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0
IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUs
IFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRp
YWxseUluaXRpYXRlZEJ5VXNlcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92
ZXJyaWRlOwotICAgIHZvaWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25z
dCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mKSBvdmVycmlk
ZTsKLQotICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotICAgIGJvb2wgaGFz
SGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgT3BlcmF0aW5nRGF0
ZXNXaW5kb3cpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlRGF0YUZvckRv
bWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIFZlY3RvcjxSZWdp
c3RyYWJsZURvbWFpbj4gYWxsRG9tYWlucygpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgaW5zZXJ0
RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNp
Z25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFzVXNlckludGVyYWN0aW9u
LCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2
YWxlbnQpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZvaWQgaW5jbHVkZVRvZGF5QXNPcGVy
YXRpbmdEYXRlSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKLSAgICBjb25zdCBWZWN0b3I8T3BlcmF0
aW5nRGF0ZT4mIG9wZXJhdGluZ0RhdGVzKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRpbmdEYXRl
czsgfQotICAgIHZvaWQgY2xlYXJPcGVyYXRpbmdEYXRlcygpIG92ZXJyaWRlIHsgbV9vcGVyYXRp
bmdEYXRlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBtZXJnZU9wZXJhdGluZ0RhdGVzKFZlY3RvcjxP
cGVyYXRpbmdEYXRlPiYmKTsKLSAgICBib29sIGhhc1N0YXRpc3RpY3NFeHBpcmVkKGNvbnN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3MmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgY29uc3Q7Ci0gICAg
c3RhdGljIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtZXJnZU9wZXJhdGluZ0RhdGVzKGNvbnN0IFZl
Y3RvcjxPcGVyYXRpbmdEYXRlPiYgZXhpc3RpbmdEYXRlcywgVmVjdG9yPE9wZXJhdGluZ0RhdGU+
JiYgbmV3RGF0ZXMpOwotICAgIGJvb2wgaGFzU3RhdGlzdGljc0V4cGlyZWQoV2FsbFRpbWUgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIE9wZXJhdGluZ0RhdGVzV2luZG93KSBjb25zdCBv
dmVycmlkZTsKLQotICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2VlcENvb2tpZXMoY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2Nr
QW5kUHVyZ2VDb29raWVzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKLSAgICBzdGF0
aWMgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIGhhc1VzZXJHcmFudGVkU3Rv
cmFnZUFjY2Vzc1Rocm91Z2hQcm9tcHQoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9vbCBoYXNIYWRVbmV4cGlyZWRSZWNlbnRV
c2VySW50ZXJhY3Rpb24oUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIE9wZXJhdGluZ0RhdGVzV2lu
ZG93KSBjb25zdDsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKFJlc291
cmNlTG9hZFN0YXRpc3RpY3MmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNv
bnN0OwotICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKLSAg
ICBib29sIHNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKTsKLSAgICB2b2lkIGluY3Jl
bWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwotICAgIHVuc2lnbmVkIHJl
Y3Vyc2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbihjb25z
dCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVkVG9Eb21haW4+Jiwg
dW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYpOwotICAgIHZvaWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRp
cmVjdGVkVG9QcmV2YWxlbnQoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotICAgIGJvb2wgaXNQ
cmV2YWxlbnREdWVUb0RlYnVnTW9kZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7Ci0gICAgVmVj
dG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNGb3JEZWJ1Z01v
ZGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZURhdGFSZWNvcmRzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpIG92ZXJy
aWRlOwotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgUmVn
aXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IgcmVnaXN0cmFi
bGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IoKSBvdmVycmlkZTsKLSAg
ICBib29sIGlzTWVtb3J5U3RvcmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
c3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUoY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotCi0gICAgSGFzaE1hcDxSZWdpc3RyYWJsZURv
bWFpbiwgVW5pcXVlUmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+PiBtX3Jlc291cmNlU3RhdGlz
dGljc01hcDsKLSAgICBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4gbV9vcGVyYXRpbmdEYXRlczsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lO
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKQotICAgIHN0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3Rv
cmUpIHsgcmV0dXJuIHN0b3JlLmlzTWVtb3J5U3RvcmUoKTsgfQotU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggNzBiNWFmZGE1MjZlOTkwOWI5NjJkNzEyMTNkODViNjBiNTM3
MTgxZC4uNWViZTE3MGJhNGQ0OWFlZWJiMmJkNDY4YzM5YTdhNGZiNTI4MWZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTQyLDYgKzQy
LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGFGZXRjaE9wdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtODIsMTkgKzgzLDYgQEAg
Y29uc3QgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4mIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6bW9uaXRvcmVkRGF0YVQKICAgICByZXR1cm4gZGF0YVR5cGVzOwogfQogCi12b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChib29sIHZhbHVlKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0KLSAgICBpZiAoaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
cG9zdFRhc2soW3RoaXMsIHZhbHVlXSB7Ci0gICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9yZSkK
LSAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXROb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHZhbHVlKTsKLSAgICB9KTsKLX0KLQogdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNDksMTIgKzEzNywx
NiBAQCBzdGF0aWMgUmVmPFN1c3BlbmRhYmxlV29ya1F1ZXVlPiBzaGFyZWRTdGF0aXN0aWNzUXVl
dWUoKQogCiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9z
dCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVt
ZXJhbCBpc0VwaGVtZXJhbCkKICAgICA6IG1fbmV0d29ya1Nlc3Npb24obmV0d29ya1Nlc3Npb24p
CisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtTZXNzaW9uLm5ldHdvcmtQcm9jZXNzKCkp
CisgICAgLCBtX3Nlc3Npb25JRChuZXR3b3JrU2Vzc2lvbi5zZXNzaW9uSUQoKSkKICAgICAsIG1f
c3RhdGlzdGljc1F1ZXVlKHNoYXJlZFN0YXRpc3RpY3NRdWV1ZSgpKQogICAgICwgbV9kYWlseVRh
c2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKICAgICAsIG1faXNFcGhlbWVyYWwoaXNFcGhlbWVy
YWwpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9zZXNzaW9uSUQudG9V
SW50NjQoKSwgKnRoaXMpOworCiAgICAgLy8gTm8gZGFpbHkgdGFza3MgbmVlZGVkIGZvciBlcGhl
bWVyYWwgc2Vzc2lvbnMgc2luY2Ugbm8gcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGFyZSBjb2xs
ZWN0ZWQuCiAgICAgaWYgKGlzRXBoZW1lcmFsID09IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6Oklz
RXBoZW1lcmFsOjpZZXMpCiAgICAgICAgIHJldHVybjsKQEAgLTE3OCw2ICsxNzAsNyBAQCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBSRUxF
QVNFX0FTU0VSVCghbV9zdGF0aXN0aWNzU3RvcmUpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQog
CiBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzOjpJc0VwaGVtZXJhbCBpc0VwaGVtZXJhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA2NjFiMTU2M2VjNjRiNjZlNzhmMWY4ZDU1NGM2
ZDlkZjM3MzFhZTZiLi43Yzg4NjEzZGQ0N2I0Y2M3Njg1MDczMmI0MDVmMTYyZGExZjBkMzRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBAIC01MCw2ICs1MSwx
MSBAQAogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29k
ZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0
cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwpAQCAtNjAsNiArNjYsNyBAQCBlbnVtIGNsYXNz
IFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgOiB1aW50OF90OwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNs
YXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CkBA
IC04Nyw3ICs5NCw3IEBAIHN0cnVjdCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJp
Y3RXZWJzaXRlRGF0YUZvciB7CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gZG9t
YWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRGVsZXRlQWxs
QnV0SHR0cE9ubHlDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zVG9EZWxldGVBbGxOb25D
b29raWVXZWJzaXRlRGF0YUZvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRl
U3RyaWN0Rm9yLmlzRW1wdHkoKTsgfQogfTsKIAotY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4geworY2xh
c3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M7CiAgICAgdXNpbmcgUmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbjsKQEAgLTE0Miw3ICsxNDksNiBAQCBwdWJsaWM6CiAgICAgU3VzcGVuZGFi
bGVXb3JrUXVldWUmIHN0YXRpc3RpY3NRdWV1ZSgpIHsgcmV0dXJuIG1fc3RhdGlzdGljc1F1ZXVl
LmdldCgpOyB9CiAKICAgICB2b2lkIHBvcHVsYXRlTWVtb3J5U3RvcmVGcm9tRGlzayhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBTdG9yYWdl
QWNjZXNzU2NvcGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVxdWVzdFN0b3JhZ2VBY2Nlc3NS
ZXN1bHQpPiYmKTsKQEAgLTIzNCw4ICsyNDAsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IHJlc3VtZSgpOwogICAgIAogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJldHVybiBt
X2lzRXBoZW1lcmFsID09IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1l
cmFsOjpZZXM7IH07CisgICAgdm9pZCBpc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCgpKTsgfQogICAgIHZvaWQgaW5zZXJ0RXhwaXJlZFN0
YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNpZ25lZCBudW1i
ZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlz
U2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBj
b25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCk7CiAKQEAgLTI1OCw2ICsyNjcsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGVzdHJveVJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3
b3JrU2Vzc2lvbjsKKyAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7Cisg
ICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPFN1c3BlbmRhYmxlV29ya1F1
ZXVlPiBtX3N0YXRpc3RpY3NRdWV1ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlPiBtX3N0YXRpc3RpY3NTdG9yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGU0MDFjOGZlMGVkYzZmNTRkZGViNDIyYWI0N2VhNzRhNTVhMmRjOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw3NSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCisKK21lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSB7CisgICAgQ2xlYXJQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBDbGVhclVzZXJJbnRl
cmFjdGlvbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKKyAgICBEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIC0+IChTdHJpbmcgZHVtcGVk
U3RhdGlzdGljcykgQXN5bmMKKyAgICBJc0dyYW5kZmF0aGVyZWQoV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc0dyYW5kZmF0aGVyZWQpIEFzeW5jCisg
ICAgSXNQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXRE
b21haW4pIC0+IChib29sIGlzUHJldmFsZW50KSBBc3luYworICAgIElzVmVyeVByZXZhbGVudFJl
c291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJvb2wg
aXNWZXJ5UHJldmFsZW50KSBBc3luYworICAgIFNldExhc3RTZWVuKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisg
ICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
c291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0
U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNW
ZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCisg
ICAgSW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3Nl
ZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29r
aWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcmV2
YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikg
LT4gKCkgQXN5bmMKKyAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBJc1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoKSAtPiAoYm9vbCBpc0VwaGVtZXJhbCkgQXN5
bmMKKyAgICBIYXNIYWRVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
cmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5bmMKKyAgICBJ
c1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biBzdWJEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJv
b2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYworICAgIElzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1Jl
ZGlyZWN0aW5nVG8pIEFzeW5jCisgICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgaXNTdWJmcmFtZVVuZGVyKSBBc3luYwor
ICAgIElzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4pIC0+IChib29sIGlzU3VicmVzb3VyY2VVbmRlcikgQXN5bmMKKyAgICBEb21haW5J
REV4aXN0c0luRGF0YWJhc2UoaW50IGRvbWFpbklEKSAtPiAoYm9vbCBleGlzdHMpIEFzeW5jCisg
ICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIGJvb2wg
d2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCisgICAgTG9nVXNlckludGVyYWN0aW9uKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYworICAg
IFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcygpIC0+ICgpIEFzeW5jCisgICAgU2NoZWR1
bGVDb29raWVCbG9ja2luZ1VwZGF0ZSgpIC0+ICgpIEFzeW5jCisgICAgU2NoZWR1bGVTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKCkgLT4gKCkgQXN5bmMKKyAgICBTdGF0aXN0aWNz
RGF0YWJhc2VIYXNBbGxUYWJsZXMoKSAtPiAoYm9vbCBoYXNBbGxUYWJsZXMpIEFzeW5jCisgICAg
U2V0R3JhbmRmYXRoZXJlZChXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFp
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCisgICAgQWdncmVnYXRlZFRoaXJk
UGFydHlEYXRhKCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6VGhpcmRQYXJ0eURhdGE+IHRoaXJkUGFydHlEYXRhKSBBc3luYworICAgIFNldEdyYW5k
ZmF0aGVyaW5nVGltZShTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisgICAgU2V0TWF4U3Rh
dGlzdGljc0VudHJpZXModWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCisg
ICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFNlY29uZHMgc2Vjb25k
cykgLT4gKCkgQXN5bmMKKyAgICBTZXRQcnVuZUVudHJpZXNEb3duVG8odWludDY0X3QgbWF4aW11
bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCisgICAgU2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNC
ZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpIC0+ICgpIEFz
eW5jCisgICAgU2V0SXNSdW5uaW5nVGVzdChib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAgIFNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpIC0+ICgpIEFz
eW5jCisgICAgU2V0VmVyeVByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYworICAgIFNldFN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCisgICAg
U2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBz
dWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZy
b21Eb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisgICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9w
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9t
YWluKSAtPiAoKSBBc3luYworICAgIExvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24o
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdG9Eb21haW4pIC0+ICgpIEFzeW5jCisjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQorICAgIFNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmREb21haW5zKSAtPiAoKSBB
c3luYworI2VuZGlmCisgICAgU2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUoZW51
bTp1aW50OF90IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIG1vZGUp
IC0+ICgpIEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAyNmJkMTA3MTk5NGIzZjgyN2JkN2Q1OTc0NTM5
YWYxNDljMTYyMmNhLi5hMzc2ZTE5ZTE5MWUxNGU2MTMxNGZjZWNhMzA1Yjk2ZjVhZGViNWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNTM2LDE5ICs1MzYsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmR1bXBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9u
ID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAg
ICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9Ci19
Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29v
a2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJs
ZURvbWFpbj4mIGRvbWFpbnNUb0Jsb2NrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9
IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC01NTYsNDUgKzU0Myw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6
OlNlc3Npb25JRCBzZXNzCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdv
cmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAg
ICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc0dyYW5kZmF0aGVyZWQoZG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQot
ICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNQcmV2YWxlbnRSZXNvdXJjZShk
b21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0g
ICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0
QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6
Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9u
ID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAgLTYwMiw4NCArNTUwLDYgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBzdGQKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAo
YXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYg
KGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRHcmFuZGZh
dGhlcmVkKGRvbWFpbiwgaXNHcmFuZGZhdGhlcmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zZXRQcmV2YWxlbnRSZXNvdXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByZXZh
bGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGRvbWFp
biwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFZlcnlQcmV2YWxlbnRSZXNv
dXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9
Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcmV2YWxl
bnRSZXNvdXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlQ29va2llQmxvY2tpbmdV
cGRhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgU2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CkBAIC02OTcsMjU1ICs1NjcsNiBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRAogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6
Z2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5KFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+YWdn
cmVnYXRlZFRoaXJkUGFydHlEYXRhKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0UGFyYW1ldGVy
c1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgc2Vzc2lvbi0+cmVzZXRD
TkFNRURvbWFpbkRhdGEoKTsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNl
c3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MtPnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHZhbHVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8q
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRJc1J1bm5pbmdUZXN0
KHZhbHVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQot
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YmZyYW1lVW5kZXJU
b3BGcmFtZURvbWFpbihzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nl
c3M6OmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkRnJvbSwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9
IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAg
ICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oZG9tYWluUmVkaXJlY3RlZEZyb20sIGRvbWFpblJlZGlyZWN0ZWRUbywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRl
cihzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bihzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJyZXNv
dXJjZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZFRvLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
ID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy0+c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVz
b3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLT5pc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoc3VicmVzb3Vy
Y2VEb21haW4sIHRvcEZyYW1lRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZG9tYWluUmVkaXJlY3RlZFRvLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vz
c2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHRvcEZyYW1lRG9tYWluLCBk
b21haW5SZWRpcmVjdGVkVG8sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3Rl
ZEZyb20sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5z
ZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVkaXJl
Y3RlZEZyb20sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19
Ci0gICAgCi0gICAgCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRMYXN0U2VlbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIFNlY29uZHMg
c2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewot
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PnNldExhc3RTZWVuKGRvbWFpbiwgc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZG9tYWluSURFeGlz
dHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWFpbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBp
ZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmRvbWFpbklE
RXhpc3RzSW5EYXRhYmFzZShkb21haW5JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6Om1lcmdl
U3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBkb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbjEsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMg
bGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29s
IGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKGRvbWFpbiwgdG9wRnJhbWVEb21haW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVu
LCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRm
YXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVk
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lk
IE5ldHdvcmtQcm9jZXNzOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIHVuc2ln
bmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZh
bGVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewot
ICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAg
ICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlu
c2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGRvbWFpbiwgbnVtYmVyT2ZPcGVyYXRpbmdE
YXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2ll
RGF0YVJlbW92YWwsIGlzUHJldmFsZW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpnZXRBbGxTdG9yYWdlQWNj
ZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
aWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25J
RCkpCkBAIC05NTYsNjcgKzU3Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmdldEFsbFN0b3Jh
Z2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxlCiAgICAgfQog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vj
b25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5
SW5pdGlhdGVkQnlVc2VyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXREb21haW4sIHRvcEZy
YW1lRG9tYWluLCBzb3VyY2VEb21haW4sIGlzUmVkaXJlY3QsIGlzTWFpbkZyYW1lLCBkZWxheUFm
dGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcik7
Ci0gICAgfSBlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAg
ICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nVXNlckludGVyYWN0aW9uKGRvbWFpbiwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5oYXNIYWRVc2VySW50ZXJhY3Rpb24oZG9tYWlu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9u
Y2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzUmVsYXRpb25zaGlwT25s
eUluRGF0YWJhc2VPbmNlKHN1YkRvbWFpbiwgdG9wRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vz
c2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJVc2VySW50ZXJhY3Rpb24oZG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpoYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpOwpAQCAtMTA0MCw4NCArNjAwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2kKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpz
ZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNl
Y29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5z
ZXRHcmFuZGZhdGhlcmluZ1RpbWUoc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0TWF4U3RhdGlz
dGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50
cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewot
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKG1heGltdW1FbnRyeUNvdW50LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJ1bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcHJ1bmVUYXJnZXRDb3VudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFBydW5lRW50cmllc0Rvd25U
byhwcnVuZVRhcmdldENvdW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRUaW1lVG9MaXZlVXNlckludGVy
YWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0VGltZVRvTGl2ZVVz
ZXJJbnRlcmFjdGlvbihzZWNvbmRzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRDbGFzc2lmeVJl
c291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh2
YWx1ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTEzMSwzMSArNjEzLDYgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdF
dmVudChib29sIGVuYWJsZWQpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoZGVidWdNb2RlLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBjb25zdAotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewotICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIocmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNFcGhlbWVyYWwoKSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotfQotCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpyZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2Vz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24g
PSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTE5MCwxOSArNjQ3LDYgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2kKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENy
b3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MtPmxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oZnJvbURv
bWFpbiwgdG9Eb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICB9Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlu
a0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTIy
MCwyMCArNjY0LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFzSXNvbGF0ZWRTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZToKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihyZXN1bHQpOwogfQogCi0jaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4+JiYgYXBwQm91bmREb21haW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
ID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7Ci0gICAgICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRBcHBCb3VuZERvbWFpbnMoV1RGTW92ZShhcHBCb3VuZERv
bWFpbnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLX0KLSNlbmRpZgotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91
bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgZm9yRWFjaE5ldHdvcmtT
ZXNzaW9uKFtlbmFibGVkXShhdXRvJiBzZXNzaW9uKSB7CkBAIC0xMjUxLDcgKzY4MSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYWJs
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc2Vz
c2lvbi0+c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50KGVuYWJsZWQpOwpA
QCAtMTI2MCwxOSArNjkwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVT
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3MKICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0Rmlyc3RQYXJ0eVdlYnNp
dGVEYXRhUmVtb3ZhbE1vZGUobW9kZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9TYW1lU2l0ZVN0cmlj
dENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Np
b24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDc4Nzc5MjdhMTdjNTU5NmViMDNiZDRhY2Y0
ZDU4ZTQxOGFjOGJhMjMuLjVlMmJlNzIzNjVlZThlZTczYmI1MzU5MDVhMzIwYmFlYjI3ZGQ5OTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTIwMiw3NyArMjAyLDI5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUo
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJik7CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICB2b2lkIGNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21h
aW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgUmVnaXN0cmFi
bGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3ImJiwgYm9vbCBzaG91bGRO
b3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFi
bGVEb21haW4+Jik+JiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llc0ZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQsIFJlZ2lzdHJhYmxlRG9tYWluLCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tpZXMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBkdW1wUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmKTsKICAgICB2b2lkIHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWluc1Rv
QmxvY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBpc0dyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBpc1ByZXZhbGVudFJlc291cmNlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6
OlNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVkaXJlY3RlZEZyb21Eb21haW4mLCBjb25zdCBSZWRpcmVjdGVkVG9Eb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGlzUmVnaXN0
ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwotICAgIHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0TWF4U3RhdGlz
dGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3Vy
Y2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFBydW5lRW50cmllc0Rvd25UbyhQQUw6OlNlc3Npb25J
RCwgdWludDY0X3QgcHJ1bmVUYXJnZXRDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIGhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2
b2lkIGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGhh
c0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VB
Y2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxTdHJpbmc+IGRvbWFpbnMpPiYmKTsKLSAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3
YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcik7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRS
ZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0g
ICAgdm9pZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1v
cnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBt
b2RpZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1
bW1hcnkoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGE+JiYpPiYmKTsKLSAgICB2
b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRh
UmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7Ci0gICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRHcmFuZGZhdGhlcmlu
Z1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZv
aWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklELCBpbnQgZG9tYWluSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgbWVyZ2VTdGF0aXN0
aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0
aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0
YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQg
aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBi
b29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURh
dGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwotICAgIHZvaWQgc2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6
U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZv
aWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25J
RCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNl
dElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29s
IHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wpOwogICAgIHZvaWQg
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudChib29sKTsKLSAgICB2b2lk
IHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGJvb2wg
ZGVidWdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiZkKTsKLSAgICB2b2lkIGlzUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7Ci0gICAgdm9pZCBzZXRTaG91bGRDbGFzc2lmeVJl
c291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFJlZGly
ZWN0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBz
ZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3Vi
UmVzb3VyY2VEb21haW4mLCBjb25zdCBSZWRpcmVjdGVkRnJvbURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9u
KFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwot
ICAgIHZvaWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJv
bShQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBSZWRpcmVjdGVk
RnJvbURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZWdp
c3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwogICAgIHZvaWQgZGlkQ29t
bWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9E
b21haW4sIE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVy
OjpGbGFnPiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OwotICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIGhhc0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsK
ICAgICB2b2lkIGNsb3NlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0jaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgIHZvaWQg
c2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25J
RCwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKLSNlbmRpZgogICAgIHZvaWQgc2V0U2hvdWxkRG93bmdyYWRlUmVmZXJy
ZXJGb3JUZXN0aW5nKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklELCBXZWJDb3Jl
OjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwotICAgIHZvaWQgc2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdl
YkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZv
cmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXRGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgZmlyc3RQYXJ0eUhvc3QsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgY25hbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogI2VuZGlmCi0KICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxl
ZChib29sKTsKICAgICBib29sIHByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZCgpIGNvbnN0
OwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoUEFMOjpTZXNz
aW9uSUQsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjM3ZTE1OWYxODYzOTNiZWM1Y2MwNWFi
NWJkNTc4MGJlOGM2ZmNlNC4uYjEwYWJlY2M0MGVkMmRmODdkZmVlYmU0YTZhNTVhNDM0ZGEyMjIy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03OSw3MCArNzksMjMgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNl
ckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVu
dW06Ym9vbCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkKTsKIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQotICAgIENsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKLSAgICBDbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwot
ICAgIER1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKFN0cmluZyBkdW1wZWRTdGF0aXN0aWNzKSBBc3luYwogICAgIFNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBlbmFibGVkKQog
ICAgIFNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQoYm9vbCBlbmFibGVk
KQogICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlu
c1RvQmxvY2spIC0+ICgpIEFzeW5jCi0gICAgSXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAo
Ym9vbCBpc0dyYW5kZmF0aGVyZWQpIEFzeW5jCi0gICAgSXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERv
bWFpbikgLT4gKGJvb2wgaXNQcmV2YWxlbnQpIEFzeW5jCi0gICAgSXNWZXJ5UHJldmFsZW50UmVz
b3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0YXJnZXREb21haW4pIC0+IChib29sIGlzVmVyeVByZXZhbGVudCkgQXN5bmMKICAgICBTZXRB
Z2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRMYXN0U2VlbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgTWVyZ2VTdGF0aXN0
aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4yLCBT
ZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNvcmRzUmVtb3ZlZCkgLT4g
KCkgQXN5bmMKLSAgICBJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWlu
LCB1aW50NjRfdCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVy
YWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wg
aXNQcmV2YWxlbnQpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIElzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVt
ZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGlzRXBoZW1lcmFsKSBBc3lu
YwotICAgIEhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24pIEFzeW5jCi0gICAgSXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uKSBBc3luYwogICAgIEhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAo
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCiAgICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0Vu
dHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFN0cmluZz4gZG9tYWlu
cykgQXN5bmMKLSAgICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFp
biwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9v
bCBpc1JlZGlyZWN0aW5nVG8pIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAt
PiAoYm9vbCBpc1N1YmZyYW1lVW5kZXIpIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJyZXNv
dXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1YnJlc291cmNlVW5kZXIpIEFzeW5jCi0gICAgRG9tYWlu
SURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWFpbklE
KSAtPiAoYm9vbCBleGlzdHMpIEFzeW5jCi0gICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWlu
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWlu
RnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQ
b3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikKLSAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbikgLT4gKCkgQXN5bmMKLSAgICBSZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBlbnVtOmJvb2wgV2ViS2l0OjpTaG91bGRHcmFuZGZh
dGhlclN0YXRpc3RpY3Mgc2hvdWxkR3JhbmRmYXRoZXIpIC0+ICgpIEFzeW5jCi0gICAgU2NoZWR1
bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFz
eW5jCi0gICAgU2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTdGF0aXN0aWNzRGF0YWJhc2VI
YXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBbGxUYWJs
ZXMpIEFzeW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAg
U2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkg
QXN5bmMKLSAgICBHZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gdGhpcmRQYXJ0eURhdGEpIEFzeW5jCi0gICAgU2V0
R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNv
bmRzKSAtPiAoKSBBc3luYwotICAgIFNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCi0g
ICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldFBydW5lRW50
cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRy
eUNvdW50KSAtPiAoKSBBc3luYwotICAgIFNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkg
LT4gKCkgQXN5bmMKLSAgICBTZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBT
ZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlKSAt
PiAoKSBBc3luYwotICAgIFNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAo
KSBBc3luYwotICAgIFNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5bmMKLSAg
ICBTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRUaW1l
VG9MaXZlVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBz
ZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+
ICgpIEFzeW5jCi0gICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4pIC0+ICgpIEFz
eW5jCiAgICAgUmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9h
ZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0Rv
bWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkNyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6
OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNmZXIsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQot
ICAgIFNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgUmVz
ZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIERlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWlu
LCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tpZXMpIC0+ICgpIEFzeW5jCiAgICAgSGFzSXNvbGF0
ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gZG9tYWluKSAtPiAoYm9vbCBoYXNJc29sYXRlZFNlc3Npb24pIEFzeW5jCiAgICAgQ2xv
c2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0jaWYg
RU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgIFNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291
cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBhcHBCb3VuZERvbWFpbnMpIC0+ICgpIEFzeW5jCi0jZW5k
aWYKICAgICBTZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9vbCBlbmFibGVk
KSAtPiAoKSBBc3luYwogICAgIFNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZSBibG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCi0gICAgU2V0U2hvdWxkRW5i
bGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxl
ZCBlbmFibGVkKSAtPiAoKSBBc3luYwotICAgIFNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlKSAtPiAoKSBBc3lu
YworICAgIFNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTpib29sIFdlYkNvcmU6OlNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0VG9TYW1l
U2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNldEZpcnN0
UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nIGZpcnN0UGFydHlIb3N0LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBjbmFtZURv
bWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9t
YWluKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggY2ExYmYxMGQ4ZjI2OTIzNjVkMzU3
MTliNzNjNDAzMTg5MDZlYmFlZS4uMzE5NWI2ZmI4OTYzYWEyYzU0NjhmZjUyNzNlN2QxODVmMTU1
ZTVlNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRl
ICJXZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgiCkBAIC02MTMsOCArNjE0LDggQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIEMKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhzZXNzaW9uSUQpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6RHVtcFJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmV2YWxlbnREb21haW5z
VG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8
UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zVG9CbG9jaywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjM5LDcgKzY0MCw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6aXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1ByZXZhbGVudFJlc291cmNlKHNlc3Np
b25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OklzUHJldmFsZW50UmVzb3VyY2UocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjQ5LDcgKzY1MCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZURvbWFp
biksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTY1
OSw3ICs2NjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJlc291
cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0UHJldmFsZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UHJldmFsZW50UmVzb3VyY2UocmVzb3Vy
Y2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0
KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJlc291cmNl
Rm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC02NjksNyArNjcwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW8K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKHNlc3Np
b25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OlNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKHJlc291cmNlRG9tYWluKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTY3OSw3
ICs2ODAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFZlcnlQcmV2YWxlbnRSZXNv
dXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
VmVyeVByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShy
ZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TGFzdFNlZW4oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIFNlY29uZHMgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKQEAgLTY4OSw3ICs2OTAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldExhc3RTZWVuKHNlc3Npb25JRCwgcmVzb3VyY2VE
b21haW4sIGxhc3RTZWVuKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpT
ZXRMYXN0U2VlbihyZXNvdXJjZURvbWFpbiwgbGFzdFNlZW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKQEAgLTY5OSwxNyArNzAwLDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKHNlc3Npb25JRCwg
ZG9tYWluSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkRvbWFpbklE
RXhpc3RzSW5EYXRhYmFzZShkb21haW5JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBz
ZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bWVy
Z2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4y
LCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZh
bGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok1lcmdlU3RhdGlzdGlj
Rm9yVGVzdGluZyhzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCB0b3BGcmFtZURvbWFpbjEsIHRv
cEZyYW1lRG9tYWluMiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFs
ZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6Ok1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVE
b21haW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlz
VmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgdW5zaWduZWQg
bnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9v
bCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SW5zZXJ0RXhwaXJl
ZFN0YXRpc3RpY0ZvclRlc3Rpbmcoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgbnVtYmVyT2ZP
cGVyYXRpbmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24sIGlzU2NoZWR1bGVkRm9yQWxs
QnV0Q29va2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50KSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhyZXNvdXJj
ZURvbWFpbiwgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24s
IGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50KSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03MTksNyAr
NzIwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpD
bGVhclByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkNsZWFyUHJldmFsZW50UmVzb3VyY2UocmVz
b3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogICAgIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNvb2tp
ZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzI5LDcgKzczMCw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2NoZWR1bGVDb29raWVC
bG9ja2luZ1VwZGF0ZShzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgU2hvdWxk
R3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03NDksNyArNzUwLDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nl
c3NpbmcoUEFMOjpTZXNzaW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTY2hlZHVsZVN0YXRpc3Rp
Y3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3Npbmcoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpTY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nl
c3NpbmcoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNB
bGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzU5LDcgKzc2MCw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6c3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3RhdGlzdGljc0RhdGFiYXNl
SGFzQWxsVGFibGVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6U3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03NjksNyArNzcwLDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5Ojpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkxvZ1VzZXJJbnRlcmFjdGlvbihzZXNz
aW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpMb2dVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTc3OSwxMiArNzgwLDEyIEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aGFzSGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpIYWRVc2VySW50
ZXJhY3Rpb24oc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6SGFzSGFkVXNlckludGVyYWN0aW9uKHJlc291cmNlRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25j
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRh
YmFzZU9uY2Uoc2Vzc2lvbklELCBzdWJEb21haW4sIHRvcERvbWFpbiksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2Uo
c3ViRG9tYWluLCB0b3BEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lv
bklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC03OTQsNyArNzk1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpjbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFIK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhclVzZXJJbnRlcmFjdGlvbihzZXNzaW9uSUQsIHJl
c291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpDbGVh
clVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6aGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODI0LDcgKzgyNSw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFj
dGlvbihzZXNzaW9uSUQsIHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oc2Vjb25kcyksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTgzNCw3ICs4MzUsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
UEFMOjpTZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldE5vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQoc2Vzc2lvbklELCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0SXNSdW5uaW5nUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NDQs
NyArODQ1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc1J1bm5pbmdSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRAogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KHNlc3Npb25JRCwgdmFsdWUp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldElzUnVubmluZ1Rlc3Qo
dmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkp
OwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NTQs
NyArODU1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJmcmFtZVVuZGVyVG9w
RnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbkkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oc2Vzc2lvbklELCBzdWJGcmFtZURvbWFp
biwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OlNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVE
b21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkp
OwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW5SZWRpcmVjdGVkRnJvbSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGly
ZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTg2NCw3ICs4NjUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6SXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKHNlc3Npb25JRCwgZG9tYWlu
UmVkaXJlY3RlZEZyb20sIGRvbWFpblJlZGlyZWN0ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6SXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKGRvbWFpblJlZGly
ZWN0ZWRGcm9tLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtODc0LDcgKzg3NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoc2Vz
c2lvbklELCBzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihzdWJGcmFt
ZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vz
c2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1
YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC04ODQsNyArODg1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vz
c2kKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW4oc2Vzc2lvbklELCBzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbihzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODk0LDcgKzg5NSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZWdpc3RlcmVk
QXNTdWJyZXNvdXJjZVVuZGVyKHNlc3Npb25JRCwgc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1l
RG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc1JlZ2lzdGVy
ZWRBc1N1YnJlc291cmNlVW5kZXIoc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVz
b3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkVG8s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkwNCw3
ICs5MDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzZXNzaW9uSUQsIHN1YnJlc291cmNlRG9t
YWluLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJyZXNvdXJjZURvbWFpbiwg
ZG9tYWluUmVkaXJlY3RlZFRvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25J
RC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC05MTQsNyArOTE1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNz
aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJv
bShzZXNzaW9uSUQsIHN1YnJlc291cmNlRG9tYWluLCBkb21haW5SZWRpcmVjdGVkRnJvbSksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0U3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdEZyb20oc3VicmVzb3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9tKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkVG8sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkyNCw3ICs5MjUsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VG9wRnJh
bWVVbmlxdWVSZWRpcmVjdFRvKHNlc3Npb25JRCwgdG9wRnJhbWVEb21haW4sIGRvbWFpblJlZGly
ZWN0ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0VG9wRnJh
bWVVbmlxdWVSZWRpcmVjdFRvKHRvcEZyYW1lRG9tYWluLCBkb21haW5SZWRpcmVjdGVkVG8pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZEZyb20sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkzNCw3ICs5
MzUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRAogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHNlc3Npb25JRCwgdG9wRnJhbWVEb21haW4sIGRv
bWFpblJlZGlyZWN0ZWRGcm9tKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVk
aXJlY3RlZEZyb20pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRmYXRoZXJlZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTk0NCw3ICs5NDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRm
YXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OklzR3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc0dyYW5kZmF0aGVyZWQocmVz
b3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3Vy
Y2VEb21haW4sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05NTQsNyArOTU1LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25J
RCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6U2V0R3JhbmRmYXRoZXJlZChyZXNvdXJjZURvbWFpbiwgaXNHcmFu
ZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2
NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTk4NSw3ICs5ODYsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeShQQUw6
OlNlc3Npb25JRCBzZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6R2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFTdW1tYXJ5KHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6QWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKQEAgLTEwMTUsNyArMTAxNiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U2Vjb25kCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJpbmdUaW1lKHNlc3Np
b25JRCwgc2Vjb25kcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0
R3JhbmRmYXRoZXJpbmdUaW1lKHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
c2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90IG1h
eGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCkBAIC0xMDI1LDcgKzEwMjYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U2V0TWF4U3RhdGlzdGljc0VudHJpZXMoc2Vzc2lvbklELCBtYXhpbXVt
RW50cnlDb3VudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0TWF4
U3RhdGlzdGljc0VudHJpZXMobWF4aW11bUVudHJ5Q291bnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTAzNSw3ICsxMDM2LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFM
OjpTZXNzaW9uSUQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRNaW5pbXVtVGltZUJldHdlZW5E
YXRhUmVjb3Jkc1JlbW92YWwoc2Vzc2lvbklELCBzZWNvbmRzKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpTZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoc2Vjb25kcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJ1bmVFbnRyaWVzRG93
blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90IHBydW5lVGFyZ2V0Q291bnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwNDUsNyAr
MTA0Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJ1bmVFbnRyaWVzRG93blRv
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQ
cnVuZUVudHJpZXNEb3duVG8oc2Vzc2lvbklELCBwcnVuZVRhcmdldENvdW50KSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRQcnVuZUVudHJpZXNEb3duVG8ocHJ1bmVU
YXJnZXRDb3VudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkQ2xhc3NpZnlS
ZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCkBAIC0xMDU1LDcgKzEwNTYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNo
b3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTAogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29y
ZHNSZW1vdmFsKHNlc3Npb25JRCwgdmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OlNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2
NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwNjUs
NyArMTA2Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShzZXNzaW9uSUQsIGRlYnVnTW9k
ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnTW9kZShkZWJ1Z01vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC0xMDc1LDcgKzEwNzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaQogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OklzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChzZXNzaW9uSUQpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VwaGVtZXJhbCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRv
VUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q2FjaGVNYXhB
Z2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMDg1LDkgKzEw
ODYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJl
c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoc2Vzc2lvbklEKSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSk7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFs
dWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTA5Nyw5ICsxMDk2LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbkkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMoc2Vzc2lvbklEKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcygpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mgc2hvdWxkR3Jh
bmRmYXRoZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
QEAgLTExMDksOSArMTEwNiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVD
bGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KHNlc3Npb25JRCwgeyB9
LCBzaG91bGRHcmFuZGZhdGhlciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoc2Vzc2lvbklELCB7IH0sIHNob3Vs
ZEdyYW5kZmF0aGVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmxvZ1Rlc3RpbmdFdmVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgZXZlbnQpCkBAIC0xMTYyLDcgKzExNTcsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0
aW5nKFBBTDo6U2VzcwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENyb3NzU2l0ZUxvYWRXaXRo
TGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKHNlc3Npb25JRCwgZnJvbURvbWFpbiwgdG9Eb21haW4p
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkxvZ0Nyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb24oZnJvbURvbWFpbiwgdG9Eb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtMTI1Miw5ICsxMjQ3LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb24KICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRF
bmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxl
ZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRl
U3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRGb3JUZXN0aW5nKHNlc3Npb25JRCwgZW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpT
ZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhzZXNzaW9u
SUQsIGVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGUgbW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQpAQCAtMTI2NCw3ICsxMjU5LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRG
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXMKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OlNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGlu
ZyhzZXNzaW9uSUQsIG1vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OlNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKG1vZGUpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXgg
NWM5YzQ1M2RjYzRkNTg2MThmODU2OTFhMDRiMTU1NzViNWEzYmNjOS4uNGQwODY4ZTk3YzgxNDNl
NTc1OTJjMTFiOThkODI1Y2E4ZTQwMjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE5OSw3ICsxOTksNyBA
QCBwdWJsaWM6CiAjZW5kaWYKICAgICB2b2lkIHNldFNob3VsZERvd25ncmFkZVJlZmVycmVyRm9y
VGVzdGluZyhib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
LSAgICB2b2lkIHNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFi
bGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0U2hvdWxkRW5h
YmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdl
YkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1v
ZGVGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURh
dGFSZW1vdmFsTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNl
dFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eUhvc3QsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBj
bmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI3OTAzMjk1MjIxZDcxZDk3OWY0OGI2ZDY2
ZjZmYWE3NzUxMjdiMDIuLjVhN2NmMjc0OTczZWQ1YTA3OTcyZWRiMDA4MWJlMTFhNTdjZTJmYzMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTQyLDYgKzE0
Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvdGVj
dGlvblNwYWNlLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgi
CisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaCIKICNp
bmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRD
b250cm9sbGVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2
ZXIuaCIKQEAgLTU1NjgsNyArNTU2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5h
dmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiAgICAg
aWYgKHRhcmdldEhvc3QuaXNFbXB0eSgpIHx8IG1haW5GcmFtZUhvc3QuaXNFbXB0eSgpIHx8IHRh
cmdldEhvc3QgPT0gc291cmNlVVJMLmhvc3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Vi
c2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OkxvZ0ZyYW1lTmF2aWdhdGlvbihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgp
LCBSZWdpc3RyYWJsZURvbWFpbiB7IHRhcmdldFVSTCB9LCBSZWdpc3RyYWJsZURvbWFpbiB7IHBh
Z2VVUkwgfSwgUmVnaXN0cmFibGVEb21haW4geyBzb3VyY2VVUkwgfSwgaXNSZWRpcmVjdCwgZnJh
bWUuaXNNYWluRnJhbWUoKSwgTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2RpZEZpbmlzaERvY3Vt
ZW50TG9hZEZvck1haW5GcmFtZVRpbWVzdGFtcCwgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVz
ZXIpLCAwKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1l
c3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkxvZ0ZyYW1lTmF2aWdhdGlv
bihSZWdpc3RyYWJsZURvbWFpbiB7IHRhcmdldFVSTCB9LCBSZWdpc3RyYWJsZURvbWFpbiB7IHBh
Z2VVUkwgfSwgUmVnaXN0cmFibGVEb21haW4geyBzb3VyY2VVUkwgfSwgaXNSZWRpcmVjdCwgZnJh
bWUuaXNNYWluRnJhbWUoKSwgTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2RpZEZpbmlzaERvY3Vt
ZW50TG9hZEZvck1haW5GcmFtZVRpbWVzdGFtcCwgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVz
ZXIpLCBzZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CmluZGV4IDcxY2Y5MjA3ZWZkOWNhMjk1YWI4OTBkNjc2ZTJkMzlkNDkyZDY2NTguLjlkNjhjM2Zh
MDk2N2EzNGE0ZjNiNWQyZjY5ZWFkMTg2YTYzODQwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00
Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCIKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZUNs
aWVudC5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCkBAIC0xMzk2
LDcgKzEzOTcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZQogICAgIGF1dG8gZmxhZyA9IGVu
YWJsZWQgPyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6WWVzIDog
V2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogCiAgICAgYXV0
byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRTaG91bGRFbmJs
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKG1fc2Vzc2lvbklELCBmbGFnLCBb
Y2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0U2hvdWxk
RW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcobV9zZXNzaW9uSUQsIGZs
YWcsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9y
ZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlRm9yVGVzdGluZyhib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IGQyOWZkOTFjZjQ0NmVjNzk1NjUyODU0M2NmYTMwYTMyNDIxM2Rl
M2YuLmM1NGZiMWRjMjgwOTYwYzc2MDk1Y2I1NjYyZmIwMDliZDIwZTk4NmEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1OCw2ICsx
MjU4LDcgQEAKIAkJNUNFOTEyMTEyMjkzQzI3ODAwNUJFQzc4IC8qIEF1eGlsaWFyeVByb2Nlc3NN
YWluLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVD
RTkxMjBGMjI5M0MyNUYwMDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgKi87IH07
CiAJCTVDRTkxMjEyMjI5M0MyNzgwMDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U5MTIwRjIy
OTNDMjVGMDA1QkVDNzggLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwICovOyB9OwogCQk1Q0U5
MTIxNDIyOTNDMjgwMDA1QkVDNzggLyogV0tNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U5MTIwQjIyOTNDMUUwMDA1QkVDNzggLyogV0tNYWlu
LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNUNF
RjFEMEQyNzg2MUE4MjAwQjVENzlDIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0VGMUQwQzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNjMxMDhGOTYxRjk2NzE5QzAw
QTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzMTA4Rjk0MUY5NjcxOUMwMEEwREI4NCAvKiBfV0tB
cHBsaWNhdGlvbk1hbmlmZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKIAkJNjMxMDhGOTkxRjk2NzFGNzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9u
TWFuaWZlc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjMxMDhGOTgxRjk2NzFGNzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZl
c3RJbnRlcm5hbC5oICovOyB9OwogCQk2MzQ4NDI1MTFGQjI2RTcxMDA5NDZFM0MgLyogQVBJQXBw
bGljYXRpb25NYW5pZmVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjM0ODQyNEYxRkIyNkU3MTAwOTQ2RTNDIC8qIEFQSUFwcGxpY2F0aW9uTWFuaWZl
c3QuaCAqLzsgfTsKQEAgLTQ5MTcsNiArNDkxOCw4IEBACiAJCTVDRTkxMjBGMjI5M0MyNUYwMDVC
RUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IG5hbWUgPSBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHA7IHBhdGggPSBDb2NvYS9BdXhp
bGlhcnlQcm9jZXNzTWFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRUFC
QTJBMjMzMzI0NzcwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQk1Q0VBQkEyQjIzMzMyNTE0MDA3OTc3OTcgLyogTGVnYWN5R2xv
YmFsU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVn
YWN5R2xvYmFsU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0VG
MUQwODI3ODYwNEREMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1l
c3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5tZXNzYWdlcy5pbjsgcGF0aCA9IENsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
Q0VGMUQwQzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
TWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRkVDQjAzMUUxRUQxQzgwMEY4ODUwNCAvKiBMZWdh
Y3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNURBRDczRjExMTZGRjkwQzAwRUU1Mzk2IC8qIEJhc2VUYXJnZXQueGNj
b25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZVRhcmdldC54Y2NvbmZp
Zzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjMxMDhGOTQxRjk2NzE5QzAwQTBEQjg0
IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXBwbGljYXRp
b25NYW5pZmVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAxMTUsNiArMTAx
MTgsNyBAQAogCQkJCTdBM0ZFQ0ExMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3Rh
dHVzLmggKi8sCiAJCQkJN0E4NDNBMUEyMUU0MUZCMjAwREVGNjYzIC8qIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAgKi8sCiAJCQkJN0FGQkQzNjIyMUU1MEYzOTAwNURCQUNCIC8q
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oICovLAorCQkJCTVDRUYxRDA4Mjc4NjA0
REQwMEI1RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4g
Ki8sCiAJCQkpOwogCQkJbmFtZSA9IENsYXNzaWZpZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOwpAQCAtMTIyMDQsNiArMTIyMDgsNyBAQAogCQkJCUJDRUU3QUNEMTI4MTc5ODgwMDk4MjdE
QSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxRjA2MEREMTY1NDMxNzUw
MEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
NTFGMDYwREUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAq
LywKKwkJCQk1Q0VGMUQwQzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUYwNjBERDE2NTQzMTc1MDBG
MzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYw
REQxNjU0MzE3NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKIAkJCQk0MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3Nh
Z2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xNTc2OSw2ICsxNTc3NCw3IEBACiAJCQkJNTE3QjVGNzky
NzVFOTdBMTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25NYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJ
CQkJNTE3QjVGOTkyNzVFQzYwMTAwMkRDMjJEIC8qIFdlYlB1c2hNZXNzYWdlQ29jb2EubW0gaW4g
U291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VM
b2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNFRjFEMEQyNzg2
MUE4MjAwQjVENzlDIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUYgLyog
V2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYw
NjBFMTE2NTQzMTg1MDBGMzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tl
dENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="commit-queue"
          id="474271"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448414</attachid>
            <date>2022-01-05 11:47:40 -0800</date>
            <delta_ts>2022-01-05 12:17:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234892-20220105114739.patch</filename>
            <type>text/plain</type>
            <size>121444</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmODk5ODU2NjQzNzRjNTU4
NWE1MTAzMjk5ZDdkZDQyOGUyZDcyNTcuLmM3MTA1ZGQwYTdkZGU5ZjI5OTI0NjI4MjdkMDE3ZTYw
ZmRhZGNiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI3IEBACisyMDIyLTAxLTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYSBNZXNzYWdlUmVjZWl2ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlzIGEgbG90IG9mIGJv
aWxlcnBsYXRlIGNvZGUgdGhhdCBmaW5kcyB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlIGFuZCBmb3J3YXJkcyB0aGUgSVBDIHBhcmFtZXRlcnMgdG8gaXQuCisgICAgICAgIExldCdz
IGp1c3Qgc2VuZCBtZXNzYWdlcyBkaXJlY3RseSB0byB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLgorICAgICAgICBBbHNvIHJlbW92ZSB0aGUgdW51c2VkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5oLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1bXBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmlzR3JhbmRmYXRoZXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjppc1ByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50
UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1Vw
ZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpnZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzUHJvY2Vzc2luZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21h
aW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4p
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0TGFzdFNlZW4pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1lcmdlU3RhdGlzdGljRm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbnNlcnRF
eHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmhhZFVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc1JlbGF0aW9uc2hpcE9ubHlJbkRh
dGFiYXNlT25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpj
bGVhclVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0TWF4U3RhdGlzdGljc0VudHJpZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJl
Y29yZHNSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnNldFBydW5lRW50cmllc0Rvd25Ubyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RXBoZW1lcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFwcEJvdW5kRG9tYWluc0Zv
clJlc291cmNlTG9hZFN0YXRpc3RpY3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJl
c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRh
Ymxlcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1VzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Omhhc0hhZFVz
ZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Omlz
UmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRmYXRoZXJlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YVN1bW1hcnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3Zh
bCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFBydW5lRW50cmll
c0Rvd25Ubyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmFibGVTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZEVu
YmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIyLTAxLTA0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFBhcnRpYWwgcmV2ZXJ0IG9mIGh0dHBzOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yODczNzEvd2Via2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAyNTllNDcyYjU3
ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxLi44ZmMwMjA2NTRhZTUxYTE5N2JkZTNhZjBh
NGIyZmEyY2E3N2JiODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE4NSw2ICsxODUsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcgogCisgICAgTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUKKwogICAgIE5ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlcgogCiAgICAgTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGI2MjE4OWNiNDc4
ZjVlZTJkMTZmZDUzMTg0MWI4YzI2NmVjYjk3ZTEuLjMxNzBkNWNiNDAxNzA2MzQ0ZmQ1NDhhMmM0
NzRlZWY4ODBjOGVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0MCw2ICsx
NDAsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0
b3IgXAogCU5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eSBcCisJTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUgXAogCU5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlciBcCiAJ
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIgXAogCVNoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZmNjdiZjA4OGRj
NjAwMjIzZjhiZmEzMGZkZjc4NDhlMGJlZWQyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLQotI2luY2x1ZGUgIlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oIgotI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1jbGFzcyBLZXllZERlY29kZXI7Ci1jbGFzcyBLZXllZEVuY29kZXI7Ci1lbnVtIGNs
YXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA6IGJvb2w7Ci1lbnVtIGNsYXNzIFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkIDogYm9vbDsKLXN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gVGhpcyBpcyBhbHdheXMgY29uc3RydWN0
ZWQgLyB1c2VkIC8gZGVzdHJveWVkIG9uIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUncyBzdGF0aXN0aWNzIHF1ZXVlLgotY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlIGZpbmFsIDogcHVibGljIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB7Ci1wdWJs
aWM6Ci0gICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSYsIFN1c3BlbmRhYmxlV29ya1F1ZXVlJiwgU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCk7Ci0KLSAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBWZWN0
b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gYWdncmVn
YXRlZFRoaXJkUGFydHlEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgY29uc3QgSGFzaE1hcDxS
ZWdpc3RyYWJsZURvbWFpbiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M+PiYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwOyB9Ci0K
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWRFbmNvZGVyPiBjcmVhdGVFbmNvZGVy
RnJvbURhdGEoKSBjb25zdDsKLSAgICB2b2lkIG1lcmdlV2l0aERhdGFGcm9tRGVjb2RlcihXZWJD
b3JlOjpLZXllZERlY29kZXImKTsKLQotICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNzKFZlY3RvcjxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHByb2Nlc3NTdGF0
aXN0aWNzKGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYp
PiYpIGNvbnN0OwotCi0gICAgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBjbGFzc2lmeVByZXZhbGVudFJl
c291cmNlcygpIG92ZXJyaWRlOwotCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVy
T3BlbmVyKERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgT3BlbmVyRG9tYWluJiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBncmFuZGZhdGhlckRh
dGFGb3JEb21haW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jikgb3ZlcnJpZGU7
Ci0KLSAgICBib29sIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihjb25zdCBTdWJSZXNv
dXJjZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWluJiwgY29uc3QgUmVk
aXJlY3RlZFRvRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNsZWFyUHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlkZTsKLSAgICB2b2lk
IGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
U3RyaW5nJik+JiYpIGZpbmFsOwotICAgIGJvb2wgaXNQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mKSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgdmFsdWUpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAg
ICB2b2lkIHNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVEb21haW4oY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3REb21haW4m
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKGNv
bnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3REb21haW4mKSBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IFJlZGlyZWN0RG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0
RG9tYWluJikgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGFyZUFsbFRoaXJkUGFydHlDb29raWVzQmxv
Y2tlZFVuZGVyKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgQ29va2llQWNj
ZXNzIGNvb2tpZUFjY2Vzcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mKTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Njb3Bl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRp
b24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0
IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUs
IFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRp
YWxseUluaXRpYXRlZEJ5VXNlcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92
ZXJyaWRlOwotICAgIHZvaWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25z
dCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mKSBvdmVycmlk
ZTsKLQotICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotICAgIGJvb2wgaGFz
SGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgT3BlcmF0aW5nRGF0
ZXNXaW5kb3cpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlRGF0YUZvckRv
bWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIFZlY3RvcjxSZWdp
c3RyYWJsZURvbWFpbj4gYWxsRG9tYWlucygpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgaW5zZXJ0
RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNp
Z25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFzVXNlckludGVyYWN0aW9u
LCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2
YWxlbnQpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZvaWQgaW5jbHVkZVRvZGF5QXNPcGVy
YXRpbmdEYXRlSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKLSAgICBjb25zdCBWZWN0b3I8T3BlcmF0
aW5nRGF0ZT4mIG9wZXJhdGluZ0RhdGVzKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRpbmdEYXRl
czsgfQotICAgIHZvaWQgY2xlYXJPcGVyYXRpbmdEYXRlcygpIG92ZXJyaWRlIHsgbV9vcGVyYXRp
bmdEYXRlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBtZXJnZU9wZXJhdGluZ0RhdGVzKFZlY3RvcjxP
cGVyYXRpbmdEYXRlPiYmKTsKLSAgICBib29sIGhhc1N0YXRpc3RpY3NFeHBpcmVkKGNvbnN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3MmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgY29uc3Q7Ci0gICAg
c3RhdGljIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtZXJnZU9wZXJhdGluZ0RhdGVzKGNvbnN0IFZl
Y3RvcjxPcGVyYXRpbmdEYXRlPiYgZXhpc3RpbmdEYXRlcywgVmVjdG9yPE9wZXJhdGluZ0RhdGU+
JiYgbmV3RGF0ZXMpOwotICAgIGJvb2wgaGFzU3RhdGlzdGljc0V4cGlyZWQoV2FsbFRpbWUgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIE9wZXJhdGluZ0RhdGVzV2luZG93KSBjb25zdCBv
dmVycmlkZTsKLQotICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2VlcENvb2tpZXMoY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2Nr
QW5kUHVyZ2VDb29raWVzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKLSAgICBzdGF0
aWMgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIGhhc1VzZXJHcmFudGVkU3Rv
cmFnZUFjY2Vzc1Rocm91Z2hQcm9tcHQoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9vbCBoYXNIYWRVbmV4cGlyZWRSZWNlbnRV
c2VySW50ZXJhY3Rpb24oUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIE9wZXJhdGluZ0RhdGVzV2lu
ZG93KSBjb25zdDsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKFJlc291
cmNlTG9hZFN0YXRpc3RpY3MmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNv
bnN0OwotICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKLSAg
ICBib29sIHNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKTsKLSAgICB2b2lkIGluY3Jl
bWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwotICAgIHVuc2lnbmVkIHJl
Y3Vyc2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbihjb25z
dCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVkVG9Eb21haW4+Jiwg
dW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYpOwotICAgIHZvaWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRp
cmVjdGVkVG9QcmV2YWxlbnQoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotICAgIGJvb2wgaXNQ
cmV2YWxlbnREdWVUb0RlYnVnTW9kZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7Ci0gICAgVmVj
dG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNGb3JEZWJ1Z01v
ZGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZURhdGFSZWNvcmRzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpIG92ZXJy
aWRlOwotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgUmVn
aXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IgcmVnaXN0cmFi
bGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IoKSBvdmVycmlkZTsKLSAg
ICBib29sIGlzTWVtb3J5U3RvcmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
c3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUoY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotCi0gICAgSGFzaE1hcDxSZWdpc3RyYWJsZURv
bWFpbiwgVW5pcXVlUmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+PiBtX3Jlc291cmNlU3RhdGlz
dGljc01hcDsKLSAgICBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4gbV9vcGVyYXRpbmdEYXRlczsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lO
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKQotICAgIHN0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3Rv
cmUpIHsgcmV0dXJuIHN0b3JlLmlzTWVtb3J5U3RvcmUoKTsgfQotU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggNzBiNWFmZGE1MjZlOTkwOWI5NjJkNzEyMTNkODViNjBiNTM3
MTgxZC4uNWViZTE3MGJhNGQ0OWFlZWJiMmJkNDY4YzM5YTdhNGZiNTI4MWZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTQyLDYgKzQy
LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGFGZXRjaE9wdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtODIsMTkgKzgzLDYgQEAg
Y29uc3QgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4mIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6bW9uaXRvcmVkRGF0YVQKICAgICByZXR1cm4gZGF0YVR5cGVzOwogfQogCi12b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChib29sIHZhbHVlKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0KLSAgICBpZiAoaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
cG9zdFRhc2soW3RoaXMsIHZhbHVlXSB7Ci0gICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9yZSkK
LSAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXROb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHZhbHVlKTsKLSAgICB9KTsKLX0KLQogdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNDksMTIgKzEzNywx
NiBAQCBzdGF0aWMgUmVmPFN1c3BlbmRhYmxlV29ya1F1ZXVlPiBzaGFyZWRTdGF0aXN0aWNzUXVl
dWUoKQogCiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9z
dCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVt
ZXJhbCBpc0VwaGVtZXJhbCkKICAgICA6IG1fbmV0d29ya1Nlc3Npb24obmV0d29ya1Nlc3Npb24p
CisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtTZXNzaW9uLm5ldHdvcmtQcm9jZXNzKCkp
CisgICAgLCBtX3Nlc3Npb25JRChuZXR3b3JrU2Vzc2lvbi5zZXNzaW9uSUQoKSkKICAgICAsIG1f
c3RhdGlzdGljc1F1ZXVlKHNoYXJlZFN0YXRpc3RpY3NRdWV1ZSgpKQogICAgICwgbV9kYWlseVRh
c2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKICAgICAsIG1faXNFcGhlbWVyYWwoaXNFcGhlbWVy
YWwpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9zZXNzaW9uSUQudG9V
SW50NjQoKSwgKnRoaXMpOworCiAgICAgLy8gTm8gZGFpbHkgdGFza3MgbmVlZGVkIGZvciBlcGhl
bWVyYWwgc2Vzc2lvbnMgc2luY2Ugbm8gcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGFyZSBjb2xs
ZWN0ZWQuCiAgICAgaWYgKGlzRXBoZW1lcmFsID09IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6Oklz
RXBoZW1lcmFsOjpZZXMpCiAgICAgICAgIHJldHVybjsKQEAgLTE3OCw2ICsxNzAsNyBAQCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBSRUxF
QVNFX0FTU0VSVCghbV9zdGF0aXN0aWNzU3RvcmUpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQog
CiBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzOjpJc0VwaGVtZXJhbCBpc0VwaGVtZXJhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA2NjFiMTU2M2VjNjRiNjZlNzhmMWY4ZDU1NGM2
ZDlkZjM3MzFhZTZiLi43Yzg4NjEzZGQ0N2I0Y2M3Njg1MDczMmI0MDVmMTYyZGExZjBkMzRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBAIC01MCw2ICs1MSwx
MSBAQAogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29k
ZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0
cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwpAQCAtNjAsNiArNjYsNyBAQCBlbnVtIGNsYXNz
IFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgOiB1aW50OF90OwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNs
YXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CkBA
IC04Nyw3ICs5NCw3IEBAIHN0cnVjdCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJp
Y3RXZWJzaXRlRGF0YUZvciB7CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gZG9t
YWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRGVsZXRlQWxs
QnV0SHR0cE9ubHlDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zVG9EZWxldGVBbGxOb25D
b29raWVXZWJzaXRlRGF0YUZvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRl
U3RyaWN0Rm9yLmlzRW1wdHkoKTsgfQogfTsKIAotY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4geworY2xh
c3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M7CiAgICAgdXNpbmcgUmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbjsKQEAgLTE0Miw3ICsxNDksNiBAQCBwdWJsaWM6CiAgICAgU3VzcGVuZGFi
bGVXb3JrUXVldWUmIHN0YXRpc3RpY3NRdWV1ZSgpIHsgcmV0dXJuIG1fc3RhdGlzdGljc1F1ZXVl
LmdldCgpOyB9CiAKICAgICB2b2lkIHBvcHVsYXRlTWVtb3J5U3RvcmVGcm9tRGlzayhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBTdG9yYWdl
QWNjZXNzU2NvcGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVxdWVzdFN0b3JhZ2VBY2Nlc3NS
ZXN1bHQpPiYmKTsKQEAgLTIzNCw4ICsyNDAsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IHJlc3VtZSgpOwogICAgIAogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJldHVybiBt
X2lzRXBoZW1lcmFsID09IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1l
cmFsOjpZZXM7IH07CisgICAgdm9pZCBpc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCgpKTsgfQogICAgIHZvaWQgaW5zZXJ0RXhwaXJlZFN0
YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNpZ25lZCBudW1i
ZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlz
U2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBj
b25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCk7CiAKQEAgLTI1OCw2ICsyNjcsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGVzdHJveVJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3
b3JrU2Vzc2lvbjsKKyAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7Cisg
ICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPFN1c3BlbmRhYmxlV29ya1F1
ZXVlPiBtX3N0YXRpc3RpY3NRdWV1ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlPiBtX3N0YXRpc3RpY3NTdG9yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uZGU0MDFjOGZlMGVkYzZmNTRkZGViNDIyYWI0N2VhNzRhNTVhMmRjOAotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw3NSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCisKK21lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSB7CisgICAgQ2xlYXJQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBDbGVhclVzZXJJbnRl
cmFjdGlvbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKKyAgICBEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIC0+IChTdHJpbmcgZHVtcGVk
U3RhdGlzdGljcykgQXN5bmMKKyAgICBJc0dyYW5kZmF0aGVyZWQoV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc0dyYW5kZmF0aGVyZWQpIEFzeW5jCisg
ICAgSXNQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXRE
b21haW4pIC0+IChib29sIGlzUHJldmFsZW50KSBBc3luYworICAgIElzVmVyeVByZXZhbGVudFJl
c291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJvb2wg
aXNWZXJ5UHJldmFsZW50KSBBc3luYworICAgIFNldExhc3RTZWVuKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisg
ICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
c291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0
U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNW
ZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCisg
ICAgSW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3Nl
ZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29r
aWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcmV2
YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikg
LT4gKCkgQXN5bmMKKyAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBJc1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoKSAtPiAoYm9vbCBpc0VwaGVtZXJhbCkgQXN5
bmMKKyAgICBIYXNIYWRVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
cmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5bmMKKyAgICBJ
c1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biBzdWJEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJv
b2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYworICAgIElzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1Jl
ZGlyZWN0aW5nVG8pIEFzeW5jCisgICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgaXNTdWJmcmFtZVVuZGVyKSBBc3luYwor
ICAgIElzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4pIC0+IChib29sIGlzU3VicmVzb3VyY2VVbmRlcikgQXN5bmMKKyAgICBEb21haW5J
REV4aXN0c0luRGF0YWJhc2UoaW50IGRvbWFpbklEKSAtPiAoYm9vbCBleGlzdHMpIEFzeW5jCisg
ICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIGJvb2wg
d2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCisgICAgTG9nVXNlckludGVyYWN0aW9uKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYworICAg
IFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcygpIC0+ICgpIEFzeW5jCisgICAgU2NoZWR1
bGVDb29raWVCbG9ja2luZ1VwZGF0ZSgpIC0+ICgpIEFzeW5jCisgICAgU2NoZWR1bGVTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKCkgLT4gKCkgQXN5bmMKKyAgICBTdGF0aXN0aWNz
RGF0YWJhc2VIYXNBbGxUYWJsZXMoKSAtPiAoYm9vbCBoYXNBbGxUYWJsZXMpIEFzeW5jCisgICAg
U2V0R3JhbmRmYXRoZXJlZChXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFp
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCisgICAgQWdncmVnYXRlZFRoaXJk
UGFydHlEYXRhKCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6VGhpcmRQYXJ0eURhdGE+IHRoaXJkUGFydHlEYXRhKSBBc3luYworICAgIFNldEdyYW5k
ZmF0aGVyaW5nVGltZShTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisgICAgU2V0TWF4U3Rh
dGlzdGljc0VudHJpZXModWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCisg
ICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFNlY29uZHMgc2Vjb25k
cykgLT4gKCkgQXN5bmMKKyAgICBTZXRQcnVuZUVudHJpZXNEb3duVG8odWludDY0X3QgbWF4aW11
bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCisgICAgU2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNC
ZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpIC0+ICgpIEFz
eW5jCisgICAgU2V0SXNSdW5uaW5nVGVzdChib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAgIFNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpIC0+ICgpIEFz
eW5jCisgICAgU2V0VmVyeVByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYworICAgIFNldFN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCisgICAg
U2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBz
dWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZy
b21Eb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisgICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9w
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9t
YWluKSAtPiAoKSBBc3luYworICAgIExvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24o
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdG9Eb21haW4pIC0+ICgpIEFzeW5jCisjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQorICAgIFNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoSGFz
aFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmREb21haW5zKSAtPiAoKSBB
c3luYworI2VuZGlmCisgICAgU2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUoZW51
bTp1aW50OF90IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlIG1vZGUp
IC0+ICgpIEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAyNmJkMTA3MTk5NGIzZjgyN2JkN2Q1OTc0NTM5
YWYxNDljMTYyMmNhLi5hMzc2ZTE5ZTE5MWUxNGU2MTMxNGZjZWNhMzA1Yjk2ZjVhZGViNWFmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcApA
QCAtNTM2LDE5ICs1MzYsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB9CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJB
Q0tJTkdfUFJFVkVOVElPTikKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmR1bXBSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9u
ID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAg
ICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9Ci19
Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29v
a2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJs
ZURvbWFpbj4mIGRvbWFpbnNUb0Jsb2NrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9
IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC01NTYsNDUgKzU0Myw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6
OlNlc3Npb25JRCBzZXNzCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdv
cmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAg
ICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc0dyYW5kZmF0aGVyZWQoZG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQot
ICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNQcmV2YWxlbnRSZXNvdXJjZShk
b21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0g
ICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0
QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6
Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9u
ID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAgLTYwMiw4NCArNTUwLDYgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBzdGQKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAo
YXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYg
KGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRHcmFuZGZh
dGhlcmVkKGRvbWFpbiwgaXNHcmFuZGZhdGhlcmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zZXRQcmV2YWxlbnRSZXNvdXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByZXZh
bGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKGRvbWFp
biwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFZlcnlQcmV2YWxlbnRSZXNv
dXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9
Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJQcmV2YWxl
bnRSZXNvdXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlQ29va2llQmxvY2tpbmdV
cGRhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVE
KCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgU2hv
dWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7CkBAIC02OTcsMjU1ICs1NjcsNiBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRAogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6
Z2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5KFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+YWdn
cmVnYXRlZFRoaXJkUGFydHlEYXRhKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoeyB9KTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0UGFyYW1ldGVy
c1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgc2Vzc2lvbi0+cmVzZXRD
TkFNRURvbWFpbkRhdGEoKTsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5yZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNl
c3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MtPnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKHZhbHVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8q
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRJc1J1bm5pbmdUZXN0
KHZhbHVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQot
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YmZyYW1lVW5kZXJU
b3BGcmFtZURvbWFpbihzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nl
c3M6OmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkRnJvbSwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9
IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAg
ICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5n
VG8oZG9tYWluUmVkaXJlY3RlZEZyb20sIGRvbWFpblJlZGlyZWN0ZWRUbywgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRl
cihzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFp
bihzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN1
YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJyZXNv
dXJjZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZFRvLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
ID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcy0+c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oc3VicmVz
b3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1JlZ2lz
dGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLT5pc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoc3VicmVzb3Vy
Y2VEb21haW4sIHRvcEZyYW1lRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9w
RnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZG9tYWluUmVkaXJlY3RlZFRvLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vz
c2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHRvcEZyYW1lRG9tYWluLCBk
b21haW5SZWRpcmVjdGVkVG8sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3Rl
ZEZyb20sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5z
ZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVkaXJl
Y3RlZEZyb20sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19
Ci0gICAgCi0gICAgCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRMYXN0U2VlbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIFNlY29uZHMg
c2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewot
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PnNldExhc3RTZWVuKGRvbWFpbiwgc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZG9tYWluSURFeGlz
dHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWFpbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBp
ZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmRvbWFpbklE
RXhpc3RzSW5EYXRhYmFzZShkb21haW5JRCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6Om1lcmdl
U3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiBkb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURv
bWFpbjEsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMg
bGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2Vy
SW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29s
IGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKGRvbWFpbiwgdG9wRnJhbWVEb21haW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVu
LCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRm
YXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVk
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lk
IE5ldHdvcmtQcm9jZXNzOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIHVuc2ln
bmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24s
IGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZh
bGVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewot
ICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAg
ICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlu
c2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGRvbWFpbiwgbnVtYmVyT2ZPcGVyYXRpbmdE
YXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2ll
RGF0YVJlbW92YWwsIGlzUHJldmFsZW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpnZXRBbGxTdG9yYWdlQWNj
ZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
aWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25J
RCkpCkBAIC05NTYsNjcgKzU3Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmdldEFsbFN0b3Jh
Z2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxlCiAgICAgfQog
fQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdGFyZ2V0RG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vj
b25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5
SW5pdGlhdGVkQnlVc2VyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ0ZyYW1lTmF2aWdhdGlvbih0YXJnZXREb21haW4sIHRvcEZy
YW1lRG9tYWluLCBzb3VyY2VEb21haW4sIGlzUmVkaXJlY3QsIGlzTWFpbkZyYW1lLCBkZWxheUFm
dGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcik7
Ci0gICAgfSBlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3
b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAg
ICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nVXNlckludGVyYWN0aW9uKGRvbWFpbiwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6aGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5oYXNIYWRVc2VySW50ZXJhY3Rpb24oZG9tYWlu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9u
Y2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzUmVsYXRpb25zaGlwT25s
eUluRGF0YWJhc2VPbmNlKHN1YkRvbWFpbiwgdG9wRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZh
bHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vz
c2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJVc2VySW50ZXJhY3Rpb24oZG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpoYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpOwpAQCAtMTA0MCw4NCArNjAwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6
c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vz
c2kKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpz
ZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNl
Y29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5z
ZXRHcmFuZGZhdGhlcmluZ1RpbWUoc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0TWF4U3RhdGlz
dGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBtYXhpbXVtRW50
cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewot
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKG1heGltdW1FbnRyeUNvdW50LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJ1bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcHJ1bmVUYXJnZXRDb3VudCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFBydW5lRW50cmllc0Rvd25U
byhwcnVuZVRhcmdldENvdW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRUaW1lVG9MaXZlVXNlckludGVy
YWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0VGltZVRvTGl2ZVVz
ZXJJbnRlcmFjdGlvbihzZWNvbmRzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRDbGFzc2lmeVJl
c291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh2
YWx1ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGVuYWJsZWQpCiB7CiAgICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTEzMSwzMSArNjEzLDYgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdF
dmVudChib29sIGVuYWJsZWQpCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoZGVidWdNb2RlLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKSBjb25zdAotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Np
b24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkgewotICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIocmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNFcGhlbWVyYWwoKSk7Ci0g
ICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9IGVsc2UKLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotfQotCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpyZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2Vz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24g
PSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTE5MCwxOSArNjQ3LDYgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFM
OjpTZXNzaW9uSUQgc2Vzc2kKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENy
b3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MtPmxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oZnJvbURv
bWFpbiwgdG9Eb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICB9Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlu
a0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBu
ZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtMTIy
MCwyMCArNjY0LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFzSXNvbGF0ZWRTZXNzaW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZToKICAgICBjb21wbGV0aW9uSGFu
ZGxlcihyZXN1bHQpOwogfQogCi0jaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4+JiYgYXBwQm91bmREb21haW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lv
bihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
ID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKSB7Ci0gICAgICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRBcHBCb3VuZERvbWFpbnMoV1RGTW92ZShhcHBCb3VuZERv
bWFpbnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgICAgICByZXR1cm47
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLX0KLSNlbmRpZgotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91
bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgZm9yRWFjaE5ldHdvcmtT
ZXNzaW9uKFtlbmFibGVkXShhdXRvJiBzZXNzaW9uKSB7CkBAIC0xMjUxLDcgKzY4MSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYWJs
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkKICAgICAgICAgc2Vz
c2lvbi0+c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50KGVuYWJsZWQpOwpA
QCAtMTI2MCwxOSArNjkwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVT
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3MKICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNl
c3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygp
KQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0Rmlyc3RQYXJ0eVdlYnNp
dGVEYXRhUmVtb3ZhbE1vZGUobW9kZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9TYW1lU2l0ZVN0cmlj
dENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Np
b24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oIGIvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDc4Nzc5MjdhMTdjNTU5NmViMDNiZDRhY2Y0
ZDU4ZTQxOGFjOGJhMjMuLjVlMmJlNzIzNjVlZThlZTczYmI1MzU5MDVhMzIwYmFlYjI3ZGQ5OTUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAg
LTIwMiw3NyArMjAyLDI5IEBAIHB1YmxpYzoKICAgICB2b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUo
V2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJik7CiAKICNpZiBFTkFCTEUoSU5URUxMSUdFTlRf
VFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICB2b2lkIGNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBkZWxldGVBbmRSZXN0cmljdFdlYnNpdGVEYXRhRm9yUmVnaXN0cmFibGVEb21h
aW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgUmVnaXN0cmFi
bGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3ImJiwgYm9vbCBzaG91bGRO
b3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFi
bGVEb21haW4+Jik+JiYpOwogICAgIHZvaWQgZGVsZXRlQ29va2llc0ZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQsIFJlZ2lzdHJhYmxlRG9tYWluLCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tpZXMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBkdW1wUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmKTsKICAgICB2b2lkIHVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWluc1Rv
QmxvY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBpc0dyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBpc1ByZXZhbGVudFJlc291cmNlKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6
OlNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmKTsKLSAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Np
b25JRCwgY29uc3QgUmVkaXJlY3RlZEZyb21Eb21haW4mLCBjb25zdCBSZWRpcmVjdGVkVG9Eb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGlzUmVnaXN0
ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4m
LCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwotICAgIHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklE
LCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0TWF4U3RhdGlz
dGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3Vy
Y2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFM
OjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFBydW5lRW50cmllc0Rvd25UbyhQQUw6OlNlc3Npb25J
RCwgdWludDY0X3QgcHJ1bmVUYXJnZXRDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIGhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2
b2lkIGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGhh
c0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIGdldEFsbFN0b3JhZ2VB
Y2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3Rv
cjxTdHJpbmc+IGRvbWFpbnMpPiYmKTsKLSAgICB2b2lkIGxvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6
OlNlc3Npb25JRCwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNN
YWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3
YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcik7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRS
ZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0g
ICAgdm9pZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzY2hlZHVsZUNsZWFySW5NZW1v
cnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBt
b2RpZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBnZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1
bW1hcnkoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFdlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGE+JiYpPiYmKTsKLSAgICB2
b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRh
UmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7Ci0gICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRHcmFuZGZhdGhlcmlu
Z1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZv
aWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklELCBpbnQgZG9tYWluSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgbWVyZ2VTdGF0aXN0
aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGNv
bnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFRvcEZyYW1lRG9tYWlu
JiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0
aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhl
cmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0
YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQg
aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBi
b29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURh
dGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwotICAgIHZvaWQgc2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6
U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZv
aWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25J
RCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNl
dElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklELCBib29s
IHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wpOwogICAgIHZvaWQg
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudChib29sKTsKLSAgICB2b2lk
IHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGJvb2wg
ZGVidWdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiZkKTsKLSAgICB2b2lkIGlzUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7Ci0gICAgdm9pZCBzZXRTaG91bGRDbGFzc2lmeVJl
c291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFN1YmZyYW1lVW5k
ZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVj
dFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFJlZGly
ZWN0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBz
ZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCwgY29uc3QgU3Vi
UmVzb3VyY2VEb21haW4mLCBjb25zdCBSZWRpcmVjdGVkRnJvbURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9u
KFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwot
ICAgIHZvaWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJv
bShQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBSZWRpcmVjdGVk
RnJvbURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZWdp
c3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoUEFMOjpTZXNzaW9uSUQsIE9wdGlvblNldDxX
ZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mJik+JiYpOwogICAgIHZvaWQgZGlkQ29t
bWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9E
b21haW4sIE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1NpdGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVy
OjpGbGFnPiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIp
OwotICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIGhhc0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25zdDsK
ICAgICB2b2lkIGNsb3NlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0jaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgIHZvaWQg
c2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25J
RCwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKLSNlbmRpZgogICAgIHZvaWQgc2V0U2hvdWxkRG93bmdyYWRlUmVmZXJy
ZXJGb3JUZXN0aW5nKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9p
ZCBzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklELCBXZWJDb3Jl
OjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwotICAgIHZvaWQgc2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdl
YkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZv
cmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAgICAgdm9pZCBzZXRGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgZmlyc3RQYXJ0eUhvc3QsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluJiYgY25hbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAg
ICAgdm9pZCBzZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogI2VuZGlmCi0KICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxl
ZChib29sKTsKICAgICBib29sIHByaXZhdGVDbGlja01lYXN1cmVtZW50RW5hYmxlZCgpIGNvbnN0
OwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREZWJ1Z01vZGUoUEFMOjpTZXNz
aW9uSUQsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
TmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXggNjM3ZTE1OWYxODYzOTNiZWM1Y2MwNWFi
NWJkNTc4MGJlOGM2ZmNlNC4uYjEwYWJlY2M0MGVkMmRmODdkZmVlYmU0YTZhNTVhNDM0ZGEyMjIy
NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vz
cy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03OSw3MCArNzksMjMgQEAgbWVzc2FnZXMgLT4gTmV0d29y
a1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFByZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJ
RCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNl
ckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3RvcmVkQ3JlZGVudGlhbHNQb2xpY3kgc3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBzdGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2
aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIGVu
dW06Ym9vbCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0
aW9uV2FzQXBwSW5pdGlhdGVkKTsKIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19Q
UkVWRU5USU9OKQotICAgIENsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKLSAgICBDbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwot
ICAgIER1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKFN0cmluZyBkdW1wZWRTdGF0aXN0aWNzKSBBc3luYwogICAgIFNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBlbmFibGVkKQog
ICAgIFNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQoYm9vbCBlbmFibGVk
KQogICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gZG9tYWlu
c1RvQmxvY2spIC0+ICgpIEFzeW5jCi0gICAgSXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAo
Ym9vbCBpc0dyYW5kZmF0aGVyZWQpIEFzeW5jCi0gICAgSXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERv
bWFpbikgLT4gKGJvb2wgaXNQcmV2YWxlbnQpIEFzeW5jCi0gICAgSXNWZXJ5UHJldmFsZW50UmVz
b3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0YXJnZXREb21haW4pIC0+IChib29sIGlzVmVyeVByZXZhbGVudCkgQXN5bmMKICAgICBTZXRB
Z2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6
b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRMYXN0U2VlbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgTWVyZ2VTdGF0aXN0
aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4yLCBT
ZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVj
ZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVu
dCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNvcmRzUmVtb3ZlZCkgLT4g
KCkgQXN5bmMKLSAgICBJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWlu
LCB1aW50NjRfdCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVy
YWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wg
aXNQcmV2YWxlbnQpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIElzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVt
ZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChib29sIGlzRXBoZW1lcmFsKSBBc3lu
YwotICAgIEhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24pIEFzeW5jCi0gICAgSXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJEb21h
aW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJvb2wgaGFkVXNl
ckludGVyYWN0aW9uKSBBc3luYwogICAgIEhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAo
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCiAgICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0Vu
dHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFN0cmluZz4gZG9tYWlu
cykgQXN5bmMKLSAgICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFp
biwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9v
bCBpc1JlZGlyZWN0aW5nVG8pIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVy
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAt
PiAoYm9vbCBpc1N1YmZyYW1lVW5kZXIpIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNTdWJyZXNv
dXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZy
YW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1YnJlc291cmNlVW5kZXIpIEFzeW5jCi0gICAgRG9tYWlu
SURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWFpbklE
KSAtPiAoYm9vbCBleGlzdHMpIEFzeW5jCi0gICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWlu
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWlu
RnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQ
b3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikKLSAgICBMb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbikgLT4gKCkgQXN5bmMKLSAgICBSZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIFNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBlbnVtOmJvb2wgV2ViS2l0OjpTaG91bGRHcmFuZGZh
dGhlclN0YXRpc3RpY3Mgc2hvdWxkR3JhbmRmYXRoZXIpIC0+ICgpIEFzeW5jCi0gICAgU2NoZWR1
bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFz
eW5jCi0gICAgU2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTdGF0aXN0aWNzRGF0YWJhc2VI
YXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoYm9vbCBoYXNBbGxUYWJs
ZXMpIEFzeW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAg
U2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkg
QXN5bmMKLSAgICBHZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gdGhpcmRQYXJ0eURhdGEpIEFzeW5jCi0gICAgU2V0
R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNv
bmRzKSAtPiAoKSBBc3luYwotICAgIFNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCi0g
ICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldFBydW5lRW50
cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRy
eUNvdW50KSAtPiAoKSBBc3luYwotICAgIFNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3Jl
RGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkg
LT4gKCkgQXN5bmMKLSAgICBTZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVk
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBT
ZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlKSAt
PiAoKSBBc3luYwotICAgIFNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAo
KSBBc3luYwotICAgIFNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5bmMKLSAg
ICBTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRUaW1l
VG9MaXZlVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBz
ZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1l
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+
ICgpIEFzeW5jCi0gICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4pIC0+ICgpIEFz
eW5jCiAgICAgUmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAgICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9h
ZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b0Rv
bWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkNyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6
OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNmZXIsIFdlYktpdDo6V2ViUGFnZVByb3h5SWRlbnRp
ZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFnZUlEKQot
ICAgIFNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgUmVz
ZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIERlbGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWlu
LCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tpZXMpIC0+ICgpIEFzeW5jCiAgICAgSGFzSXNvbGF0
ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gZG9tYWluKSAtPiAoYm9vbCBoYXNJc29sYXRlZFNlc3Npb24pIEFzeW5jCiAgICAgQ2xv
c2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0jaWYg
RU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgIFNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291
cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBIYXNoU2V0PFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBhcHBCb3VuZERvbWFpbnMpIC0+ICgpIEFzeW5jCi0jZW5k
aWYKICAgICBTZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9vbCBlbmFibGVk
KSAtPiAoKSBBc3luYwogICAgIFNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZSBibG9ja2luZ01vZGUpIC0+ICgpIEFzeW5jCi0gICAgU2V0U2hvdWxkRW5i
bGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxl
ZCBlbmFibGVkKSAtPiAoKSBBc3luYwotICAgIFNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlKSAtPiAoKSBBc3lu
YworICAgIFNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTpib29sIFdlYkNvcmU6OlNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0VG9TYW1l
U2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNldEZpcnN0
UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U3RyaW5nIGZpcnN0UGFydHlIb3N0LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBjbmFtZURv
bWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRUaGlyZFBhcnR5Q05BTUVEb21haW5Gb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9t
YWluKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggY2ExYmYxMGQ4ZjI2OTIzNjVkMzU3
MTliNzNjNDAzMTg5MDZlYmFlZS4uMDY5YjA3ODI4OTgyMmIxMDhhODk0ZTYxZTg2MjYyZWFmYThk
Y2I2ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3Jr
UHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05l
dHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAiV2ViUHJv
Y2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIKICNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlVzZXJDb250
ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNpbmNsdWRl
ICJXZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgiCkBAIC02MTMsOCArNjE0LDggQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIEMKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KLSAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhzZXNzaW9uSUQpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6RHVtcFJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmV2YWxlbnREb21haW5z
VG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBWZWN0b3I8
UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zVG9CbG9jaywgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjM5LDcgKzY0MCw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6aXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1ByZXZhbGVudFJlc291cmNlKHNlc3Np
b25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OklzUHJldmFsZW50UmVzb3VyY2UocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjQ5LDcgKzY1MCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1ZlcnlQcmV2YWxl
bnRSZXNvdXJjZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZURvbWFp
biksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTY1
OSw3ICs2NjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJlc291
cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUgogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0UHJldmFsZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UHJldmFsZW50UmVzb3VyY2UocmVzb3Vy
Y2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0
KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJlc291cmNl
Rm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC02NjksNyArNjcwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW8K
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKHNlc3Np
b25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OlNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKHJlc291cmNlRG9tYWluKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTY3OSw3
ICs2ODAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFZlcnlQcmV2YWxlbnRSZXNv
dXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
VmVyeVByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShy
ZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TGFzdFNlZW4oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIFNlY29uZHMgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKQEAgLTY4OSw3ICs2OTAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldExhc3RTZWVuKHNlc3Npb25JRCwgcmVzb3VyY2VE
b21haW4sIGxhc3RTZWVuKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpT
ZXRMYXN0U2VlbihyZXNvdXJjZURvbWFpbiwgbGFzdFNlZW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKQEAgLTY5OSwxNyArNzAwLDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKHNlc3Npb25JRCwg
ZG9tYWluSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkRvbWFpbklE
RXhpc3RzSW5EYXRhYmFzZShkb21haW5JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBz
ZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bWVy
Z2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4y
LCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0
UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZh
bGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok1lcmdlU3RhdGlzdGlj
Rm9yVGVzdGluZyhzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCB0b3BGcmFtZURvbWFpbjEsIHRv
cEZyYW1lRG9tYWluMiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFs
ZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6Ok1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVE
b21haW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1v
c3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlz
VmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgdW5zaWduZWQg
bnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9v
bCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SW5zZXJ0RXhwaXJl
ZFN0YXRpc3RpY0ZvclRlc3Rpbmcoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgbnVtYmVyT2ZP
cGVyYXRpbmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24sIGlzU2NoZWR1bGVkRm9yQWxs
QnV0Q29va2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50KSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhyZXNvdXJj
ZURvbWFpbiwgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24s
IGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50KSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03MTksNyAr
NzIwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpD
bGVhclByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkNsZWFyUHJldmFsZW50UmVzb3VyY2UocmVz
b3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogICAgIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNvb2tp
ZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzI5LDcgKzczMCw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2NoZWR1bGVDb29raWVC
bG9ja2luZ1VwZGF0ZShzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgU2hvdWxk
R3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03NDksNyArNzUwLDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nl
c3NpbmcoUEFMOjpTZXNzaW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTY2hlZHVsZVN0YXRpc3Rp
Y3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3Npbmcoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpTY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nl
c3NpbmcoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNB
bGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzU5LDcgKzc2MCw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6c3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3RhdGlzdGljc0RhdGFiYXNl
SGFzQWxsVGFibGVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6U3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03NjksNyArNzcwLDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5Ojpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkxvZ1VzZXJJbnRlcmFjdGlvbihzZXNz
aW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpMb2dVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTc3OSwxMiArNzgwLDEyIEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aGFzSGFkVXNlckludGVyYWN0aW9uKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpIYWRVc2VySW50
ZXJhY3Rpb24oc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6SGFzSGFkVXNlckludGVyYWN0aW9uKHJlc291cmNlRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25j
ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRh
YmFzZU9uY2Uoc2Vzc2lvbklELCBzdWJEb21haW4sIHRvcERvbWFpbiksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2Uo
c3ViRG9tYWluLCB0b3BEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lv
bklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyVXNl
ckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC03OTQsNyArNzk1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpjbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFIK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhclVzZXJJbnRlcmFjdGlvbihzZXNzaW9uSUQsIHJl
c291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpDbGVh
clVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6aGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODI0LDcgKzgyNSw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFj
dGlvbihzZXNzaW9uSUQsIHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oc2Vjb25kcyksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTgzNCw3ICs4MzUsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQo
UEFMOjpTZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldE5vdGlmeVBhZ2VzV2hlbkRh
dGFSZWNvcmRzV2VyZVNjYW5uZWQoc2Vzc2lvbklELCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZCh2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0SXNSdW5uaW5nUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NDQs
NyArODQ1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc1J1bm5pbmdSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRAogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KHNlc3Npb25JRCwgdmFsdWUp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldElzUnVubmluZ1Rlc3Qo
dmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkp
OwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NTQs
NyArODU1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJmcmFtZVVuZGVyVG9w
RnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbkkKICAgICAgICAgcmV0dXJuOwogICAg
IH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oc2Vzc2lvbklELCBzdWJGcmFtZURvbWFp
biwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OlNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVE
b21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkp
OwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW5SZWRpcmVjdGVkRnJvbSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGly
ZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTg2NCw3ICs4NjUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0
ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6SXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKHNlc3Npb25JRCwgZG9tYWlu
UmVkaXJlY3RlZEZyb20sIGRvbWFpblJlZGlyZWN0ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6SXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKGRvbWFpblJlZGly
ZWN0ZWRGcm9tLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtODc0LDcgKzg3NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoc2Vz
c2lvbklELCBzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihzdWJGcmFt
ZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vz
c2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1
YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC04ODQsNyArODg1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vz
c2kKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW4oc2Vzc2lvbklELCBzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFt
ZURvbWFpbihzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODk0LDcgKzg5NSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZWdpc3RlcmVk
QXNTdWJyZXNvdXJjZVVuZGVyKHNlc3Npb25JRCwgc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1l
RG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc1JlZ2lzdGVy
ZWRBc1N1YnJlc291cmNlVW5kZXIoc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVz
b3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkVG8s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkwNCw3
ICs5MDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzZXNzaW9uSUQsIHN1YnJlc291cmNlRG9t
YWluLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJyZXNvdXJjZURvbWFpbiwg
ZG9tYWluUmVkaXJlY3RlZFRvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25J
RC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC05MTQsNyArOTE1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNz
aW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJv
bShzZXNzaW9uSUQsIHN1YnJlc291cmNlRG9tYWluLCBkb21haW5SZWRpcmVjdGVkRnJvbSksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0U3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdEZyb20oc3VicmVzb3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9tKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkVG8sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkyNCw3ICs5MjUsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VG9wRnJh
bWVVbmlxdWVSZWRpcmVjdFRvKHNlc3Npb25JRCwgdG9wRnJhbWVEb21haW4sIGRvbWFpblJlZGly
ZWN0ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0VG9wRnJh
bWVVbmlxdWVSZWRpcmVjdFRvKHRvcEZyYW1lRG9tYWluLCBkb21haW5SZWRpcmVjdGVkVG8pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZEZyb20sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkzNCw3ICs5
MzUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRAogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHNlc3Npb25JRCwgdG9wRnJhbWVEb21haW4sIGRv
bWFpblJlZGlyZWN0ZWRGcm9tKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVk
aXJlY3RlZEZyb20pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRmYXRoZXJlZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJj
ZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTk0NCw3ICs5NDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRm
YXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdAogICAgICAgICBy
ZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OklzR3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc0dyYW5kZmF0aGVyZWQocmVz
b3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3Vy
Y2VEb21haW4sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05NTQsNyArOTU1LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNlc3Npb25J
RCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6U2V0R3JhbmRmYXRoZXJlZChyZXNvdXJjZURvbWFpbiwgaXNHcmFu
ZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2
NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFnZUFjY2Vz
c0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRpZmllciBm
cmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTk4NSw3ICs5ODYsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeShQQUw6
OlNlc3Npb25JRCBzZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6R2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFTdW1tYXJ5KHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6QWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKQEAgLTEwMTUsNyArMTAxNiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U2Vjb25kCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJpbmdUaW1lKHNlc3Np
b25JRCwgc2Vjb25kcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0
R3JhbmRmYXRoZXJpbmdUaW1lKHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
c2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90IG1h
eGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCkBAIC0xMDI1LDcgKzEwMjYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZQogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U2V0TWF4U3RhdGlzdGljc0VudHJpZXMoc2Vzc2lvbklELCBtYXhpbXVt
RW50cnlDb3VudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0TWF4
U3RhdGlzdGljc0VudHJpZXMobWF4aW11bUVudHJ5Q291bnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTAzNSw3ICsxMDM2LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFM
OjpTZXNzaW9uSUQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRNaW5pbXVtVGltZUJldHdlZW5E
YXRhUmVjb3Jkc1JlbW92YWwoc2Vzc2lvbklELCBzZWNvbmRzKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpTZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoc2Vjb25kcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJ1bmVFbnRyaWVzRG93
blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90IHBydW5lVGFyZ2V0Q291bnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwNDUsNyAr
MTA0Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJ1bmVFbnRyaWVzRG93blRv
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQ
cnVuZUVudHJpZXNEb3duVG8oc2Vzc2lvbklELCBwcnVuZVRhcmdldENvdW50KSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRQcnVuZUVudHJpZXNEb3duVG8ocHJ1bmVU
YXJnZXRDb3VudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkQ2xhc3NpZnlS
ZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCkBAIC0xMDU1LDcgKzEwNTYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNo
b3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTAogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29y
ZHNSZW1vdmFsKHNlc3Npb25JRCwgdmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OlNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2
NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwNjUs
NyArMTA2Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAgICAgIHJldHVybjsKICAg
ICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShzZXNzaW9uSUQsIGRlYnVnTW9k
ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnTW9kZShkZWJ1Z01vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC0xMDc1LDcgKzEwNzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaQogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OklzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChzZXNzaW9uSUQpLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVzb3VyY2VMb2FkU3RhdGlz
dGljc0VwaGVtZXJhbCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRv
VUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q2FjaGVNYXhB
Z2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMDg1LDkgKzEw
ODYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJl
c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoc2Vzc2lvbklEKSwgW2NvbXBs
ZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSk7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFs
dWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTA5Nyw5ICsxMDk2LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbkkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMoc2Vzc2lvbklEKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcygpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mgc2hvdWxkR3Jh
bmRmYXRoZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
QEAgLTExMDksOSArMTEwNiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVD
bGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KHNlc3Npb25JRCwgeyB9
LCBzaG91bGRHcmFuZGZhdGhlciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoc2Vzc2lvbklELCB7IH0sIHNob3Vs
ZEdyYW5kZmF0aGVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmxvZ1Rlc3RpbmdFdmVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFN0cmluZyYgZXZlbnQpCkBAIC0xMTYyLDcgKzExNTcsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0
aW5nKFBBTDo6U2VzcwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENyb3NzU2l0ZUxvYWRXaXRo
TGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKHNlc3Npb25JRCwgZnJvbURvbWFpbiwgdG9Eb21haW4p
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkxvZ0Nyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb24oZnJvbURvbWFpbiwgdG9Eb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQpAQCAtMTIxNSw5ICsxMjEwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBSZWcKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYgYXBw
Qm91bmREb21haW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCiB7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhzZXNzaW9uSUQsIGFw
cEJvdW5kRG9tYWlucyksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0p
OworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpTZXRBcHBCb3VuZERvbWFpbnNGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKGFw
cEJvdW5kRG9tYWlucyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAjZW5kaWYKIApAQCAtMTI1Miw5ICsxMjQ1LDkgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb24KICAgICB9KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRT
aG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQg
ZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQor
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlNh
bWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRGb3JUZXN0aW5nKHNlc3Npb25JRCwgZW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhz
ZXNzaW9uSUQsIGVuYWJsZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1v
ZGVGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgRmlyc3RQYXJ0eVdlYnNpdGVE
YXRhUmVtb3ZhbE1vZGUgbW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQpAQCAtMTI2NCw3ICsxMjU3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXMK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OlNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9y
VGVzdGluZyhzZXNzaW9uSUQsIG1vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKG1vZGUpLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgK
aW5kZXggNWM5YzQ1M2RjYzRkNTg2MThmODU2OTFhMDRiMTU1NzViNWEzYmNjOS4uNGQwODY4ZTk3
YzgxNDNlNTc1OTJjMTFiOThkODI1Y2E4ZTQwMjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE5OSw3ICsx
OTksNyBAQCBwdWJsaWM6CiAjZW5kaWYKICAgICB2b2lkIHNldFNob3VsZERvd25ncmFkZVJlZmVy
cmVyRm9yVGVzdGluZyhib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZv
aWQgc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShQQUw6OlNlc3Npb25JRCwgV2ViQ29y
ZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKLSAgICB2b2lkIHNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZv
clRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0U2hv
dWxkRW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGVGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2
b2lkIHNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwog
ICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFN0cmluZyYgZmlyc3RQYXJ0eUhvc3QsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBjbmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCmluZGV4IGI3OTAzMjk1MjIxZDcxZDk3OWY0
OGI2ZDY2ZjZmYWE3NzUxMjdiMDIuLjVhN2NmMjc0OTczZWQ1YTA3OTcyZWRiMDA4MWJlMTFhNTdj
ZTJmYzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5j
cHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTQy
LDYgKzE0Miw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2Vi
UHJvdGVjdGlvblNwYWNlLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZXMu
aCIKICNpbmNsdWRlICJXZWJVUkxTY2hlbWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNv
bnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNpbmNsdWRlICJXZWJWaWV3RGlkTW92ZVRvV2luZG93
T2JzZXJ2ZXIuaCIKQEAgLTU1NjgsNyArNTU2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dG
cmFtZU5hdmlnYXRpb24oY29uc3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFn
CiAgICAgaWYgKHRhcmdldEhvc3QuaXNFbXB0eSgpIHx8IG1haW5GcmFtZUhvc3QuaXNFbXB0eSgp
IHx8IHRhcmdldEhvc3QgPT0gc291cmNlVVJMLmhvc3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0g
ICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0
d29ya1Byb2Nlc3M6OkxvZ0ZyYW1lTmF2aWdhdGlvbihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Np
b25JRCgpLCBSZWdpc3RyYWJsZURvbWFpbiB7IHRhcmdldFVSTCB9LCBSZWdpc3RyYWJsZURvbWFp
biB7IHBhZ2VVUkwgfSwgUmVnaXN0cmFibGVEb21haW4geyBzb3VyY2VVUkwgfSwgaXNSZWRpcmVj
dCwgZnJhbWUuaXNNYWluRnJhbWUoKSwgTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2RpZEZpbmlz
aERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRpbWVzdGFtcCwgd2FzUG90ZW50aWFsbHlJbml0aWF0
ZWRCeVVzZXIpLCAwKTsKKyAgICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5z
ZW5kKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkxvZ0ZyYW1lTmF2
aWdhdGlvbihSZWdpc3RyYWJsZURvbWFpbiB7IHRhcmdldFVSTCB9LCBSZWdpc3RyYWJsZURvbWFp
biB7IHBhZ2VVUkwgfSwgUmVnaXN0cmFibGVEb21haW4geyBzb3VyY2VVUkwgfSwgaXNSZWRpcmVj
dCwgZnJhbWUuaXNNYWluRnJhbWUoKSwgTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2RpZEZpbmlz
aERvY3VtZW50TG9hZEZvck1haW5GcmFtZVRpbWVzdGFtcCwgd2FzUG90ZW50aWFsbHlJbml0aWF0
ZWRCeVVzZXIpLCBzZXNzaW9uSUQoKS50b1VJbnQ2NCgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3Jl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3Rv
cmUuY3BwCmluZGV4IDcxY2Y5MjA3ZWZkOWNhMjk1YWI4OTBkNjc2ZTJkMzlkNDkyZDY2NTguLjlk
NjhjM2ZhMDk2N2EzNGE0ZjNiNWQyZjY5ZWFkMTg2YTYzODQwZWEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
CkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Bvb2wuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuaCIKKyNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNz
YWdlcy5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFT
dG9yZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCkBA
IC0xMzk2LDcgKzEzOTcsNyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZQogICAgIGF1dG8gZmxh
ZyA9IGVuYWJsZWQgPyBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6
WWVzIDogV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogCiAg
ICAgYXV0byBjYWxsYmFja0FnZ3JlZ2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRTaG91
bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKG1fc2Vzc2lvbklELCBm
bGFnLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0
U2hvdWxkRW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcobV9zZXNzaW9u
SUQsIGZsYWcsIFtjYWxsYmFja0FnZ3JlZ2F0b3JdIHsgfSk7CiB9CiAKIHZvaWQgV2Vic2l0ZURh
dGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlRm9yVGVzdGluZyhib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IGQyOWZkOTFjZjQ0NmVjNzk1NjUyODU0M2NmYTMwYTMy
NDIxM2RlM2YuLmM1NGZiMWRjMjgwOTYwYzc2MDk1Y2I1NjYyZmIwMDliZDIwZTk4NmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysr
IGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1
OCw2ICsxMjU4LDcgQEAKIAkJNUNFOTEyMTEyMjkzQzI3ODAwNUJFQzc4IC8qIEF1eGlsaWFyeVBy
b2Nlc3NNYWluLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDVDRTkxMjBGMjI5M0MyNUYwMDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAg
Ki87IH07CiAJCTVDRTkxMjEyMjI5M0MyNzgwMDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFp
bi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U5
MTIwRjIyOTNDMjVGMDA1QkVDNzggLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwICovOyB9Owog
CQk1Q0U5MTIxNDIyOTNDMjgwMDA1QkVDNzggLyogV0tNYWluLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U5MTIwQjIyOTNDMUUwMDA1QkVDNzggLyog
V0tNYWluLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsK
KwkJNUNFRjFEMEQyNzg2MUE4MjAwQjVENzlDIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1Q0VGMUQwQzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNjMxMDhGOTYxRjk2
NzE5QzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzMTA4Rjk0MUY5NjcxOUMwMEEwREI4NCAv
KiBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJNjMxMDhGOTkxRjk2NzFGNzAwQTBEQjg0IC8qIF9XS0FwcGxp
Y2F0aW9uTWFuaWZlc3RJbnRlcm5hbC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjMxMDhGOTgxRjk2NzFGNzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9u
TWFuaWZlc3RJbnRlcm5hbC5oICovOyB9OwogCQk2MzQ4NDI1MTFGQjI2RTcxMDA5NDZFM0MgLyog
QVBJQXBwbGljYXRpb25NYW5pZmVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNjM0ODQyNEYxRkIyNkU3MTAwOTQ2RTNDIC8qIEFQSUFwcGxpY2F0aW9u
TWFuaWZlc3QuaCAqLzsgfTsKQEAgLTQ5MTcsNiArNDkxOCw4IEBACiAJCTVDRTkxMjBGMjI5M0My
NUYwMDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IG5hbWUgPSBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHA7IHBhdGggPSBDb2Nv
YS9BdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJ
CTVDRUFCQTJBMjMzMzI0NzcwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0VBQkEyQjIzMzMyNTE0MDA3OTc3OTcgLyogTGVn
YWN5R2xvYmFsU2V0dGluZ3MuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTGVnYWN5R2xvYmFsU2V0dGluZ3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owor
CQk1Q0VGMUQwODI3ODYwNEREMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgbmFtZSA9IFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbjsgcGF0aCA9IENsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1Q0VGMUQwQzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRkVDQjAzMUUxRUQxQzgwMEY4ODUwNCAv
KiBMZWdhY3lDdXN0b21Qcm90b2NvbE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNURBRDczRjExMTZGRjkwQzAwRUU1Mzk2IC8qIEJhc2VUYXJn
ZXQueGNjb25maWcgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZVRhcmdldC54
Y2NvbmZpZzsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNjMxMDhGOTQxRjk2NzE5QzAw
QTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXBw
bGljYXRpb25NYW5pZmVzdC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAxMTUs
NiArMTAxMTgsNyBAQAogCQkJCTdBM0ZFQ0ExMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNj
ZXNzU3RhdHVzLmggKi8sCiAJCQkJN0E4NDNBMUEyMUU0MUZCMjAwREVGNjYzIC8qIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAgKi8sCiAJCQkJN0FGQkQzNjIyMUU1MEYzOTAwNURC
QUNCIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oICovLAorCQkJCTVDRUYxRDA4
Mjc4NjA0REQwMEI1RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2Fn
ZXMuaW4gKi8sCiAJCQkpOwogCQkJbmFtZSA9IENsYXNzaWZpZXI7CiAJCQlzb3VyY2VUcmVlID0g
Ijxncm91cD4iOwpAQCAtMTIyMDQsNiArMTIyMDgsNyBAQAogCQkJCUJDRUU3QUNEMTI4MTc5ODgw
MDk4MjdEQSAvKiBXZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxRjA2MEREMTY1
NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8s
CiAJCQkJNTFGMDYwREUxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2Fn
ZXMuaCAqLywKKwkJCQk1Q0VGMUQwQzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUYwNjBERDE2NTQz
MTc1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJ
NTFGMDYwREQxNjU0MzE3NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLywKIAkJCQk0MUYwNjBERDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5l
bE1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCkBAIC0xNTc2OSw2ICsxNTc3NCw3IEBACiAJCQkJNTE3
QjVGNzkyNzVFOTdBMTAwMkRDMjJEIC8qIFdlYlB1c2hEYWVtb25NYWluLm1tIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTE3QjVGOTkyNzVFQzYwMTAwMkRDMjJEIC8qIFdlYlB1c2hNZXNzYWdlQ29jb2Eu
bW0gaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogV2ViUmVz
b3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNFRjFE
MEQyNzg2MUE4MjAwQjVENzlDIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3Nh
Z2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4
MUYgLyogV2ViUlRDTW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2
ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdl
YlNvY2tldENoYW5uZWwuY3BwIGluIFNvdXJjZXMgKi8sCg==
</data>
<flag name="commit-queue"
          id="474274"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448415</attachid>
            <date>2022-01-05 12:05:44 -0800</date>
            <delta_ts>2022-01-05 17:35:14 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234892-20220105120543.patch</filename>
            <type>text/plain</type>
            <size>121394</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NTgwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVmODk5ODU2NjQzNzRjNTU4
NWE1MTAzMjk5ZDdkZDQyOGUyZDcyNTcuLmM3MTA1ZGQwYTdkZGU5ZjI5OTI0NjI4MjdkMDE3ZTYw
ZmRhZGNiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTI3IEBACisyMDIyLTAxLTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYSBNZXNzYWdlUmVjZWl2ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlzIGEgbG90IG9mIGJv
aWxlcnBsYXRlIGNvZGUgdGhhdCBmaW5kcyB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlIGFuZCBmb3J3YXJkcyB0aGUgSVBDIHBhcmFtZXRlcnMgdG8gaXQuCisgICAgICAgIExldCdz
IGp1c3Qgc2VuZCBtZXNzYWdlcyBkaXJlY3RseSB0byB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLgorICAgICAgICBBbHNvIHJlbW92ZSB0aGUgdW51c2VkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5oLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAg
ICAgICogRGVyaXZlZFNvdXJjZXMubWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFz
c2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOiBSZW1vdmVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmll
ci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1bXBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmlzR3JhbmRmYXRoZXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjppc1ByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQpOiBEZWxldGVk
LgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2Up
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50
UmVzb3VyY2VGb3JEZWJ1Z01vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzczo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3M6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1Vw
ZGF0ZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpnZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzUHJvY2Vzc2luZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29y
ZHNXZXJlU2Nhbm5lZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdCk6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21h
aW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcik6IERlbGV0ZWQuCisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4p
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdFRvKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRl
cik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0VG8pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0TGFzdFNlZW4pOiBEZWxldGVkLgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6Om1lcmdlU3RhdGlzdGljRm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbnNlcnRF
eHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpsb2dGcmFtZU5hdmlnYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmhhZFVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQu
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc1JlbGF0aW9uc2hpcE9ubHlJbkRh
dGFiYXNlT25jZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpj
bGVhclVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzOjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0TWF4U3RhdGlzdGljc0VudHJpZXMpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJl
Y29yZHNSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnNldFBydW5lRW50cmllc0Rvd25Ubyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVm
b3JlRGF0YVJlY29yZHNSZW1vdmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RXBoZW1lcmFsIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKTogRGVsZXRl
ZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldEFwcEJvdW5kRG9tYWluc0Zv
clJlc291cmNlTG9hZFN0YXRpc3RpY3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVz
dGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1By
b2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05l
dHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2Up
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcmV2YWxlbnRSZXNv
dXJjZUZvckRlYnVnTW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldExhc3RTZWVuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3Rpbmcp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJl
c291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRh
Ymxlcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1VzZXJJbnRl
cmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Omhhc0hhZFVz
ZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Omlz
UmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdp
c3RlcmVkQXNTdWJGcmFtZVVuZGVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKToK
KyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRmYXRoZXJlZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRGF0YVN1bW1hcnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3Zh
bCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFBydW5lRW50cmll
c0Rvd25Ubyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKToKKyAgICAgICAgKFdl
YktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVn
TW9kZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VwaGVtZXJhbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OnJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNs
ZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcpOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmFibGVTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVz
dGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZEVu
YmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAg
ICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5
Ojpsb2dGcmFtZU5hdmlnYXRpb24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9X
ZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6
c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEZvclRlc3RpbmcpOgorICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qOgorCiAyMDIyLTAxLTA0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUu
Y29tPgogCiAgICAgICAgIFBhcnRpYWwgcmV2ZXJ0IG9mIGh0dHBzOi8vdHJhYy53ZWJraXQub3Jn
L2NoYW5nZXNldC8yODczNzEvd2Via2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRleCAyNTllNDcyYjU3
ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxLi44ZmMwMjA2NTRhZTUxYTE5N2JkZTNhZjBh
NGIyZmEyY2E3N2JiODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0
CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE4NSw2ICsxODUsOCBAQCBz
ZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3Rl
U2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgR1BVUHJvY2Vzcy93ZWJydGMvUmVtb3RlU2Ft
cGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcgogCisgICAgTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUKKwogICAgIE5ldHdvcmtQcm9jZXNz
L0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlcgogCiAgICAgTmV0d29ya1Byb2Nlc3MvSW5kZXhlZERC
L1dlYklEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5t
YWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4IGI2MjE4OWNiNDc4
ZjVlZTJkMTZmZDUzMTg0MWI4YzI2NmVjYjk3ZTEuLjMxNzBkNWNiNDAxNzA2MzQ0ZmQ1NDhhMmM0
NzRlZWY4ODBjOGVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMu
bWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0MCw2ICsx
NDAsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ1Byb3ZpZGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0d29ya1JUQ01vbml0
b3IgXAogCU5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJlbW90ZU1hbmFnZXJQ
cm94eSBcCisJTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUgXAogCU5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlciBcCiAJ
TmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIgXAogCVNoYXJlZC9B
dXhpbGlhcnlQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaCBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TWVtb3J5U3RvcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNTZmNjdiZjA4OGRj
NjAwMjIzZjhiZmEzMGZkZjc4NDhlMGJlZWQyOS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZp
ZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIC9kZXYvbnVsbApAQCAt
MSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFp
biB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMg
aW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAg
bm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFp
bWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHBy
b3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBS
T1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCi0gKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZ
IEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQu
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwotICogQkUg
TElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhF
TVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUwotICogSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCi0gKiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLQotI2luY2x1ZGUgIlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oIgotI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgotI2luY2x1ZGUg
PHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotCi1uYW1lc3BhY2UgV2Vi
Q29yZSB7Ci1jbGFzcyBLZXllZERlY29kZXI7Ci1jbGFzcyBLZXllZEVuY29kZXI7Ci1lbnVtIGNs
YXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA6IGJvb2w7Ci1lbnVtIGNsYXNzIFN0b3Jh
Z2VBY2Nlc3NXYXNHcmFudGVkIDogYm9vbDsKLXN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
OwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gVGhpcyBpcyBhbHdheXMgY29uc3RydWN0
ZWQgLyB1c2VkIC8gZGVzdHJveWVkIG9uIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUncyBzdGF0aXN0aWNzIHF1ZXVlLgotY2xhc3MgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9y
eVN0b3JlIGZpbmFsIDogcHVibGljIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSB7Ci1wdWJs
aWM6Ci0gICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZSYsIFN1c3BlbmRhYmxlV29ya1F1ZXVlJiwgU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCk7Ci0KLSAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJikg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBWZWN0
b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gYWdncmVn
YXRlZFRoaXJkUGFydHlEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgY29uc3QgSGFzaE1hcDxS
ZWdpc3RyYWJsZURvbWFpbiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3M+PiYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VTdGF0aXN0aWNzTWFwOyB9Ci0K
LSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWRFbmNvZGVyPiBjcmVhdGVFbmNvZGVy
RnJvbURhdGEoKSBjb25zdDsKLSAgICB2b2lkIG1lcmdlV2l0aERhdGFGcm9tRGVjb2RlcihXZWJD
b3JlOjpLZXllZERlY29kZXImKTsKLQotICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNzKFZlY3RvcjxS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHByb2Nlc3NTdGF0
aXN0aWNzKGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYp
PiYpIGNvbnN0OwotCi0gICAgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZyhDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBjbGFzc2lmeVByZXZhbGVudFJl
c291cmNlcygpIG92ZXJyaWRlOwotCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFnZUFjY2Vzc1VuZGVy
T3BlbmVyKERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3JlOjpQYWdlSWRlbnRp
ZmllciwgT3BlbmVyRG9tYWluJiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBncmFuZGZhdGhlckRh
dGFGb3JEb21haW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jikgb3ZlcnJpZGU7
Ci0KLSAgICBib29sIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihjb25zdCBTdWJSZXNv
dXJjZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0gICAg
Ym9vbCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoY29uc3QgU3ViRnJhbWVEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNSZWdpc3Rl
cmVkQXNSZWRpcmVjdGluZ1RvKGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWluJiwgY29uc3QgUmVk
aXJlY3RlZFRvRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNsZWFyUHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlkZTsKLSAgICB2b2lk
IGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoY29uc3Qg
U3RyaW5nJik+JiYpIGZpbmFsOwotICAgIGJvb2wgaXNQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wgaXNWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdCBvdmVycmlkZTsKLSAg
ICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgb3Zl
cnJpZGU7Ci0gICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mKSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJlZChjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgdmFsdWUpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNHcmFu
ZGZhdGhlcmVkKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAg
ICB2b2lkIHNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTdWJyZXNv
dXJjZVVuZGVyVG9wRnJhbWVEb21haW4oY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBU
b3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdFRvKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3REb21haW4m
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKGNv
bnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3REb21haW4mKSBvdmVycmlkZTsK
LSAgICB2b2lkIHNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhjb25zdCBUb3BGcmFtZURvbWFp
biYsIGNvbnN0IFJlZGlyZWN0RG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0
RG9tYWluJikgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGFyZUFsbFRoaXJkUGFydHlDb29raWVzQmxv
Y2tlZFVuZGVyKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgQ29va2llQWNj
ZXNzIGNvb2tpZUFjY2Vzcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mKTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVE
b21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RnJh
bWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFN0b3JhZ2VBY2Nlc3Mo
U3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlm
aWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Njb3Bl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMpPiYmKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6OlBhZ2VJZGVudGlm
aWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdlQWNj
ZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBsb2dGcmFtZU5hdmlnYXRp
b24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0
IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUs
IFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRp
YWxseUluaXRpYXRlZEJ5VXNlcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rp
b24oY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92
ZXJyaWRlOwotICAgIHZvaWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihjb25z
dCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mKSBvdmVycmlk
ZTsKLQotICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotICAgIGJvb2wgaGFz
SGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgT3BlcmF0aW5nRGF0
ZXNXaW5kb3cpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBzZXRMYXN0U2Vlbihjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVtb3ZlRGF0YUZvckRv
bWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIFZlY3RvcjxSZWdp
c3RyYWJsZURvbWFpbj4gYWxsRG9tYWlucygpIGNvbnN0IGZpbmFsOwotICAgIHZvaWQgaW5zZXJ0
RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNp
Z25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFzVXNlckludGVyYWN0aW9u
LCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2
YWxlbnQpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZvaWQgaW5jbHVkZVRvZGF5QXNPcGVy
YXRpbmdEYXRlSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKLSAgICBjb25zdCBWZWN0b3I8T3BlcmF0
aW5nRGF0ZT4mIG9wZXJhdGluZ0RhdGVzKCkgY29uc3QgeyByZXR1cm4gbV9vcGVyYXRpbmdEYXRl
czsgfQotICAgIHZvaWQgY2xlYXJPcGVyYXRpbmdEYXRlcygpIG92ZXJyaWRlIHsgbV9vcGVyYXRp
bmdEYXRlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBtZXJnZU9wZXJhdGluZ0RhdGVzKFZlY3RvcjxP
cGVyYXRpbmdEYXRlPiYmKTsKLSAgICBib29sIGhhc1N0YXRpc3RpY3NFeHBpcmVkKGNvbnN0IFJl
c291cmNlTG9hZFN0YXRpc3RpY3MmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykgY29uc3Q7Ci0gICAg
c3RhdGljIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtZXJnZU9wZXJhdGluZ0RhdGVzKGNvbnN0IFZl
Y3RvcjxPcGVyYXRpbmdEYXRlPiYgZXhpc3RpbmdEYXRlcywgVmVjdG9yPE9wZXJhdGluZ0RhdGU+
JiYgbmV3RGF0ZXMpOwotICAgIGJvb2wgaGFzU3RhdGlzdGljc0V4cGlyZWQoV2FsbFRpbWUgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIE9wZXJhdGluZ0RhdGVzV2luZG93KSBjb25zdCBv
dmVycmlkZTsKLQotICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2VlcENvb2tpZXMoY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2Nr
QW5kUHVyZ2VDb29raWVzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKLSAgICBzdGF0
aWMgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIGhhc1VzZXJHcmFudGVkU3Rv
cmFnZUFjY2Vzc1Rocm91Z2hQcm9tcHQoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9vbCBoYXNIYWRVbmV4cGlyZWRSZWNlbnRV
c2VySW50ZXJhY3Rpb24oUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIE9wZXJhdGluZ0RhdGVzV2lu
ZG93KSBjb25zdDsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVEYXRhRm9yKFJlc291
cmNlTG9hZFN0YXRpc3RpY3MmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRmYXRoZXJpbmcpIGNv
bnN0OwotICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKSBjb25zdDsKLSAg
ICBib29sIHNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKTsKLSAgICB2b2lkIGluY3Jl
bWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21h
aW4+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUmVzb3VyY2VM
b2FkU3RhdGlzdGljcyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwotICAgIHVuc2lnbmVkIHJl
Y3Vyc2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhpc0RvbWFpbihjb25z
dCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVkVG9Eb21haW4+Jiwg
dW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7Ci0gICAgdm9pZCBncmFudFN0
b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFtZURvbWFpbiYmLCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVu
dGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIFdlYkNvcmU6OlN0
b3JhZ2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpTdG9yYWdl
QWNjZXNzV2FzR3JhbnRlZCk+JiYpOwotICAgIHZvaWQgbWFya0FzUHJldmFsZW50SWZIYXNSZWRp
cmVjdGVkVG9QcmV2YWxlbnQoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotICAgIGJvb2wgaXNQ
cmV2YWxlbnREdWVUb0RlYnVnTW9kZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJik7Ci0gICAgVmVj
dG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJjZXNGb3JEZWJ1Z01v
ZGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZURhdGFSZWNvcmRzKENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5lZWRlZCgpIG92ZXJy
aWRlOwotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291cmNlU3RhdGlzdGlj
c0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgUmVn
aXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IgcmVnaXN0cmFi
bGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IoKSBvdmVycmlkZTsKLSAg
ICBib29sIGlzTWVtb3J5U3RvcmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0cnVlOyB9Ci0gICAg
c3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUoY29u
c3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotCi0gICAgSGFzaE1hcDxSZWdpc3RyYWJsZURv
bWFpbiwgVW5pcXVlUmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+PiBtX3Jlc291cmNlU3RhdGlz
dGljc01hcDsKLSAgICBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4gbV9vcGVyYXRpbmdEYXRlczsKLX07
Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1TUEVDSUFMSVpFX1RZUEVfVFJBSVRTX0JFR0lO
KFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKQotICAgIHN0YXRpYyBi
b29sIGlzVHlwZShjb25zdCBXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYgc3Rv
cmUpIHsgcmV0dXJuIHN0b3JlLmlzTWVtb3J5U3RvcmUoKTsgfQotU1BFQ0lBTElaRV9UWVBFX1RS
QUlUU19FTkQoKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwIGIvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5jcHAKaW5kZXggNzBiNWFmZGE1MjZlOTkwOWI5NjJkNzEyMTNkODViNjBiNTM3
MTgxZC4uNWViZTE3MGJhNGQ0OWFlZWJiMmJkNDY4YzM5YTdhNGZiNTI4MWZlNyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9D
bGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKQEAgLTQyLDYgKzQy
LDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9j
ZXNzUG9vbC5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURh
dGFGZXRjaE9wdGlvbi5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CiAjaW5jbHVk
ZSA8V2ViQ29yZS9EaWFnbm9zdGljTG9nZ2luZ0NsaWVudC5oPgpAQCAtODIsMTkgKzgzLDYgQEAg
Y29uc3QgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4mIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6bW9uaXRvcmVkRGF0YVQKICAgICByZXR1cm4gZGF0YVR5cGVzOwogfQogCi12b2lk
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChib29sIHZhbHVlKQotewotICAgIEFTU0VSVChSdW5Mb29wOjppc01h
aW4oKSk7Ci0KLSAgICBpZiAoaXNFcGhlbWVyYWwoKSkKLSAgICAgICAgcmV0dXJuOwotCi0gICAg
cG9zdFRhc2soW3RoaXMsIHZhbHVlXSB7Ci0gICAgICAgIGlmIChtX3N0YXRpc3RpY3NTdG9yZSkK
LSAgICAgICAgICAgIG1fc3RhdGlzdGljc1N0b3JlLT5zZXROb3RpZnlQYWdlc1doZW5EYXRhUmVj
b3Jkc1dlcmVTY2FubmVkKHZhbHVlKTsKLSAgICB9KTsKLX0KLQogdm9pZCBXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5u
ZWQoYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7CkBAIC0xNDksMTIgKzEzNywx
NiBAQCBzdGF0aWMgUmVmPFN1c3BlbmRhYmxlV29ya1F1ZXVlPiBzaGFyZWRTdGF0aXN0aWNzUXVl
dWUoKQogCiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0IFN0cmlu
ZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxvY2FsaG9z
dCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVt
ZXJhbCBpc0VwaGVtZXJhbCkKICAgICA6IG1fbmV0d29ya1Nlc3Npb24obmV0d29ya1Nlc3Npb24p
CisgICAgLCBtX25ldHdvcmtQcm9jZXNzKG5ldHdvcmtTZXNzaW9uLm5ldHdvcmtQcm9jZXNzKCkp
CisgICAgLCBtX3Nlc3Npb25JRChuZXR3b3JrU2Vzc2lvbi5zZXNzaW9uSUQoKSkKICAgICAsIG1f
c3RhdGlzdGljc1F1ZXVlKHNoYXJlZFN0YXRpc3RpY3NRdWV1ZSgpKQogICAgICwgbV9kYWlseVRh
c2tzVGltZXIoUnVuTG9vcDo6bWFpbigpLCB0aGlzLCAmV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpwZXJmb3JtRGFpbHlUYXNrcykKICAgICAsIG1faXNFcGhlbWVyYWwoaXNFcGhlbWVy
YWwpCiB7CiAgICAgUkVMRUFTRV9BU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwogCisgICAgbV9u
ZXR3b3JrUHJvY2Vzcy0+YWRkTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9zZXNzaW9uSUQudG9V
SW50NjQoKSwgKnRoaXMpOworCiAgICAgLy8gTm8gZGFpbHkgdGFza3MgbmVlZGVkIGZvciBlcGhl
bWVyYWwgc2Vzc2lvbnMgc2luY2Ugbm8gcmVzb3VyY2UgbG9hZCBzdGF0aXN0aWNzIGFyZSBjb2xs
ZWN0ZWQuCiAgICAgaWYgKGlzRXBoZW1lcmFsID09IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6Oklz
RXBoZW1lcmFsOjpZZXMpCiAgICAgICAgIHJldHVybjsKQEAgLTE3OCw2ICsxNzAsNyBAQCBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUoKQogewogICAgIFJFTEVBU0VfQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKICAgICBSRUxF
QVNFX0FTU0VSVCghbV9zdGF0aXN0aWNzU3RvcmUpOworICAgIG1fbmV0d29ya1Byb2Nlc3MtPnJl
bW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQog
CiBSZWY8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlPiBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OmNyZWF0ZShOZXR3b3JrU2Vzc2lvbiYgbmV0d29ya1Nlc3Npb24sIGNvbnN0
IFN0cmluZyYgcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgU2hvdWxkSW5jbHVkZUxv
Y2FsaG9zdCBzaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzOjpJc0VwaGVtZXJhbCBpc0VwaGVtZXJhbCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA2NjFiMTU2M2VjNjRiNjZlNzhmMWY4ZDU1NGM2
ZDlkZjM3MzFhZTZiLi43Yzg4NjEzZGQ0N2I0Y2M3Njg1MDczMmI0MDVmMTYyZGExZjBkMzRmIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2
ICszMCw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRDb2RlcnMuaCIKICNpbmNsdWRlICJEZWNvZGVy
LmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2luY2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgog
I2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFUeXBlLmgiCkBAIC01MCw2ICs1MSwx
MSBAQAogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3Ry
aW5nLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xhc3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29k
ZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0
cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwpAQCAtNjAsNiArNjYsNyBAQCBlbnVtIGNsYXNz
IFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgOiB1aW50OF90OwogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAorY2xhc3MgTmV0d29ya1Byb2Nlc3M7CiBjbGFzcyBOZXR3b3JrU2Vzc2lvbjsKIGNs
YXNzIFJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTsKIGNsYXNzIFdlYkZyYW1lUHJveHk7CkBA
IC04Nyw3ICs5NCw3IEBAIHN0cnVjdCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJp
Y3RXZWJzaXRlRGF0YUZvciB7CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gZG9t
YWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRGVsZXRlQWxs
QnV0SHR0cE9ubHlDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zVG9EZWxldGVBbGxOb25D
b29raWVXZWJzaXRlRGF0YUZvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRl
U3RyaWN0Rm9yLmlzRW1wdHkoKTsgfQogfTsKIAotY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4geworY2xh
c3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M7CiAgICAgdXNpbmcgUmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbjsKQEAgLTE0Miw3ICsxNDksNiBAQCBwdWJsaWM6CiAgICAgU3VzcGVuZGFi
bGVXb3JrUXVldWUmIHN0YXRpc3RpY3NRdWV1ZSgpIHsgcmV0dXJuIG1fc3RhdGlzdGljc1F1ZXVl
LmdldCgpOyB9CiAKICAgICB2b2lkIHBvcHVsYXRlTWVtb3J5U3RvcmVGcm9tRGlzayhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBTdG9yYWdl
QWNjZXNzU2NvcGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVxdWVzdFN0b3JhZ2VBY2Nlc3NS
ZXN1bHQpPiYmKTsKQEAgLTIzNCw4ICsyNDAsMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IHJlc3VtZSgpOwogICAgIAogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJldHVybiBt
X2lzRXBoZW1lcmFsID09IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1l
cmFsOjpZZXM7IH07CisgICAgdm9pZCBpc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCgpKTsgfQogICAgIHZvaWQgaW5zZXJ0RXhwaXJlZFN0
YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNpZ25lZCBudW1i
ZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlz
U2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBj
b25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCk7CiAKQEAgLTI1OCw2ICsyNjcsOCBAQCBwcml2YXRl
OgogICAgIHZvaWQgZGVzdHJveVJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZShDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwogCiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9uZXR3
b3JrU2Vzc2lvbjsKKyAgICBSZWY8TmV0d29ya1Byb2Nlc3M+IG1fbmV0d29ya1Byb2Nlc3M7Cisg
ICAgUEFMOjpTZXNzaW9uSUQgbV9zZXNzaW9uSUQ7CiAgICAgUmVmPFN1c3BlbmRhYmxlV29ya1F1
ZXVlPiBtX3N0YXRpc3RpY3NRdWV1ZTsKICAgICBzdGQ6OnVuaXF1ZV9wdHI8UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlPiBtX3N0YXRpc3RpY3NTdG9yZTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3Np
Zmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uY2QwNzQzNzdkMTkwMzE2YTczNWRhZDA0ODliOGYyMzM0NTgzOTJiNQotLS0gL2Rldi9udWxs
CisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4KQEAgLTAsMCArMSw3NSBAQAorIyBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorIworIyBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKKyMgbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisjIGFyZSBtZXQ6CisjIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorIyAgICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgor
IyAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBh
Ym92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyMgICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisjCisj
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycgQU5ECisjIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywg
SU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisjIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyMgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09O
VFJJQlVUT1JTIEJFIExJQUJMRSBGT1IKKyMgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5U
QUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTAorIyBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUgorIyBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTIElOVEVSUlVQVElPTikgSE9XRVZFUgorIyBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLAorIyBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdB
WSBPVVQgT0YgVEhFIFVTRQorIyBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0Yg
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorCisjaWYgRU5BQkxFKElOVEVMTElHRU5U
X1RSQUNLSU5HX1BSRVZFTlRJT04pCisKK21lc3NhZ2VzIC0+IFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSB7CisgICAgQ2xlYXJQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBDbGVhclVzZXJJbnRl
cmFjdGlvbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkg
QXN5bmMKKyAgICBEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpIC0+IChTdHJpbmcgZHVtcGVk
U3RhdGlzdGljcykgQXN5bmMKKyAgICBJc0dyYW5kZmF0aGVyZWQoV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc0dyYW5kZmF0aGVyZWQpIEFzeW5jCisg
ICAgSXNQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXRE
b21haW4pIC0+IChib29sIGlzUHJldmFsZW50KSBBc3luYworICAgIElzVmVyeVByZXZhbGVudFJl
c291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJvb2wg
aXNWZXJ5UHJldmFsZW50KSBBc3luYworICAgIFNldExhc3RTZWVuKFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisg
ICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
c291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEs
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0
U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRl
cmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNW
ZXJ5UHJldmFsZW50LCB1aW50NjRfdCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCisg
ICAgSW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3Nl
ZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29r
aWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkgQXN5bmMKKyAgICBTZXRQcmV2
YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikg
LT4gKCkgQXN5bmMKKyAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBJc1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoKSAtPiAoYm9vbCBpc0VwaGVtZXJhbCkgQXN5
bmMKKyAgICBIYXNIYWRVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
cmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5bmMKKyAgICBJ
c1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biBzdWJEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcERvbWFpbikgLT4gKGJv
b2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYworICAgIElzUmVnaXN0ZXJlZEFzUmVkaXJlY3Rp
bmdUbyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1Jl
ZGlyZWN0aW5nVG8pIEFzeW5jCisgICAgSXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgaXNTdWJmcmFtZVVuZGVyKSBBc3luYwor
ICAgIElzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4pIC0+IChib29sIGlzU3VicmVzb3VyY2VVbmRlcikgQXN5bmMKKyAgICBEb21haW5J
REV4aXN0c0luRGF0YWJhc2UoaW50IGRvbWFpbklEKSAtPiAoYm9vbCBleGlzdHMpIEFzeW5jCisg
ICAgTG9nRnJhbWVOYXZpZ2F0aW9uKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgYm9vbCBpc1JlZGlyZWN0LCBib29sIGlz
TWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIGJvb2wg
d2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCisgICAgTG9nVXNlckludGVyYWN0aW9uKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYworICAg
IFJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcygpIC0+ICgpIEFzeW5jCisgICAgU2NoZWR1
bGVDb29raWVCbG9ja2luZ1VwZGF0ZSgpIC0+ICgpIEFzeW5jCisgICAgU2NoZWR1bGVTdGF0aXN0
aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKCkgLT4gKCkgQXN5bmMKKyAgICBTdGF0aXN0aWNz
RGF0YWJhc2VIYXNBbGxUYWJsZXMoKSAtPiAoYm9vbCBoYXNBbGxUYWJsZXMpIEFzeW5jCisgICAg
U2V0R3JhbmRmYXRoZXJlZChXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFp
biwgYm9vbCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCisgICAgQWdncmVnYXRlZFRoaXJk
UGFydHlEYXRhKCkgLT4gKFZlY3RvcjxXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6VGhpcmRQYXJ0eURhdGE+IHRoaXJkUGFydHlEYXRhKSBBc3luYworICAgIFNldEdyYW5k
ZmF0aGVyaW5nVGltZShTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisgICAgU2V0TWF4U3Rh
dGlzdGljc0VudHJpZXModWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCisg
ICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFNlY29uZHMgc2Vjb25k
cykgLT4gKCkgQXN5bmMKKyAgICBTZXRQcnVuZUVudHJpZXNEb3duVG8odWludDY0X3QgbWF4aW11
bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCisgICAgU2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNC
ZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpIC0+ICgpIEFz
eW5jCisgICAgU2V0SXNSdW5uaW5nVGVzdChib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAgIFNl
dFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoYm9vbCBkZWJ1Z01vZGUpIC0+ICgpIEFz
eW5jCisgICAgU2V0VmVyeVByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYworICAgIFNldFN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCisgICAg
U2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8o
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBz
dWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZy
b21Eb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihT
ZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCisgICAgU2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9w
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9t
YWluKSAtPiAoKSBBc3luYworICAgIExvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb24o
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdG9Eb21haW4pIC0+ICgpIEFzeW5jCisjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01B
SU5TKQorICAgIFNldEFwcEJvdW5kRG9tYWlucyhIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluPiBhcHBCb3VuZERvbWFpbnMpIC0+ICgpIEFzeW5jCisjZW5kaWYKKyAgICBTZXRGaXJz
dFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZShlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Rmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgbW9kZSkgLT4gKCkgQXN5bmMKK30KKworI2VuZGlm
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNz
LmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCmlu
ZGV4IDI2YmQxMDcxOTk0YjNmODI3YmQ3ZDU5NzQ1MzlhZjE0OWMxNjIyY2EuLmEzNzZlMTllMTkx
ZTE0ZTYxMzE0ZmNlY2EzMDViOTZmNWFkZWI1YWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwCkBAIC01MzYsMTkgKzUzNiw2IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmRlc3Ryb3lTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkK
IH0KIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lv
bi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy0+ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0p
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6
dXBkYXRlUHJldmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWluc1RvQmxvY2ss
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBp
ZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklE
KSkKQEAgLTU1Niw0NSArNTQzLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6dXBkYXRlUHJldmFs
ZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklEIHNlc3MKICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc0dyYW5kZmF0aGVy
ZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewot
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PmlzR3JhbmRmYXRoZXJlZChkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcihmYWxzZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1ByZXZh
bGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Np
b25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNz
aW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRT
dGF0aXN0aWNzLT5pc1ByZXZhbGVudFJlc291cmNlKGRvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
YWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1By
b2Nlc3M6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShkb21h
aW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAg
fQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2ll
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25k
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAg
IGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9u
SUQpKQpAQCAtNjAyLDg0ICs1NTAsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBZ2VDYXBG
b3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZAogICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MtPnNldEdyYW5kZmF0aGVyZWQoZG9tYWluLCBpc0dyYW5kZmF0
aGVyZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0K
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFByZXZhbGVudFJlc291cmNl
KGRvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0K
LQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0UHJl
dmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRWZXJ5
UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vz
c2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+c2V0VmVyeVByZXZhbGVudFJlc291cmNlKGRvbWFpbiwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNz
aW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzLT5jbGVhclByZXZhbGVudFJlc291cmNlKGRvbWFpbiwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5z
Y2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlQ2xlYXJJ
bk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlv
bmFsPFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mg
c2hvdWxkR3JhbmRmYXRoZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Np
b25JRCkpIHsKQEAgLTY5NywyNTUgKzU2Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNjaGVk
dWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklECiAg
ICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpnZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YVN1bW1hcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRh
PiYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5hZ2dyZWdhdGVkVGhpcmRQYXJ0eURhdGEoV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcih7IH0pOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcih7IH0pOwotICAgIH0KLX0KLQotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewotICAgICAgICBzZXNzaW9uLT5yZXNldENOQU1FRG9tYWluRGF0YSgpOwotICAgICAg
ICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnJlc2V0
UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzY2hlZHVsZVN0YXRpc3Rp
Y3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2NoZWR1bGVTdGF0
aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnN0YXRpc3RpY3NE
YXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c3RhdGlzdGljc0RhdGFi
YXNlSGFzQWxsVGFibGVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxz
ZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihm
YWxzZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXROb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2
YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewot
ICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAg
ICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNl
dE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodmFsdWUsIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nl
c3M6OnNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MtPnNldElzUnVubmluZ1Rlc3QodmFsdWUsIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNl
dFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihz
ZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
c2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKHN1YkZyYW1lRG9t
YWluLCB0b3BGcmFtZURvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNSZWdpc3RlcmVkQXNSZWRpcmVj
dGluZ1RvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVk
aXJlY3RlZFRvLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhkb21haW5SZWRpcmVjdGVkRnJvbSwg
ZG9tYWluUmVkaXJlY3RlZFRvLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNSZWdpc3RlcmVk
QXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJh
bWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
KSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy0+aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKHN1YkZyYW1lRG9tYWluLCB0b3BGcmFt
ZURvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17
Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0g
ICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+
c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKHN1YnJlc291cmNlRG9tYWluLCB0b3BG
cmFtZURvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YnJl
c291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZFRv
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0U3Vi
cmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKHN1YnJlc291cmNlRG9tYWluLCBkb21haW5SZWRpcmVj
dGVkVG8sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0K
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YnJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZEZyb20s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAg
aWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRTdWJy
ZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZURvbWFpbiwgZG9tYWluUmVkaXJl
Y3RlZEZyb20sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAg
ICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19
Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNv
dXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBp
ZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlzUmVnaXN0
ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4s
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfQot
fQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkVG8sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRUb3BGcmFtZVVu
aXF1ZVJlZGlyZWN0VG8odG9wRnJhbWVEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRUbywgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkRnJvbSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RG
cm9tKHRvcEZyYW1lRG9tYWluLCBkb21haW5SZWRpcmVjdGVkRnJvbSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLSAgICAKLSAgICAKLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGRvbWFpbiwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24g
PSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAg
ICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0TGFzdFNlZW4oZG9tYWluLCBzZWNv
bmRzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjpkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBpbnQgZG9tYWluSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGRvbWFpbklE
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5k
ZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25l
ZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBz
ZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5tZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoZG9tYWluLCB0b3BGcmFtZURv
bWFpbjEsIHRvcEZyYW1lRG9tYWluMiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9z
dFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNW
ZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6Omluc2VydEV4
cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgdW5zaWduZWQgbnVtYmVyT2ZPcGVyYXRpbmdEYXlz
UGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1
dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRl
c3RpbmcoZG9tYWluLCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGhhZFVzZXJJbnRlcmFj
dGlvbiwgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgaXNQcmV2YWxlbnQs
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQg
TmV0d29ya1Byb2Nlc3M6OmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBkb21haW5z
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VT
ZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAgLTk1Niw2NyArNTc3LDYgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzczo6Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGUKICAgICB9CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OmxvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0YXJnZXREb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BG
cmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHNvdXJjZURvbWFpbiwgYm9vbCBp
c1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVE
b2N1bWVudExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCi17Ci0gICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nRnJh
bWVOYXZpZ2F0aW9uKHRhcmdldERvbWFpbiwgdG9wRnJhbWVEb21haW4sIHNvdXJjZURvbWFpbiwg
aXNSZWRpcmVjdCwgaXNNYWluRnJhbWUsIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQs
IHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKTsKLSAgICB9IGVsc2UKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmxvZ1VzZXJJbnRl
cmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsK
LSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LT5sb2dVc2VySW50ZXJhY3Rpb24oZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBl
bHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpoYWRVc2VySW50ZXJh
Y3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkg
ewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPmhhc0hhZFVzZXJJbnRlcmFjdGlvbihkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2Up
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
Ojppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihz
ZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
c2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2Uoc3ViRG9tYWlu
LCB0b3BEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVhclVzZXJJbnRlcmFjdGlv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21h
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAg
ICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5jbGVh
clVzZXJJbnRlcmFjdGlvbihkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAg
ICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2Ug
ewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6Omhhc0xvY2FsU3RvcmFnZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCk7CkBAIC0xMDQwLDg0
ICs2MDAsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaQogICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0g
bmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VM
b2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAg
ICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldEdyYW5kZmF0aGVyaW5nVGltZShzZWNv
bmRzLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24g
PSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAg
ICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0TWF4U3RhdGlzdGljc0VudHJpZXMo
bWF4aW11bUVudHJ5Q291bnQsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRh
dGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25k
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAg
IGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAg
ICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldE1p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChzZWNvbmRzLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRQcnVuZUVudHJpZXNEb3duVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRf
dCBwcnVuZVRhcmdldENvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vz
c2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+c2V0UHJ1bmVFbnRyaWVzRG93blRvKHBydW5lVGFyZ2V0Q291bnQsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQo
KTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLT5zZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKHNlY29uZHMsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFNob3VsZENsYXNzaWZ5UmVz
b3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKHZhbHVlLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJv
b2wgZW5hYmxlZCkKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCkpCkBAIC0xMTMxLDMxICs2MTMsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9nVGVzdGluZ0V2ZW50KGJvb2wgZW5hYmxlZCkKICAgICB9
KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0Rl
YnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0UmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0RlYnVnTW9kZShkZWJ1Z01vZGUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIGNvbnN0Ci17Ci0gICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKSB7Ci0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5pc0VwaGVtZXJhbCgpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAg
ICAgfQotICAgIH0gZWxzZQotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJlc2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAg
aWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25J
RCkpCkBAIC0xMTkwLDE5ICs2NDcsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpkaWRDb21taXRD
cm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlcihQQUw6OlNlc3Npb25JRCBzZXNzaQogICAgIH0K
IH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3Jh
dGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nQ3Jvc3NT
aXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihmcm9tRG9tYWluLCB0b0RvbWFpbiwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6cmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0
b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC0xMjIwLDIwICs2NjQsNiBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzOjpoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBXZWJDb3JlOgogICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc3VsdCk7CiB9CiAKLSNpZiBF
TkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRBcHBCb3Vu
ZERvbWFpbnNGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4mJiBhcHBCb3VuZERvbWFpbnMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAg
aWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpIHsKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldEFw
cEJvdW5kRG9tYWlucyhXVEZNb3ZlKGFwcEJvdW5kRG9tYWlucyksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgIH0KLSAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotfQotI2VuZGlm
Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVz
dGluZyhib29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKIHsKICAgICBmb3JFYWNoTmV0d29ya1Nlc3Npb24oW2VuYWJsZWRdKGF1dG8mIHNl
c3Npb24pIHsKQEAgLTEyNTEsNyArNjgxLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFcKICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91
bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5h
YmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVu
dEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKQogICAgICAgICBzZXNzaW9uLT5zZXRTaG91bGRFbmJsZVNhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnQoZW5hYmxlZCk7CkBAIC0xMjYwLDE5ICs2OTAsNiBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRG
b3JUZXN0aW5nKFBBTDo6U2VzcwogICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlIG1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBz
ZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5zZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZShtb2RlLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAg
ICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Np
b25JRCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQ
cm9jZXNzLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgK
aW5kZXggNzg3NzkyN2ExN2M1NTk2ZWIwM2JkNGFjZjRkNThlNDE4YWM4YmEyMy4uNWUyYmU3MjM2
NWVlOGVlNzNiYjUzNTkwNWEzMjBiYWViMjdkZDk5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaApAQCAtMjAyLDc3ICsyMDIsMjkgQEAgcHVibGlj
OgogICAgIHZvaWQgYWRkV2Vic2l0ZURhdGFTdG9yZShXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cyYmKTsKIAogI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAg
IHZvaWQgY2xlYXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgY2xl
YXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGRlbGV0ZUFuZFJlc3Ry
aWN0V2Vic2l0ZURhdGFGb3JSZWdpc3RyYWJsZURvbWFpbnMoUEFMOjpTZXNzaW9uSUQsIE9wdGlv
blNldDxXZWJzaXRlRGF0YVR5cGU+LCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJp
Y3RXZWJzaXRlRGF0YUZvciYmLCBib29sIHNob3VsZE5vdGlmeVBhZ2UsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4mKT4mJik7CiAgICAgdm9p
ZCBkZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgUmVnaXN0cmFibGVEb21h
aW4sIGJvb2wgaW5jbHVkZUh0dHBPbmx5Q29va2llcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKLSAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpOwogICAgIHZvaWQgdXBkYXRlUHJl
dmFsZW50RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklELCBjb25zdCBWZWN0
b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zVG9CbG9jaywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIGlzR3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
LSAgICB2b2lkIGlzUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9p
ZCBpc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKICAgICB2b2lkIHNl
dEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFs
PFNlY29uZHM+LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgaXNSZWdp
c3RlcmVkQXNSZWRpcmVjdGluZ1RvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWRpcmVjdGVkRnJv
bURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6
U2Vzc2lvbklELCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBpc1JlZ2lzdGVyZWRB
c1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1YlJlc291cmNlRG9tYWlu
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIHNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7Ci0gICAgdm9pZCBzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25J
RCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7Ci0gICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZv
aWQgc2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIHNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0
UHJ1bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vzc2lvbklELCB1aW50NjRfdCBwcnVuZVRhcmdldENv
dW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgaGFkVXNlckludGVy
YWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaXNSZWxhdGlvbnNoaXBPbmx5SW5E
YXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgaGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgZ2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYpOwot
ICAgIHZvaWQgbG9nRnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBOYXZpZ2F0
ZWRUb0RvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkRnJvbURv
bWFpbiYsIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFm
dGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlV
c2VyKTsKLSAgICB2b2lkIGxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHJlc2V0UGFyYW1ldGVyc1Rv
RGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKICAgICB2b2lkIHNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNz
aW9uSUQsIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2UsIFNob3VsZEdyYW5k
ZmF0aGVyU3RhdGlzdGljcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lk
IGdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFyeShQQUw6OlNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpUaGlyZFBhcnR5RGF0YT4mJik+JiYpOwotICAgIHZvaWQgc2NoZWR1bGVDb29raWVCbG9ja2lu
Z1VwZGF0ZShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAg
ICB2b2lkIHNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNl
c3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHN0YXRpc3Rp
Y3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJl
c291cmNlcyhQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKLSAgICB2b2lkIHNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCwgU2Vj
b25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldExhc3RTZWVu
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBkb21haW5JREV4aXN0c0luRGF0YWJh
c2UoUEFMOjpTZXNzaW9uSUQsIGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChi
b29sKT4mJik7Ci0gICAgdm9pZCBtZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZy
YW1lRG9tYWluMSwgY29uc3QgVG9wRnJhbWVEb21haW4mIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25k
cyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVz
ZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJv
b2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1JlbW92ZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBpbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNpZ25l
ZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBi
b29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxl
bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRNaW5pbXVtVGlt
ZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXROb3RpZnlQYWdlc1doZW5EYXRh
UmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1Rlc3QoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChQ
QUw6OlNlc3Npb25JRCwgYm9vbCk7CiAgICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
TG9nVGVzdGluZ0V2ZW50KGJvb2wpOwotICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJmQpOwotICAgIHZvaWQgaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1l
cmFsKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBjb25z
dDsKLSAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNS
ZW1vdmFsKFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwotICAgIHZvaWQgc2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vz
c2lvbklELCBjb25zdCBTdWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBj
b25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAg
dm9pZCBzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQsIGNvbnN0
IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3RlZFRvRG9tYWluJiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJl
Y3RGcm9tKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFJl
ZGlyZWN0ZWRGcm9tRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIHNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgY29uc3Qg
UmVkaXJlY3RlZFRvRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2
b2lkIHNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklELCBjb25zdCBU
b3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWluJiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlZ2lzdHJhYmxlRG9tYWluc1dpdGhXZWJzaXRl
RGF0YShQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdlYnNpdGVEYXRhVHlwZT4sIGJvb2wgc2hv
dWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChIYXNoU2V0PFJlZ2lzdHJhYmxl
RG9tYWluPiYmKT4mJik7CiAgICAgdm9pZCBkaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFU
cmFuc2ZlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGZyb21Eb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6
OkNyb3NzU2l0ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+LCBXZWJQYWdlUHJveHlJZGVu
dGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllcik7Ci0gICAgdm9pZCBzZXRDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIGZyb21Eb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b0Rv
bWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q3Jvc3NT
aXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgaGFzSXNvbGF0ZWRTZXNzaW9uKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGNvbnN0OwogICAgIHZvaWQgY2xvc2VJVFBEYXRhYmFz
ZShQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSNpZiBFTkFC
TEUoQVBQX0JPVU5EX0RPTUFJTlMpCi0gICAgdm9pZCBzZXRBcHBCb3VuZERvbWFpbnNGb3JSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklELCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluPiYmLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotI2VuZGlmCiAg
ICAgdm9pZCBzZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9vbCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRoaXJkUGFydHlDb29raWVCbG9j
a2luZ01vZGUoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2lu
Z01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRTaG91bGRF
bmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBX
ZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxN
b2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVE
YXRhUmVtb3ZhbE1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBz
ZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNl
c3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRUb1NhbWVTaXRlU3RyaWN0Q29v
a2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEZpcnN0
UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBTdHJpbmcmJiBm
aXJzdFBhcnR5SG9zdCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiBjbmFtZURvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRoaXJkUGFydHlDTkFN
RURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluJiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAjZW5kaWYKLQogICAgIHZvaWQg
c2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkKGJvb2wpOwogICAgIGJvb2wgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRFbmFibGVkKCkgY29uc3Q7CiAgICAgdm9pZCBzZXRQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudERlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgYm9vbCk7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmlu
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5p
bgppbmRleCA2MzdlMTU5ZjE4NjM5M2JlYzVjYzA1YWI1YmQ1NzgwYmU4YzZmY2U0Li5iMTBhYmVj
YzQwZWQyZGY4N2RmZWViZTRhNmE1NWE0MzRkYTIyMjI0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCisrKyBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KQEAgLTc5
LDcwICs3OSwyMyBAQCBtZXNzYWdlcyAtPiBOZXR3b3JrUHJvY2VzcyBMZWdhY3lSZWNlaXZlciB7
CiAgICAgUHJlY29ubmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViS2l0OjpXZWJQ
YWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJDb3JlOjpQYWdlSWRlbnRpZmll
ciB3ZWJQYWdlSUQsIFVSTCB1cmwsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06dWludDhfdCBXZWJD
b3JlOjpTdG9yZWRDcmVkZW50aWFsc1BvbGljeSBzdG9yZWRDcmVkZW50aWFsc1BvbGljeSwgZW51
bTpib29sIHN0ZDo6b3B0aW9uYWw8V2ViS2l0OjpOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbj4g
aXNOYXZpZ2F0aW5nVG9BcHBCb3VuZERvbWFpbiwgZW51bTpib29sIFdlYktpdDo6TGFzdE5hdmln
YXRpb25XYXNBcHBJbml0aWF0ZWQgbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwogCiAj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgQ2xlYXJQcmV2
YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIENsZWFyVXNlckludGVy
YWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgRHVtcFJlc291cmNlTG9hZFN0YXRp
c3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoU3RyaW5nIGR1bXBlZFN0YXRpc3Rp
Y3MpIEFzeW5jCiAgICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBib29sIGVuYWJsZWQpCiAgICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0xvZ1Rlc3RpbmdFdmVudChib29sIGVuYWJsZWQpCiAgICAgVXBkYXRlUHJldmFsZW50RG9t
YWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVmVjdG9yPFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBkb21haW5zVG9CbG9jaykgLT4gKCkgQXN5bmMKLSAg
ICBJc0dyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChib29sIGlzR3JhbmRmYXRoZXJlZCkgQXN5
bmMKLSAgICBJc1ByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc1ByZXZhbGVu
dCkgQXN5bmMKLSAgICBJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJvb2wg
aXNWZXJ5UHJldmFsZW50KSBBc3luYwogICAgIFNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRz
KSAtPiAoKSBBc3luYwotICAgIFNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFNlY29uZHMgc2Vjb25k
cykgLT4gKCkgQXN5bmMKLSAgICBNZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4xLCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFk
VXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwg
dWludDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYwotICAgIEluc2VydEV4cGly
ZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIHVpbnQ2NF90IG51bWJlck9mT3BlcmF0
aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRG
b3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCkgLT4gKCkgQXN5bmMK
LSAgICBTZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNl
dFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCi0g
ICAgSXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKGJvb2wgaXNFcGhlbWVyYWwpIEFzeW5jCi0gICAgSGFkVXNlckludGVyYWN0aW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVz
b3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5bmMKLSAgICBJc1Jl
bGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkRvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCiAgICAg
SGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikg
QXN5bmMKICAgICBHZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+IChWZWN0b3I8U3RyaW5nPiBkb21haW5zKSBBc3luYwotICAgIElzUmVnaXN0ZXJl
ZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+IChib29sIGlzUmVkaXJlY3RpbmdUbykgQXN5bmMK
LSAgICBJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3ViZnJhbWVVbmRlcikg
QXN5bmMKLSAgICBJc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3Vi
cmVzb3VyY2VVbmRlcikgQXN5bmMKLSAgICBEb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBpbnQgZG9tYWluSUQpIC0+IChib29sIGV4aXN0cykgQXN5bmMK
LSAgICBMb2dGcmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21h
aW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVy
TWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2Vy
KQotICAgIExvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFJl
c2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
ICgpIEFzeW5jCiAgICAgU2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2Us
IGVudW06Ym9vbCBXZWJLaXQ6OlNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFu
ZGZhdGhlcikgLT4gKCkgQXN5bmMKLSAgICBTY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSAgICBTY2hlZHVsZVN0YXRpc3Rp
Y3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAo
KSBBc3luYwotICAgIFN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQpIC0+IChib29sIGhhc0FsbFRhYmxlcykgQXN5bmMKICAgICBTZXRDYWNoZU1h
eEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNl
Y29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21h
aW4sIGJvb2wgaXNHcmFuZGZhdGhlcmVkKSAtPiAoKSBBc3luYwotICAgIEdldFJlc291cmNlTG9h
ZFN0YXRpc3RpY3NEYXRhU3VtbWFyeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChWZWN0
b3I8V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJkUGFydHlEYXRh
PiB0aGlyZFBhcnR5RGF0YSkgQXN5bmMKLSAgICBTZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0
TWF4U3RhdGlzdGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCB1aW50NjRfdCBt
YXhpbXVtRW50cnlDb3VudCkgLT4gKCkgQXN5bmMKLSAgICBTZXRNaW5pbXVtVGltZUJldHdlZW5E
YXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29u
ZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJ1bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQpIC0+ICgpIEFzeW5jCi0gICAg
U2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBBc3luYwotICAgIFNldE5vdGlm
eVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBib29sIHZhbHVlKSAtPiAoKSBBc3luYwotICAgIFNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0
YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkg
QXN5bmMKLSAgICBTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUpIC0+ICgpIEFzeW5jCi0gICAgU2V0VmVyeVBy
ZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0U3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNldFN1YnJlc291cmNlVW5kZXJUb3BG
cmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BG
cmFtZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0
VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBz
dWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZFRv
RG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9t
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
cmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9t
RG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMpIC0+ICgpIEFzeW5jCi0gICAg
U2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBSZXNldENhY2hlTWF4QWdl
Q2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkg
QXN5bmMKICAgICBEaWRDb21taXRDcm9zc1NpdGVMb2FkV2l0aERhdGFUcmFuc2ZlcihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGZyb21Eb21haW4s
IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvRG9tYWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6
Q3Jvc3NTaXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4gbmF2aWdhdGlvbkRhdGFUcmFu
c2ZlciwgV2ViS2l0OjpXZWJQYWdlUHJveHlJZGVudGlmaWVyIHdlYlBhZ2VQcm94eUlELCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciB3ZWJQYWdlSUQpCi0gICAgU2V0Q3Jvc3NTaXRlTG9hZFdpdGhM
aW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0b0RvbWFpbikgLT4gKCkgQXN5bmMKICAgICBSZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtE
ZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5j
CiAgICAgRGVsZXRlQ29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4sIGJvb2wgaW5jbHVkZUh0dHBPbmx5Q29v
a2llcykgLT4gKCkgQXN5bmMKICAgICBIYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+IChib29sIGhh
c0lzb2xhdGVkU2Vzc2lvbikgQXN5bmMKICAgICBDbG9zZUlUUERhdGFiYXNlKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKLSNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMp
Ci0gICAgU2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+IGFw
cEJvdW5kRG9tYWlucykgLT4gKCkgQXN5bmMKLSNlbmRpZgogICAgIFNldFNob3VsZERvd25ncmFk
ZVJlZmVycmVyRm9yVGVzdGluZyhib29sIGVuYWJsZWQpIC0+ICgpIEFzeW5jCiAgICAgU2V0VGhp
cmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06
dWludDhfdCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlIGJsb2NraW5nTW9k
ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1l
bnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTpib29sIFdlYkNvcmU6
OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQpIC0+ICgpIEFzeW5jCi0g
ICAgU2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgZW51bTp1aW50OF90IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlIG1vZGUpIC0+ICgpIEFzeW5jCisgICAgU2V0U2hvdWxkRW5hYmxlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBlbnVtOmJvb2wgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5h
YmxlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3Rp
bmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBk
b21haW4pIC0+ICgpIEFzeW5jCiAgICAgU2V0Rmlyc3RQYXJ0eUhvc3RDTkFNRURvbWFpbkZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTdHJpbmcgZmlyc3RQYXJ0eUhvc3QsIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGNuYW1lRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFNl
dFRoaXJkUGFydHlDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBkb21haW4pIC0+ICgpIEFzeW5jCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHku
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5
LmNwcAppbmRleCBjYTFiZjEwZDhmMjY5MjM2NWQzNTcxOWI3M2M0MDMxODkwNmViYWVlLi5mOGM4
NjU5ZmU0ZTE3ZjEyZjYwZTM1MmI2NjI1NjlkNTVmM2RiYjBjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKQEAg
LTYwLDYgKzYwLDcgQEAKICNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJX
ZWJQcm9jZXNzUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHkuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVDbGllbnQu
aCIKQEAgLTYxMyw4ICs2MTQsOCBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmR1bXBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQwogICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcih7IH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQotICAgIAotICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkR1bXBSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcygpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFp
bnNUb0Jsb2NrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CkBAIC02MzksNyArNjQwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1ByZXZhbGVu
dFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmUKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OklzUHJldmFsZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNQcmV2YWxlbnRSZXNvdXJjZShy
ZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNWZXJ5UHJldmFsZW50
UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgcmVzb3VyY2VEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC02NDksNyArNjUwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
Ojppc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnMK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OklzVmVyeVByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVz
b3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzVmVy
eVByZXZhbGVudFJlc291cmNlKHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjU5LDcgKzY2MCw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcmV2YWxlbnRSZXNvdXJjZShzZXNz
aW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTZXRQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTY2OSw3ICs2
NzAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJlc291cmNlRm9y
RGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3NpbwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0UHJl
dmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UHJldmFsZW50UmVzb3VyY2VG
b3JEZWJ1Z01vZGUocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
c2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dFZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjc5LDcgKzY4MCw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2Uoc2Vz
c2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6U2V0VmVyeVByZXZhbGVudFJlc291cmNlKHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgU2Vjb25kcyBsYXN0U2Vlbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjg5LDcg
KzY5MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TGFzdFNlZW4oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsCiAgICAgICAgIHJldHVybjsKICAgICB9
CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0TGFzdFNlZW4oc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgbGFzdFNlZW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldExhc3RTZWVuKHJlc291cmNlRG9tYWlu
LCBsYXN0U2VlbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZG9tYWluSURFeGlzdHNJbkRh
dGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgaW50IGRvbWFpbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjk5LDE3ICs3MDAs
MTcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpkb21haW5JREV4aXN0c0luRGF0YWJhc2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBpbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpEb21h
aW5JREV4aXN0c0luRGF0YWJhc2Uoc2Vzc2lvbklELCBkb21haW5JRCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6RG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKGRvbWFpbklE
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJv
b2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVu
dCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6TWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKHNlc3Npb25JRCwgcmVz
b3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBsYXN0U2Vlbiwg
aGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0
aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6TWVyZ2VTdGF0aXN0aWNGb3JU
ZXN0aW5nKHJlc291cmNlRG9tYWluLCB0b3BGcmFtZURvbWFpbjEsIHRvcEZyYW1lRG9tYWluMiwg
bGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwg
aXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5UHJldmFsZW50LCBkYXRhUmVjb3Jk
c1JlbW92ZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0
KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omluc2VydEV4cGlyZWRTdGF0aXN0
aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHJlc291cmNlRG9tYWluLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNz
ZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29v
a2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhzZXNz
aW9uSUQsIHJlc291cmNlRG9tYWluLCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGhhZFVz
ZXJJbnRlcmFjdGlvbiwgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgaXNQ
cmV2YWxlbnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Okluc2VydEV4
cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKHJlc291cmNlRG9tYWluLCBudW1iZXJPZk9wZXJhdGlu
Z0RheXNQYXNzZWQsIGhhZFVzZXJJbnRlcmFjdGlvbiwgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29r
aWVEYXRhUmVtb3ZhbCwgaXNQcmV2YWxlbnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
c2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNs
ZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTcxOSw3ICs3MjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNsZWFyUHJldmFsZW50UmVzb3VyY2Uoc2Vz
c2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6Q2xlYXJQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAgICAgCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCkBAIC03MjksNyArNzMwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hl
ZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpTY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKHNlc3Npb25JRCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2NoZWR1bGVDb29raWVCbG9j
a2luZ1VwZGF0ZSgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFs
PFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mgc2hv
dWxkR3JhbmRmYXRoZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKQEAgLTc0OSw3ICs3NTAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNjaGVk
dWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3NpbwogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OlNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2lu
ZyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNjaGVk
dWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZygpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCkBAIC03NTksNyArNzYwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzdGF0aXN0
aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbkkKICAgICAgICAg
cmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoc2Vzc2lvbklEKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTdGF0aXN0aWNzRGF0YWJhc2VI
YXNBbGxUYWJsZXMoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJ
bnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dVc2VySW50ZXJhY3Rp
b24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVz
b3VyY2VEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKQEAgLTc2OSw3ICs3NzAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1VzZXJJ
bnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZwogICAgICAgICBy
ZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6TG9nVXNlckludGVyYWN0aW9uKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkxvZ1VzZXJJbnRlcmFjdGlvbihy
ZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aGFzSGFkVXNlckludGVy
YWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQpAQCAtNzc5LDEyICs3ODAsMTIgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdAog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OkhhZFVzZXJJbnRlcmFjdGlvbihzZXNzaW9uSUQsIHJlc291
cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpIYXNIYWRV
c2VySW50ZXJhY3Rpb24ocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpJc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShzZXNzaW9uSUQsIHN1YkRv
bWFpbiwgdG9wRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJ
c1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShzdWJEb21haW4sIHRvcERvbWFpbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTc5NCw3ICs3
OTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNsZWFyVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUgogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkNs
ZWFyVXNlckludGVyYWN0aW9uKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkNsZWFyVXNlckludGVyYWN0aW9uKHJlc291cmNl
RG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpoYXNMb2NhbFN0b3JhZ2UoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21h
aW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC04MjQsNyArODI1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUaW1lVG9MaXZl
VXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKHNlc3Npb25JRCwgc2Vjb25kcyks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0VGltZVRvTGl2ZVVzZXJJ
bnRlcmFjdGlvbihzZWNvbmRzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25J
RC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXROb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Ym9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQpAQCAtODM0LDcgKzgzNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChzZXNz
aW9uSUQsIHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHZhbHVlKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg0NCw3ICs4NDUsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6
U2Vzc2lvbklECiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0SXNSdW5uaW5nUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1Rlc3Qoc2Vzc2lvbklELCB2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6U2V0SXNSdW5uaW5nVGVzdCh2YWx1ZSksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg1NCw3ICs4NTUsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFN1YmZyYW1lVW5kZXJUb3BGcmFt
ZURvbWFpbihzZXNzaW9uSUQsIHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0U3ViZnJhbWVVbmRlclRvcEZyYW1l
RG9tYWluKHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZFRvLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODY0LDcgKzg2NSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oc2Vzc2lvbklELCBkb21haW5SZWRpcmVjdGVkRnJvbSwgZG9tYWluUmVk
aXJlY3RlZFRvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc1JlZ2lz
dGVyZWRBc1JlZGlyZWN0aW5nVG8oZG9tYWluUmVkaXJlY3RlZEZyb20sIGRvbWFpblJlZGlyZWN0
ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04NzQs
NyArODc1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELAogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OklzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihzZXNzaW9uSUQsIHN1YkZyYW1lRG9tYWluLCB0
b3BGcmFtZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNS
ZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKHN1YkZyYW1lRG9tYWluLCB0b3BGcmFtZURvbWFpbiks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAK
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9t
YWluKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YnJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg4NCw3
ICs4ODUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaQogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihzZXNzaW9uSUQsIHN1YnJlc291cmNl
RG9tYWluLCB0b3BGcmFtZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6U2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKHN1YnJlc291cmNlRG9tYWlu
LCB0b3BGcmFtZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQu
dG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVk
QXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHN1YnJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCkBAIC04OTQsNyArODk1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpp
c1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbkkKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoc2Vzc2lv
bklELCBzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihzdWJy
ZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtOTA0LDcgKzkwNSw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKHNlc3Npb25JRCwgc3VicmVzb3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRUbyks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0U3VicmVzb3VyY2VVbmlx
dWVSZWRpcmVjdFRvKHN1YnJlc291cmNlRG9tYWluLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YnJlc291
cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZEZyb20s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkxNCw3
ICs5MTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3NpbwogICAgICAgICByZXR1cm47CiAgICAg
fQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RGcm9tKHNlc3Npb25JRCwgc3VicmVzb3VyY2VE
b21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9tKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShzdWJyZXNvdXJjZURv
bWFpbiwgZG9tYWluUmVkaXJlY3RlZEZyb20pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
c2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpAQCAtOTI0LDcgKzkyNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oc2Vzc2lv
bklELCB0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZFRvKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8odG9wRnJh
bWVEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBkb21haW5SZWRpcmVjdGVkRnJvbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtOTM0LDcgKzkzNSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklECiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZy
b20oc2Vzc2lvbklELCB0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZEZyb20pLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RGcm9tKHRvcEZyYW1lRG9tYWluLCBkb21haW5SZWRpcmVjdGVkRnJvbSksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6aXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtOTQ0LDcgKzk0NSw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNHcmFuZGZhdGhl
cmVkKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OklzR3JhbmRmYXRoZXJlZChyZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgYm9vbCBpc0dyYW5kZmF0
aGVyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAg
LTk1NCw3ICs5NTUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVy
ZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpcwogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldEdyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgaXNHcmFu
ZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5
bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRHcmFu
ZGZhdGhlcmVkKHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnJlcXVlc3RTdG9yYWdlQWNjZXNzQ29uZmlybShXZWJQYWdlUHJveHlJZGVu
dGlmaWVyIHBhZ2VJRCwgRnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQpAQCAtOTg1LDcgKzk4Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5KFBBTDo6U2Vzc2lvbklEIHNlCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpHZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkoc2Vzc2lvbklEKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpBZ2dyZWdhdGVkVGhpcmRQYXJ0
eURhdGEoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgp
KTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRDYWNoZU1heEFnZUNhcEZvclBy
ZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25k
cywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTAx
NSw3ICsxMDE2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmlu
Z1RpbWUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmQKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRHcmFuZGZhdGhlcmluZ1RpbWUoc2Vzc2lvbklELCBzZWNvbmRzKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRHcmFuZGZhdGhlcmluZ1RpbWUoc2Vjb25k
cyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TWF4U3RhdGlzdGljc0VudHJpZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzaXplX3QgbWF4aW11bUVudHJ5Q291bnQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwMjUsNyArMTAyNiw3
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TWF4U3RhdGlzdGljc0VudHJpZXMoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzaXplCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRNYXhTdGF0
aXN0aWNzRW50cmllcyhzZXNzaW9uSUQsIG1heGltdW1FbnRyeUNvdW50KSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRNYXhTdGF0aXN0aWNzRW50cmllcyhtYXhpbXVt
RW50cnlDb3VudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50
NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TWluaW11bVRpbWVCZXR3
ZWVuRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBz
ZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC0xMDM1LDcgKzEwMzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldE1pbmltdW1U
aW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRAogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChzZXNzaW9u
SUQsIHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldE1p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChzZWNvbmRzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRQcnVuZUVudHJpZXNEb3duVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBzaXplX3QgcHJ1bmVUYXJnZXRDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTA0NSw3ICsxMDQ2LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRQcnVuZUVudHJpZXNEb3duVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBzaXplX3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFBydW5lRW50cmllc0Rvd25UbyhzZXNzaW9u
SUQsIHBydW5lVGFyZ2V0Q291bnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OlNldFBydW5lRW50cmllc0Rvd25UbyhwcnVuZVRhcmdldENvdW50KSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRz
UmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwNTUsNyArMTA1Niw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZv
cmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U2hvdWxk
Q2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoc2Vzc2lvbklELCB2YWx1
ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0U2hvdWxkQ2xhc3Np
ZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwodmFsdWUpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTA2NSw3ICsxMDY2LDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vz
c2lvbklEIHNlc3MKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWdNb2RlKHNlc3Npb25JRCwgZGVidWdNb2RlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGRlYnVn
TW9kZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RXBoZW1lcmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwNzUsNyArMTA3Niw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKFBB
TDo6U2Vzc2lvbklEIHNlc3NpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzRXBoZW1lcmFsKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6SXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsKCksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNl
cyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKQEAgLTEwODUsOSArMTA4Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6cmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNl
c3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRDYWNoZU1heEFnZUNhcEZvclByZXZh
bGVudFJlc291cmNlcyhzZXNzaW9uSUQpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKLSAgICB9KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpSZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKHNlc3Npb25JRCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0x
MDk3LDkgKzEwOTYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0UGFyYW1ldGVy
c1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhzZXNzaW9uSUQpLCBbY29tcGxl
dGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAg
ICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6UmVzZXRQYXJhbWV0
ZXJzVG9EZWZhdWx0VmFsdWVzKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9u
SUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVD
bGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNob3Vs
ZEdyYW5kZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFuZGZhdGhlciwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTEwOSw5ICsxMTA2LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50
KFBBTDo6U2Vzc2lvbklEIHNlc3MKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNjaGVkdWxlQ2xlYXJJbk1l
bW9yeUFuZFBlcnNpc3RlbnQoc2Vzc2lvbklELCB7IH0sIHNob3VsZEdyYW5kZmF0aGVyKSwgW2Nv
bXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSk7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2NoZWR1bGVDbGVhckluTWVtb3J5QW5k
UGVyc2lzdGVudChzZXNzaW9uSUQsIHsgfSwgc2hvdWxkR3JhbmRmYXRoZXIpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nVGVz
dGluZ0V2ZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgU3RyaW5nJiBldmVudCkK
QEAgLTExNjIsNyArMTE1Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Q3Jvc3NT
aXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzCiAgICAgICAgIHJl
dHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2V0Q3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3Rpbmco
c2Vzc2lvbklELCBmcm9tRG9tYWluLCB0b0RvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZTo6TG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihmcm9tRG9t
YWluLCB0b0RvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRDcm9zc1NpdGVM
b2Fkc1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMjE1
LDkgKzEyMTAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omhhc0lzb2xhdGVkU2Vzc2lv
bihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZwogI2lmIEVOQUJMRShBUFBfQk9V
TkRfRE9NQUlOUykKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0QXBwQm91bmREb21haW5z
Rm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+JiBhcHBCb3VuZERvbWFpbnMsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRBcHBCb3VuZERvbWFpbnNGb3JSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKHNlc3Npb25JRCwgYXBwQm91bmREb21haW5zKSwgW2NvbXBsZXRp
b25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldEFwcEJvdW5kRG9t
YWlucyhhcHBCb3VuZERvbWFpbnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lv
bklELnRvVUludDY0KCkpOwogfQogI2VuZGlmCiAKQEAgLTEyNTIsOSArMTI0NSw5IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uCiAgICAgfSk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRF
bmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKK3ZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhzZXNzaW9uSUQsIGVuYWJsZWQpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3
b3JrUHJvY2Vzczo6U2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRl
c3Rpbmcoc2Vzc2lvbklELCBlbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJl
bW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlIG1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBj
b21wbGV0aW9uSGFuZGxlcikKQEAgLTEyNjQsNyArMTI1Nyw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBB
TDo6U2VzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFs
TW9kZUZvclRlc3Rpbmcoc2Vzc2lvbklELCBtb2RlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpTZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZShtb2RlKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNz
UHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQ
cm94eS5oCmluZGV4IDVjOWM0NTNkY2M0ZDU4NjE4Zjg1NjkxYTA0YjE1NTc1YjVhM2JjYzkuLjRk
MDg2OGU5N2M4MTQzZTU3NTkyYzExYjk4ZDgyNWNhOGU0MDIzZDAgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oCkBAIC0x
OTksNyArMTk5LDcgQEAgcHVibGljOgogI2VuZGlmCiAgICAgdm9pZCBzZXRTaG91bGREb3duZ3Jh
ZGVSZWZlcnJlckZvclRlc3RpbmcoYm9vbCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIHNldFRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoUEFMOjpTZXNzaW9uSUQs
IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVu
Zm9yY2VtZW50RW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lk
IHNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklELCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldEZpcnN0UGFydHlXZWJzaXRl
RGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6Rmlyc3RQ
YXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRUb1NhbWVTaXRlU3RyaWN0Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldEZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGZpcnN0UGFydHlIb3N0LCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgY25hbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAppbmRleCBiNzkwMzI5NTIyMWQ3
MWQ5NzlmNDhiNmQ2NmY2ZmFhNzc1MTI3YjAyLi41YTdjZjI3NDk3M2VkNWEwNzk3MmVkYjAwODFi
ZTExYTU3Y2UyZmMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQYWdl
UHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAK
QEAgLTE0Miw2ICsxNDIsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1
ZGUgIldlYlByb3RlY3Rpb25TcGFjZS5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1l
c3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViVVJMU2NoZW1lSGFuZGxlci5oIgogI2luY2x1ZGUgIldl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViVmlld0RpZE1vdmVU
b1dpbmRvd09ic2VydmVyLmgiCkBAIC01NTY4LDcgKzU1NjksNyBAQCB2b2lkIFdlYlBhZ2VQcm94
eTo6bG9nRnJhbWVOYXZpZ2F0aW9uKGNvbnN0IFdlYkZyYW1lUHJveHkmIGZyYW1lLCBjb25zdCBV
UkwmIHBhZwogICAgIGlmICh0YXJnZXRIb3N0LmlzRW1wdHkoKSB8fCBtYWluRnJhbWVIb3N0Lmlz
RW1wdHkoKSB8fCB0YXJnZXRIb3N0ID09IHNvdXJjZVVSTC5ob3N0KCkpCiAgICAgICAgIHJldHVy
bjsKIAotICAgIHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpMb2dGcmFtZU5hdmlnYXRpb24obV93ZWJzaXRlRGF0YVN0b3Jl
LT5zZXNzaW9uSUQoKSwgUmVnaXN0cmFibGVEb21haW4geyB0YXJnZXRVUkwgfSwgUmVnaXN0cmFi
bGVEb21haW4geyBwYWdlVVJMIH0sIFJlZ2lzdHJhYmxlRG9tYWluIHsgc291cmNlVVJMIH0sIGlz
UmVkaXJlY3QsIGZyYW1lLmlzTWFpbkZyYW1lKCksIE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9k
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JNYWluRnJhbWVUaW1lc3RhbXAsIHdhc1BvdGVudGlhbGx5
SW5pdGlhdGVkQnlVc2VyKSwgMCk7CisgICAgd2Vic2l0ZURhdGFTdG9yZSgpLm5ldHdvcmtQcm9j
ZXNzKCkuc2VuZChNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpMb2dG
cmFtZU5hdmlnYXRpb24oUmVnaXN0cmFibGVEb21haW4geyB0YXJnZXRVUkwgfSwgUmVnaXN0cmFi
bGVEb21haW4geyBwYWdlVVJMIH0sIFJlZ2lzdHJhYmxlRG9tYWluIHsgc291cmNlVVJMIH0sIGlz
UmVkaXJlY3QsIGZyYW1lLmlzTWFpbkZyYW1lKCksIE1vbm90b25pY1RpbWU6Om5vdygpIC0gbV9k
aWRGaW5pc2hEb2N1bWVudExvYWRGb3JNYWluRnJhbWVUaW1lc3RhbXAsIHdhc1BvdGVudGlhbGx5
SW5pdGlhdGVkQnlVc2VyKSwgc2Vzc2lvbklEKCkudG9VSW50NjQoKSk7CiB9CiAjZW5kaWYKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURh
dGFTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRl
RGF0YVN0b3JlLmNwcAppbmRleCA3MWNmOTIwN2VmZDljYTI5NWFiODkwZDY3NmUyZDM5ZDQ5MmQ2
NjU4Li45ZDY4YzNmYTA5NjdhMzRhNGYzYjVkMmY2OWVhZDE4NmE2Mzg0MGVhIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0
b3JlLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYlByb2Nlc3NNZXNzYWdlcy5o
IgogI2luY2x1ZGUgIldlYlByb2Nlc3NQb29sLmgiCiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YS5oIgogI2luY2x1ZGUgIldlYnNp
dGVEYXRhU3RvcmVDbGllbnQuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlUGFyYW1ldGVy
cy5oIgpAQCAtMTM5Niw3ICsxMzk3LDcgQEAgdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2UKICAgICBh
dXRvIGZsYWcgPSBlbmFibGVkID8gV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVu
YWJsZWQ6OlllcyA6IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOjpO
bzsKIAogICAgIGF1dG8gY2FsbGJhY2tBZ2dyZWdhdG9yID0gQ2FsbGJhY2tBZ2dyZWdhdG9yOjpj
cmVhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgIG5ldHdvcmtQcm9jZXNzKCku
c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhtX3Nlc3Np
b25JRCwgZmxhZywgW2NhbGxiYWNrQWdncmVnYXRvcl0geyB9KTsKKyAgICBuZXR3b3JrUHJvY2Vz
cygpLnNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKG1f
c2Vzc2lvbklELCBmbGFnLCBbY2FsbGJhY2tBZ2dyZWdhdG9yXSB7IH0pOwogfQogCiB2b2lkIFdl
YnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NGaXJzdFBhcnR5V2Vic2l0
ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoYm9vbCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYktpdC9XZWJLaXQu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBkMjlmZDkxY2Y0NDZlYzc5NTY1Mjg1NDNj
ZmEzMGEzMjQyMTNkZTNmLi5jNTRmYjFkYzI4MDk2MGM3NjA5NWNiNTY2MmZiMDA5YmQyMGU5ODZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
QEAgLTEyNTgsNiArMTI1OCw3IEBACiAJCTVDRTkxMjExMjI5M0MyNzgwMDVCRUM3OCAvKiBBdXhp
bGlhcnlQcm9jZXNzTWFpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSA1Q0U5MTIwRjIyOTNDMjVGMDA1QkVDNzggLyogQXV4aWxpYXJ5UHJvY2Vzc01h
aW4uY3BwICovOyB9OwogCQk1Q0U5MTIxMjIyOTNDMjc4MDA1QkVDNzggLyogQXV4aWxpYXJ5UHJv
Y2Vzc01haW4uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNUNFOTEyMEYyMjkzQzI1RjAwNUJFQzc4IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCAq
LzsgfTsKIAkJNUNFOTEyMTQyMjkzQzI4MDAwNUJFQzc4IC8qIFdLTWFpbi5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNFOTEyMEIyMjkzQzFFMDAwNUJF
Qzc4IC8qIFdLTWFpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7
IH07IH07CisJCTVDRUYxRDBEMjc4NjFBODIwMEI1RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJY
QnVpbGRGaWxlOyBmaWxlUmVmID0gNUNFRjFEMEMyNzg2MUE4MjAwQjVENzlDIC8qIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi87IH07CiAJCTYzMTA4
Rjk2MUY5NjcxOUMwMEEwREI4NCAvKiBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0LmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MzEwOEY5NDFGOTY3MTlDMDBB
MERCODQgLyogX1dLQXBwbGljYXRpb25NYW5pZmVzdC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTYzMTA4Rjk5MUY5NjcxRjcwMEEwREI4NCAvKiBf
V0tBcHBsaWNhdGlvbk1hbmlmZXN0SW50ZXJuYWwuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzMTA4Rjk4MUY5NjcxRjcwMEEwREI4NCAvKiBfV0tBcHBs
aWNhdGlvbk1hbmlmZXN0SW50ZXJuYWwuaCAqLzsgfTsKIAkJNjM0ODQyNTExRkIyNkU3MTAwOTQ2
RTNDIC8qIEFQSUFwcGxpY2F0aW9uTWFuaWZlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDYzNDg0MjRGMUZCMjZFNzEwMDk0NkUzQyAvKiBBUElBcHBs
aWNhdGlvbk1hbmlmZXN0LmggKi87IH07CkBAIC00OTE3LDYgKzQ5MTgsOCBAQAogCQk1Q0U5MTIw
RjIyOTNDMjVGMDA1QkVDNzggLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAuY3BwOyBuYW1lID0gQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwOyBwYXRo
ID0gQ29jb2EvQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1Q0VBQkEyQTIzMzMyNDc3MDA3OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGluZ3Mu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTGVnYWN5R2xvYmFsU2V0dGluZ3Mu
aDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNFQUJBMkIyMzMzMjUxNDAwNzk3Nzk3
IC8qIExlZ2FjeUdsb2JhbFNldHRpbmdzLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IExlZ2FjeUdsb2JhbFNldHRpbmdzLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNUNFRjFEMDgyNzg2MDRERDAwQjVENzlDIC8qIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IG5hbWUgPSBXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW47IHBhdGggPSBDbGFzc2lmaWVyL1dlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNUNFRjFEMEMyNzg2MUE4MjAwQjVENzlDIC8qIFdlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVy
ZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNw
cC5jcHA7IHBhdGggPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlUmVjZWl2
ZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1Q0ZFQ0IwMzFFMUVEMUM4MDBG
ODg1MDQgLyogTGVnYWN5Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IExlZ2FjeUN1c3RvbVByb3RvY29sTWFuYWdlci5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVEQUQ3M0YxMTE2RkY5MEMwMEVFNTM5NiAvKiBC
YXNlVGFyZ2V0LnhjY29uZmlnICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dC54Y2NvbmZpZzsgcGF0aCA9IEJhc2VU
YXJnZXQueGNjb25maWc7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTYzMTA4Rjk0MUY5
NjcxOUMwMEEwREI4NCAvKiBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0LmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9
IF9XS0FwcGxpY2F0aW9uTWFuaWZlc3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTEwMTE1LDYgKzEwMTE4LDcgQEAKIAkJCQk3QTNGRUNBMTIxRjdDMDk3MDBGMjY3Q0QgLyogU3Rv
cmFnZUFjY2Vzc1N0YXR1cy5oICovLAogCQkJCTdBODQzQTFBMjFFNDFGQjIwMERFRjY2MyAvKiBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwICovLAogCQkJCTdBRkJEMzYyMjFFNTBG
MzkwMDVEQkFDQiAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCAqLywKKwkJCQk1
Q0VGMUQwODI3ODYwNEREMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Lm1lc3NhZ2VzLmluICovLAogCQkJKTsKIAkJCW5hbWUgPSBDbGFzc2lmaWVyOwogCQkJc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsKQEAgLTEyMjA0LDYgKzEyMjA4LDcgQEAKIAkJCQlCQ0VFN0FDRDEy
ODE3OTg4MDA5ODI3REEgLyogV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCAqLywKIAkJCQk1MUYw
NjBERDE2NTQzMTc1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovLAogCQkJCTUxRjA2MERFMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRl
ck1lc3NhZ2VzLmggKi8sCisJCQkJNUNFRjFEMEMyNzg2MUE4MjAwQjVENzlDIC8qIFdlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYw
REQxNjU0MzE3NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwICov
LAogCQkJCTUxRjA2MEREMTY1NDMxNzUwMEYzMjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VS
ZWNlaXZlci5jcHAgKi8sCiAJCQkJNDFGMDYwREQxNjU0MzE3NTAwRjMyODFDIC8qIFdlYlNvY2tl
dENoYW5uZWxNZXNzYWdlUmVjZWl2ZXIuY3BwICovLApAQCAtMTU3NjksNiArMTU3NzQsNyBAQAog
CQkJCTUxN0I1Rjc5Mjc1RTk3QTEwMDJEQzIyRCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTUxN0I1Rjk5Mjc1RUM2MDEwMDJEQzIyRCAvKiBXZWJQdXNoTWVzc2Fn
ZUNvY29hLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODFCIC8q
IFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJ
CTVDRUYxRDBEMjc4NjFBODIwMEI1RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTFGMDYwRTExNjU0MzE4
NTAwRjMyODFGIC8qIFdlYlJUQ01vbml0b3JNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJNTFGMDYwRTExNjU0MzE4NTAwRjMyODJDIC8qIFdlYlJUQ1Jlc29sdmVyTWVzc2Fn
ZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTQxRTBBN0NCMjNCNjQ1Q0QwMDU2MTA2
MCAvKiBXZWJTb2NrZXRDaGFubmVsLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448457</attachid>
            <date>2022-01-05 17:35:17 -0800</date>
            <delta_ts>2022-01-05 17:36:45 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234892-20220105173516.patch</filename>
            <type>text/plain</type>
            <size>121480</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2ZTM0NDYwYTk4ZmY2MzY4
N2M1NDQ5ZTZkNDA3MjM0NjNiMjFiNjcuLjdmZDRjYjhlOTM3MWFkZThlMzM2ZGVjNjhjMGQ2Mjhi
ZDA1MmI1YmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMwIEBACisyMDIyLTAxLTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYSBNZXNzYWdlUmVjZWl2ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoZXJlIGlzIGEgbG90IG9mIGJv
aWxlcnBsYXRlIGNvZGUgdGhhdCBmaW5kcyB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlIGFuZCBmb3J3YXJkcyB0aGUgSVBDIHBhcmFtZXRlcnMgdG8gaXQuCisgICAgICAgIExldCdz
IGp1c3Qgc2VuZCBtZXNzYWdlcyBkaXJlY3RseSB0byB0aGUgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlLgorICAgICAgICBBbHNvIHJlbW92ZSB0aGUgdW51c2VkIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZS5oLgorICAgICAgICBJIGFkZGVkIGFuIGVuYWJsZWQgY2hlY2sg
aW4gV2Vic2l0ZURhdGFTdG9yZTo6aXNQcmV2YWxlbnRSZXNvdXJjZSB0byBwcmV2ZW50IGFuIGFz
c2VydGlvbiB3aGVuIHNlbmRpbmcgYSBtZXNzYWdlIHRvIGFuIG9iamVjdCB0aGF0IGRvZXNuJ3Qg
ZXhpc3QgaW4gdGhlIEFQSSB0ZXN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MuTmV0d29ya1Byb2Nl
c3NSZXN0YXJ0LgorICAgICAgICBUaGUgdmVyc2lvbiBvZiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQgd2l0aG91
dCBhIENvbXBsZXRpb25IYW5kbGVyIHdhcyBkZWFkIGNvZGUgdGhhdCBjb25mdXNlZCB0aGUgdGVt
cGxhdGUgdHlwZQorICAgICAgICBpbmZlcmVuY2UgaW4gZ2VuZXJhdGVkIGNvZGUsIHNvIEkgcmVt
b3ZlZCBpdCBzbyB0aGVyZSBpcyBub3cgb25seSBvbmUgbWV0aG9kIG5hbWVkIFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZC4KKworICAgICAgICAqIENNYWtlTGlzdHMudHh0OgorICAgICAgICAqIERlcml2ZWRTb3Vy
Y2VzLm1ha2U6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlKToKKyAgICAgICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjp+V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKToKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluOiBBZGRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
OjpzZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc0dyYW5kZmF0
aGVyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNQcmV2
YWxlbnRSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
Ojppc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzOjpzZXRHcmFuZGZhdGhlcmVkKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNldFByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdN
b2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFZlcnlQ
cmV2YWxlbnRSZXNvdXJjZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpjbGVhclByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Z2V0UmVzb3VyY2VMb2FkU3RhdGlzdGlj
c0RhdGFTdW1tYXJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nl
c3NpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c3RhdGlz
dGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQpOiBE
ZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0SXNSdW5uaW5nUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKTogRGVsZXRlZC4KKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdU
byk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc1JlZ2lzdGVy
ZWRBc1N1YkZyYW1lVW5kZXIpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKTogRGVsZXRlZC4KKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RU
byk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNv
dXJjZVVuaXF1ZVJlZGlyZWN0RnJvbSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjppc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIpOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RGcm9tKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OnNldExhc3RTZWVuKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1By
b2Nlc3M6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZSk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0Zv
clRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6bG9n
RnJhbWVOYXZpZ2F0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmxvZ1VzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpoYWRVc2VySW50ZXJhY3Rpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UpOiBEZWxl
dGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6Y2xlYXJVc2VySW50ZXJhY3Rp
b24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0R3JhbmRm
YXRoZXJpbmdUaW1lKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRQcnVuZUVudHJpZXNE
b3duVG8pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0VGlt
ZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVt
b3ZhbCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3M6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbCBjb25zdCk6
IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRBcHBCb3VuZERvbWFpbnNGb3JSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFNo
b3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOiBEZWxldGVkLgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRh
UmVtb3ZhbE1vZGVGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9OZXR3b3JrUHJvY2Vzcy5oOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9j
ZXNzLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9j
ZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkdW1w
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OmlzUHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzc1Byb3h5Ojppc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRWZXJ5UHJldmFsZW50
UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRMYXN0
U2Vlbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmRvbWFpbklERXhp
c3RzSW5EYXRhYmFzZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Om1l
cmdlU3RhdGlzdGljRm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6Omluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRh
dGUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZVN0YXRp
c3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dVc2VySW50ZXJhY3Rpb24pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24pOgor
ICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlbGF0aW9uc2hpcE9ubHlJ
bkRhdGFiYXNlT25jZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmNs
ZWFyVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94
eTo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQp
OgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc1J1bm5pbmdSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGVzdCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbik6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyk6CisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVV
bmRlcik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291
cmNlVW5kZXJUb3BGcmFtZURvbWFpbik6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNz
UHJveHk6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcik6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyk6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNlVW5pcXVl
UmVkaXJlY3RGcm9tKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20pOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc0dyYW5kZmF0aGVyZWQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKToKKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Z2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1t
YXJ5KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRo
ZXJpbmdUaW1lKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TWF4
U3RhdGlzdGljc0VudHJpZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwpOgorICAgICAgICAoV2Vi
S2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcnVuZUVudHJpZXNEb3duVG8pOgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRDbGFzc2lmeVJlc291cmNl
c0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhl
bWVyYWwpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldENhY2hl
TWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVy
c2lzdGVudCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldENyb3Nz
U2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpz
ZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRGb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgICogVUlQcm9jZXNzL1dlYlBhZ2VQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6bG9nRnJhbWVOYXZpZ2F0
aW9uKToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHA6CisgICAgICAgIChXZWJLaXQ6OldlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKToK
KyAgICAgICAgKiBXZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKwogMjAyMi0wMS0w
NSAgVGltIEhvcnRvbiAgPHRpbW90aHlfaG9ydG9uQGFwcGxlLmNvbT4KIAogICAgICAgICBNb3Zl
IG1vcmUgU0RLIGNoZWNrcyB0byBsaW5rZWRPbk9yQWZ0ZXIoKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKaW5k
ZXggMjU5ZTQ3MmI1N2QwYzY0ZmY3NDM3OWYyYzkyOWM4NzJjZmVmZTA4MS4uOGZjMDIwNjU0YWU1
MWExOTdiZGUzYWYwYTRiMmZhMmNhNzdiYjgyZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
TWFrZUxpc3RzLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0L0NNYWtlTGlzdHMudHh0CkBAIC0xODUs
NiArMTg1LDggQEAgc2V0KFdlYktpdF9NRVNTQUdFU19JTl9GSUxFUwogICAgIEdQVVByb2Nlc3Mv
d2VicnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllcgogICAgIEdQVVByb2Nlc3Mvd2Vi
cnRjL1JlbW90ZVNhbXBsZUJ1ZmZlckRpc3BsYXlMYXllck1hbmFnZXIKIAorICAgIE5ldHdvcmtQ
cm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlCisKICAgICBO
ZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tpZU1hbmFnZXIKIAogICAgIE5ldHdvcmtQcm9j
ZXNzL0luZGV4ZWREQi9XZWJJREJTZXJ2ZXIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZSBiL1NvdXJjZS9XZWJLaXQvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRl
eCBiNjIxODljYjQ3OGY1ZWUyZDE2ZmQ1MzE4NDFiOGMyNjZlY2I5N2UxLi4zMTcwZDVjYjQwMTcw
NjM0NGZkNTQ4YTJjNDc0ZWVmODgwYzhlYWNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0Rl
cml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtl
CkBAIC0xNDAsNiArMTQwLDcgQEAgTUVTU0FHRV9SRUNFSVZFUlMgPSBcCiAJTmV0d29ya1Byb2Nl
c3Mvd2VicnRjL05ldHdvcmtSVENQcm92aWRlciBcCiAJTmV0d29ya1Byb2Nlc3Mvd2VicnRjL05l
dHdvcmtSVENNb25pdG9yIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvUlRDRGF0YUNoYW5uZWxS
ZW1vdGVNYW5hZ2VyUHJveHkgXAorCU5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlIFwKIAlOZXR3b3JrUHJvY2Vzcy9Db29raWVzL1dlYkNvb2tp
ZU1hbmFnZXIgXAogCU5ldHdvcmtQcm9jZXNzL3N0b3JhZ2UvTmV0d29ya1N0b3JhZ2VNYW5hZ2Vy
IFwKIAlTaGFyZWQvQXV4aWxpYXJ5UHJvY2VzcyBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0
b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VM
b2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDU2ZjY3YmYwODhkYzYwMDIyM2Y4YmZhMzBmZGY3ODQ4ZTBiZWVkMjkuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oCisrKyAv
ZGV2L251bGwKQEAgLTEsMTUwICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAx
OSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJwotICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKLSAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKLSAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCi0gKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKLSAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCi0gKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQotICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgotICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLSNwcmFnbWEgb25j
ZQotCi0jaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0KLSNpbmNs
dWRlICJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKLSNpbmNsdWRlICJXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKLSNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KLSNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+Ci0jaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KLQot
bmFtZXNwYWNlIFdlYkNvcmUgewotY2xhc3MgS2V5ZWREZWNvZGVyOwotY2xhc3MgS2V5ZWRFbmNv
ZGVyOwotZW51bSBjbGFzcyBTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24gOiBib29sOwotZW51
bSBjbGFzcyBTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCA6IGJvb2w7Ci1zdHJ1Y3QgUmVzb3VyY2VM
b2FkU3RhdGlzdGljczsKLX0KLQotbmFtZXNwYWNlIFdlYktpdCB7Ci0KLS8vIFRoaXMgaXMgYWx3
YXlzIGNvbnN0cnVjdGVkIC8gdXNlZCAvIGRlc3Ryb3llZCBvbiB0aGUgV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlJ3Mgc3RhdGlzdGljcyBxdWV1ZS4KLWNsYXNzIFJlc291cmNlTG9hZFN0
YXRpc3RpY3NNZW1vcnlTdG9yZSBmaW5hbCA6IHB1YmxpYyBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmUgewotcHVibGljOgotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZShX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUmLCBTdXNwZW5kYWJsZVdvcmtRdWV1ZSYsIFNo
b3VsZEluY2x1ZGVMb2NhbGhvc3QpOwotCi0gICAgdm9pZCBjbGVhcihDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IG92ZXJyaWRl
OwotCi0gICAgVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0
eURhdGE+IGFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpIGNvbnN0IG92ZXJyaWRlOwotICAgIGNv
bnN0IEhhc2hNYXA8UmVnaXN0cmFibGVEb21haW4sIFVuaXF1ZVJlZjxXZWJDb3JlOjpSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzPj4mIGRhdGEoKSBjb25zdCB7IHJldHVybiBtX3Jlc291cmNlU3RhdGlz
dGljc01hcDsgfQotCi0gICAgc3RkOjp1bmlxdWVfcHRyPFdlYkNvcmU6OktleWVkRW5jb2Rlcj4g
Y3JlYXRlRW5jb2RlckZyb21EYXRhKCkgY29uc3Q7Ci0gICAgdm9pZCBtZXJnZVdpdGhEYXRhRnJv
bURlY29kZXIoV2ViQ29yZTo6S2V5ZWREZWNvZGVyJik7Ci0KLSAgICB2b2lkIG1lcmdlU3RhdGlz
dGljcyhWZWN0b3I8UmVzb3VyY2VMb2FkU3RhdGlzdGljcz4mJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBwcm9jZXNzU3RhdGlzdGljcyhjb25zdCBGdW5jdGlvbjx2b2lkKGNvbnN0IFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MmKT4mKSBjb25zdDsKLQotICAgIHZvaWQgdXBkYXRlQ29va2llQmxvY2tpbmco
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsKLQotICAgIHZvaWQgY2xhc3Np
ZnlQcmV2YWxlbnRSZXNvdXJjZXMoKSBvdmVycmlkZTsKLQotICAgIHZvaWQgcmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NVbmRlck9wZW5lcihEb21haW5Jbk5lZWRPZlN0b3JhZ2VBY2Nlc3MmJiwgV2ViQ29y
ZTo6UGFnZUlkZW50aWZpZXIsIE9wZW5lckRvbWFpbiYmKSBvdmVycmlkZTsKLQotICAgIHZvaWQg
Z3JhbmRmYXRoZXJEYXRhRm9yRG9tYWlucyhjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWlu
PiYpIG92ZXJyaWRlOwotCi0gICAgYm9vbCBpc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIo
Y29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IG92
ZXJyaWRlOwotICAgIGJvb2wgaXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKGNvbnN0IFN1YkZy
YW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBjb25zdCBvdmVycmlkZTsKLSAgICBi
b29sIGlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhjb25zdCBSZWRpcmVjdGVkRnJvbURvbWFp
biYsIGNvbnN0IFJlZGlyZWN0ZWRUb0RvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotCi0gICAgdm9p
ZCBjbGVhclByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgb3ZlcnJp
ZGU7Ci0gICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGNvbnN0IFN0cmluZyYpPiYmKSBmaW5hbDsKLSAgICBib29sIGlzUHJldmFsZW50UmVz
b3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdCBvdmVycmlkZTsKLSAgICBib29s
IGlzVmVyeVByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Qg
b3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRQcmV2YWxlbnRSZXNvdXJjZShjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0VmVyeVByZXZhbGVudFJlc291cmNlKGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIHNldEdyYW5kZmF0
aGVyZWQoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBib29sIHZhbHVlKSBvdmVycmlkZTsKLSAg
ICBib29sIGlzR3JhbmRmYXRoZXJlZChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IG92
ZXJyaWRlOwotCi0gICAgdm9pZCBzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oY29uc3Qg
U3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKGNvbnN0IFN1YlJlc291cmNlRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN1YnJl
c291cmNlVW5pcXVlUmVkaXJlY3RUbyhjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFJl
ZGlyZWN0RG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRTdWJyZXNvdXJjZVVuaXF1ZVJl
ZGlyZWN0RnJvbShjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0RG9tYWlu
Jikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oY29uc3Qg
VG9wRnJhbWVEb21haW4mLCBjb25zdCBSZWRpcmVjdERvbWFpbiYpIG92ZXJyaWRlOwotICAgIHZv
aWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oY29uc3QgVG9wRnJhbWVEb21haW4mLCBj
b25zdCBSZWRpcmVjdERvbWFpbiYpIG92ZXJyaWRlOwotCi0gICAgYm9vbCBhcmVBbGxUaGlyZFBh
cnR5Q29va2llc0Jsb2NrZWRVbmRlcihjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwot
ICAgIENvb2tpZUFjY2VzcyBjb29raWVBY2Nlc3MoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJik7Ci0gICAgdm9pZCBoYXNTdG9yYWdlQWNjZXNzKGNv
bnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBzdGQ6Om9wdGlvbmFs
PFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlcXVlc3RT
dG9yYWdlQWNjZXNzKFN1YkZyYW1lRG9tYWluJiYsIFRvcEZyYW1lRG9tYWluJiYsIFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIFdlYkNvcmU6OlN0b3Jh
Z2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdG9yYWdlQWNjZXNzU3RhdHVz
KT4mJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21h
aW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBX
ZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29y
ZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKSBvdmVycmlkZTsKLQotICAgIHZvaWQgbG9n
RnJhbWVOYXZpZ2F0aW9uKGNvbnN0IE5hdmlnYXRlZFRvRG9tYWluJiwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgYm9vbCBpc1JlZGlyZWN0LCBib29s
IGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJhbWVEb2N1bWVudExvYWQsIGJv
b2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpIG92ZXJyaWRlOwotICAgIHZvaWQgbG9n
VXNlckludGVyYWN0aW9uKGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGxvZ0Nyb3NzU2l0ZUxvYWRXaXRoTGlua0Rl
Y29yYXRpb24oY29uc3QgTmF2aWdhdGVkRnJvbURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZFRvRG9t
YWluJikgb3ZlcnJpZGU7Ci0KLSAgICB2b2lkIGNsZWFyVXNlckludGVyYWN0aW9uKGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKSBvdmVycmlkZTsK
LSAgICBib29sIGhhc0hhZFVzZXJJbnRlcmFjdGlvbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYs
IE9wZXJhdGluZ0RhdGVzV2luZG93KSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0TGFzdFNlZW4o
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzKSBvdmVycmlkZTsKLSAgICB2b2lkIHJl
bW92ZURhdGFGb3JEb21haW4oY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlkZTsKLSAg
ICBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+IGFsbERvbWFpbnMoKSBjb25zdCBmaW5hbDsKLSAg
ICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiwgdW5zaWduZWQgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhc1Vz
ZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFs
LCBib29sIGlzUHJldmFsZW50KSBvdmVycmlkZTsKLQotcHJpdmF0ZToKLSAgICB2b2lkIGluY2x1
ZGVUb2RheUFzT3BlcmF0aW5nRGF0ZUlmTmVjZXNzYXJ5KCkgb3ZlcnJpZGU7Ci0gICAgY29uc3Qg
VmVjdG9yPE9wZXJhdGluZ0RhdGU+JiBvcGVyYXRpbmdEYXRlcygpIGNvbnN0IHsgcmV0dXJuIG1f
b3BlcmF0aW5nRGF0ZXM7IH0KLSAgICB2b2lkIGNsZWFyT3BlcmF0aW5nRGF0ZXMoKSBvdmVycmlk
ZSB7IG1fb3BlcmF0aW5nRGF0ZXMuY2xlYXIoKTsgfQotICAgIHZvaWQgbWVyZ2VPcGVyYXRpbmdE
YXRlcyhWZWN0b3I8T3BlcmF0aW5nRGF0ZT4mJik7Ci0gICAgYm9vbCBoYXNTdGF0aXN0aWNzRXhw
aXJlZChjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgT3BlcmF0aW5nRGF0ZXNXaW5kb3cp
IGNvbnN0OwotICAgIHN0YXRpYyBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4gbWVyZ2VPcGVyYXRpbmdE
YXRlcyhjb25zdCBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4mIGV4aXN0aW5nRGF0ZXMsIFZlY3RvcjxP
cGVyYXRpbmdEYXRlPiYmIG5ld0RhdGVzKTsKLSAgICBib29sIGhhc1N0YXRpc3RpY3NFeHBpcmVk
KFdhbGxUaW1lIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb25UaW1lLCBPcGVyYXRpbmdEYXRlc1dp
bmRvdykgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICBzdGF0aWMgYm9vbCBzaG91bGRCbG9ja0FuZEtl
ZXBDb29raWVzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKLSAgICBzdGF0aWMgYm9v
bCBzaG91bGRCbG9ja0FuZFB1cmdlQ29va2llcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Jik7Ci0gICAgc3RhdGljIFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biBoYXNV
c2VyR3JhbnRlZFN0b3JhZ2VBY2Nlc3NUaHJvdWdoUHJvbXB0KGNvbnN0IFJlc291cmNlTG9hZFN0
YXRpc3RpY3MmLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpOwotICAgIGJvb2wgaGFzSGFkVW5l
eHBpcmVkUmVjZW50VXNlckludGVyYWN0aW9uKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBPcGVy
YXRpbmdEYXRlc1dpbmRvdykgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRSZW1vdmVBbGxXZWJzaXRl
RGF0YUZvcihSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5k
ZmF0aGVyaW5nKSBjb25zdDsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbEJ1dENvb2tpZXNGb3Io
UmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmlu
ZykgY29uc3Q7Ci0gICAgYm9vbCBzaG91bGRFbmZvcmNlU2FtZVNpdGVTdHJpY3RGb3IoUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyYsIGJvb2wgc2hvdWxkQ2hlY2tGb3JHcmFuZGZhdGhlcmluZyk7Ci0g
ICAgdm9pZCBpbmNyZW1lbnRSZWNvcmRzRGVsZXRlZENvdW50Rm9yRG9tYWlucyhIYXNoU2V0PFJl
Z2lzdHJhYmxlRG9tYWluPiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFByZXZhbGVudFJlc291
cmNlKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBSZXNvdXJjZUxvYWRQcmV2YWxlbmNlKTsKLSAg
ICB1bnNpZ25lZCByZWN1cnNpdmVseUdldEFsbERvbWFpbnNUaGF0SGF2ZVJlZGlyZWN0ZWRUb1Ro
aXNEb21haW4oY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIEhhc2hTZXQ8UmVkaXJlY3Rl
ZFRvRG9tYWluPiYsIHVuc2lnbmVkIG51bWJlck9mUmVjdXJzaXZlQ2FsbHMpIGNvbnN0OwotICAg
IHZvaWQgZ3JhbnRTdG9yYWdlQWNjZXNzSW50ZXJuYWwoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJh
bWVEb21haW4mJiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXI+LCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3du
LCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzU2NvcGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2Vi
Q29yZTo6U3RvcmFnZUFjY2Vzc1dhc0dyYW50ZWQpPiYmKTsKLSAgICB2b2lkIG1hcmtBc1ByZXZh
bGVudElmSGFzUmVkaXJlY3RlZFRvUHJldmFsZW50KFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsK
LSAgICBib29sIGlzUHJldmFsZW50RHVlVG9EZWJ1Z01vZGUoUmVzb3VyY2VMb2FkU3RhdGlzdGlj
cyYpOwotICAgIFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gZW5zdXJlUHJldmFsZW50UmVzb3Vy
Y2VzRm9yRGVidWdNb2RlKCkgb3ZlcnJpZGU7Ci0gICAgdm9pZCByZW1vdmVEYXRhUmVjb3JkcyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgcHJ1bmVTdGF0aXN0aWNzSWZO
ZWVkZWQoKSBvdmVycmlkZTsKLSAgICBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiBlbnN1cmVSZXNv
dXJjZVN0YXRpc3RpY3NGb3JSZWdpc3RyYWJsZURvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYpOwotICAgIFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRh
Rm9yIHJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNpdGVEYXRhRm9yKCkg
b3ZlcnJpZGU7Ci0gICAgYm9vbCBpc01lbW9yeVN0b3JlKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQotICAgIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb25UaW1lKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmKTsKLQotICAgIEhhc2hNYXA8
UmVnaXN0cmFibGVEb21haW4sIFVuaXF1ZVJlZjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPj4gbV9y
ZXNvdXJjZVN0YXRpc3RpY3NNYXA7Ci0gICAgVmVjdG9yPE9wZXJhdGluZ0RhdGU+IG1fb3BlcmF0
aW5nRGF0ZXM7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJLaXQKLQotU1BFQ0lBTElaRV9UWVBF
X1RSQUlUU19CRUdJTihXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3RpY3NNZW1vcnlTdG9yZSkK
LSAgICBzdGF0aWMgYm9vbCBpc1R5cGUoY29uc3QgV2ViS2l0OjpSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUmIHN0b3JlKSB7IHJldHVybiBzdG9yZS5pc01lbW9yeVN0b3JlKCk7IH0KLVNQRUNJ
QUxJWkVfVFlQRV9UUkFJVFNfRU5EKCkKLQotI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCmluZGV4IDcwYjVhZmRhNTI2ZTk5MDliOTYyZDcx
MjEzZDg1YjYwYjUzNzE4MWQuLjRiZjg2YTZlMzZjOWM2ODQyZTQ4NDZkYWJmMTQ1Mjc3YjY5MTE1
ZmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuY3Bw
CkBAIC04MiwxOSArODIsNiBAQCBjb25zdCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiYgV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjptb25pdG9yZWREYXRhVAogICAgIHJldHVybiBk
YXRhVHlwZXM7CiB9CiAKLXZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXRO
b3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUpCi17Ci0gICAg
QVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigpKTsKLQotICAgIGlmIChpc0VwaGVtZXJhbCgpKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBwb3N0VGFzayhbdGhpcywgdmFsdWVdIHsKLSAgICAgICAgaWYg
KG1fc3RhdGlzdGljc1N0b3JlKQotICAgICAgICAgICAgbV9zdGF0aXN0aWNzU3RvcmUtPnNldE5v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQodmFsdWUpOwotICAgIH0pOwotfQot
CiB2b2lkIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVu
RGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgQVNTRVJUKFJ1bkxvb3A6OmlzTWFpbigp
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9X
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAppbmRleCA2
NjFiMTU2M2VjNjRiNjZlNzhmMWY4ZDU1NGM2ZDlkZjM3MzFhZTZiLi42NDFkOGE4ZGNiYWM2YWNh
YzcxNjY2ZjM0Zjg4MWM1ZTVjMDZhZmU3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oCkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQXJndW1lbnRD
b2RlcnMuaCIKICNpbmNsdWRlICJEZWNvZGVyLmgiCiAjaW5jbHVkZSAiRW5jb2Rlci5oIgorI2lu
Y2x1ZGUgIk1lc3NhZ2VSZWNlaXZlci5oIgogI2luY2x1ZGUgIlN0b3JhZ2VBY2Nlc3NTdGF0dXMu
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlJZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiV2Vic2l0
ZURhdGFUeXBlLmgiCkBAIC01MCw2ICs1MSwxMSBAQAogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKK25hbWVzcGFjZSBJUEMgeworY2xh
c3MgQ29ubmVjdGlvbjsKK2NsYXNzIERlY29kZXI7Cit9CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsK
IGNsYXNzIFJlc291cmNlUmVxdWVzdDsKIHN0cnVjdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOwpA
QCAtODcsNyArOTMsNyBAQCBzdHJ1Y3QgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3Ry
aWN0V2Vic2l0ZURhdGFGb3IgewogICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJuIGRv
bWFpbnNUb0RlbGV0ZUFsbENvb2tpZXNGb3IuaXNFbXB0eSgpICYmIGRvbWFpbnNUb0RlbGV0ZUFs
bEJ1dEh0dHBPbmx5Q29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRGVsZXRlQWxsTm9u
Q29va2llV2Vic2l0ZURhdGFGb3IuaXNFbXB0eSgpICYmIGRvbWFpbnNUb0VuZm9yY2VTYW1lU2l0
ZVN0cmljdEZvci5pc0VtcHR5KCk7IH0KIH07CiAKLWNsYXNzIFdlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRTYWZlUmVmQ291bnRlZDxXZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1Y3Rpb25UaHJlYWQ6Ok1haW4+IHsKK2Ns
YXNzIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSBmaW5hbCA6IHB1YmxpYyBUaHJlYWRT
YWZlUmVmQ291bnRlZDxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUsIFdURjo6RGVzdHJ1
Y3Rpb25UaHJlYWQ6Ok1haW4+LCBwdWJsaWMgSVBDOjpNZXNzYWdlUmVjZWl2ZXIgewogcHVibGlj
OgogICAgIHVzaW5nIFJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOwogICAgIHVzaW5nIFJlZ2lzdHJhYmxlRG9tYWluID0gV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW47CkBAIC0xNDIsNyArMTQ4LDYgQEAgcHVibGljOgogICAgIFN1c3BlbmRh
YmxlV29ya1F1ZXVlJiBzdGF0aXN0aWNzUXVldWUoKSB7IHJldHVybiBtX3N0YXRpc3RpY3NRdWV1
ZS5nZXQoKTsgfQogCiAgICAgdm9pZCBwb3B1bGF0ZU1lbW9yeVN0b3JlRnJvbURpc2soQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRTaG91bGRDbGFzc2lmeVJlc291
cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChib29sLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwogCiAgICAgdm9pZCBncmFudFN0b3JhZ2VBY2Nlc3MoY29uc3QgU3ViRnJhbWVEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgV2Vi
Q29yZTo6UGFnZUlkZW50aWZpZXIsIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biwgU3RvcmFn
ZUFjY2Vzc1Njb3BlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFJlcXVlc3RTdG9yYWdlQWNjZXNz
UmVzdWx0KT4mJik7CkBAIC0yMzQsOCArMjM5LDExIEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9p
ZCByZXN1bWUoKTsKICAgICAKICAgICBib29sIGlzRXBoZW1lcmFsKCkgY29uc3QgeyByZXR1cm4g
bV9pc0VwaGVtZXJhbCA9PSBXZWJDb3JlOjpSZXNvdXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVt
ZXJhbDo6WWVzOyB9OworICAgIHZvaWQgaXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFs
KENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpIHsgY29t
cGxldGlvbkhhbmRsZXIoaXNFcGhlbWVyYWwoKSk7IH0KICAgICB2b2lkIGluc2VydEV4cGlyZWRT
dGF0aXN0aWNGb3JUZXN0aW5nKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQgbnVt
YmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBp
c1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogCisgICAgdm9pZCBkaWRSZWNlaXZlTWVzc2Fn
ZShJUEM6OkNvbm5lY3Rpb24mLCBJUEM6OkRlY29kZXImKTsKKyAgICAKIHByaXZhdGU6CiAgICAg
ZXhwbGljaXQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlKE5ldHdvcmtTZXNzaW9uJiwg
Y29uc3QgU3RyaW5nJiwgU2hvdWxkSW5jbHVkZUxvY2FsaG9zdCwgV2ViQ29yZTo6UmVzb3VyY2VM
b2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWwpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbgpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZDA3
NDM3N2QxOTAzMTZhNzM1ZGFkMDQ4OWI4ZjIzMzQ1ODM5MmI1Ci0tLSAvZGV2L251bGwKKysrIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0
YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbgpAQCAtMCwwICsxLDc1IEBACisjIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisjCisjIFJlZGlzdHJpYnV0
aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAor
IyBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKKyMgYXJlIG1ldDoKKyMgMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisjIDIuICBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorIyAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorIyAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyMKKyMgVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJyBBTkQKKyMgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyMgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorIyBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMgQkUgTElBQkxFIEZPUgorIyBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BF
Q0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMCisjIERBTUFHRVMgKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SCisj
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5U
RVJSVVBUSU9OKSBIT1dFVkVSCisjIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksCisjIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFCisjIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisKKyNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJ
TkdfUFJFVkVOVElPTikKKworbWVzc2FnZXMgLT4gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlIHsKKyAgICBDbGVhclByZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYworICAgIENsZWFyVXNlckludGVyYWN0aW9u
KFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwor
ICAgIER1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkgLT4gKFN0cmluZyBkdW1wZWRTdGF0aXN0
aWNzKSBBc3luYworICAgIElzR3JhbmRmYXRoZXJlZChXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0YXJnZXREb21haW4pIC0+IChib29sIGlzR3JhbmRmYXRoZXJlZCkgQXN5bmMKKyAgICBJc1By
ZXZhbGVudFJlc291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikg
LT4gKGJvb2wgaXNQcmV2YWxlbnQpIEFzeW5jCisgICAgSXNWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc1ZlcnlQ
cmV2YWxlbnQpIEFzeW5jCisgICAgU2V0TGFzdFNlZW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVzb3VyY2VEb21haW4sIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKKyAgICBNZXJn
ZVN0YXRpc3RpY0ZvclRlc3RpbmcoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VE
b21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMSwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBi
b29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9u
LCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2
YWxlbnQsIHVpbnQ2NF90IGRhdGFSZWNvcmRzUmVtb3ZlZCkgLT4gKCkgQXN5bmMKKyAgICBJbnNl
cnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBy
ZXNvdXJjZURvbWFpbiwgdWludDY0X3QgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29s
IGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFS
ZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSAtPiAoKSBBc3luYworICAgIFNldFByZXZhbGVudFJl
c291cmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBB
c3luYworICAgIFNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYworICAgIElzUmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VwaGVtZXJhbCgpIC0+IChib29sIGlzRXBoZW1lcmFsKSBBc3luYworICAg
IEhhc0hhZFVzZXJJbnRlcmFjdGlvbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJj
ZURvbWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYworICAgIElzUmVsYXRp
b25zaGlwT25seUluRGF0YWJhc2VPbmNlKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkRv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRG9tYWluKSAtPiAoYm9vbCBoYWRV
c2VySW50ZXJhY3Rpb24pIEFzeW5jCisgICAgSXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+IChib29sIGlzUmVkaXJlY3Rp
bmdUbykgQXN5bmMKKyAgICBJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1YmZyYW1lVW5kZXIpIEFzeW5jCisgICAgSXNS
ZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1
YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFp
bikgLT4gKGJvb2wgaXNTdWJyZXNvdXJjZVVuZGVyKSBBc3luYworICAgIERvbWFpbklERXhpc3Rz
SW5EYXRhYmFzZShpbnQgZG9tYWluSUQpIC0+IChib29sIGV4aXN0cykgQXN5bmMKKyAgICBMb2dG
cmFtZU5hdmlnYXRpb24oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJh
bWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3Rl
bnRpYWxseUluaXRpYXRlZEJ5VXNlcikKKyAgICBMb2dVc2VySW50ZXJhY3Rpb24oV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCisgICAgUmVzZXRQ
YXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKCkgLT4gKCkgQXN5bmMKKyAgICBTY2hlZHVsZUNvb2tp
ZUJsb2NraW5nVXBkYXRlKCkgLT4gKCkgQXN5bmMKKyAgICBTY2hlZHVsZVN0YXRpc3RpY3NBbmRE
YXRhUmVjb3Jkc1Byb2Nlc3NpbmcoKSAtPiAoKSBBc3luYworICAgIFN0YXRpc3RpY3NEYXRhYmFz
ZUhhc0FsbFRhYmxlcygpIC0+IChib29sIGhhc0FsbFRhYmxlcykgQXN5bmMKKyAgICBTZXRHcmFu
ZGZhdGhlcmVkKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBib29s
IGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkgQXN5bmMKKyAgICBBZ2dyZWdhdGVkVGhpcmRQYXJ0eURh
dGEoKSAtPiAoVmVjdG9yPFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpU
aGlyZFBhcnR5RGF0YT4gdGhpcmRQYXJ0eURhdGEpIEFzeW5jCisgICAgU2V0R3JhbmRmYXRoZXJp
bmdUaW1lKFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKKyAgICBTZXRNYXhTdGF0aXN0aWNz
RW50cmllcyh1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCkgLT4gKCkgQXN5bmMKKyAgICBTZXRN
aW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoU2Vjb25kcyBzZWNvbmRzKSAtPiAo
KSBBc3luYworICAgIFNldFBydW5lRW50cmllc0Rvd25Ubyh1aW50NjRfdCBtYXhpbXVtRW50cnlD
b3VudCkgLT4gKCkgQXN5bmMKKyAgICBTZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAgIFNldE5vdGlmeVBh
Z2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKKyAg
ICBTZXRJc1J1bm5pbmdUZXN0KGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCisgICAgU2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShib29sIGRlYnVnTW9kZSkgLT4gKCkgQXN5bmMKKyAg
ICBTZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVz
b3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9t
YWluKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
cmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWlu
KSAtPiAoKSBBc3luYworICAgIFNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoKSBBc3luYworICAgIFNldFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RGcm9tKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291
cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFp
bikgLT4gKCkgQXN5bmMKKyAgICBTZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFNlY29uZHMg
c2Vjb25kcykgLT4gKCkgQXN5bmMKKyAgICBTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8oV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRUb3BGcmFt
ZVVuaXF1ZVJlZGlyZWN0RnJvbShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4pIC0+
ICgpIEFzeW5jCisgICAgTG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbihXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biB0b0RvbWFpbikgLT4gKCkgQXN5bmMKKyNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCisg
ICAgU2V0QXBwQm91bmREb21haW5zKEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+
IGFwcEJvdW5kRG9tYWlucykgLT4gKCkgQXN5bmMKKyNlbmRpZgorICAgIFNldEZpcnN0UGFydHlX
ZWJzaXRlRGF0YVJlbW92YWxNb2RlKGVudW06dWludDhfdCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZSBtb2RlKSAtPiAoKSBBc3luYworfQorCisjZW5kaWYKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuY3BwIGIv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKaW5kZXggMjZi
ZDEwNzE5OTRiM2Y4MjdiZDdkNTk3NDUzOWFmMTQ5YzE2MjJjYS4uYTM3NmUxOWUxOTFlMTRlNjEz
MTRmY2VjYTMwNWI5NmY1YWRlYjVhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAKQEAgLTUzNiwxOSArNTM2LDYgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6ZGVzdHJveVNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKQogfQogCiAj
aWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi12b2lkIE5ldHdvcmtQ
cm9jZXNzOjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsK
LSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNz
LT5kdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKHsgfSk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjp1cGRhdGVQ
cmV2YWxlbnREb21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBWZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zVG9CbG9jaywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRv
KiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAt
NTU2LDQ1ICs1NDMsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjp1cGRhdGVQcmV2YWxlbnREb21h
aW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQgc2VzcwogICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzR3JhbmRmYXRoZXJlZChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNHcmFu
ZGZhdGhlcmVkKGRvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzUHJldmFsZW50UmVz
b3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
ZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkg
ewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPmlzUHJldmFsZW50UmVzb3VyY2UoZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6
aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBS
ZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MtPmlzVmVyeVByZXZhbGVudFJlc291cmNlKGRvbWFpbiwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0K
IHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFnZUNhcEZvckNsaWVudFNpZGVDb29raWVzKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRzPiBzZWNvbmRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1
dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBA
IC02MDIsODQgKzU1MCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFnZUNhcEZvckNsaWVu
dFNpZGVDb29raWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkCiAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0R3JhbmRmYXRoZXJlZChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihz
ZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0g
c2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VM
b2FkU3RhdGlzdGljcy0+c2V0R3JhbmRmYXRoZXJlZChkb21haW4sIGlzR3JhbmRmYXRoZXJlZCwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0UHJldmFsZW50UmVzb3VyY2UoZG9tYWlu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVs
c2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFZlcnlQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpjbGVh
clByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vz
c2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNl
c3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MtPmNsZWFyUHJldmFsZW50UmVzb3VyY2UoZG9tYWluLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBp
ZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNjaGVkdWxl
Q29va2llQmxvY2tpbmdVcGRhdGUoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2NoZWR1bGVDbGVhckluTWVtb3J5
QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8V2Fs
bFRpbWU+IG1vZGlmaWVkU2luY2UsIFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcyBzaG91bGRH
cmFuZGZhdGhlciwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkg
ewpAQCAtNjk3LDI1NSArNTY3LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2NoZWR1bGVDbGVh
ckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQKICAgICB9CiB9
CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3Vt
bWFyeShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVj
dG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGE+JiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MtPmFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YShXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKHsgfSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdv
cmtQcm9jZXNzOjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Ci17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
Ci0gICAgICAgIHNlc3Npb24tPnJlc2V0Q05BTUVEb21haW5EYXRhKCk7Ci0gICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cmVzZXRQYXJhbWV0
ZXJzVG9EZWZhdWx0VmFsdWVzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAg
ZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAg
ICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vz
c2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkp
Ci0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zY2hlZHVsZVN0YXRpc3RpY3NB
bmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c3RhdGlzdGljc0RhdGFiYXNl
SGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0g
ICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zdGF0aXN0aWNzRGF0YWJhc2VIYXNB
bGxUYWJsZXMoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAg
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsK
LSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFS
ZWNvcmRzV2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0Tm90aWZ5
UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh2YWx1ZSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0
SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lv
bi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy0+c2V0SXNSdW5uaW5nVGVzdCh2YWx1ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAg
IH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U3ViZnJh
bWVVbmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9u
LT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLT5zZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oc3ViRnJhbWVEb21haW4sIHRv
cEZyYW1lRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UK
LSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAg
QVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
UmVkaXJlY3RlZEZyb20sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVk
VG8sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17
Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0g
ICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+
aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBkb21haW5S
ZWRpcmVjdGVkVG8sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxz
ZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1JlZ2lzdGVyZWRBc1N1YkZy
YW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5p
c1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWlu
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRf
Tk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9t
YWluKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1
YnJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAg
aWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRTdWJy
ZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9t
YWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkVG8sIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0VG8oc3VicmVzb3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRUbywg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBj
b21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBO
ZXR3b3JrUHJvY2Vzczo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkRnJvbSwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRv
KiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlRG9tYWluLCBkb21haW5SZWRpcmVjdGVkRnJv
bSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAg
ICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YnJlc291cmNlRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aXNSZWdpc3RlcmVkQXNT
dWJyZXNvdXJjZVVuZGVyKHN1YnJlc291cmNlRG9tYWluLCB0b3BGcmFtZURvbWFpbiwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFRvcEZyYW1lVW5pcXVlUmVk
aXJlY3RUbyh0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZFRvLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9w
RnJhbWVEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0g
ICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotICAgIAotICAgIAotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6c2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluLCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdv
cmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAg
ICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRMYXN0U2Vlbihkb21haW4sIHNlY29uZHMsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mg
PSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzLT5kb21haW5JREV4aXN0c0luRGF0YWJhc2UoZG9tYWluSUQsIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfQotfQotCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjptZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlv
biwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJl
ZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFS
ZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPm1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhkb21haW4sIHRvcEZyYW1lRG9tYWluMSwg
dG9wRnJhbWVEb21haW4yLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0aW9uLCBtb3N0UmVjZW50
VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFsZW50LCBpc1ZlcnlQcmV2
YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aW5zZXJ0RXhwaXJlZFN0
YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgZG9tYWluLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQs
IGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2ll
RGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhk
b21haW4sIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNlckludGVyYWN0aW9uLCBp
c1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1ByZXZhbGVudCwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6Z2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMpPiYmIGNv
bXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24g
PSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAtOTU2LDY3ICs1NzcsNiBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIENvbXBsZQogICAgIH0KIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nRnJh
bWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRhcmdldERvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9t
YWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc291cmNlRG9tYWluLCBib29sIGlzUmVkaXJl
Y3QsIGJvb2wgaXNNYWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50
TG9hZCwgYm9vbCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikKLXsKLSAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5sb2dGcmFtZU5hdmln
YXRpb24odGFyZ2V0RG9tYWluLCB0b3BGcmFtZURvbWFpbiwgc291cmNlRG9tYWluLCBpc1JlZGly
ZWN0LCBpc01haW5GcmFtZSwgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgd2FzUG90
ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwotICAgIH0gZWxzZQotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6bG9nVXNlckludGVyYWN0aW9u
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFp
biwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAg
IGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAg
ICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ1Vz
ZXJJbnRlcmFjdGlvbihkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAg
ICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmhhZFVzZXJJbnRlcmFjdGlvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4s
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0g
ICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAg
ICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VM
b2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+aGFz
SGFkVXNlckludGVyYWN0aW9uKGRvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzUmVs
YXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9u
LT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLT5pc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZShzdWJEb21haW4sIHRvcERv
bWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAg
ICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFyVXNlckludGVyYWN0aW9uKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChh
dXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAo
YXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRp
c3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmNsZWFyVXNlcklu
dGVyYWN0aW9uKGRvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBhdXRv
KiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKTsKQEAgLTEwNDAsODQgKzYwMCw2
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVz
b3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3Jr
U2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAg
cmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0R3JhbmRmYXRoZXJpbmdUaW1lKHNlY29uZHMsIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0
d29ya1Byb2Nlc3M6OnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgdWludDY0X3QgbWF4aW11bUVudHJ5Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdv
cmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAg
ICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRNYXhTdGF0aXN0aWNzRW50cmllcyhtYXhpbXVt
RW50cnlDb3VudCwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFT
U0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0K
LX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0TWluaW11bVRp
bWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKHNlY29uZHMsIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFBy
dW5lRW50cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IHBydW5l
VGFyZ2V0Q291bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkp
IHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5y
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzLT5zZXRQcnVuZUVudHJpZXNEb3duVG8ocHJ1bmVUYXJnZXRDb3VudCwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAg
ICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vz
czo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25I
YW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lv
bklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Np
b24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0
YXRpc3RpY3MtPnNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oc2Vjb25kcywgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBu
ZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAg
ICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNC
ZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwodmFsdWUsIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBlbmFi
bGVkKQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkKQEAgLTExMzEsMzEgKzYxMyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NMb2dUZXN0aW5nRXZlbnQoYm9vbCBlbmFibGVkKQogICAgIH0pOwogfQog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdNb2Rl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1Z01vZGUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lv
biA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0g
ICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGVidWdNb2RlKGRlYnVnTW9kZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAg
ICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7
Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRXBoZW1lcmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgY29uc3QKLXsKLSAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKCkpIHsKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPmlzRXBoZW1lcmFsKCkpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0g
ICAgfSBlbHNlCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgIGNvbXBsZXRpb25I
YW5kbGVyKGZhbHNlKTsKLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6cmVzZXRDYWNoZU1heEFn
ZUNhcEZvclByZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0
byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAg
LTExOTAsMTkgKzY0Nyw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OmRpZENvbW1pdENyb3NzU2l0
ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKFBBTDo6U2Vzc2lvbklEIHNlc3NpCiAgICAgfQogfQogCi12
b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8q
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5sb2dDcm9zc1NpdGVMb2Fk
V2l0aExpbmtEZWNvcmF0aW9uKGZyb21Eb21haW4sIHRvRG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpy
ZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKIHsKICAgICBpZiAoYXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNl
c3Npb24oc2Vzc2lvbklEKSkKQEAgLTEyMjAsMjAgKzY2NCw2IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3M6Omhhc0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFdl
YkNvcmU6CiAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzdWx0KTsKIH0KIAotI2lmIEVOQUJMRShB
UFBfQk9VTkRfRE9NQUlOUykKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldEFwcEJvdW5kRG9tYWlu
c0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBIYXNo
U2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiYmIGFwcEJvdW5kRG9tYWlucywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRv
KiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkgewotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0QXBwQm91bmRE
b21haW5zKFdURk1vdmUoYXBwQm91bmREb21haW5zKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0gICAgfQotICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci19Ci0jZW5kaWYKLQogdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJv
b2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQogewogICAgIGZvckVhY2hOZXR3b3JrU2Vzc2lvbihbZW5hYmxlZF0oYXV0byYgc2Vzc2lvbikg
ewpAQCAtMTI1MSw3ICs2ODEsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgVwogICAgIGNvbXBs
ZXRpb25IYW5kbGVyKCk7CiB9CiAKLXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFNob3VsZEVuYmxl
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdv
cmtQcm9jZXNzOjpzZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5m
b3JjZW1lbnRFbmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9u
KHNlc3Npb25JRCkpCiAgICAgICAgIHNlc3Npb24tPnNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJp
Y3RFbmZvcmNlbWVudChlbmFibGVkKTsKQEAgLTEyNjAsMTkgKzY5MCw2IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3Rp
bmcoUEFMOjpTZXNzCiAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGUgbW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPnNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKG1vZGUsIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgTmV0d29ya1By
b2Nlc3M6OnNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAo
YXV0byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3Mu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAppbmRleCA3
ODc3OTI3YTE3YzU1OTZlYjAzYmQ0YWNmNGQ1OGU0MThhYzhiYTIzLi41ZTJiZTcyMzY1ZWU4ZWU3
M2JiNTM1OTA1YTMyMGJhZWIyN2RkOTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCkBAIC0yMDIsNzcgKzIwMiwyOSBAQCBwdWJsaWM6CiAgICAg
dm9pZCBhZGRXZWJzaXRlRGF0YVN0b3JlKFdlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzJiYpOwog
CiAjaWYgRU5BQkxFKElOVEVMTElHRU5UX1RSQUNLSU5HX1BSRVZFTlRJT04pCi0gICAgdm9pZCBj
bGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBjbGVhclVzZXJJ
bnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgZGVsZXRlQW5kUmVzdHJpY3RXZWJz
aXRlRGF0YUZvclJlZ2lzdHJhYmxlRG9tYWlucyhQQUw6OlNlc3Npb25JRCwgT3B0aW9uU2V0PFdl
YnNpdGVEYXRhVHlwZT4sIFJlZ2lzdHJhYmxlRG9tYWluc1RvRGVsZXRlT3JSZXN0cmljdFdlYnNp
dGVEYXRhRm9yJiYsIGJvb2wgc2hvdWxkTm90aWZ5UGFnZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWluPiYpPiYmKTsKICAgICB2b2lkIGRlbGV0
ZUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBSZWdpc3RyYWJsZURvbWFpbiwgYm9v
bCBpbmNsdWRlSHR0cE9ubHlDb29raWVzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwot
ICAgIHZvaWQgZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJik7CiAgICAgdm9pZCB1cGRhdGVQcmV2YWxlbnRE
b21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFZlY3RvcjxSZWdp
c3RyYWJsZURvbWFpbj4mIGRvbWFpbnNUb0Jsb2NrLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwotICAgIHZvaWQgaXNHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZv
aWQgaXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGlzVmVy
eVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwogICAgIHZvaWQgc2V0QWdlQ2Fw
Rm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8U2Vjb25k
cz4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBpc1JlZ2lzdGVyZWRB
c1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWlu
JiwgY29uc3QgUmVkaXJlY3RlZFRvRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJik7Ci0gICAgdm9pZCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9u
SUQsIGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3VicmVz
b3VyY2VVbmRlcihQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25z
dCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAg
IHZvaWQgc2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
KTsKLSAgICB2b2lkIHNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCB1aW50
NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAg
ICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRQ
cmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0
VmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRQcnVuZUVu
dHJpZXNEb3duVG8oUEFMOjpTZXNzaW9uSUQsIHVpbnQ2NF90IHBydW5lVGFyZ2V0Q291bnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBoYWRVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9pZCBpc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNl
T25jZShQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkRvbWFpbiwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcERvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJik7CiAgICAgdm9pZCBoYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7
CiAgICAgdm9pZCBnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChWZWN0b3I8U3RyaW5nPiBkb21haW5zKT4mJik7Ci0gICAgdm9p
ZCBsb2dGcmFtZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IE5hdmlnYXRlZFRvRG9t
YWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwg
Ym9vbCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWlu
RnJhbWVEb2N1bWVudExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpOwot
ICAgIHZvaWQgbG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBUb3BGcmFt
ZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgcmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0
VmFsdWVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAg
IHZvaWQgc2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCwg
c3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgU2hvdWxkR3JhbmRmYXRoZXJT
dGF0aXN0aWNzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZ2V0UmVz
b3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1tYXJ5KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKFZlY3RvcjxXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRoaXJk
UGFydHlEYXRhPiYmKT4mJik7Ci0gICAgdm9pZCBzY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRl
KFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQg
c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc3RhdGlzdGljc0RhdGFi
YXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJv
b2wpPiYmKTsKICAgICB2b2lkIHNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2Vz
KFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwot
ICAgIHZvaWQgc2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0TGFzdFNlZW4oUEFMOjpT
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgU2Vjb25kcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6
OlNlc3Npb25JRCwgaW50IGRvbWFpbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYm
KTsKLSAgICB2b2lkIG1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4xLCBjb25zdCBUb3BGcmFtZURvbWFpbiYgdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RT
ZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVy
YWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1Zl
cnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVtb3ZlZCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIHVuc2lnbmVkIG51bWJl
ck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNT
Y2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldE1pbmltdW1UaW1lQmV0d2Vl
bkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQoUEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVzdChQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKFBBTDo6U2Vz
c2lvbklELCBib29sKTsKICAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dUZXN0
aW5nRXZlbnQoYm9vbCk7Ci0gICAgdm9pZCBzZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGVidWdN
b2RlKFBBTDo6U2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmZCk7Ci0gICAgdm9pZCBpc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoUEFM
OjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIGNvbnN0OwotICAg
IHZvaWQgc2V0U2hvdWxkQ2xhc3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwo
UEFMOjpTZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
Ci0gICAgdm9pZCBzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQs
IGNvbnN0IFN1YkZyYW1lRG9tYWluJiwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1l
RG9tYWluKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFRv
cEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNl
dFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVz
b3VyY2VEb21haW4mLCBjb25zdCBSZWRpcmVjdGVkVG9Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20o
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3Rl
ZEZyb21Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0
VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCwgU2Vjb25kcywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVEb21haW4mLCBjb25zdCBSZWRpcmVj
dGVkVG9Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgY29uc3QgUmVkaXJlY3RlZEZyb21Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpOwogICAgIHZvaWQgcmVnaXN0cmFibGVEb21haW5zV2l0aFdlYnNpdGVEYXRhKFBB
TDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vic2l0ZURhdGFUeXBlPiwgYm9vbCBzaG91bGROb3Rp
ZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
JiYpPiYmKTsKICAgICB2b2lkIGRpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVy
KFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZnJvbURvbWFpbiwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBPcHRpb25TZXQ8V2ViQ29yZTo6Q3Jvc3NT
aXRlTmF2aWdhdGlvbkRhdGFUcmFuc2Zlcjo6RmxhZz4sIFdlYlBhZ2VQcm94eUlkZW50aWZpZXIs
IFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyKTsKLSAgICB2b2lkIHNldENyb3NzU2l0ZUxvYWRXaXRo
TGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZnJvbURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgcmVzZXRDcm9zc1NpdGVMb2Fk
c1dpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNz
aW9uSUQsIGNvbnN0IFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJikgY29uc3Q7CiAgICAgdm9pZCBjbG9zZUlUUERhdGFiYXNlKFBBTDo6
U2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotI2lmIEVOQUJMRShBUFBf
Qk9VTkRfRE9NQUlOUykKLSAgICB2b2lkIHNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQsIEhhc2hTZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4+JiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0jZW5kaWYKICAgICB2b2lk
IHNldFNob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhib29sLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9k
ZShQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFNob3VsZEVuYmxlU2Ft
ZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6
OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYpOwotICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKKyAgICB2b2lkIHNldFNob3Vs
ZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
LCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4m
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eUhv
c3RDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFN0cmluZyYmIGZpcnN0UGFy
dHlIb3N0LCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmIGNuYW1lRG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNOQU1FRG9tYWlu
Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mJiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICNlbmRpZgotCiAgICAgdm9pZCBzZXRQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudEVuYWJsZWQoYm9vbCk7CiAgICAgYm9vbCBwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEVuYWJsZWQoKSBjb25zdDsKICAgICB2b2lkIHNldFByaXZhdGVDbGlja01lYXN1
cmVtZW50RGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBib29sKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4gYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCmluZGV4
IDYzN2UxNTlmMTg2MzkzYmVjNWNjMDVhYjViZDU3ODBiZThjNmZjZTQuLmIxMGFiZWNjNDBlZDJk
Zjg3ZGZlZWJlNGE2YTU1YTQzNGRhMjIyMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgpAQCAtNzksNzAgKzc5
LDIzIEBAIG1lc3NhZ2VzIC0+IE5ldHdvcmtQcm9jZXNzIExlZ2FjeVJlY2VpdmVyIHsKICAgICBQ
cmVjb25uZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJLaXQ6OldlYlBhZ2VQcm94
eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBhZ2VJZGVudGlmaWVyIHdlYlBh
Z2VJRCwgVVJMIHVybCwgU3RyaW5nIHVzZXJBZ2VudCwgZW51bTp1aW50OF90IFdlYkNvcmU6OlN0
b3JlZENyZWRlbnRpYWxzUG9saWN5IHN0b3JlZENyZWRlbnRpYWxzUG9saWN5LCBlbnVtOmJvb2wg
c3RkOjpvcHRpb25hbDxXZWJLaXQ6Ok5hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluPiBpc05hdmln
YXRpbmdUb0FwcEJvdW5kRG9tYWluLCBlbnVtOmJvb2wgV2ViS2l0OjpMYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7CiAKICNpZiBFTkFC
TEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICBDbGVhclByZXZhbGVudFJl
c291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgQ2xlYXJVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNv
dXJjZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+IChTdHJpbmcgZHVtcGVkU3RhdGlzdGljcykgQXN5
bmMKICAgICBTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZChQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGJvb2wgZW5hYmxlZCkKICAgICBTZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzTG9n
VGVzdGluZ0V2ZW50KGJvb2wgZW5hYmxlZCkKICAgICBVcGRhdGVQcmV2YWxlbnREb21haW5zVG9C
bG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBWZWN0b3I8V2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4+IGRvbWFpbnNUb0Jsb2NrKSAtPiAoKSBBc3luYwotICAgIElzR3Jh
bmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJvb2wgaXNHcmFuZGZhdGhlcmVkKSBBc3luYwotICAg
IElzUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChib29sIGlzUHJldmFsZW50KSBBc3lu
YwotICAgIElzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc1ZlcnlQ
cmV2YWxlbnQpIEFzeW5jCiAgICAgU2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMpIC0+ICgp
IEFzeW5jCi0gICAgU2V0TGFzdFNlZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgU2Vjb25kcyBzZWNvbmRzKSAtPiAo
KSBBc3luYwotICAgIE1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjEsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRvcEZyYW1lRG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50
ZXJhY3Rpb24sIFNlY29uZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5k
ZmF0aGVyZWQsIGJvb2wgaXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1aW50NjRf
dCBkYXRhUmVjb3Jkc1JlbW92ZWQpIC0+ICgpIEFzeW5jCi0gICAgSW5zZXJ0RXhwaXJlZFN0YXRp
c3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgdWludDY0X3QgbnVtYmVyT2ZPcGVyYXRpbmdEYXlz
UGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1
dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50KSAtPiAoKSBBc3luYwotICAgIFNl
dFByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0UHJldmFs
ZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBJc1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoYm9vbCBpc0VwaGVtZXJhbCkgQXN5bmMKLSAgICBIYWRVc2VySW50ZXJhY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYwotICAgIElzUmVsYXRpb25z
aGlwT25seUluRGF0YWJhc2VPbmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gc3ViRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0
b3BEb21haW4pIC0+IChib29sIGhhZFVzZXJJbnRlcmFjdGlvbikgQXN5bmMKICAgICBIYXNMb2Nh
bFN0b3JhZ2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiByZXNvdXJjZURvbWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYwog
ICAgIEdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkg
LT4gKFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMpIEFzeW5jCi0gICAgSXNSZWdpc3RlcmVkQXNSZWRp
cmVjdGluZ1RvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
ZGlyZWN0ZWRUb0RvbWFpbikgLT4gKGJvb2wgaXNSZWRpcmVjdGluZ1RvKSBBc3luYwotICAgIElz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgaXNTdWJmcmFtZVVuZGVyKSBBc3luYwot
ICAgIElzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKGJvb2wgaXNTdWJyZXNvdXJj
ZVVuZGVyKSBBc3luYwotICAgIERvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGludCBkb21haW5JRCkgLT4gKGJvb2wgZXhpc3RzKSBBc3luYwotICAgIExv
Z0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIHRhcmdldERvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9w
RnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHNvdXJjZURvbWFpbiwgYm9v
bCBpc1JlZGlyZWN0LCBib29sIGlzTWFpbkZyYW1lLCBTZWNvbmRzIGRlbGF5QWZ0ZXJNYWluRnJh
bWVEb2N1bWVudExvYWQsIGJvb2wgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpCi0gICAg
TG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVn
aXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgUmVzZXRQYXJh
bWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5
bmMKICAgICBTY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwgZW51bTpi
b29sIFdlYktpdDo6U2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVy
KSAtPiAoKSBBc3luYwotICAgIFNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwotICAgIFNjaGVkdWxlU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzUHJvY2Vzc2luZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5j
Ci0gICAgU3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCkgLT4gKGJvb2wgaGFzQWxsVGFibGVzKSBBc3luYwogICAgIFNldENhY2hlTWF4QWdlQ2Fw
Rm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBz
ZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldEdyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbiwgYm9v
bCBpc0dyYW5kZmF0aGVyZWQpIC0+ICgpIEFzeW5jCi0gICAgR2V0UmVzb3VyY2VMb2FkU3RhdGlz
dGljc0RhdGFTdW1tYXJ5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFZlY3RvcjxXZWJL
aXQ6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQYXJ0eURhdGE+IHRoaXJk
UGFydHlEYXRhKSBBc3luYwotICAgIFNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRNYXhTdGF0
aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHVpbnQ2NF90IG1heGltdW1F
bnRyeUNvdW50KSAtPiAoKSBBc3luYwotICAgIFNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNv
cmRzUmVtb3ZhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4g
KCkgQXN5bmMKLSAgICBTZXRQcnVuZUVudHJpZXNEb3duVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCkgLT4gKCkgQXN5bmMKLSAgICBTZXRTaG91
bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgU2V0Tm90aWZ5UGFnZXNX
aGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wg
dmFsdWUpIC0+ICgpIEFzeW5jCi0gICAgU2V0SXNSdW5uaW5nUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1Rlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlKSAtPiAoKSBBc3luYwot
ICAgIFNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBib29sIGRlYnVnTW9kZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRWZXJ5UHJldmFsZW50
UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRTdWJmcmFtZVVuZGVyVG9w
RnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJh
bWVEb21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9t
YWluKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
c3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9t
YWluKSAtPiAoKSBBc3luYwotICAgIFNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291
cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4p
IC0+ICgpIEFzeW5jCi0gICAgU2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJyZXNvdXJj
ZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4p
IC0+ICgpIEFzeW5jCi0gICAgU2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcykgLT4gKCkgQXN5bmMKLSAgICBTZXRUb3BG
cmFtZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNldFRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gdG9wRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGly
ZWN0ZWRGcm9tRG9tYWluKSAtPiAoKSBBc3luYwogICAgIFJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQ
cmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwog
ICAgIERpZENvbW1pdENyb3NzU2l0ZUxvYWRXaXRoRGF0YVRyYW5zZmVyKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gdG9Eb21haW4sIE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1Np
dGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiBuYXZpZ2F0aW9uRGF0YVRyYW5zZmVyLCBX
ZWJLaXQ6OldlYlBhZ2VQcm94eUlkZW50aWZpZXIgd2ViUGFnZVByb3h5SUQsIFdlYkNvcmU6OlBh
Z2VJZGVudGlmaWVyIHdlYlBhZ2VJRCkKLSAgICBTZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNv
cmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lz
dHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvRG9t
YWluKSAtPiAoKSBBc3luYwogICAgIFJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRp
b25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMKICAgICBE
ZWxldGVDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbiwgYm9vbCBpbmNsdWRlSHR0cE9ubHlDb29raWVzKSAt
PiAoKSBBc3luYwogICAgIEhhc0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKGJvb2wgaGFzSXNvbGF0
ZWRTZXNzaW9uKSBBc3luYwogICAgIENsb3NlSVRQRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklEKSAtPiAoKSBBc3luYwotI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKLSAgICBT
ZXRBcHBCb3VuZERvbWFpbnNGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4gYXBwQm91bmRE
b21haW5zKSAtPiAoKSBBc3luYwotI2VuZGlmCiAgICAgU2V0U2hvdWxkRG93bmdyYWRlUmVmZXJy
ZXJGb3JUZXN0aW5nKGJvb2wgZW5hYmxlZCkgLT4gKCkgQXN5bmMKICAgICBTZXRUaGlyZFBhcnR5
Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTp1aW50OF90
IFdlYkNvcmU6OlRoaXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUgYmxvY2tpbmdNb2RlKSAtPiAo
KSBBc3luYwotICAgIFNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOmJvb2wgV2ViQ29yZTo6U2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCkgLT4gKCkgQXN5bmMKLSAgICBTZXRG
aXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVt
b3ZhbE1vZGUgbW9kZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06
Ym9vbCBXZWJDb3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkKSAt
PiAoKSBBc3luYwogICAgIFNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikg
LT4gKCkgQXN5bmMKICAgICBTZXRGaXJzdFBhcnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFN0cmluZyBmaXJzdFBhcnR5SG9zdCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gY25hbWVEb21haW4pIC0+ICgpIEFzeW5jCiAgICAgU2V0VGhpcmRQ
YXJ0eUNOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNv
cmU6OlJlZ2lzdHJhYmxlRG9tYWluIGRvbWFpbikgLT4gKCkgQXN5bmMKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Nlc3Npb24uY3BwIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAKaW5kZXggYjAxMWE1OGJhMGRh
NWMwNmY0YjhlY2NkOWU4YTQ4YmEwNmVlMGQ5Yy4uMjg0OWE0NzEwMGJjYWM1NmNjOTlhMzY4MGUy
Mzk2YzdjYWI1ZmFlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9O
ZXR3b3JrU2Vzc2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3
b3JrU2Vzc2lvbi5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlICJXZWJQYWdlUHJveHku
aCIKICNpbmNsdWRlICJXZWJQYWdlUHJveHlNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlByb2Nl
c3NQcm94eS5oIgorI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3Nh
Z2VzLmgiCiAjaW5jbHVkZSAiV2ViU1dPcmlnaW5TdG9yZS5oIgogI2luY2x1ZGUgIldlYlNvY2tl
dFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3JlL0Nvb2tpZUphci5oPgpAQCAtMTg5LDYgKzE5MCw3
IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OmRlc3Ryb3lSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjCiAgICAgICAgIHJldHVybiBjb21wbGV0aW9uSGFu
ZGxlcigpOwogCiAgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5kaWREZXN0cm95TmV0d29y
a1Nlc3Npb24oV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIG1fbmV0d29ya1Byb2Nl
c3MtPnJlbW92ZU1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fc2Vzc2lvbklELnRvVUludDY0KCkp
OwogICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IG51bGxwdHI7CiB9CiAjZW5kaWYKQEAg
LTIzMSw2ICsyMzMsNyBAQCB2b2lkIE5ldHdvcmtTZXNzaW9uOjpzZXRSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzRW5hYmxlZChib29sIGVuYWJsZSkKICAgICAgICAgcmV0dXJuOwogCiAgICAgbV9yZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpjcmVh
dGUoKnRoaXMsIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljc0RpcmVjdG9yeSwgbV9zaG91bGRJbmNs
dWRlTG9jYWxob3N0SW5SZXNvdXJjZUxvYWRTdGF0aXN0aWNzLCAobV9zZXNzaW9uSUQuaXNFcGhl
bWVyYWwoKSA/IFJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpZZXMgOiBSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbDo6Tm8pKTsKKyAgICBtX25ldHdvcmtQcm9j
ZXNzLT5hZGRNZXNzYWdlUmVjZWl2ZXIoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6bWVzc2FnZVJlY2VpdmVyTmFtZSgpLCBtX3Nlc3Npb25JRC50b1VJbnQ2NCgpLCAq
bV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKTsKICAgICBpZiAoIW1fc2Vzc2lvbklELmlzRXBoZW1l
cmFsKCkpCiAgICAgICAgIG1fcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+cG9wdWxhdGVNZW1vcnlT
dG9yZUZyb21EaXNrKFtdIHsgfSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCmluZGV4IGNhMWJmMTBkOGYyNjky
MzY1ZDM1NzE5YjczYzQwMzE4OTA2ZWJhZWUuLmY4Yzg2NTlmZTRlMTdmMTJmNjBlMzUyYjY2MjU2
OWQ1NWYzZGJiMGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL05ldHdvcmsv
TmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcApAQCAtNjAsNiArNjAsNyBAQAogI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eU1lc3NhZ2VzLmgi
CiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSAi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJV
c2VyQ29udGVudENvbnRyb2xsZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYnNpdGVEYXRhLmgiCiAj
aW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oIgpAQCAtNjEzLDggKzYxNCw4IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6ZHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBDCiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKHsgfSk7CiAg
ICAgICAgIHJldHVybjsKICAgICB9Ci0gICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6RHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3Moc2Vzc2lvbklE
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworCisgICAgc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkR1bXBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6dXBkYXRlUHJldmFsZW50
RG9tYWluc1RvQmxvY2tDb29raWVzRm9yKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
VmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiYgZG9tYWluc1RvQmxvY2ssIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTYzOSw3ICs2NDAsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBSZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNQcmV2YWxlbnRSZXNvdXJj
ZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpJc1ByZXZhbGVudFJlc291cmNlKHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5Ojppc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTY0OSw3ICs2
NTAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29ucwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNWZXJ5
UHJldmFsZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNWZXJ5UHJldmFsZW50UmVzb3VyY2UocmVzb3Vy
Y2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0
KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJlc291cmNl
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291
cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CkBAIC02NTksNyArNjYwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFIKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldFByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFByZXZhbGVudFJlc291cmNl
KHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50
b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcmV2YWxlbnRS
ZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjY5LDcgKzY3MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9k
ZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpTZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShyZXNvdXJjZURvbWFp
biksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VmVyeVByZXZhbGVudFJlc291cmNlKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNl
RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC02NzksNyArNjgwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRWZXJ5UHJldmFs
ZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb24KICAgICAgICAgcmV0dXJu
OwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRWZXJ5UHJldmFsZW50UmVz
b3VyY2UocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lv
bklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldExhc3RT
ZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJl
c291cmNlRG9tYWluLCBTZWNvbmRzIGxhc3RTZWVuLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC02ODksNyArNjkwLDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRMYXN0U2VlbihzZXNzaW9uSUQsIHJl
c291cmNlRG9tYWluLCBsYXN0U2VlbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZTo6U2V0TGFzdFNlZW4ocmVzb3VyY2VEb21haW4sIGxhc3RTZWVuKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5Ojpkb21haW5JREV4aXN0c0luRGF0YWJhc2UoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBpbnQgZG9tYWluSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCkBAIC02OTksMTcgKzcwMCwxNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGludAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShzZXNz
aW9uSUQsIGRvbWFpbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpE
b21haW5JREV4aXN0c0luRGF0YWJhc2UoZG9tYWluSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mIHRvcEZyYW1lRG9tYWluMSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluMiwgU2Vjb25kcyBsYXN0U2VlbiwgYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIFNlY29u
ZHMgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc0dyYW5kZmF0aGVyZWQsIGJvb2wg
aXNQcmV2YWxlbnQsIGJvb2wgaXNWZXJ5UHJldmFsZW50LCB1bnNpZ25lZCBkYXRhUmVjb3Jkc1Jl
bW92ZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsK
LSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpNZXJnZVN0
YXRpc3RpY0ZvclRlc3Rpbmcoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21h
aW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RS
ZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVy
eVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpNZXJnZVN0YXRpc3RpY0ZvclRlc3RpbmcocmVzb3VyY2VEb21haW4sIHRv
cEZyYW1lRG9tYWluMSwgdG9wRnJhbWVEb21haW4yLCBsYXN0U2VlbiwgaGFkVXNlckludGVyYWN0
aW9uLCBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBpc0dyYW5kZmF0aGVyZWQsIGlzUHJldmFs
ZW50LCBpc1ZlcnlQcmV2YWxlbnQsIGRhdGFSZWNvcmRzUmVtb3ZlZCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIHVu
c2lnbmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgYm9vbCBoYWRVc2VySW50ZXJhY3Rp
b24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVEYXRhUmVtb3ZhbCwgYm9vbCBpc1By
ZXZhbGVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQog
ewotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Okluc2Vy
dEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4sIG51
bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNlckludGVyYWN0aW9uLCBpc1NjaGVkdWxl
ZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1ByZXZhbGVudCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3Rpbmco
cmVzb3VyY2VEb21haW4sIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwgaGFkVXNlckludGVy
YWN0aW9uLCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBpc1ByZXZhbGVu
dCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURv
bWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAt
NzE5LDcgKzcyMCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xlYXJQcmV2YWxlbnRS
ZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6Q2xlYXJQcmV2YWxlbnRSZXNvdXJjZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpDbGVhclByZXZhbGVudFJlc291
cmNlKHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25J
RC50b1VJbnQ2NCgpKTsKIH0KICAgICAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1
bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTcyOSw3ICs3MzAsNyBA
QCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAot
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNjaGVkdWxl
Q29va2llQmxvY2tpbmdVcGRhdGUoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpTY2hlZHVsZUNvb2tpZUJsb2NraW5nVXBkYXRlKCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8V2FsbFRpbWU+IG1vZGlmaWVkU2luY2Us
IFNob3VsZEdyYW5kZmF0aGVyU3RhdGlzdGljcyBzaG91bGRHcmFuZGZhdGhlciwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzQ5LDcgKzc1MCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2NoZWR1bGVT
dGF0aXN0aWNzQW5kRGF0YVJlY29yZHNQcm9jZXNzaW5nKHNlc3Npb25JRCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0YVJlY29y
ZHNQcm9jZXNzaW5nKCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9V
SW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c3RhdGlzdGljc0RhdGFi
YXNlSGFzQWxsVGFibGVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTc1OSw3ICs3NjAsNyBAQCB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlN0YXRpc3RpY3NE
YXRhYmFzZUhhc0FsbFRhYmxlcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcygpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmxvZ1VzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzY5LDcgKzc3MCw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgUmVnCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpMb2dVc2VySW50ZXJhY3Rp
b24oc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6TG9nVXNlckludGVyYWN0aW9uKHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpoYXNIYWRVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VEb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03NzksMTIgKzc4
MCwxMiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0CiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SGFk
VXNlckludGVyYWN0aW9uKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Okhhc0hhZFVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZURv
bWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRh
YmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFp
biYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewotICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OklzUmVsYXRpb25zaGlwT25s
eUluRGF0YWJhc2VPbmNlKHNlc3Npb25JRCwgc3ViRG9tYWluLCB0b3BEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVsYXRpb25zaGlwT25seUluRGF0YWJh
c2VPbmNlKHN1YkRvbWFpbiwgdG9wRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciks
IHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpj
bGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzk0LDcgKzc5NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6Q2xlYXJVc2VySW50ZXJhY3Rpb24oc2Vzc2lv
bklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6Q2xlYXJVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6Omhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0
IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTgyNCw3ICs4MjUsNyBAQCB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OnNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFRpbWVUb0xpdmVVc2Vy
SW50ZXJhY3Rpb24oc2Vzc2lvbklELCBzZWNvbmRzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpTZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKHNlY29uZHMpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04MzQsNyArODM1LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVT
Y2FubmVkKFBBTDo6U2Vzc2lvbkkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXROb3RpZnlQYWdl
c1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHNlc3Npb25JRCwgdmFsdWUpLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRz
V2VyZVNjYW5uZWQodmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklE
LnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzUnVubmlu
Z1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9v
bCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpA
QCAtODQ0LDcgKzg0NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0SXNSdW5uaW5n
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNzaW9uSUQKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChzZXNzaW9uSUQs
IHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRJc1J1bm5p
bmdUZXN0KHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJ
bnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJmcmFtZVVuZGVy
VG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFt
ZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpA
QCAtODU0LDcgKzg1NSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3ViZnJhbWVV
bmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKHNlc3Npb25JRCwgc3ViRnJh
bWVEb21haW4sIHRvcEZyYW1lRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpTZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oc3ViRnJhbWVEb21haW4sIHRv
cEZyYW1lRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJ
bnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlZ2lzdGVyZWRBc1Jl
ZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgZG9tYWluUmVkaXJlY3RlZEZyb20sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21h
aW5SZWRpcmVjdGVkVG8sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCkBAIC04NjQsNyArODY1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpp
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELAogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OklzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhzZXNzaW9uSUQs
IGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhkb21h
aW5SZWRpcmVjdGVkRnJvbSwgZG9tYWluUmVkaXJlY3RlZFRvKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5Ojppc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29s
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg3NCw3ICs4NzUsNyBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKHNlc3Npb25JRCwgc3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIo
c3ViRnJhbWVEb21haW4sIHRvcEZyYW1lRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
ciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODg0LDcgKzg4NSw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmRlclRvcEZyYW1lRG9tYWluKFBBTDo6U2Vzc2lv
bklEIHNlc3NpCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3VicmVzb3VyY2VVbmRlclRvcEZy
YW1lRG9tYWluKHNlc3Npb25JRCwgc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluKSwg
V1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRTdWJyZXNvdXJjZVVuZGVy
VG9wRnJhbWVEb21haW4oc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluKSwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VE
b21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTg5NCw3ICs4OTUs
NyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VV
bmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQogICAg
IAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OklzUmVn
aXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihzZXNzaW9uSUQsIHN1YnJlc291cmNlRG9tYWluLCB0
b3BGcmFtZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNS
ZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKHN1YnJlc291cmNlRG9tYWluLCB0b3BGcmFtZURv
bWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7
CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdFRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHN1YnJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJl
Y3RlZFRvLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC05MDQsNyArOTA1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJyZXNvdXJj
ZVVuaXF1ZVJlZGlyZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbkkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc2Vzc2lvbklELCBzdWJyZXNv
dXJjZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZFRvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlOjpTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0VG8oc3VicmVzb3VyY2VE
b21haW4sIGRvbWFpblJlZGlyZWN0ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBz
ZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkRnJvbSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtOTE0LDcgKzkxNSw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0U3VicmVzb3VyY2VVbmlxdWVSZWRp
cmVjdEZyb20oc2Vzc2lvbklELCBzdWJyZXNvdXJjZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZEZy
b20pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RGcm9tKHN1YnJlc291cmNlRG9tYWluLCBkb21haW5SZWRpcmVjdGVkRnJv
bSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9
CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRv
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZy
YW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZFRvLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05MjQsNyAr
OTI1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGly
ZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELAogICAgICAgICByZXR1cm47CiAgICAgfQog
ICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNl
dFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhzZXNzaW9uSUQsIHRvcEZyYW1lRG9tYWluLCBkb21h
aW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNl
dFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyh0b3BGcmFtZURvbWFpbiwgZG9tYWluUmVkaXJlY3Rl
ZFRvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0
RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRG
cm9tLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05
MzQsNyArOTM1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1
ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShzZXNzaW9uSUQsIHRvcEZyYW1lRG9t
YWluLCBkb21haW5SZWRpcmVjdGVkRnJvbSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
KyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6U2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdEZyb20odG9wRnJhbWVEb21haW4sIGRv
bWFpblJlZGlyZWN0ZWRGcm9tKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25J
RC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc0dyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2VEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCkBAIC05NDQsNyArOTQ1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpp
c0dyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3QKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc0dyYW5kZmF0aGVyZWQoc2Vzc2lvbklELCByZXNvdXJjZURv
bWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNHcmFuZGZhdGhl
cmVkKHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25J
RC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZh
dGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IHJlc291cmNlRG9tYWluLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtOTU0LDcgKzk1NSw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJlZChz
ZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCBpc0dyYW5kZmF0aGVyZWQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldEdyYW5kZmF0aGVyZWQocmVzb3VyY2VEb21haW4s
IGlzR3JhbmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQu
dG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVxdWVzdFN0b3Jh
Z2VBY2Nlc3NDb25maXJtKFdlYlBhZ2VQcm94eUlkZW50aWZpZXIgcGFnZUlELCBGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHN1YkZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21haW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05ODUsNyArOTg2LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1h
cnkoUEFMOjpTZXNzaW9uSUQgc2UKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkdldFJlc291cmNlTG9hZFN0
YXRpc3RpY3NEYXRhU3VtbWFyeShzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OkFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0YSgpLCBXVEZNb3ZlKGNvbXBsZXRp
b25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMDE1LDcgKzEwMTYsNyBAQCB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyaW5nVGltZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIFNlY29uZAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldEdyYW5kZmF0aGVyaW5nVGlt
ZShzZXNzaW9uSUQsIHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmU6OlNldEdyYW5kZmF0aGVyaW5nVGltZShzZWNvbmRzKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHNp
emVfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQpAQCAtMTAyNSw3ICsxMDI2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRNYXhTdGF0aXN0aWNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHNp
emUKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldE1heFN0YXRpc3RpY3NFbnRyaWVzKHNlc3Npb25JRCwg
bWF4aW11bUVudHJ5Q291bnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6
OlNldE1heFN0YXRpc3RpY3NFbnRyaWVzKG1heGltdW1FbnRyeUNvdW50KSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwMzUsNyArMTAzNiw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1v
dmFsKFBBTDo6U2Vzc2lvbklECiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0TWluaW11bVRpbWVC
ZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKHNlc3Npb25JRCwgc2Vjb25kcyksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklE
LnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFBydW5lRW50
cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHNpemVfdCBwcnVuZVRhcmdldENv
dW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0x
MDQ1LDcgKzEwNDYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFBydW5lRW50cmll
c0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIHNpemVfdAogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2V0UHJ1bmVFbnRyaWVzRG93blRvKHNlc3Npb25JRCwgcHJ1bmVUYXJnZXRDb3VudCksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UHJ1bmVFbnRyaWVzRG93blRv
KHBydW5lVGFyZ2V0Q291bnQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklE
LnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENs
YXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQpAQCAtMTA1NSw3ICsxMDU2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQQUwK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURh
dGFSZWNvcmRzUmVtb3ZhbChzZXNzaW9uSUQsIHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpTZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNv
cmRzUmVtb3ZhbCh2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQu
dG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgZGVi
dWdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC0xMDY1LDcgKzEwNjYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFJlc291cmNl
TG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQgc2VzcwogICAgICAgICByZXR1
cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29y
a1Byb2Nlc3M6OlNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoc2Vzc2lvbklELCBk
ZWJ1Z01vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUoZGVidWdNb2RlKSwgV1RGTW92ZShjb21wbGV0aW9u
SGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5Ojppc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQpAQCAtMTA3NSw3ICsxMDc2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1Jl
c291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICAg
ICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6
Ok5ldHdvcmtQcm9jZXNzOjpJc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwoc2Vzc2lv
bklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NFcGhlbWVyYWwoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Np
b25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldENh
Y2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTA4
NSw5ICsxMDg2LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXNldENhY2hlTWF4QWdl
Q2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbkkKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpSZXNldENhY2hlTWF4QWdlQ2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKHNlc3Npb25JRCks
IFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFi
bGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0pOworICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlJlc2V0Q2FjaGVNYXhBZ2VDYXBG
b3JQcmV2YWxlbnRSZXNvdXJjZXMoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxl
cikpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0UGFyYW1ldGVyc1RvRGVm
YXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwOTcsOSArMTA5Niw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRQYXJhbWV0ZXJzVG9E
ZWZhdWx0VmFsdWVzKHNlc3Npb25JRCksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwotICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpSZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNo
b3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCkBAIC0xMTA5LDkgKzExMDYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNj
aGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQgc2VzcwogICAg
ICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpO
ZXR3b3JrUHJvY2Vzczo6U2NoZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChzZXNzaW9u
SUQsIHsgfSwgc2hvdWxkR3JhbmRmYXRoZXIpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICB9KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KHNlc3Npb25JRCwgeyB9
LCBzaG91bGRHcmFuZGZhdGhlciksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAog
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dUZXN0aW5nRXZlbnQoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBTdHJpbmcmIGV2ZW50KQpAQCAtMTE2Miw3ICsxMTU3LDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9u
Rm9yVGVzdGluZyhQQUw6OlNlc3MKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRDcm9zc1NpdGVM
b2FkV2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhzZXNzaW9uSUQsIGZyb21Eb21haW4sIHRv
RG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpMb2dDcm9zc1Np
dGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKGZyb21Eb21haW4sIHRvRG9tYWluKSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpyZXNldENyb3NzU2l0ZUxvYWRzV2l0aExpbmtEZWNvcmF0aW9uRm9y
VGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEyMTUsOSArMTIxMCw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6aGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnCiAjaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzZXRBcHBCb3VuZERvbWFpbnNGb3JSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgSGFzaFNldDxSZWdpc3RyYWJsZURvbWFp
bj4mIGFwcEJvdW5kRG9tYWlucywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3Moc2Vzc2lv
bklELCBhcHBCb3VuZERvbWFpbnMpLCBbY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKV0oKSBtdXRhYmxlIHsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZTo6U2V0QXBwQm91bmREb21haW5zKGFwcEJvdW5kRG9tYWlucyksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAjZW5k
aWYKIApAQCAtMTI1Miw5ICsxMjQ1LDkgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRU
aGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb24KICAgICB9
KTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmJsZVNhbWVTaXRl
U3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2Vi
Q29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQgZW5hYmxlZCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGlu
ZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3Jj
ZW1lbnRFbmFibGVkIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKIHsKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5n
KHNlc3Npb25JRCwgZW5hYmxlZCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTaG91bGRFbmFi
bGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhzZXNzaW9uSUQsIGVuYWJsZWQp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUgbW9k
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTI2
NCw3ICsxMjU3LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRGaXJzdFBhcnR5V2Vi
c2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpTZXMKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6
OlNldEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhzZXNzaW9uSUQs
IG1vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldEZpcnN0UGFy
dHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlKG1vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFRvU2FtZVNpdGVTdHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKaW5kZXggNWM5YzQ1M2RjYzRk
NTg2MThmODU2OTFhMDRiMTU1NzViNWEzYmNjOS4uNGQwODY4ZTk3YzgxNDNlNTc1OTJjMTFiOThk
ODI1Y2E4ZTQwMjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29y
ay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0
d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmgKQEAgLTE5OSw3ICsxOTksNyBAQCBwdWJsaWM6CiAj
ZW5kaWYKICAgICB2b2lkIHNldFNob3VsZERvd25ncmFkZVJlZmVycmVyRm9yVGVzdGluZyhib29s
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nTW9kZShQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tp
ZUJsb2NraW5nTW9kZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNl
dFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNz
aW9uSUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OlNhbWVT
aXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwogICAgIHZvaWQgc2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9k
ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHNldFRvU2FtZVNpdGVT
dHJpY3RDb29raWVzRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0Rmlyc3RQ
YXJ0eUhvc3RDTkFNRURvbWFpbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN0cmlu
ZyYgZmlyc3RQYXJ0eUhvc3QsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBjbmFtZURvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJQ
YWdlUHJveHkuY3BwCmluZGV4IGFmYjM3NDJlOTIxMGIxOWRiNGI0MTQ1MjgxMjRhNGMxYmZhNTZl
YjMuLjIwNjJkOTk1OTRlNjExMzQ4NWZiZjk5YjZkNmM3OTdlNDdiYjQ3NmQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBhZ2VQcm94eS5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcApAQCAtMTQyLDYgKzE0Miw3IEBACiAjaW5j
bHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvdGVjdGlvblNwYWNlLmgi
CiAjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmgiCisjaW5jbHVkZSAi
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJV
UkxTY2hlbWVIYW5kbGVyLmgiCiAjaW5jbHVkZSAiV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJv
eHkuaCIKICNpbmNsdWRlICJXZWJWaWV3RGlkTW92ZVRvV2luZG93T2JzZXJ2ZXIuaCIKQEAgLTU1
NjgsNyArNTU2OSw3IEBAIHZvaWQgV2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRpb24oY29u
c3QgV2ViRnJhbWVQcm94eSYgZnJhbWUsIGNvbnN0IFVSTCYgcGFnCiAgICAgaWYgKHRhcmdldEhv
c3QuaXNFbXB0eSgpIHx8IG1haW5GcmFtZUhvc3QuaXNFbXB0eSgpIHx8IHRhcmdldEhvc3QgPT0g
c291cmNlVVJMLmhvc3QoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2Vic2l0ZURhdGFTdG9y
ZSgpLm5ldHdvcmtQcm9jZXNzKCkuc2VuZChNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkxvZ0Zy
YW1lTmF2aWdhdGlvbihtX3dlYnNpdGVEYXRhU3RvcmUtPnNlc3Npb25JRCgpLCBSZWdpc3RyYWJs
ZURvbWFpbiB7IHRhcmdldFVSTCB9LCBSZWdpc3RyYWJsZURvbWFpbiB7IHBhZ2VVUkwgfSwgUmVn
aXN0cmFibGVEb21haW4geyBzb3VyY2VVUkwgfSwgaXNSZWRpcmVjdCwgZnJhbWUuaXNNYWluRnJh
bWUoKSwgTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1h
aW5GcmFtZVRpbWVzdGFtcCwgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpLCAwKTsKKyAg
ICB3ZWJzaXRlRGF0YVN0b3JlKCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkxvZ0ZyYW1lTmF2aWdhdGlvbihSZWdpc3RyYWJs
ZURvbWFpbiB7IHRhcmdldFVSTCB9LCBSZWdpc3RyYWJsZURvbWFpbiB7IHBhZ2VVUkwgfSwgUmVn
aXN0cmFibGVEb21haW4geyBzb3VyY2VVUkwgfSwgaXNSZWRpcmVjdCwgZnJhbWUuaXNNYWluRnJh
bWUoKSwgTW9ub3RvbmljVGltZTo6bm93KCkgLSBtX2RpZEZpbmlzaERvY3VtZW50TG9hZEZvck1h
aW5GcmFtZVRpbWVzdGFtcCwgd2FzUG90ZW50aWFsbHlJbml0aWF0ZWRCeVVzZXIpLCBzZXNzaW9u
SUQoKS50b1VJbnQ2NCgpKTsKIH0KICNlbmRpZgogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcCBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCmluZGV4IDcxY2Y5
MjA3ZWZkOWNhMjk1YWI4OTBkNjc2ZTJkMzlkNDkyZDY2NTguLmU2ODA2MzMzMGViNTllNDBkOTEw
YmQ2MmVhMzNmZWY5MDJhNmFkMzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwCkBAIC00Niw2ICs0Niw3IEBA
CiAjaW5jbHVkZSAiV2ViUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Bv
b2wuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNs
dWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUg
IldlYnNpdGVEYXRhLmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGFTdG9yZUNsaWVudC5oIgogI2lu
Y2x1ZGUgIldlYnNpdGVEYXRhU3RvcmVQYXJhbWV0ZXJzLmgiCkBAIC05MDIsNyArOTAzLDcgQEAg
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjppc1ByZXZhbGVudFJlc291cmNlKGNvbnN0IFVSTCYgdXJs
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2kKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwogICAgIAotICAgIGlmICh1cmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgdXJsLmlzRW1wdHkoKSkg
eworICAgIGlmICh1cmwucHJvdG9jb2xJc0Fib3V0KCkgfHwgdXJsLmlzRW1wdHkoKSB8fCAhcmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoKSkgewogICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cihmYWxzZSk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBAIC0xMzk2LDcgKzEzOTcsNyBAQCB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NTaG91bGRFbmJs
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZQogICAgIGF1dG8gZmxhZyA9IGVuYWJsZWQgPyBXZWJDb3Jl
OjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6WWVzIDogV2ViQ29yZTo6U2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQ6Ok5vOwogCiAgICAgYXV0byBjYWxsYmFja0FnZ3Jl
Z2F0b3IgPSBDYWxsYmFja0FnZ3JlZ2F0b3I6OmNyZWF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7Ci0gICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRTaG91bGRFbmJsZVNhbWVTaXRlU3RyaWN0
RW5mb3JjZW1lbnRGb3JUZXN0aW5nKG1fc2Vzc2lvbklELCBmbGFnLCBbY2FsbGJhY2tBZ2dyZWdh
dG9yXSB7IH0pOworICAgIG5ldHdvcmtQcm9jZXNzKCkuc2V0U2hvdWxkRW5hYmxlU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcobV9zZXNzaW9uSUQsIGZsYWcsIFtjYWxsYmFja0Fn
Z3JlZ2F0b3JdIHsgfSk7CiB9CiAKIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0ZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhi
b29sIGVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxl
cikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBi
eHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmlu
ZGV4IGQyOWZkOTFjZjQ0NmVjNzk1NjUyODU0M2NmYTMwYTMyNDIxM2RlM2YuLmM1NGZiMWRjMjgw
OTYwYzc2MDk1Y2I1NjYyZmIwMDliZDIwZTk4NmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJL
aXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI1OCw2ICsxMjU4LDcgQEAKIAkJNUNF
OTEyMTEyMjkzQzI3ODAwNUJFQzc4IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCBpbiBTb3Vy
Y2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTkxMjBGMjI5M0MyNUYw
MDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgKi87IH07CiAJCTVDRTkxMjEyMjI5
M0MyNzgwMDVCRUM3OCAvKiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0U5MTIwRjIyOTNDMjVGMDA1QkVDNzgg
LyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwICovOyB9OwogCQk1Q0U5MTIxNDIyOTNDMjgwMDA1
QkVDNzggLyogV0tNYWluLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA1Q0U5MTIwQjIyOTNDMUUwMDA1QkVDNzggLyogV0tNYWluLmggKi87IHNldHRpbmdz
ID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNUNFRjFEMEQyNzg2MUE4MjAw
QjVENzlDIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1Q0VGMUQw
QzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNjMxMDhGOTYxRjk2NzE5QzAwQTBEQjg0IC8qIF9XS0Fw
cGxpY2F0aW9uTWFuaWZlc3QuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDYzMTA4Rjk0MUY5NjcxOUMwMEEwREI4NCAvKiBfV0tBcHBsaWNhdGlvbk1hbmlm
ZXN0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJ
NjMxMDhGOTkxRjk2NzFGNzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3RJbnRlcm5h
bC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjMxMDhG
OTgxRjk2NzFGNzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZlc3RJbnRlcm5hbC5oICov
OyB9OwogCQk2MzQ4NDI1MTFGQjI2RTcxMDA5NDZFM0MgLyogQVBJQXBwbGljYXRpb25NYW5pZmVz
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNjM0ODQy
NEYxRkIyNkU3MTAwOTQ2RTNDIC8qIEFQSUFwcGxpY2F0aW9uTWFuaWZlc3QuaCAqLzsgfTsKQEAg
LTQ5MTcsNiArNDkxOCw4IEBACiAJCTVDRTkxMjBGMjI5M0MyNUYwMDVCRUM3OCAvKiBBdXhpbGlh
cnlQcm9jZXNzTWFpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IG5hbWUgPSBB
dXhpbGlhcnlQcm9jZXNzTWFpbi5jcHA7IHBhdGggPSBDb2NvYS9BdXhpbGlhcnlQcm9jZXNzTWFp
bi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTVDRUFCQTJBMjMzMzI0NzcwMDc5
Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBMZWdhY3lHbG9iYWxTZXR0aW5ncy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1Q0VBQkEyQjIzMzMyNTE0MDA3OTc3OTcgLyogTGVnYWN5R2xvYmFsU2V0dGluZ3MuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5R2xvYmFsU2V0dGlu
Z3MuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0VGMUQwODI3ODYwNEREMDBC
NUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVU
eXBlID0gdGV4dDsgbmFtZSA9IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdl
cy5pbjsgcGF0aCA9IENsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1l
c3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1Q0VGMUQwQzI3ODYxQTgy
MDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVy
LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCTVDRkVDQjAzMUUxRUQxQzgwMEY4ODUwNCAvKiBMZWdhY3lDdXN0b21Qcm90b2Nv
bE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9
IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTGVnYWN5
Q3VzdG9tUHJvdG9jb2xNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NURBRDczRjExMTZGRjkwQzAwRUU1Mzk2IC8qIEJhc2VUYXJnZXQueGNjb25maWcgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSB0ZXh0LnhjY29uZmlnOyBwYXRoID0gQmFzZVRhcmdldC54Y2NvbmZpZzsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJNjMxMDhGOTQxRjk2NzE5QzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0
aW9uTWFuaWZlc3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gX1dLQXBwbGljYXRpb25NYW5pZmVzdC5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMTAxMTUsNiArMTAxMTgsNyBAQAogCQkJCTdB
M0ZFQ0ExMjFGN0MwOTcwMEYyNjdDRCAvKiBTdG9yYWdlQWNjZXNzU3RhdHVzLmggKi8sCiAJCQkJ
N0E4NDNBMUEyMUU0MUZCMjAwREVGNjYzIC8qIFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZS5jcHAgKi8sCiAJCQkJN0FGQkQzNjIyMUU1MEYzOTAwNURCQUNCIC8qIFdlYlJlc291cmNlTG9h
ZFN0YXRpc3RpY3NTdG9yZS5oICovLAorCQkJCTVDRUYxRDA4Mjc4NjA0REQwMEI1RDc5QyAvKiBX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4gKi8sCiAJCQkpOwogCQkJ
bmFtZSA9IENsYXNzaWZpZXI7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpAQCAtMTIyMDQs
NiArMTIyMDgsNyBAQAogCQkJCUJDRUU3QUNEMTI4MTc5ODgwMDk4MjdEQSAvKiBXZWJQcm9jZXNz
UHJveHlNZXNzYWdlcy5oICovLAogCQkJCTUxRjA2MEREMTY1NDMxNzUwMEYzMjgxQiAvKiBXZWJS
ZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYwREUxNjU0MzE3
NTAwRjMyODFCIC8qIFdlYlJlc291cmNlTG9hZGVyTWVzc2FnZXMuaCAqLywKKwkJCQk1Q0VGMUQw
QzI3ODYxQTgyMDBCNUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2Fn
ZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4MUYgLyogV2ViUlRD
TW9uaXRvck1lc3NhZ2VSZWNlaXZlci5jcHAgKi8sCiAJCQkJNTFGMDYwREQxNjU0MzE3NTAwRjMy
ODJDIC8qIFdlYlJUQ1Jlc29sdmVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk0MUYwNjBE
RDE2NTQzMTc1MDBGMzI4MUMgLyogV2ViU29ja2V0Q2hhbm5lbE1lc3NhZ2VSZWNlaXZlci5jcHAg
Ki8sCkBAIC0xNTc2OSw2ICsxNTc3NCw3IEBACiAJCQkJNTE3QjVGNzkyNzVFOTdBMTAwMkRDMjJE
IC8qIFdlYlB1c2hEYWVtb25NYWluLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJNTE3QjVGOTkyNzVF
QzYwMTAwMkRDMjJEIC8qIFdlYlB1c2hNZXNzYWdlQ29jb2EubW0gaW4gU291cmNlcyAqLywKIAkJ
CQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlUmVj
ZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNUNFRjFEMEQyNzg2MUE4MjAwQjVENzlDIC8q
IFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBGMzI4MUYgLyogV2ViUlRDTW9uaXRvck1l
c3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQk1MUYwNjBFMTE2NTQzMTg1MDBG
MzI4MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJNDFFMEE3Q0IyM0I2NDVDRDAwNTYxMDYwIC8qIFdlYlNvY2tldENoYW5uZWwuY3BwIGlu
IFNvdXJjZXMgKi8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>448458</attachid>
            <date>2022-01-05 17:36:47 -0800</date>
            <delta_ts>2022-01-06 05:20:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234892-20220105173647.patch</filename>
            <type>text/plain</type>
            <size>121479</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3NjUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGI2ZTM0NDYwYTk4ZmY2MzY4
N2M1NDQ5ZTZkNDA3MjM0NjNiMjFiNjcuLjY1MTZiMzYyYjJiOWFmMzM2MzAzOTA5NzRlY2JlMjFk
YTM1NDQ2MGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMwIEBACisyMDIyLTAxLTA1ICBBbGV4IENo
cmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgTWFrZSBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUgYSBNZXNzYWdlUmVjZWl2ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDg5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IEpvaG4gV2lsYW5kZXIuCisKKyAgICAgICAgVGhlcmUgaXMgYSBsb3Qgb2YgYm9p
bGVycGxhdGUgY29kZSB0aGF0IGZpbmRzIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUgYW5kIGZvcndhcmRzIHRoZSBJUEMgcGFyYW1ldGVycyB0byBpdC4KKyAgICAgICAgTGV0J3Mg
anVzdCBzZW5kIG1lc3NhZ2VzIGRpcmVjdGx5IHRvIHRoZSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmUuCisgICAgICAgIEFsc28gcmVtb3ZlIHRoZSB1bnVzZWQgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlLmguCisgICAgICAgIEkgYWRkZWQgYW4gZW5hYmxlZCBjaGVjayBp
biBXZWJzaXRlRGF0YVN0b3JlOjppc1ByZXZhbGVudFJlc291cmNlIHRvIHByZXZlbnQgYW4gYXNz
ZXJ0aW9uIHdoZW4gc2VuZGluZyBhIG1lc3NhZ2UgdG8gYW4gb2JqZWN0IHRoYXQgZG9lc24ndCBl
eGlzdCBpbiB0aGUgQVBJIHRlc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcy5OZXR3b3JrUHJvY2Vz
c1Jlc3RhcnQuCisgICAgICAgIFRoZSB2ZXJzaW9uIG9mIFdlYlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCB3aXRob3V0
IGEgQ29tcGxldGlvbkhhbmRsZXIgd2FzIGRlYWQgY29kZSB0aGF0IGNvbmZ1c2VkIHRoZSB0ZW1w
bGF0ZSB0eXBlCisgICAgICAgIGluZmVyZW5jZSBpbiBnZW5lcmF0ZWQgY29kZSwgc28gSSByZW1v
dmVkIGl0IHNvIHRoZXJlIGlzIG5vdyBvbmx5IG9uZSBtZXRob2QgbmFtZWQgV2ViUmVzb3VyY2VM
b2FkU3RhdGlzdGljc1N0b3JlOjpzZXROb3RpZnlQYWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2Fu
bmVkLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNvdXJj
ZXMubWFrZToKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1Jlc291cmNlTG9h
ZFN0YXRpc3RpY3NNZW1vcnlTdG9yZS5oOiBSZW1vdmVkLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLmNwcDoKKyAgICAg
ICAgKFdlYktpdDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAoV2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6On5XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUpOgorICAgICAgICAq
IE5ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
Lmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW46IEFkZGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OnNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzR3JhbmRmYXRo
ZXJlZCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppc1ByZXZh
bGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6
OmlzVmVyeVByZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3M6OnNldEdyYW5kZmF0aGVyZWQpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01v
ZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0VmVyeVBy
ZXZhbGVudFJlc291cmNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3M6OmNsZWFyUHJldmFsZW50UmVzb3VyY2UpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZSk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpnZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
RGF0YVN1bW1hcnkpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
cmVzZXRQYXJhbWV0ZXJzVG9EZWZhdWx0VmFsdWVzKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNjaGVkdWxlU3RhdGlzdGljc0FuZERhdGFSZWNvcmRzUHJvY2Vz
c2luZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzdGF0aXN0
aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6IERl
bGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRJc1J1bm5pbmdSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzVGVzdCk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdv
cmtQcm9jZXNzOjpzZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4pOiBEZWxldGVkLgorICAg
ICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1Rv
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJl
ZEFzU3ViRnJhbWVVbmRlcik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4pOiBEZWxldGVkLgorICAgICAg
ICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRv
KTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFN1YnJlc291
cmNlVW5pcXVlUmVkaXJlY3RGcm9tKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcik6IERlbGV0ZWQuCisgICAg
ICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8p
OiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0VG9wRnJhbWVV
bmlxdWVSZWRpcmVjdEZyb20pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6c2V0TGFzdFNlZW4pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJv
Y2Vzczo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9y
VGVzdGluZyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpsb2dG
cmFtZU5hdmlnYXRpb24pOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
czo6bG9nVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OmhhZFVzZXJJbnRlcmFjdGlvbik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzOjppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFiYXNlT25jZSk6IERlbGV0
ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpjbGVhclVzZXJJbnRlcmFjdGlv
bik6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRHcmFuZGZh
dGhlcmluZ1RpbWUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6
c2V0TWF4U3RhdGlzdGljc0VudHJpZXMpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3
b3JrUHJvY2Vzczo6c2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29yZHNSZW1vdmFsKTogRGVs
ZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFBydW5lRW50cmllc0Rv
d25Ubyk6IERlbGV0ZWQuCisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRUaW1l
VG9MaXZlVXNlckludGVyYWN0aW9uKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3M6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1v
dmFsKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldFJlc291
cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzczo6aXNSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRXBoZW1lcmFsIGNvbnN0KTog
RGVsZXRlZC4KKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3M6OnNldENyb3NzU2l0ZUxv
YWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKTogRGVsZXRlZC4KKyAgICAgICAgKFdlYktp
dDo6TmV0d29ya1Byb2Nlc3M6OnNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRp
c3RpY3MpOiBEZWxldGVkLgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzczo6c2V0U2hv
dWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyk6IERlbGV0ZWQuCisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzOjpzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFS
ZW1vdmFsTW9kZUZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNz
L05ldHdvcmtQcm9jZXNzLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nl
c3MubWVzc2FnZXMuaW46CisgICAgICAgICogVUlQcm9jZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nl
c3NQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmR1bXBS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6aXNQcmV2YWxlbnRSZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9j
ZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0
d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2UpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZSk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFZlcnlQcmV2YWxlbnRS
ZXNvdXJjZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldExhc3RT
ZWVuKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6ZG9tYWluSURFeGlz
dHNJbkRhdGFiYXNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6bWVy
Z2VTdGF0aXN0aWNGb3JUZXN0aW5nKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6aW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJlc291cmNlKToKKyAgICAgICAg
KFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0
ZSk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlU3RhdGlz
dGljc0FuZERhdGFSZWNvcmRzUHJvY2Vzc2luZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQ
cm9jZXNzUHJveHk6OnN0YXRpc3RpY3NEYXRhYmFzZUhhc0FsbFRhYmxlcyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1VzZXJJbnRlcmFjdGlvbik6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbik6Cisg
ICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVsYXRpb25zaGlwT25seUlu
RGF0YWJhc2VPbmNlKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6Y2xl
YXJVc2VySW50ZXJhY3Rpb24pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5
OjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCk6
CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldElzUnVubmluZ1Jlc291
cmNlTG9hZFN0YXRpc3RpY3NUZXN0KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6c2V0U3ViZnJhbWVVbmRlclRvcEZyYW1lRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKToKKyAgICAg
ICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVu
ZGVyKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3Vy
Y2VVbmRlclRvcEZyYW1lRG9tYWluKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQ
cm94eTo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKToKKyAgICAgICAgKFdlYktpdDo6
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKToKKyAg
ICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U3VicmVzb3VyY2VVbmlxdWVS
ZWRpcmVjdEZyb20pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8pOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRmYXRoZXJlZCk6CisgICAgICAgIChXZWJLaXQ6
Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0aGVyZWQpOgorICAgICAgICAoV2ViS2l0
OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpnZXRSZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1h
cnkpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhl
cmluZ1RpbWUpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRNYXhT
dGF0aXN0aWNzRW50cmllcyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbCk6CisgICAgICAgIChXZWJL
aXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFBydW5lRW50cmllc0Rvd25Ubyk6CisgICAgICAg
IChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2Vz
QmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZSk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVt
ZXJhbCk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q2FjaGVN
YXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMpOgorICAgICAgICAoV2ViS2l0OjpOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMpOgorICAgICAgICAo
V2ViS2l0OjpOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJz
aXN0ZW50KToKKyAgICAgICAgKFdlYktpdDo6TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Q3Jvc3NT
aXRlTG9hZFdpdGhMaW5rRGVjb3JhdGlvbkZvclRlc3RpbmcpOgorICAgICAgICAoV2ViS2l0OjpO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2Vt
ZW50Rm9yVGVzdGluZyk6CisgICAgICAgIChXZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNl
dEZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyk6CisgICAgICAgIChX
ZWJLaXQ6Ok5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudEZvclRlc3RpbmcpOiBEZWxldGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViUGFnZVBy
b3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5Ojpsb2dGcmFtZU5hdmlnYXRp
b24pOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1Nob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcpOgor
ICAgICAgICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIyLTAxLTA1
ICBUaW0gSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIE1vdmUg
bW9yZSBTREsgY2hlY2tzIHRvIGxpbmtlZE9uT3JBZnRlcigpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L0NNYWtlTGlzdHMudHh0IGIvU291cmNlL1dlYktpdC9DTWFrZUxpc3RzLnR4dAppbmRl
eCAyNTllNDcyYjU3ZDBjNjRmZjc0Mzc5ZjJjOTI5Yzg3MmNmZWZlMDgxLi44ZmMwMjA2NTRhZTUx
YTE5N2JkZTNhZjBhNGIyZmEyY2E3N2JiODJlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NN
YWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQvQ01ha2VMaXN0cy50eHQKQEAgLTE4NSw2
ICsxODUsOCBAQCBzZXQoV2ViS2l0X01FU1NBR0VTX0lOX0ZJTEVTCiAgICAgR1BVUHJvY2Vzcy93
ZWJydGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyCiAgICAgR1BVUHJvY2Vzcy93ZWJy
dGMvUmVtb3RlU2FtcGxlQnVmZmVyRGlzcGxheUxheWVyTWFuYWdlcgogCisgICAgTmV0d29ya1By
b2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUKKwogICAgIE5l
dHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2llTWFuYWdlcgogCiAgICAgTmV0d29ya1Byb2Nl
c3MvSW5kZXhlZERCL1dlYklEQlNlcnZlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9EZXJp
dmVkU291cmNlcy5tYWtlIGIvU291cmNlL1dlYktpdC9EZXJpdmVkU291cmNlcy5tYWtlCmluZGV4
IGI2MjE4OWNiNDc4ZjVlZTJkMTZmZDUzMTg0MWI4YzI2NmVjYjk3ZTEuLjMxNzBkNWNiNDAxNzA2
MzQ0ZmQ1NDhhMmM0NzRlZWY4ODBjOGVhY2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvRGVy
aXZlZFNvdXJjZXMubWFrZQorKysgYi9Tb3VyY2UvV2ViS2l0L0Rlcml2ZWRTb3VyY2VzLm1ha2UK
QEAgLTE0MCw2ICsxNDAsNyBAQCBNRVNTQUdFX1JFQ0VJVkVSUyA9IFwKIAlOZXR3b3JrUHJvY2Vz
cy93ZWJydGMvTmV0d29ya1JUQ1Byb3ZpZGVyIFwKIAlOZXR3b3JrUHJvY2Vzcy93ZWJydGMvTmV0
d29ya1JUQ01vbml0b3IgXAogCU5ldHdvcmtQcm9jZXNzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbFJl
bW90ZU1hbmFnZXJQcm94eSBcCisJTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzU3RvcmUgXAogCU5ldHdvcmtQcm9jZXNzL0Nvb2tpZXMvV2ViQ29va2ll
TWFuYWdlciBcCiAJTmV0d29ya1Byb2Nlc3Mvc3RvcmFnZS9OZXR3b3JrU3RvcmFnZU1hbmFnZXIg
XAogCVNoYXJlZC9BdXhpbGlhcnlQcm9jZXNzIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxvYWRTdGF0aXN0aWNzTWVtb3J5U3Rv
cmUuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9SZXNvdXJjZUxv
YWRTdGF0aXN0aWNzTWVtb3J5U3RvcmUuaApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
NTZmNjdiZjA4OGRjNjAwMjIzZjhiZmEzMGZkZjc4NDhlMGJlZWQyOS4uMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL0NsYXNzaWZpZXIvUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlLmgKKysrIC9k
ZXYvbnVsbApAQCAtMSwxNTAgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNy0yMDE5
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29k
ZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRp
c3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHly
aWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIg
bWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnCi0gKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVS
Q0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJF
IERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJV
VE9SUwotICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwg
U1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgotICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJ
TkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKLSAqIFNVQlNUSVRVVEUgR09P
RFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVT
UwotICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBM
SUFCSUxJVFksIFdIRVRIRVIgSU4KLSAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBU
T1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCi0gKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
Ci0gKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotI3ByYWdtYSBvbmNl
Ci0KLSNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLQotI2luY2x1
ZGUgIlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgotI2luY2x1ZGUgIldlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZS5oIgotI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5o
PgotI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KLSNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgotCi1u
YW1lc3BhY2UgV2ViQ29yZSB7Ci1jbGFzcyBLZXllZERlY29kZXI7Ci1jbGFzcyBLZXllZEVuY29k
ZXI7Ci1lbnVtIGNsYXNzIFN0b3JhZ2VBY2Nlc3NQcm9tcHRXYXNTaG93biA6IGJvb2w7Ci1lbnVt
IGNsYXNzIFN0b3JhZ2VBY2Nlc3NXYXNHcmFudGVkIDogYm9vbDsKLXN0cnVjdCBSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOwotfQotCi1uYW1lc3BhY2UgV2ViS2l0IHsKLQotLy8gVGhpcyBpcyBhbHdh
eXMgY29uc3RydWN0ZWQgLyB1c2VkIC8gZGVzdHJveWVkIG9uIHRoZSBXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmUncyBzdGF0aXN0aWNzIHF1ZXVlLgotY2xhc3MgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc01lbW9yeVN0b3JlIGZpbmFsIDogcHVibGljIFJlc291cmNlTG9hZFN0YXRpc3RpY3NT
dG9yZSB7Ci1wdWJsaWM6Ci0gICAgUmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSYsIFN1c3BlbmRhYmxlV29ya1F1ZXVlJiwgU2hv
dWxkSW5jbHVkZUxvY2FsaG9zdCk7Ci0KLSAgICB2b2lkIGNsZWFyKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJikgb3ZlcnJpZGU7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3Qgb3ZlcnJpZGU7
Ci0KLSAgICBWZWN0b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5
RGF0YT4gYWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKCkgY29uc3Qgb3ZlcnJpZGU7Ci0gICAgY29u
c3QgSGFzaE1hcDxSZWdpc3RyYWJsZURvbWFpbiwgVW5pcXVlUmVmPFdlYkNvcmU6OlJlc291cmNl
TG9hZFN0YXRpc3RpY3M+PiYgZGF0YSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzb3VyY2VTdGF0aXN0
aWNzTWFwOyB9Ci0KLSAgICBzdGQ6OnVuaXF1ZV9wdHI8V2ViQ29yZTo6S2V5ZWRFbmNvZGVyPiBj
cmVhdGVFbmNvZGVyRnJvbURhdGEoKSBjb25zdDsKLSAgICB2b2lkIG1lcmdlV2l0aERhdGFGcm9t
RGVjb2RlcihXZWJDb3JlOjpLZXllZERlY29kZXImKTsKLQotICAgIHZvaWQgbWVyZ2VTdGF0aXN0
aWNzKFZlY3RvcjxSZXNvdXJjZUxvYWRTdGF0aXN0aWNzPiYmKSBvdmVycmlkZTsKLSAgICB2b2lk
IHByb2Nlc3NTdGF0aXN0aWNzKGNvbnN0IEZ1bmN0aW9uPHZvaWQoY29uc3QgUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyYpPiYpIGNvbnN0OwotCi0gICAgdm9pZCB1cGRhdGVDb29raWVCbG9ja2luZyhD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBjbGFzc2lm
eVByZXZhbGVudFJlc291cmNlcygpIG92ZXJyaWRlOwotCi0gICAgdm9pZCByZXF1ZXN0U3RvcmFn
ZUFjY2Vzc1VuZGVyT3BlbmVyKERvbWFpbkluTmVlZE9mU3RvcmFnZUFjY2VzcyYmLCBXZWJDb3Jl
OjpQYWdlSWRlbnRpZmllciwgT3BlbmVyRG9tYWluJiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBn
cmFuZGZhdGhlckRhdGFGb3JEb21haW5zKGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+
Jikgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihj
b25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgY29uc3Qgb3Zl
cnJpZGU7Ci0gICAgYm9vbCBpc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5kZXIoY29uc3QgU3ViRnJh
bWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJv
b2wgaXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKGNvbnN0IFJlZGlyZWN0ZWRGcm9tRG9tYWlu
JiwgY29uc3QgUmVkaXJlY3RlZFRvRG9tYWluJikgY29uc3Qgb3ZlcnJpZGU7Ci0KLSAgICB2b2lk
IGNsZWFyUHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlk
ZTsKLSAgICB2b2lkIGR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoY29uc3QgU3RyaW5nJik+JiYpIGZpbmFsOwotICAgIGJvb2wgaXNQcmV2YWxlbnRSZXNv
dXJjZShjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIGNvbnN0IG92ZXJyaWRlOwotICAgIGJvb2wg
aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29uc3QgUmVnaXN0cmFibGVEb21haW4mKSBjb25zdCBv
dmVycmlkZTsKLSAgICB2b2lkIHNldFByZXZhbGVudFJlc291cmNlKGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoY29u
c3QgUmVnaXN0cmFibGVEb21haW4mKSBvdmVycmlkZTsKLQotICAgIHZvaWQgc2V0R3JhbmRmYXRo
ZXJlZChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIGJvb2wgdmFsdWUpIG92ZXJyaWRlOwotICAg
IGJvb2wgaXNHcmFuZGZhdGhlcmVkKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJikgY29uc3Qgb3Zl
cnJpZGU7Ci0KLSAgICB2b2lkIHNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihjb25zdCBT
dWJGcmFtZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oY29uc3QgU3ViUmVzb3VyY2VEb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0U3VicmVz
b3VyY2VVbmlxdWVSZWRpcmVjdFRvKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVk
aXJlY3REb21haW4mKSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFN1YnJlc291cmNlVW5pcXVlUmVk
aXJlY3RGcm9tKGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgUmVkaXJlY3REb21haW4m
KSBvdmVycmlkZTsKLSAgICB2b2lkIHNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhjb25zdCBU
b3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0RG9tYWluJikgb3ZlcnJpZGU7Ci0gICAgdm9p
ZCBzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNv
bnN0IFJlZGlyZWN0RG9tYWluJikgb3ZlcnJpZGU7Ci0KLSAgICBib29sIGFyZUFsbFRoaXJkUGFy
dHlDb29raWVzQmxvY2tlZFVuZGVyKGNvbnN0IFRvcEZyYW1lRG9tYWluJikgb3ZlcnJpZGU7Ci0g
ICAgQ29va2llQWNjZXNzIGNvb2tpZUFjY2Vzcyhjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
JiwgY29uc3QgVG9wRnJhbWVEb21haW4mKTsKLSAgICB2b2lkIGhhc1N0b3JhZ2VBY2Nlc3MoY29u
c3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyPiwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVxdWVzdFN0
b3JhZ2VBY2Nlc3MoU3ViRnJhbWVEb21haW4mJiwgVG9wRnJhbWVEb21haW4mJiwgV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyLCBXZWJDb3JlOjpQYWdlSWRlbnRpZmllciwgV2ViQ29yZTo6U3RvcmFn
ZUFjY2Vzc1Njb3BlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0b3JhZ2VBY2Nlc3NTdGF0dXMp
PiYmKSBvdmVycmlkZTsKLSAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2VzcyhTdWJGcmFtZURvbWFp
biYmLCBUb3BGcmFtZURvbWFpbiYmLCBXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIFdlYkNvcmU6
OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24sIFdl
YkNvcmU6OlN0b3JhZ2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3Jl
OjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBsb2dG
cmFtZU5hdmlnYXRpb24oY29uc3QgTmF2aWdhdGVkVG9Eb21haW4mLCBjb25zdCBUb3BGcmFtZURv
bWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBib29sIGlzUmVkaXJlY3QsIGJvb2wg
aXNNYWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFtZURvY3VtZW50TG9hZCwgYm9v
bCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikgb3ZlcnJpZGU7Ci0gICAgdm9pZCBsb2dV
c2VySW50ZXJhY3Rpb24oY29uc3QgVG9wRnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgbG9nQ3Jvc3NTaXRlTG9hZFdpdGhMaW5rRGVj
b3JhdGlvbihjb25zdCBOYXZpZ2F0ZWRGcm9tRG9tYWluJiwgY29uc3QgTmF2aWdhdGVkVG9Eb21h
aW4mKSBvdmVycmlkZTsKLQotICAgIHZvaWQgY2xlYXJVc2VySW50ZXJhY3Rpb24oY29uc3QgUmVn
aXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpIG92ZXJyaWRlOwot
ICAgIGJvb2wgaGFzSGFkVXNlckludGVyYWN0aW9uKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwg
T3BlcmF0aW5nRGF0ZXNXaW5kb3cpIG92ZXJyaWRlOwotCi0gICAgdm9pZCBzZXRMYXN0U2Vlbihj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIFNlY29uZHMpIG92ZXJyaWRlOwotICAgIHZvaWQgcmVt
b3ZlRGF0YUZvckRvbWFpbihjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYpIG92ZXJyaWRlOwotICAg
IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4gYWxsRG9tYWlucygpIGNvbnN0IGZpbmFsOwotICAg
IHZvaWQgaW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVE
b21haW4mLCB1bnNpZ25lZCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFzVXNl
ckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWws
IGJvb2wgaXNQcmV2YWxlbnQpIG92ZXJyaWRlOwotCi1wcml2YXRlOgotICAgIHZvaWQgaW5jbHVk
ZVRvZGF5QXNPcGVyYXRpbmdEYXRlSWZOZWNlc3NhcnkoKSBvdmVycmlkZTsKLSAgICBjb25zdCBW
ZWN0b3I8T3BlcmF0aW5nRGF0ZT4mIG9wZXJhdGluZ0RhdGVzKCkgY29uc3QgeyByZXR1cm4gbV9v
cGVyYXRpbmdEYXRlczsgfQotICAgIHZvaWQgY2xlYXJPcGVyYXRpbmdEYXRlcygpIG92ZXJyaWRl
IHsgbV9vcGVyYXRpbmdEYXRlcy5jbGVhcigpOyB9Ci0gICAgdm9pZCBtZXJnZU9wZXJhdGluZ0Rh
dGVzKFZlY3RvcjxPcGVyYXRpbmdEYXRlPiYmKTsKLSAgICBib29sIGhhc1N0YXRpc3RpY3NFeHBp
cmVkKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBPcGVyYXRpbmdEYXRlc1dpbmRvdykg
Y29uc3Q7Ci0gICAgc3RhdGljIFZlY3RvcjxPcGVyYXRpbmdEYXRlPiBtZXJnZU9wZXJhdGluZ0Rh
dGVzKGNvbnN0IFZlY3RvcjxPcGVyYXRpbmdEYXRlPiYgZXhpc3RpbmdEYXRlcywgVmVjdG9yPE9w
ZXJhdGluZ0RhdGU+JiYgbmV3RGF0ZXMpOwotICAgIGJvb2wgaGFzU3RhdGlzdGljc0V4cGlyZWQo
V2FsbFRpbWUgbW9zdFJlY2VudFVzZXJJbnRlcmFjdGlvblRpbWUsIE9wZXJhdGluZ0RhdGVzV2lu
ZG93KSBjb25zdCBvdmVycmlkZTsKLQotICAgIHN0YXRpYyBib29sIHNob3VsZEJsb2NrQW5kS2Vl
cENvb2tpZXMoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotICAgIHN0YXRpYyBib29s
IHNob3VsZEJsb2NrQW5kUHVyZ2VDb29raWVzKGNvbnN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3Mm
KTsKLSAgICBzdGF0aWMgV2ViQ29yZTo6U3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duIGhhc1Vz
ZXJHcmFudGVkU3RvcmFnZUFjY2Vzc1Rocm91Z2hQcm9tcHQoY29uc3QgUmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyYsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJik7Ci0gICAgYm9vbCBoYXNIYWRVbmV4
cGlyZWRSZWNlbnRVc2VySW50ZXJhY3Rpb24oUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIE9wZXJh
dGluZ0RhdGVzV2luZG93KSBjb25zdDsKLSAgICBib29sIHNob3VsZFJlbW92ZUFsbFdlYnNpdGVE
YXRhRm9yKFJlc291cmNlTG9hZFN0YXRpc3RpY3MmLCBib29sIHNob3VsZENoZWNrRm9yR3JhbmRm
YXRoZXJpbmcpIGNvbnN0OwotICAgIGJvb2wgc2hvdWxkUmVtb3ZlQWxsQnV0Q29va2llc0ZvcihS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5n
KSBjb25zdDsKLSAgICBib29sIHNob3VsZEVuZm9yY2VTYW1lU2l0ZVN0cmljdEZvcihSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzJiwgYm9vbCBzaG91bGRDaGVja0ZvckdyYW5kZmF0aGVyaW5nKTsKLSAg
ICB2b2lkIGluY3JlbWVudFJlY29yZHNEZWxldGVkQ291bnRGb3JEb21haW5zKEhhc2hTZXQ8UmVn
aXN0cmFibGVEb21haW4+JiYpIG92ZXJyaWRlOwotICAgIHZvaWQgc2V0UHJldmFsZW50UmVzb3Vy
Y2UoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYsIFJlc291cmNlTG9hZFByZXZhbGVuY2UpOwotICAg
IHVuc2lnbmVkIHJlY3Vyc2l2ZWx5R2V0QWxsRG9tYWluc1RoYXRIYXZlUmVkaXJlY3RlZFRvVGhp
c0RvbWFpbihjb25zdCBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzJiwgSGFzaFNldDxSZWRpcmVjdGVk
VG9Eb21haW4+JiwgdW5zaWduZWQgbnVtYmVyT2ZSZWN1cnNpdmVDYWxscykgY29uc3Q7Ci0gICAg
dm9pZCBncmFudFN0b3JhZ2VBY2Nlc3NJbnRlcm5hbChTdWJGcmFtZURvbWFpbiYmLCBUb3BGcmFt
ZURvbWFpbiYmLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllcj4sIFdlYkNv
cmU6OlBhZ2VJZGVudGlmaWVyLCBXZWJDb3JlOjpTdG9yYWdlQWNjZXNzUHJvbXB0V2FzU2hvd24s
IFdlYkNvcmU6OlN0b3JhZ2VBY2Nlc3NTY29wZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJD
b3JlOjpTdG9yYWdlQWNjZXNzV2FzR3JhbnRlZCk+JiYpOwotICAgIHZvaWQgbWFya0FzUHJldmFs
ZW50SWZIYXNSZWRpcmVjdGVkVG9QcmV2YWxlbnQoUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwot
ICAgIGJvb2wgaXNQcmV2YWxlbnREdWVUb0RlYnVnTW9kZShSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
Jik7Ci0gICAgVmVjdG9yPFJlZ2lzdHJhYmxlRG9tYWluPiBlbnN1cmVQcmV2YWxlbnRSZXNvdXJj
ZXNGb3JEZWJ1Z01vZGUoKSBvdmVycmlkZTsKLSAgICB2b2lkIHJlbW92ZURhdGFSZWNvcmRzKENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBwcnVuZVN0YXRpc3RpY3NJZk5l
ZWRlZCgpIG92ZXJyaWRlOwotICAgIFJlc291cmNlTG9hZFN0YXRpc3RpY3MmIGVuc3VyZVJlc291
cmNlU3RhdGlzdGljc0ZvclJlZ2lzdHJhYmxlRG9tYWluKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
Jik7Ci0gICAgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFG
b3IgcmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0ZURhdGFGb3IoKSBv
dmVycmlkZTsKLSAgICBib29sIGlzTWVtb3J5U3RvcmUoKSBjb25zdCBmaW5hbCB7IHJldHVybiB0
cnVlOyB9Ci0gICAgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9zdFJlY2VudFVzZXJJbnRlcmFj
dGlvblRpbWUoY29uc3QgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyYpOwotCi0gICAgSGFzaE1hcDxS
ZWdpc3RyYWJsZURvbWFpbiwgVW5pcXVlUmVmPFJlc291cmNlTG9hZFN0YXRpc3RpY3M+PiBtX3Jl
c291cmNlU3RhdGlzdGljc01hcDsKLSAgICBWZWN0b3I8T3BlcmF0aW5nRGF0ZT4gbV9vcGVyYXRp
bmdEYXRlczsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYktpdAotCi1TUEVDSUFMSVpFX1RZUEVf
VFJBSVRTX0JFR0lOKFdlYktpdDo6UmVzb3VyY2VMb2FkU3RhdGlzdGljc01lbW9yeVN0b3JlKQot
ICAgIHN0YXRpYyBib29sIGlzVHlwZShjb25zdCBXZWJLaXQ6OlJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NTdG9yZSYgc3RvcmUpIHsgcmV0dXJuIHN0b3JlLmlzTWVtb3J5U3RvcmUoKTsgfQotU1BFQ0lB
TElaRV9UWVBFX1RSQUlUU19FTkQoKQotCi0jZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKaW5kZXggNzBiNWFmZGE1MjZlOTkwOWI5NjJkNzEy
MTNkODViNjBiNTM3MTgxZC4uNGJmODZhNmUzNmM5YzY4NDJlNDg0NmRhYmYxNDUyNzdiNjkxMTVm
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5jcHAK
QEAgLTgyLDE5ICs4Miw2IEBAIGNvbnN0IE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+JiBXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6Om1vbml0b3JlZERhdGFUCiAgICAgcmV0dXJuIGRh
dGFUeXBlczsKIH0KIAotdm9pZCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OnNldE5v
dGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoYm9vbCB2YWx1ZSkKLXsKLSAgICBB
U1NFUlQoUnVuTG9vcDo6aXNNYWluKCkpOwotCi0gICAgaWYgKGlzRXBoZW1lcmFsKCkpCi0gICAg
ICAgIHJldHVybjsKLQotICAgIHBvc3RUYXNrKFt0aGlzLCB2YWx1ZV0gewotICAgICAgICBpZiAo
bV9zdGF0aXN0aWNzU3RvcmUpCi0gICAgICAgICAgICBtX3N0YXRpc3RpY3NTdG9yZS0+c2V0Tm90
aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZCh2YWx1ZSk7Ci0gICAgfSk7Ci19Ci0K
IHZvaWQgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpzZXROb3RpZnlQYWdlc1doZW5E
YXRhUmVjb3Jkc1dlcmVTY2FubmVkKGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBBU1NFUlQoUnVuTG9vcDo6aXNNYWluKCkp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9DbGFzc2lmaWVyL1dl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9DbGFzc2lmaWVyL1dlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oCmluZGV4IDY2
MWIxNTYzZWM2NGI2NmU3OGYxZjhkNTU0YzZkOWRmMzczMWFlNmIuLjY0MWQ4YThkY2JhYzZhY2Fj
NzE2NjZmMzRmODgxYzVlNWMwNmFmZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaAorKysg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmgKQEAgLTMwLDYgKzMwLDcgQEAKICNpbmNsdWRlICJBcmd1bWVudENv
ZGVycy5oIgogI2luY2x1ZGUgIkRlY29kZXIuaCIKICNpbmNsdWRlICJFbmNvZGVyLmgiCisjaW5j
bHVkZSAiTWVzc2FnZVJlY2VpdmVyLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFjY2Vzc1N0YXR1cy5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eUlkZW50aWZpZXIuaCIKICNpbmNsdWRlICJXZWJzaXRl
RGF0YVR5cGUuaCIKQEAgLTUwLDYgKzUxLDExIEBACiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4K
ICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAorbmFtZXNwYWNlIElQQyB7CitjbGFz
cyBDb25uZWN0aW9uOworY2xhc3MgRGVjb2RlcjsKK30KKwogbmFtZXNwYWNlIFdlYkNvcmUgewog
Y2xhc3MgUmVzb3VyY2VSZXF1ZXN0Owogc3RydWN0IFJlc291cmNlTG9hZFN0YXRpc3RpY3M7CkBA
IC04Nyw3ICs5Myw3IEBAIHN0cnVjdCBSZWdpc3RyYWJsZURvbWFpbnNUb0RlbGV0ZU9yUmVzdHJp
Y3RXZWJzaXRlRGF0YUZvciB7CiAgICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gZG9t
YWluc1RvRGVsZXRlQWxsQ29va2llc0Zvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRGVsZXRlQWxs
QnV0SHR0cE9ubHlDb29raWVzRm9yLmlzRW1wdHkoKSAmJiBkb21haW5zVG9EZWxldGVBbGxOb25D
b29raWVXZWJzaXRlRGF0YUZvci5pc0VtcHR5KCkgJiYgZG9tYWluc1RvRW5mb3JjZVNhbWVTaXRl
U3RyaWN0Rm9yLmlzRW1wdHkoKTsgfQogfTsKIAotY2xhc3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNhZmVSZWZDb3VudGVkPFdlYlJlc291cmNl
TG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVjdGlvblRocmVhZDo6TWFpbj4geworY2xh
c3MgV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlIGZpbmFsIDogcHVibGljIFRocmVhZFNh
ZmVSZWZDb3VudGVkPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZSwgV1RGOjpEZXN0cnVj
dGlvblRocmVhZDo6TWFpbj4sIHB1YmxpYyBJUEM6Ok1lc3NhZ2VSZWNlaXZlciB7CiBwdWJsaWM6
CiAgICAgdXNpbmcgUmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IFdlYkNvcmU6OlJlc291cmNlTG9h
ZFN0YXRpc3RpY3M7CiAgICAgdXNpbmcgUmVnaXN0cmFibGVEb21haW4gPSBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbjsKQEAgLTE0Miw3ICsxNDgsNiBAQCBwdWJsaWM6CiAgICAgU3VzcGVuZGFi
bGVXb3JrUXVldWUmIHN0YXRpc3RpY3NRdWV1ZSgpIHsgcmV0dXJuIG1fc3RhdGlzdGljc1F1ZXVl
LmdldCgpOyB9CiAKICAgICB2b2lkIHBvcHVsYXRlTWVtb3J5U3RvcmVGcm9tRGlzayhDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChib29sKTsKICAgICB2b2lkIHNldFNob3VsZENsYXNzaWZ5UmVzb3Vy
Y2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKGJvb2wsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7CiAKICAgICB2b2lkIGdyYW50U3RvcmFnZUFjY2Vzcyhjb25zdCBTdWJGcmFtZURvbWFp
biYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiwgV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQYWdlSWRlbnRpZmllciwgU3RvcmFnZUFjY2Vzc1Byb21wdFdhc1Nob3duLCBTdG9yYWdl
QWNjZXNzU2NvcGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoUmVxdWVzdFN0b3JhZ2VBY2Nlc3NS
ZXN1bHQpPiYmKTsKQEAgLTIzNCw4ICsyMzksMTEgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lk
IHJlc3VtZSgpOwogICAgIAogICAgIGJvb2wgaXNFcGhlbWVyYWwoKSBjb25zdCB7IHJldHVybiBt
X2lzRXBoZW1lcmFsID09IFdlYkNvcmU6OlJlc291cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1l
cmFsOjpZZXM7IH07CisgICAgdm9pZCBpc1Jlc291cmNlTG9hZFN0YXRpc3RpY3NFcGhlbWVyYWwo
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikgeyBjb21w
bGV0aW9uSGFuZGxlcihpc0VwaGVtZXJhbCgpKTsgfQogICAgIHZvaWQgaW5zZXJ0RXhwaXJlZFN0
YXRpc3RpY0ZvclRlc3RpbmcoY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCB1bnNpZ25lZCBudW1i
ZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlz
U2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAKKyAgICB2b2lkIGRpZFJlY2VpdmVNZXNzYWdl
KElQQzo6Q29ubmVjdGlvbiYsIElQQzo6RGVjb2RlciYpOworICAgIAogcHJpdmF0ZToKICAgICBl
eHBsaWNpdCBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUoTmV0d29ya1Nlc3Npb24mLCBj
b25zdCBTdHJpbmcmLCBTaG91bGRJbmNsdWRlTG9jYWxob3N0LCBXZWJDb3JlOjpSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzOjpJc0VwaGVtZXJhbCk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUu
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2Vi
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmNkMDc0
Mzc3ZDE5MDMxNmE3MzVkYWQwNDg5YjhmMjMzNDU4MzkyYjUKLS0tIC9kZXYvbnVsbAorKysgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL0NsYXNzaWZpZXIvV2ViUmVzb3VyY2VMb2FkU3Rh
dGlzdGljc1N0b3JlLm1lc3NhZ2VzLmluCkBAIC0wLDAgKzEsNzUgQEAKKyMgQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyMKKyMgUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Cisj
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworIyBhcmUgbWV0OgorIyAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyMgICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyMgMi4gIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisjICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisjICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorIworIyBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBB
UyBJUycnIEFORAorIyBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorIyBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisjIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9S
UyBCRSBMSUFCTEUgRk9SCisjIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwKKyMgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IKKyMg
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRF
UlJVUFRJT04pIEhPV0VWRVIKKyMgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwKKyMgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UKKyMgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKworI2lmIEVOQUJMRShJTlRFTExJR0VOVF9UUkFDS0lO
R19QUkVWRU5USU9OKQorCittZXNzYWdlcyAtPiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3Rv
cmUgeworICAgIENsZWFyUHJldmFsZW50UmVzb3VyY2UoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21h
aW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCisgICAgQ2xlYXJVc2VySW50ZXJhY3Rpb24o
V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCisg
ICAgRHVtcFJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSAtPiAoU3RyaW5nIGR1bXBlZFN0YXRpc3Rp
Y3MpIEFzeW5jCisgICAgSXNHcmFuZGZhdGhlcmVkKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRhcmdldERvbWFpbikgLT4gKGJvb2wgaXNHcmFuZGZhdGhlcmVkKSBBc3luYworICAgIElzUHJl
dmFsZW50UmVzb3VyY2UoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdGFyZ2V0RG9tYWluKSAt
PiAoYm9vbCBpc1ByZXZhbGVudCkgQXN5bmMKKyAgICBJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChib29sIGlzVmVyeVBy
ZXZhbGVudCkgQXN5bmMKKyAgICBTZXRMYXN0U2VlbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZXNvdXJjZURvbWFpbiwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYworICAgIE1lcmdl
U3RhdGlzdGljRm9yVGVzdGluZyhXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNvdXJjZURv
bWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4xLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJv
b2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24s
IGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZh
bGVudCwgdWludDY0X3QgZGF0YVJlY29yZHNSZW1vdmVkKSAtPiAoKSBBc3luYworICAgIEluc2Vy
dEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJl
c291cmNlRG9tYWluLCB1aW50NjRfdCBudW1iZXJPZk9wZXJhdGluZ0RheXNQYXNzZWQsIGJvb2wg
aGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJl
bW92YWwsIGJvb2wgaXNQcmV2YWxlbnQpIC0+ICgpIEFzeW5jCisgICAgU2V0UHJldmFsZW50UmVz
b3VyY2UoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFz
eW5jCisgICAgU2V0UHJldmFsZW50UmVzb3VyY2VGb3JEZWJ1Z01vZGUoV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4pIC0+ICgpIEFzeW5jCisgICAgSXNSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRXBoZW1lcmFsKCkgLT4gKGJvb2wgaXNFcGhlbWVyYWwpIEFzeW5jCisgICAg
SGFzSGFkVXNlckludGVyYWN0aW9uKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNl
RG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCisgICAgSXNSZWxhdGlv
bnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BEb21haW4pIC0+IChib29sIGhhZFVz
ZXJJbnRlcmFjdGlvbikgQXN5bmMKKyAgICBJc1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oV2Vi
Q29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJlY3RlZEZyb21Eb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikgLT4gKGJvb2wgaXNSZWRpcmVjdGlu
Z1RvKSBBc3luYworICAgIElzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiBzdWJGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4g
dG9wRnJhbWVEb21haW4pIC0+IChib29sIGlzU3ViZnJhbWVVbmRlcikgQXN5bmMKKyAgICBJc1Jl
Z2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3Vi
cmVzb3VyY2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWlu
KSAtPiAoYm9vbCBpc1N1YnJlc291cmNlVW5kZXIpIEFzeW5jCisgICAgRG9tYWluSURFeGlzdHNJ
bkRhdGFiYXNlKGludCBkb21haW5JRCkgLT4gKGJvb2wgZXhpc3RzKSBBc3luYworICAgIExvZ0Zy
YW1lTmF2aWdhdGlvbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4sIFdl
YkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3Ry
YWJsZURvbWFpbiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVjdCwgYm9vbCBpc01haW5GcmFt
ZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCBib29sIHdhc1BvdGVu
dGlhbGx5SW5pdGlhdGVkQnlVc2VyKQorICAgIExvZ1VzZXJJbnRlcmFjdGlvbihXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBSZXNldFBh
cmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoKSAtPiAoKSBBc3luYworICAgIFNjaGVkdWxlQ29va2ll
QmxvY2tpbmdVcGRhdGUoKSAtPiAoKSBBc3luYworICAgIFNjaGVkdWxlU3RhdGlzdGljc0FuZERh
dGFSZWNvcmRzUHJvY2Vzc2luZygpIC0+ICgpIEFzeW5jCisgICAgU3RhdGlzdGljc0RhdGFiYXNl
SGFzQWxsVGFibGVzKCkgLT4gKGJvb2wgaGFzQWxsVGFibGVzKSBBc3luYworICAgIFNldEdyYW5k
ZmF0aGVyZWQoV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIGJvb2wg
aXNHcmFuZGZhdGhlcmVkKSAtPiAoKSBBc3luYworICAgIEFnZ3JlZ2F0ZWRUaGlyZFBhcnR5RGF0
YSgpIC0+IChWZWN0b3I8V2ViS2l0OjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlRo
aXJkUGFydHlEYXRhPiB0aGlyZFBhcnR5RGF0YSkgQXN5bmMKKyAgICBTZXRHcmFuZGZhdGhlcmlu
Z1RpbWUoU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYworICAgIFNldE1heFN0YXRpc3RpY3NF
bnRyaWVzKHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYworICAgIFNldE1p
bmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChTZWNvbmRzIHNlY29uZHMpIC0+ICgp
IEFzeW5jCisgICAgU2V0UHJ1bmVFbnRyaWVzRG93blRvKHVpbnQ2NF90IG1heGltdW1FbnRyeUNv
dW50KSAtPiAoKSBBc3luYworICAgIFNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCisgICAgU2V0Tm90aWZ5UGFn
ZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nhbm5lZChib29sIHZhbHVlKSAtPiAoKSBBc3luYworICAg
IFNldElzUnVubmluZ1Rlc3QoYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKKyAgICBTZXRSZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzRGVidWdNb2RlKGJvb2wgZGVidWdNb2RlKSAtPiAoKSBBc3luYworICAg
IFNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZXNv
dXJjZURvbWFpbikgLT4gKCkgQXN5bmMKKyAgICBTZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21h
aW4oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoKSBBc3luYworICAgIFNldFN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBzdWJy
ZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21haW4p
IC0+ICgpIEFzeW5jCisgICAgU2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNlRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCisgICAgU2V0U3VicmVzb3Vy
Y2VVbmlxdWVSZWRpcmVjdEZyb20oV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3Vy
Y2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRGcm9tRG9tYWlu
KSAtPiAoKSBBc3luYworICAgIFNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oU2Vjb25kcyBz
ZWNvbmRzKSAtPiAoKSBBc3luYworICAgIFNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RUbyhXZWJD
b3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFi
bGVEb21haW4gcmVkaXJlY3RlZFRvRG9tYWluKSAtPiAoKSBBc3luYworICAgIFNldFRvcEZyYW1l
VW5pcXVlUmVkaXJlY3RGcm9tKFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9t
YWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikgLT4g
KCkgQXN5bmMKKyAgICBMb2dDcm9zc1NpdGVMb2FkV2l0aExpbmtEZWNvcmF0aW9uKFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIGZyb21Eb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWlu
IHRvRG9tYWluKSAtPiAoKSBBc3luYworI2lmIEVOQUJMRShBUFBfQk9VTkRfRE9NQUlOUykKKyAg
ICBTZXRBcHBCb3VuZERvbWFpbnMoSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbj4g
YXBwQm91bmREb21haW5zKSAtPiAoKSBBc3luYworI2VuZGlmCisgICAgU2V0Rmlyc3RQYXJ0eVdl
YnNpdGVEYXRhUmVtb3ZhbE1vZGUoZW51bTp1aW50OF90IFdlYkNvcmU6OkZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlIG1vZGUpIC0+ICgpIEFzeW5jCit9CisKKyNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5jcHAgYi9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAppbmRleCAyNmJk
MTA3MTk5NGIzZjgyN2JkN2Q1OTc0NTM5YWYxNDljMTYyMmNhLi5hMzc2ZTE5ZTE5MWUxNGU2MTMx
NGZjZWNhMzA1Yjk2ZjVhZGViNWFmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL05ldHdvcmtQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmNwcApAQCAtNTM2LDE5ICs1MzYsNiBAQCB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpkZXN0cm95U2Vzc2lvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpCiB9CiAKICNp
ZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLXZvaWQgTmV0d29ya1By
b2Nlc3M6OmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQot
ewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewot
ICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291
cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3Mt
PmR1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsK
LSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9
IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoeyB9KTsKLSAgICB9Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnVwZGF0ZVBy
ZXZhbGVudERvbWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQs
IGNvbnN0IFZlY3RvcjxSZWdpc3RyYWJsZURvbWFpbj4mIGRvbWFpbnNUb0Jsb2NrLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8q
IG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC01
NTYsNDUgKzU0Myw2IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnVwZGF0ZVByZXZhbGVudERvbWFp
bnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAgY29tcGxldGlvbkhh
bmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNHcmFuZGZhdGhlcmVkKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBp
ZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAg
aWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRT
dGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc0dyYW5k
ZmF0aGVyZWQoZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2Ugewot
ICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
ZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNQcmV2YWxlbnRSZXNv
dXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBk
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
Ci17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVz
b3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGlj
cy0+aXNQcmV2YWxlbnRSZXNvdXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpp
c1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJl
Z2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vz
c2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy0+aXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoZG9tYWluLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBs
ZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQog
dm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWdlQ2FwRm9yQ2xpZW50U2lkZUNvb2tpZXMoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFNlY29uZHM+IHNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKIHsKICAgICBpZiAoYXV0
byogbmV0d29ya1N0b3JhZ2VTZXNzaW9uID0gc3RvcmFnZVNlc3Npb24oc2Vzc2lvbklEKSkKQEAg
LTYwMiw4NCArNTUwLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QWdlQ2FwRm9yQ2xpZW50
U2lkZUNvb2tpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBzdGQKICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRHcmFuZGZhdGhlcmVkKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Ym9vbCBpc0dyYW5kZmF0aGVyZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0
aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNl
c3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBz
ZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxv
YWRTdGF0aXN0aWNzLT5zZXRHcmFuZGZhdGhlcmVkKGRvbWFpbiwgaXNHcmFuZGZhdGhlcmVkLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRQcmV2YWxlbnRSZXNvdXJjZShkb21haW4s
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JF
QUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQg
TmV0d29ya1Byb2Nlc3M6OnNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRv
KiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFByZXZhbGVudFJl
c291cmNlRm9yRGVidWdNb2RlKGRvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwot
ICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxz
ZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFu
ZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0VmVyeVByZXZhbGVu
dFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21h
aW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkg
ewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPnNldFZlcnlQcmV2YWxlbnRSZXNvdXJjZShkb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhh
bmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsK
LSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29t
cGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmNsZWFy
UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNz
aW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vz
c2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2Fk
U3RhdGlzdGljcy0+Y2xlYXJQcmV2YWxlbnRSZXNvdXJjZShkb21haW4sIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYg
KGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlm
IChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3Rh
dGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZShXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAg
IGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAg
ICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzY2hlZHVsZUNsZWFySW5NZW1vcnlB
bmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxXYWxs
VGltZT4gbW9kaWZpZWRTaW5jZSwgU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdy
YW5kZmF0aGVyLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7
CkBAIC02OTcsMjU1ICs1NjcsNiBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzOjpzY2hlZHVsZUNsZWFy
SW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRAogICAgIH0KIH0K
IAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Z2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RhdGFTdW1t
YXJ5KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChWZWN0
b3I8V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4mJik+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vz
c2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0
aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVz
b3VyY2VMb2FkU3RhdGlzdGljcy0+YWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhh
bmRsZXIoeyB9KTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsK
LSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29y
a1Byb2Nlc3M6OnJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
LXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsK
LSAgICAgICAgc2Vzc2lvbi0+cmVzZXRDTkFNRURvbWFpbkRhdGEoKTsKLSAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5yZXNldFBhcmFtZXRl
cnNUb0RlZmF1bHRWYWx1ZXMoV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBl
bHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAg
ICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNz
aW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVz
b3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkK
LSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNjaGVkdWxlU3RhdGlzdGljc0Fu
ZERhdGFSZWNvcmRzUHJvY2Vzc2luZyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzdGF0aXN0aWNzRGF0YWJhc2VI
YXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9u
ID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAg
ICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnN0YXRpc3RpY3NEYXRhYmFzZUhhc0Fs
bFRhYmxlcyhXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwot
ICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJl
Y29yZHNXZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAo
YXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYg
KGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0
aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXROb3RpZnlQ
YWdlc1doZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKHZhbHVlLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRJ
c1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25J
RCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9u
LT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0
aXN0aWNzLT5zZXRJc1J1bm5pbmdUZXN0KHZhbHVlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAg
fSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdWJmcmFt
ZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdp
c3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPnNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihzdWJGcmFtZURvbWFpbiwgdG9w
RnJhbWVEb21haW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQot
ICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBB
U1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9
Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5S
ZWRpcmVjdGVkRnJvbSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRU
bywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsK
LSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAg
ICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJj
ZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5p
c1JlZ2lzdGVyZWRBc1JlZGlyZWN0aW5nVG8oZG9tYWluUmVkaXJlY3RlZEZyb20sIGRvbWFpblJl
ZGlyZWN0ZWRUbywgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0g
ICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNl
KTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6OmlzUmVnaXN0ZXJlZEFzU3ViRnJh
bWVVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewot
ICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAg
ICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNl
TG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmlz
UmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4s
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfQot
fQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3Vi
cmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlm
IChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBp
ZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0
YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YnJl
c291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21h
aW4sIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9U
X1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURv
bWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRUbywgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRv
KiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhzdWJyZXNvdXJjZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZFRvLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNv
bXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5l
dHdvcmtQcm9jZXNzOjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFp
biwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0U3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9t
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAg
IGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9S
RUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lk
IE5ldHdvcmtQcm9jZXNzOjppc1JlZ2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3VicmVzb3VyY2VEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byog
c2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8q
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNz
KCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5pc1JlZ2lzdGVyZWRBc1N1
YnJlc291cmNlVW5kZXIoc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9tYWluLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNI
RUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9p
ZCBOZXR3b3JrUHJvY2Vzczo6c2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZFRvLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Np
b24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNv
dXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQot
ICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+c2V0VG9wRnJhbWVVbmlxdWVSZWRp
cmVjdFRvKHRvcEZyYW1lRG9tYWluLCBkb21haW5SZWRpcmVjdGVkVG8sIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRs
ZXIoKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAg
ICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KLXZvaWQgTmV0d29ya1Byb2Nlc3M6
OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
Y29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJs
ZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZEZyb20sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BG
cmFtZURvbWFpbiwgZG9tYWluUmVkaXJlY3RlZEZyb20sIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLSAg
ICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0gICAgCi0gICAgCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBkb21haW4sIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldExhc3RTZWVuKGRvbWFpbiwgc2Vjb25kcywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgaW50IGRvbWFpbklELCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9
IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNl
TG9hZFN0YXRpc3RpY3MtPmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShkb21haW5JRCwgV1RGTW92
ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0
aW9uSGFuZGxlcihmYWxzZSk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFD
SEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9Ci19Ci0KLXZv
aWQgTmV0d29ya1Byb2Nlc3M6Om1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4sIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbjEsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0
b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNlZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9u
LCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVk
LCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVyeVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJl
Y29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
KSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy0+bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKGRvbWFpbiwgdG9wRnJhbWVEb21haW4xLCB0
b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rpb24sIG1vc3RSZWNlbnRV
c2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxlbnQsIGlzVmVyeVByZXZh
bGVudCwgZGF0YVJlY29yZHNSZW1vdmVkLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNl
IHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppbnNlcnRFeHBpcmVkU3Rh
dGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiBkb21haW4sIHVuc2lnbmVkIG51bWJlck9mT3BlcmF0aW5nRGF5c1Bhc3NlZCwg
Ym9vbCBoYWRVc2VySW50ZXJhY3Rpb24sIGJvb2wgaXNTY2hlZHVsZWRGb3JBbGxCdXRDb29raWVE
YXRhUmVtb3ZhbCwgYm9vbCBpc1ByZXZhbGVudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nl
c3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlz
dGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJl
c291cmNlTG9hZFN0YXRpc3RpY3MtPmluc2VydEV4cGlyZWRTdGF0aXN0aWNGb3JUZXN0aW5nKGRv
bWFpbiwgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24sIGlz
U2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50LCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7
Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzOjpnZXRBbGxTdG9yYWdlQWNjZXNzRW50cmllcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoVmVjdG9yPFN0cmluZz4gZG9tYWlucyk+JiYgY29t
cGxldGlvbkhhbmRsZXIpCiB7CiAgICAgaWYgKGF1dG8qIG5ldHdvcmtTdG9yYWdlU2Vzc2lvbiA9
IHN0b3JhZ2VTZXNzaW9uKHNlc3Npb25JRCkpCkBAIC05NTYsNjcgKzU3Nyw2IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3M6OmdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgQ29tcGxlCiAgICAgfQogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dGcmFt
ZU5hdmlnYXRpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdGFyZ2V0RG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVEb21h
aW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzb3VyY2VEb21haW4sIGJvb2wgaXNSZWRpcmVj
dCwgYm9vbCBpc01haW5GcmFtZSwgU2Vjb25kcyBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRM
b2FkLCBib29sIHdhc1BvdGVudGlhbGx5SW5pdGlhdGVkQnlVc2VyKQotewotICAgIGlmIChhdXRv
KiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ0ZyYW1lTmF2aWdh
dGlvbih0YXJnZXREb21haW4sIHRvcEZyYW1lRG9tYWluLCBzb3VyY2VEb21haW4sIGlzUmVkaXJl
Y3QsIGlzTWFpbkZyYW1lLCBkZWxheUFmdGVyTWFpbkZyYW1lRG9jdW1lbnRMb2FkLCB3YXNQb3Rl
bnRpYWxseUluaXRpYXRlZEJ5VXNlcik7Ci0gICAgfSBlbHNlCi0gICAgICAgIEFTU0VSVF9OT1Rf
UkVBQ0hFRCgpOwotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpsb2dVc2VySW50ZXJhY3Rpb24o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWlu
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAg
aWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAg
IGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2Fk
U3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+bG9nVXNl
ckludGVyYWN0aW9uKGRvbWFpbiwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0g
ICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigp
OwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aGFkVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwg
Q29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAg
ICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAg
ICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxv
YWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5oYXNI
YWRVc2VySW50ZXJhY3Rpb24oZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0g
ICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9
IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlv
bkhhbmRsZXIoZmFsc2UpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6aXNSZWxh
dGlvbnNoaXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
dG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklE
KSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24t
PnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MtPmlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VPbmNlKHN1YkRvbWFpbiwgdG9wRG9t
YWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKGZhbHNlKTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NF
UlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoZmFsc2UpOwotICAg
IH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6Y2xlYXJVc2VySW50ZXJhY3Rpb24oUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1
dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChh
dXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlz
dGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlzdGljcy0+Y2xlYXJVc2VySW50
ZXJhY3Rpb24oZG9tYWluLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0g
ICAgfQotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpoYXNMb2NhbFN0b3JhZ2UoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpOwpAQCAtMTA0MCw4NCArNjAwLDYg
QEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNv
dXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQog
Ci12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9u
SUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5ldHdvcmtT
ZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9hZFN0YXRp
c3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAgICAgICBy
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRHcmFuZGZhdGhlcmluZ1RpbWUoc2Vjb25kcywgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3
b3JrUHJvY2Vzczo6c2V0TWF4U3RhdGlzdGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklELCB1aW50NjRfdCBtYXhpbXVtRW50cnlDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29y
a1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAg
IHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKG1heGltdW1F
bnRyeUNvdW50LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAg
ICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNT
RVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQot
fQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0
byogc2Vzc2lvbiA9IG5ldHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1
dG8qIHJlc291cmNlTG9hZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0
aWNzKCkpCi0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRNaW5pbXVtVGlt
ZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoc2Vjb25kcywgV1RGTW92ZShjb21wbGV0aW9uSGFu
ZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21w
bGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UHJ1
bmVFbnRyaWVzRG93blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgcHJ1bmVU
YXJnZXRDb3VudCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQotewotICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkg
ewotICAgICAgICBpZiAoYXV0byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJl
c291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MtPnNldFBydW5lRW50cmllc0Rvd25UbyhwcnVuZVRhcmdldENvdW50LCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5k
bGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAg
ICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNz
OjpzZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
U2Vjb25kcyBzZWNvbmRzLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhh
bmRsZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9u
SUQpKSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lv
bi0+cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3Rh
dGlzdGljcy0+c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihzZWNvbmRzLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25I
YW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0g
ICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9j
ZXNzOjpzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKLXsKLSAgICBpZiAoYXV0byogc2Vzc2lvbiA9IG5l
dHdvcmtTZXNzaW9uKHNlc3Npb25JRCkpIHsKLSAgICAgICAgaWYgKGF1dG8qIHJlc291cmNlTG9h
ZFN0YXRpc3RpY3MgPSBzZXNzaW9uLT5yZXNvdXJjZUxvYWRTdGF0aXN0aWNzKCkpCi0gICAgICAg
ICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0Jl
Zm9yZURhdGFSZWNvcmRzUmVtb3ZhbCh2YWx1ZSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0g
ZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0VuYWJsZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGVuYWJs
ZWQpCiB7CiAgICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
KQpAQCAtMTEzMSwzMSArNjEzLDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0xvZ1Rlc3RpbmdFdmVudChib29sIGVuYWJsZWQpCiAgICAgfSk7CiB9CiAK
LXZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01vZGUo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29sIGRlYnVnTW9kZSwgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBzZXNzaW9u
ID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byogcmVzb3Vy
Y2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3MoKSkKLSAg
ICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPnNldFJlc291cmNlTG9hZFN0YXRpc3Rp
Y3NEZWJ1Z01vZGUoZGVidWdNb2RlLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Ci0gICAg
ICAgIGVsc2UKLSAgICAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSBlbHNlIHsK
LSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KCk7Ci0gICAgfQotfQotCi12b2lkIE5ldHdvcmtQcm9jZXNzOjppc1Jlc291cmNlTG9hZFN0YXRp
c3RpY3NFcGhlbWVyYWwoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKSBjb25zdAotewotICAgIGlmIChhdXRv
KiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0
byogcmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3Rp
Y3MoKSkgewotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIocmVzb3VyY2VMb2FkU3RhdGlz
dGljcy0+aXNFcGhlbWVyYWwoKSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAg
ICB9IGVsc2UKLSAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgY29tcGxldGlvbkhh
bmRsZXIoZmFsc2UpOwotfQotCiB2b2lkIE5ldHdvcmtQcm9jZXNzOjpyZXNldENhY2hlTWF4QWdl
Q2FwRm9yUHJldmFsZW50UmVzb3VyY2VzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRv
KiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpAQCAt
MTE5MCwxOSArNjQ3LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzczo6ZGlkQ29tbWl0Q3Jvc3NTaXRl
TG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQgc2Vzc2kKICAgICB9CiB9CiAKLXZv
aWQgTmV0d29ya1Byb2Nlc3M6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25Gb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4m
IGZyb21Eb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b0RvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQotewotICAgIGlmIChhdXRvKiBz
ZXNzaW9uID0gbmV0d29ya1Nlc3Npb24oc2Vzc2lvbklEKSkgewotICAgICAgICBpZiAoYXV0byog
cmVzb3VyY2VMb2FkU3RhdGlzdGljcyA9IHNlc3Npb24tPnJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
KSkKLSAgICAgICAgICAgIHJlc291cmNlTG9hZFN0YXRpc3RpY3MtPmxvZ0Nyb3NzU2l0ZUxvYWRX
aXRoTGlua0RlY29yYXRpb24oZnJvbURvbWFpbiwgdG9Eb21haW4sIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIo
KTsKLSAgICB9IGVsc2UgewotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAg
Y29tcGxldGlvbkhhbmRsZXIoKTsKLSAgICB9Ci19Ci0KIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnJl
c2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIGlmIChhdXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vz
c2lvbihzZXNzaW9uSUQpKQpAQCAtMTIyMCwyMCArNjY0LDYgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
czo6aGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgV2Vi
Q29yZToKICAgICBjb21wbGV0aW9uSGFuZGxlcihyZXN1bHQpOwogfQogCi0jaWYgRU5BQkxFKEFQ
UF9CT1VORF9ET01BSU5TKQotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0QXBwQm91bmREb21haW5z
Rm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIEhhc2hT
ZXQ8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+JiYgYXBwQm91bmREb21haW5zLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCi17Ci0gICAgaWYgKGF1dG8q
IHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQpKSB7Ci0gICAgICAgIGlmIChhdXRv
KiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+cmVzb3VyY2VMb2FkU3RhdGlzdGlj
cygpKSB7Ci0gICAgICAgICAgICByZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5zZXRBcHBCb3VuZERv
bWFpbnMoV1RGTW92ZShhcHBCb3VuZERvbWFpbnMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgY29tcGxldGlvbkhhbmRsZXIoKTsKLX0KLSNlbmRpZgotCiB2b2lk
IE5ldHdvcmtQcm9jZXNzOjpzZXRTaG91bGREb3duZ3JhZGVSZWZlcnJlckZvclRlc3RpbmcoYm9v
bCBlbmFibGVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIp
CiB7CiAgICAgZm9yRWFjaE5ldHdvcmtTZXNzaW9uKFtlbmFibGVkXShhdXRvJiBzZXNzaW9uKSB7
CkBAIC0xMjUxLDcgKzY4MSw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3M6OnNldFRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXCiAgICAgY29tcGxl
dGlvbkhhbmRsZXIoKTsKIH0KIAotdm9pZCBOZXR3b3JrUHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVT
YW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgTmV0d29y
a1Byb2Nlc3M6OnNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0
aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZv
cmNlbWVudEVuYWJsZWQgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBs
ZXRpb25IYW5kbGVyKQogewogICAgIGlmIChhdXRvKiBzZXNzaW9uID0gbmV0d29ya1Nlc3Npb24o
c2Vzc2lvbklEKSkKICAgICAgICAgc2Vzc2lvbi0+c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmlj
dEVuZm9yY2VtZW50KGVuYWJsZWQpOwpAQCAtMTI2MCwxOSArNjkwLDYgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzczo6c2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGlu
ZyhQQUw6OlNlc3MKICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwogfQogCi12b2lkIE5ldHdvcmtQ
cm9jZXNzOjpzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSBtb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCi17Ci0gICAgaWYgKGF1dG8qIHNlc3Npb24gPSBuZXR3b3JrU2Vzc2lvbihzZXNzaW9uSUQp
KSB7Ci0gICAgICAgIGlmIChhdXRvKiByZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gc2Vzc2lvbi0+
cmVzb3VyY2VMb2FkU3RhdGlzdGljcygpKQotICAgICAgICAgICAgcmVzb3VyY2VMb2FkU3RhdGlz
dGljcy0+c2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUobW9kZSwgV1RGTW92ZShj
b21wbGV0aW9uSGFuZGxlcikpOwotICAgICAgICBlbHNlCi0gICAgICAgICAgICBjb21wbGV0aW9u
SGFuZGxlcigpOwotICAgIH0gZWxzZSB7Ci0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwot
ICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwotICAgIH0KLX0KLQogdm9pZCBOZXR3b3JrUHJv
Y2Vzczo6c2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewogICAgIGlmIChh
dXRvKiBuZXR3b3JrU3RvcmFnZVNlc3Npb24gPSBzdG9yYWdlU2Vzc2lvbihzZXNzaW9uSUQpKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5o
IGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5oCmluZGV4IDc4
Nzc5MjdhMTdjNTU5NmViMDNiZDRhY2Y0ZDU4ZTQxOGFjOGJhMjMuLjVlMmJlNzIzNjVlZThlZTcz
YmI1MzU5MDVhMzIwYmFlYjI3ZGQ5OTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL05ldHdvcmtQcm9jZXNzLmgKQEAgLTIwMiw3NyArMjAyLDI5IEBAIHB1YmxpYzoKICAgICB2
b2lkIGFkZFdlYnNpdGVEYXRhU3RvcmUoV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMmJik7CiAK
ICNpZiBFTkFCTEUoSU5URUxMSUdFTlRfVFJBQ0tJTkdfUFJFVkVOVElPTikKLSAgICB2b2lkIGNs
ZWFyUHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGNsZWFyVXNlcklu
dGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYsIENvbXBs
ZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBkZWxldGVBbmRSZXN0cmljdFdlYnNp
dGVEYXRhRm9yUmVnaXN0cmFibGVEb21haW5zKFBBTDo6U2Vzc2lvbklELCBPcHRpb25TZXQ8V2Vi
c2l0ZURhdGFUeXBlPiwgUmVnaXN0cmFibGVEb21haW5zVG9EZWxldGVPclJlc3RyaWN0V2Vic2l0
ZURhdGFGb3ImJiwgYm9vbCBzaG91bGROb3RpZnlQYWdlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGNvbnN0IEhhc2hTZXQ8UmVnaXN0cmFibGVEb21haW4+Jik+JiYpOwogICAgIHZvaWQgZGVsZXRl
Q29va2llc0ZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIFJlZ2lzdHJhYmxlRG9tYWluLCBib29s
IGluY2x1ZGVIdHRwT25seUNvb2tpZXMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0g
ICAgdm9pZCBkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChTdHJpbmcpPiYmKTsKICAgICB2b2lkIHVwZGF0ZVByZXZhbGVudERv
bWFpbnNUb0Jsb2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCwgY29uc3QgVmVjdG9yPFJlZ2lz
dHJhYmxlRG9tYWluPiYgZG9tYWluc1RvQmxvY2ssIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
Jik7Ci0gICAgdm9pZCBpc0dyYW5kZmF0aGVyZWQoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lz
dHJhYmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAgdm9p
ZCBpc1ByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaXNWZXJ5
UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7CiAgICAgdm9pZCBzZXRBZ2VDYXBG
b3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxTZWNvbmRz
PiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGlzUmVnaXN0ZXJlZEFz
UmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCwgY29uc3QgUmVkaXJlY3RlZEZyb21Eb21haW4m
LCBjb25zdCBSZWRpcmVjdGVkVG9Eb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmKTsKLSAgICB2b2lkIGlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25J
RCwgY29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYpOwotICAgIHZvaWQgaXNSZWdpc3RlcmVkQXNTdWJyZXNv
dXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNvdXJjZURvbWFpbiYsIGNvbnN0
IFRvcEZyYW1lRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJik7Ci0gICAg
dm9pZCBzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYp
OwotICAgIHZvaWQgc2V0TWF4U3RhdGlzdGljc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQsIHVpbnQ2
NF90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAg
IHZvaWQgc2V0UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJh
YmxlRG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFBy
ZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3Ry
YWJsZURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRW
ZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldFBydW5lRW50
cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCwgdWludDY0X3QgcHJ1bmVUYXJnZXRDb3VudCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lkIGhhZFVzZXJJbnRlcmFjdGlvbihQ
QUw6OlNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKTsKLSAgICB2b2lkIGlzUmVsYXRpb25zaGlwT25seUluRGF0YWJhc2VP
bmNlKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRG9tYWluLCBj
b25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmKTsKICAgICB2b2lkIGhhc0xvY2FsU3RvcmFnZShQQUw6OlNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmKTsK
ICAgICB2b2lkIGdldEFsbFN0b3JhZ2VBY2Nlc3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklELCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKFZlY3RvcjxTdHJpbmc+IGRvbWFpbnMpPiYmKTsKLSAgICB2b2lk
IGxvZ0ZyYW1lTmF2aWdhdGlvbihQQUw6OlNlc3Npb25JRCwgY29uc3QgTmF2aWdhdGVkVG9Eb21h
aW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IE5hdmlnYXRlZEZyb21Eb21haW4mLCBi
b29sIGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5G
cmFtZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcik7Ci0g
ICAgdm9pZCBsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFRvcEZyYW1l
RG9tYWluJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIHJlc2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCByZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRW
YWx1ZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAg
dm9pZCBzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vzc2lvbklELCBz
dGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBTaG91bGRHcmFuZGZhdGhlclN0
YXRpc3RpY3MsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBnZXRSZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRGF0YVN1bW1hcnkoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoVmVjdG9yPFdlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6VGhpcmRQ
YXJ0eURhdGE+JiYpPiYmKTsKLSAgICB2b2lkIHNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUo
UEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBz
Y2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW9uSUQs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzdGF0aXN0aWNzRGF0YWJh
c2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9v
bCk+JiYpOwogICAgIHZvaWQgc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMo
UEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0g
ICAgdm9pZCBzZXRHcmFuZGZhdGhlcmluZ1RpbWUoUEFMOjpTZXNzaW9uSUQsIFNlY29uZHMsIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRMYXN0U2VlbihQQUw6OlNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mLCBTZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6
U2Vzc2lvbklELCBpbnQgZG9tYWluSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYp
OwotICAgIHZvaWQgbWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFp
bjEsIGNvbnN0IFRvcEZyYW1lRG9tYWluJiB0b3BGcmFtZURvbWFpbjIsIFNlY29uZHMgbGFzdFNl
ZW4sIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBTZWNvbmRzIG1vc3RSZWNlbnRVc2VySW50ZXJh
Y3Rpb24sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBib29sIGlzUHJldmFsZW50LCBib29sIGlzVmVy
eVByZXZhbGVudCwgdW5zaWduZWQgZGF0YVJlY29yZHNSZW1vdmVkLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKCk+JiYpOwotICAgIHZvaWQgaW5zZXJ0RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiwgdW5zaWduZWQgbnVtYmVy
T2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgYm9vbCBpc1Nj
aGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJldmFsZW50LCBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0TWluaW11bVRpbWVCZXR3ZWVu
RGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZChQQUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmKTsKLSAgICB2b2lkIHNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NU
ZXN0KFBBTDo6U2Vzc2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYpOwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0VuYWJsZWQoUEFMOjpTZXNz
aW9uSUQsIGJvb2wpOwogICAgIHZvaWQgc2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0xvZ1Rlc3Rp
bmdFdmVudChib29sKTsKLSAgICB2b2lkIHNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEZWJ1Z01v
ZGUoUEFMOjpTZXNzaW9uSUQsIGJvb2wgZGVidWdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KCk+JiZkKTsKLSAgICB2b2lkIGlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6
OlNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJikgY29uc3Q7Ci0gICAg
dm9pZCBzZXRTaG91bGRDbGFzc2lmeVJlc291cmNlc0JlZm9yZURhdGFSZWNvcmRzUmVtb3ZhbChQ
QUw6OlNlc3Npb25JRCwgYm9vbCB2YWx1ZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
LSAgICB2b2lkIHNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCwg
Y29uc3QgU3ViRnJhbWVEb21haW4mLCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIENvbXBsZXRpb25I
YW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVE
b21haW4oUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFN1YlJlc291cmNlRG9tYWluJiwgY29uc3QgVG9w
RnJhbWVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0
U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBTdWJSZXNv
dXJjZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQ
QUw6OlNlc3Npb25JRCwgY29uc3QgU3ViUmVzb3VyY2VEb21haW4mLCBjb25zdCBSZWRpcmVjdGVk
RnJvbURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRU
aW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklELCBTZWNvbmRzLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0VG9wRnJhbWVVbmlxdWVSZWRpcmVj
dFRvKFBBTDo6U2Vzc2lvbklELCBjb25zdCBUb3BGcmFtZURvbWFpbiYsIGNvbnN0IFJlZGlyZWN0
ZWRUb0RvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0gICAgdm9pZCBzZXRU
b3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCwgY29uc3QgVG9wRnJhbWVE
b21haW4mLCBjb25zdCBSZWRpcmVjdGVkRnJvbURvbWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoKT4mJik7CiAgICAgdm9pZCByZWdpc3RyYWJsZURvbWFpbnNXaXRoV2Vic2l0ZURhdGEoUEFM
OjpTZXNzaW9uSUQsIE9wdGlvblNldDxXZWJzaXRlRGF0YVR5cGU+LCBib29sIHNob3VsZE5vdGlm
eVBhZ2UsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoSGFzaFNldDxSZWdpc3RyYWJsZURvbWFpbj4m
Jik+JiYpOwogICAgIHZvaWQgZGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIo
UEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBmcm9tRG9tYWluLCBjb25z
dCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIE9wdGlvblNldDxXZWJDb3JlOjpDcm9zc1Np
dGVOYXZpZ2F0aW9uRGF0YVRyYW5zZmVyOjpGbGFnPiwgV2ViUGFnZVByb3h5SWRlbnRpZmllciwg
V2ViQ29yZTo6UGFnZUlkZW50aWZpZXIpOwotICAgIHZvaWQgc2V0Q3Jvc3NTaXRlTG9hZFdpdGhM
aW5rRGVjb3JhdGlvbkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBmcm9tRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9Eb21haW4sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCByZXNldENyb3NzU2l0ZUxvYWRz
V2l0aExpbmtEZWNvcmF0aW9uRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgQ29tcGxldGlvbkhh
bmRsZXI8dm9pZCgpPiYmKTsKICAgICB2b2lkIGhhc0lzb2xhdGVkU2Vzc2lvbihQQUw6OlNlc3Np
b25JRCwgY29uc3QgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4mLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmKSBjb25zdDsKICAgICB2b2lkIGNsb3NlSVRQRGF0YWJhc2UoUEFMOjpT
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7Ci0jaWYgRU5BQkxFKEFQUF9C
T1VORF9ET01BSU5TKQotICAgIHZvaWQgc2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2Fk
U3RhdGlzdGljcyhQQUw6OlNlc3Npb25JRCwgSGFzaFNldDxXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbj4mJiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSNlbmRpZgogICAgIHZvaWQg
c2V0U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJvb2wsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2Rl
KFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2llQmxvY2tpbmdNb2RlLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0U2hvdWxkRW5ibGVTYW1l
U2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6
U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJik7Ci0gICAgdm9pZCBzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRl
c3RpbmcoUEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92
YWxNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOworICAgIHZvaWQgc2V0U2hvdWxk
RW5hYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQs
IFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYs
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRGaXJzdFBhcnR5SG9z
dENOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgU3RyaW5nJiYgZmlyc3RQYXJ0
eUhvc3QsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluJiYgY25hbWVEb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRUaGlyZFBhcnR5Q05BTUVEb21haW5G
b3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiYmLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogI2VuZGlmCi0KICAgICB2b2lkIHNldFByaXZh
dGVDbGlja01lYXN1cmVtZW50RW5hYmxlZChib29sKTsKICAgICBib29sIHByaXZhdGVDbGlja01l
YXN1cmVtZW50RW5hYmxlZCgpIGNvbnN0OwogICAgIHZvaWQgc2V0UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnREZWJ1Z01vZGUoUEFMOjpTZXNzaW9uSUQsIGJvb2wpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbiBiL1NvdXJj
ZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvTmV0d29ya1Byb2Nlc3MubWVzc2FnZXMuaW4KaW5kZXgg
NjM3ZTE1OWYxODYzOTNiZWM1Y2MwNWFiNWJkNTc4MGJlOGM2ZmNlNC4uYjEwYWJlY2M0MGVkMmRm
ODdkZmVlYmU0YTZhNTVhNDM0ZGEyMjIyNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9OZXR3b3JrUHJvY2Vzcy5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL05ldHdvcmtQcm9jZXNzLm1lc3NhZ2VzLmluCkBAIC03OSw3MCArNzks
MjMgQEAgbWVzc2FnZXMgLT4gTmV0d29ya1Byb2Nlc3MgTGVnYWN5UmVjZWl2ZXIgewogICAgIFBy
ZWNvbm5lY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYktpdDo6V2ViUGFnZVByb3h5
SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFnZUlkZW50aWZpZXIgd2ViUGFn
ZUlELCBVUkwgdXJsLCBTdHJpbmcgdXNlckFnZW50LCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6U3Rv
cmVkQ3JlZGVudGlhbHNQb2xpY3kgc3RvcmVkQ3JlZGVudGlhbHNQb2xpY3ksIGVudW06Ym9vbCBz
dGQ6Om9wdGlvbmFsPFdlYktpdDo6TmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4+IGlzTmF2aWdh
dGluZ1RvQXBwQm91bmREb21haW4sIGVudW06Ym9vbCBXZWJLaXQ6Okxhc3ROYXZpZ2F0aW9uV2Fz
QXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKTsKIAogI2lmIEVOQUJM
RShJTlRFTExJR0VOVF9UUkFDS0lOR19QUkVWRU5USU9OKQotICAgIENsZWFyUHJldmFsZW50UmVz
b3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBDbGVhclVzZXJJbnRlcmFjdGlvbihQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291
cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIER1bXBSZXNvdXJjZUxvYWRTdGF0aXN0aWNzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKFN0cmluZyBkdW1wZWRTdGF0aXN0aWNzKSBBc3lu
YwogICAgIFNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NFbmFibGVkKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgYm9vbCBlbmFibGVkKQogICAgIFNldFJlc291cmNlTG9hZFN0YXRpc3RpY3NMb2dU
ZXN0aW5nRXZlbnQoYm9vbCBlbmFibGVkKQogICAgIFVwZGF0ZVByZXZhbGVudERvbWFpbnNUb0Js
b2NrQ29va2llc0ZvcihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFZlY3RvcjxXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbj4gZG9tYWluc1RvQmxvY2spIC0+ICgpIEFzeW5jCi0gICAgSXNHcmFu
ZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdGFyZ2V0RG9tYWluKSAtPiAoYm9vbCBpc0dyYW5kZmF0aGVyZWQpIEFzeW5jCi0gICAg
SXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRhcmdldERvbWFpbikgLT4gKGJvb2wgaXNQcmV2YWxlbnQpIEFzeW5j
Ci0gICAgSXNWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBX
ZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0YXJnZXREb21haW4pIC0+IChib29sIGlzVmVyeVBy
ZXZhbGVudCkgQXN5bmMKICAgICBTZXRBZ2VDYXBGb3JDbGllbnRTaWRlQ29va2llcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIHN0ZDo6b3B0aW9uYWw8U2Vjb25kcz4gc2Vjb25kcykgLT4gKCkg
QXN5bmMKLSAgICBTZXRMYXN0U2VlbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBTZWNvbmRzIHNlY29uZHMpIC0+ICgp
IEFzeW5jCi0gICAgTWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVzb3VyY2VEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluMSwgV2ViQ29yZTo6UmVnaXN0cmFibGVE
b21haW4gdG9wRnJhbWVEb21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRl
cmFjdGlvbiwgU2Vjb25kcyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRm
YXRoZXJlZCwgYm9vbCBpc1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVpbnQ2NF90
IGRhdGFSZWNvcmRzUmVtb3ZlZCkgLT4gKCkgQXN5bmMKLSAgICBJbnNlcnRFeHBpcmVkU3RhdGlz
dGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJh
YmxlRG9tYWluIHJlc291cmNlRG9tYWluLCB1aW50NjRfdCBudW1iZXJPZk9wZXJhdGluZ0RheXNQ
YXNzZWQsIGJvb2wgaGFkVXNlckludGVyYWN0aW9uLCBib29sIGlzU2NoZWR1bGVkRm9yQWxsQnV0
Q29va2llRGF0YVJlbW92YWwsIGJvb2wgaXNQcmV2YWxlbnQpIC0+ICgpIEFzeW5jCi0gICAgU2V0
UHJldmFsZW50UmVzb3VyY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiByZXNvdXJjZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRQcmV2YWxl
bnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIElzUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+
IChib29sIGlzRXBoZW1lcmFsKSBBc3luYwotICAgIEhhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9t
YWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCi0gICAgSXNSZWxhdGlvbnNo
aXBPbmx5SW5EYXRhYmFzZU9uY2UoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBzdWJEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHRv
cERvbWFpbikgLT4gKGJvb2wgaGFkVXNlckludGVyYWN0aW9uKSBBc3luYwogICAgIEhhc0xvY2Fs
U3RvcmFnZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlc291cmNlRG9tYWluKSAtPiAoYm9vbCBoYWRVc2VySW50ZXJhY3Rpb24pIEFzeW5jCiAg
ICAgR2V0QWxsU3RvcmFnZUFjY2Vzc0VudHJpZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAt
PiAoVmVjdG9yPFN0cmluZz4gZG9tYWlucykgQXN5bmMKLSAgICBJc1JlZ2lzdGVyZWRBc1JlZGly
ZWN0aW5nVG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURv
bWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVk
aXJlY3RlZFRvRG9tYWluKSAtPiAoYm9vbCBpc1JlZGlyZWN0aW5nVG8pIEFzeW5jCi0gICAgSXNS
ZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gc3ViRnJhbWVEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1YmZyYW1lVW5kZXIpIEFzeW5jCi0g
ICAgSXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3VyY2VEb21haW4sIFdlYkNvcmU6
OlJlZ2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluKSAtPiAoYm9vbCBpc1N1YnJlc291cmNl
VW5kZXIpIEFzeW5jCi0gICAgRG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgaW50IGRvbWFpbklEKSAtPiAoYm9vbCBleGlzdHMpIEFzeW5jCi0gICAgTG9n
RnJhbWVOYXZpZ2F0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gdGFyZ2V0RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BG
cmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc291cmNlRG9tYWluLCBib29s
IGlzUmVkaXJlY3QsIGJvb2wgaXNNYWluRnJhbWUsIFNlY29uZHMgZGVsYXlBZnRlck1haW5GcmFt
ZURvY3VtZW50TG9hZCwgYm9vbCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlcikKLSAgICBM
b2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbiB0b3BGcmFtZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBSZXNldFBhcmFt
ZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3lu
YwogICAgIFNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBzdGQ6Om9wdGlvbmFsPFdhbGxUaW1lPiBtb2RpZmllZFNpbmNlLCBlbnVtOmJv
b2wgV2ViS2l0OjpTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mgc2hvdWxkR3JhbmRmYXRoZXIp
IC0+ICgpIEFzeW5jCi0gICAgU2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCi0gICAgU2NoZWR1bGVTdGF0aXN0aWNzQW5kRGF0
YVJlY29yZHNQcm9jZXNzaW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCkgLT4gKCkgQXN5bmMK
LSAgICBTdGF0aXN0aWNzRGF0YWJhc2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lv
bklEKSAtPiAoYm9vbCBoYXNBbGxUYWJsZXMpIEFzeW5jCiAgICAgU2V0Q2FjaGVNYXhBZ2VDYXBG
b3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNl
Y29uZHMpIC0+ICgpIEFzeW5jCi0gICAgU2V0R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlc291cmNlRG9tYWluLCBib29s
IGlzR3JhbmRmYXRoZXJlZCkgLT4gKCkgQXN5bmMKLSAgICBHZXRSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzRGF0YVN1bW1hcnkoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoVmVjdG9yPFdlYktp
dDo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpUaGlyZFBhcnR5RGF0YT4gdGhpcmRQ
YXJ0eURhdGEpIEFzeW5jCi0gICAgU2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldE1heFN0YXRp
c3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgdWludDY0X3QgbWF4aW11bUVu
dHJ5Q291bnQpIC0+ICgpIEFzeW5jCi0gICAgU2V0TWluaW11bVRpbWVCZXR3ZWVuRGF0YVJlY29y
ZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAo
KSBBc3luYwotICAgIFNldFBydW5lRW50cmllc0Rvd25UbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIHVpbnQ2NF90IG1heGltdW1FbnRyeUNvdW50KSAtPiAoKSBBc3luYwotICAgIFNldFNob3Vs
ZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTDo6U2Vzc2lvbklE
IHNlc3Npb25JRCwgYm9vbCB2YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXROb3RpZnlQYWdlc1do
ZW5EYXRhUmVjb3Jkc1dlcmVTY2FubmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCB2
YWx1ZSkgLT4gKCkgQXN5bmMKLSAgICBTZXRJc1J1bm5pbmdSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
VGVzdChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUpIC0+ICgpIEFzeW5jCi0g
ICAgU2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGJvb2wgZGVidWdNb2RlKSAtPiAoKSBBc3luYwotICAgIFNldFZlcnlQcmV2YWxlbnRS
ZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9t
YWluIHJlc291cmNlRG9tYWluKSAtPiAoKSBBc3luYwotICAgIFNldFN1YmZyYW1lVW5kZXJUb3BG
cmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxl
RG9tYWluIHN1YkZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiB0b3BGcmFt
ZURvbWFpbikgLT4gKCkgQXN5bmMKLSAgICBTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21h
aW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBz
dWJyZXNvdXJjZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9wRnJhbWVEb21h
aW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0U3VicmVzb3VyY2VVbmlxdWVSZWRpcmVjdFRvKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gc3VicmVzb3Vy
Y2VEb21haW4sIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHJlZGlyZWN0ZWRUb0RvbWFpbikg
LT4gKCkgQXN5bmMKLSAgICBTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluIHN1YnJlc291cmNl
RG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiByZWRpcmVjdGVkRnJvbURvbWFpbikg
LT4gKCkgQXN5bmMKLSAgICBTZXRUaW1lVG9MaXZlVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lv
bklEIHNlc3Npb25JRCwgU2Vjb25kcyBzZWNvbmRzKSAtPiAoKSBBc3luYwotICAgIFNldFRvcEZy
YW1lVW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIFdlYkNvcmU6OlJl
Z2lzdHJhYmxlRG9tYWluIHRvcEZyYW1lRG9tYWluLCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFp
biByZWRpcmVjdGVkVG9Eb21haW4pIC0+ICgpIEFzeW5jCi0gICAgU2V0VG9wRnJhbWVVbmlxdWVS
ZWRpcmVjdEZyb20oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJs
ZURvbWFpbiB0b3BGcmFtZURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gcmVkaXJl
Y3RlZEZyb21Eb21haW4pIC0+ICgpIEFzeW5jCiAgICAgUmVzZXRDYWNoZU1heEFnZUNhcEZvclBy
ZXZhbGVudFJlc291cmNlcyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQpIC0+ICgpIEFzeW5jCiAg
ICAgRGlkQ29tbWl0Q3Jvc3NTaXRlTG9hZFdpdGhEYXRhVHJhbnNmZXIoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBXZWJDb3JlOjpSZWdpc3RyYWJsZURvbWFpbiBmcm9tRG9tYWluLCBXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbiB0b0RvbWFpbiwgT3B0aW9uU2V0PFdlYkNvcmU6OkNyb3NzU2l0
ZU5hdmlnYXRpb25EYXRhVHJhbnNmZXI6OkZsYWc+IG5hdmlnYXRpb25EYXRhVHJhbnNmZXIsIFdl
YktpdDo6V2ViUGFnZVByb3h5SWRlbnRpZmllciB3ZWJQYWdlUHJveHlJRCwgV2ViQ29yZTo6UGFn
ZUlkZW50aWZpZXIgd2ViUGFnZUlEKQotICAgIFNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29y
YXRpb25Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0
cmFibGVEb21haW4gZnJvbURvbWFpbiwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gdG9Eb21h
aW4pIC0+ICgpIEFzeW5jCiAgICAgUmVzZXRDcm9zc1NpdGVMb2Fkc1dpdGhMaW5rRGVjb3JhdGlv
bkZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklEKSAtPiAoKSBBc3luYwogICAgIERl
bGV0ZUNvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6
UmVnaXN0cmFibGVEb21haW4gZG9tYWluLCBib29sIGluY2x1ZGVIdHRwT25seUNvb2tpZXMpIC0+
ICgpIEFzeW5jCiAgICAgSGFzSXNvbGF0ZWRTZXNzaW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoYm9vbCBoYXNJc29sYXRl
ZFNlc3Npb24pIEFzeW5jCiAgICAgQ2xvc2VJVFBEYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQpIC0+ICgpIEFzeW5jCi0jaWYgRU5BQkxFKEFQUF9CT1VORF9ET01BSU5TKQotICAgIFNl
dEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3MoUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBIYXNoU2V0PFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPiBhcHBCb3VuZERv
bWFpbnMpIC0+ICgpIEFzeW5jCi0jZW5kaWYKICAgICBTZXRTaG91bGREb3duZ3JhZGVSZWZlcnJl
ckZvclRlc3RpbmcoYm9vbCBlbmFibGVkKSAtPiAoKSBBc3luYwogICAgIFNldFRoaXJkUGFydHlD
b29raWVCbG9ja2luZ01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBlbnVtOnVpbnQ4X3Qg
V2ViQ29yZTo6VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nTW9kZSBibG9ja2luZ01vZGUpIC0+ICgp
IEFzeW5jCi0gICAgU2V0U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVz
dGluZyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGVudW06Ym9vbCBXZWJDb3JlOjpTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkKSAtPiAoKSBBc3luYwotICAgIFNldEZp
cnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGVudW06dWludDhfdCBXZWJDb3JlOjpGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1v
dmFsTW9kZSBtb2RlKSAtPiAoKSBBc3luYworICAgIFNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3Ry
aWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgZW51bTpi
b29sIFdlYkNvcmU6OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkIGVuYWJsZWQpIC0+
ICgpIEFzeW5jCiAgICAgU2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAt
PiAoKSBBc3luYwogICAgIFNldEZpcnN0UGFydHlIb3N0Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgU3RyaW5nIGZpcnN0UGFydHlIb3N0LCBXZWJDb3JlOjpS
ZWdpc3RyYWJsZURvbWFpbiBjbmFtZURvbWFpbikgLT4gKCkgQXN5bmMKICAgICBTZXRUaGlyZFBh
cnR5Q05BTUVEb21haW5Gb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29y
ZTo6UmVnaXN0cmFibGVEb21haW4gZG9tYWluKSAtPiAoKSBBc3luYwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9OZXR3b3JrU2Vzc2lvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L05ldHdvcmtQcm9jZXNzL05ldHdvcmtTZXNzaW9uLmNwcAppbmRleCBiMDExYTU4YmEwZGE1
YzA2ZjRiOGVjY2Q5ZThhNDhiYTA2ZWUwZDljLi4yODQ5YTQ3MTAwYmNhYzU2Y2M5OWEzNjgwZTIz
OTZjN2NhYjVmYWUwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05l
dHdvcmtTZXNzaW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL05ldHdv
cmtTZXNzaW9uLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgIldlYlBhZ2VQcm94eS5o
IgogI2luY2x1ZGUgIldlYlBhZ2VQcm94eU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vz
c1Byb3h5LmgiCisjaW5jbHVkZSAiV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2Fn
ZXMuaCIKICNpbmNsdWRlICJXZWJTV09yaWdpblN0b3JlLmgiCiAjaW5jbHVkZSAiV2ViU29ja2V0
VGFzay5oIgogI2luY2x1ZGUgPFdlYkNvcmUvQ29va2llSmFyLmg+CkBAIC0xODksNiArMTkwLDcg
QEAgdm9pZCBOZXR3b3JrU2Vzc2lvbjo6ZGVzdHJveVJlc291cmNlTG9hZFN0YXRpc3RpY3MoQ29t
cGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGMKICAgICAgICAgcmV0dXJuIGNvbXBsZXRpb25IYW5k
bGVyKCk7CiAKICAgICBtX3Jlc291cmNlTG9hZFN0YXRpc3RpY3MtPmRpZERlc3Ryb3lOZXR3b3Jr
U2Vzc2lvbihXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgbV9uZXR3b3JrUHJvY2Vz
cy0+cmVtb3ZlTWVzc2FnZVJlY2VpdmVyKE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6Om1lc3NhZ2VSZWNlaXZlck5hbWUoKSwgbV9zZXNzaW9uSUQudG9VSW50NjQoKSk7
CiAgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzID0gbnVsbHB0cjsKIH0KICNlbmRpZgpAQCAt
MjMxLDYgKzIzMyw3IEBAIHZvaWQgTmV0d29ya1Nlc3Npb246OnNldFJlc291cmNlTG9hZFN0YXRp
c3RpY3NFbmFibGVkKGJvb2wgZW5hYmxlKQogICAgICAgICByZXR1cm47CiAKICAgICBtX3Jlc291
cmNlTG9hZFN0YXRpc3RpY3MgPSBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OmNyZWF0
ZSgqdGhpcywgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzRGlyZWN0b3J5LCBtX3Nob3VsZEluY2x1
ZGVMb2NhbGhvc3RJblJlc291cmNlTG9hZFN0YXRpc3RpY3MsIChtX3Nlc3Npb25JRC5pc0VwaGVt
ZXJhbCgpID8gUmVzb3VyY2VMb2FkU3RhdGlzdGljczo6SXNFcGhlbWVyYWw6OlllcyA6IFJlc291
cmNlTG9hZFN0YXRpc3RpY3M6OklzRXBoZW1lcmFsOjpObykpOworICAgIG1fbmV0d29ya1Byb2Nl
c3MtPmFkZE1lc3NhZ2VSZWNlaXZlcihNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjptZXNzYWdlUmVjZWl2ZXJOYW1lKCksIG1fc2Vzc2lvbklELnRvVUludDY0KCksICpt
X3Jlc291cmNlTG9hZFN0YXRpc3RpY3MpOwogICAgIGlmICghbV9zZXNzaW9uSUQuaXNFcGhlbWVy
YWwoKSkKICAgICAgICAgbV9yZXNvdXJjZUxvYWRTdGF0aXN0aWNzLT5wb3B1bGF0ZU1lbW9yeVN0
b3JlRnJvbURpc2soW10geyB9KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL05ldHdvcmsvTmV0d29ya1Byb2Nlc3NQcm94eS5jcHAKaW5kZXggY2ExYmYxMGQ4ZjI2OTIz
NjVkMzU3MTliNzNjNDAzMTg5MDZlYmFlZS4uZjhjODY1OWZlNGUxN2YxMmY2MGUzNTJiNjYyNTY5
ZDU1ZjNkYmIwYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvTmV0d29yay9O
ZXR3b3JrUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuY3BwCkBAIC02MCw2ICs2MCw3IEBACiAjaW5jbHVkZSAi
V2ViUHJvY2Vzc1Byb3h5LmgiCiAjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5TWVzc2FnZXMuaCIK
ICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlVz
ZXJDb250ZW50Q29udHJvbGxlclByb3h5LmgiCiAjaW5jbHVkZSAiV2Vic2l0ZURhdGEuaCIKICNp
bmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgiCkBAIC02MTMsOCArNjE0LDggQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpkdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIEMKICAgICAgICAgY29tcGxldGlvbkhhbmRsZXIoeyB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KLSAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6Ok5ldHdvcmtQcm9jZXNzOjpEdW1wUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhzZXNzaW9uSUQp
LCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6RHVtcFJlc291cmNlTG9h
ZFN0YXRpc3RpY3MoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJ
bnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojp1cGRhdGVQcmV2YWxlbnRE
b21haW5zVG9CbG9ja0Nvb2tpZXNGb3IoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBW
ZWN0b3I8UmVnaXN0cmFibGVEb21haW4+JiBkb21haW5zVG9CbG9jaywgQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjM5LDcgKzY0MCw3IEBAIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6aXNQcmV2YWxlbnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFJlCiAgICAgICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1ByZXZhbGVudFJlc291cmNl
KHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OklzUHJldmFsZW50UmVzb3VyY2UocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OmlzVmVyeVByZXZhbGVudFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0
aW9uSGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNjQ5LDcgKzY1
MCw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNWZXJ5UHJldmFsZW50UmVzb3VyY2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1ZlcnlQ
cmV2YWxlbnRSZXNvdXJjZShzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc1ZlcnlQcmV2YWxlbnRSZXNvdXJjZShyZXNvdXJj
ZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQo
KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJldmFsZW50UmVzb3VyY2Uo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3Vy
Y2VEb21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikK
QEAgLTY1OSw3ICs2NjAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVu
dFJlc291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUgogICAgICAgICByZXR1
cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6U2V0UHJldmFsZW50UmVzb3VyY2Uoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdU
Rk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2Fn
ZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UHJldmFsZW50UmVzb3VyY2Uo
cmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRv
VUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFByZXZhbGVudFJl
c291cmNlRm9yRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCkBAIC02NjksNyArNjcwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpzZXRQcmV2YWxlbnRSZXNvdXJjZUZvckRlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBz
ZXNzaW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2Rl
KHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7
CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0
aWNzU3RvcmU6OlNldFByZXZhbGVudFJlc291cmNlRm9yRGVidWdNb2RlKHJlc291cmNlRG9tYWlu
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRWZXJ5UHJldmFsZW50UmVzb3VyY2UoUEFM
OjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVzb3VyY2VE
b21haW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAg
LTY3OSw3ICs2ODAsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFZlcnlQcmV2YWxl
bnRSZXNvdXJjZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbgogICAgICAgICByZXR1cm47
CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vz
czo6U2V0VmVyeVByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFZlcnlQcmV2YWxlbnRSZXNv
dXJjZShyZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9u
SUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0TGFzdFNl
ZW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgcmVz
b3VyY2VEb21haW4sIFNlY29uZHMgbGFzdFNlZW4sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4m
JiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTY4OSw3ICs2OTAsNyBAQCB2b2lkIE5ldHdvcmtQcm9j
ZXNzUHJveHk6OnNldExhc3RTZWVuKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVn
aXN0cmFibAogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNS
ZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldExhc3RTZWVuKHNlc3Npb25JRCwgcmVz
b3VyY2VEb21haW4sIGxhc3RTZWVuKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0
b3JlOjpTZXRMYXN0U2VlbihyZXNvdXJjZURvbWFpbiwgbGFzdFNlZW4pLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OmRvbWFpbklERXhpc3RzSW5EYXRhYmFzZShQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGludCBkb21haW5JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKQEAgLTY5OSwxNyArNzAwLDE3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQ
cm94eTo6ZG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwg
aW50CiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6RG9tYWluSURFeGlzdHNJbkRhdGFiYXNlKHNlc3Np
b25JRCwgZG9tYWluSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkRv
bWFpbklERXhpc3RzSW5EYXRhYmFzZShkb21haW5JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94
eTo6bWVyZ2VTdGF0aXN0aWNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29u
c3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYgdG9wRnJhbWVEb21haW4xLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJhbWVE
b21haW4yLCBTZWNvbmRzIGxhc3RTZWVuLCBib29sIGhhZFVzZXJJbnRlcmFjdGlvbiwgU2Vjb25k
cyBtb3N0UmVjZW50VXNlckludGVyYWN0aW9uLCBib29sIGlzR3JhbmRmYXRoZXJlZCwgYm9vbCBp
c1ByZXZhbGVudCwgYm9vbCBpc1ZlcnlQcmV2YWxlbnQsIHVuc2lnbmVkIGRhdGFSZWNvcmRzUmVt
b3ZlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQogewot
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6Ok1lcmdlU3Rh
dGlzdGljRm9yVGVzdGluZyhzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluLCB0b3BGcmFtZURvbWFp
bjEsIHRvcEZyYW1lRG9tYWluMiwgbGFzdFNlZW4sIGhhZFVzZXJJbnRlcmFjdGlvbiwgbW9zdFJl
Y2VudFVzZXJJbnRlcmFjdGlvbiwgaXNHcmFuZGZhdGhlcmVkLCBpc1ByZXZhbGVudCwgaXNWZXJ5
UHJldmFsZW50LCBkYXRhUmVjb3Jkc1JlbW92ZWQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6Ok1lcmdlU3RhdGlzdGljRm9yVGVzdGluZyhyZXNvdXJjZURvbWFpbiwgdG9w
RnJhbWVEb21haW4xLCB0b3BGcmFtZURvbWFpbjIsIGxhc3RTZWVuLCBoYWRVc2VySW50ZXJhY3Rp
b24sIG1vc3RSZWNlbnRVc2VySW50ZXJhY3Rpb24sIGlzR3JhbmRmYXRoZXJlZCwgaXNQcmV2YWxl
bnQsIGlzVmVyeVByZXZhbGVudCwgZGF0YVJlY29yZHNSZW1vdmVkKSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjppbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhQQUw6OlNlc3Npb25J
RCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgdW5z
aWduZWQgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBib29sIGhhZFVzZXJJbnRlcmFjdGlv
biwgYm9vbCBpc1NjaGVkdWxlZEZvckFsbEJ1dENvb2tpZURhdGFSZW1vdmFsLCBib29sIGlzUHJl
dmFsZW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7
Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SW5zZXJ0
RXhwaXJlZFN0YXRpc3RpY0ZvclRlc3Rpbmcoc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiwgbnVt
YmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJhY3Rpb24sIGlzU2NoZWR1bGVk
Rm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50KSwgV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJbnNlcnRFeHBpcmVkU3RhdGlzdGljRm9yVGVzdGluZyhy
ZXNvdXJjZURvbWFpbiwgbnVtYmVyT2ZPcGVyYXRpbmdEYXlzUGFzc2VkLCBoYWRVc2VySW50ZXJh
Y3Rpb24sIGlzU2NoZWR1bGVkRm9yQWxsQnV0Q29va2llRGF0YVJlbW92YWwsIGlzUHJldmFsZW50
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJlc291cmNlKFBBTDo6
U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9t
YWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03
MTksNyArNzIwLDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpjbGVhclByZXZhbGVudFJl
c291cmNlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAgICAgICAgcmV0dXJuOwog
ICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9j
ZXNzOjpDbGVhclByZXZhbGVudFJlc291cmNlKHNlc3Npb25JRCwgcmVzb3VyY2VEb21haW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkNsZWFyUHJldmFsZW50UmVzb3Vy
Y2UocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklE
LnRvVUludDY0KCkpOwogfQogICAgIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVs
ZUNvb2tpZUJsb2NraW5nVXBkYXRlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzI5LDcgKzczMCw3IEBA
IHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2NoZWR1bGVDb29raWVCbG9ja2luZ1VwZGF0ZShQ
QUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0g
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2NoZWR1bGVD
b29raWVCbG9ja2luZ1VwZGF0ZShzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlNjaGVkdWxlQ29va2llQmxvY2tpbmdVcGRhdGUoKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpzY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KFBBTDo6U2Vz
c2lvbklEIHNlc3Npb25JRCwgc3RkOjpvcHRpb25hbDxXYWxsVGltZT4gbW9kaWZpZWRTaW5jZSwg
U2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzIHNob3VsZEdyYW5kZmF0aGVyLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03NDksNyArNzUwLDcgQEAg
dm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
c1Byb2Nlc3NpbmcoUEFMOjpTZXNzaW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAg
ICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTY2hlZHVsZVN0
YXRpc3RpY3NBbmREYXRhUmVjb3Jkc1Byb2Nlc3Npbmcoc2Vzc2lvbklEKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTY2hlZHVsZVN0YXRpc3RpY3NBbmREYXRhUmVjb3Jk
c1Byb2Nlc3NpbmcoKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJ
bnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzdGF0aXN0aWNzRGF0YWJh
c2VIYXNBbGxUYWJsZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtNzU5LDcgKzc2MCw3IEBAIHZv
aWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAg
c2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U3RhdGlzdGljc0Rh
dGFiYXNlSGFzQWxsVGFibGVzKHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6U3RhdGlzdGljc0RhdGFiYXNlSGFzQWxsVGFibGVzKCksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6bG9nVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC03NjksNyArNzcwLDcgQEAgdm9p
ZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojpsb2dVc2VySW50ZXJhY3Rpb24oUEFMOjpTZXNzaW9uSUQg
c2Vzc2lvbklELCBjb25zdCBSZWcKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIHNlbmRX
aXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OkxvZ1VzZXJJbnRlcmFjdGlv
bihzZXNzaW9uSUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikp
OworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlz
dGljc1N0b3JlOjpMb2dVc2VySW50ZXJhY3Rpb24ocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6Omhhc0hhZFVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNz
aW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiByZXNvdXJjZURvbWFpbiwgQ29tcGxldGlv
bkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTc3OSwxMiArNzgw
LDEyIEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aGFzSGFkVXNlckludGVyYWN0aW9uKFBB
TDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAg
ICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpIYWRV
c2VySW50ZXJhY3Rpb24oc2Vzc2lvbklELCByZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SGFzSGFkVXNlckludGVyYWN0aW9uKHJlc291cmNlRG9t
YWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5Ojppc1JlbGF0aW9uc2hpcE9ubHlJbkRhdGFi
YXNlT25jZShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWlu
JiBzdWJEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BEb21haW4sIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7Ci0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZWxhdGlvbnNoaXBPbmx5
SW5EYXRhYmFzZU9uY2Uoc2Vzc2lvbklELCBzdWJEb21haW4sIHRvcERvbWFpbiksIFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Oldl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNSZWxhdGlvbnNoaXBPbmx5SW5EYXRhYmFz
ZU9uY2Uoc3ViRG9tYWluLCB0b3BEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwg
c2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmNs
ZWFyVXNlckludGVyYWN0aW9uKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYg
Y29tcGxldGlvbkhhbmRsZXIpCkBAIC03OTQsNyArNzk1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vz
c1Byb3h5OjpjbGVhclVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFIKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpDbGVhclVzZXJJbnRlcmFjdGlvbihzZXNzaW9u
SUQsIHJlc291cmNlRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
OjpDbGVhclVzZXJJbnRlcmFjdGlvbihyZXNvdXJjZURvbWFpbiksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6aGFzTG9jYWxTdG9yYWdlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3Qg
UmVnaXN0cmFibGVEb21haW4mIHJlc291cmNlRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lk
KGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODI0LDcgKzgyNSw3IEBAIHZvaWQgTmV0
d29ya1Byb2Nlc3NQcm94eTo6c2V0VGltZVRvTGl2ZVVzZXJJbnRlcmFjdGlvbihQQUw6OlNlc3Np
b25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0VGltZVRvTGl2ZVVzZXJJ
bnRlcmFjdGlvbihzZXNzaW9uSUQsIHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlNldFRpbWVUb0xpdmVVc2VySW50ZXJhY3Rpb24oc2Vjb25kcyksIFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQg
TmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNXZXJlU2Nh
bm5lZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGJvb2wgdmFsdWUsIENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTgzNCw3ICs4MzUsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldE5vdGlmeVBhZ2VzV2hlbkRhdGFSZWNvcmRzV2VyZVNj
YW5uZWQoUEFMOjpTZXNzaW9uSQogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldE5vdGlmeVBhZ2Vz
V2hlbkRhdGFSZWNvcmRzV2VyZVNjYW5uZWQoc2Vzc2lvbklELCB2YWx1ZSksIFdURk1vdmUoY29t
cGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0Tm90aWZ5UGFnZXNXaGVuRGF0YVJlY29yZHNX
ZXJlU2Nhbm5lZCh2YWx1ZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQu
dG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0SXNSdW5uaW5n
UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Rlc3QoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBib29s
IHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC04NDQsNyArODQ1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRJc1J1bm5pbmdS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzVGVzdChQQUw6OlNlc3Npb25JRAogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldElzUnVubmluZ1Jlc291cmNlTG9hZFN0YXRpc3RpY3NUZXN0KHNlc3Npb25JRCwg
dmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldElzUnVubmlu
Z1Rlc3QodmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YmZyYW1lVW5kZXJU
b3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxl
RG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1l
RG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBA
IC04NTQsNyArODU1LDcgQEAgdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJmcmFtZVVu
ZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbkkKICAgICAgICAgcmV0dXJu
OwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQ
cm9jZXNzOjpTZXRTdWJmcmFtZVVuZGVyVG9wRnJhbWVEb21haW4oc2Vzc2lvbklELCBzdWJGcmFt
ZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7Cisg
ICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNz
U3RvcmU6OlNldFN1YmZyYW1lVW5kZXJUb3BGcmFtZURvbWFpbihzdWJGcmFtZURvbWFpbiwgdG9w
RnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUlu
dDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzUmVk
aXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9t
YWluJiBkb21haW5SZWRpcmVjdGVkRnJvbSwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFp
blJlZGlyZWN0ZWRUbywgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKQEAgLTg2NCw3ICs4NjUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omlz
UmVnaXN0ZXJlZEFzUmVkaXJlY3RpbmdUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2Vz
OjpOZXR3b3JrUHJvY2Vzczo6SXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKHNlc3Npb25JRCwg
ZG9tYWluUmVkaXJlY3RlZEZyb20sIGRvbWFpblJlZGlyZWN0ZWRUbyksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6SXNSZWdpc3RlcmVkQXNSZWRpcmVjdGluZ1RvKGRvbWFp
blJlZGlyZWN0ZWRGcm9tLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmlzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJGcmFtZURvbWFpbiwgY29uc3QgUmVnaXN0
cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKGJvb2wp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODc0LDcgKzg3NSw3IEBAIHZvaWQgTmV0d29ya1By
b2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJGcmFtZVVuZGVyKFBBTDo6U2Vzc2lvbklEIHNl
c3Npb25JRCwKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpJc1JlZ2lzdGVyZWRBc1N1YkZyYW1lVW5k
ZXIoc2Vzc2lvbklELCBzdWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJS
ZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVnaXN0ZXJlZEFzU3ViRnJhbWVVbmRlcihz
dWJGcmFtZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFN1YnJlc291cmNlVW5kZXJUb3BGcmFtZURvbWFpbihQQUw6OlNlc3Npb25JRCBzZXNzaW9u
SUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVn
aXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC04ODQsNyArODg1LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJhbWVEb21haW4oUEFMOjpTZXNzaW9u
SUQgc2Vzc2kKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdWJyZXNvdXJjZVVuZGVyVG9wRnJh
bWVEb21haW4oc2Vzc2lvbklELCBzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBX
VEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OlNldFN1YnJlc291cmNlVW5kZXJU
b3BGcmFtZURvbWFpbihzdWJyZXNvdXJjZURvbWFpbiwgdG9wRnJhbWVEb21haW4pLCBXVEZNb3Zl
KGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5l
dHdvcmtQcm9jZXNzUHJveHk6OmlzUmVnaXN0ZXJlZEFzU3VicmVzb3VyY2VVbmRlcihQQUw6OlNl
c3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURv
bWFpbiwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRvcEZyYW1lRG9tYWluLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtODk0LDcgKzg5NSw3
IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6aXNSZWdpc3RlcmVkQXNTdWJyZXNvdXJjZVVu
ZGVyKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAg
Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6SXNSZWdp
c3RlcmVkQXNTdWJyZXNvdXJjZVVuZGVyKHNlc3Npb25JRCwgc3VicmVzb3VyY2VEb21haW4sIHRv
cEZyYW1lRG9tYWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRo
QXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc1Jl
Z2lzdGVyZWRBc1N1YnJlc291cmNlVW5kZXIoc3VicmVzb3VyY2VEb21haW4sIHRvcEZyYW1lRG9t
YWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsK
IH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0VG8oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
c3VicmVzb3VyY2VEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVj
dGVkVG8sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAg
LTkwNCw3ICs5MDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFN1YnJlc291cmNl
VW5pcXVlUmVkaXJlY3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSQogICAgICAgICByZXR1cm47
CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzZXNzaW9uSUQsIHN1YnJlc291
cmNlRG9tYWluLCBkb21haW5SZWRpcmVjdGVkVG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0
aXN0aWNzU3RvcmU6OlNldFN1YnJlc291cmNlVW5pcXVlUmVkaXJlY3RUbyhzdWJyZXNvdXJjZURv
bWFpbiwgZG9tYWluUmVkaXJlY3RlZFRvKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNl
c3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRT
dWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBzdWJyZXNvdXJjZURvbWFpbiwgY29uc3QgUmVnaXN0cmFi
bGVEb21haW4mIGRvbWFpblJlZGlyZWN0ZWRGcm9tLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+
JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05MTQsNyArOTE1LDcgQEAgdm9pZCBOZXR3b3JrUHJv
Y2Vzc1Byb3h5OjpzZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGlyZWN0RnJvbShQQUw6OlNlc3Npb25J
RCBzZXNzaW8KICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRTdWJyZXNvdXJjZVVuaXF1ZVJlZGly
ZWN0RnJvbShzZXNzaW9uSUQsIHN1YnJlc291cmNlRG9tYWluLCBkb21haW5SZWRpcmVjdGVkRnJv
bSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0U3VicmVzb3VyY2VV
bmlxdWVSZWRpcmVjdEZyb20oc3VicmVzb3VyY2VEb21haW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9t
KSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0K
IAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0VG8o
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgdG9wRnJh
bWVEb21haW4sIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW5SZWRpcmVjdGVkVG8sIENv
bXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkyNCw3ICs5
MjUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJl
Y3RUbyhQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsCiAgICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHNlc3Npb25JRCwgdG9wRnJhbWVEb21haW4sIGRvbWFp
blJlZGlyZWN0ZWRUbyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0
VG9wRnJhbWVVbmlxdWVSZWRpcmVjdFRvKHRvcEZyYW1lRG9tYWluLCBkb21haW5SZWRpcmVjdGVk
VG8pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwog
fQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RG
cm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIHRv
cEZyYW1lRG9tYWluLCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluUmVkaXJlY3RlZEZy
b20sIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTkz
NCw3ICs5MzUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRvcEZyYW1lVW5pcXVl
UmVkaXJlY3RGcm9tKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRAogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlNldFRvcEZyYW1lVW5pcXVlUmVkaXJlY3RGcm9tKHNlc3Npb25JRCwgdG9wRnJhbWVEb21h
aW4sIGRvbWFpblJlZGlyZWN0ZWRGcm9tKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwor
ICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGlj
c1N0b3JlOjpTZXRUb3BGcmFtZVVuaXF1ZVJlZGlyZWN0RnJvbSh0b3BGcmFtZURvbWFpbiwgZG9t
YWluUmVkaXJlY3RlZEZyb20pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklE
LnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzR3JhbmRmYXRo
ZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBy
ZXNvdXJjZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChib29sKT4mJiBjb21wbGV0aW9u
SGFuZGxlcikKQEAgLTk0NCw3ICs5NDUsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6Omlz
R3JhbmRmYXRoZXJlZChQQUw6OlNlc3Npb25JRCBzZXNzaW9uSUQsIGNvbnN0IFJlZ2lzdAogICAg
ICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6TmV0d29ya1Byb2Nlc3M6OklzR3JhbmRmYXRoZXJlZChzZXNzaW9uSUQsIHJlc291cmNlRG9t
YWluKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpJc0dyYW5kZmF0aGVy
ZWQocmVzb3VyY2VEb21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklE
LnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEdyYW5kZmF0
aGVyZWQoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYg
cmVzb3VyY2VEb21haW4sIGJvb2wgaXNHcmFuZGZhdGhlcmVkLCBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC05NTQsNyArOTU1LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpzZXRHcmFuZGZhdGhlcmVkKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25J
RCwgY29uc3QgUmVnaXMKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRHcmFuZGZhdGhlcmVkKHNl
c3Npb25JRCwgcmVzb3VyY2VEb21haW4sIGlzR3JhbmRmYXRoZXJlZCksIFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291
cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0R3JhbmRmYXRoZXJlZChyZXNvdXJjZURvbWFpbiwg
aXNHcmFuZGZhdGhlcmVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50
b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpyZXF1ZXN0U3RvcmFn
ZUFjY2Vzc0NvbmZpcm0oV2ViUGFnZVByb3h5SWRlbnRpZmllciBwYWdlSUQsIEZyYW1lSWRlbnRp
ZmllciBmcmFtZUlELCBjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgc3ViRnJhbWVEb21haW4sIGNv
bnN0IFJlZ2lzdHJhYmxlRG9tYWluJiB0b3BGcmFtZURvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZChib29sKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTk4NSw3ICs5ODYsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OmdldFJlc291cmNlTG9hZFN0YXRpc3RpY3NEYXRhU3VtbWFy
eShQQUw6OlNlc3Npb25JRCBzZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6R2V0UmVzb3VyY2VMb2FkU3Rh
dGlzdGljc0RhdGFTdW1tYXJ5KHNlc3Npb25JRCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
KTsKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRp
c3RpY3NTdG9yZTo6QWdncmVnYXRlZFRoaXJkUGFydHlEYXRhKCksIFdURk1vdmUoY29tcGxldGlv
bkhhbmRsZXIpLCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nl
c3NQcm94eTo6c2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbklELCBTZWNvbmRzIHNlY29uZHMsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
KT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEwMTUsNyArMTAxNiw3IEBAIHZvaWQgTmV0d29y
a1Byb2Nlc3NQcm94eTo6c2V0R3JhbmRmYXRoZXJpbmdUaW1lKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgU2Vjb25kCiAgICAgICAgIHJldHVybjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0R3JhbmRmYXRoZXJpbmdUaW1l
KHNlc3Npb25JRCwgc2Vjb25kcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBz
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9y
ZTo6U2V0R3JhbmRmYXRoZXJpbmdUaW1lKHNlY29uZHMpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6
ZV90IG1heGltdW1FbnRyeUNvdW50LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxl
dGlvbkhhbmRsZXIpCkBAIC0xMDI1LDcgKzEwMjYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJv
eHk6OnNldE1heFN0YXRpc3RpY3NFbnRyaWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6
ZQogICAgICAgICByZXR1cm47CiAgICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpOZXR3b3JrUHJvY2Vzczo6U2V0TWF4U3RhdGlzdGljc0VudHJpZXMoc2Vzc2lvbklELCBt
YXhpbXVtRW50cnlDb3VudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6
U2V0TWF4U3RhdGlzdGljc0VudHJpZXMobWF4aW11bUVudHJ5Q291bnQpLCBXVEZNb3ZlKGNvbXBs
ZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldE1pbmltdW1UaW1lQmV0d2VlbkRhdGFSZWNvcmRzUmVtb3ZhbChQQUw6
OlNlc3Npb25JRCBzZXNzaW9uSUQsIFNlY29uZHMgc2Vjb25kcywgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTAzNSw3ICsxMDM2LDcgQEAgdm9pZCBO
ZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jkc1JlbW92
YWwoUEFMOjpTZXNzaW9uSUQKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpTZXRNaW5pbXVtVGltZUJl
dHdlZW5EYXRhUmVjb3Jkc1JlbW92YWwoc2Vzc2lvbklELCBzZWNvbmRzKSwgV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVz
b3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRNaW5pbXVtVGltZUJldHdlZW5EYXRhUmVjb3Jk
c1JlbW92YWwoc2Vjb25kcyksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQu
dG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJ1bmVFbnRy
aWVzRG93blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90IHBydW5lVGFyZ2V0Q291
bnQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAgLTEw
NDUsNyArMTA0Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UHJ1bmVFbnRyaWVz
RG93blRvKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgc2l6ZV90CiAgICAgICAgIHJldHVybjsK
ICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNz
OjpTZXRQcnVuZUVudHJpZXNEb3duVG8oc2Vzc2lvbklELCBwcnVuZVRhcmdldENvdW50KSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlOjpTZXRQcnVuZUVudHJpZXNEb3duVG8o
cHJ1bmVUYXJnZXRDb3VudCksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpLCBzZXNzaW9uSUQu
dG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0U2hvdWxkQ2xh
c3NpZnlSZXNvdXJjZXNCZWZvcmVEYXRhUmVjb3Jkc1JlbW92YWwoUEFMOjpTZXNzaW9uSUQgc2Vz
c2lvbklELCBib29sIHZhbHVlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCkBAIC0xMDU1LDcgKzEwNTYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6
OnNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29yZHNSZW1vdmFsKFBBTAog
ICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0
YVJlY29yZHNSZW1vdmFsKHNlc3Npb25JRCwgdmFsdWUpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5k
bGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRT
dGF0aXN0aWNzU3RvcmU6OlNldFNob3VsZENsYXNzaWZ5UmVzb3VyY2VzQmVmb3JlRGF0YVJlY29y
ZHNSZW1vdmFsKHZhbHVlKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50
b1VJbnQ2NCgpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1Byb3h5OjpzZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRGVidWdNb2RlKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgYm9vbCBkZWJ1
Z01vZGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKQEAg
LTEwNjUsNyArMTA2Niw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2V0UmVzb3VyY2VM
b2FkU3RhdGlzdGljc0RlYnVnTW9kZShQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAgICAgCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3Jr
UHJvY2Vzczo6U2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShzZXNzaW9uSUQsIGRl
YnVnTW9kZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0UmVzb3Vy
Y2VMb2FkU3RhdGlzdGljc0RlYnVnTW9kZShkZWJ1Z01vZGUpLCBXVEZNb3ZlKGNvbXBsZXRpb25I
YW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OmlzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoYm9vbCk+JiYgY29tcGxldGlvbkhhbmRs
ZXIpCkBAIC0xMDc1LDcgKzEwNzYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmlzUmVz
b3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChQQUw6OlNlc3Npb25JRCBzZXNzaQogICAgICAg
ICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
TmV0d29ya1Byb2Nlc3M6OklzUmVzb3VyY2VMb2FkU3RhdGlzdGljc0VwaGVtZXJhbChzZXNzaW9u
SUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5
KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OklzUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc0VwaGVtZXJhbCgpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lv
bklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q2Fj
aGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMDg1
LDkgKzEwODYsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnJlc2V0Q2FjaGVNYXhBZ2VD
YXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoUEFMOjpTZXNzaW9uSQogICAgICAgICByZXR1cm47CiAg
ICAgfQogICAgIAotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nl
c3M6OlJlc2V0Q2FjaGVNYXhBZ2VDYXBGb3JQcmV2YWxlbnRSZXNvdXJjZXMoc2Vzc2lvbklEKSwg
W2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcildKCkgbXV0YWJs
ZSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7Ci0gICAgfSk7CisgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6UmVzZXRDYWNoZU1heEFnZUNhcEZv
clByZXZhbGVudFJlc291cmNlcyhzZXNzaW9uSUQpLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6cmVzZXRQYXJhbWV0ZXJzVG9EZWZh
dWx0VmFsdWVzKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9p
ZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTA5Nyw5ICsxMDk2LDcgQEAgdm9pZCBOZXR3
b3JrUHJvY2Vzc1Byb3h5OjpyZXNldFBhcmFtZXRlcnNUb0RlZmF1bHRWYWx1ZXMoUEFMOjpTZXNz
aW9uSUQgc2Vzc2lvbkkKICAgICAgICAgcmV0dXJuOwogICAgIH0KICAgICAKLSAgICBzZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5ldHdvcmtQcm9jZXNzOjpSZXNldFBhcmFtZXRlcnNUb0Rl
ZmF1bHRWYWx1ZXMoc2Vzc2lvbklEKSwgW2NvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21w
bGV0aW9uSGFuZGxlcildKCkgbXV0YWJsZSB7Ci0gICAgICAgIGNvbXBsZXRpb25IYW5kbGVyKCk7
Ci0gICAgfSk7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzU3RvcmU6OlJlc2V0UGFyYW1ldGVyc1RvRGVmYXVsdFZhbHVlcygpLCBXVEZN
b3ZlKGNvbXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBTaG91bGRHcmFuZGZhdGhlclN0YXRpc3RpY3Mgc2hv
dWxkR3JhbmRmYXRoZXIsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJiBjb21wbGV0aW9uSGFu
ZGxlcikKQEAgLTExMDksOSArMTEwNiw3IEBAIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6c2No
ZWR1bGVDbGVhckluTWVtb3J5QW5kUGVyc2lzdGVudChQQUw6OlNlc3Npb25JRCBzZXNzCiAgICAg
ICAgIHJldHVybjsKICAgICB9CiAKLSAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6Ok5l
dHdvcmtQcm9jZXNzOjpTY2hlZHVsZUNsZWFySW5NZW1vcnlBbmRQZXJzaXN0ZW50KHNlc3Npb25J
RCwgeyB9LCBzaG91bGRHcmFuZGZhdGhlciksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUo
Y29tcGxldGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxl
cigpOwotICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNjaGVkdWxlQ2xlYXJJbk1lbW9yeUFuZFBlcnNpc3RlbnQoc2Vzc2lvbklELCB7IH0s
IHNob3VsZEdyYW5kZmF0aGVyKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOwogfQogCiB2
b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OmxvZ1Rlc3RpbmdFdmVudChQQUw6OlNlc3Npb25JRCBz
ZXNzaW9uSUQsIGNvbnN0IFN0cmluZyYgZXZlbnQpCkBAIC0xMTYyLDcgKzExNTcsNyBAQCB2b2lk
IE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldENyb3NzU2l0ZUxvYWRXaXRoTGlua0RlY29yYXRpb25G
b3JUZXN0aW5nKFBBTDo6U2VzcwogICAgICAgICByZXR1cm47CiAgICAgfQogICAgIAotICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldENyb3NzU2l0ZUxv
YWRXaXRoTGlua0RlY29yYXRpb25Gb3JUZXN0aW5nKHNlc3Npb25JRCwgZnJvbURvbWFpbiwgdG9E
b21haW4pLCBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVyKSk7CisgICAgc2VuZFdpdGhBc3luY1Jl
cGx5KE1lc3NhZ2VzOjpXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmU6OkxvZ0Nyb3NzU2l0
ZUxvYWRXaXRoTGlua0RlY29yYXRpb24oZnJvbURvbWFpbiwgdG9Eb21haW4pLCBXVEZNb3ZlKGNv
bXBsZXRpb25IYW5kbGVyKSwgc2Vzc2lvbklELnRvVUludDY0KCkpOwogfQogCiB2b2lkIE5ldHdv
cmtQcm9jZXNzUHJveHk6OnJlc2V0Q3Jvc3NTaXRlTG9hZHNXaXRoTGlua0RlY29yYXRpb25Gb3JU
ZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgp
PiYmIGNvbXBsZXRpb25IYW5kbGVyKQpAQCAtMTIxNSw5ICsxMjEwLDcgQEAgdm9pZCBOZXR3b3Jr
UHJvY2Vzc1Byb3h5OjpoYXNJc29sYXRlZFNlc3Npb24oUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklE
LCBjb25zdCBSZWcKICNpZiBFTkFCTEUoQVBQX0JPVU5EX0RPTUFJTlMpCiB2b2lkIE5ldHdvcmtQ
cm9jZXNzUHJveHk6OnNldEFwcEJvdW5kRG9tYWluc0ZvclJlc291cmNlTG9hZFN0YXRpc3RpY3Mo
UEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBjb25zdCBIYXNoU2V0PFJlZ2lzdHJhYmxlRG9tYWlu
PiYgYXBwQm91bmREb21haW5zLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlv
bkhhbmRsZXIpCiB7Ci0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJv
Y2Vzczo6U2V0QXBwQm91bmREb21haW5zRm9yUmVzb3VyY2VMb2FkU3RhdGlzdGljcyhzZXNzaW9u
SUQsIGFwcEJvdW5kRG9tYWlucyksIFtjb21wbGV0aW9uSGFuZGxlciA9IFdURk1vdmUoY29tcGxl
dGlvbkhhbmRsZXIpXSgpIG11dGFibGUgewotICAgICAgICBjb21wbGV0aW9uSGFuZGxlcigpOwot
ICAgIH0pOworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlOjpTZXRBcHBCb3VuZERvbWFpbnMoYXBwQm91bmREb21haW5zKSwgV1RG
TW92ZShjb21wbGV0aW9uSGFuZGxlciksIHNlc3Npb25JRC50b1VJbnQ2NCgpKTsKIH0KICNlbmRp
ZgogCkBAIC0xMjUyLDkgKzEyNDUsOSBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFRo
aXJkUGFydHlDb29raWVCbG9ja2luZ01vZGUoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbgogICAgIH0p
OwogfQogCi12b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldFNob3VsZEVuYmxlU2FtZVNpdGVT
dHJpY3RFbmZvcmNlbWVudEZvclRlc3RpbmcoUEFMOjpTZXNzaW9uSUQgc2Vzc2lvbklELCBXZWJD
b3JlOjpTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZCBlbmFibGVkLCBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIE5ldHdvcmtQcm9jZXNz
UHJveHk6OnNldFNob3VsZEVuYWJsZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5n
KFBBTDo6U2Vzc2lvbklEIHNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNl
bWVudEVuYWJsZWQgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRp
b25IYW5kbGVyKQogewotICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1By
b2Nlc3M6OlNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEZvclRlc3Rpbmco
c2Vzc2lvbklELCBlbmFibGVkKSwgV1RGTW92ZShjb21wbGV0aW9uSGFuZGxlcikpOworICAgIHNl
bmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6TmV0d29ya1Byb2Nlc3M6OlNldFNob3VsZEVuYWJs
ZVNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRGb3JUZXN0aW5nKHNlc3Npb25JRCwgZW5hYmxlZCks
IFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKIH0KIAogdm9pZCBOZXR3b3JrUHJvY2Vzc1By
b3h5OjpzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3RpbmcoUEFMOjpT
ZXNzaW9uSUQgc2Vzc2lvbklELCBGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZSBtb2Rl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYgY29tcGxldGlvbkhhbmRsZXIpCkBAIC0xMjY0
LDcgKzEyNTcsNyBAQCB2b2lkIE5ldHdvcmtQcm9jZXNzUHJveHk6OnNldEZpcnN0UGFydHlXZWJz
aXRlRGF0YVJlbW92YWxNb2RlRm9yVGVzdGluZyhQQUw6OlNlcwogICAgICAgICByZXR1cm47CiAg
ICAgfQogCi0gICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6
U2V0Rmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKHNlc3Npb25JRCwg
bW9kZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIpKTsKKyAgICBzZW5kV2l0aEFzeW5jUmVw
bHkoTWVzc2FnZXM6OldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6U2V0Rmlyc3RQYXJ0
eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGUobW9kZSksIFdURk1vdmUoY29tcGxldGlvbkhhbmRsZXIp
LCBzZXNzaW9uSUQudG9VSW50NjQoKSk7CiB9CiAKIHZvaWQgTmV0d29ya1Byb2Nlc3NQcm94eTo6
c2V0VG9TYW1lU2l0ZVN0cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklEIHNlc3Np
b25JRCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGRvbWFpbiwgQ29tcGxldGlvbkhhbmRsZXI8
dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvTmV0d29yay9OZXR3b3JrUHJvY2Vzc1Byb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9OZXR3b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaAppbmRleCA1YzljNDUzZGNjNGQ1
ODYxOGY4NTY5MWEwNGIxNTU3NWI1YTNiY2M5Li40ZDA4NjhlOTdjODE0M2U1NzU5MmMxMWI5OGQ4
MjVjYThlNDAyM2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3b3Jr
L05ldHdvcmtQcm9jZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9OZXR3
b3JrL05ldHdvcmtQcm9jZXNzUHJveHkuaApAQCAtMTk5LDcgKzE5OSw3IEBAIHB1YmxpYzoKICNl
bmRpZgogICAgIHZvaWQgc2V0U2hvdWxkRG93bmdyYWRlUmVmZXJyZXJGb3JUZXN0aW5nKGJvb2ws
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRUaGlyZFBhcnR5Q29v
a2llQmxvY2tpbmdNb2RlKFBBTDo6U2Vzc2lvbklELCBXZWJDb3JlOjpUaGlyZFBhcnR5Q29va2ll
QmxvY2tpbmdNb2RlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgc2V0
U2hvdWxkRW5ibGVTYW1lU2l0ZVN0cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Np
b25JRCwgV2ViQ29yZTo6U2FtZVNpdGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoKT4mJik7CisgICAgdm9pZCBzZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgV2ViQ29yZTo6U2FtZVNp
dGVTdHJpY3RFbmZvcmNlbWVudEVuYWJsZWQsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
CiAgICAgdm9pZCBzZXRGaXJzdFBhcnR5V2Vic2l0ZURhdGFSZW1vdmFsTW9kZUZvclRlc3Rpbmco
UEFMOjpTZXNzaW9uSUQsIFdlYkNvcmU6OkZpcnN0UGFydHlXZWJzaXRlRGF0YVJlbW92YWxNb2Rl
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQgc2V0VG9TYW1lU2l0ZVN0
cmljdENvb2tpZXNGb3JUZXN0aW5nKFBBTDo6U2Vzc2lvbklELCBjb25zdCBSZWdpc3RyYWJsZURv
bWFpbiYsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBzZXRGaXJzdFBh
cnR5SG9zdENOQU1FRG9tYWluRm9yVGVzdGluZyhQQUw6OlNlc3Npb25JRCwgY29uc3QgU3RyaW5n
JiBmaXJzdFBhcnR5SG9zdCwgY29uc3QgUmVnaXN0cmFibGVEb21haW4mIGNuYW1lRG9tYWluLCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYlBh
Z2VQcm94eS5jcHAKaW5kZXggYWZiMzc0MmU5MjEwYjE5ZGI0YjQxNDUyODEyNGE0YzFiZmE1NmVi
My4uMjA2MmQ5OTU5NGU2MTEzNDg1ZmJmOTliNmQ2Yzc5N2U0N2JiNDc2ZCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViUGFnZVByb3h5LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJQYWdlUHJveHkuY3BwCkBAIC0xNDIsNiArMTQyLDcgQEAKICNpbmNs
dWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlICJXZWJQcm90ZWN0aW9uU3BhY2UuaCIK
ICNpbmNsdWRlICJXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUuaCIKKyNpbmNsdWRlICJX
ZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlcy5oIgogI2luY2x1ZGUgIldlYlVS
TFNjaGVtZUhhbmRsZXIuaCIKICNpbmNsdWRlICJXZWJVc2VyQ29udGVudENvbnRyb2xsZXJQcm94
eS5oIgogI2luY2x1ZGUgIldlYlZpZXdEaWRNb3ZlVG9XaW5kb3dPYnNlcnZlci5oIgpAQCAtNTU2
OCw3ICs1NTY5LDcgQEAgdm9pZCBXZWJQYWdlUHJveHk6OmxvZ0ZyYW1lTmF2aWdhdGlvbihjb25z
dCBXZWJGcmFtZVByb3h5JiBmcmFtZSwgY29uc3QgVVJMJiBwYWcKICAgICBpZiAodGFyZ2V0SG9z
dC5pc0VtcHR5KCkgfHwgbWFpbkZyYW1lSG9zdC5pc0VtcHR5KCkgfHwgdGFyZ2V0SG9zdCA9PSBz
b3VyY2VVUkwuaG9zdCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICB3ZWJzaXRlRGF0YVN0b3Jl
KCkubmV0d29ya1Byb2Nlc3MoKS5zZW5kKE1lc3NhZ2VzOjpOZXR3b3JrUHJvY2Vzczo6TG9nRnJh
bWVOYXZpZ2F0aW9uKG1fd2Vic2l0ZURhdGFTdG9yZS0+c2Vzc2lvbklEKCksIFJlZ2lzdHJhYmxl
RG9tYWluIHsgdGFyZ2V0VVJMIH0sIFJlZ2lzdHJhYmxlRG9tYWluIHsgcGFnZVVSTCB9LCBSZWdp
c3RyYWJsZURvbWFpbiB7IHNvdXJjZVVSTCB9LCBpc1JlZGlyZWN0LCBmcmFtZS5pc01haW5GcmFt
ZSgpLCBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yTWFp
bkZyYW1lVGltZXN0YW1wLCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlciksIDApOworICAg
IHdlYnNpdGVEYXRhU3RvcmUoKS5uZXR3b3JrUHJvY2VzcygpLnNlbmQoTWVzc2FnZXM6OldlYlJl
c291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZTo6TG9nRnJhbWVOYXZpZ2F0aW9uKFJlZ2lzdHJhYmxl
RG9tYWluIHsgdGFyZ2V0VVJMIH0sIFJlZ2lzdHJhYmxlRG9tYWluIHsgcGFnZVVSTCB9LCBSZWdp
c3RyYWJsZURvbWFpbiB7IHNvdXJjZVVSTCB9LCBpc1JlZGlyZWN0LCBmcmFtZS5pc01haW5GcmFt
ZSgpLCBNb25vdG9uaWNUaW1lOjpub3coKSAtIG1fZGlkRmluaXNoRG9jdW1lbnRMb2FkRm9yTWFp
bkZyYW1lVGltZXN0YW1wLCB3YXNQb3RlbnRpYWxseUluaXRpYXRlZEJ5VXNlciksIHNlc3Npb25J
RCgpLnRvVUludDY0KCkpOwogfQogI2VuZGlmCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3BwIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKaW5kZXggNzFjZjky
MDdlZmQ5Y2EyOTVhYjg5MGQ2NzZlMmQzOWQ0OTJkNjY1OC4uZTY4MDYzMzMwZWI1OWU0MGQ5MTBi
ZDYyZWEzM2ZlZjkwMmE2YWQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAK
ICNpbmNsdWRlICJXZWJQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJQcm9jZXNzUG9v
bC5oIgogI2luY2x1ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5oIgorI2luY2x1
ZGUgIldlYlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZU1lc3NhZ2VzLmgiCiAjaW5jbHVkZSAi
V2Vic2l0ZURhdGEuaCIKICNpbmNsdWRlICJXZWJzaXRlRGF0YVN0b3JlQ2xpZW50LmgiCiAjaW5j
bHVkZSAiV2Vic2l0ZURhdGFTdG9yZVBhcmFtZXRlcnMuaCIKQEAgLTkwMiw3ICs5MDMsNyBAQCB2
b2lkIFdlYnNpdGVEYXRhU3RvcmU6OmlzUHJldmFsZW50UmVzb3VyY2UoY29uc3QgVVJMJiB1cmws
IENvbXBsZXRpb25IYW5kbGVyPHZvaQogewogICAgIEFTU0VSVChSdW5Mb29wOjppc01haW4oKSk7
CiAgICAgCi0gICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSB8fCB1cmwuaXNFbXB0eSgpKSB7
CisgICAgaWYgKHVybC5wcm90b2NvbElzQWJvdXQoKSB8fCB1cmwuaXNFbXB0eSgpIHx8ICFyZXNv
dXJjZUxvYWRTdGF0aXN0aWNzRW5hYmxlZCgpKSB7CiAgICAgICAgIGNvbXBsZXRpb25IYW5kbGVy
KGZhbHNlKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTEzOTYsNyArMTM5Nyw3IEBAIHZv
aWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0UmVzb3VyY2VMb2FkU3RhdGlzdGljc1Nob3VsZEVuYmxl
U2FtZVNpdGVTdHJpY3RFbmZvcmNlCiAgICAgYXV0byBmbGFnID0gZW5hYmxlZCA/IFdlYkNvcmU6
OlNhbWVTaXRlU3RyaWN0RW5mb3JjZW1lbnRFbmFibGVkOjpZZXMgOiBXZWJDb3JlOjpTYW1lU2l0
ZVN0cmljdEVuZm9yY2VtZW50RW5hYmxlZDo6Tm87CiAKICAgICBhdXRvIGNhbGxiYWNrQWdncmVn
YXRvciA9IENhbGxiYWNrQWdncmVnYXRvcjo6Y3JlYXRlKFdURk1vdmUoY29tcGxldGlvbkhhbmRs
ZXIpKTsKLSAgICBuZXR3b3JrUHJvY2VzcygpLnNldFNob3VsZEVuYmxlU2FtZVNpdGVTdHJpY3RF
bmZvcmNlbWVudEZvclRlc3RpbmcobV9zZXNzaW9uSUQsIGZsYWcsIFtjYWxsYmFja0FnZ3JlZ2F0
b3JdIHsgfSk7CisgICAgbmV0d29ya1Byb2Nlc3MoKS5zZXRTaG91bGRFbmFibGVTYW1lU2l0ZVN0
cmljdEVuZm9yY2VtZW50Rm9yVGVzdGluZyhtX3Nlc3Npb25JRCwgZmxhZywgW2NhbGxiYWNrQWdn
cmVnYXRvcl0geyB9KTsKIH0KIAogdm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRSZXNvdXJjZUxv
YWRTdGF0aXN0aWNzRmlyc3RQYXJ0eVdlYnNpdGVEYXRhUmVtb3ZhbE1vZGVGb3JUZXN0aW5nKGJv
b2wgZW5hYmxlZCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmIGNvbXBsZXRpb25IYW5kbGVy
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4
cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5k
ZXggZDI5ZmQ5MWNmNDQ2ZWM3OTU2NTI4NTQzY2ZhMzBhMzI0MjEzZGUzZi4uYzU0ZmIxZGMyODA5
NjBjNzYwOTVjYjU2NjJmYjAwOWJkMjBlOTg2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9X
ZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYktp
dC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMjU4LDYgKzEyNTgsNyBAQAogCQk1Q0U5
MTIxMTIyOTNDMjc4MDA1QkVDNzggLyogQXV4aWxpYXJ5UHJvY2Vzc01haW4uY3BwIGluIFNvdXJj
ZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNUNFOTEyMEYyMjkzQzI1RjAw
NUJFQzc4IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCAqLzsgfTsKIAkJNUNFOTEyMTIyMjkz
QzI3ODAwNUJFQzc4IC8qIEF1eGlsaWFyeVByb2Nlc3NNYWluLmNwcCBpbiBTb3VyY2VzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRTkxMjBGMjI5M0MyNUYwMDVCRUM3OCAv
KiBBdXhpbGlhcnlQcm9jZXNzTWFpbi5jcHAgKi87IH07CiAJCTVDRTkxMjE0MjI5M0MyODAwMDVC
RUM3OCAvKiBXS01haW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDVDRTkxMjBCMjI5M0MxRTAwMDVCRUM3OCAvKiBXS01haW4uaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1Q0VGMUQwRDI3ODYxQTgyMDBC
NUQ3OUMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNw
cCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDVDRUYxRDBD
Mjc4NjFBODIwMEI1RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdl
UmVjZWl2ZXIuY3BwICovOyB9OwogCQk2MzEwOEY5NjFGOTY3MTlDMDBBMERCODQgLyogX1dLQXBw
bGljYXRpb25NYW5pZmVzdC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNjMxMDhGOTQxRjk2NzE5QzAwQTBEQjg0IC8qIF9XS0FwcGxpY2F0aW9uTWFuaWZl
c3QuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk2
MzEwOEY5OTFGOTY3MUY3MDBBMERCODQgLyogX1dLQXBwbGljYXRpb25NYW5pZmVzdEludGVybmFs
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MzEwOEY5
ODFGOTY3MUY3MDBBMERCODQgLyogX1dLQXBwbGljYXRpb25NYW5pZmVzdEludGVybmFsLmggKi87
IH07CiAJCTYzNDg0MjUxMUZCMjZFNzEwMDk0NkUzQyAvKiBBUElBcHBsaWNhdGlvbk1hbmlmZXN0
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA2MzQ4NDI0
RjFGQjI2RTcxMDA5NDZFM0MgLyogQVBJQXBwbGljYXRpb25NYW5pZmVzdC5oICovOyB9OwpAQCAt
NDkxNyw2ICs0OTE4LDggQEAKIAkJNUNFOTEyMEYyMjkzQzI1RjAwNUJFQzc4IC8qIEF1eGlsaWFy
eVByb2Nlc3NNYWluLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEF1
eGlsaWFyeVByb2Nlc3NNYWluLmNwcDsgcGF0aCA9IENvY29hL0F1eGlsaWFyeVByb2Nlc3NNYWlu
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNUNFQUJBMkEyMzMzMjQ3NzAwNzk3
Nzk3IC8qIExlZ2FjeUdsb2JhbFNldHRpbmdzLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IExlZ2FjeUdsb2JhbFNldHRpbmdzLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTVDRUFCQTJCMjMzMzI1MTQwMDc5Nzc5NyAvKiBMZWdhY3lHbG9iYWxTZXR0aW5ncy5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lHbG9iYWxTZXR0aW5n
cy5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRUYxRDA4Mjc4NjA0REQwMEI1
RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVzc2FnZXMuaW4gKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBuYW1lID0gV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlLm1lc3NhZ2Vz
LmluOyBwYXRoID0gQ2xhc3NpZmllci9XZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmUubWVz
c2FnZXMuaW47IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTVDRUYxRDBDMjc4NjFBODIw
MEI1RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RL
bm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKIAkJNUNGRUNCMDMxRTFFRDFDODAwRjg4NTA0IC8qIExlZ2FjeUN1c3RvbVByb3RvY29s
TWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBMZWdhY3lD
dXN0b21Qcm90b2NvbE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1
REFENzNGMTExNkZGOTBDMDBFRTUzOTYgLyogQmFzZVRhcmdldC54Y2NvbmZpZyAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQueGNjb25maWc7IHBhdGggPSBCYXNlVGFyZ2V0LnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwogCQk2MzEwOEY5NDFGOTY3MTlDMDBBMERCODQgLyogX1dLQXBwbGljYXRp
b25NYW5pZmVzdC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBfV0tBcHBsaWNhdGlvbk1hbmlmZXN0Lmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0xMDExNSw2ICsxMDExOCw3IEBACiAJCQkJN0Ez
RkVDQTEyMUY3QzA5NzAwRjI2N0NEIC8qIFN0b3JhZ2VBY2Nlc3NTdGF0dXMuaCAqLywKIAkJCQk3
QTg0M0ExQTIxRTQxRkIyMDBERUY2NjMgLyogV2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3Jl
LmNwcCAqLywKIAkJCQk3QUZCRDM2MjIxRTUwRjM5MDA1REJBQ0IgLyogV2ViUmVzb3VyY2VMb2Fk
U3RhdGlzdGljc1N0b3JlLmggKi8sCisJCQkJNUNFRjFEMDgyNzg2MDRERDAwQjVENzlDIC8qIFdl
YlJlc291cmNlTG9hZFN0YXRpc3RpY3NTdG9yZS5tZXNzYWdlcy5pbiAqLywKIAkJCSk7CiAJCQlu
YW1lID0gQ2xhc3NpZmllcjsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CkBAIC0xMjIwNCw2
ICsxMjIwOCw3IEBACiAJCQkJQkNFRTdBQ0QxMjgxNzk4ODAwOTgyN0RBIC8qIFdlYlByb2Nlc3NQ
cm94eU1lc3NhZ2VzLmggKi8sCiAJCQkJNTFGMDYwREQxNjU0MzE3NTAwRjMyODFCIC8qIFdlYlJl
c291cmNlTG9hZGVyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUYwNjBERTE2NTQzMTc1
MDBGMzI4MUIgLyogV2ViUmVzb3VyY2VMb2FkZXJNZXNzYWdlcy5oICovLAorCQkJCTVDRUYxRDBD
Mjc4NjFBODIwMEI1RDc5QyAvKiBXZWJSZXNvdXJjZUxvYWRTdGF0aXN0aWNzU3RvcmVNZXNzYWdl
UmVjZWl2ZXIuY3BwICovLAogCQkJCTUxRjA2MEREMTY1NDMxNzUwMEYzMjgxRiAvKiBXZWJSVENN
b25pdG9yTWVzc2FnZVJlY2VpdmVyLmNwcCAqLywKIAkJCQk1MUYwNjBERDE2NTQzMTc1MDBGMzI4
MkMgLyogV2ViUlRDUmVzb2x2ZXJNZXNzYWdlUmVjZWl2ZXIuY3BwICovLAogCQkJCTQxRjA2MERE
MTY1NDMxNzUwMEYzMjgxQyAvKiBXZWJTb2NrZXRDaGFubmVsTWVzc2FnZVJlY2VpdmVyLmNwcCAq
LywKQEAgLTE1NzY5LDYgKzE1Nzc0LDcgQEAKIAkJCQk1MTdCNUY3OTI3NUU5N0ExMDAyREMyMkQg
LyogV2ViUHVzaERhZW1vbk1haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1MTdCNUY5OTI3NUVD
NjAxMDAyREMyMkQgLyogV2ViUHVzaE1lc3NhZ2VDb2NvYS5tbSBpbiBTb3VyY2VzICovLAogCQkJ
CTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxQiAvKiBXZWJSZXNvdXJjZUxvYWRlck1lc3NhZ2VSZWNl
aXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1Q0VGMUQwRDI3ODYxQTgyMDBCNUQ3OUMgLyog
V2ViUmVzb3VyY2VMb2FkU3RhdGlzdGljc1N0b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3Vy
Y2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYzMjgxRiAvKiBXZWJSVENNb25pdG9yTWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTUxRjA2MEUxMTY1NDMxODUwMEYz
MjgyQyAvKiBXZWJSVENSZXNvbHZlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQk0MUUwQTdDQjIzQjY0NUNEMDA1NjEwNjAgLyogV2ViU29ja2V0Q2hhbm5lbC5jcHAgaW4g
U291cmNlcyAqLywK
</data>
<flag name="commit-queue"
          id="474354"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>