<?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>233523</bug_id>
          
          <creation_ts>2021-11-26 07:16:08 -0800</creation_ts>
          <short_desc>Add support for NavigationPreloadManager</short_desc>
          <delta_ts>2021-12-02 00:58:05 -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>Service Workers</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>233490</dependson>
          <blocked>182852</blocked>
    
    <blocked>233698</blocked>
    
    <blocked>233751</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>achristensen</cc>
    
    <cc>adieulot</cc>
    
    <cc>annulen</cc>
    
    <cc>benjamin</cc>
    
    <cc>calvaris</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>tomac</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1817972</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-11-26 07:16:08 -0800</bug_when>
    <thetext>Add support for NavigationPreloadManager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817973</commentid>
    <comment_count>1</comment_count>
      <attachid>445202</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-11-26 07:29:22 -0800</bug_when>
    <thetext>Created attachment 445202
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1817979</commentid>
    <comment_count>2</comment_count>
    <who name="Thomas Steiner">tomac</who>
    <bug_when>2021-11-26 09:25:06 -0800</bug_when>
    <thetext>This now looks like a duplicate of https://bugs.webkit.org/show_bug.cgi?id=182852 for good :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819197</commentid>
    <comment_count>3</comment_count>
      <attachid>445562</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-01 05:14:23 -0800</bug_when>
    <thetext>Created attachment 445562
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819204</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-12-01 05:43:45 -0800</bug_when>
    <thetext>&lt;rdar://problem/85918550&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819220</commentid>
    <comment_count>5</comment_count>
      <attachid>445572</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-01 06:57:57 -0800</bug_when>
    <thetext>Created attachment 445572
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819280</commentid>
    <comment_count>6</comment_count>
      <attachid>445572</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-12-01 09:29:23 -0800</bug_when>
    <thetext>Comment on attachment 445572
Patch

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

r=me with comments/questions.

&gt; Source/WebCore/Modules/cache/DOMCache.cpp:305
&gt; +        }, &quot;fetch&quot;_s);

Why not cachedResourceRequestInitiators().fetch ?

&gt; Source/WebCore/Modules/fetch/WindowOrWorkerGlobalScopeFetch.cpp:65
&gt; +    }, &quot;fetch&quot;_s);

ditto.

&gt; Source/WebCore/Modules/fetch/WindowOrWorkerGlobalScopeFetch.cpp:80
&gt; +    }, &quot;fetch&quot;_s);

ditto.

&gt; Source/WebCore/workers/service/FetchEvent.cpp:173
&gt; +        }, &quot;navigation&quot;_s);

Do we want to add navigation to CachedResourceRequestInitiators for consistency?

&gt; Source/WebCore/workers/service/NavigationPreloadState.h:58
&gt; +    return NavigationPreloadState { *enabled, WTFMove(*headerValue) };

Could be:
return { { *enabled, WTFMove(*headerValue) } };

&gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:678
&gt; +        promise.resolve(result.releaseReturnValue());

Why doesn&apos;t settle() work here?

&gt; Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp:171
&gt; +    if (!isServiceWorkerNavigationPreloadEnabled)

A little surprised by the ! here. Could you please double check it is right?

&gt; Source/WebCore/workers/service/server/SWServerRegistration.h:117
&gt; +    NavigationPreloadState navigationPreloadState() { return m_preloadState; }

Seems like this function should be const and should return a `const NavigationPreloadState&amp;`

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:147
&gt; +        m_parameters.request.addHTTPHeaderField(&quot;Service-Worker-Navigation-Preload&quot;_s, m_state.headerValue);

We may want to add this new header to HTTPHeaderNames.in instead of using a string literal.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:87
&gt; +    bool m_shouldCaptureExtraNetworkLoadMetrics { false };

We may want to group the boolean data members together for better packing.

&gt; Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:530
&gt; +        callback(ExceptionData { InvalidStateError, { &quot;No registration&quot;_s } });

Why the { } around the &quot;No registration&quot;_s ? If the idea is to construct a String and the compiler really doesn&apos;t want to build without it, then maybe &quot;No registration&quot;_str would work.

Same comment below in this file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819586</commentid>
    <comment_count>7</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-01 23:19:49 -0800</bug_when>
    <thetext>Thanks for the review.

&gt; Why not cachedResourceRequestInitiators().fetch ?

OK

&gt; Do we want to add navigation to CachedResourceRequestInitiators for
&gt; consistency?

Will do.

&gt; &gt; Source/WebCore/workers/service/ServiceWorkerContainer.cpp:678
&gt; &gt; +        promise.resolve(result.releaseReturnValue());
&gt; 
&gt; Why doesn&apos;t settle() work here?

settle expects a ExceptionOr&lt;const NavigationPreloadState&amp;&gt; and we provide a ExceptionOr&lt;NavigationPreloadState&gt;.
I guess we could improve settle to support this by adding a version with StorageType.

&gt; &gt; Source/WebCore/workers/service/context/ServiceWorkerFetch.cpp:171
&gt; &gt; +    if (!isServiceWorkerNavigationPreloadEnabled)
&gt; 
&gt; A little surprised by the ! here. Could you please double check it is right?

Will add a comment.
We cannot reuse a service worker navigation preload when fetching the request directly in case there is a Vary: Service-Worker-Navigation-Preload.

&gt; &gt; Source/WebCore/workers/service/server/SWServerRegistration.h:117
&gt; &gt; +    NavigationPreloadState navigationPreloadState() { return m_preloadState; }
&gt; 
&gt; Seems like this function should be const and should return a `const
&gt; NavigationPreloadState&amp;`

Yes, I was fixing this in a follow-up patch to add persistency but will add it there.

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:147
&gt; &gt; +        m_parameters.request.addHTTPHeaderField(&quot;Service-Worker-Navigation-Preload&quot;_s, m_state.headerValue);
&gt; 
&gt; We may want to add this new header to HTTPHeaderNames.in instead of using a
&gt; string literal.

OK.
I was not exactly sure whether that was useful enough, given we will never query this header for instance.

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:87
&gt; &gt; +    bool m_shouldCaptureExtraNetworkLoadMetrics { false };
&gt; 
&gt; We may want to group the boolean data members together for better packing.

OK

&gt; &gt; Source/WebKit/NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:530
&gt; &gt; +        callback(ExceptionData { InvalidStateError, { &quot;No registration&quot;_s } });
&gt; 
&gt; Why the { } around the &quot;No registration&quot;_s ? If the idea is to construct a
&gt; String and the compiler really doesn&apos;t want to build without it, then maybe
&gt; &quot;No registration&quot;_str would work.
&gt; 
&gt; Same comment below in this file.

Not sure why, yes, I&apos;ll remove { }.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819592</commentid>
    <comment_count>8</comment_count>
      <attachid>445679</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-01 23:34:13 -0800</bug_when>
    <thetext>Created attachment 445679
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819596</commentid>
    <comment_count>9</comment_count>
      <attachid>445681</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2021-12-01 23:59:34 -0800</bug_when>
    <thetext>Created attachment 445681
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1819610</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-02 00:57:59 -0800</bug_when>
    <thetext>Committed r286419 (244765@main): &lt;https://commits.webkit.org/244765@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 445681.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445202</attachid>
            <date>2021-11-26 07:29:22 -0800</date>
            <delta_ts>2021-12-01 05:14:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233523-20211126162912.patch</filename>
            <type>text/plain</type>
            <size>113989</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGM2ZTAyY2NlNzE2ODEwMDI0ZDQxMmE0
NDc3NDExMGU2NzVlN2Y4NzYuLjBjOTllNTc2NjZjN2IwYWQ0MDlmZWE3MmM2OTdjZWVjNTY0ZWNk
NzMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTEtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgor
CiAyMDIxLTExLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAg
ICBBcHBseSBXZWJQcmVmZXJlbmNlcyBvbiBTZXJ2aWNlV29ya2VyIHNldHRpbmdzCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
aW5kZXggYmM2ZGJlYWQ1MjgzYWQxMTA2YmRiNWFjODk0ZmMxOWUwYTE0MTA0OS4uNjNmN2MxZDFm
NWM2YjAyZDY3Nzk5NmZhZDczZTY2NjMxODFhZGJlNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY2
IEBACisyMDIxLTExLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAg
ICAgICBBZGQgc3VwcG9ydCBmb3IgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM1MjMKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgc2VydmljZSB3b3JrZXIg
bmF2aWdhdGlvbiBwcmVsb2FkIElETCBhbmQgaW1wbGVtZW50YXRpb24uCisgICAgICAgIFRoaXMg
aW5jbHVkZXMgaW4gcGFydGljdWxhciBzdGF0ZSBtYW5hZ2VtZW50IChyZWFkIGFuZCB3cml0ZSkg
b24gQVBJIHNpZGUgYW5kIFNXU2VydmVyIHNpZGUuCisgICAgICAgIFRoaXMgc3RhdGUgaXMgdXNl
ZCBpbiBXSzIgbmV0d29yayBjb2RlIHBhdGggdG8gZW5hYmxlIG9yIG5vdCBwcmVsb2Fkcy4KKyAg
ICAgICAgV2UgYXJlIG5vdCB5ZXQgcGVyc2lzdGluZyBwcmVsb2FkIHJlZ2lzdHJhdGlvbiBzdGF0
ZSBvbiBkaXNrLCB0aGlzIHdpbGwgYmUgZG9uZSBhcyBhIGZvbGxvdy11cC4KKworICAgICAgICBU
byBpbXBsZW1lbnQgdGhlIHJldHJpZXZhbCBvZiB0aGUgcHJlbG9hZCByZXNwb25zZSwgd2UgdXNl
IEZldGNoUmVzcG9uc2U6OmZldGNoLgorICAgICAgICBUbyBkbyBzbywgd2UgYWRkIGFuIGluaXRp
YXRvciBwYXJhbWV0ZXIgYXMgdGhpcyBwcmVsb2FkIGluaXRpYXRvciBpcyB0aGUgbmF2aWdhdGlv
biB0YXNrIGFuZCBub3QgYSBmZXRjaCBjYWxsLgorCisgICAgICAgIEN1cnJlbnRseSwgdGhlIEZl
dGNoRXZlbnQgYXR0cmlidXRlIGlzIG51bGxhYmxlIGluIHRoZSBjYXNlIHRoZSBwcm9taXNlIHdv
dWxkIHJldHVybiB1bmRlZmluZWQuCisgICAgICAgIFdlIHdpbGwgY2hhbmdlIHRoaXMgaW4gYSBm
b2xsb3ctdXAsIHdoaWxlIHN0aWxsIGtlZXBpbmcgdGhlIGZyZWVkb20gdG8gc3RhcnQgcHJlbG9h
ZHMgYXQgbmF2aWdhdGlvbiBoYW5kbGluZworICAgICAgICBvciB3aGVuIHRoZSBwcmVsb2FkIHJl
c3BvbnNlIGlzIGFjdHVhbGx5IGNyZWF0ZWQuCisKKyAgICAgICAgQ292ZXJlZCBieSBlbmFibGVk
IHRlc3RzLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAgICogRGVyaXZlZFNv
dXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy1vdXRwdXQu
eGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgorICAgICAgICAqIE1v
ZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hM
b2FkZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaDoKKyAgICAg
ICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwOgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvV2luZG93T3JX
b3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcDoKKyAgICAgICAgKiBTb3VyY2VzLnR4dDoKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogYmluZGlu
Z3MvanMvRE9NUHJvbWlzZVByb3h5Lmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01Db252
ZXJ0UHJvbWlzZS5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMu
aDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbToKKyAgICAgICAgKiBs
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2Vydmlj
ZS9GZXRjaEV2ZW50LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcDogQWRkZWQuCisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5oOiBBZGRlZC4K
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbDog
QWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3Rh
dGUuaWRsOiBBZGRlZC4KKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0
aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIu
Y3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmg6
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaWRs
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3Bw
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5o
OgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQu
Y3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkuY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dT
ZXJ2ZXJSZWdpc3RyYXRpb24uY3BwOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uaDoKKwogMjAyMS0xMS0yNiAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV1c2UgbmF2aWdhdGlvbiBwcmVsb2FkIGlmIHNl
cnZpY2Ugd29ya2VyIGlzIGZldGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIG5hdmlnYXRpb24gcmVx
dWVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwppbmRleCAwYjliN2NkOTg1ZTYxMTBiMzFjMmNiNmVlMGRmZGRlMmJkYWVkZjMw
Li4wZDllNWI1NWM0MWEyNGE2OTkzNGZjMGVhYzk2OTM1ZjYyMGExZmIyIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwpAQCAt
MSwzICsxLDI3IEBACisyMDIxLTExLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzM1MjMKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNYWtlIHVzZSBv
ZiBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlciB3aGVuIHByZWxvYWQgZmxhZyBpcyB0
cnVlLgorICAgICAgICBVcGRhdGUgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIgdG8g
ZGlmZmVyZW50aWF0ZSBleHBsaWNpdCBwcmVsb2FkcyAoZW5hYmxlZCBieSBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIpIGZyb20gaW1wbGljdCBwcmVsb2Fkcy4KKyAgICAgICAgSW1wbGljdCBwcmVs
b2FkcyBjYW4gYmUgdXNlZCB3aGVuIGZldGNoIGV2ZW50IGlzIG5vdCBoYW5kbGVkLCB3aGljaCBp
cyBub3QgdGhlIGNhc2UgZm9yIGV4cGxpY2l0IHByZWxvYWRzLgorICAgICAgICBBZGQgSVBDIHRv
IHJlYWQgYW5kIHNldCBwcmVsb2FkIHN0YXRlIChlbmFibGVkIGFuZCBoZWFkZXIgdmFsdWUpLgor
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZp
Y2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmg6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24u
Y3BwOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJD
b25uZWN0aW9uLmg6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHA6CisgICAgICAgICogV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmg6CisgICAgICAgICogV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmlu
OgorCiAyMDIxLTExLTI2ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAg
ICAgICBSZXVzZSBuYXZpZ2F0aW9uIHByZWxvYWQgaWYgc2VydmljZSB3b3JrZXIgaXMgZmV0Y2hp
bmcgdGhlIGNvcnJlc3BvbmRpbmcgbmF2aWdhdGlvbiByZXF1ZXN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFt
bCBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1l
bnRhbC55YW1sCmluZGV4IGQ5ZDU4ODA1Y2IwMmU3OTY0YjFmNzYxZDJlMjdlM2Y4ZWRmZjE5MzMu
LjgxYTYzMjE0NmNhMDY0MjBmMTUzZDQ4NjU5MWMzZWIwODVjM2M5OTYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55
YW1sCisrKyBiL1NvdXJjZS9XVEYvU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4
cGVyaW1lbnRhbC55YW1sCkBAIC0xMjQxLDYgKzEyNDEsMTkgQEAgU2VydmVyVGltaW5nRW5hYmxl
ZDoKICAgICAgICJFTkFCTEUoRVhQRVJJTUVOVEFMX0ZFQVRVUkVTKSAmJiAoUExBVEZPUk0oR1RL
KSB8fCBQTEFURk9STShXUEUpKSI6IHRydWUKICAgICAgIGRlZmF1bHQ6IGZhbHNlCiAKK1NlcnZp
Y2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQ6CisgIHR5cGU6IGJvb2wKKyAgaHVtYW5S
ZWFkYWJsZU5hbWU6ICJTZXJ2aWNlIFdvcmtlciBOYXZpZ2F0aW9uIFByZWxvYWQiCisgIGh1bWFu
UmVhZGFibGVEZXNjcmlwdGlvbjogIkVuYWJsZSBTZXJ2aWNlIFdvcmtlciBOYXZpZ2F0aW9uIFBy
ZWxvYWQgQVBJIgorICBjb25kaXRpb246IEVOQUJMRShTRVJWSUNFX1dPUktFUikKKyAgZGVmYXVs
dFZhbHVlOgorICAgIFdlYkNvcmU6CisgICAgICBkZWZhdWx0OiBmYWxzZQorICAgIFdlYktpdExl
Z2FjeToKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisgICAgV2ViS2l0OgorICAgICAgZGVmYXVsdDog
ZmFsc2UKKwogU2hhcmVkV29ya2VyRW5hYmxlZDoKICAgdHlwZTogYm9vbAogICBodW1hblJlYWRh
YmxlTmFtZTogIlNoYXJlZFdvcmtlciIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0IGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKaW5kZXggODBkOGQ0Y2Iz
NTQzOTFhNDUwYjYyNjBmZjY5YWE2MDJiZDAxOGY1Ni4uYmEyZDY4NTAxYzkwMTdiN2I0Y2Q3ODVm
NzYwYTAzODY0MjNlNjM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50
eHQKKysrIGIvU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKQEAgLTEyMjMsNiArMTIyMyw4
IEBAIHNldChXZWJDb3JlX05PTl9TVkdfSURMX0ZJTEVTCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVFdmVudEluaXQuaWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNz
YWdlRXZlbnQuaWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsCisgICAgd29y
a2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5pZGwKKyAgICB3b3JrZXJzL3Nl
cnZpY2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwKICAgICB3b3JrZXJzL3NlcnZpY2UvU2Vy
dmljZVdvcmtlci5pZGwKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5p
ZGwKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudFR5cGUuaWRsCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAppbmRleCA2ZGNm
MzBjOGRjNDM3OTY2OTUyYmQ1MzlhOGNhMjg3MGMyNTU2MDA5Li42N2YwY2EzMDYxNTNhYWViZWVh
NGMxMzk3ZTgyOTk4ZDk5MzczNjQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVk
U291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3Vy
Y2VzLWlucHV0LnhjZmlsZWxpc3QKQEAgLTE2MjMsNiArMTYyMyw4IEBAICQoUFJPSkVDVF9ESVIp
L3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3Jr
ZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtl
cnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvd29y
a2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsCiskKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZp
Y2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbAorJChQUk9KRUNUX0RJUikvd29ya2Vycy9z
ZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrZXJz
L3NlcnZpY2UvUHVzaEV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1B1
c2hFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2UvUHVzaE1lc3Nh
Z2VEYXRhLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNm
aWxlbGlzdAppbmRleCBiMjI0MTcyMTBkZGJhMzcwY2Y2NGZmOTkxZWIwNTg4NTM5MTNmZTdkLi40
NGRhMWZlODc3NTAwNmVmZmJlMGYwZGE5YmJmOWJmOTE3YTlmNWJjIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9EZXJpdmVkU291cmNlcy1vdXRwdXQueGNmaWxlbGlzdApAQCAtMTYzMSw2ICsxNjMx
LDEwIEBAICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTXV0
YXRpb25SZWNvcmQuY3BwCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2Vi
Q29yZS9KU011dGF0aW9uUmVjb3JkLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTmFtZWROb2RlTWFwLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rl
cml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYW1lZE5vZGVNYXAuaAorJChCVUlMVF9QUk9EVUNUU19E
SVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3Bw
CiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRp
b25QcmVsb2FkTWFuYWdlci5oCiskKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMv
V2ViQ29yZS9KU05hdmlnYXRpb25QcmVsb2FkU3RhdGUuY3BwCiskKEJVSUxUX1BST0RVQ1RTX0RJ
UikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaAogJChC
VUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0b3IrQmVh
Y29uLmNwcAogJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNO
YXZpZ2F0b3IrQmVhY29uLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9X
ZWJDb3JlL0pTTmF2aWdhdG9yK0NsaXBib2FyZC5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5t
YWtlCmluZGV4IGRkZTY0NDQwNjFkMjIzMzJiNDFhMDM4NzE5MTA4MGZmNjExMWJlOTAuLjhiMjVi
YTAyNTc5NzNhYzZiYTQ2MTdhODU2ZDExYTVmYjQ2NWFjYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMubWFrZQpAQCAtMTQ0NSw2ICsxNDQ1LDggQEAgSlNfQklORElOR19JRExTIDo9IFwKICAg
ICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0LmlkbCBcCiAg
ICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVudC5pZGwg
XAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsIFwKKyAgICAk
KFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsIFwK
KyAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlk
bCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5pZGwgXAog
ICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaWRsIFwK
ICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50VHlwZS5p
ZGwgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RPTUNhY2hlLmNwcAppbmRleCA5MDk4
ZTA1YWY0Yzg0MzNiM2QxM2IzOTU2NTA2NGE5YzE1NDMzODdkLi5iZGNkMzJiMzJlYzYyYmNkMWM5
YTZjZjI4NmM1ZmIwMTY0MTU4ZDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L2NhY2hlL0RPTUNhY2hlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NhY2hlL0RP
TUNhY2hlLmNwcApAQCAtMzAyLDcgKzMwMiw3IEBAIHZvaWQgRE9NQ2FjaGU6OmFkZEFsbChWZWN0
b3I8UmVxdWVzdEluZm8+JiYgaW5mb3MsIERPTVByb21pc2VEZWZlcnJlZDx2b2lkPiYmIHByCiAg
ICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICB0YXNrSGFuZGxlci0+YWRk
UmVzcG9uc2VCb2R5KHJlY29yZFBvc2l0aW9uLCByZXNwb25zZSwgV1RGTW92ZShkYXRhKSk7CiAg
ICAgICAgICAgICB9KTsKLSAgICAgICAgfSk7CisgICAgICAgIH0sICJmZXRjaCJfcyk7CiAgICAg
fQogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCmlu
ZGV4IGU5ODkxNDFiNzdiOGUzZWU2ODkxZjVlNDViZTBjMzJlOTk4NDA0YmQuLmZjNTVjYzdkODNk
OGJjMTFmMDg1NGRjM2NmZDg1MDk3YTMxZjEwZjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwCkBAIC04MywxMyArODMsMTMgQEAgdm9pZCBGZXRjaExv
YWRlcjo6c3RhcnRMb2FkaW5nQmxvYlVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBjb25zdCBVUkwKICAgICBtX2lzU3RhcnRlZCA9IG1fbG9hZGVyOwogfQogCi12b2lkIEZldGNo
TG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRj
aFJlcXVlc3QmIHJlcXVlc3QpCit2b2lkIEZldGNoTG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRp
b25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIGNvbnN0IFN0
cmluZyYgaW5pdGlhdG9yKQogewogICAgIFJlc291cmNlTG9hZGVyT3B0aW9ucyByZXNvdXJjZUxv
YWRlck9wdGlvbnMgPSByZXF1ZXN0LmZldGNoT3B0aW9ucygpOwogICAgIHJlc291cmNlTG9hZGVy
T3B0aW9ucy5wcmVmbGlnaHRQb2xpY3kgPSBQcmVmbGlnaHRQb2xpY3k6OkNvbnNpZGVyOwogICAg
IFRocmVhZGFibGVMb2FkZXJPcHRpb25zIG9wdGlvbnMocmVzb3VyY2VMb2FkZXJPcHRpb25zLAog
ICAgICAgICBjb250ZXh0LnNob3VsZEJ5cGFzc01haW5Xb3JsZENvbnRlbnRTZWN1cml0eVBvbGlj
eSgpID8gQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkRvTm90RW5mb3JjZSA6IENv
bnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50OjpFbmZvcmNlQ29ubmVjdFNyY0RpcmVjdGl2
ZSwKLSAgICAgICAgU3RyaW5nKGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5mZXRj
aCksCisgICAgICAgIFN0cmluZyhpbml0aWF0b3IpLAogICAgICAgICBSZXNwb25zZUZpbHRlcmlu
Z1BvbGljeTo6RGlzYWJsZSk7CiAgICAgb3B0aW9ucy5zZW5kTG9hZENhbGxiYWNrcyA9IFNlbmRD
YWxsYmFja1BvbGljeTo6U2VuZENhbGxiYWNrczsKICAgICBvcHRpb25zLmRhdGFCdWZmZXJpbmdQ
b2xpY3kgPSBEYXRhQnVmZmVyaW5nUG9saWN5OjpEb05vdEJ1ZmZlckRhdGE7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmggYi9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmgKaW5kZXggNDA3MjhkMjU3ZTg0M2M0MTE0
ODZmZDZlNDM4MDcwNDQzMWFjZmNhMi4uMmY5MGYwZWMzZmY5MDVhMjYyMzFjODRjNzJhN2ExODZj
ZDRiZmU4MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaApA
QCAtNDgsNyArNDgsNyBAQCBwdWJsaWM6CiAKICAgICBSZWZQdHI8U2hhcmVkQnVmZmVyPiBzdGFy
dFN0cmVhbWluZygpOwogCi0gICAgdm9pZCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgRmV0Y2hSZXF1ZXN0Jik7CisgICAgdm9pZCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiwgY29uc3QgRmV0Y2hSZXF1ZXN0JiwgY29uc3QgU3RyaW5nJik7CiAgICAgdm9pZCBzdGFy
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgQmxvYiYpOwogICAgIHZvaWQgc3RhcnRM
b2FkaW5nQmxvYlVSTChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgVVJMJiBibG9iVVJM
KTsKICAgICB2b2lkIHN0b3AoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoUmVzcG9uc2UuY3BwCmluZGV4IDVkNDUyY2UyODhjZWRjMDI5MzJkOTM5NmY2NDYwMDQ2ZTQ2
YmQ1MzYuLjRkZjg0MjZjNzE4YmExNmVjZjBhNDdlNzNlOTAwZDNmODQ4ZjY0ZjIgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcApAQCAtMjI3LDcg
KzIyNyw3IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6YWRkQWJvcnRTdGVwcyhSZWY8QWJvcnRTaWdu
YWw+JiYgc2lnbmFsKQogICAgIH0pOwogfQogCi12b2lkIEZldGNoUmVzcG9uc2U6OmZldGNoKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVxdWVzdCYgcmVxdWVzdCwgTm90
aWZpY2F0aW9uQ2FsbGJhY2smJiByZXNwb25zZUNhbGxiYWNrKQordm9pZCBGZXRjaFJlc3BvbnNl
OjpmZXRjaChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGZXRjaFJlcXVlc3QmIHJl
cXVlc3QsIE5vdGlmaWNhdGlvbkNhbGxiYWNrJiYgcmVzcG9uc2VDYWxsYmFjaywgY29uc3QgU3Ry
aW5nJiBpbml0aWF0b3IpCiB7CiAgICAgaWYgKHJlcXVlc3Quc2lnbmFsKCkuYWJvcnRlZCgpKSB7
CiAgICAgICAgIHJlc3BvbnNlQ2FsbGJhY2soRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgIlJlcXVl
c3Qgc2lnbmFsIGlzIGFib3J0ZWQiX3MgfSk7CkBAIC0yNDksNyArMjQ5LDcgQEAgdm9pZCBGZXRj
aFJlc3BvbnNlOjpmZXRjaChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGZXRjaFJl
cXVlc3QmIHJlcXVlc3QKICAgICByZXNwb25zZS0+YWRkQWJvcnRTdGVwcyhyZXF1ZXN0LnNpZ25h
bCgpKTsKIAogICAgIHJlc3BvbnNlLT5tX2JvZHlMb2FkZXIgPSBtYWtlVW5pcXVlPEJvZHlMb2Fk
ZXI+KHJlc3BvbnNlLmdldCgpLCBXVEZNb3ZlKHJlc3BvbnNlQ2FsbGJhY2spKTsKLSAgICBpZiAo
IXJlc3BvbnNlLT5tX2JvZHlMb2FkZXItPnN0YXJ0KGNvbnRleHQsIHJlcXVlc3QpKQorICAgIGlm
ICghcmVzcG9uc2UtPm1fYm9keUxvYWRlci0+c3RhcnQoY29udGV4dCwgcmVxdWVzdCwgaW5pdGlh
dG9yKSkKICAgICAgICAgcmVzcG9uc2UtPm1fYm9keUxvYWRlciA9IG51bGxwdHI7CiB9CiAKQEAg
LTM3NywxMSArMzc3LDExIEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6ZGlkUmVj
ZWl2ZURhdGEoY29uc3QgdWludDhfdCogZGF0YSwgc2l6ZV90IHNpemUpCiAgICAgc291cmNlLnJl
c29sdmVQdWxsUHJvbWlzZSgpOwogfQogCi1ib29sIEZldGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6
OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZldGNoUmVxdWVz
dCYgcmVxdWVzdCkKK2Jvb2wgRmV0Y2hSZXNwb25zZTo6Qm9keUxvYWRlcjo6c3RhcnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBj
b25zdCBTdHJpbmcmIGluaXRpYXRvcikKIHsKICAgICBtX2NyZWRlbnRpYWxzID0gcmVxdWVzdC5m
ZXRjaE9wdGlvbnMoKS5jcmVkZW50aWFsczsKICAgICBtX2xvYWRlciA9IG1ha2VVbmlxdWU8RmV0
Y2hMb2FkZXI+KCp0aGlzLCAmbV9yZXNwb25zZS5tX2JvZHktPmNvbnN1bWVyKCkpOwotICAgIG1f
bG9hZGVyLT5zdGFydChjb250ZXh0LCByZXF1ZXN0KTsKKyAgICBtX2xvYWRlci0+c3RhcnQoY29u
dGV4dCwgcmVxdWVzdCwgaW5pdGlhdG9yKTsKICAgICByZXR1cm4gbV9sb2FkZXItPmlzU3RhcnRl
ZCgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVzcG9uc2UuaCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5o
CmluZGV4IGJjNTg1NGY5Yjk2NmZiNjMyOWQxNmZkZTYxOGNjZWIxZDhjOTRjYTkuLjM0MjBjNmEz
OGQzYzNmNmUyZmRiNjY3NWU4YTRkMTM2NWJmNWE1YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAg
ICBzdGF0aWMgRXhjZXB0aW9uT3I8UmVmPEZldGNoUmVzcG9uc2U+PiByZWRpcmVjdChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgY29uc3QgU3RyaW5nJiB1cmwsIGludCBzdGF0dXMpOwogCiAgICAg
dXNpbmcgTm90aWZpY2F0aW9uQ2FsbGJhY2sgPSBGdW5jdGlvbjx2b2lkKEV4Y2VwdGlvbk9yPEZl
dGNoUmVzcG9uc2UmPiYmKT47Ci0gICAgc3RhdGljIHZvaWQgZmV0Y2goU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIEZldGNoUmVxdWVzdCYsIE5vdGlmaWNhdGlvbkNhbGxiYWNrJiYpOworICAgIHN0
YXRpYyB2b2lkIGZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGZXRjaFJlcXVlc3QmLCBO
b3RpZmljYXRpb25DYWxsYmFjayYmLCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcik7CiAKICAgICB2
b2lkIHN0YXJ0Q29uc3VtaW5nU3RyZWFtKHVuc2lnbmVkKTsKICAgICB2b2lkIGNvbnN1bWVDaHVu
ayhSZWY8SlNDOjpVaW50OEFycmF5PiYmKTsKQEAgLTEyOSw3ICsxMjksNyBAQCBwcml2YXRlOgog
ICAgICAgICBCb2R5TG9hZGVyKEZldGNoUmVzcG9uc2UmLCBOb3RpZmljYXRpb25DYWxsYmFjayYm
KTsKICAgICAgICAgfkJvZHlMb2FkZXIoKTsKIAotICAgICAgICBib29sIHN0YXJ0KFNjcmlwdEV4
ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBGZXRjaFJlcXVlc3QmKTsKKyAgICAgICAgYm9vbCBzdGFy
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgRmV0Y2hSZXF1ZXN0JiwgY29uc3QgU3Ry
aW5nJiBpbml0aWF0b3IpOwogICAgICAgICB2b2lkIHN0b3AoKTsKIAogICAgICAgICB2b2lkIGNv
bnN1bWVEYXRhQnlDaHVuayhDb25zdW1lRGF0YUJ5Q2h1bmtDYWxsYmFjayYmKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZUZldGNoLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJH
bG9iYWxTY29wZUZldGNoLmNwcAppbmRleCA5YzFjZDhkMGZmNzVhZTllZDQ5NGMyNjU5NGU3Yzc2
N2M0ZDI3YjFjLi4zYmYxNGZiZmY4MmYwMWJjMmRjMmRhZTIyNzQxODQ0NzAyZjQxZDBiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFs
U2NvcGVGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9XaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCkBAIC02Miw3ICs2Miw3IEBAIHZvaWQgV2luZG93
T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoOjpmZXRjaChET01XaW5kb3cmIHdpbmRvdywgRmV0Y2hS
ZXF1ZXN0OjpJbmZvCiAKICAgICAgICAgVXNlckdlc3R1cmVJbmRpY2F0b3IgZ2VzdHVyZUluZGlj
YXRvcih1c2VyR2VzdHVyZVRva2VuLCBVc2VyR2VzdHVyZVRva2VuOjpHZXN0dXJlU2NvcGU6Ok1l
ZGlhT25seSwgVXNlckdlc3R1cmVUb2tlbjo6SXNQcm9wYWdhdGVkRnJvbUZldGNoOjpZZXMpOwog
ICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIH0s
ICJmZXRjaCJfcyk7CiB9CiAKIHZvaWQgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoOjpm
ZXRjaChXb3JrZXJHbG9iYWxTY29wZSYgc2NvcGUsIEZldGNoUmVxdWVzdDo6SW5mbyYmIGlucHV0
LCBGZXRjaFJlcXVlc3Q6OkluaXQmJiBpbml0LCBSZWY8RGVmZXJyZWRQcm9taXNlPiYmIGRlZmVy
cmVkKQpAQCAtNzcsNyArNzcsNyBAQCB2b2lkIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRj
aDo6ZmV0Y2goV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlLCBGZXRjaFJlcXVlcwogCiAgICAgRmV0
Y2hSZXNwb25zZTo6ZmV0Y2goc2NvcGUsIHJlcXVlc3QucmVsZWFzZVJldHVyblZhbHVlKCkuZ2V0
KCksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oRXhjZXB0aW9uT3I8RmV0Y2hSZXNwb25z
ZSY+JiYgcmVzdWx0KSBtdXRhYmxlIHsKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShy
ZXN1bHQpKTsKLSAgICB9KTsKKyAgICB9LCAiZmV0Y2giX3MpOwogfQogCiB9CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0
CmluZGV4IGI2ZWMxNDQ5YTg0OWNkYjRmOWIxNjY3MTc4NzYyYzc4NDhiZjEyNDYuLjNiMmE5YmQ3
MzkyMjQ2YmVkZDMxNmNiMzZkYWYzOTEwZGM0NjVlNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL1NvdXJjZXMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0CkBAIC0yNzQx
LDYgKzI3NDEsNyBAQCB3b3JrZXJzL1dvcmtlclRocmVhZC5jcHAKIHdvcmtlcnMvc2VydmljZS9F
eHRlbmRhYmxlRXZlbnQuY3BwCiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VFdmVu
dC5jcHAKIHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmNwcAord29ya2Vycy9zZXJ2aWNlL05h
dmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAKIHdvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5l
Y3Rpb24uY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlci5jcHAKIHdvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmNwcApAQCAtMzQ3Niw2ICszNDc3LDggQEAgSlNOYXZp
Z2F0b3JHUFUuY3BwCiBKU05vZGUuY3BwCiBKU05vZGVGaWx0ZXIuY3BwCiBKU0N1c3RvbVhQYXRo
TlNSZXNvbHZlci5jcHAKK0pTTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcAorSlNOYXZpZ2F0
aW9uUHJlbG9hZFN0YXRlLmNwcAogSlNOb2RlSXRlcmF0b3IuY3BwCiBKU05vZGVMaXN0LmNwcAog
SlNOb25Eb2N1bWVudFR5cGVDaGlsZE5vZGUuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggNzM1NGViYWJkYzQ2OWY4MTM5Yjlm
Y2M2MDI4ZmRhNTVlMjg1NzExOC4uZWZlZjViZGYwNTUxYTZlMWFmNWViNmI1ZDFjNmUyYjU4YmJm
MzVlOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3Qu
cGJ4cHJvagpAQCAtMTEwNyw2ICsxMTA3LDcgQEAKIAkJNDE0QjdGQUQyNEQ4MUNDMTAwMzNENDQy
IC8qIE1lZGlhUmVjb3JkZXJQcml2YXRlT3B0aW9ucy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0QjdGQUIyNEQ4MUM4RjAwMzNENDQyIC8qIE1lZGlh
UmVjb3JkZXJQcml2YXRlT3B0aW9ucy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFBy
aXZhdGUsICk7IH07IH07CiAJCTQxNEI4MjA1MUQ2REYwRTUwMDc3RUJFMyAvKiBTdHJ1Y3R1cmVk
Q2xvbmUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NEI4MjAzMUQ2REYwRDkwMDc3RUJFMyAvKiBTdHJ1Y3R1cmVkQ2xvbmUuaCAqLzsgfTsKIAkJNDE0
REVERTcxRjlGRTkxRTAwNDdDNDBEIC8qIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNERFREU1MUY5RkU5MTUw
MDQ3QzQwRCAvKiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKKwkJNDE1MDM3OTMyNzRGREM5QjAwMzU0QUJDIC8q
IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRTJGMTlCMjc0RkIwQTYwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJl
bG9hZFN0YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsg
fTsKIAkJNDE1MDcxNTgxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwNzE1NjE2ODUwNjcz
MDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIuaCAqLzsgfTsKIAkJNDE1MDgwMzYxRTNGMDBBRDAw
NTFENzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTA4MDM0MUUzRjAwQUEwMDUxRDc1RCAvKiBMaWJX
ZWJSVENBdWRpb01vZHVsZS5jcHAgKi87IH07CiAJCTQxNTA4MDM3MUUzRjAwQjAwMDUxRDc1RCAv
KiBMaWJXZWJSVENBdWRpb01vZHVsZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE1MDgwMzUxRTNGMDBBQTAwNTFENzVEIC8qIExpYldlYlJUQ0F1ZGlv
TW9kdWxlLmggKi87IH07CkBAIC0xMjIwLDYgKzEyMjEsNyBAQAogCQk0MURFRkNCNjFFNTZDMUJE
MDAwRDlFNUYgLyogSlNET01NYXBMaWtlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MURFRkNCNDFFNTZDMUI5MDAwRDlFNUYgLyogSlNET01NYXBMaWtl
LmggKi87IH07CiAJCTQxRTEyRTlGMjRGRTc0RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJZGVudGlm
aWVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUx
MkU5RDI0RkU3NEUyMDA5M0ZGQjQgLyogV2ViU29ja2V0SWRlbnRpZmllci5oICovOyBzZXR0aW5n
cyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxRTFCMUQxMEZGNTk4Njkw
MDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gNDFFMUIxQ0IwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29y
a2VyLmggKi87IH07CisJCTQxRTJGMTk5Mjc0RkFFQ0YwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJl
ZiA9IDQxRTJGMTk3Mjc0RkFFQ0IwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIu
aCAqLzsgfTsKIAkJNDFFNjdBODMyNUQxNjg0NzAwN0IwQTRDIC8qIFNUVU5NZXNzYWdlUGFyc2lu
Zy5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFNjdB
ODEyNUQxNjg0NzAwN0IwQTRDIC8qIFNUVU5NZXNzYWdlUGFyc2luZy5oICovOyBzZXR0aW5ncyA9
IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxRTZENzFCMjZFQTFBNDYwMEI3
NjVENiAvKiBSVENFcnJvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDFCN0MwNEIyNkU2OTE3MTAwRDM2QzA3IC8qIFJUQ0Vycm9yLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFOURDRTcyMzE5NzRC
RjAwRjM1OTQ5IC8qIEJsb2JMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IDQxRTlEQ0U0MjMxOTczRkUwMEYzNTk0OSAvKiBCbG9iTG9hZGVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKQEAgLTg1OTEs
NiArODU5MywxMSBAQAogCQk0MUUxQjFDQzBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3Jr
ZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IEFic3RyYWN0V29ya2VyLmlkbDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFMUYzM0QyNDhBNjJCNjAwMjJENURFIC8qIEF1ZGlv
U2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNw
cDsgcGF0aCA9IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJNDFFMUYzM0YyNDhBNjJCNjAwMjJENURFIC8qIEF1ZGlvU2FtcGxlQnVm
ZmVyQ29tcHJlc3Nvci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFF
MkYxOTUyNzRGQUVDQTAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRo
ID0gTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDFFMkYxOTcyNzRGQUVDQjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFFMkYxOTgyNzRGQUVDQjAwQTA4OUVFIC8qIE5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUyRjE5QTI3NEZC
MEE1MDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwgKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gTmF2aWdhdGlv
blByZWxvYWRTdGF0ZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTJGMTlC
Mjc0RkIwQTYwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJNDFFNDA4MzgxRENCNzQ3OTAwRUZDRTE5IC8qIFBlZXJDb25uZWN0aW9uQmFja2VuZC5jcHAg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBQZWVyQ29ubmVjdGlvbkJhY2tl
bmQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUU1OTNGRDIxNDg2NUE5MDBE
M0NCNjEgLyogUlRDUHJpb3JpdHlUeXBlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENQcmlvcml0eVR5cGUuaWRsOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUU1OTNGRjIxNDg2NUFBMDBEM0NCNjEgLyog
UlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBSVENSdHBFbmNvZGluZ1BhcmFtZXRl
cnMuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtMjE4MjQsNiArMjE4MzEsMTEg
QEAKIAkJCQk0MUFGMzc5NDFGOERBNDk1MDAxMTFDMzEgLyogRmV0Y2hFdmVudC5jcHAgKi8sCiAJ
CQkJNDFBRjM3ODgxRjhDMUU3OTAwMTExQzMxIC8qIEZldGNoRXZlbnQuaCAqLywKIAkJCQk0MUFG
Mzc4RDFGOEMxRTdCMDAxMTFDMzEgLyogRmV0Y2hFdmVudC5pZGwgKi8sCisJCQkJNDFFMkYxOTgy
NzRGQUVDQjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAgKi8sCisJCQkJ
NDFFMkYxOTcyNzRGQUVDQjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5oICov
LAorCQkJCTQxRTJGMTk1Mjc0RkFFQ0EwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIuaWRsICovLAorCQkJCTQxRTJGMTlCMjc0RkIwQTYwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJl
bG9hZFN0YXRlLmggKi8sCisJCQkJNDFFMkYxOUEyNzRGQjBBNTAwQTA4OUVFIC8qIE5hdmlnYXRp
b25QcmVsb2FkU3RhdGUuaWRsICovLAogCQkJCTUxRjE3NTVCMUYzRUJDMEMwMEM3NDk1MCAvKiBT
ZXJ2aWNlV29ya2VyLmNwcCAqLywKIAkJCQk1MUYxNzU1QTFGM0VCQzBDMDBDNzQ5NTAgLyogU2Vy
dmljZVdvcmtlci5oICovLAogCQkJCTUxRjE3NTU5MUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNl
V29ya2VyLmlkbCAqLywKQEAgLTM1MzYyLDYgKzM1Mzc0LDggQEAKIAkJCQk4M0IyRDE3NTFCOEJD
RDZBMDBBMDJFNDcgLyogTmF0aXZlTm9kZUZpbHRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTEw
QjlCNkMwQjc0NzU5OTAwM0VEODkwIC8qIE5hdGl2ZVhQYXRoTlNSZXNvbHZlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTNDQ0YwMjcwQUY2QzUyOTAwMDE4RTg5IC8qIE5hdmlnYXRpb25BY3Rpb24u
aCBpbiBIZWFkZXJzICovLAorCQkJCTQxRTJGMTk5Mjc0RkFFQ0YwMEEwODlFRSAvKiBOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNTAzNzkzMjc0RkRDOUIw
MDM1NEFCQyAvKiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0
NjlENzdCODI3MDE2MjUxMDAxNDJGQTYgLyogTmF2aWdhdGlvblJlcXVlc3Rlci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJOTc5RjQzRDQxMDc1RTQ0QTAwMDBGODNCIC8qIE5hdmlnYXRpb25TY2hlZHVs
ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUE5QzZFNUE2MEQ3NDY0NTgwMDY0NDJFOSAvKiBOYXZp
Z2F0b3IuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NUHJvbWlzZVByb3h5LmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Q
cm9taXNlUHJveHkuaAppbmRleCA4MDI0OTA1M2Q1ODk3YjY2NmRhZjUwODFlNjIzMTZjOThmNmJk
ODRjLi44ZDFjMjlmMDVjYjhhZTllNjJlOGE2Y2UzYTVkMjRiYmZkNDNkMmNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Qcm9taXNlUHJveHkuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Qcm9taXNlUHJveHkuaApAQCAtNTMsNiArNTMsOCBA
QCBwdWJsaWM6CiAgICAgdm9pZCByZWplY3QoRXhjZXB0aW9uLCBSZWplY3RBc0hhbmRsZWQgPSBS
ZWplY3RBc0hhbmRsZWQ6Ok5vKTsKICAgICAKIHByaXZhdGU6CisgICAgSlNDOjpKU1ZhbHVlIHJl
c29sdmVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0RPTUdsb2JhbE9iamVjdCYsIGNv
bnN0IEZ1bmN0aW9uPHZvaWQoRGVmZXJyZWRQcm9taXNlJik+Jik7CisKICAgICBzdGQ6Om9wdGlv
bmFsPEV4Y2VwdGlvbk9yPFZhbHVlPj4gbV92YWx1ZU9yRXhjZXB0aW9uOwogICAgIFZlY3RvcjxS
ZWY8RGVmZXJyZWRQcm9taXNlPiwgMT4gbV9kZWZlcnJlZFByb21pc2VzOwogfTsKQEAgLTExMyw3
ICsxMTUsNyBAQCBwcml2YXRlOgogLy8gTUFSSzogLSBET01Qcm9taXNlUHJveHk8SURMVHlwZT4g
Z2VuZXJpYyBpbXBsZW1lbnRhdGlvbgogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgotaW5s
aW5lIEpTQzo6SlNWYWx1ZSBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OnByb21pc2UoSlNDOjpK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCkKK2lubGluZSBKU0M6OkpTVmFsdWUgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+
OjpyZXNvbHZlUHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBjb25zdCBGdW5jdGlvbjx2b2lkKERl
ZmVycmVkUHJvbWlzZSYpPiYgcmVzb2x2ZVByb21pc2VDYWxsYmFjaykKIHsKICAgICBVTlVTRURf
UEFSQU0obGV4aWNhbEdsb2JhbE9iamVjdCk7CiAgICAgZm9yIChhdXRvJiBkZWZlcnJlZFByb21p
c2UgOiBtX2RlZmVycmVkUHJvbWlzZXMpIHsKQEAgLTEzMCw3ICsxMzIsNyBAQCBpbmxpbmUgSlND
OjpKU1ZhbHVlIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cHJvbWlzZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiBsZXhpYwogICAgICAgICBpZiAobV92YWx1ZU9yRXhjZXB0aW9uLT5oYXNFeGNlcHRp
b24oKSkKICAgICAgICAgICAgIGRlZmVycmVkUHJvbWlzZS0+cmVqZWN0KG1fdmFsdWVPckV4Y2Vw
dGlvbi0+ZXhjZXB0aW9uKCkpOwogICAgICAgICBlbHNlCi0gICAgICAgICAgICBkZWZlcnJlZFBy
b21pc2UtPnRlbXBsYXRlIHJlc29sdmU8SURMVHlwZT4obV92YWx1ZU9yRXhjZXB0aW9uLT5yZXR1
cm5WYWx1ZSgpKTsKKyAgICAgICAgICAgIHJlc29sdmVQcm9taXNlQ2FsbGJhY2soKmRlZmVycmVk
UHJvbWlzZSk7CiAgICAgfQogCiAgICAgYXV0byByZXN1bHQgPSBkZWZlcnJlZFByb21pc2UtPnBy
b21pc2UoKTsKQEAgLTEzOCw2ICsxNDAsMjIgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSBET01Qcm9t
aXNlUHJveHk8SURMVHlwZT46OnByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgoraW5saW5l
IEpTQzo6SlNWYWx1ZSBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OnByb21pc2UoSlNDOjpKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2Jh
bE9iamVjdCkKK3sKKyAgICByZXR1cm4gcmVzb2x2ZVByb21pc2UobGV4aWNhbEdsb2JhbE9iamVj
dCwgZ2xvYmFsT2JqZWN0LCBbdGhpc10oYXV0byYgZGVmZXJyZWRQcm9taXNlKSB7CisgICAgICAg
IGRlZmVycmVkUHJvbWlzZS50ZW1wbGF0ZSByZXNvbHZlPElETFR5cGU+KG1fdmFsdWVPckV4Y2Vw
dGlvbi0+cmV0dXJuVmFsdWUoKSk7CisgICAgfSk7Cit9CisKK3RlbXBsYXRlPD4KK2lubGluZSBK
U0M6OkpTVmFsdWUgRE9NUHJvbWlzZVByb3h5PElETEFueT46OnByb21pc2UoSlNDOjpKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9i
amVjdCkKK3sKKyAgICByZXR1cm4gcmVzb2x2ZVByb21pc2UobGV4aWNhbEdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0LCBbdGhpc10oYXV0byYgZGVmZXJyZWRQcm9taXNlKSB7CisgICAgICAgIGRl
ZmVycmVkUHJvbWlzZS5yZXNvbHZlV2l0aEpTVmFsdWUobV92YWx1ZU9yRXhjZXB0aW9uLT5yZXR1
cm5WYWx1ZSgpLmdldCgpKTsKKyAgICB9KTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlw
ZT4KIGlubGluZSB2b2lkIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6Y2xlYXIoKQogewpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UHJvbWlzZS5o
IGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01Db252ZXJ0UHJvbWlzZS5oCmluZGV4
IGY0YTQ3NmJlZTNlMzJhZDhiYWY3NWQ1MWI3MmNjNzk4ZWZjZjFhNDIuLmJiODUyMWJiYjU2NTli
NzY4NjBjNDY4MjA2MWVjOGFjNzRkMDI4NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NQ29udmVydFByb21pc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUNvbnZlcnRQcm9taXNlLmgKQEAgLTcyLDYgKzcyLDEyIEBAIHRlbXBsYXRl
PHR5cGVuYW1lIFQ+IHN0cnVjdCBKU0NvbnZlcnRlcjxJRExQcm9taXNlPFQ+PiB7CiAgICAgewog
ICAgICAgICByZXR1cm4gcHJvbWlzZVByb3h5LnByb21pc2UobGV4aWNhbEdsb2JhbE9iamVjdCwg
Z2xvYmFsT2JqZWN0KTsKICAgICB9CisKKyAgICB0ZW1wbGF0ZTx0ZW1wbGF0ZTx0eXBlbmFtZT4g
Y2xhc3MgVT4KKyAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGNvbnZlcnQoSlNDOjpKU0dsb2JhbE9i
amVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgVTxUPiogcHJvbWlzZVByb3h5KQorICAgIHsKKyAgICAgICAgcmV0dXJuIHByb21pc2VQcm94
eSA/IHByb21pc2VQcm94eS0+cHJvbWlzZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmpl
Y3QpIDogSlNDOjpqc051bGwoKTsKKyAgICB9CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5h
bWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgK
aW5kZXggZWI0MzU0NWQ5YjUwMTgxMGNiMWRiMmJkZmYwNWY0YzZmYzE0MzJkYy4uZjE5YTA4OGJk
M2M0YWQxYjE1NTFhOTE3OGZmNzIwNTUzYjUzNGViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjE3LDYgKzIxNyw3IEBAIG5h
bWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVN0cmVhbVRyYWNrKSBcCiAgICAgbWFj
cm8oTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQpIFwKICAgICBtYWNybyhNb2NrUlRDUnRwVHJhbnNm
b3JtKSBcCisgICAgbWFjcm8oTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyKSBcCiAgICAgbWFjcm8o
TmF2aWdhdG9yQ3JlZGVudGlhbHMpIFwKICAgICBtYWNybyhOYXZpZ2F0b3JNZWRpYURldmljZXMp
IFwKICAgICBtYWNybyhOYXZpZ2F0b3JQZXJtaXNzaW9ucykgXApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExQYXJzZXIucG0gYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQppbmRleCBhYTBkOTAxNjNkYzY5ZGUzMDMxODIy
NGVhM2JmY2QzYmMxYTRhZjQ5Li40NGI1OWE3OTJmMTJmOTJlZmNmOGFhNzUzNmUxZThjOTEzNmIy
MTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNl
ci5wbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETFBhcnNlci5wbQpA
QCAtMjU2NCw2ICsyNTY0LDcgQEAgc3ViIHBhcnNlU2luZ2xlVHlwZQogICAgICAgICBteSAkdHlw
ZSA9IElETFR5cGUtPm5ldygpOwogICAgICAgICAkdHlwZS0+bmFtZSgiUHJvbWlzZSIpOwogICAg
ICAgICBwdXNoKEB7JHR5cGUtPnN1YnR5cGVzfSwgJHN1YnR5cGUpOworICAgICAgICAkdHlwZS0+
aXNOdWxsYWJsZSgkc2VsZi0+cGFyc2VOdWxsKCkpOwogICAgICAgICByZXR1cm4gJHR5cGU7CiAg
ICAgfQogICAgIGlmICgkbmV4dC0+dHlwZSgpID09IElkZW50aWZpZXJUb2tlbiB8fCAkbmV4dC0+
dmFsdWUoKSA9fiAvJG5leHRTaW5nbGVUeXBlXzEvKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA4YjgzZTUzMzE5MGE3NzZiYThmNDBj
MjgzMTU4Y2RiNzYxYWU5NzAyLi4zYWU4YmI2OGQyNWNkZGQxODAyMDkyMmY1ZWRiMjRkNGI5MTIw
MDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5j
cHAKQEAgLTQ1NSw5ICs0NTUsMTYgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6cmVkaXJlY3RSZWNl
aXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVIKICAgICBjb21w
bGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsKIH0KIAorI2lmIEFTU0VSVF9FTkFCTEVE
CitzdGF0aWMgYm9vbCBpc09wYXF1ZVJlZGlyZWN0UmVzcG9uc2VXaXRob3V0TG9jYXRpb25IZWFk
ZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3Bv
bnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpUeXBlOjpPcGFxdWVyZWRpcmVjdCAmJiBy
ZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkgJiYgcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpMb2NhdGlvbikuaXNOdWxsKCk7Cit9CisjZW5kaWYKKwogdm9pZCBDYWNoZWRS
ZXNvdXJjZTo6c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7
Ci0gICAgQVNTRVJUKG1fcmVzcG9uc2UudHlwZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlR5cGU6
OkRlZmF1bHQpOworICAgIEFTU0VSVChtX3Jlc3BvbnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3Bv
bnNlOjpUeXBlOjpEZWZhdWx0IHx8IGlzT3BhcXVlUmVkaXJlY3RSZXNwb25zZVdpdGhvdXRMb2Nh
dGlvbkhlYWRlcihtX3Jlc3BvbnNlKSk7CiAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogICAg
IG1fdmFyeWluZ0hlYWRlclZhbHVlcyA9IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29v
a2llSmFyKCksIG1fcmVzb3VyY2VSZXF1ZXN0LCBtX3Jlc3BvbnNlKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCmluZGV4IGFmY2Q2ZTljZDA1NGRl
Y2E0YjY1YWFjYzRjM2NjNGM4N2YyOTQ1NjYuLjJkY2U2Y2FmMjRlYzY3MjYyYTk0MmFiNDY2M2Nl
Njc0YzNhYmFiMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9G
ZXRjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hF
dmVudC5jcHAKQEAgLTEzNyw2ICsxMzcsMjUgQEAgdm9pZCBGZXRjaEV2ZW50Ojpwcm9taXNlSXNT
ZXR0bGVkKCkKICAgICBwcm9jZXNzUmVzcG9uc2UoUmVmIHsgKnJlc3BvbnNlIH0pOwogfQogCitG
ZXRjaEV2ZW50OjpQcmVsb2FkUmVzcG9uc2VQcm9taXNlKiBGZXRjaEV2ZW50OjpwcmVsb2FkUmVz
cG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAoIW1fbmF2
aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKQorICAgICAgICByZXR1cm4gbnVsbHB0cjsKKyAgICBp
ZiAoIW1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZSkgeworICAgICAgICBtX3ByZWxvYWRSZXNwb25z
ZVByb21pc2UgPSBtYWtlVW5pcXVlPFByZWxvYWRSZXNwb25zZVByb21pc2U+KCk7CisgICAgICAg
IGF1dG8gcmVxdWVzdCA9IEZldGNoUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIHsgfSwgRmV0Y2hI
ZWFkZXJzOjpjcmVhdGUoKSwgUmVzb3VyY2VSZXF1ZXN0IHsgbV9yZXF1ZXN0LT5pbnRlcm5hbFJl
cXVlc3QoKSB9ICwgRmV0Y2hPcHRpb25zIHsgbV9yZXF1ZXN0LT5mZXRjaE9wdGlvbnMoKSB9LCBT
dHJpbmcgeyBtX3JlcXVlc3QtPmludGVybmFsUmVxdWVzdFJlZmVycmVyKCkgfSk7CisgICAgICAg
IHJlcXVlc3QtPnNldE5hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcihtX25hdmlnYXRpb25QcmVs
b2FkSWRlbnRpZmllcik7CisgICAgICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKGNvbnRleHQsIHJl
cXVlc3QuZ2V0KCksIFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYXV0byYmIHJlc3Vs
dCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAg
ICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZS0+cmVqZWN0KHJl
c3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgICAgIH0KKyAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJlbG9hZFJlc3BvbnNlUHJv
bWlzZS0+cmVzb2x2ZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpOworICAgICAgICB9LCAi
bmF2aWdhdGlvbiJfcyk7CisgICAgfQorICAgIHJldHVybiBtX3ByZWxvYWRSZXNwb25zZVByb21p
c2UuZ2V0KCk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9GZXRjaEV2ZW50LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hF
dmVudC5oCmluZGV4IDc0NTBmZmMwYWU1ODM4ZTE5ZDBhOWE1NzA1MGVkODM5ZjdhMTU2YmYuLjhl
YTQxYjM2MDNiM2FkNmIxMDYyYTA2YjhhOWZhNGQxOTQ5MTUyNjMgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaApAQCAtMjcsNiArMjcsNyBAQAogCiAjaWYg
RU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCisjaW5jbHVkZSAiRE9NUHJvbWlzZVByb3h5LmgiCiAj
aW5jbHVkZSAiRXh0ZW5kYWJsZUV2ZW50LmgiCiAjaW5jbHVkZSAiRmV0Y2hSZXF1ZXN0LmgiCiAj
aW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CkBAIC03MSw2ICs3MiwxMSBAQCBwdWJs
aWM6CiAKICAgICBzdGF0aWMgUmVzb3VyY2VFcnJvciBjcmVhdGVSZXNwb25zZUVycm9yKGNvbnN0
IFVSTCYsIGNvbnN0IFN0cmluZyYsIFJlc291cmNlRXJyb3I6OklzU2FuaXRpemVkID0gUmVzb3Vy
Y2VFcnJvcjo6SXNTYW5pdGl6ZWQ6Ok5vKTsKIAorICAgIHVzaW5nIFByZWxvYWRSZXNwb25zZVBy
b21pc2UgPSBET01Qcm9taXNlUHJveHk8SURMSW50ZXJmYWNlPEZldGNoUmVzcG9uc2U+PjsKKyAg
ICBQcmVsb2FkUmVzcG9uc2VQcm9taXNlKiBwcmVsb2FkUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYpOworCisgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIoRmV0
Y2hJZGVudGlmaWVyKTsKKwogcHJpdmF0ZToKICAgICBXRUJDT1JFX0VYUE9SVCBGZXRjaEV2ZW50
KGNvbnN0IEF0b21TdHJpbmcmLCBJbml0JiYsIElzVHJ1c3RlZCk7CiAKQEAgLTg5LDggKzk1LDE4
IEBAIHByaXZhdGU6CiAgICAgUmVmUHRyPERPTVByb21pc2U+IG1fcmVzcG9uZFByb21pc2U7CiAK
ICAgICBSZXNwb25zZUNhbGxiYWNrIG1fb25SZXNwb25zZTsKKworICAgIEZldGNoSWRlbnRpZmll
ciBtX25hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcjsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8UHJl
bG9hZFJlc3BvbnNlUHJvbWlzZT4gbV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlOwogfTsKIAoraW5s
aW5lIHZvaWQgRmV0Y2hFdmVudDo6c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKEZldGNo
SWRlbnRpZmllciBpZGVudGlmaWVyKQoreworICAgIEFTU0VSVCghbV9uYXZpZ2F0aW9uUHJlbG9h
ZElkZW50aWZpZXIpOworICAgIEFTU0VSVChpZGVudGlmaWVyKTsKKyAgICBtX25hdmlnYXRpb25Q
cmVsb2FkSWRlbnRpZmllciA9IGlkZW50aWZpZXI7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAppbmRleCBhZWNiZWFkYjQ4N2JkNDhmMGNi
MzNmOTNkOGQ5ZDMyMzBjMDMyYzFiLi5iNWFmNDg2ODRjOTcxMDlmYzVjOTEzYjZlMTk4NWU2ODc4
MTBiM2MyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hF
dmVudC5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQu
aWRsCkBAIC0zMiw4ICszMiw4IEBACiAgICAgSlNHZW5lcmF0ZVRvTmF0aXZlT2JqZWN0CiBdIGlu
dGVyZmFjZSBGZXRjaEV2ZW50IDogRXh0ZW5kYWJsZUV2ZW50IHsKICAgICBjb25zdHJ1Y3RvcihE
T01TdHJpbmcgdHlwZSwgRmV0Y2hFdmVudEluaXQgZXZlbnRJbml0RGljdCk7Ci0KICAgICBbU2Ft
ZU9iamVjdF0gcmVhZG9ubHkgYXR0cmlidXRlIEZldGNoUmVxdWVzdCByZXF1ZXN0OworICAgIFtD
YWxsV2l0aD1TY3JpcHRFeGVjdXRpb25Db250ZXh0LCBFbmFibGVkQnlTZXR0aW5nPVNlcnZpY2VX
b3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBQcm9taXNl
PEZldGNoUmVzcG9uc2U+PyBwcmVsb2FkUmVzcG9uc2U7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IERPTVN0cmluZyBjbGllbnRJZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJl
c2VydmVkQ2xpZW50SWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YXJnZXRD
bGllbnRJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE0Y2E5YTAxZGUwYjRi
NTMwYTk1OTA1ZDk1NzNhZjIwODMzZjNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwCkBAIC0wLDAg
KzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0Ogor
ICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92
ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkg
Zm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhl
CisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQ
UkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5F
U1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9S
IEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9S
CisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBP
RiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhP
V0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgor
ICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdF
TkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBP
RiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisK
KyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyOjplbmFibGUoUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgbV9y
ZWdpc3RyYXRpb24uY29udGFpbmVyKCkuZW5hYmxlTmF2aWdhdGlvblByZWxvYWQobV9yZWdpc3Ry
YXRpb24uaWRlbnRpZmllcigpLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXI6OmRpc2FibGUoUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgbV9y
ZWdpc3RyYXRpb24uY29udGFpbmVyKCkuZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKG1fcmVnaXN0
cmF0aW9uLmlkZW50aWZpZXIoKSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyOjpzZXRIZWFkZXJWYWx1ZShTdHJpbmcmJiB2YWx1ZSwgUHJvbWlz
ZSYmIHByb21pc2UpCit7CisgICAgbV9yZWdpc3RyYXRpb24uY29udGFpbmVyKCkuc2V0TmF2aWdh
dGlvblByZWxvYWRIZWFkZXJWYWx1ZShtX3JlZ2lzdHJhdGlvbi5pZGVudGlmaWVyKCksIFdURk1v
dmUodmFsdWUpLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXI6OmdldFN0YXRlKFN0YXRlUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgbV9yZWdp
c3RyYXRpb24uY29udGFpbmVyKCkuZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShtX3JlZ2lzdHJh
dGlvbi5pZGVudGlmaWVyKCksIFdURk1vdmUocHJvbWlzZSkpOworfQorCit9IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uZThjZjY5OTRiYmY0MjI0ODQ0OGU1MzQ3MzVjMzRjMWEyM2M0ZTlj
YQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0
IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBz
b3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisg
KiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJ
RVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBV
UlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRT
IENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5D
SURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VT
IChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRI
RU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBB
RFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJOYXZp
Z2F0aW9uUHJlbG9hZFN0YXRlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZnJpZW5k
IGNsYXNzIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb247CisKKyAgICB1c2luZyBQcm9taXNlID0g
RE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+OworICAgIHZvaWQgZW5hYmxlKFByb21pc2UmJik7Cisg
ICAgdm9pZCBkaXNhYmxlKFByb21pc2UmJik7CisgICAgdm9pZCBzZXRIZWFkZXJWYWx1ZShTdHJp
bmcmJiwgUHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFN0YXRlUHJvbWlzZSA9IERPTVByb21pc2VE
ZWZlcnJlZDxJRExEaWN0aW9uYXJ5PE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+PjsKKyAgICB2b2lk
IGdldFN0YXRlKFN0YXRlUHJvbWlzZSYmKTsKKworICAgIHZvaWQgcmVmKCkgeyBtX3JlZ2lzdHJh
dGlvbi5yZWYoKTsgfQorICAgIHZvaWQgZGVyZWYoKSB7IG1fcmVnaXN0cmF0aW9uLmRlcmVmKCk7
IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIoU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbiYpOworCisgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
biYgbV9yZWdpc3RyYXRpb247Cit9OworCitpbmxpbmUgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
OjpOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiYgcmVn
aXN0cmF0aW9uKQorICAgIDogbV9yZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uKQoreworfQorCit9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MzlmODU4MTcwMzFiNjIwODg1ZDQx
M2NlMTMyNTY3NDE0MTdiMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbApAQCAtMCwwICsxLDM2IEBA
CisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVk
LgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVk
IHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJp
YnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9k
dWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0
aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9u
LgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBD
T05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisq
IFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1Ig
SVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdF
UyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBP
UiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElU
WSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5H
IElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJ
U0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKK1sKKyAgICBD
b25kaXRpb25hbD1TRVJWSUNFX1dPUktFUiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNlcnZpY2VX
b3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQsCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtl
ciksCisgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCitdIGludGVyZmFjZSBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIgeworICAgIFByb21pc2U8dW5kZWZpbmVkPiBlbmFibGUoKTsKKyAgICBQcm9t
aXNlPHVuZGVmaW5lZD4gZGlzYWJsZSgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBzZXRIZWFk
ZXJWYWx1ZShCeXRlU3RyaW5nIHZhbHVlKTsKKyAgICBQcm9taXNlPE5hdmlnYXRpb25QcmVsb2Fk
U3RhdGU+IGdldFN0YXRlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2ZmZDE0ODcw
ZWEzM2E4NDFmNDEwOTE5NDJjMjYzMjY4ZjdkZTg3MwotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKQEAgLTAs
MCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RG
U3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE5hdmlnYXRpb25QcmVs
b2FkU3RhdGUgeworICAgIGJvb2wgZW5hYmxlZCB7IGZhbHNlIH07CisgICAgU3RyaW5nIGhlYWRl
clZhbHVlOworCisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBpc29sYXRlZENvcHkoKSBjb25z
dCAmIHsgcmV0dXJuIHsgZW5hYmxlZCwgaGVhZGVyVmFsdWUuaXNvbGF0ZWRDb3B5KCkgfTsgfQor
ICAgIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgaXNvbGF0ZWRDb3B5KCkgJiYgeyByZXR1cm4geyBl
bmFibGVkLCBXVEZNb3ZlKGhlYWRlclZhbHVlKS5pc29sYXRlZENvcHkoKSB9OyB9CisKKyAgICB0
ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25z
dCB7IGVuY29kZXIgPDwgZW5hYmxlZCA8PCBoZWFkZXJWYWx1ZTsgfQorICAgIHRlbXBsYXRlPGNs
YXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+
IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpv
cHRpb25hbDxOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlPiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlOjpk
ZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGVuYWJs
ZWQ7CisgICAgZGVjb2RlciA+PiBlbmFibGVkOworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAg
cmV0dXJuIHsgfTsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBoZWFkZXJWYWx1ZTsKKyAg
ICBkZWNvZGVyID4+IGhlYWRlclZhbHVlOworICAgIGlmICghaGVhZGVyVmFsdWUpCisgICAgICAg
IHJldHVybiB7IH07CisgICAgcmV0dXJuIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgeyAqZW5hYmxl
ZCwgV1RGTW92ZSgqaGVhZGVyVmFsdWUpIH07Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
KworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5iYzc5MzE3YjUyNzI3YzMzZGM0ZWE2NDQ2MWQ1ZjZjZGMyNzBjNGRkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVs
b2FkU3RhdGUuaWRsCkBAIC0wLDAgKzEsMzMgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5E
IEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9T
UyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBP
RiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorKi8KKworWworICAgIENvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSLAor
ICAgIEpTR2VuZXJhdGVUb0pTT2JqZWN0LAorXQorZGljdGlvbmFyeSBOYXZpZ2F0aW9uUHJlbG9h
ZFN0YXRlIHsKKyAgICBib29sZWFuIGVuYWJsZWQgPSBmYWxzZTsKKyAgICBCeXRlU3RyaW5nIGhl
YWRlclZhbHVlOworfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9TV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
V0NsaWVudENvbm5lY3Rpb24uaAppbmRleCAxZmExN2Y5ZThjZGMyZWQxODhmNzU3N2Q0YjE0YmRm
OWNiMGIyYTBjLi43MTMwM2FhOGM5NjEyOTQ4MmMxM2NhYzFmOTVkMzQ0MTQ5OTQ5MGNkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlv
bi5oCkBAIC0yOCw2ICsyOCw3IEBACiAjaWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQogCiAjaW5j
bHVkZSAiRXhjZXB0aW9uT3IuaCIKKyNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgi
CiAjaW5jbHVkZSAiUHVzaFBlcm1pc3Npb25TdGF0ZS5oIgogI2luY2x1ZGUgIlB1c2hTdWJzY3Jp
cHRpb25EYXRhLmgiCiAjaW5jbHVkZSAiU2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXIu
aCIKQEAgLTEwMCw2ICsxMDEsMTMgQEAgcHVibGljOgogICAgIHVzaW5nIEdldFB1c2hQZXJtaXNz
aW9uU3RhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8UHVz
aFBlcm1pc3Npb25TdGF0ZT4mJik+OwogICAgIHZpcnR1YWwgdm9pZCBnZXRQdXNoUGVybWlzc2lv
blN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBHZXRQdXNoUGVybWlz
c2lvblN0YXRlQ2FsbGJhY2smJikgPSAwOwogCisgICAgdXNpbmcgRXhjZXB0aW9uT3JWb2lkQ2Fs
bGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPHZvaWQ+JiYpPjsKKyAg
ICB2aXJ0dWFsIHZvaWQgZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKSA9IDA7CisgICAgdmly
dHVhbCB2b2lkIHNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyYmLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYm
KSA9IDA7CisgICAgdXNpbmcgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJh
Y2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4Y2VwdGlvbk9yPE5hdmlnYXRpb25QcmVsb2Fk
U3RhdGU+JiYpPjsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlQ2FsbGJhY2smJikgPSAwOworCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBy
ZWdpc3RlclNlcnZpY2VXb3JrZXJDbGllbnRzKCk7CiAKIHByb3RlY3RlZDoKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcAppbmRleCAzYTA0MDQ0ZWVjODIyYWE4ODQ5NDMyYjI4MjZiMWFkMTQ5OWU3MjViLi5kZDUz
YmZkYmUyMGRiNGZkZTE5YTFmY2YyMjA4ZmZjY2IxMmQyZWZiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3Bw
CkBAIC0zOCw2ICszOCw3IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXJDbGllbnQuaCIKICNpbmNs
dWRlICJJRExUeXBlcy5oIgogI2luY2x1ZGUgIkpTRE9NUHJvbWlzZURlZmVycmVkLmgiCisjaW5j
bHVkZSAiSlNOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgiCiAjaW5jbHVkZSAiSlNQdXNoU3Vic2Ny
aXB0aW9uLmgiCiAjaW5jbHVkZSAiSlNTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCiAjaW5j
bHVkZSAiTGVnYWN5U2NoZW1lUmVnaXN0cnkuaCIKQEAgLTY0Niw2ICs2NDcsMzggQEAgYm9vbCBT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjphZGRFdmVudExpc3RlbmVyKGNvbnN0IEF0b21TdHJpbmcm
IGV2ZW50VHlwZSwgUmVmPEUKICAgICByZXR1cm4gRXZlbnRUYXJnZXRXaXRoSW5saW5lRGF0YTo6
YWRkRXZlbnRMaXN0ZW5lcihldmVudFR5cGUsIFdURk1vdmUoZXZlbnRMaXN0ZW5lciksIG9wdGlv
bnMpOwogfQogCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmVuYWJsZU5hdmlnYXRpb25Q
cmVsb2FkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFZv
aWRQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBlbnN1cmVTV0NsaWVudENvbm5lY3Rpb24oKS5l
bmFibGVOYXZpZ2F0aW9uUHJlbG9hZChpZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBpZGVudGlmaWVyLCBWb2lkUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgZW5zdXJl
U1dDbGllbnRDb25uZWN0aW9uKCkuZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKGlkZW50aWZpZXIs
IFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7Cisg
ICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7CisgICAgfSk7Cit9CisKK3Zv
aWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6c2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1
ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcm
JiBoZWFkZXJWYWx1ZSwgVm9pZFByb21pc2UmJiBwcm9taXNlKQoreworICAgIGVuc3VyZVNXQ2xp
ZW50Q29ubmVjdGlvbigpLnNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoaWRlbnRpZmll
ciwgV1RGTW92ZShoZWFkZXJWYWx1ZSksIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0
byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVz
dWx0KSk7CisgICAgfSk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6Z2V0TmF2
aWdhdGlvblByZWxvYWRTdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlJiYgcHJvbWlzZSkKK3sKKyAgICBlbnN1
cmVTV0NsaWVudENvbm5lY3Rpb24oKS5nZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKGlkZW50aWZp
ZXIsIFtwcm9taXNlID0gV1RGTW92ZShwcm9taXNlKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7
CisgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKKyAgICAgICAgICAgIHByb21p
c2UucmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAgICAgcmV0dXJu
OworICAgICAgICB9CisgICAgICAgIHByb21pc2UucmVzb2x2ZShyZXN1bHQucmVsZWFzZVJldHVy
blZhbHVlKCkpOworICAgIH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAppbmRleCA4Mjg5NzFhNjU3
YWYwZTA5MDYwMmQ5YzFhMTc0NGYwZjUzMmNmZDY1Li5mZGFmMjU5NTQ2ZTJhMDU1NGQ0NWI2ODg0
OTVlMDg3MjI0MDE0ZjM3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKQEAgLTk4LDYgKzk4LDEzIEBAIHB1Ymxp
YzoKIAogICAgIE5hdmlnYXRvckJhc2UqIG5hdmlnYXRvcigpIHsgcmV0dXJuICZtX25hdmlnYXRv
cjsgfQogCisgICAgdXNpbmcgVm9pZFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD47
CisgICAgdXNpbmcgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJ
RExEaWN0aW9uYXJ5PE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+PjsKKyAgICB2b2lkIGVuYWJsZU5h
dmlnYXRpb25QcmVsb2FkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBWb2lk
UHJvbWlzZSYmKTsKKyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgVm9pZFByb21pc2UmJik7CisgICAgdm9pZCBzZXRO
YXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBTdHJpbmcmJiwgVm9pZFByb21pc2UmJik7CisgICAgdm9pZCBnZXROYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBOYXZpZ2F0
aW9uUHJlbG9hZFN0YXRlJiYpOworCiBwcml2YXRlOgogICAgIGJvb2wgYWRkRXZlbnRMaXN0ZW5l
cihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFdmVudExpc3RlbmVyPiYmLCBjb25z
dCBBZGRFdmVudExpc3RlbmVyT3B0aW9ucyYgPSB7IH0pIGZpbmFsOwogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5jcHAKaW5kZXggMGI2ODI4Yzg4N2JhZTNjMGViZWJhMzAzMjliMjllMTk5ZGM2YmE3MS4u
MGMwNmQ5OWJiMzJlMmNmZTVmMDZjODAwOTg1NmJjNjQwZjg3Yjk5OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uLmNwcApAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgIkV2ZW50TmFtZXMuaCIKICNp
bmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKKyNp
bmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29y
a2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlckNvbnRhaW5lci5oIgogI2luY2x1ZGUgIlNl
cnZpY2VXb3JrZXJUeXBlcy5oIgpAQCAtMjU0LDYgKzI1NSwxMyBAQCBib29sIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb246OnZpcnR1YWxIYXNQZW5kaW5nQWN0aXZpdHkoKSBjb25zdAogICAgIHJl
dHVybiBnZXROZXdlc3RXb3JrZXIoKSAmJiBoYXNFdmVudExpc3RlbmVycygpOwogfQogCitOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXImIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb246Om5hdmlnYXRp
b25QcmVsb2FkKCkKK3sKKyAgICBpZiAoIW1fbmF2aWdhdGlvblByZWxvYWQpCisgICAgICAgIG1f
bmF2aWdhdGlvblByZWxvYWQgPSBzdGQ6OnVuaXF1ZV9wdHI8TmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyPihuZXcgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyKCp0aGlzKSk7CisgICAgcmV0dXJuICpt
X25hdmlnYXRpb25QcmVsb2FkOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRp
ZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAppbmRleCA4OWVj
OTczZjVmZjY3YTM2YzdhMTRjOTZmMGE1NmQxODdhMzQ5OWY2Li5jMzI3ODkyMTNlOTQ3Yjk0OGMx
N2UwOTI4NDM1MTM3ZTQ4YTM5MzA4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKQEAgLTQwLDYgKzQw
LDcgQEAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOworY2xh
c3MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyOwogY2xhc3MgU2NyaXB0RXhlY3V0aW9uQ29udGV4
dDsKIGNsYXNzIFNlcnZpY2VXb3JrZXI7CiBjbGFzcyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOwpA
QCAtODUsNiArODYsOSBAQCBwdWJsaWM6CiAgICAgdm9pZCB1cGRhdGVTdGF0ZUZyb21TZXJ2ZXIo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvblN0YXRlLCBSZWZQdHI8U2VydmljZVdvcmtlcj4mJik7
CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVVcGRhdGVGb3VuZEV2ZW50KCk7CiAKKyAgICBOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXImIG5hdmlnYXRpb25QcmVsb2FkKCk7CisgICAgU2VydmljZVdv
cmtlckNvbnRhaW5lciYgY29udGFpbmVyKCkgeyByZXR1cm4gbV9jb250YWluZXIuZ2V0KCk7IH0K
KwogcHJpdmF0ZToKICAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uKFNjcmlwdEV4ZWN1dGlv
bkNvbnRleHQmLCBSZWY8U2VydmljZVdvcmtlckNvbnRhaW5lcj4mJiwgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbkRhdGEmJik7CiAKQEAgLTEwNCw2ICsxMDgsOCBAQCBwcml2YXRlOgogICAgIFJl
ZlB0cjxTZXJ2aWNlV29ya2VyPiBtX2luc3RhbGxpbmdXb3JrZXI7CiAgICAgUmVmUHRyPFNlcnZp
Y2VXb3JrZXI+IG1fd2FpdGluZ1dvcmtlcjsKICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9h
Y3RpdmVXb3JrZXI7CisKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8TmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyPiBtX25hdmlnYXRpb25QcmVsb2FkOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24uaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24uaWRsCmluZGV4IGRkOGIyMmUzN2UxN2Y4YzAxODA4MzlmZjFlYjQ4
NjRiNjMyZjMyNjcuLjJlOWQxZmU1MWI0YzA3Y2RkZDdhYzMyOWYwOTc1MjY4ZTQwOWUzNDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5pZGwKQEAgLTM3LDYgKzM3LDcgQEAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgU2VydmljZVdvcmtlcj8gaW5zdGFsbGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgU2VydmljZVdvcmtlcj8gd2FpdGluZzsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU2Vydmlj
ZVdvcmtlcj8gYWN0aXZlOworICAgIFtTYW1lT2JqZWN0LCBFbmFibGVkQnlTZXR0aW5nPVNlcnZp
Y2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWRdIHJlYWRvbmx5IGF0dHJpYnV0ZSBOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIgbmF2aWdhdGlvblByZWxvYWQ7CiAKICAgICByZWFkb25seSBh
dHRyaWJ1dGUgVVNWU3RyaW5nIHNjb3BlOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBTZXJ2aWNl
V29ya2VyVXBkYXRlVmlhQ2FjaGUgdXBkYXRlVmlhQ2FjaGU7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
CmluZGV4IGZhZWY5NGE3NWE4ZDcyMTk4NmY1NzlmM2I2NTkwMjMzN2Y4ZWVmNzguLjY4NDEyNzZl
NzVlZmFiZjU2NTRhZGI4ZDZjYTNjZjg1ODEyODRkMGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uY3Bw
CkBAIC03Myw2ICs3MywxNCBAQCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246On5Xb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb24oKQogICAgIGF1dG8gZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNr
cyA9IFdURk1vdmUobV9nZXRQdXNoUGVybWlzc2lvblN0YXRlQ2FsbGJhY2tzKTsKICAgICBmb3Ig
KGF1dG8mIGNhbGxiYWNrIDogZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrcy52YWx1ZXMo
KSkKICAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgImNvbnRleHQgc3Rv
cHBlZCJfcyB9KTsKKworICAgIGF1dG8gdm9pZENhbGxiYWNrcyA9IFdURk1vdmUobV92b2lkQ2Fs
bGJhY2tzKTsKKyAgICBmb3IgKGF1dG8mIGNhbGxiYWNrIDogdm9pZENhbGxiYWNrcy52YWx1ZXMo
KSkKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgImNvbnRleHQgc3Rv
cHBlZCJfcyB9KTsKKworICAgIGF1dG8gbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcyA9
IFdURk1vdmUobV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2tzKTsKKyAgICBmb3IgKGF1
dG8mIGNhbGxiYWNrIDogbV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2tzLnZhbHVlcygp
KQorICAgICAgICBjYWxsYmFjayhFeGNlcHRpb24geyBBYm9ydEVycm9yLCAiY29udGV4dCBzdG9w
cGVkIl9zIH0pOwogfQogCiB2b2lkIFdvcmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6bWF0Y2hSZWdp
c3RyYXRpb24oU2VjdXJpdHlPcmlnaW5EYXRhJiYgdG9wT3JpZ2luLCBjb25zdCBVUkwmIGNsaWVu
dFVSTCwgUmVnaXN0cmF0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKQEAgLTI4NSw2ICsyOTMsNzAg
QEAgdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkkKICAgICB9KTsKIH0KIAordm9pZCBXb3JrZXJTV0Ns
aWVudENvbm5lY3Rpb246OmVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9p
ZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIg
PSArK21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQocmVx
dWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJl
YWQoW3RocmVhZCA9IG1fdGhyZWFkLCByZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uSWRl
bnRpZmllcl0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VX
b3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKKyAg
ICAgICAgY29ubmVjdGlvbi5lbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChyZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCByZXF1ZXN0SWRlbnRpZmllcl0oYXV0
byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JN
b2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCld
KGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5t
X3ZvaWRDYWxsYmFja3MudGFrZShyZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAg
Y2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJT
V0NsaWVudENvbm5lY3Rpb246OmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25P
clZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRk
KHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aHJlYWQgPSBtX3RocmVhZCwgcmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlv
bklkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2
aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7
CisgICAgICAgIGNvbm5lY3Rpb24uZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIFt0aHJlYWQgPSBXVEZNb3ZlKHRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVy
XShhdXRvJiYgcmVzdWx0KSB7CisgICAgICAgICAgICB0aHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW3JlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVz
dWx0KV0oYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGF1dG8gY2FsbGJh
Y2sgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLnN3Q2xpZW50Q29ubmVjdGlv
bigpLm1fdm9pZENhbGxiYWNrcy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIFdv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBTdHJpbmcmJiBoZWFkZXJWYWx1ZSwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFj
aykKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElk
ZW50aWZpZXI7CisgICAgbV92b2lkQ2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RG
TW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhyZWFkID0gbV90aHJl
YWQsIHJlcXVlc3RJZGVudGlmaWVyLCByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBoZWFkZXJWYWx1
ZSA9IFdURk1vdmUoaGVhZGVyVmFsdWUpLmlzb2xhdGVkQ29weSgpXSgpIG11dGFibGUgeworICAg
ICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24o
KS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLnNldE5hdmln
YXRpb25QcmVsb2FkSGVhZGVyVmFsdWUocmVnaXN0cmF0aW9uSWRlbnRpZmllciwgV1RGTW92ZSho
ZWFkZXJWYWx1ZSksIFt0aHJlYWQgPSBXVEZNb3ZlKHRocmVhZCksIHJlcXVlc3RJZGVudGlmaWVy
XShhdXRvJiYgcmVzdWx0KSB7CisgICAgICAgICAgICB0aHJlYWQtPnJ1bkxvb3AoKS5wb3N0VGFz
a0Zvck1vZGUoW3JlcXVlc3RJZGVudGlmaWVyLCByZXN1bHQgPSBjcm9zc1RocmVhZENvcHkocmVz
dWx0KV0oYXV0byYgc2NvcGUpIG11dGFibGUgeworICAgICAgICAgICAgICAgIGF1dG8gY2FsbGJh
Y2sgPSBkb3duY2FzdDxXb3JrZXJHbG9iYWxTY29wZT4oc2NvcGUpLnN3Q2xpZW50Q29ubmVjdGlv
bigpLm1fdm9pZENhbGxiYWNrcy50YWtlKHJlcXVlc3RJZGVudGlmaWVyKTsKKyAgICAgICAgICAg
ICAgICBjYWxsYmFjayhXVEZNb3ZlKHJlc3VsdCkpOworICAgICAgICAgICAgfSwgV29ya2VyUnVu
TG9vcDo6ZGVmYXVsdE1vZGUoKSk7CisgICAgICAgIH0pOworICAgIH0pOworfQorCit2b2lkIFdv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNl
cHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAg
IHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsK
KyAgICBtX25hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFja3MuYWRkKHJlcXVlc3RJZGVudGlm
aWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aHJlYWQg
PSBtX3RocmVhZCwgcmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbklkZW50aWZpZXJdKCkg
bXV0YWJsZSB7CisgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlk
ZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CisgICAgICAgIGNvbm5l
Y3Rpb24uZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShyZWdpc3RyYXRpb25JZGVudGlmaWVyLCBb
dGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCByZXF1ZXN0SWRlbnRpZmllcl0oYXV0byYmIHJlc3Vs
dCkgeworICAgICAgICAgICAgdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1
ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KHJlc3VsdCldKGF1dG8mIHNj
b3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gZG93bmNhc3Q8
V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5tX25hdmlnYXRp
b25QcmVsb2FkU3RhdGVDYWxsYmFja3MudGFrZShyZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAg
ICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwogfSAv
LyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50
Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xp
ZW50Q29ubmVjdGlvbi5oCmluZGV4IDk2OTk0YmQ5NTZkMWNiZjE1YmEzZTE5YmNmMDcxMzMzOWY5
OTFlMzguLmQwMGQxMTE1YzZmYmU2NzA4YzU1Mjg0ZTQ2YzI3MWVhMmY4YmIzNjUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uLmgKQEAgLTYyLDYgKzYyLDExIEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRQdXNo
U3Vic2NyaXB0aW9uKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBHZXRQdXNo
U3Vic2NyaXB0aW9uQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9pZCBnZXRQdXNoUGVybWlzc2lv
blN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBHZXRQdXNoUGVybWlz
c2lvblN0YXRlQ2FsbGJhY2smJikgZmluYWw7CiAKKyAgICB2b2lkIGVuYWJsZU5hdmlnYXRpb25Q
cmVsb2FkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZv
aWRDYWxsYmFjayYmKSBmaW5hbDsKKyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJh
Y2smJikgZmluYWw7CisgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiwgRXhjZXB0aW9uT3JW
b2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25Pck5hdmlnYXRp
b25QcmVsb2FkU3RhdGVDYWxsYmFjayYmKSBmaW5hbDsKKwogICAgIFJlZjxXb3JrZXJUaHJlYWQ+
IG1fdGhyZWFkOwogCiAgICAgdWludDY0X3QgbV9sYXN0UmVxdWVzdElkZW50aWZpZXIgeyAwIH07
CkBAIC03Myw2ICs3OCw4IEBAIHByaXZhdGU6CiAgICAgSGFzaE1hcDx1aW50NjRfdCwgVW5zdWJz
Y3JpYmVGcm9tUHVzaFNlcnZpY2VDYWxsYmFjaz4gbV91bnN1YnNjcmliZUZyb21QdXNoU2Vydmlj
ZVJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEdldFB1c2hTdWJzY3JpcHRpb25DYWxs
YmFjaz4gbV9nZXRQdXNoU3Vic2NyaXB0aW9uUmVxdWVzdHM7CiAgICAgSGFzaE1hcDx1aW50NjRf
dCwgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrPiBtX2dldFB1c2hQZXJtaXNzaW9uU3Rh
dGVDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJh
Y2s+IG1fdm9pZENhbGxiYWNrczsKKyAgICBIYXNoTWFwPHVpbnQ2NF90LCBFeGNlcHRpb25Pck5h
dmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjaz4gbV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2tzOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRj
aC5jcHAKaW5kZXggZDQ1NGU5ZDE3NDg0MGY2NWMzN2EwMTE1Mjg5MTUyYTEwMjY0MjQzYS4uOWI3
ZmY1MzBhZWY0YmQ2NzE4YjFiNjdkOGI2ZGE5YTJjYTFiZDYwNCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RmV0Y2guY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgc3RhdGljIHZvaWQgcHJvY2Vzc1Jlc3BvbnNl
KFJlZjxDbGllbnQ+JiYgY2xpZW50LCBFeHBlY3RlZDxSZWY8RmV0Y2hSZXNwb25zZT4sIHMKICAg
ICB9KTsKIH0KIAotdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiBjbGllbnQs
IFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2Ny
aXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGNsaWVudElkLCBSZXNvdXJjZVJlcXVlc3Qm
JiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgRmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKK3ZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJl
ZjxDbGllbnQ+JiYgY2xpZW50LCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjb3Bl
LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBjbGllbnRJ
ZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0
aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogewogICAgIGF1dG8gcmVxdWVz
dEhlYWRlcnMgPSBGZXRjaEhlYWRlcnM6OmNyZWF0ZShGZXRjaEhlYWRlcnM6Okd1YXJkOjpJbW11
dGFibGUsIEhUVFBIZWFkZXJNYXAgeyByZXF1ZXN0Lmh0dHBIZWFkZXJGaWVsZHMoKSB9KTsKIApA
QCAtMTY3LDcgKzE2Nyw5IEBAIHZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYg
Y2xpZW50LCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjCiAKICAgICBVUkwgcmVx
dWVzdFVSTCA9IHJlcXVlc3QudXJsKCk7CiAgICAgYXV0byBmZXRjaFJlcXVlc3QgPSBGZXRjaFJl
cXVlc3Q6OmNyZWF0ZShnbG9iYWxTY29wZSwgV1RGTW92ZShib2R5KSwgV1RGTW92ZShyZXF1ZXN0
SGVhZGVycyksICBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKG9wdGlvbnMpLCBXVEZNb3ZlKHJl
ZmVycmVyKSk7Ci0gICAgZmV0Y2hSZXF1ZXN0LT5zZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZp
ZXIoZmV0Y2hJZGVudGlmaWVyKTsKKworICAgIGlmICghaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRFbmFibGVkKQorICAgICAgICBmZXRjaFJlcXVlc3QtPnNldE5hdmlnYXRpb25QcmVs
b2FkSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpOwogCiAgICAgRmV0Y2hFdmVudDo6SW5pdCBp
bml0OwogICAgIGluaXQucmVxdWVzdCA9IFdURk1vdmUoZmV0Y2hSZXF1ZXN0KTsKQEAgLTE4MCw2
ICsxODIsOSBAQCB2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVudCwg
U2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTYwogICAgIGluaXQuY2FuY2VsYWJsZSA9
IHRydWU7CiAgICAgYXV0byBldmVudCA9IEZldGNoRXZlbnQ6OmNyZWF0ZShldmVudE5hbWVzKCku
ZmV0Y2hFdmVudCwgV1RGTW92ZShpbml0KSwgRXZlbnQ6OklzVHJ1c3RlZDo6WWVzKTsKIAorICAg
IGlmIChpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpCisgICAgICAgIGV2
ZW50LT5zZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVyKTsKKwog
ICAgIENlcnRpZmljYXRlSW5mbyBjZXJ0aWZpY2F0ZUluZm8gPSBnbG9iYWxTY29wZS5jZXJ0aWZp
Y2F0ZUluZm8oKTsKIAogICAgIGV2ZW50LT5vblJlc3BvbnNlKFtjbGllbnQsIG1vZGUsIHJlZGly
ZWN0LCByZXF1ZXN0VVJMLCBjZXJ0aWZpY2F0ZUluZm8gPSBXVEZNb3ZlKGNlcnRpZmljYXRlSW5m
byldIChhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKaW5kZXgg
NzY3MTQ2YmIwMjM2NGRkYTFlZjcxYTAxMTM0MzlhYmNlNWU1ZDk5NS4uNTRkMDRlODM3NGE4YWVj
ZWU0YzBmMDNkNjQxMWE2YjczNWE5MWI4NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmgKQEAgLTU5
LDcgKzU5LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCBjb250aW51ZURpZFJlY2VpdmVS
ZXNwb25zZSgpID0gMDsKIH07CiAKLXZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+
JiYsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJy
ZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElkZW50aWZpZXIpOwordm9pZCBkaXNwYXRjaEZldGNo
RXZlbnQoUmVmPENsaWVudD4mJiwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4sIFJlc291cmNlUmVxdWVzdCYm
LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9v
bCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogfTsKIAogfSAvLyBu
YW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAppbmRleCA2NDYwZjBm
NjVmMDU5MDZmY2JkYThmZTE2NTZlMjVlYTg3YzY1YTJjLi42YmYwOWRhMTE2MTlmY2I3ZDVjODQw
M2VmNzU4ODJiNTI3NDg1ZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcApAQCAtMTI0
LDExICsxMjQsMTEgQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkOjpydW5FdmVudExvb3AoKQog
ICAgIFdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wKCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtl
clRocmVhZDo6cXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVudChSZWY8U2VydmljZVdvcmtlckZldGNo
OjpDbGllbnQ+JiYgY2xpZW50LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyPiYmIGNsaWVudElkLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcm
JiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgRmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllcikKK3ZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cXVldWVUYXNrVG9GaXJlRmV0
Y2hFdmVudChSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYgY2xpZW50LCBzdGQ6Om9w
dGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmIGNsaWVudElkLCBSZXNv
dXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYg
b3B0aW9ucywgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgYm9vbCBpc1NlcnZpY2VX
b3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpCiB7CiAgICAgUmVmIHNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSA9IGRvd25jYXN0PFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZT4oKmdsb2JhbFNj
b3BlKCkpOwotICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVldWVU
YXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3NlcnZpY2VXb3JrZXJHbG9iYWxTY29w
ZSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IFdURk1vdmUo
cmVxdWVzdCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlciksIG9wdGlvbnMgPSBXVEZNb3Zl
KG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXJdKCkgbXV0YWJsZSB7Ci0gICAgICAgIFNlcnZpY2VX
b3JrZXJGZXRjaDo6ZGlzcGF0Y2hGZXRjaEV2ZW50KFdURk1vdmUoY2xpZW50KSwgc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLCBjbGllbnRJZCwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWZl
cnJlciksIFdURk1vdmUob3B0aW9ucyksIGZldGNoSWRlbnRpZmllcik7CisgICAgc2VydmljZVdv
cmtlckdsb2JhbFNjb3BlLT5ldmVudExvb3AoKS5xdWV1ZVRhc2soVGFza1NvdXJjZTo6RE9NTWFu
aXB1bGF0aW9uLCBbc2VydmljZVdvcmtlckdsb2JhbFNjb3BlLCBjbGllbnQgPSBXVEZNb3ZlKGNs
aWVudCksIGNsaWVudElkLCByZXF1ZXN0ID0gV1RGTW92ZShyZXF1ZXN0KSwgcmVmZXJyZXIgPSBX
VEZNb3ZlKHJlZmVycmVyKSwgb3B0aW9ucyA9IFdURk1vdmUob3B0aW9ucyksIGZldGNoSWRlbnRp
ZmllciwgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkXSgpIG11dGFibGUg
eworICAgICAgICBTZXJ2aWNlV29ya2VyRmV0Y2g6OmRpc3BhdGNoRmV0Y2hFdmVudChXVEZNb3Zl
KGNsaWVudCksIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgY2xpZW50SWQsIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZp
ZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CiAgICAgfSk7CiB9
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1Nl
cnZpY2VXb3JrZXJUaHJlYWQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaAppbmRleCBkOWUzMzY1MTljNWQwNWI4MzZmODQxMjA4
OTM1MzJlNzlhNDFjMzFmLi5kZWQzYzI1MGY1ZWUxNjY4NjYzYzdiOWQwZTdhOTQxMjkwMjNhYmM3
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyVGhyZWFkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCkBAIC02NCw3ICs2NCw3IEBAIHB1YmxpYzoKICAg
ICB2b2lkIHdpbGxQb3N0VGFza1RvRmlyZU1lc3NhZ2VFdmVudCgpOwogICAgIHZvaWQgd2lsbFBv
c3RUYXNrVG9GaXJlUHVzaFN1YnNjcmlwdGlvbkNoYW5nZUV2ZW50KCk7CiAKLSAgICB2b2lkIHF1
ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYm
LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmLCBSZXNv
dXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElk
ZW50aWZpZXIpOworICAgIHZvaWQgcXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVudChSZWY8U2Vydmlj
ZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29u
dGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwg
RmV0Y2hPcHRpb25zJiYsIEZldGNoSWRlbnRpZmllciwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZp
Z2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIHZvaWQgcXVldWVUYXNrVG9Qb3N0TWVzc2FnZShN
ZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291
cmNlRGF0YSk7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVJbnN0YWxsRXZlbnQoKTsKICAgICB2
b2lkIHF1ZXVlVGFza1RvRmlyZUFjdGl2YXRlRXZlbnQoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHkuY3BwCmluZGV4IGFmMDE2YjIyZjA3ZDVlMmU3OTc3NjQ1ZTYyZTBmNTIyM2Jm
MjY5YmIuLmI5YWFmN2UwYjc1MWQyZjc3NjUyNmQ2Zjg4MjYxZjc3NjVjMTgwY2MgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApAQCAtMjE1LDcgKzIxNSw3IEBAIHZvaWQg
U2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBp
c09ubGluZSkKICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIAotdm9p
ZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9u
SWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpv
cHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYm
IG9wdGlvbnMpCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaChTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIGNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYg
Y2xpZW50LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYm
IGNsaWVudElkLCBSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBTdHJpbmcmJiByZWZlcnJlciwg
RmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJl
bG9hZEVuYWJsZWQpCiB7CiAgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eTo6c3RhcnRGZXRjaCAlbGx1IiwgZmV0Y2hJZGVudGlmaWVyLnRvVUlu
dDY0KCkpOwogCkBAIC0yMjYsOCArMjI2LDggQEAgdm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHk6OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW8KIAog
ICAgIEFTU0VSVCghbV9vbmdvaW5nRmV0Y2hUYXNrcy5jb250YWlucyhrZXkpKTsKICAgICBtX29u
Z29pbmdGZXRjaFRhc2tzLmFkZChrZXksIGNsaWVudC5jb3B5UmVmKCkpOwotICAgIHBvc3RUYXNr
Rm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3RoaXMsIHByb3RlY3RlZFRoaXMg
PSBSZWYgeyAqdGhpcyB9LCBjbGllbnQgPSBXVEZNb3ZlKGNsaWVudCksIGNsaWVudElkLCByZXF1
ZXN0ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgcmVmZXJyZXIgPSByZWZlcnJlci5pc29sYXRl
ZENvcHkoKSwgb3B0aW9ucyA9IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCksIGZldGNoSWRlbnRpZmll
cl0oYXV0byYpIG11dGFibGUgewotICAgICAgICB0aHJlYWQoKS5xdWV1ZVRhc2tUb0ZpcmVGZXRj
aEV2ZW50KFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShjbGllbnRJZCksIFdURk1vdmUocmVxdWVz
dCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIp
OworICAgIHBvc3RUYXNrRm9yTW9kZVRvV29ya2VyT3JXb3JrbGV0R2xvYmFsU2NvcGUoW3RoaXMs
IHByb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBjbGllbnQgPSBXVEZNb3ZlKGNsaWVudCks
IGNsaWVudElkLCByZXF1ZXN0ID0gcmVxdWVzdC5pc29sYXRlZENvcHkoKSwgcmVmZXJyZXIgPSBy
ZWZlcnJlci5pc29sYXRlZENvcHkoKSwgb3B0aW9ucyA9IG9wdGlvbnMuaXNvbGF0ZWRDb3B5KCks
IGZldGNoSWRlbnRpZmllciwgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVk
XShhdXRvJikgbXV0YWJsZSB7CisgICAgICAgIHRocmVhZCgpLnF1ZXVlVGFza1RvRmlyZUZldGNo
RXZlbnQoV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShyZXF1ZXN0
KSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucyksIGZldGNoSWRlbnRpZmllciwg
aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICB9LCBXb3JrZXJS
dW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmggYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaAppbmRleCA2Zjk2MmVlYTY4NWFlMzljMzdmMzBiOTc3YWU3ZTUwYWVhZjgxYjI4Li5kMDlm
YmJmNDY1NDRjZTNiNzIyOTAxNThhMzQzNDMxZDJmNmUyODIyIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHku
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkUHJveHkuaApAQCAtNzUsNyArNzUsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB2b2lkIG5vdGlmeU5ldHdvcmtTdGF0ZUNoYW5nZShib29sIGlzT25saW5lKTsKIAot
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBGZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4m
Jiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVz
b3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJik7CisgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIsIEZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBz
dGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmLCBSZXNvdXJj
ZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBib29sIGlzU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjYW5jZWxGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50
aWZpZXIpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hS
ZXNwb25zZShTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIpOwog
ICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgcmVtb3ZlRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKaW5k
ZXggZjdjNjdiZDliNTZkOTVkZGE3MzY2OWE5Mzk3ZGEwNDA3YmIyMjFjMC4uZWM3YjNiYzMyMWM3
MzA3MTlkZDk1MzI2Y2M0NWI4ZmViYzFjYjI3NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5j
cHAKQEAgLTI4LDYgKzI4LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKIAorI2lu
Y2x1ZGUgIkhUVFBQYXJzZXJzLmgiCiAjaW5jbHVkZSAiTG9nZ2luZy5oIgogI2luY2x1ZGUgIlNX
U2VydmVyLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXJUb0NvbnRleHRDb25uZWN0aW9uLmgiCkBAIC01
NCw2ICs1NSw3IEBAIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpTV1NlcnZlclJlZ2lzdHJhdGlvbihT
V1NlcnZlciYgc2VydmVyLCBjb25zdCBTZXJ2aWNlV29ya2VyCiAgICAgLCBtX3NvZnRVcGRhdGVU
aW1lciB7ICp0aGlzLCAmU1dTZXJ2ZXJSZWdpc3RyYXRpb246OnNvZnRVcGRhdGUgfQogewogICAg
IG1fc2NvcGVVUkwucmVtb3ZlRnJhZ21lbnRJZGVudGlmaWVyKCk7CisgICAgbV9wcmVsb2FkU3Rh
dGUuaGVhZGVyVmFsdWUgPSAidHJ1ZSJfczsKIH0KIAogU1dTZXJ2ZXJSZWdpc3RyYXRpb246On5T
V1NlcnZlclJlZ2lzdHJhdGlvbigpCkBAIC0zODIsNiArMzg0LDM4IEBAIHZvaWQgU1dTZXJ2ZXJS
ZWdpc3RyYXRpb246OnNjaGVkdWxlU29mdFVwZGF0ZShJc0FwcEluaXRpYXRlZCBpc0FwcEluaXRp
YXRlZCkKICAgICBtX3NvZnRVcGRhdGVUaW1lci5zdGFydE9uZVNob3Qoc29mdFVwZGF0ZURlbGF5
KTsKIH0KIAorLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2RvbS1uYXZp
Z2F0aW9ucHJlbG9hZG1hbmFnZXItZW5hYmxlLCBzdGVwcyBydW4gaW4gcGFyYWxsZWwuCitzdGQ6
Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IFNXU2VydmVyUmVnaXN0cmF0aW9uOjplbmFibGVOYXZp
Z2F0aW9uUHJlbG9hZCgpCit7CisgICAgLy8gRklYTUU6IFBlcnNpc3QgdGhpcyBkYXRhLgorICAg
IGlmICghbV9hY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb25EYXRhIHsgSW52
YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUgd29ya2VyIl9zIH07CisgICAgbV9wcmVsb2FkU3Rh
dGUuZW5hYmxlZCA9IHRydWU7CisgICAgcmV0dXJuIHsgfTsKK30KKworLy8gaHR0cHM6Ly93M2Mu
Z2l0aHViLmlvL1NlcnZpY2VXb3JrZXIvI2RvbS1uYXZpZ2F0aW9ucHJlbG9hZG1hbmFnZXItZGlz
YWJsZSwgc3RlcHMgcnVuIGluIHBhcmFsbGVsLgorc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRh
PiBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6ZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKCkKK3sKKyAg
ICAvLyBGSVhNRTogUGVyc2lzdCB0aGlzIGRhdGEuCisgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGFj
dGl2ZSB3b3JrZXIiX3MgfTsKKyAgICBtX3ByZWxvYWRTdGF0ZS5lbmFibGVkID0gZmFsc2U7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKworLy8gaHR0cHM6Ly93M2MuZ2l0aHViLmlvL1NlcnZpY2VXb3Jr
ZXIvI2RvbS1uYXZpZ2F0aW9ucHJlbG9hZG1hbmFnZXItc2V0aGVhZGVydmFsdWUsIHN0ZXBzIHJ1
biBpbiBwYXJhbGxlbC4KK3N0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gU1dTZXJ2ZXJSZWdp
c3RyYXRpb246OnNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU3RyaW5nJiYgaGVhZGVy
VmFsdWUpCit7CisgICAgLy8gRklYTUU6IFBlcnNpc3QgdGhpcyBkYXRhLgorICAgIGlmICghaXNW
YWxpZEhUVFBIZWFkZXJWYWx1ZShoZWFkZXJWYWx1ZSkpCisgICAgICAgIHJldHVybiBFeGNlcHRp
b25EYXRhIHsgVHlwZUVycm9yLCAiSW52YWxpZCBoZWFkZXIgdmFsdWUiX3MgfTsKKyAgICBpZiAo
IW1fYWN0aXZlV29ya2VyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IEludmFsaWRT
dGF0ZUVycm9yLCAiTm8gYWN0aXZlIHdvcmtlciJfcyB9OworICAgIG1fcHJlbG9hZFN0YXRlLmhl
YWRlclZhbHVlID0gV1RGTW92ZShoZWFkZXJWYWx1ZSk7CisgICAgcmV0dXJuIHsgfTsKK30KKwog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1Nl
cnZlclJlZ2lzdHJhdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZl
ci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCmluZGV4IDcyODcxYjliMGEwMDc5ZGUyMzZiMzM1OTJk
NmRjZmE3ZjRlYzZiNWUuLmI5ZmQwZDkyNTQwNDkzNDNmMjU1NTlhZWM4YjI4YTE0YjYyOTJlYzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIk5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCIK
ICNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJ
ZGVudGlmaWVyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbkRhdGEuaCIK
QEAgLTExMCw2ICsxMTEsMTEgQEAgcHVibGljOgogICAgIGJvb2wgaXNBcHBJbml0aWF0ZWQoKSBj
b25zdCB7IHJldHVybiBtX2lzQXBwSW5pdGlhdGVkOyB9CiAgICAgc3RkOjpvcHRpb25hbDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVy
KCkgY29uc3QgeyByZXR1cm4gbV9zZXJ2aWNlV29ya2VyUGFnZUlkZW50aWZpZXI7IH0KIAorICAg
IFdFQkNPUkVfRVhQT1JUIHN0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gZW5hYmxlTmF2aWdh
dGlvblByZWxvYWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlv
bkRhdGE+IGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZCgpOworICAgIFdFQkNPUkVfRVhQT1JUIHN0
ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1
ZShTdHJpbmcmJik7CisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBuYXZpZ2F0aW9uUHJlbG9h
ZFN0YXRlKCkgeyByZXR1cm4gbV9wcmVsb2FkU3RhdGU7IH0KKwogcHJpdmF0ZToKICAgICB2b2lk
IGFjdGl2YXRlKCk7CiAgICAgdm9pZCBoYW5kbGVDbGllbnRVbmxvYWQoKTsKQEAgLTEzOCw2ICsx
NDQsNyBAQCBwcml2YXRlOgogICAgIFdlYkNvcmU6OlRpbWVyIG1fc29mdFVwZGF0ZVRpbWVyOwog
ICAgIAogICAgIGJvb2wgbV9pc0FwcEluaXRpYXRlZCB7IHRydWUgfTsKKyAgICBOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlIG1fcHJlbG9hZFN0YXRlOwogfTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCmluZGV4IDkxYWQyZmY3
MzhlMTdlYTk2Yjk5ZTU4MGQ3NThkYWE5YThjYWNjMjQuLjkwYTk5ZmM1NjUyMDEzNWQxMTMwM2Vl
OTZjNjU3MzE5MzJhMjk2MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFz
ay5jcHAKQEAgLTkxLDEyICs5MSwxMiBAQCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpTZXJ2aWNl
V29ya2VyRmV0Y2hUYXNrKFdlYlNXU2VydmVyQ29ubmVjdGlvbiYgc3dTZXJ2ZXJDbwogCiAgICAg
bV90aW1lb3V0VGltZXItPnN0YXJ0T25lU2hvdChsb2FkZXIuY29ubmVjdGlvblRvV2ViUHJvY2Vz
cygpLm5ldHdvcmtQcm9jZXNzKCkuc2VydmljZVdvcmtlckZldGNoVGltZW91dCgpKTsKIAotICAg
IC8vIEZJWE1FOiBDb25zaWRlciBleHRlbmRpbmcgdGhpcyBiYXNlZCBvbiBuYXZpZ2F0aW9uIHBy
ZWxvYWQgbWFuYWdlci4KICAgICBib29sIHNob3VsZERvTmF2aWdhdGlvblByZWxvYWQgPSBzZXNz
aW9uICYmIGlzTmF2aWdhdGlvblJlcXVlc3QobG9hZGVyLnBhcmFtZXRlcnMoKS5vcHRpb25zLmRl
c3RpbmF0aW9uKSAmJiBsb2FkZXIub3JpZ2luYWxSZXF1ZXN0KCkuaHR0cE1ldGhvZCgpID09ICJH
RVQiOwotICAgIGlmIChzaG91bGREb05hdmlnYXRpb25QcmVsb2FkICYmICFpc1dvcmtlclJlYWR5
KSB7CisgICAgaWYgKHNob3VsZERvTmF2aWdhdGlvblByZWxvYWQgJiYgKCFpc1dvcmtlclJlYWR5
IHx8IHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKCkuZW5hYmxlZCkpIHsKICAg
ICAgICAgTmV0d29ya0xvYWRQYXJhbWV0ZXJzIHBhcmFtZXRlcnMgPSBsb2FkZXIucGFyYW1ldGVy
cygpOwogICAgICAgICBwYXJhbWV0ZXJzLnJlcXVlc3QgPSBtX2N1cnJlbnRSZXF1ZXN0OwotICAg
ICAgICBtX3ByZWxvYWRlciA9IG1ha2VVbmlxdWU8U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkZXI+KCpzZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKKyAgICAgICAgLy8gRklYTUU6
IE1heWJlIHdlIHNob3VsZCBvbmx5IHN0YXJ0IHRoZSBwcmVsb2FkIGlmICFpc1dvcmtlclJlYWR5
LiBJZiBub3Qgc3RhcnRpbmcgaXQgcmlnaHQgYXdheSwgd2Ugd291bGQgc3RhcnQgaXQgd2hlbiBh
IFNXIGxvYWQgcmVxdWlyZXMgaXQuCisgICAgICAgIG1fcHJlbG9hZGVyID0gbWFrZVVuaXF1ZTxT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcj4oKnNlc3Npb24sIFdURk1vdmUocGFyYW1l
dGVycyksIHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKCkpOwogICAgICAgICBz
ZXNzaW9uLT5hZGROYXZpZ2F0aW9uUHJlbG9hZGVyVGFzaygqdGhpcyk7CiAgICAgfQogfQpAQCAt
MTYwLDcgKzE2MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6c3RhcnRGZXRjaCgp
CiAgICAgYXV0byByZXF1ZXN0ID0gbV9jdXJyZW50UmVxdWVzdDsKICAgICBjbGVhbkhUVFBSZXF1
ZXN0SGVhZGVyc0ZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgbV9sb2FkZXIucGFyYW1ldGVycygp
Lmh0dHBIZWFkZXJzVG9LZWVwKTsKIAotICAgIGJvb2wgaXNTZW50ID0gc2VuZFRvU2VydmljZVdv
cmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2gg
eyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVy
LCBtX2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVy
ZW5jZSB7IG1fY3VycmVudFJlcXVlc3QuaHR0cEJvZHkoKSB9LCByZWZlcnJlciB9KTsKKyAgICBi
b29sIGlzU2VudCA9IHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uOjpTdGFydEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlcXVlc3Qs
IG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBtX2N1cnJlbnRSZXF1ZXN0Lmh0dHBC
b2R5KCkgfSwgcmVmZXJyZXIsIG1fcHJlbG9hZGVyICYmIG1fcHJlbG9hZGVyLT5pc1NlcnZpY2VX
b3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSB9KTsKICAgICBBU1NFUlRfVU5VU0VEKGlz
U2VudCwgaXNTZW50KTsKIH0KIApAQCAtMzA2LDcgKzMwNiw3IEBAIHZvaWQgU2VydmljZVdvcmtl
ckZldGNoVGFzazo6ZGlkTm90SGFuZGxlKCkKICAgICAgICAgbV90aW1lb3V0VGltZXItPnN0b3Ao
KTsKICAgICBzb2Z0VXBkYXRlSWZOZWVkZWQoKTsKIAotICAgIGlmIChtX3ByZWxvYWRlcikgewor
ICAgIGlmIChtX3ByZWxvYWRlciAmJiAhbV9wcmVsb2FkZXItPmlzU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkRW5hYmxlZCgpKSB7CiAgICAgICAgIGxvYWRSZXNwb25zZUZyb21QcmVsb2Fk
ZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCmluZGV4IDExZjlkNDgwODYzY2ZlYzYw
YmM4M2Y0YTUxNDhiZGEzMTY2M2NiZDcuLjU4MGQ3ZmE2NGQ4MzA5YmVmNDc3NGY0ZGQ4MWUyNWZk
YjlhMjEwOTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vydmlj
ZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyLmNwcApAQCAtMzIsMTggKzMyLDIwIEBACiAjaW5jbHVkZSAiTmV0d29ya0Nh
Y2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lv
bi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oPgogCiBuYW1l
c3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVNlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcihO
ZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVy
cykKK1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpTZXJ2aWNlV29ya2VyTmF2aWdh
dGlvblByZWxvYWRlcihOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0xvYWRQYXJhbWV0
ZXJzJiYgcGFyYW1ldGVycywgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSYg
c3RhdGUpCiAgICAgOiBtX3Nlc3Npb24oc2Vzc2lvbikKKyAgICAsIG1faXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRFbmFibGVkKHN0YXRlLmVuYWJsZWQpCiB7CiAgICAgUkVMRUFTRV9M
T0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlciAlcCIsIHRoaXMpOwogICAgIGlmIChzZXNzaW9u
LmNhY2hlKCkpIHsKICAgICAgICAgTmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGdsb2JhbElE
IHsgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBhcmFt
ZXRlcnMud2ViRnJhbWVJRCB9OwotICAgICAgICBzZXNzaW9uLmNhY2hlKCktPnJldHJpZXZlKHBh
cmFtZXRlcnMucmVxdWVzdCwgZ2xvYmFsSUQsIHBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9BcHBC
b3VuZERvbWFpbiwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBhcmFtZXRl
cnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpXShhdXRvJiYgZW50cnksIGF1dG8mJikgbXV0YWJsZSB7
CisgICAgICAgIHNlc3Npb24uY2FjaGUoKS0+cmV0cmlldmUocGFyYW1ldGVycy5yZXF1ZXN0LCBn
bG9iYWxJRCwgcGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBbdGhpcywg
d2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfSwgcGFyYW1ldGVycyA9IFdURk1vdmUocGFyYW1l
dGVycyksIHN0YXRlXShhdXRvJiYgZW50cnksIGF1dG8mJikgbXV0YWJsZSB7CiAgICAgICAgICAg
ICBpZiAoIXdlYWtUaGlzIHx8IG1faXNDYW5jZWxsZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJu
OwogICAgICAgICAgICAgaWYgKCFtX3Nlc3Npb24pIHsKQEAgLTY3LDExICs2OSwxMSBAQCBTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkZXIoTmV0d29ya1Nlc3NpbwogICAgICAgICAgICAgICAgIGlmICghbGFzdE1vZGlmaWVkLmlz
RW1wdHkoKSkKICAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5yZXF1ZXN0LnNldEhUVFBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6SWZNb2RpZmllZFNpbmNlLCBsYXN0TW9kaWZpZWQp
OwogICAgICAgICAgICAgfQotICAgICAgICAgICAgbG9hZEZyb21OZXR3b3JrKCptX3Nlc3Npb24s
IFdURk1vdmUocGFyYW1ldGVycykpOworICAgICAgICAgICAgbG9hZEZyb21OZXR3b3JrKCptX3Nl
c3Npb24sIFdURk1vdmUocGFyYW1ldGVycyksIHN0YXRlKTsKICAgICAgICAgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9Ci0gICAgbG9hZEZyb21OZXR3b3JrKHNlc3Npb24sIFdURk1vdmUocGFy
YW1ldGVycykpOworICAgIGxvYWRGcm9tTmV0d29yayhzZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpLCBzdGF0ZSk7CiB9CiAKIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjp+U2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIoKQpAQCAtMTEwLDEwICsxMTIsMTMgQEAgdm9p
ZCBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9hZFdpdGhDYWNoZUVudHJ5KE5l
dHdvcmtDYWNoZTo6RW50cnkmIGUKICAgICBkaWRDb21wbGV0ZSgpOwogfQogCi12b2lkIFNlcnZp
Y2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpsb2FkRnJvbU5ldHdvcmsoTmV0d29ya1Nlc3Np
b24mIHNlc3Npb24sIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMpCit2b2lkIFNl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpsb2FkRnJvbU5ldHdvcmsoTmV0d29ya1Nl
c3Npb24mIHNlc3Npb24sIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmIHBhcmFtZXRlcnMsIGNvbnN0
IFdlYkNvcmU6Ok5hdmlnYXRpb25QcmVsb2FkU3RhdGUmIHN0YXRlKQogewogICAgIFJFTEVBU0Vf
TE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9h
ZEZyb21OZXR3b3JrICVwIiwgdGhpcyk7CiAKKyAgICBpZiAoc3RhdGUuZW5hYmxlZCkKKyAgICAg
ICAgcGFyYW1ldGVycy5yZXF1ZXN0LmFkZEhUVFBIZWFkZXJGaWVsZCgiU2VydmljZS1Xb3JrZXIt
TmF2aWdhdGlvbi1QcmVsb2FkIl9zLCBzdGF0ZS5oZWFkZXJWYWx1ZSk7CisKICAgICBtX25ldHdv
cmtMb2FkID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsIG51bGxwdHIsIFdURk1vdmUo
cGFyYW1ldGVycyksIHNlc3Npb24pOwogICAgIG1fbmV0d29ya0xvYWQtPnN0YXJ0KCk7CiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCmlu
ZGV4IDBhZmNiMDcwN2RhZWQ2N2YwYTI3Nzk2N2Q1ZWM0NzJkYzBmZTBjOTcuLjYwNTMyNjg1NDQx
MzZhOTMzOWUwZDRkODJmYjI4NTE2M2IxNWQ5ZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCkBAIC0zMiw2ICszMiw3IEBACiAjaW5j
bHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IE5hdmln
YXRpb25QcmVsb2FkU3RhdGU7CiBjbGFzcyBOZXR3b3JrTG9hZE1ldHJpY3M7CiB9CiAKQEAgLTQ0
LDcgKzQ1LDcgQEAgY2xhc3MgTmV0d29ya1Nlc3Npb247CiBjbGFzcyBTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlciBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrTG9hZENsaWVudCwgcHVibGlj
IENhbk1ha2VXZWFrUHRyPFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyPiB7CiAgICAg
V1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkZXIoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJik7
CisgICAgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIoTmV0d29ya1Nlc3Npb24mLCBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRT
dGF0ZSYpOwogICAgIH5TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcigpOwogCiAgICAg
dm9pZCBjYW5jZWwoKTsKQEAgLTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNv
cmU6OlJlc291cmNlRXJyb3ImIGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQogICAg
IGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3QgeyByZXR1
cm4gbV9yZXNwb25zZTsgfQogICAgIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYg
bmV0d29ya0xvYWRNZXRyaWNzKCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7
IH0KKyAgICBib29sIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpIGNv
bnN0IHsgcmV0dXJuIG1faXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkOyB9
CiAKIHByaXZhdGU6CiAgICAgLy8gTmV0d29ya0xvYWRDbGllbnQuCkBAIC03MCw3ICs3Miw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBXZWJDb3JlOjpSZXNvdXJj
ZUVycm9yJikgZmluYWw7CiAKICAgICB2b2lkIGxvYWRXaXRoQ2FjaGVFbnRyeShOZXR3b3JrQ2Fj
aGU6OkVudHJ5Jik7Ci0gICAgdm9pZCBsb2FkRnJvbU5ldHdvcmsoTmV0d29ya1Nlc3Npb24mLCBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMmJik7CisgICAgdm9pZCBsb2FkRnJvbU5ldHdvcmsoTmV0d29y
a1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdh
dGlvblByZWxvYWRTdGF0ZSYpOwogICAgIHZvaWQgZGlkQ29tcGxldGUoKTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrTG9hZD4gbV9uZXR3b3JrTG9hZDsKQEAgLTg1LDYgKzg3LDcgQEAg
cHJpdmF0ZToKIAogICAgIFJlc3BvbnNlQ2FsbGJhY2sgbV9yZXNwb25zZUNhbGxiYWNrOwogICAg
IEJvZHlDYWxsYmFjayBtX2JvZHlDYWxsYmFjazsKKyAgICBib29sIG1faXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRFbmFibGVkIHsgZmFsc2UgfTsKIH07CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCBlMDdk
NmRhNWZjYjFlODVmNzA2MWMxYWM3NzdkNzM1ZjE0ZGE0YzQ5Li5iYjk3YjFkYzk2M2EwZTUyMjJk
OTE0YjQ4NTY4MWJkNjUyMTExYmU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLmNwcApAQCAtNTI5LDYgKzUyOSw0NiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6
ZmV0Y2hUYXNrVGltZWRPdXQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcgogICAg
IHdvcmtlci0+dGVybWluYXRlKCk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpl
bmFibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFj
ayYmIGNhbGxiYWNrKQoreworICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigpLmdldFJl
Z2lzdHJhdGlvbihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlv
bikgeworICAgICAgICBjYWxsYmFjayhFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3Is
IHsgIk5vIHJlZ2lzdHJhdGlvbiJfcyB9IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAg
IGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoKSk7Cit9CisK
K3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2Vi
Q29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRl
bnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRv
KiByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uSWRl
bnRpZmllcik7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY2FsbGJhY2soRXhj
ZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCB7ICJObyByZWdpc3RyYXRpb24iX3MgfSB9
KTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxsYmFjayhyZWdpc3RyYXRpb24tPmRp
c2FibGVOYXZpZ2F0aW9uUHJlbG9hZCgpKTsKK30KKwordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rp
b246OnNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYg
aGVhZGVyVmFsdWUsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAg
YXV0byogcmVnaXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uKSB7CisgICAgICAgIGNhbGxiYWNr
KEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgeyAiTm8gcmVnaXN0cmF0aW9uIl9z
IH0gfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FsbGJhY2socmVnaXN0cmF0aW9u
LT5zZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdURk1vdmUoaGVhZGVyVmFsdWUpKSk7
Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXROYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yTmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNr
JiYgY2FsbGJhY2spCit7CisgICAgYXV0byogcmVnaXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVn
aXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9u
KSB7CisgICAgICAgIGNhbGxiYWNrKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJbnZh
bGlkU3RhdGVFcnJvciwgeyB9IH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxs
YmFjayhyZWdpc3RyYXRpb24tPm5hdmlnYXRpb25QcmVsb2FkU3RhdGUoKSk7Cit9CisKIH0gLy8g
bmFtZXNwYWNlIFdlYktpdAogCiAjdW5kZWYgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9H
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMjk2NmUwNTY4OGE2YjNm
YWQ2NGQ2ODI0NDY5OWJiYzQzMzY3ODc2ZS4uNDVmNGYyYWJiMGViNzdmZTgzMTZlYmFlMjMzNDMz
NjdhYjM0ODE1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtMzIs
NiArMzIsNyBAQAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIKICNpbmNsdWRl
IDxXZWJDb3JlL0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZp
ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaD4KICNpbmNs
dWRlIDxXZWJDb3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdXNo
UGVybWlzc2lvblN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdXNoU3Vic2NyaXB0aW9uRGF0
YS5oPgpAQCAtMTI5LDYgKzEzMCwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2VU
b1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRp
b24sIFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSk7CiAgICAgdm9pZCBjb250cm9s
Q2xpZW50KFdlYkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3Jl
OjpTV1NlcnZlclJlZ2lzdHJhdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYp
OwogCisgICAgdXNpbmcgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+OworICAgIHZv
aWQgZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpOworICAgIHZvaWQgZGlz
YWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB2b2lkIHNldE5hdmln
YXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIFN0cmluZyYmLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB1
c2luZyBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayA9IENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSwg
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+OworICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxv
YWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhj
ZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJik7CisKICAgICBVUkwgY2xp
ZW50VVJMRnJvbUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRp
Zmllcik7CiAKICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkg
Y29uc3QgZmluYWwgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2Vy
dmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggZDVj
ODQwMDhlZDJiZWMyMDQ2NGE4YzAxYjk3YWIwNGE5NTA2YzYxNS4uM2JiM2EzODMzMzc0YmIyZTdl
ODhkMmYxMGRhYTQ2MjEyYTFhZmQ1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC01MSw2ICs1MSwxMSBAQCBtZXNzYWdlcyAtPiBX
ZWJTV1NlcnZlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgVW5zdWJzY3JpYmVGcm9t
UHVzaFNlcnZpY2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
aWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJl
c3VsdCkgQXN5bmMKICAgICBHZXRQdXNoU3Vic2NyaXB0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YT4gcmVzdWx0KSBBc3luYwogICAgIEdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVj
dGVkPHVpbnQ4X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMgCisKKyAg
ICBFbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNl
cHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCisgICAgRGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+
IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKKyAg
ICBTZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyB2YWx1ZSkgLT4gKHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYworICAgIEdldE5h
dmlnYXRpb25QcmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6Ok5hdmlnYXRpb25QcmVs
b2FkU3RhdGUsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKIH0KIAogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDhk
NmViMjY4MGIxZTc1NTU1NTA3NGZiNThkNTFkOTVkMmFmYTQyMjEuLjVlN2JkYjhlNmM3YjhiNzA3
NDFiMmYzMTQ2MjI2MzcxN2NhYzU2NzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMzAwLDYg
KzMwMCw0MiBAQCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UHVzaFBlcm1pc3Npb25T
dGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cgogICAgIH0pOwogfQogCit2b2lkIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
RXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5j
UmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RW5hYmxlTmF2aWdhdGlvblBy
ZWxvYWQgeyByZWdpc3RyYXRpb25JZGVudGlmaWVyIH0sIFtjYWxsYmFjayA9IFdURk1vdmUoY2Fs
bGJhY2spXShhdXRvJiYgZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3IpCisgICAg
ICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3ItPnRvRXhjZXB0aW9uKCkpOworICAgICAgICBj
YWxsYmFjayh7IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6
ZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxi
YWNrJiYgY2FsbGJhY2spCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJT
V1NlcnZlckNvbm5lY3Rpb246OkRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZCB7IHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgfSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBlcnJv
cikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBjYWxs
YmFjayhlcnJvci0+dG9FeGNlcHRpb24oKSk7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAg
fSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXROYXZpZ2F0aW9uUHJlbG9h
ZEhlYWRlclZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
IHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFN0cmluZyYmIGhlYWRlclZhbHVlLCBFeGNlcHRpb25P
clZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNz
YWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpTZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZh
bHVlIHsgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgaGVhZGVyVmFsdWUgfSwgW2NhbGxiYWNrID0g
V1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChl
cnJvcikKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJvci0+dG9FeGNlcHRpb24oKSk7
CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRD
b25uZWN0aW9uOjpnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yTmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkdldE5hdmln
YXRpb25QcmVsb2FkU3RhdGUgeyByZWdpc3RyYXRpb25JZGVudGlmaWVyIH0sIFtjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYg
KCFyZXN1bHQuaGFzX3ZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2socmVzdWx0
LmVycm9yKCkudG9FeGNlcHRpb24oKSk7CisgICAgICAgIGNhbGxiYWNrKHN0YXRpY19jYXN0PE5h
dmlnYXRpb25QcmVsb2FkU3RhdGU+KCpyZXN1bHQpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rp
b24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oCmluZGV4IDQ1ODY4MWY5YjBhZWFhYTM5YWJlZDQ2Nzk5MjlhNDIwMjU5MDhlNGMuLmE5
MGM1ZDczNTFiOTcwNzNhNzdlMWQ5MTg0OWIxNzUyNTFiYzYwMzYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5o
CkBAIC05Niw2ICs5NiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlv
bihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFN1
YnNjcmlwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0UHVzaFBlcm1pc3Npb25T
dGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVz
aFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrJiYpIGZpbmFsOwogCisgICAgdm9pZCBlbmFibGVOYXZp
Z2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlTmF2
aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgc2V0TmF2aWdh
dGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOwor
ICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
Q2FsbGJhY2smJikgZmluYWw7CisKICAgICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpvYihjb25zdCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwogCiAgICAgdm9pZCBydW5PckRlbGF5VGFz
a0ZvckltcG9ydChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5j
cHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAKaW5kZXggMzgyZmNhZDEwMmU3ZjZmZDAwMDAxZjk4ODZjZDYyN2RmZmU0
MzM1Yy4uMmU2M2NjZWUwMDgxOGVjZTZkMzY0OTljZGY0NmQ4Y2IyZmRmOTJiMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMjM5LDcgKzIzOSw3IEBAIHZvaWQgV2Vi
U1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9u
c2UoU1dTZXJ2ZXJDb25uCiAgICAgICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+Y29udGlu
dWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0
Y2hJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6
c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZv
cm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlcikKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklk
ZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UmJiBmb3JtRGF0YSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRFbmFibGVkKQogewogICAgIGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgaWYgKCFzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHkpIHsKQEAgLTI1OCw3ICsyNTgsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vydgog
ICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGNsaWVu
dElkID0gb3B0aW9ucy5jbGllbnRJZGVudGlmaWVyOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQQm9k
eShmb3JtRGF0YS50YWtlRGF0YSgpKTsKLSAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnN0
YXJ0RmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgV1RG
TW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92
ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucykpOworICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS0+c3RhcnRGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlm
aWVyLCBXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3Qp
LCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgaXNTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRFbmFibGVkKTsKIH0KIAogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29u
bmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3Nh
Z2UsIFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1h
bmFnZXJDb25uZWN0aW9uLmgKaW5kZXggODg1MDE5MjcwZjgzMzMzZWEwMzM3ZjU5NGQ5NGVkZDBk
N2RkZjgzOC4uMTYzNjM4NmM0ZDY2MWIwMDFhNWI0ODlmMTIwOGQyZjMzNjM5NzAwZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdl
ckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBzZXJ2aWNlV29ya2VyRmFpbGVkVG9TdGFydChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwogICAgIHZv
aWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRh
JiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiYsIFN0cmluZyYmIHVzZXJBZ2VudCwgV2Vi
Q29yZTo6V29ya2VyVGhyZWFkTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVBcHBJbml0aWF0ZWRWYWx1
ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6TGFzdE5hdmlnYXRp
b25XYXNBcHBJbml0aWF0ZWQpOwotICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2Vi
Q29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYg
cmVmZXJyZXIpOworICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rp
b25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0
Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIs
IGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICB2b2lk
IGNhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwog
ICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
V2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNl
V29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRp
ZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAxNTRmYWJkMzU0OTZlYmNmYmExNWI3
MmNiNWE3YWI1ZWQ3Mzc3OTZmLi41MjhiZWNhNGVhNGNiNTc1ODZjNWY4NjgxZmRhYWFiMmUzNzEx
ZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5p
bgpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgSW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBjb250ZXh0RGF0YSwgc3RydWN0IFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJEYXRhIHdvcmtlckRhdGEsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06
Ym9vbCBXZWJDb3JlOjpXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1vZGUpCiAgICAgVXBk
YXRlQXBwSW5pdGlhdGVkVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIGVudW06Ym9vbCBXZWJDb3JlOjpMYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCkKLSAgICBTdGFydEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3Jr
ZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBX
ZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0
aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBTdHJpbmcg
cmVmZXJyZXIpCisgICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlm
aWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0
cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5j
ZSByZXF1ZXN0Qm9keSwgU3RyaW5nIHJlZmVycmVyLCBib29sIGlzU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkRW5hYmxlZCkKICAgICBDYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKICAgICBDb250aW51ZURpZFJlY2VpdmVG
ZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVu
dGlmaWVyKQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1l
c3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNs
aWVudERhdGEgc291cmNlRGF0YSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAzMTA1MGMzYjM1NjBhZDZiZDU1MWZmY2ZmYTA1
NWFlMzJmYWRjZjg3Li40MjY2ZDk3YjM4ZjVlMmExNDYwMzIwZThmYTE2NWI0ZWI5NGNhZTZmIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTEtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5A
YXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIz
MzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMS0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBh
cHBsZS5jb20+CiAKICAgICAgICAgUmV1c2UgbmF2aWdhdGlvbiBwcmVsb2FkIGlmIHNlcnZpY2Ug
d29ya2VyIGlzIGZldGNoaW5nIHRoZSBjb3JyZXNwb25kaW5nIG5hdmlnYXRpb24gcmVxdWVzdApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKaW5kZXggMGQxNjRhYzE0ODYzMDM3M2ZkZWQ0ZGQ1
MDM5Y2QwNjVkZDE1OTY3Yy4uMmE5NGExOTVmMzNjYTY0MWRkNGE2YTM4ODBkOTAzMjgwMTgwZWJl
MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEt
MTEtMjYgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBz
dXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9u
LXByZWxvYWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZW1wdHktcHJlbG9hZC1yZXNwb25z
ZS1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQv
Z2V0LXN0YXRlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmln
YXRpb24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBlY3RlZC50
eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
c2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0cHMt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMS0xMS0yNiAgWW91ZW5uIEZhYmxldCAgPHlvdWVu
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwbHkgV2ViUHJlZmVyZW5jZXMgb24gU2VydmljZVdv
cmtlciBzZXR0aW5ncwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucyBi
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggYzAyMTE5NmNmMzlkZGQzNWMwMDc4
MTgzNzllZWZjYTE0MGM5NTMyMC4uOTg2MDcyMTZkNGMwMjJmMTkzM2RkOGRjMWI4MzI0MGNlMzhl
ZDE1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlv
dXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCkBAIC00MDMsOCArNDAzLDcgQEAgd2Via2l0Lm9yZy9i
LzE3NjkyOSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Vt
YmVkZGVkLWNvbnQKICMgUmVxdWlyZXMgYWRkaXRpb25hbCB0ZXN0IGluZnJhc3RydWN0dXJlLgog
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvdXBkYXRlLWFmdGVyLW9uZWRheS5odHRwcy5odG1sIFsgU2tpcCBdCiAKLSMgVW5zdXBw
b3J0ZWQgZmVhdHVyZXM6IFNoYXJlZFdvcmtlciwgTmF2aWdhdGlvblByZWxvYWQKLWltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25h
dmlnYXRpb24tcHJlbG9hZCBbIFNraXAgXQorIyBVbnN1cHBvcnRlZCBmZWF0dXJlczogU2hhcmVk
V29ya2VyCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9jbGFpbS1zaGFyZWQtd29ya2VyLWZldGNoLmh0dHBzLmh0bWwgWyBTa2lw
IF0KIAogIyBVbnN1cHBvcnRlZCBmZWF0dXJlczogUGVyZm9ybWFuY2VOYXZpZ2F0aW9uVGltaW5n
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9p
ZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKaW5kZXggZGUyNTMyZGRjNTk3MjI1OWQ5
ODM1Y2E3NGRjMTljOWQ0NWI0OTNhNS4uNDk4NjllOGZiMDczOTNiZDdiNTgwZWRjMWY3YmJiMjhi
NDkzZDFhZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dApAQCAtNTcsNyArNTcs
NyBAQCBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgaW5zdGFsbGluZwogUEFTUyBTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHdhaXRpbmcKIFBBU1MgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBhY3RpdmUKLUZBSUwgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuYXZpZ2F0aW9uUHJlbG9hZCBh
c3NlcnRfdHJ1ZTogVGhlIHByb3RvdHlwZSBvYmplY3QgbXVzdCBoYXZlIGEgcHJvcGVydHkgIm5h
dmlnYXRpb25QcmVsb2FkIiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG5hdmlnYXRpb25QcmVsb2FkCiBQ
QVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgc2NvcGUK
IFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB1cGRh
dGVWaWFDYWNoZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogb3Bl
cmF0aW9uIHVwZGF0ZSgpCkBAIC02OCw3ICs2OCw3IEBAIFBBU1MgU3RyaW5naWZpY2F0aW9uIG9m
IHJlZ2lzdHJhdGlvbkluc3RhbmNlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50
ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgImluc3Rh
bGxpbmciIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkg
IndhaXRpbmciIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgImFjdGl2ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKLUZBSUwgU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9w
ZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIHdpdGggdGhlIHByb3BlciB0eXBlIGFzc2VydF9pbmhl
cml0czogcHJvcGVydHkgIm5hdmlnYXRpb25QcmVsb2FkIiBub3QgZm91bmQgaW4gcHJvdG90eXBl
IGNoYWluCitQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiByZWdpc3Ry
YXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm5hdmlnYXRpb25QcmVsb2FkIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVy
ZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJzY29wZSIg
d2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRl
VmlhQ2FjaGUiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInVwZGF0ZSgpIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQpAQCAtMTAyLDE2ICsxMDIsMTYgQEAg
UEFTUyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIgbXVzdCBpbmhlcml0IHByb3AKIFBBU1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRl
cmZhY2U6IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25j
b250cm9sbGVyY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJvbm1lc3NhZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VX
b3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm9ubWVzc2FnZWVycm9yIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQotRkFJ
TCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMg
bm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVk
IHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlz
c2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1l
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJm
YWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmpl
Y3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9i
amVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBk
b2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBl
Y3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGll
cyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBlbmFibGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90
IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGRpc2FibGUoKSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIi
IG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0
aW9uIHNldEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYg
ZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhw
ZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3RhdGUoKSBh
c3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIiIG1pc3NpbmcKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFj
ZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIE5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBp
bnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBl
IG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBOYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW5hYmxlKCkKK1BBU1MgTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGRpc2FibGUoKQorUEFTUyBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFs
dWUoQnl0ZVN0cmluZykKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTog
b3BlcmF0aW9uIGdldFN0YXRlKCkKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVy
ZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1Mg
Q2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKIFBBU1MgV2luZG93Q2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25h
dmlnYXRpb24tcHJlbG9hZC9icm9rZW4tY2h1bmtlZC1lbmNvZGluZy5odHRwcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvYnJva2VuLWNodW5rZWQt
ZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlNWZhNmE2ZmNlODU3YzM2
ODRjZGIyNTY3NmQzNzk1ZTNhNDc4OTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCisKK0ZBSUwgRmV0Y2hFdmVudCNwcmVsb2FkUmVz
cG9uc2UgcmVzb2x2ZXMgZXZlbiBpZiB0aGUgYm9keSBpcyBzZW50IHdpdGggYnJva2VuIGNodW5r
ZWQgZW5jb2RpbmcuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJQQVNTOiBwcmVsb2FkUmVzcG9u
c2UgcmVzb2x2ZWQiIGJ1dCBnb3QgIkZBSUw6IHByZWxvYWRSZXNwb25zZSByZWplY3RlZCIKK0ZB
SUwgRmV0Y2hFdmVudCNwcmVsb2FkUmVzcG9uc2UgcmVzb2x2ZXMgZXZlbiBpZiB0aGUgYm9keSBp
cyBzZW50IHdpdGggYnJva2VuIGNodW5rZWQgZW5jb2Rpbmcgd2l0aCBzb21lIGRlbGF5cyBhc3Nl
cnRfZXF1YWxzOiBleHBlY3RlZCAiUEFTUzogcHJlbG9hZFJlc3BvbnNlIHJlc29sdmVkIiBidXQg
Z290ICJGQUlMOiBwcmVsb2FkUmVzcG9uc2UgcmVqZWN0ZWQiCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2Vk
LWVuY29kaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWYwMTYyN2M4ZTM4OTRk
ZTcwNzMzMzEwMTJhZmI0ZmNkMTI1NmJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2NodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIG11c3Qgd29y
ayB3aXRoIGNodW5rZWQgZW5jb2RpbmcuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L25hdmlnYXRpb24tcHJlbG9hZC9lbXB0eS1wcmVsb2FkLXJlc3BvbnNlLWJvZHkuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2VtcHR5LXBy
ZWxvYWQtcmVzcG9uc2UtYm9keS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkYTI4
Y2ZjYWE1ZTJiMTQwNTFlOTVjZjJiOTNmMjRjNzAzOTc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9lbXB0eS1wcmVsb2FkLXJlc3BvbnNl
LWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgTmF2aWdh
dGlvbiBQcmVsb2FkIGVtcHR5IHJlc3BvbnNlIGJvZHkuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9nZXQtc3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy1l
eHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFhMWU5ZDBhZjE5OWYyMzNiYzM4MTI4OTU0ZDg4OWI1
ZmEzYWQyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24t
cHJlbG9hZC9nZXQtc3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQ
QVNTIGdldFN0YXRlCitQQVNTIGdldFN0YXRlIGZyb20gYSB3b3JrZXIKK1BBU1Mgbm8gYWN0aXZl
IHdvcmtlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvbmF2aWdhdGlvbi1wcmVsb2FkL25hdmlnYXRpb25QcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNTc1NjU5NzUwODE3MzVjYWMyZjIxYTYxZjQzZDc2MTE2NzY4MzgyCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL25h
dmlnYXRpb25QcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFT
UyBUaGUgbmF2aWdhdGlvblByZWxvYWQgYXR0cmlidXRlIG11c3QgcmV0dXJuIHNlcnZpY2Ugd29y
a2VyIHJlZ2lzdHJhdGlvbidzIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBvYmplY3QuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZWRpcmVjdC5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQv
cmVkaXJlY3QuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NTFkYzZiNjJhNzVmNTk2
NTFjYmI3ODA4YTNmYjUzYTNiMTZjZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVkaXJlY3QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNyBAQAorCisKK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIHJlZGlyZWN0IHJlc3BvbnNl
LgorUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgbm8tbG9jYXRpb24gcmVkaXJlY3QgcmVzcG9uc2Uu
CitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBuby1sb2NhdGlvbiByZWRpcmVjdCByZXNwb25zZSB3
aXRoIGJvZHkuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCByZWRpcmVjdCB0byB0aGUgc2FtZSBz
Y29wZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2Fk
L3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9u
YXZpZ2F0aW9uLXByZWxvYWQvcmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi4wNmIzZGMwZjRjYmQyN2YwNjRhNWNjNWQwNDNlMzQwN2NmMjdiNzQzCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9z
ZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3JlcXVlc3Qt
aGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworRkFJTCBOYXZp
Z2F0aW9uIFByZWxvYWQgcmVxdWVzdCBoZWFkZXJzLiBhc3NlcnRfdHJ1ZTogVGhlIE5hdmlnYXRp
b24gUHJlbG9hZCByZXF1ZXN0IG11c3Qgc3BlY2lmeSBhbiAiVXBncmFkZS1JbnNlY3VyZS1SZXF1
ZXN0cyIgaGVhZGVyLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2UtdGltaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJj
ZS10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ4YmQ0M2QwMmJjZjRlZTA4
ZDE1NWM0ODY1ZDRjMTdmNTg2ZmMyMGIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2UtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDQgQEAKKworCitGQUlMIE5hdmlnYXRpb24gUHJlbG9hZCBSZXNvdXJjZSBU
aW1pbmcuIGFzc2VydF9lcXVhbHM6IGRlY29kZWRCb2R5U2l6ZSBtdXN0IHNhbWUgYXMgdGhlIGRl
Y29kZWQgc2l6ZSBpbiB0aGUgc2VydmVyOmh0dHBzOi8vbG9jYWxob3N0Ojk0NDMvc2VydmljZS13
b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZXMvcmVzb3Vy
Y2UtdGltaW5nLXNjb3BlLnB5P3R5cGU9bm9ybWFsIGV4cGVjdGVkIChudW1iZXIpIDAgYnV0IGdv
dCAodW5kZWZpbmVkKSB1bmRlZmluZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0
cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQxYjAzN2E3YWVkNjgyZGVmNWQ4NzM4YWRmNGQ5
OGUyMmU0ODMyMjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0
aW9uLXByZWxvYWQvc2FtZXNpdGUtY29va2llcy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw4IEBACisKKworUEFTUyBTZXQgdXAgYSBzZXJ2aWNlIHdvcmtlciBmb3IgbmF2aWdhdGlvbiBw
cmVsb2FkIHRlc3RzLgorUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgZm9yIHNhbWUgc2l0ZSBjb29r
aWVzIChOb25lKS4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIGZvciBzYW1lIHNpdGUgY29va2ll
cyAoU3RyaWN0KS4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIGZvciBzYW1lIHNpdGUgY29va2ll
cyAoTGF4KS4KK1BBU1MgVW5yZWdpc3RlciBhIHNlcnZpY2Ugd29ya2VyLgorCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445562</attachid>
            <date>2021-12-01 05:14:23 -0800</date>
            <delta_ts>2021-12-01 07:16:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233523-20211201141419.patch</filename>
            <type>text/plain</type>
            <size>130112</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMxMWZiZTA4ZjA3M2RiZmNhN2UyMTI2
NzFlZWYxMjk4NGRmNTc5YjcuLmZlMjY1MjlmNmY3NmUyNDlkYTllNTI0ZWQzMTJmMWQ1ZDI1ZWM3
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTEtMjkgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgor
CiAyMDIxLTEyLTAxICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBBZGQgYSBydW50aW1lIGZsYWcgdG8gZW5hYmxlIENTUyBUcmFuc2Zvcm1zIExldmVs
IDIgc3BlYyBjb21wbGlhbnQgYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZTM0YzFjYjU0Zjk1Mjc2
NmZjYjEzOGQ1MmEyNWZlNjg2NmVmMzg4Li5iM2JjYzJiOGMyZjRlMTM5NDllYzg2Y2NmNzNiYTFj
OGFkMzZjYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjEtMTItMDEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzZXJ2aWNlIHdvcmtlciBuYXZpZ2F0aW9uIHByZWxvYWQgSURM
IGFuZCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBpbmNsdWRlcyBpbiBwYXJ0aWN1bGFy
IHN0YXRlIG1hbmFnZW1lbnQgKHJlYWQgYW5kIHdyaXRlKSBvbiBBUEkgc2lkZSBhbmQgU1dTZXJ2
ZXIgc2lkZS4KKyAgICAgICAgVGhpcyBzdGF0ZSBpcyB1c2VkIGluIFdLMiBuZXR3b3JrIGNvZGUg
cGF0aCB0byBlbmFibGUgb3Igbm90IHByZWxvYWRzLgorICAgICAgICBXZSBhcmUgbm90IHlldCBw
ZXJzaXN0aW5nIHByZWxvYWQgcmVnaXN0cmF0aW9uIHN0YXRlIG9uIGRpc2ssIHRoaXMgd2lsbCBi
ZSBkb25lIGFzIGEgZm9sbG93LXVwLgorCisgICAgICAgIFRoZSBGZXRjaEV2ZW50IHByZWxvYWRS
ZXNwb25zZSByZXR1cm5zIGEgcHJvbWlzZSB3aGljaCBoYXMgZWl0aGVyIHVuZGVmaW5lZCBvciBh
IHJlc3BvbnNlIGFzIHJlc29sdmVkIHZhbHVlLgorICAgICAgICBJbiBjYXNlIHRoZXJlIGlzIGEg
cHJlbG9hZGVyIGZvciB0aGF0IEZldGNoRXZlbnQsIHdlIHN0YXJ0IHRoZSBsb2FkIHdoZW4gcHJl
bG9hZFJlc3BvbnNlIGlzIHJldHJpZXZlZCBieSBKUy4KKworICAgICAgICBUbyBpbXBsZW1lbnQg
dGhlIHJldHJpZXZhbCBvZiB0aGUgcHJlbG9hZCByZXNwb25zZSwgd2UgdXNlIEZldGNoUmVzcG9u
c2U6OmZldGNoLgorICAgICAgICBUbyBkbyBzbywgd2UgYWRkIGFuIGluaXRpYXRvciBwYXJhbWV0
ZXIgYXMgdGhpcyBwcmVsb2FkIGluaXRpYXRvciBpcyB0aGUgbmF2aWdhdGlvbiB0YXNrIGFuZCBu
b3QgYSBmZXRjaCBjYWxsLgorCisgICAgICAgIENvdmVyZWQgYnkgZW5hYmxlZCB0ZXN0cy4KKwor
ICAgICAgICBUZXN0czogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlm
cmFtZS1wcmVsb2FkLmh0dHBzLmh0bWwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRj
aExvYWRlci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmg6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9ET01Qcm9taXNlUHJveHkuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5j
cHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5pZGw6IEFkZGVkLgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg6IEFkZGVkLgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbDogQWRkZWQu
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmlkbDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmg6CisKIDIwMjEtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldXNlIG5hdmlnYXRpb24gcHJlbG9hZCBpZiBzZXJ2aWNlIHdvcmtlciBp
cyBmZXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBuYXZpZ2F0aW9uIHJlcXVlc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggMzU5ZmRkY2MzYmM4NTJhODM0ZjEzOTk5MjExM2M5YzZmNWQxMTgyNC4uNjQ2ZDE5M2Q5YmJh
YmNmNjAzOTc5N2E5OTAxODNkZmQ4MGM0YjJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAor
MjAyMS0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgU2VydmljZVdvcmtl
ck5hdmlnYXRpb25QcmVsb2FkZXIgd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAgICAg
V2Ugb25seSBzdGFydCBhcyBzb29uIGFzIGNyZWF0ZWQgdGhlIHByZWxvYWQgaW4gY2FzZSBvZiBt
YWluIGZyYW1lIG5hdmlnYXRpb24gd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAgICAg
VXBkYXRlIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyIHRvIGRpZmZlcmVudGlhdGUg
ZXhwbGljaXQgcHJlbG9hZHMgKGVuYWJsZWQgYnkgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyKSBm
cm9tIGltcGxpY3QgcHJlbG9hZHMuCisgICAgICAgIEltcGxpY3QgcHJlbG9hZHMgY2FuIGJlIHVz
ZWQgd2hlbiBmZXRjaCBldmVudCBpcyBub3QgaGFuZGxlZCwgd2hpY2ggaXMgbm90IGd1YXJhbnRl
ZWQgZm9yIGV4cGxpY2l0IHByZWxvYWRzLCBnaXZlbiB0aGUgU2VydmljZS1Xb3JrZXItTmF2aWdh
dGlvbi1QcmVsb2FkIGhlYWRlci4KKyAgICAgICAgQWRkIElQQyB0byByZWFkIGFuZCBzZXQgcHJl
bG9hZCBzdGF0ZSAoZW5hYmxlZCBhbmQgaGVhZGVyIHZhbHVlKS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAyMS0xMi0wMSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV1c2UgbmF2aWdh
dGlvbiBwcmVsb2FkIGlmIHNlcnZpY2Ugd29ya2VyIGlzIGZldGNoaW5nIHRoZSBjb3JyZXNwb25k
aW5nIG5hdmlnYXRpb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA3
ZDQ1ODlkODdiMTg0YTFiMmY5NTMyMmZiMzlkOWJmYzJiZTNhMzg5Li41MjRmMGY3YzE3YzIwOTFl
MDQ3MjFiOWNkZDE1YjExNDIwMDFhNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApA
QCAtMTI1Niw2ICsxMjU2LDE5IEBAIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAgICAgICAiRU5BQkxF
KEVYUEVSSU1FTlRBTF9GRUFUVVJFUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KSkiOiB0cnVlCiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2Vy
dmljZSBXb3JrZXIgTmF2aWdhdGlvbiBQcmVsb2FkIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJFbmFibGUgU2VydmljZSBXb3JrZXIgTmF2aWdhdGlvbiBQcmVsb2FkIEFQSSIKKyAgY29u
ZGl0aW9uOiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJD
b3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIFNoYXJlZFdv
cmtlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTaGFyZWRX
b3JrZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI4MTNmZWViYjU5YTExYjNjNmI3ZTg4NDJh
NjNhNzFiYWY5ZjA2ODguLjdmYjVjMDRlYzY1OTUxNTA5MjdlOTQ2ZjMwODZmMDU5OWNiN2ZkMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjI0LDYgKzEyMjQsOCBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0
LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAg
IHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9OYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsCisgICAgd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25Q
cmVsb2FkU3RhdGUuaWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsCiAg
ICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaWRsCiAgICAgd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWUzMTk1YWM0ZjViOTE3N2YwMmZk
Njg0MzUwYTkwMGI2NDJmOTk4YS4uYTgzMjg5N2RiMDY3ZjZiMmE0MWM4OTY3MDhjY2ZkMjEyODFl
ZDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CkBAIC0xNjI0LDYgKzE2MjQsOCBAQCAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9GZXRj
aEV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVs
b2FkTWFuYWdlci5pZGwKKyQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlLmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1B1c2hFdmVu
dC5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9QdXNoRXZlbnRJbml0LmlkbAog
JChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1B1c2hNZXNzYWdlRGF0YS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTM0
YjRiNjM0NmFjZDk5MzVmM2IzOWFmOTE4NGFhNGNjNjBmMmE0OS4uOWJkNDg0MTE1NTZjMGQ0NzVi
ZjJlN2YyMDhkM2E4NDUyMmUzYmE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE2MzEsNiArMTYzMSwxMCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJl
Y29yZC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05h
bWVkTm9kZU1hcC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTmFtZWROb2RlTWFwLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0
aW9uUHJlbG9hZFN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRv
citDbGlwYm9hcmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ODJkZWQw
MjY2Mzc5MmE0ZGEyODNhZjY2YmZhNDc4NmUxMGE5ZTFjLi4yZTY3ZDFhNGIwYjYzN2UyN2JlM2Fl
NDkzNTAyOTVhZTk3NjM4MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0
NDYsNiArMTQ0Niw4IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS93b3Jr
ZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29y
a2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS93b3JrZXJz
L3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCBcCisgICAgJChXZWJDb3JlKS93
b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudFR5cGUuaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKaW5kZXggOTA5OGUwNWFmNGM4NDMzYjNkMTNi
Mzk1NjUwNjRhOWMxNTQzMzg3ZC4uYmRjZDMyYjMyZWM2MmJjZDFjOWE2Y2YyODZjNWZiMDE2NDE1
OGQ3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKQEAgLTMw
Miw3ICszMDIsNyBAQCB2b2lkIERPTUNhY2hlOjphZGRBbGwoVmVjdG9yPFJlcXVlc3RJbmZvPiYm
IGluZm9zLCBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcgogICAgICAgICAgICAgICAgIGVs
c2UKICAgICAgICAgICAgICAgICAgICAgdGFza0hhbmRsZXItPmFkZFJlc3BvbnNlQm9keShyZWNv
cmRQb3NpdGlvbiwgcmVzcG9uc2UsIFdURk1vdmUoZGF0YSkpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0pOworICAgICAgICB9LCAiZmV0Y2giX3MpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcAppbmRleCBlOTg5MTQxYjc3Yjhl
M2VlNjg5MWY1ZTQ1YmUwYzMyZTk5ODQwNGJkLi5mYzU1Y2M3ZDgzZDhiYzExZjA4NTRkYzNjZmQ4
NTA5N2EzMWYxMGY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0Zl
dGNoTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9h
ZGVyLmNwcApAQCAtODMsMTMgKzgzLDEzIEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGlu
Z0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMCiAgICAg
bV9pc1N0YXJ0ZWQgPSBtX2xvYWRlcjsKIH0KIAotdm9pZCBGZXRjaExvYWRlcjo6c3RhcnQoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0
KQordm9pZCBGZXRjaExvYWRlcjo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcikK
IHsKICAgICBSZXNvdXJjZUxvYWRlck9wdGlvbnMgcmVzb3VyY2VMb2FkZXJPcHRpb25zID0gcmVx
dWVzdC5mZXRjaE9wdGlvbnMoKTsKICAgICByZXNvdXJjZUxvYWRlck9wdGlvbnMucHJlZmxpZ2h0
UG9saWN5ID0gUHJlZmxpZ2h0UG9saWN5OjpDb25zaWRlcjsKICAgICBUaHJlYWRhYmxlTG9hZGVy
T3B0aW9ucyBvcHRpb25zKHJlc291cmNlTG9hZGVyT3B0aW9ucywKICAgICAgICAgY29udGV4dC5z
aG91bGRCeXBhc3NNYWluV29ybGRDb250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRlbnRTZWN1
cml0eVBvbGljeUVuZm9yY2VtZW50OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJpdHlQb2xp
Y3lFbmZvcmNlbWVudDo6RW5mb3JjZUNvbm5lY3RTcmNEaXJlY3RpdmUsCi0gICAgICAgIFN0cmlu
ZyhjYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzKCkuZmV0Y2gpLAorICAgICAgICBTdHJp
bmcoaW5pdGlhdG9yKSwKICAgICAgICAgUmVzcG9uc2VGaWx0ZXJpbmdQb2xpY3k6OkRpc2FibGUp
OwogICAgIG9wdGlvbnMuc2VuZExvYWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNl
bmRDYWxsYmFja3M7CiAgICAgb3B0aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5ID0gRGF0YUJ1ZmZl
cmluZ1BvbGljeTo6RG9Ob3RCdWZmZXJEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRj
aC9GZXRjaExvYWRlci5oCmluZGV4IDQwNzI4ZDI1N2U4NDNjNDExNDg2ZmQ2ZTQzODA3MDQ0MzFh
Y2ZjYTIuLjJmOTBmMGVjM2ZmOTA1YTI2MjMxYzg0YzcyYTdhMTg2Y2Q0YmZlODMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAg
cHVibGljOgogCiAgICAgUmVmUHRyPFNoYXJlZEJ1ZmZlcj4gc3RhcnRTdHJlYW1pbmcoKTsKIAot
ICAgIHZvaWQgc3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEZldGNoUmVxdWVz
dCYpOworICAgIHZvaWQgc3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEZldGNo
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYpOwogICAgIHZvaWQgc3RhcnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IEJsb2ImKTsKICAgICB2b2lkIHN0YXJ0TG9hZGluZ0Jsb2JVUkwoU2Ny
aXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFVSTCYgYmxvYlVSTCk7CiAgICAgdm9pZCBzdG9w
KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9u
c2UuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcApp
bmRleCA1ZDQ1MmNlMjg4Y2VkYzAyOTMyZDkzOTZmNjQ2MDA0NmU0NmJkNTM2Li40ZGY4NDI2Yzcx
OGJhMTZlY2YwYTQ3ZTczZTkwMGQzZjg0OGY2NGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIEZl
dGNoUmVzcG9uc2U6OmFkZEFib3J0U3RlcHMoUmVmPEFib3J0U2lnbmFsPiYmIHNpZ25hbCkKICAg
ICB9KTsKIH0KIAotdm9pZCBGZXRjaFJlc3BvbnNlOjpmZXRjaChTY3JpcHRFeGVjdXRpb25Db250
ZXh0JiBjb250ZXh0LCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QsIE5vdGlmaWNhdGlvbkNhbGxiYWNr
JiYgcmVzcG9uc2VDYWxsYmFjaykKK3ZvaWQgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBOb3RpZmljYXRp
b25DYWxsYmFjayYmIHJlc3BvbnNlQ2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKQog
ewogICAgIGlmIChyZXF1ZXN0LnNpZ25hbCgpLmFib3J0ZWQoKSkgewogICAgICAgICByZXNwb25z
ZUNhbGxiYWNrKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJSZXF1ZXN0IHNpZ25hbCBpcyBhYm9y
dGVkIl9zIH0pOwpAQCAtMjQ5LDcgKzI0OSw3IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6ZmV0Y2go
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0CiAg
ICAgcmVzcG9uc2UtPmFkZEFib3J0U3RlcHMocmVxdWVzdC5zaWduYWwoKSk7CiAKICAgICByZXNw
b25zZS0+bV9ib2R5TG9hZGVyID0gbWFrZVVuaXF1ZTxCb2R5TG9hZGVyPihyZXNwb25zZS5nZXQo
KSwgV1RGTW92ZShyZXNwb25zZUNhbGxiYWNrKSk7Ci0gICAgaWYgKCFyZXNwb25zZS0+bV9ib2R5
TG9hZGVyLT5zdGFydChjb250ZXh0LCByZXF1ZXN0KSkKKyAgICBpZiAoIXJlc3BvbnNlLT5tX2Jv
ZHlMb2FkZXItPnN0YXJ0KGNvbnRleHQsIHJlcXVlc3QsIGluaXRpYXRvcikpCiAgICAgICAgIHJl
c3BvbnNlLT5tX2JvZHlMb2FkZXIgPSBudWxscHRyOwogfQogCkBAIC0zNzcsMTEgKzM3NywxMSBA
QCB2b2lkIEZldGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IHVp
bnQ4X3QqIGRhdGEsIHNpemVfdCBzaXplKQogICAgIHNvdXJjZS5yZXNvbHZlUHVsbFByb21pc2Uo
KTsKIH0KIAotYm9vbCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpzdGFydChTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QpCitib29s
IEZldGNoUmVzcG9uc2U6OkJvZHlMb2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBpbml0
aWF0b3IpCiB7CiAgICAgbV9jcmVkZW50aWFscyA9IHJlcXVlc3QuZmV0Y2hPcHRpb25zKCkuY3Jl
ZGVudGlhbHM7CiAgICAgbV9sb2FkZXIgPSBtYWtlVW5pcXVlPEZldGNoTG9hZGVyPigqdGhpcywg
Jm1fcmVzcG9uc2UubV9ib2R5LT5jb25zdW1lcigpKTsKLSAgICBtX2xvYWRlci0+c3RhcnQoY29u
dGV4dCwgcmVxdWVzdCk7CisgICAgbV9sb2FkZXItPnN0YXJ0KGNvbnRleHQsIHJlcXVlc3QsIGlu
aXRpYXRvcik7CiAgICAgcmV0dXJuIG1fbG9hZGVyLT5pc1N0YXJ0ZWQoKTsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCBiYzU4NTRmOWI5
NjZmYjYzMjlkMTZmZGU2MThjY2ViMWQ4Yzk0Y2E5Li4zNDIwYzZhMzhkM2MzZjZlMmZkYjY2NzVl
OGE0ZDEzNjViZjVhNWJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoUmVzcG9uc2UuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVzcG9uc2UuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlv
bk9yPFJlZjxGZXRjaFJlc3BvbnNlPj4gcmVkaXJlY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IGNvbnN0IFN0cmluZyYgdXJsLCBpbnQgc3RhdHVzKTsKIAogICAgIHVzaW5nIE5vdGlmaWNhdGlv
bkNhbGxiYWNrID0gRnVuY3Rpb248dm9pZChFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlJj4mJik+
OwotICAgIHN0YXRpYyB2b2lkIGZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGZXRjaFJl
cXVlc3QmLCBOb3RpZmljYXRpb25DYWxsYmFjayYmKTsKKyAgICBzdGF0aWMgdm9pZCBmZXRjaChT
Y3JpcHRFeGVjdXRpb25Db250ZXh0JiwgRmV0Y2hSZXF1ZXN0JiwgTm90aWZpY2F0aW9uQ2FsbGJh
Y2smJiwgY29uc3QgU3RyaW5nJiBpbml0aWF0b3IpOwogCiAgICAgdm9pZCBzdGFydENvbnN1bWlu
Z1N0cmVhbSh1bnNpZ25lZCk7CiAgICAgdm9pZCBjb25zdW1lQ2h1bmsoUmVmPEpTQzo6VWludDhB
cnJheT4mJik7CkBAIC0xMjksNyArMTI5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQm9keUxvYWRl
cihGZXRjaFJlc3BvbnNlJiwgTm90aWZpY2F0aW9uQ2FsbGJhY2smJik7CiAgICAgICAgIH5Cb2R5
TG9hZGVyKCk7CiAKLSAgICAgICAgYm9vbCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0Jiwg
Y29uc3QgRmV0Y2hSZXF1ZXN0Jik7CisgICAgICAgIGJvb2wgc3RhcnQoU2NyaXB0RXhlY3V0aW9u
Q29udGV4dCYsIGNvbnN0IEZldGNoUmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKTsK
ICAgICAgICAgdm9pZCBzdG9wKCk7CiAKICAgICAgICAgdm9pZCBjb25zdW1lRGF0YUJ5Q2h1bmso
Q29uc3VtZURhdGFCeUNodW5rQ2FsbGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5j
cHAKaW5kZXggOWMxY2Q4ZDBmZjc1YWU5ZWQ0OTRjMjY1OTRlN2M3NjdjNGQyN2IxYy4uM2JmMTRm
YmZmODJmMDFiYzJkYzJkYWUyMjc0MTg0NDcwMmY0MWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29w
ZUZldGNoLmNwcApAQCAtNjIsNyArNjIsNyBAQCB2b2lkIFdpbmRvd09yV29ya2VyR2xvYmFsU2Nv
cGVGZXRjaDo6ZmV0Y2goRE9NV2luZG93JiB3aW5kb3csIEZldGNoUmVxdWVzdDo6SW5mbwogCiAg
ICAgICAgIFVzZXJHZXN0dXJlSW5kaWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IodXNlckdlc3R1cmVU
b2tlbiwgVXNlckdlc3R1cmVUb2tlbjo6R2VzdHVyZVNjb3BlOjpNZWRpYU9ubHksIFVzZXJHZXN0
dXJlVG9rZW46OklzUHJvcGFnYXRlZEZyb21GZXRjaDo6WWVzKTsKICAgICAgICAgcHJvbWlzZS5z
ZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKLSAgICB9KTsKKyAgICB9LCAiZmV0Y2giX3MpOwogfQog
CiB2b2lkIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaDo6ZmV0Y2goV29ya2VyR2xvYmFs
U2NvcGUmIHNjb3BlLCBGZXRjaFJlcXVlc3Q6OkluZm8mJiBpbnB1dCwgRmV0Y2hSZXF1ZXN0OjpJ
bml0JiYgaW5pdCwgUmVmPERlZmVycmVkUHJvbWlzZT4mJiBkZWZlcnJlZCkKQEAgLTc3LDcgKzc3
LDcgQEAgdm9pZCBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2g6OmZldGNoKFdvcmtlckds
b2JhbFNjb3BlJiBzY29wZSwgRmV0Y2hSZXF1ZXMKIAogICAgIEZldGNoUmVzcG9uc2U6OmZldGNo
KHNjb3BlLCByZXF1ZXN0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpLmdldCgpLCBbcHJvbWlzZSA9IFdU
Rk1vdmUocHJvbWlzZSldKEV4Y2VwdGlvbk9yPEZldGNoUmVzcG9uc2UmPiYmIHJlc3VsdCkgbXV0
YWJsZSB7CiAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7
CisgICAgfSwgImZldGNoIl9zKTsKIH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA3YWY1ZWI0Nzc3
NDYxYjNlNGM3MmM1ZTczMWVjZGEwMTRmOTczODU5Li44NmMyNmNmYzM5ZmEzNzVjOTExMzhhMTE3
Mzg0MzU0MTBlOWFmNGYxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dApAQCAtMjc0Miw2ICsyNzQyLDcgQEAgd29y
a2Vycy9Xb3JrZXJUaHJlYWQuY3BwCiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmNw
cAogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwCiB3b3JrZXJzL3Nl
cnZpY2UvRmV0Y2hFdmVudC5jcHAKK3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcAogd29ya2Vy
cy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudC5jcHAKQEAgLTM0NzcsNiArMzQ3OCw4IEBAIEpTTmF2aWdhdG9yR1BVLmNwcAogSlNO
b2RlLmNwcAogSlNOb2RlRmlsdGVyLmNwcAogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCitK
U05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAKK0pTTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5j
cHAKIEpTTm9kZUl0ZXJhdG9yLmNwcAogSlNOb2RlTGlzdC5jcHAKIEpTTm9uRG9jdW1lbnRUeXBl
Q2hpbGROb2RlLmNwcApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDYwZTQyODgzOTc1NjhkNDUwZDEyZjE4NWI4ZjZmZWE2MDY2NGUx
NzguLmU3N2M0ZTRkYTkyMDU1ZGM4M2QzYmI5MDcyYzliMmNjZDQ2NmEwYWEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDQs
NiArMTEwNCw3IEBACiAJCTQxNEI3RkFEMjREODFDQzEwMDMzRDQ0MiAvKiBNZWRpYVJlY29yZGVy
UHJpdmF0ZU9wdGlvbnMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxNEI3RkFCMjREODFDOEYwMDMzRDQ0MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZU9w
dGlvbnMuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MTRCODIwNTFENkRGMEU1MDA3N0VCRTMgLyogU3RydWN0dXJlZENsb25lLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRCODIwMzFENkRGMEQ5MDA3
N0VCRTMgLyogU3RydWN0dXJlZENsb25lLmggKi87IH07CiAJCTQxNERFREU3MUY5RkU5MUUwMDQ3
QzQwRCAvKiBFbXB0eUZyYW1lTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRERURFNTFGOUZFOTE1MDA0N0M0MEQgLyogRW1wdHlG
cmFtZUxvYWRlckNsaWVudC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CisJCTQxNTAzNzkzMjc0RkRDOUIwMDM1NEFCQyAvKiBOYXZpZ2F0aW9uUHJlbG9h
ZFN0YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUUyRjE5QjI3NEZCMEE2MDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNTA3MTU4MTY4
NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MDcxNTYxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVj
dG9yRmlsdGVyLmggKi87IH07CiAJCTQxNTA4MDM2MUUzRjAwQUQwMDUxRDc1RCAvKiBMaWJXZWJS
VENBdWRpb01vZHVsZS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MTUwODAzNDFFM0YwMEFBMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9Nb2R1bGUu
Y3BwICovOyB9OwogCQk0MTUwODAzNzFFM0YwMEIwMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9N
b2R1bGUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQx
NTA4MDM1MUUzRjAwQUEwMDUxRDc1RCAvKiBMaWJXZWJSVENBdWRpb01vZHVsZS5oICovOyB9OwpA
QCAtMTIxNyw2ICsxMjE4LDcgQEAKIAkJNDFERUZDQjYxRTU2QzFCRDAwMEQ5RTVGIC8qIEpTRE9N
TWFwTGlrZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NDFERUZDQjQxRTU2QzFCOTAwMEQ5RTVGIC8qIEpTRE9NTWFwTGlrZS5oICovOyB9OwogCQk0MUUx
MkU5RjI0RkU3NEUyMDA5M0ZGQjQgLyogV2ViU29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMTJFOUQyNEZFNzRFMjAwOTNG
RkI0IC8qIFdlYlNvY2tldElkZW50aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9
IChQcml2YXRlLCApOyB9OyB9OwogCQk0MUUxQjFEMTBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJh
Y3RXb3JrZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9
IDQxRTFCMUNCMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oICovOyB9OworCQk0
MUUyRjE5OTI3NEZBRUNGMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUyRjE5NzI3NEZB
RUNCMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmggKi87IH07CiAJCTQxRTY3
QTgzMjVEMTY4NDcwMDdCMEE0QyAvKiBTVFVOTWVzc2FnZVBhcnNpbmcuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTY3QTgxMjVEMTY4NDcwMDdCMEE0
QyAvKiBTVFVOTWVzc2FnZVBhcnNpbmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OwogCQk0MUU2RDcxQjI2RUExQTQ2MDBCNzY1RDYgLyogUlRDRXJyb3Iu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQjdDMDRC
MjZFNjkxNzEwMEQzNkMwNyAvKiBSVENFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxRTlEQ0U3MjMxOTc0QkYwMEYzNTk0OSAvKiBCbG9i
TG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUU5RENFNDIzMTk3M0ZFMDBGMzU5NDkgLyogQmxvYkxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtB
VFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC04ODU3LDYgKzg4NTksMTEgQEAKIAkJ
NDFFMUIxQ0MwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmlkbCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBBYnN0cmFjdFdvcmtlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCTQxRTFGMzNEMjQ4QTYyQjYwMDIyRDVERSAvKiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXBy
ZXNzb3IubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1Nh
bXBsZUJ1ZmZlckNvbXByZXNzb3IubW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQx
RTFGMzNGMjQ4QTYyQjYwMDIyRDVERSAvKiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTJGMTk1Mjc0RkFFQ0EwMEEw
ODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTJGMTk3Mjc0
RkFFQ0IwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CisJCTQxRTJGMTk4Mjc0RkFFQ0IwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIu
Y3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFFMkYxOUEyNzRGQjBBNTAwQTA4OUVFIC8qIE5h
dmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRs
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUyRjE5QjI3NEZCMEE2MDBBMDg5RUUg
LyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0aW9uUHJl
bG9hZFN0YXRlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTQwODM4MURDQjc0
NzkwMEVGQ0UxOSAvKiBQZWVyQ29ubmVjdGlvbkJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFNTkzRkQyMTQ4NjVBOTAwRDNDQjYxIC8qIFJUQ1ByaW9y
aXR5VHlwZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUlRDUHJpb3JpdHlUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJNDFFNTkzRkYyMTQ4NjVBQTAwRDNDQjYxIC8qIFJUQ1J0cEVuY29kaW5nUGFy
YW1ldGVycy5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5
cGUgPSB0ZXh0OyBwYXRoID0gUlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzLmlkbDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIyMTE3LDYgKzIyMTI0LDExIEBACiAJCQkJNDFBRjM3OTQx
RjhEQTQ5NTAwMTExQzMxIC8qIEZldGNoRXZlbnQuY3BwICovLAogCQkJCTQxQUYzNzg4MUY4QzFF
NzkwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmggKi8sCiAJCQkJNDFBRjM3OEQxRjhDMUU3QjAwMTEx
QzMxIC8qIEZldGNoRXZlbnQuaWRsICovLAorCQkJCTQxRTJGMTk4Mjc0RkFFQ0IwMEEwODlFRSAv
KiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwICovLAorCQkJCTQxRTJGMTk3Mjc0RkFFQ0Iw
MEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCAqLywKKwkJCQk0MUUyRjE5NTI3
NEZBRUNBMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCAqLywKKwkJCQk0
MUUyRjE5QjI3NEZCMEE2MDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oICovLAor
CQkJCTQxRTJGMTlBMjc0RkIwQTUwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlk
bCAqLywKIAkJCQk1MUYxNzU1QjFGM0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlci5jcHAg
Ki8sCiAJCQkJNTFGMTc1NUExRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXIuaCAqLywK
IAkJCQk1MUYxNzU1OTFGM0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlci5pZGwgKi8sCkBA
IC0zNTkyNyw2ICszNTkzOSw4IEBACiAJCQkJODNCMkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3IC8qIE5h
dGl2ZU5vZGVGaWx0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUUxMEI5QjZDMEI3NDc1OTkwMDNF
RDg5MCAvKiBOYXRpdmVYUGF0aE5TUmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQ0NG
MDI3MEFGNkM1MjkwMDAxOEU4OSAvKiBOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywK
KwkJCQk0MUUyRjE5OTI3NEZBRUNGMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
LmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTUwMzc5MzI3NEZEQzlCMDAzNTRBQkMgLyogTmF2aWdh
dGlvblByZWxvYWRTdGF0ZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDY5RDc3QjgyNzAxNjI1MTAw
MTQyRkE2IC8qIE5hdmlnYXRpb25SZXF1ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3OUY0
M0Q0MTA3NUU0NEEwMDAwRjgzQiAvKiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlBOUM2RTVBNjBENzQ2NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmggaW4gSGVhZGVy
cyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVByb21pc2VQ
cm94eS5oIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5LmgKaW5k
ZXggODAyNDkwNTNkNTg5N2I2NjZkYWY1MDgxZTYyMzE2Yzk4ZjZiZDg0Yy4uMmI4NzA2ZTc2ZTQ3
ZDQ0YmNkNTQzNjA1OTViNTJlZjBlMGVlODBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvRE9NUHJvbWlzZVByb3h5LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAo
QykgMjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRp
c3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdp
dGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBm
b2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtNDgsMTEgKzQ4LDEzIEBAIHB1YmxpYzoKIAogICAgIGJv
b2wgaXNGdWxmaWxsZWQoKSBjb25zdDsKIAotICAgIHZvaWQgcmVzb2x2ZSh0eXBlbmFtZSBJRExU
eXBlOjpQYXJhbWV0ZXJUeXBlKTsKLSAgICB2b2lkIHJlc29sdmVXaXRoTmV3bHlDcmVhdGVkKHR5
cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGUpOworICAgIHZvaWQgcmVzb2x2ZSh0eXBlbmFt
ZSBJRExUeXBlOjpTdG9yYWdlVHlwZSk7CisgICAgdm9pZCByZXNvbHZlV2l0aE5ld2x5Q3JlYXRl
ZCh0eXBlbmFtZSBJRExUeXBlOjpTdG9yYWdlVHlwZSk7CiAgICAgdm9pZCByZWplY3QoRXhjZXB0
aW9uLCBSZWplY3RBc0hhbmRsZWQgPSBSZWplY3RBc0hhbmRsZWQ6Ok5vKTsKICAgICAKIHByaXZh
dGU6CisgICAgSlNDOjpKU1ZhbHVlIHJlc29sdmVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBKU0RPTUdsb2JhbE9iamVjdCYsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoRGVmZXJyZWRQcm9taXNl
Jik+Jik7CisKICAgICBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbk9yPFZhbHVlPj4gbV92YWx1ZU9y
RXhjZXB0aW9uOwogICAgIFZlY3RvcjxSZWY8RGVmZXJyZWRQcm9taXNlPiwgMT4gbV9kZWZlcnJl
ZFByb21pc2VzOwogfTsKQEAgLTEwOSwxMSArMTExLDEwIEBAIHByaXZhdGU6CiAgICAgVmVjdG9y
PFJlZjxEZWZlcnJlZFByb21pc2U+LCAxPiBtX2RlZmVycmVkUHJvbWlzZXM7CiB9OwogCi0KIC8v
IE1BUks6IC0gRE9NUHJvbWlzZVByb3h5PElETFR5cGU+IGdlbmVyaWMgaW1wbGVtZW50YXRpb24K
IAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KLWlubGluZSBKU0M6OkpTVmFsdWUgRE9NUHJv
bWlzZVByb3h5PElETFR5cGU+Ojpwcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxH
bG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCitpbmxpbmUgSlND
OjpKU1ZhbHVlIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cmVzb2x2ZVByb21pc2UoSlNDOjpK
U0dsb2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGds
b2JhbE9iamVjdCwgY29uc3QgRnVuY3Rpb248dm9pZChEZWZlcnJlZFByb21pc2UmKT4mIHJlc29s
dmVQcm9taXNlQ2FsbGJhY2spCiB7CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmpl
Y3QpOwogICAgIGZvciAoYXV0byYgZGVmZXJyZWRQcm9taXNlIDogbV9kZWZlcnJlZFByb21pc2Vz
KSB7CkBAIC0xMzAsNyArMTMxLDcgQEAgaW5saW5lIEpTQzo6SlNWYWx1ZSBET01Qcm9taXNlUHJv
eHk8SURMVHlwZT46OnByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICAgICAg
aWYgKG1fdmFsdWVPckV4Y2VwdGlvbi0+aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBkZWZl
cnJlZFByb21pc2UtPnJlamVjdChtX3ZhbHVlT3JFeGNlcHRpb24tPmV4Y2VwdGlvbigpKTsKICAg
ICAgICAgZWxzZQotICAgICAgICAgICAgZGVmZXJyZWRQcm9taXNlLT50ZW1wbGF0ZSByZXNvbHZl
PElETFR5cGU+KG1fdmFsdWVPckV4Y2VwdGlvbi0+cmV0dXJuVmFsdWUoKSk7CisgICAgICAgICAg
ICByZXNvbHZlUHJvbWlzZUNhbGxiYWNrKCpkZWZlcnJlZFByb21pc2UpOwogICAgIH0KIAogICAg
IGF1dG8gcmVzdWx0ID0gZGVmZXJyZWRQcm9taXNlLT5wcm9taXNlKCk7CkBAIC0xMzgsNiArMTM5
LDIyIEBAIGlubGluZSBKU0M6OkpTVmFsdWUgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+Ojpwcm9t
aXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAor
dGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KK2lubGluZSBKU0M6OkpTVmFsdWUgRE9NUHJvbWlz
ZVByb3h5PElETFR5cGU+Ojpwcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9i
YWxPYmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJu
IHJlc29sdmVQcm9taXNlKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgW3RoaXNd
KGF1dG8mIGRlZmVycmVkUHJvbWlzZSkgeworICAgICAgICBkZWZlcnJlZFByb21pc2UudGVtcGxh
dGUgcmVzb2x2ZTxJRExUeXBlPihtX3ZhbHVlT3JFeGNlcHRpb24tPnJldHVyblZhbHVlKCkpOwor
ICAgIH0pOworfQorCit0ZW1wbGF0ZTw+CitpbmxpbmUgSlNDOjpKU1ZhbHVlIERPTVByb21pc2VQ
cm94eTxJRExBbnk+Ojpwcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJuIHJl
c29sdmVQcm9taXNlKGxleGljYWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgW3RoaXNdKGF1
dG8mIGRlZmVycmVkUHJvbWlzZSkgeworICAgICAgICBkZWZlcnJlZFByb21pc2UucmVzb2x2ZVdp
dGhKU1ZhbHVlKG1fdmFsdWVPckV4Y2VwdGlvbi0+cmV0dXJuVmFsdWUoKS5nZXQoKSk7CisgICAg
fSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+CiBpbmxpbmUgdm9pZCBET01Qcm9t
aXNlUHJveHk8SURMVHlwZT46OmNsZWFyKCkKIHsKQEAgLTE1MiwyMSArMTY5LDMxIEBAIGlubGlu
ZSBib29sIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6aXNGdWxmaWxsZWQoKSBjb25zdAogfQog
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgotaW5saW5lIHZvaWQgRE9NUHJvbWlzZVByb3h5
PElETFR5cGU+OjpyZXNvbHZlKHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGUgdmFsdWUp
CitpbmxpbmUgdm9pZCBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OnJlc29sdmUodHlwZW5hbWUg
SURMVHlwZTo6U3RvcmFnZVR5cGUgdmFsdWUpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlT3JFeGNl
cHRpb24pOwogCi0gICAgbV92YWx1ZU9yRXhjZXB0aW9uID0gRXhjZXB0aW9uT3I8VmFsdWU+IHsg
c3RkOjpmb3J3YXJkPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGU+KHZhbHVlKSB9Owor
ICAgIG1fdmFsdWVPckV4Y2VwdGlvbiA9IEV4Y2VwdGlvbk9yPFZhbHVlPiB7IHN0ZDo6Zm9yd2Fy
ZDx0eXBlbmFtZSBJRExUeXBlOjpTdG9yYWdlVHlwZT4odmFsdWUpIH07CiAgICAgZm9yIChhdXRv
JiBkZWZlcnJlZFByb21pc2UgOiBtX2RlZmVycmVkUHJvbWlzZXMpCiAgICAgICAgIGRlZmVycmVk
UHJvbWlzZS0+dGVtcGxhdGUgcmVzb2x2ZTxJRExUeXBlPihtX3ZhbHVlT3JFeGNlcHRpb24tPnJl
dHVyblZhbHVlKCkpOwogfQogCit0ZW1wbGF0ZTw+CitpbmxpbmUgdm9pZCBET01Qcm9taXNlUHJv
eHk8SURMQW55Pjo6cmVzb2x2ZSh0eXBlbmFtZSBJRExBbnk6OlN0b3JhZ2VUeXBlIHZhbHVlKQor
eworICAgIEFTU0VSVCghbV92YWx1ZU9yRXhjZXB0aW9uKTsKKworICAgIG1fdmFsdWVPckV4Y2Vw
dGlvbiA9IEV4Y2VwdGlvbk9yPFZhbHVlPiB7IHN0ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExBbnk6
OlN0b3JhZ2VUeXBlPih2YWx1ZSkgfTsKKyAgICBmb3IgKGF1dG8mIGRlZmVycmVkUHJvbWlzZSA6
IG1fZGVmZXJyZWRQcm9taXNlcykKKyAgICAgICAgZGVmZXJyZWRQcm9taXNlLT5yZXNvbHZlV2l0
aEpTVmFsdWUobV92YWx1ZU9yRXhjZXB0aW9uLT5yZXR1cm5WYWx1ZSgpLmdldCgpKTsKK30KKwog
dGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KLWlubGluZSB2b2lkIERPTVByb21pc2VQcm94eTxJ
RExUeXBlPjo6cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQodHlwZW5hbWUgSURMVHlwZTo6UGFyYW1l
dGVyVHlwZSB2YWx1ZSkKK2lubGluZSB2b2lkIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cmVz
b2x2ZVdpdGhOZXdseUNyZWF0ZWQodHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGUgdmFsdWUp
CiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlT3JFeGNlcHRpb24pOwogCi0gICAgbV92YWx1ZU9yRXhj
ZXB0aW9uID0gRXhjZXB0aW9uT3I8VmFsdWU+IHsgc3RkOjpmb3J3YXJkPHR5cGVuYW1lIElETFR5
cGU6OlBhcmFtZXRlclR5cGU+KHZhbHVlKSB9OworICAgIG1fdmFsdWVPckV4Y2VwdGlvbiA9IEV4
Y2VwdGlvbk9yPFZhbHVlPiB7IHN0ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExUeXBlOjpTdG9yYWdl
VHlwZT4odmFsdWUpIH07CiAgICAgZm9yIChhdXRvJiBkZWZlcnJlZFByb21pc2UgOiBtX2RlZmVy
cmVkUHJvbWlzZXMpCiAgICAgICAgIGRlZmVycmVkUHJvbWlzZS0+dGVtcGxhdGUgcmVzb2x2ZVdp
dGhOZXdseUNyZWF0ZWQ8SURMVHlwZT4obV92YWx1ZU9yRXhjZXB0aW9uLT5yZXR1cm5WYWx1ZSgp
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFt
ZXMuaAppbmRleCBlYjQzNTQ1ZDliNTAxODEwY2IxZGIyYmRmZjA1ZjRjNmZjMTQzMmRjLi5mMTlh
MDg4YmQzYzRhZDFiMTU1MWE5MTc4ZmY3MjA1NTNiNTM0ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0yMTcsNiArMjE3LDcg
QEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgIG1hY3JvKE1lZGlhU3RyZWFtVHJhY2spIFwKICAg
ICBtYWNybyhNZXJjaGFudFZhbGlkYXRpb25FdmVudCkgXAogICAgIG1hY3JvKE1vY2tSVENSdHBU
cmFuc2Zvcm0pIFwKKyAgICBtYWNybyhOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIpIFwKICAgICBt
YWNybyhOYXZpZ2F0b3JDcmVkZW50aWFscykgXAogICAgIG1hY3JvKE5hdmlnYXRvck1lZGlhRGV2
aWNlcykgXAogICAgIG1hY3JvKE5hdmlnYXRvclBlcm1pc3Npb25zKSBcCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAppbmRleCA4YjgzZTUzMzE5MGE3
NzZiYThmNDBjMjgzMTU4Y2RiNzYxYWU5NzAyLi4zYWU4YmI2OGQyNWNkZGQxODAyMDkyMmY1ZWRi
MjRkNGI5MTIwMDAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2Fj
aGVkUmVzb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHAKQEAgLTQ1NSw5ICs0NTUsMTYgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6cmVk
aXJlY3RSZWNlaXZlZChSZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVIK
ICAgICBjb21wbGV0aW9uSGFuZGxlcihXVEZNb3ZlKHJlcXVlc3QpKTsKIH0KIAorI2lmIEFTU0VS
VF9FTkFCTEVECitzdGF0aWMgYm9vbCBpc09wYXF1ZVJlZGlyZWN0UmVzcG9uc2VXaXRob3V0TG9j
YXRpb25IZWFkZXIoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0
dXJuIHJlc3BvbnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpUeXBlOjpPcGFxdWVyZWRp
cmVjdCAmJiByZXNwb25zZS5pc1JlZGlyZWN0aW9uKCkgJiYgcmVzcG9uc2UuaHR0cEhlYWRlckZp
ZWxkKEhUVFBIZWFkZXJOYW1lOjpMb2NhdGlvbikuaXNOdWxsKCk7Cit9CisjZW5kaWYKKwogdm9p
ZCBDYWNoZWRSZXNvdXJjZTo6c2V0UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVz
cG9uc2UpCiB7Ci0gICAgQVNTRVJUKG1fcmVzcG9uc2UudHlwZSgpID09IFJlc291cmNlUmVzcG9u
c2U6OlR5cGU6OkRlZmF1bHQpOworICAgIEFTU0VSVChtX3Jlc3BvbnNlLnR5cGUoKSA9PSBSZXNv
dXJjZVJlc3BvbnNlOjpUeXBlOjpEZWZhdWx0IHx8IGlzT3BhcXVlUmVkaXJlY3RSZXNwb25zZVdp
dGhvdXRMb2NhdGlvbkhlYWRlcihtX3Jlc3BvbnNlKSk7CiAgICAgbV9yZXNwb25zZSA9IHJlc3Bv
bnNlOwogICAgIG1fdmFyeWluZ0hlYWRlclZhbHVlcyA9IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhl
YWRlcnMoY29va2llSmFyKCksIG1fcmVzb3VyY2VSZXF1ZXN0LCBtX3Jlc3BvbnNlKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCmluZGV4IGFmY2Q2
ZTljZDA1NGRlY2E0YjY1YWFjYzRjM2NjNGM4N2YyOTQ1NjYuLjU2NjI5MTExZTM4MDQwMjhkZjRm
MzdjZDJhZDA4MDdlYTVlY2QwYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9GZXRjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5jcHAKQEAgLTEzNyw2ICsxMzcsNDQgQEAgdm9pZCBGZXRjaEV2ZW50Ojpw
cm9taXNlSXNTZXR0bGVkKCkKICAgICBwcm9jZXNzUmVzcG9uc2UoUmVmIHsgKnJlc3BvbnNlIH0p
OwogfQogCitGZXRjaEV2ZW50OjpQcmVsb2FkUmVzcG9uc2VQcm9taXNlJiBGZXRjaEV2ZW50Ojpw
cmVsb2FkUmVzcG9uc2UoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBp
ZiAoIW1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZSkgeworICAgICAgICBtX3ByZWxvYWRSZXNwb25z
ZVByb21pc2UgPSBtYWtlVW5pcXVlPFByZWxvYWRSZXNwb25zZVByb21pc2U+KCk7CisgICAgICAg
IGlmICghbV9uYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8q
IGdsb2JhbE9iamVjdCA9IGNvbnRleHQuZ2xvYmFsT2JqZWN0KCk7CisgICAgICAgICAgICBpZiAo
Z2xvYmFsT2JqZWN0KSB7CisgICAgICAgICAgICAgICAgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3du
PiB2YWx1ZSB7IGdsb2JhbE9iamVjdC0+dm0oKSwgSlNDOjpqc1VuZGVmaW5lZCgpIH07CisgICAg
ICAgICAgICAgICAgbV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlLT5yZXNvbHZlKHZhbHVlKTsKKyAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIHJldHVybiAqbV9wcmVsb2FkUmVzcG9uc2VQcm9taXNl
OworICAgICAgICB9CisKKyAgICAgICAgYXV0byByZXF1ZXN0ID0gRmV0Y2hSZXF1ZXN0OjpjcmVh
dGUoY29udGV4dCwgeyB9LCBGZXRjaEhlYWRlcnM6OmNyZWF0ZSgpLCBSZXNvdXJjZVJlcXVlc3Qg
eyBtX3JlcXVlc3QtPmludGVybmFsUmVxdWVzdCgpIH0gLCBGZXRjaE9wdGlvbnMgeyBtX3JlcXVl
c3QtPmZldGNoT3B0aW9ucygpIH0sIFN0cmluZyB7IG1fcmVxdWVzdC0+aW50ZXJuYWxSZXF1ZXN0
UmVmZXJyZXIoKSB9KTsKKyAgICAgICAgcmVxdWVzdC0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVu
dGlmaWVyKG1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKTsKKyAgICAgICAgRmV0Y2hSZXNw
b25zZTo6ZmV0Y2goY29udGV4dCwgcmVxdWVzdC5nZXQoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYg
eyAqdGhpcyB9XShhdXRvJiYgcmVzdWx0KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4
Y2VwdGlvbigpKSB7CisgICAgICAgICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcmVsb2FkUmVz
cG9uc2VQcm9taXNlLT5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAg
ICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBSZWYgcmVzcG9u
c2UgPSByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CisgICAgICAgICAgICBhdXRvKiBjb250
ZXh0ID0gcmVzcG9uc2UtPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAgICAgICAgIGlm
ICghY29udGV4dCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICBhdXRvKiBn
bG9iYWxPYmplY3QgPSBjb250ZXh0LT5nbG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgIGlmICgh
Z2xvYmFsT2JqZWN0KQorICAgICAgICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0
byYgdm0gPSBnbG9iYWxPYmplY3QtPnZtKCk7CisgICAgICAgICAgICBKU0M6OkpTTG9ja0hvbGRl
ciBsb2NrKHZtKTsKKyAgICAgICAgICAgIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gdmFsdWUg
eyB2bSwgdG9KUyhnbG9iYWxPYmplY3QsIEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KSwgcmVzcG9uc2UuZ2V0KCkpIH07CisgICAgICAgICAgICBwcm90ZWN0ZWRU
aGlzLT5tX3ByZWxvYWRSZXNwb25zZVByb21pc2UtPnJlc29sdmUodmFsdWUpOworICAgICAgICB9
LCAibmF2aWdhdGlvbiJfcyk7CisgICAgfQorICAgIHJldHVybiAqbV9wcmVsb2FkUmVzcG9uc2VQ
cm9taXNlOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZl
bnQuaAppbmRleCA3NDUwZmZjMGFlNTgzOGUxOWQwYTlhNTcwNTBlZDgzOWY3YTE1NmJmLi44Zjdh
YWY1N2I0ZmIzMjIyNWYzODM3NWQzY2QwOWZmNzBhNjRkMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKIAorI2luY2x1ZGUgIkRPTVByb21pc2VQcm94eS5oIgogI2lu
Y2x1ZGUgIkV4dGVuZGFibGVFdmVudC5oIgogI2luY2x1ZGUgIkZldGNoUmVxdWVzdC5oIgogI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgpAQCAtNzEsNiArNzIsMTEgQEAgcHVibGlj
OgogCiAgICAgc3RhdGljIFJlc291cmNlRXJyb3IgY3JlYXRlUmVzcG9uc2VFcnJvcihjb25zdCBV
UkwmLCBjb25zdCBTdHJpbmcmLCBSZXNvdXJjZUVycm9yOjpJc1Nhbml0aXplZCA9IFJlc291cmNl
RXJyb3I6OklzU2FuaXRpemVkOjpObyk7CiAKKyAgICB1c2luZyBQcmVsb2FkUmVzcG9uc2VQcm9t
aXNlID0gRE9NUHJvbWlzZVByb3h5PElETEFueT47CisgICAgUHJlbG9hZFJlc3BvbnNlUHJvbWlz
ZSYgcHJlbG9hZFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKworICAgIHZvaWQg
c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKEZldGNoSWRlbnRpZmllcik7CisKIHByaXZh
dGU6CiAgICAgV0VCQ09SRV9FWFBPUlQgRmV0Y2hFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgSW5p
dCYmLCBJc1RydXN0ZWQpOwogCkBAIC04OSw4ICs5NSwxOCBAQCBwcml2YXRlOgogICAgIFJlZlB0
cjxET01Qcm9taXNlPiBtX3Jlc3BvbmRQcm9taXNlOwogCiAgICAgUmVzcG9uc2VDYWxsYmFjayBt
X29uUmVzcG9uc2U7CisKKyAgICBGZXRjaElkZW50aWZpZXIgbV9uYXZpZ2F0aW9uUHJlbG9hZElk
ZW50aWZpZXI7CisgICAgc3RkOjp1bmlxdWVfcHRyPFByZWxvYWRSZXNwb25zZVByb21pc2U+IG1f
cHJlbG9hZFJlc3BvbnNlUHJvbWlzZTsKIH07CiAKK2lubGluZSB2b2lkIEZldGNoRXZlbnQ6OnNl
dE5hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcihGZXRjaElkZW50aWZpZXIgaWRlbnRpZmllcikK
K3sKKyAgICBBU1NFUlQoIW1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKTsKKyAgICBBU1NF
UlQoaWRlbnRpZmllcik7CisgICAgbV9uYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIgPSBpZGVu
dGlmaWVyOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hF
dmVudC5pZGwKaW5kZXggYWVjYmVhZGI0ODdiZDQ4ZjBjYjMzZjkzZDhkOWQzMjMwYzAzMmMxYi4u
OTczNzU5MDZkZjBmNGMwZWExNThjYWQ2OTdjOTQ2YjNmYjdlZjJlNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbApAQCAtMzIsOCArMzIsOCBAQAog
ICAgIEpTR2VuZXJhdGVUb05hdGl2ZU9iamVjdAogXSBpbnRlcmZhY2UgRmV0Y2hFdmVudCA6IEV4
dGVuZGFibGVFdmVudCB7CiAgICAgY29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIEZldGNoRXZl
bnRJbml0IGV2ZW50SW5pdERpY3QpOwotCiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJp
YnV0ZSBGZXRjaFJlcXVlc3QgcmVxdWVzdDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9u
Q29udGV4dCwgRW5hYmxlZEJ5U2V0dGluZz1TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRF
bmFibGVkXSByZWFkb25seSBhdHRyaWJ1dGUgUHJvbWlzZTxhbnk+IHByZWxvYWRSZXNwb25zZTsK
ICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNsaWVudElkOwogICAgIHJlYWRvbmx5
IGF0dHJpYnV0ZSBET01TdHJpbmcgcmVzZXJ2ZWRDbGllbnRJZDsKICAgICByZWFkb25seSBhdHRy
aWJ1dGUgRE9NU3RyaW5nIHRhcmdldENsaWVudElkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi45MTRjYTlhMDFkZTBiNGI1MzBhOTU5MDVkOTU3M2FmMjA4MzNmM2ZkCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVs
b2FkTWFuYWdlci5jcHAKQEAgLTAsMCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCIKKworI2lmIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIu
aCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCisKK25hbWVzcGFjZSBX
ZWJDb3JlIHsKKwordm9pZCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXI6OmVuYWJsZShQcm9taXNl
JiYgcHJvbWlzZSkKK3sKKyAgICBtX3JlZ2lzdHJhdGlvbi5jb250YWluZXIoKS5lbmFibGVOYXZp
Z2F0aW9uUHJlbG9hZChtX3JlZ2lzdHJhdGlvbi5pZGVudGlmaWVyKCksIFdURk1vdmUocHJvbWlz
ZSkpOworfQorCit2b2lkIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcjo6ZGlzYWJsZShQcm9taXNl
JiYgcHJvbWlzZSkKK3sKKyAgICBtX3JlZ2lzdHJhdGlvbi5jb250YWluZXIoKS5kaXNhYmxlTmF2
aWdhdGlvblByZWxvYWQobV9yZWdpc3RyYXRpb24uaWRlbnRpZmllcigpLCBXVEZNb3ZlKHByb21p
c2UpKTsKK30KKwordm9pZCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXI6OnNldEhlYWRlclZhbHVl
KFN0cmluZyYmIHZhbHVlLCBQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBtX3JlZ2lzdHJhdGlv
bi5jb250YWluZXIoKS5zZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKG1fcmVnaXN0cmF0
aW9uLmlkZW50aWZpZXIoKSwgV1RGTW92ZSh2YWx1ZSksIFdURk1vdmUocHJvbWlzZSkpOworfQor
Cit2b2lkIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcjo6Z2V0U3RhdGUoU3RhdGVQcm9taXNlJiYg
cHJvbWlzZSkKK3sKKyAgICBtX3JlZ2lzdHJhdGlvbi5jb250YWluZXIoKS5nZXROYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlKG1fcmVnaXN0cmF0aW9uLmlkZW50aWZpZXIoKSwgV1RGTW92ZShwcm9taXNl
KSk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9O
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lOGNmNjk5NGJiZjQyMjQ4
NDQ4ZTUzNDczNWMzNGMxYTIzYzRlOWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5oCkBAIC0wLDAgKzEs
NjQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dP
UktFUikKKworI2luY2x1ZGUgIk5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCIKKyNpbmNsdWRlICJT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xh
c3MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRF
RDsKK3B1YmxpYzoKKyAgICBmcmllbmQgY2xhc3MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjsK
KworICAgIHVzaW5nIFByb21pc2UgPSBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD47CisgICAgdm9p
ZCBlbmFibGUoUHJvbWlzZSYmKTsKKyAgICB2b2lkIGRpc2FibGUoUHJvbWlzZSYmKTsKKyAgICB2
b2lkIHNldEhlYWRlclZhbHVlKFN0cmluZyYmLCBQcm9taXNlJiYpOworCisgICAgdXNpbmcgU3Rh
dGVQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPElETERpY3Rpb25hcnk8TmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZT4+OworICAgIHZvaWQgZ2V0U3RhdGUoU3RhdGVQcm9taXNlJiYpOworCisgICAg
dm9pZCByZWYoKSB7IG1fcmVnaXN0cmF0aW9uLnJlZigpOyB9CisgICAgdm9pZCBkZXJlZigpIHsg
bV9yZWdpc3RyYXRpb24uZGVyZWYoKTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE5hdmln
YXRpb25QcmVsb2FkTWFuYWdlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJik7CisKKyAgICBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJiBtX3JlZ2lzdHJhdGlvbjsKK307CisKK2lubGluZSBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXI6Ok5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcihTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uJiByZWdpc3RyYXRpb24pCisgICAgOiBtX3JlZ2lzdHJhdGlvbihy
ZWdpc3RyYXRpb24pCit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8v
IEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5pZGwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODkzOWY4NTgxNzAzMWI2MjA4ODVkNDEzY2UxMzI1Njc0MTQxN2IzNgotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIuaWRsCkBAIC0wLDAgKzEsMzYgQEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyog
YXJlIG1ldDoKKyogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3Rp
Y2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIg
aW4gdGhlCisqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZF
TlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywg
UFJPQ1VSRU1FTlQgT0YKKyogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0gg
REFNQUdFLgorKi8KKworWworICAgIENvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSLAorICAgIEVu
YWJsZWRCeVNldHRpbmc9U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwKKyAg
ICBFeHBvc2VkPShXaW5kb3csV29ya2VyKSwKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKK10g
aW50ZXJmYWNlIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciB7CisgICAgUHJvbWlzZTx1bmRlZmlu
ZWQ+IGVuYWJsZSgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBkaXNhYmxlKCk7CisgICAgUHJv
bWlzZTx1bmRlZmluZWQ+IHNldEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcgdmFsdWUpOworICAgIFBy
b21pc2U8TmF2aWdhdGlvblByZWxvYWRTdGF0ZT4gZ2V0U3RhdGUoKTsKK307CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4zZmZkMTQ4NzBlYTMzYTg0MWY0MTA5MTk0MmMyNjMyNjhmN2RlODczCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRp
b25QcmVsb2FkU3RhdGUuaApAQCAtMCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4K
KyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgewor
CitzdHJ1Y3QgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSB7CisgICAgYm9vbCBlbmFibGVkIHsgZmFs
c2UgfTsKKyAgICBTdHJpbmcgaGVhZGVyVmFsdWU7CisKKyAgICBOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlIGlzb2xhdGVkQ29weSgpIGNvbnN0ICYgeyByZXR1cm4geyBlbmFibGVkLCBoZWFkZXJWYWx1
ZS5pc29sYXRlZENvcHkoKSB9OyB9CisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBpc29sYXRl
ZENvcHkoKSAmJiB7IHJldHVybiB7IGVuYWJsZWQsIFdURk1vdmUoaGVhZGVyVmFsdWUpLmlzb2xh
dGVkQ29weSgpIH07IH0KKworICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImIGVuY29kZXIpIGNvbnN0IHsgZW5jb2RlciA8PCBlbmFibGVkIDw8IGhlYWRlclZh
bHVlOyB9CisgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8
TmF2aWdhdGlvblByZWxvYWRTdGF0ZT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRl
PGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+IE5h
dmlnYXRpb25QcmVsb2FkU3RhdGU6OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0
ZDo6b3B0aW9uYWw8Ym9vbD4gZW5hYmxlZDsKKyAgICBkZWNvZGVyID4+IGVuYWJsZWQ7CisgICAg
aWYgKCFlbmFibGVkKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgc3RkOjpvcHRpb25hbDxT
dHJpbmc+IGhlYWRlclZhbHVlOworICAgIGRlY29kZXIgPj4gaGVhZGVyVmFsdWU7CisgICAgaWYg
KCFoZWFkZXJWYWx1ZSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gTmF2aWdhdGlv
blByZWxvYWRTdGF0ZSB7ICplbmFibGVkLCBXVEZNb3ZlKCpoZWFkZXJWYWx1ZSkgfTsKK30KKwor
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VS
KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25Q
cmVsb2FkU3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRp
b25QcmVsb2FkU3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzkzMTdiNTI3MjdjMzNkYzRlYTY0NDYx
ZDVmNmNkYzI3MGM0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoK
KyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoK
KyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0
IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBh
bmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoK
KyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJ
QlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVT
LCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQ
T1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBD
T05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURF
TlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElO
Q0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRF
IEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVT
SU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCitbCisgICAgQ29uZGl0
aW9uYWw9U0VSVklDRV9XT1JLRVIsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdCitkaWN0
aW9uYXJ5IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgeworICAgIGJvb2xlYW4gZW5hYmxlZCA9IGZh
bHNlOworICAgIEJ5dGVTdHJpbmcgaGVhZGVyVmFsdWU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDk1YjBlNTgx
OWVhOTFiNjY5YjJlOTdlZjQ1MDllMzQxNDJlYWFiNjguLjI1YzVhNWNkODMwMzNiNjlmNjExMjI3
NGQ2ZDBiNTkzZmU3MTdmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIk5h
dmlnYXRpb25QcmVsb2FkU3RhdGUuaCIKICNpbmNsdWRlICJQdXNoUGVybWlzc2lvblN0YXRlLmgi
CiAjaW5jbHVkZSAiUHVzaFN1YnNjcmlwdGlvbkRhdGEuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllci5oIgpAQCAtMTAwLDYgKzEwMSwxMyBAQCBwdWJsaWM6CiAg
ICAgdXNpbmcgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChFeGNlcHRpb25PcjxQdXNoUGVybWlzc2lvblN0YXRlPiYmKT47CiAgICAgdmlydHVh
bCB2b2lkIGdldFB1c2hQZXJtaXNzaW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIsIEdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFjayYmKSA9IDA7CiAKKyAgICB1
c2luZyBFeGNlcHRpb25PclZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhj
ZXB0aW9uT3I8dm9pZD4mJik+OworICAgIHZpcnR1YWwgdm9pZCBlbmFibGVOYXZpZ2F0aW9uUHJl
bG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lk
Q2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxv
YWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENh
bGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFk
ZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4
Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB1c2luZyBFeGNlcHRpb25Pck5hdmln
YXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0
aW9uT3I8TmF2aWdhdGlvblByZWxvYWRTdGF0ZT4mJik+OworICAgIHZpcnR1YWwgdm9pZCBnZXRO
YXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayYmKSA9IDA7CisKICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoKTsKICAg
ICBib29sIGlzQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nsb3NlZDsgfQogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5jcHAKaW5kZXggODhjOTk3YzY0ZmQ1OWQyZjgyMGI1ZWE1ODVhM2IxNWE2Zjk1YWI2OC4u
MWY2ZTgwMmI5NjZiMjZjODZjMDg5NDU2NjNiMGE4YjkyZDk4OWQwOSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAj
aW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgor
I2luY2x1ZGUgIkpTTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUHVzaFN1
YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgog
I2luY2x1ZGUgIkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmgiCkBAIC02NDYsNiArNjQ3LDM4IEBAIGJv
b2wgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3Ry
aW5nJiBldmVudFR5cGUsIFJlZjxFCiAgICAgcmV0dXJuIEV2ZW50VGFyZ2V0V2l0aElubGluZURh
dGE6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGV2ZW50TGlzdGVuZXIpLCBv
cHRpb25zKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjplbmFibGVOYXZpZ2F0
aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVy
LCBWb2lkUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgZW5zdXJlU1dDbGllbnRDb25uZWN0aW9u
KCkuZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoaWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3Zl
KHByb21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0
bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllciwgVm9pZFByb21pc2UmJiBwcm9taXNlKQoreworICAgIGVu
c3VyZVNXQ2xpZW50Q29ubmVjdGlvbigpLmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChpZGVudGlm
aWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUg
eworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQor
Cit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVy
VmFsdWUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3Ry
aW5nJiYgaGVhZGVyVmFsdWUsIFZvaWRQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBlbnN1cmVT
V0NsaWVudENvbm5lY3Rpb24oKS5zZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKGlkZW50
aWZpZXIsIFdURk1vdmUoaGVhZGVyVmFsdWUpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSld
KGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3Zl
KHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6Omdl
dE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgaWRlbnRpZmllciwgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSYmIHByb21pc2UpCit7CisgICAg
ZW5zdXJlU1dDbGllbnRDb25uZWN0aW9uKCkuZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShpZGVu
dGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAgICAgICBw
cm9taXNlLnJlamVjdChyZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpKTsKKyAgICAgICAgICAgIHJl
dHVybjsKKyAgICAgICAgfQorICAgICAgICBwcm9taXNlLnJlc29sdmUocmVzdWx0LnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKaW5kZXggODI4OTcx
YTY1N2FmMGUwOTA2MDJkOWMxYTE3NDRmMGY1MzJjZmQ2NS4uZmRhZjI1OTU0NmUyYTA1NTRkNDVi
Njg4NDk1ZTA4NzIyNDAxNGYzNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCkBAIC05OCw2ICs5OCwxMyBAQCBw
dWJsaWM6CiAKICAgICBOYXZpZ2F0b3JCYXNlKiBuYXZpZ2F0b3IoKSB7IHJldHVybiAmbV9uYXZp
Z2F0b3I7IH0KIAorICAgIHVzaW5nIFZvaWRQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPHZv
aWQ+OworICAgIHVzaW5nIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgPSBET01Qcm9taXNlRGVmZXJy
ZWQ8SURMRGljdGlvbmFyeTxOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlPj47CisgICAgdm9pZCBlbmFi
bGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
Vm9pZFByb21pc2UmJik7CisgICAgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFZvaWRQcm9taXNlJiYpOworICAgIHZvaWQg
c2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgU3RyaW5nJiYsIFZvaWRQcm9taXNlJiYpOworICAgIHZvaWQgZ2V0TmF2aWdh
dGlvblByZWxvYWRTdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgTmF2
aWdhdGlvblByZWxvYWRTdGF0ZSYmKTsKKwogcHJpdmF0ZToKICAgICBib29sIGFkZEV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwg
Y29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmID0geyB9KSBmaW5hbDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24uY3BwCmluZGV4IDBiNjgyOGM4ODdiYWUzYzBlYmViYTMwMzI5YjI5ZTE5OWRjNmJh
NzEuLjBjMDZkOTliYjMyZTJjZmU1ZjA2YzgwMDk4NTZiYzY0MGY4N2I5OTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKQEAgLTI1NCw2ICsyNTUsMTMgQEAgYm9vbCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKICAg
ICByZXR1cm4gZ2V0TmV3ZXN0V29ya2VyKCkgJiYgaGFzRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAor
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpuYXZp
Z2F0aW9uUHJlbG9hZCgpCit7CisgICAgaWYgKCFtX25hdmlnYXRpb25QcmVsb2FkKQorICAgICAg
ICBtX25hdmlnYXRpb25QcmVsb2FkID0gc3RkOjp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlcj4obmV3IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcigqdGhpcykpOworICAgIHJldHVy
biAqbV9uYXZpZ2F0aW9uUHJlbG9hZDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXgg
ODllYzk3M2Y1ZmY2N2EzNmM3YTE0Yzk2ZjBhNTZkMTg3YTM0OTlmNi4uYzMyNzg5MjEzZTk0N2I5
NDhjMTdlMDkyODQzNTEzN2U0OGEzOTMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC00MCw2
ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsK
K2NsYXNzIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiBjbGFzcyBTZXJ2aWNlV29ya2VyOwogY2xhc3MgU2VydmljZVdvcmtlckNvbnRhaW5l
cjsKQEAgLTg1LDYgKzg2LDkgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU3RhdGVGcm9tU2Vy
dmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+
JiYpOwogICAgIHZvaWQgcXVldWVUYXNrVG9GaXJlVXBkYXRlRm91bmRFdmVudCgpOwogCisgICAg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBuYXZpZ2F0aW9uUHJlbG9hZCgpOworICAgIFNlcnZp
Y2VXb3JrZXJDb250YWluZXImIGNvbnRhaW5lcigpIHsgcmV0dXJuIG1fY29udGFpbmVyLmdldCgp
OyB9CisKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgUmVmPFNlcnZpY2VXb3JrZXJDb250YWluZXI+JiYsIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhJiYpOwogCkBAIC0xMDQsNiArMTA4LDggQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9pbnN0YWxsaW5nV29ya2VyOwogICAgIFJlZlB0cjxT
ZXJ2aWNlV29ya2VyPiBtX3dhaXRpbmdXb3JrZXI7CiAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+
IG1fYWN0aXZlV29ya2VyOworCisgICAgc3RkOjp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlcj4gbV9uYXZpZ2F0aW9uUHJlbG9hZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmlkbAppbmRleCBkZDhiMjJlMzdlMTdmOGMwMTgwODM5ZmYx
ZWI0ODY0YjYzMmYzMjY3Li4yZTlkMWZlNTFiNGMwN2NkZGQ3YWMzMjlmMDk3NTI2OGU0MDllMzQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaWRsCkBAIC0zNyw2ICszNyw3IEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/IGluc3RhbGxpbmc7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNlcnZpY2VXb3JrZXI/IHdhaXRpbmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNl
cnZpY2VXb3JrZXI/IGFjdGl2ZTsKKyAgICBbU2FtZU9iamVjdCwgRW5hYmxlZEJ5U2V0dGluZz1T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkXSByZWFkb25seSBhdHRyaWJ1dGUg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG5hdmlnYXRpb25QcmVsb2FkOwogCiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyBzY29wZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU2Vy
dmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9u
LmNwcAppbmRleCBmYWVmOTRhNzVhOGQ3MjE5ODZmNTc5ZjNiNjU5MDIzMzdmOGVlZjc4Li5lMGNh
ODczNjJiMTRiZjdjMmI2NDgxMjcxYmY3ZjkxMDAzOTBkOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9u
LmNwcApAQCAtNzMsNiArNzMsMTQgQEAgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjp+V29ya2Vy
U1dDbGllbnRDb25uZWN0aW9uKCkKICAgICBhdXRvIGdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxs
YmFja3MgPSBXVEZNb3ZlKG1fZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrcyk7CiAgICAg
Zm9yIChhdXRvJiBjYWxsYmFjayA6IGdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFja3MudmFs
dWVzKCkpCiAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0
IHN0b3BwZWQiX3MgfSk7CisKKyAgICBhdXRvIHZvaWRDYWxsYmFja3MgPSBXVEZNb3ZlKG1fdm9p
ZENhbGxiYWNrcyk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IHZvaWRDYWxsYmFja3MudmFs
dWVzKCkpCisgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0
IHN0b3BwZWQiX3MgfSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFj
a3MgPSBXVEZNb3ZlKG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcyk7CisgICAgZm9y
IChhdXRvJiBjYWxsYmFjayA6IG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcy52YWx1
ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgImNvbnRleHQg
c3RvcHBlZCJfcyB9KTsKIH0KIAogdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNo
UmVnaXN0cmF0aW9uKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBj
bGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCkBAIC0yODUsNiArMjkz
LDcwIEBAIHZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpnZXRQdXNoUGVybWlzc2lvblN0
YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29ya2Vy
U1dDbGllbnRDb25uZWN0aW9uOjplbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25P
clZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRk
KHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aHJlYWQgPSBtX3RocmVhZCwgcmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlv
bklkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2
aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7
CisgICAgICAgIGNvbm5lY3Rpb24uZW5hYmxlTmF2aWdhdGlvblByZWxvYWQocmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgW3RocmVhZCA9IFdURk1vdmUodGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJd
KGF1dG8mJiByZXN1bHQpIHsKKyAgICAgICAgICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNr
Rm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZN
b3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgYXV0
byBjYWxsYmFjayA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuc3dDbGllbnRD
b25uZWN0aW9uKCkubV92b2lkQ2FsbGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CisgICAgbV92b2lk
Q2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisg
ICAgY2FsbE9uTWFpblRocmVhZChbdGhyZWFkID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlmaWVy
LCByZWdpc3RyYXRpb25JZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBjb25u
ZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2Vy
Q29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9h
ZChyZWdpc3RyYXRpb25JZGVudGlmaWVyLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCByZXF1
ZXN0SWRlbnRpZmllcl0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNj
b3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5tX3ZvaWRDYWxsYmFja3MudGFrZShyZXF1ZXN0SWRl
bnRpZmllcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9KTsK
KyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnNldE5hdmlnYXRp
b25QcmVsb2FkSGVhZGVyVmFsdWUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
cmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYgaGVhZGVyVmFsdWUsIEV4Y2VwdGlvbk9y
Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIgPSArK21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQo
cmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5U
aHJlYWQoW3RocmVhZCA9IG1fdGhyZWFkLCByZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgaGVhZGVyVmFsdWUgPSBXVEZNb3ZlKGhlYWRlclZhbHVlKS5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3Jr
ZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKKyAgICAg
ICAgY29ubmVjdGlvbi5zZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIFdURk1vdmUoaGVhZGVyVmFsdWUpLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJl
YWQpLCByZXF1ZXN0SWRlbnRpZmllcl0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0
ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gZG93bmNhc3Q8V29ya2VyR2xvYmFs
U2NvcGU+KHNjb3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5tX3ZvaWRDYWxsYmFja3MudGFrZShy
ZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1
bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAg
ICAgICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246Omdl
dE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CisgICAgbV9uYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlQ2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwor
CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhyZWFkID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlm
aWVyLCByZWdpc3RyYXRpb25JZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBj
b25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLmdldE5hdmlnYXRpb25QcmVsb2Fk
U3RhdGUocmVnaXN0cmF0aW9uSWRlbnRpZmllciwgW3RocmVhZCA9IFdURk1vdmUodGhyZWFkKSwg
cmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiByZXN1bHQpIHsKKyAgICAgICAgICAgIHRocmVhZC0+
cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IGNy
b3NzVGhyZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
PihzY29wZSkuc3dDbGllbnRDb25uZWN0aW9uKCkubV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGNhbGxiYWNr
KFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaApp
bmRleCA5Njk5NGJkOTU2ZDFjYmYxNWJhM2UxOWJjZjA3MTMzMzlmOTkxZTM4Li5kMDBkMTExNWM2
ZmJlNjcwOGM1NTI4NGU0NmMyNzFlYTJmOGJiMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC02
Miw2ICs2MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFN1YnNjcmlwdGlvbkNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZShTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNr
JiYpIGZpbmFsOwogCisgICAgdm9pZCBlbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAg
IHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZp
bmFsOworICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2smJikgZmluYWw7CisKICAgICBSZWY8V29ya2VyVGhyZWFkPiBtX3RocmVhZDsKIAogICAg
IHVpbnQ2NF90IG1fbGFzdFJlcXVlc3RJZGVudGlmaWVyIHsgMCB9OwpAQCAtNzMsNiArNzgsOCBA
QCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2
aWNlQ2FsbGJhY2s+IG1fdW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2VSZXF1ZXN0czsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBHZXRQdXNoU3Vic2NyaXB0aW9uQ2FsbGJhY2s+IG1fZ2V0UHVzaFN1
YnNjcmlwdGlvblJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEdldFB1c2hQZXJtaXNz
aW9uU3RhdGVDYWxsYmFjaz4gbV9nZXRQdXNoUGVybWlzc2lvblN0YXRlQ2FsbGJhY2tzOworICAg
IEhhc2hNYXA8dWludDY0X3QsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxsYmFj
a3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlQ2FsbGJhY2s+IG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCmluZGV4IGQ0NTRl
OWQxNzQ4NDBmNjVjMzdhMDExNTI4OTE1MmExMDI2NDI0M2EuLjliN2ZmNTMwYWVmNGJkNjcxOGIx
YjY3ZDhiNmRhOWEyY2ExYmQ2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcApAQCAtMTM5
LDcgKzEzOSw3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NSZXNwb25zZShSZWY8Q2xpZW50PiYmIGNs
aWVudCwgRXhwZWN0ZWQ8UmVmPEZldGNoUmVzcG9uc2U+LCBzCiAgICAgfSk7CiB9CiAKLXZvaWQg
ZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYgY2xpZW50LCBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUmIGdsb2JhbFNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5n
JiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIpCit2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVu
dCwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTY29wZSwgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gY2xpZW50SWQsIFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBib29sIGlzU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkRW5hYmxlZCkKIHsKICAgICBhdXRvIHJlcXVlc3RIZWFkZXJzID0gRmV0Y2hI
ZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlLCBIVFRQSGVhZGVy
TWFwIHsgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkgfSk7CiAKQEAgLTE2Nyw3ICsxNjcsOSBA
QCB2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVudCwgU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTYwogCiAgICAgVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0
LnVybCgpOwogICAgIGF1dG8gZmV0Y2hSZXF1ZXN0ID0gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoZ2xv
YmFsU2NvcGUsIFdURk1vdmUoYm9keSksIFdURk1vdmUocmVxdWVzdEhlYWRlcnMpLCAgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShyZWZlcnJlcikpOwotICAgIGZl
dGNoUmVxdWVzdC0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKGZldGNoSWRlbnRpZmll
cik7CisKKyAgICBpZiAoIWlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCkK
KyAgICAgICAgZmV0Y2hSZXF1ZXN0LT5zZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIoZmV0
Y2hJZGVudGlmaWVyKTsKIAogICAgIEZldGNoRXZlbnQ6OkluaXQgaW5pdDsKICAgICBpbml0LnJl
cXVlc3QgPSBXVEZNb3ZlKGZldGNoUmVxdWVzdCk7CkBAIC0xODAsNiArMTgyLDkgQEAgdm9pZCBk
aXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSYgZ2xvYmFsU2MKICAgICBpbml0LmNhbmNlbGFibGUgPSB0cnVlOwogICAgIGF1dG8g
ZXZlbnQgPSBGZXRjaEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZldGNoRXZlbnQsIFdURk1v
dmUoaW5pdCksIEV2ZW50OjpJc1RydXN0ZWQ6Olllcyk7CiAKKyAgICBpZiAoaXNTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQorICAgICAgICBldmVudC0+c2V0TmF2aWdhdGlv
blByZWxvYWRJZGVudGlmaWVyKGZldGNoSWRlbnRpZmllcik7CisKICAgICBDZXJ0aWZpY2F0ZUlu
Zm8gY2VydGlmaWNhdGVJbmZvID0gZ2xvYmFsU2NvcGUuY2VydGlmaWNhdGVJbmZvKCk7CiAKICAg
ICBldmVudC0+b25SZXNwb25zZShbY2xpZW50LCBtb2RlLCByZWRpcmVjdCwgcmVxdWVzdFVSTCwg
Y2VydGlmaWNhdGVJbmZvID0gV1RGTW92ZShjZXJ0aWZpY2F0ZUluZm8pXSAoYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IDc2NzE0NmJiMDIzNjRkZGEx
ZWY3MWEwMTEzNDM5YWJjZTVlNWQ5OTUuLjU0ZDA0ZTgzNzRhOGFlY2VlNGMwZjAzZDY0MTFhNmI3
MzVhOTFiODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9IDA7CiB9
OwogCi12b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmLCBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyPiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMm
JiwgRmV0Y2hJZGVudGlmaWVyKTsKK3ZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+
JiYsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJy
ZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggOGIxY2VjZDM3ZGUzMWMzMjAxOWQ2OGYz
YTJlMDQxMjM3YTI4NWE0Yy4uNjUyNWZiOTcwMTZmZmFkZWU5MWExMTYwNjA0YzAyNzEwOWNlODY2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTEyNCwxMSArMTI0LDExIEBAIHZv
aWQgU2VydmljZVdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wKCkKICAgICBXb3JrZXJUaHJlYWQ6
OnJ1bkV2ZW50TG9vcCgpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFz
a1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVu
dCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGll
bnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNo
T3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCit2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZp
Y2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblBy
ZWxvYWRFbmFibGVkKQogewogICAgIFJlZiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3du
Y2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCpnbG9iYWxTY29wZSgpKTsKLSAgICBzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpE
T01NYW5pcHVsYXRpb24sIFtzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCA9IFdURk1v
dmUoY2xpZW50KSwgY2xpZW50SWQsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJl
ciA9IFdURk1vdmUocmVmZXJyZXIpLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJ
ZGVudGlmaWVyXSgpIG11dGFibGUgewotICAgICAgICBTZXJ2aWNlV29ya2VyRmV0Y2g6OmRpc3Bh
dGNoRmV0Y2hFdmVudChXVEZNb3ZlKGNsaWVudCksIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwg
Y2xpZW50SWQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9w
dGlvbnMpLCBmZXRjaElkZW50aWZpZXIpOworICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+
ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwg
cmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlciks
IG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0oKSBtdXRhYmxlIHsKKyAgICAgICAgU2Vydmlj
ZVdvcmtlckZldGNoOjpkaXNwYXRjaEZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudElkLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJl
ZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyLCBpc1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmgKaW5kZXggZDllMzM2NTE5YzVkMDViODM2Zjg0MTIwODkzNTMyZTc5YTQxYzMxZi4u
ZGVkM2MyNTBmNWVlMTY2ODY2M2M3YjlkMGU3YTk0MTI5MDIzYWJjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsUG9zdFRh
c2tUb0ZpcmVNZXNzYWdlRXZlbnQoKTsKICAgICB2b2lkIHdpbGxQb3N0VGFza1RvRmlyZVB1c2hT
dWJzY3JpcHRpb25DaGFuZ2VFdmVudCgpOwogCi0gICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVGZXRj
aEV2ZW50KFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0
cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2
b2lkIHF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xp
ZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYm
LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBG
ZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFi
bGVkKTsKICAgICB2b2lkIHF1ZXVlVGFza1RvUG9zdE1lc3NhZ2UoTWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMmJiwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZv
aWQgcXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0Zp
cmVBY3RpdmF0ZUV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApp
bmRleCBjZmQzNmExOGU4ZmM1YmFiZGQ1MmQ5Yjc0OTlmODk0MjIyMzZjYWU5Li5iM2NmMmM3M2Iy
MjM5MjU5Mzg0NTNiZjlmMDhiNTQwMjY1Y2MyNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6bm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpCiAgICAgfSwg
V29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2
aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYgY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQordm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9w
dGlvbnMsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogewog
ICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6
OnN0YXJ0RmV0Y2ggJWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIApAQCAtMjIx
LDggKzIyMSw4IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvCiAKICAgICBBU1NFUlQoIW1fb25n
b2luZ0ZldGNoVGFza3MuY29udGFpbnMoa2V5KSk7CiAgICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy5h
ZGQoa2V5LCBjbGllbnQuY29weVJlZigpKTsKLSAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
Y2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IHJlcXVlc3QuaXNv
bGF0ZWRDb3B5KCksIHJlZmVycmVyID0gcmVmZXJyZXIuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMg
PSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBmZXRjaElkZW50aWZpZXJdKGF1dG8mKSBtdXRhYmxl
IHsKLSAgICAgICAgdGhyZWFkKCkucXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVudChXVEZNb3ZlKGNs
aWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVy
cmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBwb3N0VGFza0Zv
ck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVz
dCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gcmVmZXJyZXIuaXNvbGF0ZWRD
b3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBmZXRjaElkZW50aWZpZXIs
IGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0oYXV0byYpIG11dGFibGUg
eworICAgICAgICB0aHJlYWQoKS5xdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFdURk1vdmUoY2xp
ZW50KSwgV1RGTW92ZShjbGllbnRJZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJy
ZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5h
dmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKaW5kZXggZGE5NmYw
Zjc4NTdiNTU4ZWJjMjQzMzM3ZDg2YTQ0N2NlYzg5NmIwYS4uMGEzMzc5MjQ0ODBlYmY4MjY3NTNl
ZjU0MWEzZjFjZDRjNjkyNWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgK
QEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3Rp
ZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVu
dGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBT
dHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZp
ZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmlu
ZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2FuY2VsRmV0Y2go
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGY3YzY3YmQ5YjU2ZDk1
ZGRhNzM2NjlhOTM5N2RhMDQwN2JiMjIxYzAuLmVjN2IzYmMzMjFjNzMwNzE5ZGQ5NTMyNmNjNDVi
OGZlYmMxY2IyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJIVFRQUGFyc2Vy
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1
ZGUgIlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIgpAQCAtNTQsNiArNTUsNyBAQCBTV1Nl
cnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXImIHNlcnZlciwg
Y29uc3QgU2VydmljZVdvcmtlcgogICAgICwgbV9zb2Z0VXBkYXRlVGltZXIgeyAqdGhpcywgJlNX
U2VydmVyUmVnaXN0cmF0aW9uOjpzb2Z0VXBkYXRlIH0KIHsKICAgICBtX3Njb3BlVVJMLnJlbW92
ZUZyYWdtZW50SWRlbnRpZmllcigpOworICAgIG1fcHJlbG9hZFN0YXRlLmhlYWRlclZhbHVlID0g
InRydWUiX3M7CiB9CiAKIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp+U1dTZXJ2ZXJSZWdpc3RyYXRp
b24oKQpAQCAtMzgyLDYgKzM4NCwzOCBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzY2hl
ZHVsZVNvZnRVcGRhdGUoSXNBcHBJbml0aWF0ZWQgaXNBcHBJbml0aWF0ZWQpCiAgICAgbV9zb2Z0
VXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KHNvZnRVcGRhdGVEZWxheSk7CiB9CiAKKy8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5h
Z2VyLWVuYWJsZSwgc3RlcHMgcnVuIGluIHBhcmFsbGVsLgorc3RkOjpvcHRpb25hbDxFeGNlcHRp
b25EYXRhPiBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoKQor
eworICAgIC8vIEZJWE1FOiBQZXJzaXN0IHRoaXMgZGF0YS4KKyAgICBpZiAoIW1fYWN0aXZlV29y
a2VyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAi
Tm8gYWN0aXZlIHdvcmtlciJfcyB9OworICAgIG1fcHJlbG9hZFN0YXRlLmVuYWJsZWQgPSB0cnVl
OworICAgIHJldHVybiB7IH07Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5hZ2VyLWRpc2FibGUsIHN0ZXBzIHJ1biBp
biBwYXJhbGxlbC4KK3N0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gU1dTZXJ2ZXJSZWdpc3Ry
YXRpb246OmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZCgpCit7CisgICAgLy8gRklYTUU6IFBlcnNp
c3QgdGhpcyBkYXRhLgorICAgIGlmICghbV9hY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUgd29ya2VyIl9zIH07
CisgICAgbV9wcmVsb2FkU3RhdGUuZW5hYmxlZCA9IGZhbHNlOworICAgIHJldHVybiB7IH07Cit9
CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tbmF2aWdhdGlv
bnByZWxvYWRtYW5hZ2VyLXNldGhlYWRlcnZhbHVlLCBzdGVwcyBydW4gaW4gcGFyYWxsZWwuCitz
dGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFN0cmluZyYmIGhlYWRlclZhbHVlKQoreworICAgIC8v
IEZJWE1FOiBQZXJzaXN0IHRoaXMgZGF0YS4KKyAgICBpZiAoIWlzVmFsaWRIVFRQSGVhZGVyVmFs
dWUoaGVhZGVyVmFsdWUpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJv
ciwgIkludmFsaWQgaGVhZGVyIHZhbHVlIl9zIH07CisgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGFj
dGl2ZSB3b3JrZXIiX3MgfTsKKyAgICBtX3ByZWxvYWRTdGF0ZS5oZWFkZXJWYWx1ZSA9IFdURk1v
dmUoaGVhZGVyVmFsdWUpOworICAgIHJldHVybiB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uaAppbmRleCA3Mjg3MWI5YjBhMDA3OWRlMjM2YjMzNTkyZDZkY2ZhN2Y0ZWM2YjVlLi5i
OWZkMGQ5MjU0MDQ5MzQzZjI1NTU5YWVjOGIyOGExNGI2MjkyZWM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKKyNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgiCiAjaW5jbHVkZSAiU1dTZXJ2
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmgiCkBAIC0xMTAsNiArMTExLDEx
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXBwSW5pdGlhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
c0FwcEluaXRpYXRlZDsgfQogICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IGVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBkaXNhYmxlTmF2
aWdhdGlvblByZWxvYWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEV4Y2Vw
dGlvbkRhdGE+IHNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU3RyaW5nJiYpOworICAg
IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgbmF2aWdhdGlvblByZWxvYWRTdGF0ZSgpIHsgcmV0dXJu
IG1fcHJlbG9hZFN0YXRlOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBhY3RpdmF0ZSgpOwogICAg
IHZvaWQgaGFuZGxlQ2xpZW50VW5sb2FkKCk7CkBAIC0xMzgsNiArMTQ0LDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpUaW1lciBtX3NvZnRVcGRhdGVUaW1lcjsKICAgICAKICAgICBib29sIG1f
aXNBcHBJbml0aWF0ZWQgeyB0cnVlIH07CisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBtX3By
ZWxvYWRTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAppbmRleCAzNDhkMjdlN2NiZmEyM2M4NjY5NTM5M2Zk
ZDBjMDc1NDVlYTAyYzY5Li5kNzg3YjUxMGFkNzgwMWI4NzZmZGFmMThiY2VhNjBhMDY3NzQ3ZDdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC04OCwxMiAr
ODgsMTEgQEAgU2VydmljZVdvcmtlckZldGNoVGFzazo6U2VydmljZVdvcmtlckZldGNoVGFzayhX
ZWJTV1NlcnZlckNvbm5lY3Rpb24mIHN3U2VydmVyQ28KIAogICAgIG1fdGltZW91dFRpbWVyLT5z
dGFydE9uZVNob3QobG9hZGVyLmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS5uZXR3b3JrUHJvY2Vz
cygpLnNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQoKSk7CiAKLSAgICAvLyBGSVhNRTogQ29uc2lk
ZXIgZXh0ZW5kaW5nIHRoaXMgYmFzZWQgb24gbmF2aWdhdGlvbiBwcmVsb2FkIG1hbmFnZXIuCiAg
ICAgYm9vbCBzaG91bGREb05hdmlnYXRpb25QcmVsb2FkID0gc2Vzc2lvbiAmJiBpc05hdmlnYXRp
b25SZXF1ZXN0KGxvYWRlci5wYXJhbWV0ZXJzKCkub3B0aW9ucy5kZXN0aW5hdGlvbikgJiYgbG9h
ZGVyLm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiR0VUIjsKLSAgICBpZiAoc2hv
dWxkRG9OYXZpZ2F0aW9uUHJlbG9hZCAmJiAhaXNXb3JrZXJSZWFkeSkgeworICAgIGlmIChzaG91
bGREb05hdmlnYXRpb25QcmVsb2FkICYmICghaXNXb3JrZXJSZWFkeSB8fCByZWdpc3RyYXRpb24u
bmF2aWdhdGlvblByZWxvYWRTdGF0ZSgpLmVuYWJsZWQpKSB7CiAgICAgICAgIE5ldHdvcmtMb2Fk
UGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKTsKICAgICAgICAgcGFy
YW1ldGVycy5yZXF1ZXN0ID0gbV9jdXJyZW50UmVxdWVzdDsKLSAgICAgICAgbV9wcmVsb2FkZXIg
PSBtYWtlVW5pcXVlPFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyPigqc2Vzc2lvbiwg
V1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgICAgIG1fcHJlbG9hZGVyID0gbWFrZVVuaXF1ZTxT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcj4oKnNlc3Npb24sIFdURk1vdmUocGFyYW1l
dGVycyksIHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKCksIGxvYWRlci5zaG91
bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSk7CiAgICAgICAgIHNlc3Npb24tPmFk
ZE5hdmlnYXRpb25QcmVsb2FkZXJUYXNrKCp0aGlzKTsKICAgICB9CiB9CkBAIC0xNTEsNyArMTUw
LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzdGFydEZldGNoKCkKICAgICBhdXRv
IHJlcXVlc3QgPSBtX2N1cnJlbnRSZXF1ZXN0OwogICAgIGNsZWFuSFRUUFJlcXVlc3RIZWFkZXJz
Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBtX2xvYWRlci5wYXJhbWV0ZXJzKCkuaHR0cEhlYWRl
cnNUb0tlZXApOwogCi0gICAgYm9vbCBpc1NlbnQgPSBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJ
ZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgbV9j
dXJyZW50UmVxdWVzdC5odHRwQm9keSgpIH0sIHJlZmVycmVyIH0pOworICAgIGJvb2wgaXNTZW50
ID0gc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OlN0YXJ0RmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IG1fY3VycmVudFJlcXVlc3QuaHR0cEJvZHkoKSB9LCBy
ZWZlcnJlciwgbV9wcmVsb2FkZXIgJiYgbV9wcmVsb2FkZXItPmlzU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkRW5hYmxlZCgpIH0pOwogICAgIEFTU0VSVF9VTlVTRUQoaXNTZW50LCBpc1Nl
bnQpOwogfQogCkBAIC0yODIsNyArMjgxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpkaWROb3RIYW5kbGUoKQogICAgICAgICBtX3RpbWVvdXRUaW1lci0+c3RvcCgpOwogICAgIHNv
ZnRVcGRhdGVJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fcHJlbG9hZGVyKSB7CisgICAgaWYgKG1f
cHJlbG9hZGVyICYmICFtX3ByZWxvYWRlci0+aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRFbmFibGVkKCkpIHsKICAgICAgICAgbG9hZFJlc3BvbnNlRnJvbVByZWxvYWRlcigpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlci5jcHAKaW5kZXggMzNhOWQ0YjZkZmI4ODEwZDJmNDI3ZTBmODc2
Yjg4MWYwNDBlYzJlNi4uYWVlM2M1ZTgwMWJkMzAyMThmZTliNzIyMjI1YjMxYTRhNGRmMjE4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2Fk
ZXIuY3BwCkBAIC0zMiw0NiArMzIsNjcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNp
bmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotU2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkZXI6OlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQorU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZGVyKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlJiBzdGF0ZSwgYm9v
bCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpYykKICAgICA6IG1fc2Vzc2lvbihz
ZXNzaW9uKQorICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgLCBt
X3N0YXRlKHN0YXRlKQorICAgICwgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJp
Y3Moc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiB7CiAgICAgUkVMRUFT
RV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlciAlcCIsIHRoaXMpOwotICAgIGlmIChzZXNz
aW9uLmNhY2hlKCkpIHsKLSAgICAgICAgTmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGdsb2Jh
bElEIHsgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBh
cmFtZXRlcnMud2ViRnJhbWVJRCB9OwotICAgICAgICBzZXNzaW9uLmNhY2hlKCktPnJldHJpZXZl
KHBhcmFtZXRlcnMucmVxdWVzdCwgZ2xvYmFsSUQsIHBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBhcmFt
ZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpXShhdXRvJiYgZW50cnksIGF1dG8mJikgbXV0YWJs
ZSB7CisgICAgaWYgKCFtX3N0YXRlLmVuYWJsZWQgfHwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5h
dmlnYXRpb24pCisgICAgICAgIHN0YXJ0KCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkZXI6OnN0YXJ0KCkKK3sKKyAgICBpZiAobV9pc1N0YXJ0ZWQpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2lzU3RhcnRlZCA9IHRydWU7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikg
eworICAgICAgICBkaWRGYWlsTG9hZGluZyhSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJL
aXRJbnRlcm5hbCwgMCwgeyB9LCAiTm8gc2Vzc2lvbiBmb3IgcHJlbG9hZCJfcyB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3Nlc3Npb24tPmNhY2hlKCkpIHsKKyAgICAg
ICAgTmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGdsb2JhbElEIHsgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlELCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCB9OworICAgICAgICBtX3Nlc3Npb24tPmNhY2hlKCktPnJldHJpZXZlKG1fcGFyYW1ldGVy
cy5yZXF1ZXN0LCBnbG9iYWxJRCwgbV9wYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShhdXRvJiYgZW50cnks
IGF1dG8mJikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1faXNDYW5j
ZWxsZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCFtX3Nlc3Np
b24pIHsKLSAgICAgICAgICAgICAgICBkaWRGYWlsTG9hZGluZyhSZXNvdXJjZUVycm9yIHsgUmVz
b3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uIH0pOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKGVudHJ5ICYmICFlbnRyeS0+bmVl
ZHNWYWxpZGF0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBsb2FkV2l0aENhY2hlRW50cnkoKmVu
dHJ5KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIHBhcmFtZXRlcnMucmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZXNvdXJjZVJlcXVlc3RDYWNo
ZVBvbGljeTo6UmVmcmVzaEFueUNhY2hlRGF0YSk7CisgICAgICAgICAgICBtX3BhcmFtZXRlcnMu
cmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVmcmVz
aEFueUNhY2hlRGF0YSk7CiAgICAgICAgICAgICBpZiAoZW50cnkpIHsKICAgICAgICAgICAgICAg
ICBtX2NhY2hlRW50cnkgPSBXVEZNb3ZlKGVudHJ5KTsKIAogICAgICAgICAgICAgICAgIGF1dG8g
ZVRhZyA9IG1fY2FjaGVFbnRyeS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OkVUYWcpOwogICAgICAgICAgICAgICAgIGlmICghZVRhZy5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OklmTm9uZU1hdGNoLCBlVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgbV9w
YXJhbWV0ZXJzLnJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk5v
bmVNYXRjaCwgZVRhZyk7CiAKICAgICAgICAgICAgICAgICBhdXRvIGxhc3RNb2RpZmllZCA9IG1f
Y2FjaGVFbnRyeS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6Okxh
c3RNb2RpZmllZCk7CiAgICAgICAgICAgICAgICAgaWYgKCFsYXN0TW9kaWZpZWQuaXNFbXB0eSgp
KQotICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLnJlcXVlc3Quc2V0SFRUUEhlYWRlckZp
ZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UsIGxhc3RNb2RpZmllZCk7CisgICAg
ICAgICAgICAgICAgICAgIG1fcGFyYW1ldGVycy5yZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZTo6SWZNb2RpZmllZFNpbmNlLCBsYXN0TW9kaWZpZWQpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICAgICAgICAgIGRp
ZEZhaWxMb2FkaW5nKFJlc291cmNlRXJyb3IgeyBSZXNvdXJjZUVycm9yOjpUeXBlOjpDYW5jZWxs
YXRpb24gfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbG9hZEZyb21OZXR3b3JrKCptX3Nlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycykpOwor
ICAgICAgICAgICAgbG9hZEZyb21OZXR3b3JrKCk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIGxvYWRGcm9tTmV0d29yayhzZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpKTsKKyAgICBsb2FkRnJvbU5ldHdvcmsoKTsKIH0KIAogU2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkZXI6On5TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcigpCkBAIC05MCwz
MSArMTExLDQyIEBAIHZvaWQgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OmNhbmNl
bCgpCiB2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpsb2FkV2l0aENhY2hl
RW50cnkoTmV0d29ya0NhY2hlOjpFbnRyeSYgZW50cnkpCiB7CiAgICAgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlUmVzcG9uc2UgeyBlbnRyeS5yZXNwb25zZSgpIH0sIFtib2R5ID0gUmVmUHRy
IHsgZW50cnkuYnVmZmVyKCkgfSwgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0bykg
bXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgIGlmICghd2Vha1RoaXMg
fHwgd2Vha1RoaXMtPm1faXNDYW5jZWxsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAg
ICAgc2l6ZV90IHNpemUgID0gMDsKICAgICAgICAgaWYgKGJvZHkpIHsKLSAgICAgICAgICAgIGF1
dG8gc2l6ZSA9IGJvZHktPnNpemUoKTsKKyAgICAgICAgICAgIHNpemUgPSBib2R5LT5zaXplKCk7
CiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkUmVjZWl2ZUJ1ZmZlcihib2R5LnJlbGVhc2VOb25O
dWxsKCksIHNpemUpOworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAg
ICAgcmV0dXJuOwotCiAgICAgICAgIE5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3JrTG9hZE1ldHJp
Y3M7CiAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5tYXJrQ29tcGxldGUoKTsKICAgICAgICAg
bmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlQm9keUJ5dGVzUmVjZWl2ZWQgPSAwOwotICAgICAg
ICBuZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VCb2R5RGVjb2RlZFNpemUgPSAwOworICAgICAg
ICBuZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VCb2R5RGVjb2RlZFNpemUgPSBzaXplOworICAg
ICAgICBpZiAod2Vha1RoaXMtPnNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygp
KSB7CisgICAgICAgICAgICBhdXRvIGFkZGl0aW9uYWxNZXRyaWNzID0gV2ViQ29yZTo6QWRkaXRp
b25hbE5ldHdvcmtMb2FkTWV0cmljc0ZvcldlYkluc3BlY3Rvcjo6Y3JlYXRlKCk7CisgICAgICAg
ICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVxdWVzdEhlYWRlckJ5dGVzU2VudCA9IDA7CisgICAg
ICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVxdWVzdEJvZHlCeXRlc1NlbnQgPSAwOworICAg
ICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlc3BvbnNlSGVhZGVyQnl0ZXNSZWNlaXZlZCA9
IDA7CisgICAgICAgICAgICBuZXR3b3JrTG9hZE1ldHJpY3MuYWRkaXRpb25hbE5ldHdvcmtMb2Fk
TWV0cmljc0ZvcldlYkluc3BlY3RvciA9IFdURk1vdmUoYWRkaXRpb25hbE1ldHJpY3MpOworICAg
ICAgICB9CiAgICAgICAgIHdlYWtUaGlzLT5kaWRGaW5pc2hMb2FkaW5nKG5ldHdvcmtMb2FkTWV0
cmljcyk7CiAgICAgfSk7CiAgICAgZGlkQ29tcGxldGUoKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9hZEZyb21OZXR3b3JrKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQordm9pZCBTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9hZEZyb21OZXR3b3JrKCkKIHsKKyAgICBBU1NF
UlQobV9zZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OmxvYWRGcm9tTmV0d29yayAlcCIsIHRoaXMpOwogCi0g
ICAgbV9uZXR3b3JrTG9hZCA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCBudWxscHRy
LCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBzZXNzaW9uKTsKKyAgICBpZiAobV9zdGF0ZS5lbmFibGVk
KQorICAgICAgICBtX3BhcmFtZXRlcnMucmVxdWVzdC5hZGRIVFRQSGVhZGVyRmllbGQoIlNlcnZp
Y2UtV29ya2VyLU5hdmlnYXRpb24tUHJlbG9hZCJfcywgbV9zdGF0ZS5oZWFkZXJWYWx1ZSk7CisK
KyAgICBtX25ldHdvcmtMb2FkID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsIG51bGxw
dHIsIFdURk1vdmUobV9wYXJhbWV0ZXJzKSwgKm1fc2Vzc2lvbik7CiAgICAgbV9uZXR3b3JrTG9h
ZC0+c3RhcnQoKTsKIH0KIApAQCAtMTc3LDYgKzIwOSw4IEBAIHZvaWQgU2VydmljZVdvcmtlck5h
dmlnYXRpb25QcmVsb2FkZXI6OmRpZENvbXBsZXRlKCkKIAogdm9pZCBTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlcjo6d2FpdEZvclJlc3BvbnNlKFJlc3BvbnNlQ2FsbGJhY2smJiBjYWxs
YmFjaykKIHsKKyAgICBzdGFydCgpOworCiAgICAgaWYgKCFtX2Vycm9yLmlzTnVsbCgpKSB7CiAg
ICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKaW5kZXggMGFmY2IwNzA3ZGFlZDY3
ZjBhMjc3OTY3ZDVlYzQ3MmRjMGZlMGM5Ny4uMWMwNmQ0ZmZhMGVmZWZjMGMxZmRkZGU0ZjIxZGUy
NjRiYmRhMDZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtDYWNo
ZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKKyNpbmNsdWRlICJOZXR3
b3JrTG9hZFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05hdmlnYXRpb25QcmVsb2Fk
U3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zOCwxMyArNDAsMTIgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtMb2FkOwotY2xhc3MgTmV0d29ya0xvYWRQYXJhbWV0
ZXJzOwogY2xhc3MgTmV0d29ya1Nlc3Npb247CiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyIGZpbmFsIDogcHVibGljIE5ldHdvcmtMb2FkQ2xpZW50LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI+IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlcihOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmKTsKKyAg
ICBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcihOZXR3b3JrU2Vzc2lvbiYsIE5ldHdv
cmtMb2FkUGFyYW1ldGVycyYmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
JiwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpOwogICAgIH5TZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcigpOwogCiAgICAgdm9pZCBjYW5jZWwoKTsKQEAg
LTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
IGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQog
ICAgIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNz
KCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KKyAgICBib29sIGlzU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGUuZW5hYmxlZDsgfQogCiBwcml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgpAQCAt
NjgsMTUgKzcwLDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlZjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKSBm
aW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xv
YWRNZXRyaWNzJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3
b3JrTG9hZE1ldHJpY3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljczsgfQogCisgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgbG9h
ZFdpdGhDYWNoZUVudHJ5KE5ldHdvcmtDYWNoZTo6RW50cnkmKTsKLSAgICB2b2lkIGxvYWRGcm9t
TmV0d29yayhOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmKTsKKyAgICB2
b2lkIGxvYWRGcm9tTmV0d29yaygpOwogICAgIHZvaWQgZGlkQ29tcGxldGUoKTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrTG9hZD4gbV9uZXR3b3JrTG9hZDsKICAgICBXZWFrUHRyPE5l
dHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzQ2FuY2VsbGVkIHsgZmFsc2UgfTsKIAorICAgIE5ldHdvcmtMb2FkUGFy
YW1ldGVycyBtX3BhcmFtZXRlcnM7CisgICAgV2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0
ZSBtX3N0YXRlOworICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJp
Y3MgeyBmYWxzZSB9OworCiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+
IG1fY2FjaGVFbnRyeTsKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MgbV9uZXR3b3Jr
TG9hZE1ldHJpY3M7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAxODhmMjA5OWI4NTAz
ZTZmYzQ5MTU4MDkyNDBkNzIxMTJjZDZmMGM0Li4xMjkxMThkMDU5ZDFiMGIwNjM1N2I5NWJmYzdh
Njk2YjE2ZWI2ZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApA
QCAtNTIzLDYgKzUyMyw0NiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZmV0Y2hUYXNr
VGltZWRPdXQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcgogICAgIHdvcmtlci0+
dGVybWluYXRlKCk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjplbmFibGVOYXZp
Z2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlv
bihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbikgeworICAg
ICAgICBjYWxsYmFjayhFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsIHsgIk5vIHJl
Z2lzdHJhdGlvbiJfcyB9IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNr
KHJlZ2lzdHJhdGlvbi0+ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoKSk7Cit9CisKK3ZvaWQgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
RXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiByZWdpc3Ry
YXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7
CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uRGF0
YSB7IEludmFsaWRTdGF0ZUVycm9yLCB7ICJObyByZWdpc3RyYXRpb24iX3MgfSB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxsYmFjayhyZWdpc3RyYXRpb24tPmRpc2FibGVOYXZp
Z2F0aW9uUHJlbG9hZCgpKTsKK30KKwordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNldE5h
dmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYgaGVhZGVyVmFs
dWUsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgYXV0byogcmVn
aXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uKSB7CisgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlv
bkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgeyAiTm8gcmVnaXN0cmF0aW9uIl9zIH0gfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FsbGJhY2socmVnaXN0cmF0aW9uLT5zZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdURk1vdmUoaGVhZGVyVmFsdWUpKSk7Cit9CisKK3Zv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yTmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgYXV0byogcmVnaXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9u
KHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uKSB7CisgICAg
ICAgIGNhbGxiYWNrKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVF
cnJvciwgeyB9IH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxsYmFjayhyZWdp
c3RyYXRpb24tPm5hdmlnYXRpb25QcmVsb2FkU3RhdGUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjdW5kZWYgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMTc0ZmU3MjY2NDgxYTMzZDkyMjQ3NGNi
NDdjYjdkOWZjYzI1M2IyNi4uOTZhMmNiMGQxY2E5OTc5Y2ZkNDUxYTc3ZTU1ZWU3Y2I0NTEyZGVh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdXNoUGVybWlzc2lv
blN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oPgpAQCAt
MTI4LDYgKzEyOSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFdlYkNv
cmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSk7CiAgICAgdm9pZCBjb250cm9sQ2xpZW50KFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZl
clJlZ2lzdHJhdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCisgICAg
dXNpbmcgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+OworICAgIHZvaWQgZW5hYmxl
TmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpOworICAgIHZvaWQgZGlzYWJsZU5hdmln
YXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB2b2lkIHNldE5hdmlnYXRpb25QcmVs
b2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIFN0cmluZyYmLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB1c2luZyBFeGNl
cHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4mJik+OworICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JO
YXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJik7CisKICAgICBVUkwgY2xpZW50VVJMRnJv
bUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcik7CiAK
ICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYzk3ZDUyYzcyMWYw
ZGMyZWNjMzgxMDUxZjM3MmVhMDBhZjk3N2Y2ZS4uYWUyYjI3ZjRlZDY1Nzg4YzU4OGU2MWI1OTc1
OGNlODI4N2UyY2NjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC01MSw2ICs1MSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgVW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZp
Y2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5
bmMKICAgICBHZXRQdXNoU3Vic2NyaXB0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVz
dWx0KSBBc3luYwogICAgIEdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ4
X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMgCisKKyAgICBFbmFibGVO
YXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiByZXN1bHQpIEFzeW5jCisgICAgRGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKKyAgICBTZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyB2YWx1ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYworICAgIEdldE5hdmlnYXRpb25Q
cmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
aWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6Ok5hdmlnYXRpb25QcmVsb2FkU3RhdGUs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDQ1MjJhMDI4N2M0
YzgzYTRlMjgzYjYzZmExNjQwY2MyZDhhMTM2YWUuLjE4MjYwNWI4ZTBlMzJlZjA1YTM5MWZjYzA5
M2IwNDQ1ZjdkMDY2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjY1LDYgKzI2NSw0MiBA
QCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cgogICAgIH0pOwogfQogCit2b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9u
T3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RW5hYmxlTmF2aWdhdGlvblByZWxvYWQgeyBy
ZWdpc3RyYXRpb25JZGVudGlmaWVyIH0sIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShh
dXRvJiYgZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soZXJyb3ItPnRvRXhjZXB0aW9uKCkpOworICAgICAgICBjYWxsYmFjayh7
IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlzYWJsZU5h
dmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYgY2Fs
bGJhY2spCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OkRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZCB7IHJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgfSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBlcnJvcikgbXV0YWJs
ZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJv
ci0+dG9FeGNlcHRpb24oKSk7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZh
bHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIFN0cmluZyYmIGhlYWRlclZhbHVlLCBFeGNlcHRpb25PclZvaWRDYWxs
YmFjayYmIGNhbGxiYWNrKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpTZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlIHsgcmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgaGVhZGVyVmFsdWUgfSwgW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGF1dG8mJiBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJvci0+dG9FeGNlcHRpb24oKSk7CisgICAgICAg
IGNhbGxiYWNrKHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9u
OjpnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yTmF2aWdh
dGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkdldE5hdmlnYXRpb25QcmVs
b2FkU3RhdGUgeyByZWdpc3RyYXRpb25JZGVudGlmaWVyIH0sIFtjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQu
aGFzX3ZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2socmVzdWx0LmVycm9yKCku
dG9FeGNlcHRpb24oKSk7CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoKnJlc3VsdCkpOworICAg
IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggM2QxODk1ODg0MDE2ZDI4YzY3YTA5MWUy
YTBjMjBmNmZmZmEzOWNjYS4uZTJhMWQzNmZjOGJiOWFhMTY0NmFhNWY3ZDI0NTQwMmFjMGMyNjhh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTk1LDYgKzk1LDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXRQdXNoU3Vic2NyaXB0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBHZXRQdXNoU3Vic2NyaXB0aW9uQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9p
ZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBHZXRQdXNoUGVybWlzc2lvblN0YXRlQ2FsbGJhY2smJikgZmluYWw7CiAK
KyAgICB2b2lkIGVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiwgRXhjZXB0aW9uT3JWb2lk
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25Pck5h
dmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayYmKSBmaW5hbDsKKwogICAgIHZvaWQgc2NoZWR1
bGVTdG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKICAg
ICB2b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBhYTc0M2M2MmUzZjNiNTU0
M2NhN2NmYzdiNTJlMmUzMGFkOTkxOWNkLi5mODYyOWJlMDA2NTBiMzkyYjkwYzRmYTM5MTkxZmM5
NDg0MGZhYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0yMzcs
NyArMjM3LDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y29udGludWVE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm4KICAgICAgICAgc2VydmljZVdvcmtl
clRocmVhZFByb3h5LT5jb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgZm9ybURhdGEsIFN0cmluZyYmIHJlZmVycmVyKQordm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlciwgYm9v
bCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpCiB7CiAgICAgYXV0byog
c2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
c2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBp
ZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4gY2xpZW50SWQgPSBvcHRpb25zLmNsaWVudElkZW50aWZpZXI7CiAKICAg
ICByZXF1ZXN0LnNldEhUVFBCb2R5KGZvcm1EYXRhLnRha2VEYXRhKCkpOwotICAgIHNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS0+c3RhcnRGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
ZmV0Y2hJZGVudGlmaWVyLCBXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAg
c2VydmljZVdvcmtlclRocmVhZFByb3h5LT5zdGFydEZldGNoKHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShjbGllbnRJ
ZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMp
LCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogfQogCiB2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJj
ZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCA5N2FlNWE4NGM0MmY0
MzVjM2ExZWNiNGZkM2ZhYTU0NWVmZjNkYTdjLi5lN2RmN2Q5NDFhY2U5MDY0MTRlY2ZmZjUwYzRi
YTQ3OWQxNDY0ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTkwLDcg
KzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlcnZpY2VXb3JrZXJGYWlsZWRUb1N0YXJ0KHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVz
c2FnZSkgZmluYWw7CiAgICAgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEmJiwgU3Ry
aW5nJiYgdXNlckFnZW50LCBXZWJDb3JlOjpXb3JrZXJUaHJlYWRNb2RlKTsKICAgICB2b2lkIHVw
ZGF0ZUFwcEluaXRpYXRlZFZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7Ci0gICAgdm9pZCBzdGFydEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYmLCBTdHJpbmcmJiByZWZlcnJlcik7CisgICAgdm9pZCBzdGFydEZldGNoKFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZEVuYWJsZWQpOwogICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllcik7CiAgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDE1
NGZhYmQzNTQ5NmViY2ZiYTE1YjcyY2I1YTdhYjVlZDczNzc5NmYuLjUyOGJlY2E0ZWE0Y2I1NzU4
NmM1Zjg2ODFmZGFhYWIyZTM3MTFkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKICAgICBJbnN0YWxsU2Vy
dmljZVdvcmtlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRl
eHREYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgd29ya2VyRGF0YSwgU3Ry
aW5nIHVzZXJBZ2VudCwgZW51bTpib29sIFdlYkNvcmU6OldvcmtlclRocmVhZE1vZGUgd29ya2Vy
VGhyZWFkTW9kZSkKICAgICBVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZW51bTpib29sIFdlYkNv
cmU6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKQotICAgIFN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1
Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
cmVxdWVzdEJvZHksIFN0cmluZyByZWZlcnJlcikKKyAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIsIGJvb2wg
aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogICAgIENhbmNlbEZldGNo
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogICAg
IENvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ4YjBlMTZi
ZGQ5NDRlMmRhMGYwY2JkNzE1YjA2NDMxOTg0ZmU3NDkuLjFjZmZmMGUxMzUwZmZiOTk4MWY0OGQw
MTJkOWVkYjZjOTQzMTcxNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0xMi0wMSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTEyLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXVzZSBuYXZpZ2F0aW9u
IHByZWxvYWQgaWYgc2VydmljZSB3b3JrZXIgaXMgZmV0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcg
bmF2aWdhdGlvbiByZXF1ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmM2Jm
YTY4OTQ4YjA0Zjc3N2IyZDgxNmNiOTg5MTY1NmExNzExNWFhLi41NTEyYzhlYzA0ODA0ZjFkZTc0
NTg4MDBkMjg1YTIzNDhmZDhiNGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAyMS0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhh
cm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZ2V0LXN0
YXRlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvbmF2
aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24t
cHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlv
bi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0cHMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKwogMjAyMS0xMS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIGh0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL2Zvcm0tdmFs
aWRhdGlvbi12YWxpZGl0eS1jdXN0b21FcnJvci5odG1sIFdQVCB0ZXN0IGlzIGZhaWxpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDFiNjA4NTc2YzdmYjRkNmJiMzgwY2VjMDM5N2RkZmI0ODY1ZDUx
NjcuLjliYzBmYWE1YzY5MjY4ZWE3MjcyYzYxZjYyYTUxNTRmZTIwMmU0ZGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNDAzLDggKzQwMyw3IEBAIHdlYmtpdC5vcmcvYi8xNzY5MjkgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250CiAjIFJl
cXVpcmVzIGFkZGl0aW9uYWwgdGVzdCBpbmZyYXN0cnVjdHVyZS4KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRl
ci1vbmVkYXkuaHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBT
aGFyZWRXb3JrZXIsIE5hdmlnYXRpb25QcmVsb2FkCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQg
WyBTa2lwIF0KKyMgVW5zdXBwb3J0ZWQgZmVhdHVyZXM6IFNoYXJlZFdvcmtlcgogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xh
aW0tc2hhcmVkLXdvcmtlci1mZXRjaC5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgVW5zdXBwb3J0
ZWQgZmVhdHVyZXM6IFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtl
ci1pZnJhbWUtcHJlbG9hZC1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLXNjcmlwdC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMGVkNjEwNzBiNGI0MDEwZDZmZjE2NGE4ZDM4ZWIyZjE1MmY2MTBjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jl
c291cmNlcy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC1zY3JpcHQucHkKQEAgLTAsMCAr
MSwyNCBAQAoraW1wb3J0IG9zCitpbXBvcnQgaGFzaGxpYgoraW1wb3J0IGpzb24KKworCitkZWYg
bWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgdG9rZW4gPSByZXF1ZXN0LkdFVFtiJ3Rva2Vu
J10KKyAgICB0ZXN0SWQgPSBoYXNobGliLm1kNSh0b2tlbikuaGV4ZGlnZXN0KCkKKworICAgIGlm
IHJlcXVlc3QubWV0aG9kID09ICJQT1NUIjoKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gu
dGFrZSh0ZXN0SWQpCisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0ZXN0SWQsIHJl
cXVlc3QuR0VUW2IndmFsdWUnXSkKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250
ZW50LVR5cGUiLCBiInRleHQvYXNjaWkiKQorICAgICAgICByZXR1cm4gYiJ1cGRhdGVkIHRvICIg
KyByZXF1ZXN0LkdFVFtiJ3ZhbHVlJ10KKworICAgIHZhbHVlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rh
c2gudGFrZSh0ZXN0SWQpCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByZXNwb25zZS5oZWFk
ZXJzLnNldChiIkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hlIikKKyAgICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpCisgICAgICAgIHJldHVy
biAiPGh0bWw+PGJvZHk+PHNjcmlwdD53aW5kb3cudmFsdWUgPSAnbm90aGluZyc7PC9zY3JpcHQ+
PC9ib2R5PjwvaHRtbD4iCisKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNvbnRy
b2wiLCBiIm5vLWNhY2hlIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlw
ZSIsIGIidGV4dC9hc2NpaSIpCisgICAgcmV0dXJuIHZhbHVlLmRlY29kZSgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZy
YW1lLXByZWxvYWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLXdvcmtlci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZGMwMDAyNGQ1MTliMjA4MDhiNmQ2OGExZDZjYjY0NTM2NTk5ZDJhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlm
cmFtZS1wcmVsb2FkLXdvcmtlci5qcwpAQCAtMCwwICsxLDM1IEBACitvbmluc3RhbGwgPSAoZXZl
bnQpID0+IHsKKyAgICBpZiAoc2VsZi5wb3J0KQorICAgICAgICByZXR1cm47CisgICAgZXZlbnQu
d2FpdFVudGlsKG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2VsZi5pbnN0YWxsaW5nUHJvbWlzZVJl
c29sdmUgPSByZXNvbHZlKSk7Cit9CisKK29ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgIGlm
IChldmVudC5kYXRhLnBvcnQpCisgICAgICAgIHNlbGYucG9ydCA9IGV2ZW50LmRhdGEucG9ydDsK
KyAgICBpZiAoc2VsZi5pbnN0YWxsaW5nUHJvbWlzZVJlc29sdmUpIHsKKyAgICAgICAgc2VsZi5p
bnN0YWxsaW5nUHJvbWlzZVJlc29sdmUoKTsKKyAgICAgICAgc2VsZi5pbnN0YWxsaW5nUHJvbWlz
ZVJlc29sdmUgPSBudWxsOworICAgIH0KKyAgICBpZiAoc2VsZi5mZXRjaGluZ1Byb21pc2VSZXNv
bHZlKSB7CisgICAgICAgIHNlbGYuZmV0Y2hpbmdQcm9taXNlUmVzb2x2ZSgpOworICAgICAgICBz
ZWxmLmZldGNoaW5nUHJvbWlzZVJlc29sdmUgPSBudWxsOworICAgIH0KK307CisKK29uYWN0aXZh
dGUgPSAoZXZlbnQpID0+IHsKKyAgICBzZWxmLnBvcnQucG9zdE1lc3NhZ2UoImFjdGl2YXRpbmci
KTsKK30KKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIChldmVudCkgPT4geworICAg
IHNlbGYucG9ydC5wb3N0TWVzc2FnZSgiZmV0Y2hpbmciKTsKKyAgICBjb25zdCBwcm9taXNlID0g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZWxmLmZldGNoaW5nUHJvbWlzZVJlc29sdmUgPSByZXNv
bHZlKTsKKyAgICBldmVudC5yZXNwb25kV2l0aChwcm9taXNlLnRoZW4oYXN5bmMgKCkgPT4gewor
ICAgICAgICBpZiAoIWV2ZW50LnByZWxvYWRSZXNwb25zZSkKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgUmVzcG9uc2UoIkZBSUw6IHByZWxvYWQgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBldmVudC5wcmVsb2FkUmVzcG9uc2U7CisgICAgICAgIGlmICghcmVz
cG9uc2UpCisgICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCJGQUlMOiBubyBwcmVsb2Fk
IHJlc3BvbnNlIik7CisgICAgICAgIHJldHVybiByZXNwb25zZTsKKyAgICB9KSk7Cit9KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci1pZnJhbWUtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQuaHR0cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjJhZGY5YjAxYzI5YTIwYWVkYTQ1MmUwNGNjNjBh
MWU3MzdkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorCisKK1BBU1MgU2V0dXAgYWN0aXZhdGluZyB3b3JrZXIKK1BBU1Mg
U2VydmljZSB3b3JrZXIgbG9hZCB1c2VzIHByZWxvYWQgaWYgYXZhaWxhYmxlIGFuZCBmZXRjaCBl
dmVudCB3YXMgbm90IGhhbmRsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZy
YW1lLXByZWxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmVkYmQ5NjFkMzYxOGI4ZDFmOGIy
YmE5ZjMzY2UzOWQzY2M5MTY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw3NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
b3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgYWN0
aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQtc2NyaXB0
LnB5P3Rva2VuPSIgKyB1dWlkOwordmFyIGZyYW1lOworY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNz
YWdlQ2hhbm5lbCgpOworCitmdW5jdGlvbiB3YWl0VW50aWxBY3RpdmF0aW5nKCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGNoYW5uZWwucG9ydDIub25t
ZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gImFj
dGl2YXRpbmciKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gdHJpZ2dlckFjdGl2YXRpb24oKQoreworICAgIGFjdGl2ZVdvcmtl
ci5wb3N0TWVzc2FnZSgiYWN0aXZhdGUiKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQg
ZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KKworICAgIGxldCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dl
YktpdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQtd29ya2Vy
LmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
KSB7CisgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC13b3JrZXIuanMiLCB7
IHNjb3BlIDogdXJsIH0pOworICAgIH0KKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24u
aW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVs
LnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0
aW5nKCk7CisgICAgaWYgKHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZCkKKyAgICAgICAg
YXdhaXQgcmVnaXN0cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkLmVuYWJsZSgpOworfSwgIlNldHVw
IGFjdGl2YXRpbmcgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIC8vIFNldCB2YWx1ZSB0byAnYmVmb3JlLW5hdmlnYXRpb24nCisgICAgYXdhaXQgZmV0Y2go
dXJsICsgIiZ2YWx1ZT1iZWZvcmUtbmF2aWdhdGlvbiIsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisK
KyAgICAvLyBTdGFydCBsb2FkaW5nIGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5nIHdvcmtlciwgc28g
b25seSBwcmVsb2FkIHdpbGwgc3RhcnQuCisgICAgY29uc3QgaWZyYW1lUHJvbWlzZSA9IHdpdGhJ
ZnJhbWUodXJsKTsKKworICAgIC8vIFdhaXQgYSBsaXR0bGUgYml0IHRvIGRvIGEgZmV0Y2guIFRo
aXMgZmV0Y2ggc2hvdWxkIGhhcHBlbiBhZnRlciB0aGUgZmV0Y2ggZXZlbnQsIHdoaWNoIGlzIHBl
bmRpbmcuCisgICAgLy8gSXQgc2hvdWxkIHJlY2VpdmUgJ2JlZm9yZS1uYXZpZ2F0aW9uJworICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDApKTsK
KyAgICBjb25zdCBmZXRjaFByb21pc2UgPSBmZXRjaCh1cmwpOworCisgICAgLy8gVHJpZ2dlciBm
ZXRjaCwgd2hpY2ggd2lsbCB0cmlnZ2VyIHRoZSBwcmVsb2FkIHJlc3BvbnNlLgorICAgIGFjdGl2
ZVdvcmtlci5wb3N0TWVzc2FnZSgiZmV0Y2giKTsKKworICAgIGNvbnN0IHJlc3BvbnNlID0gYXdh
aXQgZmV0Y2hQcm9taXNlOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgcmVzcG9uc2UudGV4dCgp
LCAiYmVmb3JlLW5hdmlnYXRpb24iKTsKKworICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgaWZyYW1l
UHJvbWlzZTsKKyAgICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cudmFsdWUsICJu
b3RoaW5nIik7Cit9LCAiU2VydmljZSB3b3JrZXIgbG9hZCB1c2VzIHByZWxvYWQgaWYgYXZhaWxh
YmxlIGFuZCBmZXRjaCBldmVudCB3YXMgbm90IGhhbmRsZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGRlMjUzMmRk
YzU5NzIyNTlkOTgzNWNhNzRkYzE5YzlkNDViNDkzYTUuLjQ5ODY5ZThmYjA3MzkzYmQ3YjU4MGVk
YzFmN2JiYjI4YjQ5M2QxYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKQEAg
LTU3LDcgKzU3LDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGluc3RhbGxpbmcKIFBBU1MgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB3YWl0aW5nCiBQQVNTIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWN0aXZlCi1GQUlM
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbmF2aWdhdGlv
blByZWxvYWQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHBy
b3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuYXZpZ2F0aW9u
UHJlbG9hZAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIHNjb3BlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgdXBkYXRlVmlhQ2FjaGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiB1cGRhdGUoKQpAQCAtNjgsNyArNjgsNyBAQCBQQVNTIFN0cmluZ2lm
aWNhdGlvbiBvZiByZWdpc3RyYXRpb25JbnN0YW5jZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpbnN0YWxsaW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ3YWl0aW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJhY3RpdmUiIHdpdGggdGhlIHByb3BlciB0eXBlCi1GQUlMIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm5hdmlnYXRpb25QcmVsb2FkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgorUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFj
ZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYXZpZ2F0aW9u
UHJlbG9hZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2NvcGUiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInVwZGF0ZVZpYUNhY2hlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJ1cGRhdGUoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKQEAgLTEwMiwxNiAr
MTAyLDE2IEBAIFBBU1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyIG11c3QgaW5oZXJpdCBwcm9wCiBQQVNTIFNlcnZpY2VXb3JrZXJDb250
YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9uY29udHJvbGxlcmNoYW5nZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2Vy
dmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25tZXNzYWdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFT
UyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm1lc3NhZ2VlcnJvciIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1G
QUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBv
YmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2lu
ZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW5hYmxlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlM
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkaXNhYmxlKCkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBzZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5nKSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGdl
dFN0YXRlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAor
UEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNT
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CitQQVNTIE5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKK1BBU1Mg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpCitQ
QVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkaXNhYmxl
KCkKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIHNl
dEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcpCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTdGF0ZSgpCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBQQVNTIENsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJu
ZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4YjI2NDUwM2Q1NTIyODZiNzdkYTRjMjNmOTM5
MzI2N2VkY2U3OGZjLi4zMDQ4Yjc5ZWNhNmE1ODQzY2NiNzUxMzk5MjY3ODdhNjVmZjg0NDEwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTgyLDE2
ICs4MiwxNiBAQCBQQVNTIFNlcnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJvcAogUEFTUyBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbmNvbnRyb2xsZXJjaGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNl
cnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubWVzc2FnZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBB
U1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25tZXNzYWdlZXJyb3IiIHdpdGggdGhlIHByb3Bl
ciB0eXBlCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwot
RkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIg
ZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJ
TCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJsZSgp
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZykgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNz
aW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBn
ZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
K1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFT
UyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNT
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFibGUoKQor
UEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJs
ZSgpCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
ZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5nKQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3RhdGUoKQogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAogUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAogUEFTUyBXaW5kb3dDbGllbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2Jyb2tlbi1jaHVua2VkLWVuY29kaW5nLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9icm9r
ZW4tY2h1bmtlZC1lbmNvZGluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1ZmE2
YTZmY2U4NTdjMzY4NGNkYjI1Njc2ZDM3OTVlM2E0Nzg5OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9icm9rZW4tY2h1bmtlZC1lbmNvZGlu
Zy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKKworRkFJTCBGZXRjaEV2ZW50
I3ByZWxvYWRSZXNwb25zZSByZXNvbHZlcyBldmVuIGlmIHRoZSBib2R5IGlzIHNlbnQgd2l0aCBi
cm9rZW4gY2h1bmtlZCBlbmNvZGluZy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlBBU1M6IHBy
ZWxvYWRSZXNwb25zZSByZXNvbHZlZCIgYnV0IGdvdCAiRkFJTDogcHJlbG9hZFJlc3BvbnNlIHJl
amVjdGVkIgorRkFJTCBGZXRjaEV2ZW50I3ByZWxvYWRSZXNwb25zZSByZXNvbHZlcyBldmVuIGlm
IHRoZSBib2R5IGlzIHNlbnQgd2l0aCBicm9rZW4gY2h1bmtlZCBlbmNvZGluZyB3aXRoIHNvbWUg
ZGVsYXlzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJQQVNTOiBwcmVsb2FkUmVzcG9uc2UgcmVz
b2x2ZWQiIGJ1dCBnb3QgIkZBSUw6IHByZWxvYWRSZXNwb25zZSByZWplY3RlZCIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2NodW5rZWQtZW5jb2Rp
bmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVs
b2FkL2NodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZjAx
NjI3YzhlMzg5NGRlNzA3MzMzMTAxMmFmYjRmY2QxMjU2YmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvY2h1bmtlZC1lbmNvZGluZy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBOYXZpZ2F0aW9uIFByZWxv
YWQgbXVzdCB3b3JrIHdpdGggY2h1bmtlZCBlbmNvZGluZy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2VtcHR5LXByZWxvYWQtcmVzcG9uc2UtYm9k
eS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40Y2RhMjhjZmNhYTVlMmIxNDA1MWU5NWNmMmI5M2YyNGM3MDM5NzRmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2VtcHR5LXByZWxv
YWQtcmVzcG9uc2UtYm9keS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKwor
UEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgZW1wdHkgcmVzcG9uc2UgYm9keS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZ2V0LXN0
YXRlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWExZTlkMGFmMTk5ZjIzM2JjMzgx
Mjg5NTRkODg5YjVmYTNhZDIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACisKK1BBU1MgZ2V0U3RhdGUKK1BBU1MgZ2V0U3RhdGUgZnJvbSBhIHdvcmtlcgorUEFT
UyBubyBhY3RpdmUgd29ya2VyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmln
YXRpb24tcHJlbG9hZC9uYXZpZ2F0aW9uUHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NzU2NTk3NTA4MTczNWNhYzJmMjFhNjFmNDNkNzYx
MTY3NjgzODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9u
LXByZWxvYWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIFRoZSBuYXZpZ2F0aW9uUHJlbG9hZCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4g
c2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uJ3MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG9i
amVjdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2Fk
L3JlZGlyZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU1MWRj
NmI2MmE3NWY1OTY1MWNiYjc4MDhhM2ZiNTNhM2IxNmNkNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACisKKworUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgcmVkaXJl
Y3QgcmVzcG9uc2UuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBuby1sb2NhdGlvbiByZWRpcmVj
dCByZXNwb25zZS4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIG5vLWxvY2F0aW9uIHJlZGlyZWN0
IHJlc3BvbnNlIHdpdGggYm9keS4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIHJlZGlyZWN0IHRv
IHRoZSBzYW1lIHNjb3BlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0
aW9uLXByZWxvYWQvcmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA2YjNkYzBmNGNiZDI3ZjA2NGE1Y2M1ZDA0M2UzNDA3Y2YyN2I3
NDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvcmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKwor
CitGQUlMIE5hdmlnYXRpb24gUHJlbG9hZCByZXF1ZXN0IGhlYWRlcnMuIGFzc2VydF90cnVlOiBU
aGUgTmF2aWdhdGlvbiBQcmVsb2FkIHJlcXVlc3QgbXVzdCBzcGVjaWZ5IGFuICJVcGdyYWRlLUlu
c2VjdXJlLVJlcXVlc3RzIiBoZWFkZXIuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZS10aW1p
bmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVs
b2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyMTJl
MDEwOTNlNmRkODg2MTI0YTExOTE2MWVhODI1OGVmMmFmOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZS10aW1pbmcuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK0ZBSUwgTmF2aWdhdGlvbiBQcmVsb2Fk
IFJlc291cmNlIFRpbWluZy4gYXNzZXJ0X2dyZWF0ZXJfdGhhbjogdHJhbnNmZXJTaXplIG11c3Qg
Z3JlYXRlciB0aGVuIGVuY29kZWRCb2R5U2l6ZS4gZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0
aGFuIDAgYnV0IGdvdCAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9zYW1lc2l0ZS1jb29raWVzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9zYW1lc2l0ZS1jb29raWVzLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MWIwMzdhN2FlZDY4MmRlZjVkODczOGFkZjRkOThlMjJlNDgz
MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVs
b2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAor
CisKK1BBU1MgU2V0IHVwIGEgc2VydmljZSB3b3JrZXIgZm9yIG5hdmlnYXRpb24gcHJlbG9hZCB0
ZXN0cy4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIGZvciBzYW1lIHNpdGUgY29va2llcyAoTm9u
ZSkuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBmb3Igc2FtZSBzaXRlIGNvb2tpZXMgKFN0cmlj
dCkuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBmb3Igc2FtZSBzaXRlIGNvb2tpZXMgKExheCku
CitQQVNTIFVucmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KKwo=
</data>
<flag name="commit-queue"
          id="470790"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445572</attachid>
            <date>2021-12-01 06:57:57 -0800</date>
            <delta_ts>2021-12-01 23:34:06 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233523-20211201155752.patch</filename>
            <type>text/plain</type>
            <size>130682</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IGMxMWZiZTA4ZjA3M2RiZmNhN2UyMTI2
NzFlZWYxMjk4NGRmNTc5YjcuLmZlMjY1MjlmNmY3NmUyNDlkYTllNTI0ZWQzMTJmMWQ1ZDI1ZWM3
Y2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTEtMjkgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogU2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgor
CiAyMDIxLTEyLTAxICBNYXJ0aW4gUm9iaW5zb24gIDxtcm9iaW5zb25Ad2Via2l0Lm9yZz4KIAog
ICAgICAgICBBZGQgYSBydW50aW1lIGZsYWcgdG8gZW5hYmxlIENTUyBUcmFuc2Zvcm1zIExldmVs
IDIgc3BlYyBjb21wbGlhbnQgYmVoYXZpb3IKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBiZTM0YzFjYjU0Zjk1Mjc2
NmZjYjEzOGQ1MmEyNWZlNjg2NmVmMzg4Li5iM2JjYzJiOGMyZjRlMTM5NDllYzg2Y2NmNzNiYTFj
OGFkMzZjYjE4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNjUgQEAKKzIwMjEtMTItMDEgIFlvdWVu
biBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzZXJ2aWNlIHdvcmtlciBuYXZpZ2F0aW9uIHByZWxvYWQgSURM
IGFuZCBpbXBsZW1lbnRhdGlvbi4KKyAgICAgICAgVGhpcyBpbmNsdWRlcyBpbiBwYXJ0aWN1bGFy
IHN0YXRlIG1hbmFnZW1lbnQgKHJlYWQgYW5kIHdyaXRlKSBvbiBBUEkgc2lkZSBhbmQgU1dTZXJ2
ZXIgc2lkZS4KKyAgICAgICAgVGhpcyBzdGF0ZSBpcyB1c2VkIGluIFdLMiBuZXR3b3JrIGNvZGUg
cGF0aCB0byBlbmFibGUgb3Igbm90IHByZWxvYWRzLgorICAgICAgICBXZSBhcmUgbm90IHlldCBw
ZXJzaXN0aW5nIHByZWxvYWQgcmVnaXN0cmF0aW9uIHN0YXRlIG9uIGRpc2ssIHRoaXMgd2lsbCBi
ZSBkb25lIGFzIGEgZm9sbG93LXVwLgorCisgICAgICAgIFRoZSBGZXRjaEV2ZW50IHByZWxvYWRS
ZXNwb25zZSByZXR1cm5zIGEgcHJvbWlzZSB3aGljaCBoYXMgZWl0aGVyIHVuZGVmaW5lZCBvciBh
IHJlc3BvbnNlIGFzIHJlc29sdmVkIHZhbHVlLgorICAgICAgICBJbiBjYXNlIHRoZXJlIGlzIGEg
cHJlbG9hZGVyIGZvciB0aGF0IEZldGNoRXZlbnQsIHdlIHN0YXJ0IHRoZSBsb2FkIHdoZW4gcHJl
bG9hZFJlc3BvbnNlIGlzIHJldHJpZXZlZCBieSBKUy4KKworICAgICAgICBUbyBpbXBsZW1lbnQg
dGhlIHJldHJpZXZhbCBvZiB0aGUgcHJlbG9hZCByZXNwb25zZSwgd2UgdXNlIEZldGNoUmVzcG9u
c2U6OmZldGNoLgorICAgICAgICBUbyBkbyBzbywgd2UgYWRkIGFuIGluaXRpYXRvciBwYXJhbWV0
ZXIgYXMgdGhpcyBwcmVsb2FkIGluaXRpYXRvciBpcyB0aGUgbmF2aWdhdGlvbiB0YXNrIGFuZCBu
b3QgYSBmZXRjaCBjYWxsLgorCisgICAgICAgIENvdmVyZWQgYnkgZW5hYmxlZCB0ZXN0cy4KKwor
ICAgICAgICBUZXN0czogaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlm
cmFtZS1wcmVsb2FkLmh0dHBzLmh0bWwuCisKKyAgICAgICAgKiBDTWFrZUxpc3RzLnR4dDoKKyAg
ICAgICAgKiBEZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2
ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0OgorICAgICAgICAqIERlcml2ZWRTb3VyY2VzLm1h
a2U6CisgICAgICAgICogTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHA6CisgICAgICAgICogTW9k
dWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHA6CisgICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRj
aExvYWRlci5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHA6Cisg
ICAgICAgICogTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmg6CisgICAgICAgICogTW9kdWxl
cy9mZXRjaC9XaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwOgorICAgICAgICAqIFNv
dXJjZXMudHh0OgorICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoK
KyAgICAgICAgKiBiaW5kaW5ncy9qcy9ET01Qcm9taXNlUHJveHkuaDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmg6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5j
cHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGw6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNl
L05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHA6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMv
c2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaDogQWRkZWQuCisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5pZGw6IEFkZGVkLgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg6IEFkZGVkLgorICAg
ICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbDogQWRkZWQu
CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oOgorICAgICAg
ICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oOgorICAgICAgICAqIHdv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmlkbDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmg6CisgICAgICAgICogd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaDoKKyAgICAgICAgKiB3
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmNwcDoKKyAgICAgICAg
KiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmg6CisgICAgICAg
ICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcDoK
KyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJv
eHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0
aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0
cmF0aW9uLmg6CisKIDIwMjEtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIFJldXNlIG5hdmlnYXRpb24gcHJlbG9hZCBpZiBzZXJ2aWNlIHdvcmtlciBp
cyBmZXRjaGluZyB0aGUgY29ycmVzcG9uZGluZyBuYXZpZ2F0aW9uIHJlcXVlc3QKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5k
ZXggMzU5ZmRkY2MzYmM4NTJhODM0ZjEzOTk5MjExM2M5YzZmNWQxMTgyNC4uNjQ2ZDE5M2Q5YmJh
YmNmNjAzOTc5N2E5OTAxODNkZmQ4MGM0YjJlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyOCBAQAor
MjAyMS0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAg
QWRkIHN1cHBvcnQgZm9yIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgU2VydmljZVdvcmtl
ck5hdmlnYXRpb25QcmVsb2FkZXIgd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAgICAg
V2Ugb25seSBzdGFydCBhcyBzb29uIGFzIGNyZWF0ZWQgdGhlIHByZWxvYWQgaW4gY2FzZSBvZiBt
YWluIGZyYW1lIG5hdmlnYXRpb24gd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAgICAg
VXBkYXRlIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyIHRvIGRpZmZlcmVudGlhdGUg
ZXhwbGljaXQgcHJlbG9hZHMgKGVuYWJsZWQgYnkgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyKSBm
cm9tIGltcGxpY3QgcHJlbG9hZHMuCisgICAgICAgIEltcGxpY3QgcHJlbG9hZHMgY2FuIGJlIHVz
ZWQgd2hlbiBmZXRjaCBldmVudCBpcyBub3QgaGFuZGxlZCwgd2hpY2ggaXMgbm90IGd1YXJhbnRl
ZWQgZm9yIGV4cGxpY2l0IHByZWxvYWRzLCBnaXZlbiB0aGUgU2VydmljZS1Xb3JrZXItTmF2aWdh
dGlvbi1QcmVsb2FkIGhlYWRlci4KKyAgICAgICAgQWRkIElQQyB0byByZWFkIGFuZCBzZXQgcHJl
bG9hZCBzdGF0ZSAoZW5hYmxlZCBhbmQgaGVhZGVyIHZhbHVlKS4KKworICAgICAgICAqIE5ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA6CisgICAg
ICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAgKiBO
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgorICAg
ICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENv
bm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAyMS0xMi0wMSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgUmV1c2UgbmF2aWdh
dGlvbiBwcmVsb2FkIGlmIHNlcnZpY2Ugd29ya2VyIGlzIGZldGNoaW5nIHRoZSBjb3JyZXNwb25k
aW5nIG5hdmlnYXRpb24gcmVxdWVzdApkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1By
ZWZlcmVuY2VzL1dlYlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1Nj
cmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCA3
ZDQ1ODlkODdiMTg0YTFiMmY5NTMyMmZiMzlkOWJmYzJiZTNhMzg5Li41MjRmMGY3YzE3YzIwOTFl
MDQ3MjFiOWNkZDE1YjExNDIwMDFhNjlmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2Uv
V1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApA
QCAtMTI1Niw2ICsxMjU2LDE5IEBAIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAgICAgICAiRU5BQkxF
KEVYUEVSSU1FTlRBTF9GRUFUVVJFUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BF
KSkiOiB0cnVlCiAgICAgICBkZWZhdWx0OiBmYWxzZQogCitTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRFbmFibGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2Vy
dmljZSBXb3JrZXIgTmF2aWdhdGlvbiBQcmVsb2FkIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRp
b246ICJFbmFibGUgU2VydmljZSBXb3JrZXIgTmF2aWdhdGlvbiBQcmVsb2FkIEFQSSIKKyAgY29u
ZGl0aW9uOiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJD
b3JlOgorICAgICAgZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZh
dWx0OiBmYWxzZQorICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIFNoYXJlZFdv
cmtlckVuYWJsZWQ6CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTaGFyZWRX
b3JrZXIiCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJj
ZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CmluZGV4IGI4MTNmZWViYjU5YTExYjNjNmI3ZTg4NDJh
NjNhNzFiYWY5ZjA2ODguLjdmYjVjMDRlYzY1OTUxNTA5MjdlOTQ2ZjMwODZmMDU5OWNiN2ZkMGYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9X
ZWJDb3JlL0NNYWtlTGlzdHMudHh0CkBAIC0xMjI0LDYgKzEyMjQsOCBAQCBzZXQoV2ViQ29yZV9O
T05fU1ZHX0lETF9GSUxFUwogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0
LmlkbAogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAg
IHdvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9OYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsCisgICAgd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25Q
cmVsb2FkU3RhdGUuaWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsCiAg
ICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaWRsCiAgICAgd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnRUeXBlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rl
cml2ZWRTb3VyY2VzLWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWUzMTk1YWM0ZjViOTE3N2YwMmZk
Njg0MzUwYTkwMGI2NDJmOTk4YS4uYTgzMjg5N2RiMDY3ZjZiMmE0MWM4OTY3MDhjY2ZkMjEyODFl
ZDY2YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNm
aWxlbGlzdAorKysgYi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVs
aXN0CkBAIC0xNjI0LDYgKzE2MjQsOCBAQCAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50LmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL0V4dGVu
ZGFibGVFdmVudEluaXQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5k
YWJsZU1lc3NhZ2VFdmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9GZXRj
aEV2ZW50LmlkbAorJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVs
b2FkTWFuYWdlci5pZGwKKyQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlLmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1B1c2hFdmVu
dC5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9QdXNoRXZlbnRJbml0LmlkbAog
JChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1B1c2hNZXNzYWdlRGF0YS5pZGwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIv
U291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTM0
YjRiNjM0NmFjZDk5MzVmM2IzOWFmOTE4NGFhNGNjNjBmMmE0OS4uOWJkNDg0MTE1NTZjMGQ0NzVi
ZjJlN2YyMDhkM2E4NDUyMmUzYmE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNv
dXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKQEAgLTE2MzEsNiArMTYzMSwxMCBAQCAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNwcAog
JChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJl
Y29yZC5oCiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05h
bWVkTm9kZU1hcC5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJD
b3JlL0pTTmFtZWROb2RlTWFwLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNl
cy9XZWJDb3JlL0pTTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcAorJChCVUlMVF9QUk9EVUNU
U19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIu
aAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0
aW9uUHJlbG9hZFN0YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2Vz
L1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5jcHAKICQoQlVJTFRf
UFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5o
CiAkKEJVSUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRv
citDbGlwYm9hcmQuY3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNl
cy5tYWtlIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ODJkZWQw
MjY2Mzc5MmE0ZGEyODNhZjY2YmZhNDc4NmUxMGE5ZTFjLi4yZTY3ZDFhNGIwYjYzN2UyN2JlM2Fl
NDkzNTAyOTVhZTk3NjM4MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291
cmNlcy5tYWtlCisrKyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0
NDYsNiArMTQ0Niw4IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS93b3Jr
ZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29y
a2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUp
L3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS93b3JrZXJz
L3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCBcCisgICAgJChXZWJDb3JlKS93
b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29y
ZSkvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudFR5cGUuaWRsIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNt
YWtlCmluZGV4IGJmODk1NjE4MmJmYzIyMTNlNTRiYWMzMzA0OTQ1ZTNiNmIyMjRlYzQuLjg4OTUw
ZmY3MzYzZDhmNDQyZTNkMzU5MDBkNzcwZjg1YmYwNmQ4M2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL0hlYWRlcnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpA
QCAtMTc2NSw2ICsxNzY1LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVS
UwogICAgIHdvcmtlcnMvV29ya2VyVGhyZWFkVHlwZS5oCiAgICAgd29ya2Vycy9Xb3JrZXJUeXBl
LmgKIAorICAgIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKICAgICB3
b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKICAgICB3b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNsaWVudERhdGEuaAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyQ2xpZW50UXVlcnlPcHRpb25zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVs
ZXMvY2FjaGUvRE9NQ2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01D
YWNoZS5jcHAKaW5kZXggOTA5OGUwNWFmNGM4NDMzYjNkMTNiMzk1NjUwNjRhOWMxNTQzMzg3ZC4u
YmRjZDMyYjMyZWM2MmJjZDFjOWE2Y2YyODZjNWZiMDE2NDE1OGQ3OSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKQEAgLTMwMiw3ICszMDIsNyBAQCB2b2lkIERP
TUNhY2hlOjphZGRBbGwoVmVjdG9yPFJlcXVlc3RJbmZvPiYmIGluZm9zLCBET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcgogICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAg
ICAgdGFza0hhbmRsZXItPmFkZFJlc3BvbnNlQm9keShyZWNvcmRQb3NpdGlvbiwgcmVzcG9uc2Us
IFdURk1vdmUoZGF0YSkpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0pOworICAgICAgICB9
LCAiZmV0Y2giX3MpOwogICAgIH0KIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9k
dWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmNwcAppbmRleCBlOTg5MTQxYjc3YjhlM2VlNjg5MWY1ZTQ1YmUwYzMyZTk5
ODQwNGJkLi5mYzU1Y2M3ZDgzZDhiYzExZjA4NTRkYzNjZmQ4NTA5N2EzMWYxMGY2IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoTG9hZGVyLmNwcApAQCAtODMsMTMgKzgz
LDEzIEBAIHZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0TG9hZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0
aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgVVJMCiAgICAgbV9pc1N0YXJ0ZWQgPSBtX2xvYWRl
cjsKIH0KIAotdm9pZCBGZXRjaExvYWRlcjo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYg
Y29udGV4dCwgY29uc3QgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0KQordm9pZCBGZXRjaExvYWRlcjo6
c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmV0Y2hSZXF1ZXN0
JiByZXF1ZXN0LCBjb25zdCBTdHJpbmcmIGluaXRpYXRvcikKIHsKICAgICBSZXNvdXJjZUxvYWRl
ck9wdGlvbnMgcmVzb3VyY2VMb2FkZXJPcHRpb25zID0gcmVxdWVzdC5mZXRjaE9wdGlvbnMoKTsK
ICAgICByZXNvdXJjZUxvYWRlck9wdGlvbnMucHJlZmxpZ2h0UG9saWN5ID0gUHJlZmxpZ2h0UG9s
aWN5OjpDb25zaWRlcjsKICAgICBUaHJlYWRhYmxlTG9hZGVyT3B0aW9ucyBvcHRpb25zKHJlc291
cmNlTG9hZGVyT3B0aW9ucywKICAgICAgICAgY29udGV4dC5zaG91bGRCeXBhc3NNYWluV29ybGRD
b250ZW50U2VjdXJpdHlQb2xpY3koKSA/IENvbnRlbnRTZWN1cml0eVBvbGljeUVuZm9yY2VtZW50
OjpEb05vdEVuZm9yY2UgOiBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RW5mb3Jj
ZUNvbm5lY3RTcmNEaXJlY3RpdmUsCi0gICAgICAgIFN0cmluZyhjYWNoZWRSZXNvdXJjZVJlcXVl
c3RJbml0aWF0b3JzKCkuZmV0Y2gpLAorICAgICAgICBTdHJpbmcoaW5pdGlhdG9yKSwKICAgICAg
ICAgUmVzcG9uc2VGaWx0ZXJpbmdQb2xpY3k6OkRpc2FibGUpOwogICAgIG9wdGlvbnMuc2VuZExv
YWRDYWxsYmFja3MgPSBTZW5kQ2FsbGJhY2tQb2xpY3k6OlNlbmRDYWxsYmFja3M7CiAgICAgb3B0
aW9ucy5kYXRhQnVmZmVyaW5nUG9saWN5ID0gRGF0YUJ1ZmZlcmluZ1BvbGljeTo6RG9Ob3RCdWZm
ZXJEYXRhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExv
YWRlci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5oCmluZGV4
IDQwNzI4ZDI1N2U4NDNjNDExNDg2ZmQ2ZTQzODA3MDQ0MzFhY2ZjYTIuLjJmOTBmMGVjM2ZmOTA1
YTI2MjMxYzg0YzcyYTdhMTg2Y2Q0YmZlODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoTG9hZGVyLmgKQEAgLTQ4LDcgKzQ4LDcgQEAgcHVibGljOgogCiAgICAgUmVmUHRy
PFNoYXJlZEJ1ZmZlcj4gc3RhcnRTdHJlYW1pbmcoKTsKIAotICAgIHZvaWQgc3RhcnQoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEZldGNoUmVxdWVzdCYpOworICAgIHZvaWQgc3RhcnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEZldGNoUmVxdWVzdCYsIGNvbnN0IFN0cmlu
ZyYpOwogICAgIHZvaWQgc3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEJsb2Im
KTsKICAgICB2b2lkIHN0YXJ0TG9hZGluZ0Jsb2JVUkwoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYs
IGNvbnN0IFVSTCYgYmxvYlVSTCk7CiAgICAgdm9pZCBzdG9wKCk7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcAppbmRleCA1ZDQ1MmNlMjg4Y2VkYzAy
OTMyZDkzOTZmNjQ2MDA0NmU0NmJkNTM2Li40ZGY4NDI2YzcxOGJhMTZlY2YwYTQ3ZTczZTkwMGQz
Zjg0OGY2NGYyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNo
UmVzcG9uc2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNw
b25zZS5jcHAKQEAgLTIyNyw3ICsyMjcsNyBAQCB2b2lkIEZldGNoUmVzcG9uc2U6OmFkZEFib3J0
U3RlcHMoUmVmPEFib3J0U2lnbmFsPiYmIHNpZ25hbCkKICAgICB9KTsKIH0KIAotdm9pZCBGZXRj
aFJlc3BvbnNlOjpmZXRjaChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBGZXRjaFJl
cXVlc3QmIHJlcXVlc3QsIE5vdGlmaWNhdGlvbkNhbGxiYWNrJiYgcmVzcG9uc2VDYWxsYmFjaykK
K3ZvaWQgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4
dCwgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0LCBOb3RpZmljYXRpb25DYWxsYmFjayYmIHJlc3BvbnNl
Q2FsbGJhY2ssIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKQogewogICAgIGlmIChyZXF1ZXN0LnNp
Z25hbCgpLmFib3J0ZWQoKSkgewogICAgICAgICByZXNwb25zZUNhbGxiYWNrKEV4Y2VwdGlvbiB7
IEFib3J0RXJyb3IsICJSZXF1ZXN0IHNpZ25hbCBpcyBhYm9ydGVkIl9zIH0pOwpAQCAtMjQ5LDcg
KzI0OSw3IEBAIHZvaWQgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4
dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1ZXN0CiAgICAgcmVzcG9uc2UtPmFkZEFib3J0
U3RlcHMocmVxdWVzdC5zaWduYWwoKSk7CiAKICAgICByZXNwb25zZS0+bV9ib2R5TG9hZGVyID0g
bWFrZVVuaXF1ZTxCb2R5TG9hZGVyPihyZXNwb25zZS5nZXQoKSwgV1RGTW92ZShyZXNwb25zZUNh
bGxiYWNrKSk7Ci0gICAgaWYgKCFyZXNwb25zZS0+bV9ib2R5TG9hZGVyLT5zdGFydChjb250ZXh0
LCByZXF1ZXN0KSkKKyAgICBpZiAoIXJlc3BvbnNlLT5tX2JvZHlMb2FkZXItPnN0YXJ0KGNvbnRl
eHQsIHJlcXVlc3QsIGluaXRpYXRvcikpCiAgICAgICAgIHJlc3BvbnNlLT5tX2JvZHlMb2FkZXIg
PSBudWxscHRyOwogfQogCkBAIC0zNzcsMTEgKzM3NywxMSBAQCB2b2lkIEZldGNoUmVzcG9uc2U6
OkJvZHlMb2FkZXI6OmRpZFJlY2VpdmVEYXRhKGNvbnN0IHVpbnQ4X3QqIGRhdGEsIHNpemVfdCBz
aXplKQogICAgIHNvdXJjZS5yZXNvbHZlUHVsbFByb21pc2UoKTsKIH0KIAotYm9vbCBGZXRjaFJl
c3BvbnNlOjpCb2R5TG9hZGVyOjpzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0
LCBjb25zdCBGZXRjaFJlcXVlc3QmIHJlcXVlc3QpCitib29sIEZldGNoUmVzcG9uc2U6OkJvZHlM
b2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZldGNo
UmVxdWVzdCYgcmVxdWVzdCwgY29uc3QgU3RyaW5nJiBpbml0aWF0b3IpCiB7CiAgICAgbV9jcmVk
ZW50aWFscyA9IHJlcXVlc3QuZmV0Y2hPcHRpb25zKCkuY3JlZGVudGlhbHM7CiAgICAgbV9sb2Fk
ZXIgPSBtYWtlVW5pcXVlPEZldGNoTG9hZGVyPigqdGhpcywgJm1fcmVzcG9uc2UubV9ib2R5LT5j
b25zdW1lcigpKTsKLSAgICBtX2xvYWRlci0+c3RhcnQoY29udGV4dCwgcmVxdWVzdCk7CisgICAg
bV9sb2FkZXItPnN0YXJ0KGNvbnRleHQsIHJlcXVlc3QsIGluaXRpYXRvcik7CiAgICAgcmV0dXJu
IG1fbG9hZGVyLT5pc1N0YXJ0ZWQoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL0ZldGNoUmVzcG9uc2UuaAppbmRleCBiYzU4NTRmOWI5NjZmYjYzMjlkMTZmZGU2MThjY2Vi
MWQ4Yzk0Y2E5Li4zNDIwYzZhMzhkM2MzZjZlMmZkYjY2NzVlOGE0ZDEzNjViZjVhNWJiIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuaApAQCAtNjQsNyAr
NjQsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEV4Y2VwdGlvbk9yPFJlZjxGZXRjaFJlc3BvbnNl
Pj4gcmVkaXJlY3QoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IFN0cmluZyYgdXJsLCBp
bnQgc3RhdHVzKTsKIAogICAgIHVzaW5nIE5vdGlmaWNhdGlvbkNhbGxiYWNrID0gRnVuY3Rpb248
dm9pZChFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlJj4mJik+OwotICAgIHN0YXRpYyB2b2lkIGZl
dGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBGZXRjaFJlcXVlc3QmLCBOb3RpZmljYXRpb25D
YWxsYmFjayYmKTsKKyAgICBzdGF0aWMgdm9pZCBmZXRjaChTY3JpcHRFeGVjdXRpb25Db250ZXh0
JiwgRmV0Y2hSZXF1ZXN0JiwgTm90aWZpY2F0aW9uQ2FsbGJhY2smJiwgY29uc3QgU3RyaW5nJiBp
bml0aWF0b3IpOwogCiAgICAgdm9pZCBzdGFydENvbnN1bWluZ1N0cmVhbSh1bnNpZ25lZCk7CiAg
ICAgdm9pZCBjb25zdW1lQ2h1bmsoUmVmPEpTQzo6VWludDhBcnJheT4mJik7CkBAIC0xMjksNyAr
MTI5LDcgQEAgcHJpdmF0ZToKICAgICAgICAgQm9keUxvYWRlcihGZXRjaFJlc3BvbnNlJiwgTm90
aWZpY2F0aW9uQ2FsbGJhY2smJik7CiAgICAgICAgIH5Cb2R5TG9hZGVyKCk7CiAKLSAgICAgICAg
Ym9vbCBzdGFydChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgY29uc3QgRmV0Y2hSZXF1ZXN0Jik7
CisgICAgICAgIGJvb2wgc3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEZldGNo
UmVxdWVzdCYsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKTsKICAgICAgICAgdm9pZCBzdG9wKCk7
CiAKICAgICAgICAgdm9pZCBjb25zdW1lRGF0YUJ5Q2h1bmsoQ29uc3VtZURhdGFCeUNodW5rQ2Fs
bGJhY2smJik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL1dpbmRv
d09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2Zl
dGNoL1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKaW5kZXggOWMxY2Q4ZDBmZjc1
YWU5ZWQ0OTRjMjY1OTRlN2M3NjdjNGQyN2IxYy4uM2JmMTRmYmZmODJmMDFiYzJkYzJkYWUyMjc0
MTg0NDcwMmY0MWQwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9X
aW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvZmV0Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcApAQCAtNjIsNyAr
NjIsNyBAQCB2b2lkIFdpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaDo6ZmV0Y2goRE9NV2lu
ZG93JiB3aW5kb3csIEZldGNoUmVxdWVzdDo6SW5mbwogCiAgICAgICAgIFVzZXJHZXN0dXJlSW5k
aWNhdG9yIGdlc3R1cmVJbmRpY2F0b3IodXNlckdlc3R1cmVUb2tlbiwgVXNlckdlc3R1cmVUb2tl
bjo6R2VzdHVyZVNjb3BlOjpNZWRpYU9ubHksIFVzZXJHZXN0dXJlVG9rZW46OklzUHJvcGFnYXRl
ZEZyb21GZXRjaDo6WWVzKTsKICAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQp
KTsKLSAgICB9KTsKKyAgICB9LCAiZmV0Y2giX3MpOwogfQogCiB2b2lkIFdpbmRvd09yV29ya2Vy
R2xvYmFsU2NvcGVGZXRjaDo6ZmV0Y2goV29ya2VyR2xvYmFsU2NvcGUmIHNjb3BlLCBGZXRjaFJl
cXVlc3Q6OkluZm8mJiBpbnB1dCwgRmV0Y2hSZXF1ZXN0OjpJbml0JiYgaW5pdCwgUmVmPERlZmVy
cmVkUHJvbWlzZT4mJiBkZWZlcnJlZCkKQEAgLTc3LDcgKzc3LDcgQEAgdm9pZCBXaW5kb3dPcldv
cmtlckdsb2JhbFNjb3BlRmV0Y2g6OmZldGNoKFdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgRmV0
Y2hSZXF1ZXMKIAogICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKHNjb3BlLCByZXF1ZXN0LnJlbGVh
c2VSZXR1cm5WYWx1ZSgpLmdldCgpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKEV4Y2Vw
dGlvbk9yPEZldGNoUmVzcG9uc2UmPiYmIHJlc3VsdCkgbXV0YWJsZSB7CiAgICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgfSwgImZldGNoIl9zKTsK
IH0KIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQgYi9Tb3VyY2Uv
V2ViQ29yZS9Tb3VyY2VzLnR4dAppbmRleCA3YWY1ZWI0Nzc3NDYxYjNlNGM3MmM1ZTczMWVjZGEw
MTRmOTczODU5Li44NmMyNmNmYzM5ZmEzNzVjOTExMzhhMTE3Mzg0MzU0MTBlOWFmNGYxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Tb3VyY2VzLnR4dAorKysgYi9Tb3VyY2UvV2ViQ29yZS9T
b3VyY2VzLnR4dApAQCAtMjc0Miw2ICsyNzQyLDcgQEAgd29ya2Vycy9Xb3JrZXJUaHJlYWQuY3Bw
CiB3b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2ZW50LmNwcAogd29ya2Vycy9zZXJ2aWNlL0V4
dGVuZGFibGVNZXNzYWdlRXZlbnQuY3BwCiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAK
K3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwCiB3b3JrZXJzL3Nl
cnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmNwcAogd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3Jr
ZXIuY3BwCiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNsaWVudC5jcHAKQEAgLTM0Nzcs
NiArMzQ3OCw4IEBAIEpTTmF2aWdhdG9yR1BVLmNwcAogSlNOb2RlLmNwcAogSlNOb2RlRmlsdGVy
LmNwcAogSlNDdXN0b21YUGF0aE5TUmVzb2x2ZXIuY3BwCitKU05hdmlnYXRpb25QcmVsb2FkTWFu
YWdlci5jcHAKK0pTTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5jcHAKIEpTTm9kZUl0ZXJhdG9yLmNw
cAogSlNOb2RlTGlzdC5jcHAKIEpTTm9uRG9jdW1lbnRUeXBlQ2hpbGROb2RlLmNwcApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDYw
ZTQyODgzOTc1NjhkNDUwZDEyZjE4NWI4ZjZmZWE2MDY2NGUxNzguLmU3N2M0ZTRkYTkyMDU1ZGM4
M2QzYmI5MDcyYzliMmNjZDQ2NmEwYWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNv
cmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3Jl
Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTExMDQsNiArMTEwNCw3IEBACiAJCTQxNEI3
RkFEMjREODFDQzEwMDMzRDQ0MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNEI3RkFCMjREODFD
OEYwMDMzRDQ0MiAvKiBNZWRpYVJlY29yZGVyUHJpdmF0ZU9wdGlvbnMuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTRCODIwNTFENkRGMEU1MDA3
N0VCRTMgLyogU3RydWN0dXJlZENsb25lLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA0MTRCODIwMzFENkRGMEQ5MDA3N0VCRTMgLyogU3RydWN0dXJlZENs
b25lLmggKi87IH07CiAJCTQxNERFREU3MUY5RkU5MUUwMDQ3QzQwRCAvKiBFbXB0eUZyYW1lTG9h
ZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYg
PSA0MTRERURFNTFGOUZFOTE1MDA0N0M0MEQgLyogRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oICov
OyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CisJCTQxNTAzNzkz
Mjc0RkRDOUIwMDM1NEFCQyAvKiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUyRjE5QjI3NEZCMEE2MDBBMDg5
RUUgLyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCTQxNTA3MTU4MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxl
Y3RvckZpbHRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNDE1MDcxNTYxNjg1MDY3MzAwQzNDN0IzIC8qIFNlbGVjdG9yRmlsdGVyLmggKi87IH07CiAJ
CTQxNTA4MDM2MUUzRjAwQUQwMDUxRDc1RCAvKiBMaWJXZWJSVENBdWRpb01vZHVsZS5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwODAzNDFFM0Yw
MEFBMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9Nb2R1bGUuY3BwICovOyB9OwogCQk0MTUwODAz
NzFFM0YwMEIwMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTA4MDM1MUUzRjAwQUEwMDUxRDc1
RCAvKiBMaWJXZWJSVENBdWRpb01vZHVsZS5oICovOyB9OwpAQCAtMTIxNyw2ICsxMjE4LDcgQEAK
IAkJNDFERUZDQjYxRTU2QzFCRDAwMEQ5RTVGIC8qIEpTRE9NTWFwTGlrZS5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFERUZDQjQxRTU2QzFCOTAwMEQ5
RTVGIC8qIEpTRE9NTWFwTGlrZS5oICovOyB9OwogCQk0MUUxMkU5RjI0RkU3NEUyMDA5M0ZGQjQg
LyogV2ViU29ja2V0SWRlbnRpZmllci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFFMTJFOUQyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNvY2tldElkZW50
aWZpZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9Owog
CQk0MUUxQjFEMTBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTFCMUNCMEZGNTk4NjkwMDU3
NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5oICovOyB9OworCQk0MUUyRjE5OTI3NEZBRUNGMDBBMDg5
RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUyRjE5NzI3NEZBRUNCMDBBMDg5RUUgLyogTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyLmggKi87IH07CiAJCTQxRTY3QTgzMjVEMTY4NDcwMDdCMEE0QyAv
KiBTVFVOTWVzc2FnZVBhcnNpbmcuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IDQxRTY3QTgxMjVEMTY4NDcwMDdCMEE0QyAvKiBTVFVOTWVzc2FnZVBhcnNp
bmcuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0
MUU2RDcxQjI2RUExQTQ2MDBCNzY1RDYgLyogUlRDRXJyb3IuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxQjdDMDRCMjZFNjkxNzEwMEQzNkMwNyAvKiBS
VENFcnJvci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTQxRTlEQ0U3MjMxOTc0QkYwMEYzNTk0OSAvKiBCbG9iTG9hZGVyLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUU5RENFNDIzMTk3M0ZFMDBGMzU5
NDkgLyogQmxvYkxvYWRlci5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUs
ICk7IH07IH07CkBAIC04ODU3LDYgKzg4NTksMTEgQEAKIAkJNDFFMUIxQ0MwRkY1OTg2OTAwNTc2
QjNCIC8qIEFic3RyYWN0V29ya2VyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBBYnN0cmFj
dFdvcmtlci5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTFGMzNEMjQ4QTYy
QjYwMDIyRDVERSAvKiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3Iu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTFGMzNGMjQ4QTYyQjYwMDIyRDVE
RSAvKiBBdWRpb1NhbXBsZUJ1ZmZlckNvbXByZXNzb3IuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCTQxRTJGMTk1Mjc0RkFFQ0EwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZp
bGVUeXBlID0gdGV4dDsgcGF0aCA9IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5pZGw7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTJGMTk3Mjc0RkFFQ0IwMEEwODlFRSAvKiBOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTJGMTk4Mjc0RkFFQ0Iw
MEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNDFFMkYxOUEyNzRGQjBBNTAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dDsgcGF0aCA9IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MUUyRjE5QjI3NEZCMEE2MDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRT
dGF0ZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTQwODM4MURDQjc0NzkwMEVGQ0UxOSAvKiBQZWVyQ29u
bmVjdGlvbkJhY2tlbmQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
UGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NDFFNTkzRkQyMTQ4NjVBOTAwRDNDQjYxIC8qIFJUQ1ByaW9yaXR5VHlwZS5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRD
UHJpb3JpdHlUeXBlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNDFFNTkzRkYy
MTQ4NjVBQTAwRDNDQjYxIC8qIFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGwgKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gUlRD
UnRwRW5jb2RpbmdQYXJhbWV0ZXJzLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAg
LTIyMTE3LDYgKzIyMTI0LDExIEBACiAJCQkJNDFBRjM3OTQxRjhEQTQ5NTAwMTExQzMxIC8qIEZl
dGNoRXZlbnQuY3BwICovLAogCQkJCTQxQUYzNzg4MUY4QzFFNzkwMDExMUMzMSAvKiBGZXRjaEV2
ZW50LmggKi8sCiAJCQkJNDFBRjM3OEQxRjhDMUU3QjAwMTExQzMxIC8qIEZldGNoRXZlbnQuaWRs
ICovLAorCQkJCTQxRTJGMTk4Mjc0RkFFQ0IwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIuY3BwICovLAorCQkJCTQxRTJGMTk3Mjc0RkFFQ0IwMEEwODlFRSAvKiBOYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIuaCAqLywKKwkJCQk0MUUyRjE5NTI3NEZBRUNBMDBBMDg5RUUgLyogTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCAqLywKKwkJCQk0MUUyRjE5QjI3NEZCMEE2MDBBMDg5
RUUgLyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oICovLAorCQkJCTQxRTJGMTlBMjc0RkIwQTUw
MEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbCAqLywKIAkJCQk1MUYxNzU1QjFG
M0VCQzBDMDBDNzQ5NTAgLyogU2VydmljZVdvcmtlci5jcHAgKi8sCiAJCQkJNTFGMTc1NUExRjNF
QkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXIuaCAqLywKIAkJCQk1MUYxNzU1OTFGM0VCQzBD
MDBDNzQ5NTAgLyogU2VydmljZVdvcmtlci5pZGwgKi8sCkBAIC0zNTkyNyw2ICszNTkzOSw4IEBA
CiAJCQkJODNCMkQxNzUxQjhCQ0Q2QTAwQTAyRTQ3IC8qIE5hdGl2ZU5vZGVGaWx0ZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUUxMEI5QjZDMEI3NDc1OTkwMDNFRDg5MCAvKiBOYXRpdmVYUGF0aE5T
UmVzb2x2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTkzQ0NGMDI3MEFGNkM1MjkwMDAxOEU4OSAv
KiBOYXZpZ2F0aW9uQWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MUUyRjE5OTI3NEZBRUNG
MDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk0MTUwMzc5MzI3NEZEQzlCMDAzNTRBQkMgLyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJNDY5RDc3QjgyNzAxNjI1MTAwMTQyRkE2IC8qIE5hdmlnYXRpb25S
ZXF1ZXN0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3OUY0M0Q0MTA3NUU0NEEwMDAwRjgzQiAv
KiBOYXZpZ2F0aW9uU2NoZWR1bGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBOUM2RTVBNjBENzQ2
NDU4MDA2NDQyRTkgLyogTmF2aWdhdG9yLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVByb21pc2VQcm94eS5oIGIvU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5LmgKaW5kZXggODAyNDkwNTNkNTg5N2I2NjZk
YWY1MDgxZTYyMzE2Yzk4ZjZiZDg0Yy4uMmI4NzA2ZTc2ZTQ3ZDQ0YmNkNTQzNjA1OTViNTJlZjBl
MGVlODBhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUHJvbWlz
ZVByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtNDgsMTEgKzQ4LDEzIEBAIHB1YmxpYzoKIAogICAgIGJvb2wgaXNGdWxmaWxsZWQoKSBjb25z
dDsKIAotICAgIHZvaWQgcmVzb2x2ZSh0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlKTsK
LSAgICB2b2lkIHJlc29sdmVXaXRoTmV3bHlDcmVhdGVkKHR5cGVuYW1lIElETFR5cGU6OlBhcmFt
ZXRlclR5cGUpOworICAgIHZvaWQgcmVzb2x2ZSh0eXBlbmFtZSBJRExUeXBlOjpTdG9yYWdlVHlw
ZSk7CisgICAgdm9pZCByZXNvbHZlV2l0aE5ld2x5Q3JlYXRlZCh0eXBlbmFtZSBJRExUeXBlOjpT
dG9yYWdlVHlwZSk7CiAgICAgdm9pZCByZWplY3QoRXhjZXB0aW9uLCBSZWplY3RBc0hhbmRsZWQg
PSBSZWplY3RBc0hhbmRsZWQ6Ok5vKTsKICAgICAKIHByaXZhdGU6CisgICAgSlNDOjpKU1ZhbHVl
IHJlc29sdmVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0RPTUdsb2JhbE9iamVjdCYs
IGNvbnN0IEZ1bmN0aW9uPHZvaWQoRGVmZXJyZWRQcm9taXNlJik+Jik7CisKICAgICBzdGQ6Om9w
dGlvbmFsPEV4Y2VwdGlvbk9yPFZhbHVlPj4gbV92YWx1ZU9yRXhjZXB0aW9uOwogICAgIFZlY3Rv
cjxSZWY8RGVmZXJyZWRQcm9taXNlPiwgMT4gbV9kZWZlcnJlZFByb21pc2VzOwogfTsKQEAgLTEw
OSwxMSArMTExLDEwIEBAIHByaXZhdGU6CiAgICAgVmVjdG9yPFJlZjxEZWZlcnJlZFByb21pc2U+
LCAxPiBtX2RlZmVycmVkUHJvbWlzZXM7CiB9OwogCi0KIC8vIE1BUks6IC0gRE9NUHJvbWlzZVBy
b3h5PElETFR5cGU+IGdlbmVyaWMgaW1wbGVtZW50YXRpb24KIAogdGVtcGxhdGU8dHlwZW5hbWUg
SURMVHlwZT4KLWlubGluZSBKU0M6OkpTVmFsdWUgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+Ojpw
cm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xv
YmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCitpbmxpbmUgSlNDOjpKU1ZhbHVlIERPTVByb21pc2VQ
cm94eTxJRExUeXBlPjo6cmVzb2x2ZVByb21pc2UoSlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWNh
bEdsb2JhbE9iamVjdCwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgY29uc3QgRnVu
Y3Rpb248dm9pZChEZWZlcnJlZFByb21pc2UmKT4mIHJlc29sdmVQcm9taXNlQ2FsbGJhY2spCiB7
CiAgICAgVU5VU0VEX1BBUkFNKGxleGljYWxHbG9iYWxPYmplY3QpOwogICAgIGZvciAoYXV0byYg
ZGVmZXJyZWRQcm9taXNlIDogbV9kZWZlcnJlZFByb21pc2VzKSB7CkBAIC0xMzAsNyArMTMxLDcg
QEAgaW5saW5lIEpTQzo6SlNWYWx1ZSBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OnByb21pc2Uo
SlNDOjpKU0dsb2JhbE9iamVjdCYgbGV4aWMKICAgICAgICAgaWYgKG1fdmFsdWVPckV4Y2VwdGlv
bi0+aGFzRXhjZXB0aW9uKCkpCiAgICAgICAgICAgICBkZWZlcnJlZFByb21pc2UtPnJlamVjdCht
X3ZhbHVlT3JFeGNlcHRpb24tPmV4Y2VwdGlvbigpKTsKICAgICAgICAgZWxzZQotICAgICAgICAg
ICAgZGVmZXJyZWRQcm9taXNlLT50ZW1wbGF0ZSByZXNvbHZlPElETFR5cGU+KG1fdmFsdWVPckV4
Y2VwdGlvbi0+cmV0dXJuVmFsdWUoKSk7CisgICAgICAgICAgICByZXNvbHZlUHJvbWlzZUNhbGxi
YWNrKCpkZWZlcnJlZFByb21pc2UpOwogICAgIH0KIAogICAgIGF1dG8gcmVzdWx0ID0gZGVmZXJy
ZWRQcm9taXNlLT5wcm9taXNlKCk7CkBAIC0xMzgsNiArMTM5LDIyIEBAIGlubGluZSBKU0M6OkpT
VmFsdWUgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+Ojpwcm9taXNlKEpTQzo6SlNHbG9iYWxPYmpl
Y3QmIGxleGljCiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUgSURM
VHlwZT4KK2lubGluZSBKU0M6OkpTVmFsdWUgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+Ojpwcm9t
aXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlKGxleGlj
YWxHbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgW3RoaXNdKGF1dG8mIGRlZmVycmVkUHJvbWlz
ZSkgeworICAgICAgICBkZWZlcnJlZFByb21pc2UudGVtcGxhdGUgcmVzb2x2ZTxJRExUeXBlPiht
X3ZhbHVlT3JFeGNlcHRpb24tPnJldHVyblZhbHVlKCkpOworICAgIH0pOworfQorCit0ZW1wbGF0
ZTw+CitpbmxpbmUgSlNDOjpKU1ZhbHVlIERPTVByb21pc2VQcm94eTxJRExBbnk+Ojpwcm9taXNl
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QpCit7CisgICAgcmV0dXJuIHJlc29sdmVQcm9taXNlKGxleGljYWxH
bG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdCwgW3RoaXNdKGF1dG8mIGRlZmVycmVkUHJvbWlzZSkg
eworICAgICAgICBkZWZlcnJlZFByb21pc2UucmVzb2x2ZVdpdGhKU1ZhbHVlKG1fdmFsdWVPckV4
Y2VwdGlvbi0+cmV0dXJuVmFsdWUoKS5nZXQoKSk7CisgICAgfSk7Cit9CisKIHRlbXBsYXRlPHR5
cGVuYW1lIElETFR5cGU+CiBpbmxpbmUgdm9pZCBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OmNs
ZWFyKCkKIHsKQEAgLTE1MiwyMSArMTY5LDMxIEBAIGlubGluZSBib29sIERPTVByb21pc2VQcm94
eTxJRExUeXBlPjo6aXNGdWxmaWxsZWQoKSBjb25zdAogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJ
RExUeXBlPgotaW5saW5lIHZvaWQgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+OjpyZXNvbHZlKHR5
cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGUgdmFsdWUpCitpbmxpbmUgdm9pZCBET01Qcm9t
aXNlUHJveHk8SURMVHlwZT46OnJlc29sdmUodHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGUg
dmFsdWUpCiB7CiAgICAgQVNTRVJUKCFtX3ZhbHVlT3JFeGNlcHRpb24pOwogCi0gICAgbV92YWx1
ZU9yRXhjZXB0aW9uID0gRXhjZXB0aW9uT3I8VmFsdWU+IHsgc3RkOjpmb3J3YXJkPHR5cGVuYW1l
IElETFR5cGU6OlBhcmFtZXRlclR5cGU+KHZhbHVlKSB9OworICAgIG1fdmFsdWVPckV4Y2VwdGlv
biA9IEV4Y2VwdGlvbk9yPFZhbHVlPiB7IHN0ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExUeXBlOjpT
dG9yYWdlVHlwZT4odmFsdWUpIH07CiAgICAgZm9yIChhdXRvJiBkZWZlcnJlZFByb21pc2UgOiBt
X2RlZmVycmVkUHJvbWlzZXMpCiAgICAgICAgIGRlZmVycmVkUHJvbWlzZS0+dGVtcGxhdGUgcmVz
b2x2ZTxJRExUeXBlPihtX3ZhbHVlT3JFeGNlcHRpb24tPnJldHVyblZhbHVlKCkpOwogfQogCit0
ZW1wbGF0ZTw+CitpbmxpbmUgdm9pZCBET01Qcm9taXNlUHJveHk8SURMQW55Pjo6cmVzb2x2ZSh0
eXBlbmFtZSBJRExBbnk6OlN0b3JhZ2VUeXBlIHZhbHVlKQoreworICAgIEFTU0VSVCghbV92YWx1
ZU9yRXhjZXB0aW9uKTsKKworICAgIG1fdmFsdWVPckV4Y2VwdGlvbiA9IEV4Y2VwdGlvbk9yPFZh
bHVlPiB7IHN0ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExBbnk6OlN0b3JhZ2VUeXBlPih2YWx1ZSkg
fTsKKyAgICBmb3IgKGF1dG8mIGRlZmVycmVkUHJvbWlzZSA6IG1fZGVmZXJyZWRQcm9taXNlcykK
KyAgICAgICAgZGVmZXJyZWRQcm9taXNlLT5yZXNvbHZlV2l0aEpTVmFsdWUobV92YWx1ZU9yRXhj
ZXB0aW9uLT5yZXR1cm5WYWx1ZSgpLmdldCgpKTsKK30KKwogdGVtcGxhdGU8dHlwZW5hbWUgSURM
VHlwZT4KLWlubGluZSB2b2lkIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cmVzb2x2ZVdpdGhO
ZXdseUNyZWF0ZWQodHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZSB2YWx1ZSkKK2lubGlu
ZSB2b2lkIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQo
dHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGUgdmFsdWUpCiB7CiAgICAgQVNTRVJUKCFtX3Zh
bHVlT3JFeGNlcHRpb24pOwogCi0gICAgbV92YWx1ZU9yRXhjZXB0aW9uID0gRXhjZXB0aW9uT3I8
VmFsdWU+IHsgc3RkOjpmb3J3YXJkPHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGU+KHZh
bHVlKSB9OworICAgIG1fdmFsdWVPckV4Y2VwdGlvbiA9IEV4Y2VwdGlvbk9yPFZhbHVlPiB7IHN0
ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExUeXBlOjpTdG9yYWdlVHlwZT4odmFsdWUpIH07CiAgICAg
Zm9yIChhdXRvJiBkZWZlcnJlZFByb21pc2UgOiBtX2RlZmVycmVkUHJvbWlzZXMpCiAgICAgICAg
IGRlZmVycmVkUHJvbWlzZS0+dGVtcGxhdGUgcmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQ8SURMVHlw
ZT4obV92YWx1ZU9yRXhjZXB0aW9uLT5yZXR1cm5WYWx1ZSgpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaCBiL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaAppbmRleCBlYjQzNTQ1ZDli
NTAxODEwY2IxZGIyYmRmZjA1ZjRjNmZjMTQzMmRjLi5mMTlhMDg4YmQzYzRhZDFiMTU1MWE5MTc4
ZmY3MjA1NTNiNTM0ZWJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9X
ZWJDb3JlQnVpbHRpbk5hbWVzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2Vi
Q29yZUJ1aWx0aW5OYW1lcy5oCkBAIC0yMTcsNiArMjE3LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogICAgIG1hY3JvKE1lZGlhU3RyZWFtVHJhY2spIFwKICAgICBtYWNybyhNZXJjaGFudFZhbGlk
YXRpb25FdmVudCkgXAogICAgIG1hY3JvKE1vY2tSVENSdHBUcmFuc2Zvcm0pIFwKKyAgICBtYWNy
byhOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIpIFwKICAgICBtYWNybyhOYXZpZ2F0b3JDcmVkZW50
aWFscykgXAogICAgIG1hY3JvKE5hdmlnYXRvck1lZGlhRGV2aWNlcykgXAogICAgIG1hY3JvKE5h
dmlnYXRvclBlcm1pc3Npb25zKSBcCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIv
Y2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcAppbmRleCA4YjgzZTUzMzE5MGE3NzZiYThmNDBjMjgzMTU4Y2RiNzYx
YWU5NzAyLi4zYWU4YmI2OGQyNWNkZGQxODAyMDkyMmY1ZWRiMjRkNGI5MTIwMDAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKQEAgLTQ1NSw5
ICs0NTUsMTYgQEAgdm9pZCBDYWNoZWRSZXNvdXJjZTo6cmVkaXJlY3RSZWNlaXZlZChSZXNvdXJj
ZVJlcXVlc3QmJiByZXF1ZXN0LCBjb25zdCBSZXNvdXJjZVIKICAgICBjb21wbGV0aW9uSGFuZGxl
cihXVEZNb3ZlKHJlcXVlc3QpKTsKIH0KIAorI2lmIEFTU0VSVF9FTkFCTEVECitzdGF0aWMgYm9v
bCBpc09wYXF1ZVJlZGlyZWN0UmVzcG9uc2VXaXRob3V0TG9jYXRpb25IZWFkZXIoY29uc3QgUmVz
b3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCit7CisgICAgcmV0dXJuIHJlc3BvbnNlLnR5cGUoKSA9
PSBSZXNvdXJjZVJlc3BvbnNlOjpUeXBlOjpPcGFxdWVyZWRpcmVjdCAmJiByZXNwb25zZS5pc1Jl
ZGlyZWN0aW9uKCkgJiYgcmVzcG9uc2UuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpM
b2NhdGlvbikuaXNOdWxsKCk7Cit9CisjZW5kaWYKKwogdm9pZCBDYWNoZWRSZXNvdXJjZTo6c2V0
UmVzcG9uc2UoY29uc3QgUmVzb3VyY2VSZXNwb25zZSYgcmVzcG9uc2UpCiB7Ci0gICAgQVNTRVJU
KG1fcmVzcG9uc2UudHlwZSgpID09IFJlc291cmNlUmVzcG9uc2U6OlR5cGU6OkRlZmF1bHQpOwor
ICAgIEFTU0VSVChtX3Jlc3BvbnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpUeXBlOjpE
ZWZhdWx0IHx8IGlzT3BhcXVlUmVkaXJlY3RSZXNwb25zZVdpdGhvdXRMb2NhdGlvbkhlYWRlciht
X3Jlc3BvbnNlKSk7CiAgICAgbV9yZXNwb25zZSA9IHJlc3BvbnNlOwogICAgIG1fdmFyeWluZ0hl
YWRlclZhbHVlcyA9IGNvbGxlY3RWYXJ5aW5nUmVxdWVzdEhlYWRlcnMoY29va2llSmFyKCksIG1f
cmVzb3VyY2VSZXF1ZXN0LCBtX3Jlc3BvbnNlKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCmluZGV4IGFmY2Q2ZTljZDA1NGRlY2E0YjY1YWFjYzRj
M2NjNGM4N2YyOTQ1NjYuLjU2NjI5MTExZTM4MDQwMjhkZjRmMzdjZDJhZDA4MDdlYTVlY2QwYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAKQEAg
LTEzNyw2ICsxMzcsNDQgQEAgdm9pZCBGZXRjaEV2ZW50Ojpwcm9taXNlSXNTZXR0bGVkKCkKICAg
ICBwcm9jZXNzUmVzcG9uc2UoUmVmIHsgKnJlc3BvbnNlIH0pOwogfQogCitGZXRjaEV2ZW50OjpQ
cmVsb2FkUmVzcG9uc2VQcm9taXNlJiBGZXRjaEV2ZW50OjpwcmVsb2FkUmVzcG9uc2UoU2NyaXB0
RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCkKK3sKKyAgICBpZiAoIW1fcHJlbG9hZFJlc3BvbnNl
UHJvbWlzZSkgeworICAgICAgICBtX3ByZWxvYWRSZXNwb25zZVByb21pc2UgPSBtYWtlVW5pcXVl
PFByZWxvYWRSZXNwb25zZVByb21pc2U+KCk7CisgICAgICAgIGlmICghbV9uYXZpZ2F0aW9uUHJl
bG9hZElkZW50aWZpZXIpIHsKKyAgICAgICAgICAgIGF1dG8qIGdsb2JhbE9iamVjdCA9IGNvbnRl
eHQuZ2xvYmFsT2JqZWN0KCk7CisgICAgICAgICAgICBpZiAoZ2xvYmFsT2JqZWN0KSB7CisgICAg
ICAgICAgICAgICAgSlNDOjpTdHJvbmc8SlNDOjpVbmtub3duPiB2YWx1ZSB7IGdsb2JhbE9iamVj
dC0+dm0oKSwgSlNDOjpqc1VuZGVmaW5lZCgpIH07CisgICAgICAgICAgICAgICAgbV9wcmVsb2Fk
UmVzcG9uc2VQcm9taXNlLT5yZXNvbHZlKHZhbHVlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
ICAgIHJldHVybiAqbV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlOworICAgICAgICB9CisKKyAgICAg
ICAgYXV0byByZXF1ZXN0ID0gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoY29udGV4dCwgeyB9LCBGZXRj
aEhlYWRlcnM6OmNyZWF0ZSgpLCBSZXNvdXJjZVJlcXVlc3QgeyBtX3JlcXVlc3QtPmludGVybmFs
UmVxdWVzdCgpIH0gLCBGZXRjaE9wdGlvbnMgeyBtX3JlcXVlc3QtPmZldGNoT3B0aW9ucygpIH0s
IFN0cmluZyB7IG1fcmVxdWVzdC0+aW50ZXJuYWxSZXF1ZXN0UmVmZXJyZXIoKSB9KTsKKyAgICAg
ICAgcmVxdWVzdC0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKG1fbmF2aWdhdGlvblBy
ZWxvYWRJZGVudGlmaWVyKTsKKyAgICAgICAgRmV0Y2hSZXNwb25zZTo6ZmV0Y2goY29udGV4dCwg
cmVxdWVzdC5nZXQoKSwgW3Byb3RlY3RlZFRoaXMgPSBSZWYgeyAqdGhpcyB9XShhdXRvJiYgcmVz
dWx0KSB7CisgICAgICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CisgICAgICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlLT5yZWplY3Qo
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICAgICAgfQorCisgICAgICAgICAgICBSZWYgcmVzcG9uc2UgPSByZXN1bHQucmVsZWFzZVJl
dHVyblZhbHVlKCk7CisgICAgICAgICAgICBhdXRvKiBjb250ZXh0ID0gcmVzcG9uc2UtPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKTsKKyAgICAgICAgICAgIGlmICghY29udGV4dCkKKyAgICAgICAg
ICAgICAgICByZXR1cm47CisgICAgICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb250ZXh0
LT5nbG9iYWxPYmplY3QoKTsKKyAgICAgICAgICAgIGlmICghZ2xvYmFsT2JqZWN0KQorICAgICAg
ICAgICAgICAgIHJldHVybjsKKworICAgICAgICAgICAgYXV0byYgdm0gPSBnbG9iYWxPYmplY3Qt
PnZtKCk7CisgICAgICAgICAgICBKU0M6OkpTTG9ja0hvbGRlciBsb2NrKHZtKTsKKyAgICAgICAg
ICAgIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4gdmFsdWUgeyB2bSwgdG9KUyhnbG9iYWxPYmpl
Y3QsIEpTQzo6anNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KSwgcmVzcG9u
c2UuZ2V0KCkpIH07CisgICAgICAgICAgICBwcm90ZWN0ZWRUaGlzLT5tX3ByZWxvYWRSZXNwb25z
ZVByb21pc2UtPnJlc29sdmUodmFsdWUpOworICAgICAgICB9LCAibmF2aWdhdGlvbiJfcyk7Cisg
ICAgfQorICAgIHJldHVybiAqbV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5oIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaAppbmRleCA3NDUwZmZjMGFl
NTgzOGUxOWQwYTlhNTcwNTBlZDgzOWY3YTE1NmJmLi44ZjdhYWY1N2I0ZmIzMjIyNWYzODM3NWQz
Y2QwOWZmNzBhNjRkMmY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvRmV0Y2hFdmVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRj
aEV2ZW50LmgKQEAgLTI3LDYgKzI3LDcgQEAKIAogI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
IAorI2luY2x1ZGUgIkRPTVByb21pc2VQcm94eS5oIgogI2luY2x1ZGUgIkV4dGVuZGFibGVFdmVu
dC5oIgogI2luY2x1ZGUgIkZldGNoUmVxdWVzdC5oIgogI2luY2x1ZGUgPHd0Zi9Db21wbGV0aW9u
SGFuZGxlci5oPgpAQCAtNzEsNiArNzIsMTEgQEAgcHVibGljOgogCiAgICAgc3RhdGljIFJlc291
cmNlRXJyb3IgY3JlYXRlUmVzcG9uc2VFcnJvcihjb25zdCBVUkwmLCBjb25zdCBTdHJpbmcmLCBS
ZXNvdXJjZUVycm9yOjpJc1Nhbml0aXplZCA9IFJlc291cmNlRXJyb3I6OklzU2FuaXRpemVkOjpO
byk7CiAKKyAgICB1c2luZyBQcmVsb2FkUmVzcG9uc2VQcm9taXNlID0gRE9NUHJvbWlzZVByb3h5
PElETEFueT47CisgICAgUHJlbG9hZFJlc3BvbnNlUHJvbWlzZSYgcHJlbG9hZFJlc3BvbnNlKFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQmKTsKKworICAgIHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRJ
ZGVudGlmaWVyKEZldGNoSWRlbnRpZmllcik7CisKIHByaXZhdGU6CiAgICAgV0VCQ09SRV9FWFBP
UlQgRmV0Y2hFdmVudChjb25zdCBBdG9tU3RyaW5nJiwgSW5pdCYmLCBJc1RydXN0ZWQpOwogCkBA
IC04OSw4ICs5NSwxOCBAQCBwcml2YXRlOgogICAgIFJlZlB0cjxET01Qcm9taXNlPiBtX3Jlc3Bv
bmRQcm9taXNlOwogCiAgICAgUmVzcG9uc2VDYWxsYmFjayBtX29uUmVzcG9uc2U7CisKKyAgICBG
ZXRjaElkZW50aWZpZXIgbV9uYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXI7CisgICAgc3RkOjp1
bmlxdWVfcHRyPFByZWxvYWRSZXNwb25zZVByb21pc2U+IG1fcHJlbG9hZFJlc3BvbnNlUHJvbWlz
ZTsKIH07CiAKK2lubGluZSB2b2lkIEZldGNoRXZlbnQ6OnNldE5hdmlnYXRpb25QcmVsb2FkSWRl
bnRpZmllcihGZXRjaElkZW50aWZpZXIgaWRlbnRpZmllcikKK3sKKyAgICBBU1NFUlQoIW1fbmF2
aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKTsKKyAgICBBU1NFUlQoaWRlbnRpZmllcik7CisgICAg
bV9uYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIgPSBpZGVudGlmaWVyOworfQorCiB9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwgYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwKaW5kZXggYWVjYmVh
ZGI0ODdiZDQ4ZjBjYjMzZjkzZDhkOWQzMjMwYzAzMmMxYi4uOTczNzU5MDZkZjBmNGMwZWExNThj
YWQ2OTdjOTQ2YjNmYjdlZjJlNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL0ZldGNoRXZlbnQuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9GZXRjaEV2ZW50LmlkbApAQCAtMzIsOCArMzIsOCBAQAogICAgIEpTR2VuZXJhdGVUb05hdGl2
ZU9iamVjdAogXSBpbnRlcmZhY2UgRmV0Y2hFdmVudCA6IEV4dGVuZGFibGVFdmVudCB7CiAgICAg
Y29uc3RydWN0b3IoRE9NU3RyaW5nIHR5cGUsIEZldGNoRXZlbnRJbml0IGV2ZW50SW5pdERpY3Qp
OwotCiAgICAgW1NhbWVPYmplY3RdIHJlYWRvbmx5IGF0dHJpYnV0ZSBGZXRjaFJlcXVlc3QgcmVx
dWVzdDsKKyAgICBbQ2FsbFdpdGg9U2NyaXB0RXhlY3V0aW9uQ29udGV4dCwgRW5hYmxlZEJ5U2V0
dGluZz1TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkXSByZWFkb25seSBhdHRy
aWJ1dGUgUHJvbWlzZTxhbnk+IHByZWxvYWRSZXNwb25zZTsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIGNsaWVudElkOwogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBET01TdHJpbmcg
cmVzZXJ2ZWRDbGllbnRJZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHRhcmdl
dENsaWVudElkOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05h
dmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45MTRjYTlhMDFkZTBi
NGI1MzBhOTU5MDVkOTU3M2FmMjA4MzNmM2ZkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAKQEAgLTAs
MCArMSw1OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6
CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFy
eSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0
aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3
aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBC
WSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBF
WFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklU
TkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBG
T1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwg
T1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQg
VE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NT
IE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikg
SE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElO
CisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJ
R0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZ
IE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNpbmNsdWRlICJO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikK
KworI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKKyNpbmNsdWRlICJTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKwordm9pZCBOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXI6OmVuYWJsZShQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBt
X3JlZ2lzdHJhdGlvbi5jb250YWluZXIoKS5lbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChtX3JlZ2lz
dHJhdGlvbi5pZGVudGlmaWVyKCksIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIE5hdmln
YXRpb25QcmVsb2FkTWFuYWdlcjo6ZGlzYWJsZShQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBt
X3JlZ2lzdHJhdGlvbi5jb250YWluZXIoKS5kaXNhYmxlTmF2aWdhdGlvblByZWxvYWQobV9yZWdp
c3RyYXRpb24uaWRlbnRpZmllcigpLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXI6OnNldEhlYWRlclZhbHVlKFN0cmluZyYmIHZhbHVlLCBQcm9t
aXNlJiYgcHJvbWlzZSkKK3sKKyAgICBtX3JlZ2lzdHJhdGlvbi5jb250YWluZXIoKS5zZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKG1fcmVnaXN0cmF0aW9uLmlkZW50aWZpZXIoKSwgV1RG
TW92ZSh2YWx1ZSksIFdURk1vdmUocHJvbWlzZSkpOworfQorCit2b2lkIE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlcjo6Z2V0U3RhdGUoU3RhdGVQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBtX3Jl
Z2lzdHJhdGlvbi5jb250YWluZXIoKS5nZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKG1fcmVnaXN0
cmF0aW9uLmlkZW50aWZpZXIoKSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK30gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5lOGNmNjk5NGJiZjQyMjQ4NDQ4ZTUzNDczNWMzNGMxYTIzYzRl
OWNhCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05h
dmlnYXRpb25QcmVsb2FkTWFuYWdlci5oCkBAIC0wLDAgKzEsNjQgQEAKKy8qCisgKiBDb3B5cmln
aHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9m
IHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
KyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoK
KyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRS
SUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJ
RVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFO
VElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICog
UFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJ
VFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJ
TkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFH
RVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkg
VEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFS
SVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElG
IEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisj
cHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShTRVJWSUNFX1dPUktFUikKKworI2luY2x1ZGUgIk5h
dmlnYXRpb25QcmVsb2FkU3RhdGUuaCIKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmgiCisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworY2xhc3MgTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIHsKKyAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKK3B1YmxpYzoKKyAgICBmcmll
bmQgY2xhc3MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbjsKKworICAgIHVzaW5nIFByb21pc2Ug
PSBET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD47CisgICAgdm9pZCBlbmFibGUoUHJvbWlzZSYmKTsK
KyAgICB2b2lkIGRpc2FibGUoUHJvbWlzZSYmKTsKKyAgICB2b2lkIHNldEhlYWRlclZhbHVlKFN0
cmluZyYmLCBQcm9taXNlJiYpOworCisgICAgdXNpbmcgU3RhdGVQcm9taXNlID0gRE9NUHJvbWlz
ZURlZmVycmVkPElETERpY3Rpb25hcnk8TmF2aWdhdGlvblByZWxvYWRTdGF0ZT4+OworICAgIHZv
aWQgZ2V0U3RhdGUoU3RhdGVQcm9taXNlJiYpOworCisgICAgdm9pZCByZWYoKSB7IG1fcmVnaXN0
cmF0aW9uLnJlZigpOyB9CisgICAgdm9pZCBkZXJlZigpIHsgbV9yZWdpc3RyYXRpb24uZGVyZWYo
KTsgfQorCitwcml2YXRlOgorICAgIGV4cGxpY2l0IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcihT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJik7CisKKyAgICBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uJiBtX3JlZ2lzdHJhdGlvbjsKK307CisKK2lubGluZSBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXI6Ok5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uJiBy
ZWdpc3RyYXRpb24pCisgICAgOiBtX3JlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb24pCit7Cit9CisK
K30gLy8gbmFtZXNwYWNlIFdlYkNvcmUKKworI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktF
UikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmln
YXRpb25QcmVsb2FkTWFuYWdlci5pZGwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODkzOWY4NTgxNzAzMWI2MjA4ODVk
NDEzY2UxMzI1Njc0MTQxN2IzNgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsCkBAIC0wLDAgKzEsMzYg
QEAKKy8qCisqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisqCisqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAorKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyogYXJlIG1ldDoKKyogMS4gUmVkaXN0
cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXBy
b2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisqICAgIGRvY3VtZW50
YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRp
b24uCisqCisqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRT
IENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FS
UkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisqIFRIRSBJTVBMSUVEIFdB
UlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIK
KyogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyogQ09OU0VRVUVOVElBTCBEQU1B
R0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyogU1VC
U1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7
IE9SIEJVU0lORVNTCisqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBU
SEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisqIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorKi8KKworWworICAg
IENvbmRpdGlvbmFsPVNFUlZJQ0VfV09SS0VSLAorICAgIEVuYWJsZWRCeVNldHRpbmc9U2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCwKKyAgICBFeHBvc2VkPShXaW5kb3csV29y
a2VyKSwKKyAgICBTa2lwVlRhYmxlVmFsaWRhdGlvbiwKK10gaW50ZXJmYWNlIE5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciB7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IGVuYWJsZSgpOworICAgIFBy
b21pc2U8dW5kZWZpbmVkPiBkaXNhYmxlKCk7CisgICAgUHJvbWlzZTx1bmRlZmluZWQ+IHNldEhl
YWRlclZhbHVlKEJ5dGVTdHJpbmcgdmFsdWUpOworICAgIFByb21pc2U8TmF2aWdhdGlvblByZWxv
YWRTdGF0ZT4gZ2V0U3RhdGUoKTsKK307CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4zZmZkMTQ4
NzBlYTMzYTg0MWY0MTA5MTk0MmMyNjMyNjhmN2RlODczCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaApAQCAt
MCwwICsxLDYzIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCisKKyNpbmNsdWRlIDxvcHRpb25hbD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9X
VEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgTmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZSB7CisgICAgYm9vbCBlbmFibGVkIHsgZmFsc2UgfTsKKyAgICBTdHJpbmcgaGVh
ZGVyVmFsdWU7CisKKyAgICBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlIGlzb2xhdGVkQ29weSgpIGNv
bnN0ICYgeyByZXR1cm4geyBlbmFibGVkLCBoZWFkZXJWYWx1ZS5pc29sYXRlZENvcHkoKSB9OyB9
CisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBpc29sYXRlZENvcHkoKSAmJiB7IHJldHVybiB7
IGVuYWJsZWQsIFdURk1vdmUoaGVhZGVyVmFsdWUpLmlzb2xhdGVkQ29weSgpIH07IH0KKworICAg
IHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNv
bnN0IHsgZW5jb2RlciA8PCBlbmFibGVkIDw8IGhlYWRlclZhbHVlOyB9CisgICAgdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8TmF2aWdhdGlvblByZWxvYWRTdGF0
ZT4gZGVjb2RlKERlY29kZXImKTsKK307CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6
Om9wdGlvbmFsPE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+IE5hdmlnYXRpb25QcmVsb2FkU3RhdGU6
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gZW5h
YmxlZDsKKyAgICBkZWNvZGVyID4+IGVuYWJsZWQ7CisgICAgaWYgKCFlbmFibGVkKQorICAgICAg
ICByZXR1cm4geyB9OworCisgICAgc3RkOjpvcHRpb25hbDxTdHJpbmc+IGhlYWRlclZhbHVlOwor
ICAgIGRlY29kZXIgPj4gaGVhZGVyVmFsdWU7CisgICAgaWYgKCFoZWFkZXJWYWx1ZSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKyAgICByZXR1cm4gTmF2aWdhdGlvblByZWxvYWRTdGF0ZSB7ICplbmFi
bGVkLCBXVEZNb3ZlKCpoZWFkZXJWYWx1ZSkgfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29y
ZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmJjNzkzMTdiNTI3MjdjMzNkYzRlYTY0NDYxZDVmNmNkYzI3MGM0ZGQKLS0tIC9k
ZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIx
IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlm
aWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0
aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBB
TkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1Qg
TElNSVRFRCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElB
QkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBM
QVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdM
SUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNF
IE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkg
T0YgU1VDSCBEQU1BR0UuCisqLworCitbCisgICAgQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIs
CisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdCitkaWN0aW9uYXJ5IE5hdmlnYXRpb25QcmVs
b2FkU3RhdGUgeworICAgIGJvb2xlYW4gZW5hYmxlZCA9IGZhbHNlOworICAgIEJ5dGVTdHJpbmcg
aGVhZGVyVmFsdWU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDk1YjBlNTgxOWVhOTFiNjY5YjJlOTdlZjQ1MDll
MzQxNDJlYWFiNjguLjI1YzVhNWNkODMwMzNiNjlmNjExMjI3NGQ2ZDBiNTkzZmU3MTdmM2YgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rp
b24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0
aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNp
bmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aCIKICNpbmNsdWRlICJQdXNoUGVybWlzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiUHVzaFN1YnNj
cmlwdGlvbkRhdGEuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmll
ci5oIgpAQCAtMTAwLDYgKzEwMSwxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgR2V0UHVzaFBlcm1p
c3Npb25TdGF0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxQ
dXNoUGVybWlzc2lvblN0YXRlPiYmKT47CiAgICAgdmlydHVhbCB2b2lkIGdldFB1c2hQZXJtaXNz
aW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEdldFB1c2hQZXJt
aXNzaW9uU3RhdGVDYWxsYmFjayYmKSA9IDA7CiAKKyAgICB1c2luZyBFeGNlcHRpb25PclZvaWRD
YWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+Owor
ICAgIHZpcnR1YWwgdm9pZCBlbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgPSAwOworICAg
IHZpcnR1YWwgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2
aXJ0dWFsIHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNr
JiYpID0gMDsKKyAgICB1c2luZyBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxs
YmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8TmF2aWdhdGlvblByZWxv
YWRTdGF0ZT4mJik+OworICAgIHZpcnR1YWwgdm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
KFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25Pck5hdmlnYXRp
b25QcmVsb2FkU3RhdGVDYWxsYmFjayYmKSA9IDA7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lk
IHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVudHMoKTsKICAgICBib29sIGlzQ2xvc2VkKCkgY29u
c3QgeyByZXR1cm4gbV9pc0Nsb3NlZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggODhjOTk3
YzY0ZmQ1OWQyZjgyMGI1ZWE1ODVhM2IxNWE2Zjk1YWI2OC4uYjQyMjg4Y2FiM2UxYzk0MGVmZDkz
ZDUzODcwZDU1OTJiYTgyOGEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzgsNiArMzgsNyBA
QAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIK
ICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTTmF2aWdhdGlv
blByZWxvYWRTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUHVzaFN1YnNjcmlwdGlvbi5oIgogI2luY2x1
ZGUgIkpTU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIkxlZ2FjeVNjaGVt
ZVJlZ2lzdHJ5LmgiCkBAIC02NDYsNiArNjQ3LDM4IEBAIGJvb2wgU2VydmljZVdvcmtlckNvbnRh
aW5lcjo6YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxF
CiAgICAgcmV0dXJuIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGE6OmFkZEV2ZW50TGlzdGVuZXIo
ZXZlbnRUeXBlLCBXVEZNb3ZlKGV2ZW50TGlzdGVuZXIpLCBvcHRpb25zKTsKIH0KIAordm9pZCBT
ZXJ2aWNlV29ya2VyQ29udGFpbmVyOjplbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBWb2lkUHJvbWlzZSYmIHByb21p
c2UpCit7CisgICAgZW5zdXJlU1dDbGllbnRDb25uZWN0aW9uKCkuZW5hYmxlTmF2aWdhdGlvblBy
ZWxvYWQoaWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVz
dWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsK
KyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkaXNhYmxlTmF2aWdh
dGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmll
ciwgVm9pZFByb21pc2UmJiBwcm9taXNlKQoreworICAgIGVuc3VyZVNXQ2xpZW50Q29ubmVjdGlv
bigpLmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChpZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1v
dmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNl
dHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJD
b250YWluZXI6OnNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgaGVhZGVyVmFsdWUsIFZv
aWRQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAgICBlbnN1cmVTV0NsaWVudENvbm5lY3Rpb24oKS5z
ZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKGlkZW50aWZpZXIsIFdURk1vdmUoaGVhZGVy
VmFsdWUpLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFi
bGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOwor
fQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmdldE5hdmlnYXRpb25QcmVsb2FkU3Rh
dGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgTmF2aWdh
dGlvblByZWxvYWRTdGF0ZVByb21pc2UmJiBwcm9taXNlKQoreworICAgIGVuc3VyZVNXQ2xpZW50
Q29ubmVjdGlvbigpLmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoaWRlbnRpZmllciwgW3Byb21p
c2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAg
aWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3Qo
cmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZlKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7
CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJM
RShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IDgyODk3MWE2NTdhZjBlMDkwNjAy
ZDljMWExNzQ0ZjBmNTMyY2ZkNjUuLmE5YmJiZDgwYmQ0MWI5NDVkNGI4MTM4NGEyYzQyMzhjZjhl
NDdhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNl
V29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAtOTgsNiArOTgsMTMgQEAgcHVibGljOgogCiAgICAg
TmF2aWdhdG9yQmFzZSogbmF2aWdhdG9yKCkgeyByZXR1cm4gJm1fbmF2aWdhdG9yOyB9CiAKKyAg
ICB1c2luZyBWb2lkUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPjsKKyAgICB1c2lu
ZyBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExE
aWN0aW9uYXJ5PE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+PjsKKyAgICB2b2lkIGVuYWJsZU5hdmln
YXRpb25QcmVsb2FkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBWb2lkUHJv
bWlzZSYmKTsKKyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgVm9pZFByb21pc2UmJik7CisgICAgdm9pZCBzZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyLCBTdHJpbmcmJiwgVm9pZFByb21pc2UmJik7CisgICAgdm9pZCBnZXROYXZpZ2F0aW9uUHJl
bG9hZFN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlUHJvbWlzZSYmKTsKKwogcHJpdmF0ZToKICAgICBib29sIGFkZEV2ZW50TGlz
dGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwg
Y29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmID0geyB9KSBmaW5hbDsKIApkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb24uY3BwCmluZGV4IDBiNjgyOGM4ODdiYWUzYzBlYmViYTMwMzI5YjI5ZTE5OWRjNmJh
NzEuLjBjMDZkOTliYjMyZTJjZmU1ZjA2YzgwMDk4NTZiYzY0MGY4N2I5OTkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgi
CiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgi
CisjaW5jbHVkZSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2Vydmlj
ZVdvcmtlci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRl
ICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKQEAgLTI1NCw2ICsyNTUsMTMgQEAgYm9vbCBTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKICAg
ICByZXR1cm4gZ2V0TmV3ZXN0V29ya2VyKCkgJiYgaGFzRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAor
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpuYXZp
Z2F0aW9uUHJlbG9hZCgpCit7CisgICAgaWYgKCFtX25hdmlnYXRpb25QcmVsb2FkKQorICAgICAg
ICBtX25hdmlnYXRpb25QcmVsb2FkID0gc3RkOjp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlcj4obmV3IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcigqdGhpcykpOworICAgIHJldHVy
biAqbV9uYXZpZ2F0aW9uUHJlbG9hZDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXgg
ODllYzk3M2Y1ZmY2N2EzNmM3YTE0Yzk2ZjBhNTZkMTg3YTM0OTlmNi4uYzMyNzg5MjEzZTk0N2I5
NDhjMTdlMDkyODQzNTEzN2U0OGEzOTMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC00MCw2
ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsK
K2NsYXNzIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQ7CiBjbGFzcyBTZXJ2aWNlV29ya2VyOwogY2xhc3MgU2VydmljZVdvcmtlckNvbnRhaW5l
cjsKQEAgLTg1LDYgKzg2LDkgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU3RhdGVGcm9tU2Vy
dmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+
JiYpOwogICAgIHZvaWQgcXVldWVUYXNrVG9GaXJlVXBkYXRlRm91bmRFdmVudCgpOwogCisgICAg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBuYXZpZ2F0aW9uUHJlbG9hZCgpOworICAgIFNlcnZp
Y2VXb3JrZXJDb250YWluZXImIGNvbnRhaW5lcigpIHsgcmV0dXJuIG1fY29udGFpbmVyLmdldCgp
OyB9CisKIHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRFeGVj
dXRpb25Db250ZXh0JiwgUmVmPFNlcnZpY2VXb3JrZXJDb250YWluZXI+JiYsIFNlcnZpY2VXb3Jr
ZXJSZWdpc3RyYXRpb25EYXRhJiYpOwogCkBAIC0xMDQsNiArMTA4LDggQEAgcHJpdmF0ZToKICAg
ICBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9pbnN0YWxsaW5nV29ya2VyOwogICAgIFJlZlB0cjxT
ZXJ2aWNlV29ya2VyPiBtX3dhaXRpbmdXb3JrZXI7CiAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+
IG1fYWN0aXZlV29ya2VyOworCisgICAgc3RkOjp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlcj4gbV9uYXZpZ2F0aW9uUHJlbG9hZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmlkbAppbmRleCBkZDhiMjJlMzdlMTdmOGMwMTgwODM5ZmYx
ZWI0ODY0YjYzMmYzMjY3Li4yZTlkMWZlNTFiNGMwN2NkZGQ3YWMzMjlmMDk3NTI2OGU0MDllMzQ4
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1Nl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaWRsCkBAIC0zNyw2ICszNyw3IEBACiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/IGluc3RhbGxpbmc7CiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNlcnZpY2VXb3JrZXI/IHdhaXRpbmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNl
cnZpY2VXb3JrZXI/IGFjdGl2ZTsKKyAgICBbU2FtZU9iamVjdCwgRW5hYmxlZEJ5U2V0dGluZz1T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkXSByZWFkb25seSBhdHRyaWJ1dGUg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG5hdmlnYXRpb25QcmVsb2FkOwogCiAgICAgcmVhZG9u
bHkgYXR0cmlidXRlIFVTVlN0cmluZyBzY29wZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU2Vy
dmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9u
LmNwcAppbmRleCBmYWVmOTRhNzVhOGQ3MjE5ODZmNTc5ZjNiNjU5MDIzMzdmOGVlZjc4Li5lMGNh
ODczNjJiMTRiZjdjMmI2NDgxMjcxYmY3ZjkxMDAzOTBkOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9u
LmNwcApAQCAtNzMsNiArNzMsMTQgQEAgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjp+V29ya2Vy
U1dDbGllbnRDb25uZWN0aW9uKCkKICAgICBhdXRvIGdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxs
YmFja3MgPSBXVEZNb3ZlKG1fZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrcyk7CiAgICAg
Zm9yIChhdXRvJiBjYWxsYmFjayA6IGdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFja3MudmFs
dWVzKCkpCiAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0
IHN0b3BwZWQiX3MgfSk7CisKKyAgICBhdXRvIHZvaWRDYWxsYmFja3MgPSBXVEZNb3ZlKG1fdm9p
ZENhbGxiYWNrcyk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IHZvaWRDYWxsYmFja3MudmFs
dWVzKCkpCisgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0
IHN0b3BwZWQiX3MgfSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFj
a3MgPSBXVEZNb3ZlKG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcyk7CisgICAgZm9y
IChhdXRvJiBjYWxsYmFjayA6IG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcy52YWx1
ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgImNvbnRleHQg
c3RvcHBlZCJfcyB9KTsKIH0KIAogdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNo
UmVnaXN0cmF0aW9uKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBj
bGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCkBAIC0yODUsNiArMjkz
LDcwIEBAIHZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpnZXRQdXNoUGVybWlzc2lvblN0
YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29ya2Vy
U1dDbGllbnRDb25uZWN0aW9uOjplbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25P
clZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlm
aWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRk
KHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWlu
VGhyZWFkKFt0aHJlYWQgPSBtX3RocmVhZCwgcmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlv
bklkZW50aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2
aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7
CisgICAgICAgIGNvbm5lY3Rpb24uZW5hYmxlTmF2aWdhdGlvblByZWxvYWQocmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgW3RocmVhZCA9IFdURk1vdmUodGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJd
KGF1dG8mJiByZXN1bHQpIHsKKyAgICAgICAgICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNr
Rm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZN
b3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgYXV0
byBjYWxsYmFjayA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuc3dDbGllbnRD
b25uZWN0aW9uKCkubV92b2lkQ2FsbGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAg
ICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBX
b3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQo
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCBy
ZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CisgICAgbV92b2lk
Q2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisg
ICAgY2FsbE9uTWFpblRocmVhZChbdGhyZWFkID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlmaWVy
LCByZWdpc3RyYXRpb25JZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBjb25u
ZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2Vy
Q29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9h
ZChyZWdpc3RyYXRpb25JZGVudGlmaWVyLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCByZXF1
ZXN0SWRlbnRpZmllcl0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhyZWFkLT5ydW5M
b29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NU
aHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAg
ICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNj
b3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5tX3ZvaWRDYWxsYmFja3MudGFrZShyZXF1ZXN0SWRl
bnRpZmllcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKKyAg
ICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9KTsK
KyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnNldE5hdmlnYXRp
b25QcmVsb2FkSGVhZGVyVmFsdWUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
cmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYgaGVhZGVyVmFsdWUsIEV4Y2VwdGlvbk9y
Vm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZp
ZXIgPSArK21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQo
cmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5U
aHJlYWQoW3RocmVhZCA9IG1fdGhyZWFkLCByZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgaGVhZGVyVmFsdWUgPSBXVEZNb3ZlKGhlYWRlclZhbHVlKS5pc29sYXRlZENv
cHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3Jr
ZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKKyAgICAg
ICAgY29ubmVjdGlvbi5zZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIFdURk1vdmUoaGVhZGVyVmFsdWUpLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJl
YWQpLCByZXF1ZXN0SWRlbnRpZmllcl0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhy
ZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0
ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxl
IHsKKyAgICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gZG93bmNhc3Q8V29ya2VyR2xvYmFs
U2NvcGU+KHNjb3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5tX3ZvaWRDYWxsYmFja3MudGFrZShy
ZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1
bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAg
ICAgICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246Omdl
dE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmll
ciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CisgICAgbV9uYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlQ2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOwor
CisgICAgY2FsbE9uTWFpblRocmVhZChbdGhyZWFkID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlm
aWVyLCByZWdpc3RyYXRpb25JZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBj
b25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29y
a2VyQ29ubmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLmdldE5hdmlnYXRpb25QcmVsb2Fk
U3RhdGUocmVnaXN0cmF0aW9uSWRlbnRpZmllciwgW3RocmVhZCA9IFdURk1vdmUodGhyZWFkKSwg
cmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiByZXN1bHQpIHsKKyAgICAgICAgICAgIHRocmVhZC0+
cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IGNy
b3NzVGhyZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7Cisg
ICAgICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3Bl
PihzY29wZSkuc3dDbGllbnRDb25uZWN0aW9uKCkubV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGNhbGxiYWNr
KFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0
TW9kZSgpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaApp
bmRleCA5Njk5NGJkOTU2ZDFjYmYxNWJhM2UxOWJjZjA3MTMzMzlmOTkxZTM4Li5kMDBkMTExNWM2
ZmJlNjcwOGM1NTI4NGU0NmMyNzFlYTJmOGJiMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC02
Miw2ICs2MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFN1YnNjcmlwdGlvbkNhbGxi
YWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZShTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNr
JiYpIGZpbmFsOwogCisgICAgdm9pZCBlbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmlu
YWw7CisgICAgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAg
IHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZp
bmFsOworICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2smJikgZmluYWw7CisKICAgICBSZWY8V29ya2VyVGhyZWFkPiBtX3RocmVhZDsKIAogICAg
IHVpbnQ2NF90IG1fbGFzdFJlcXVlc3RJZGVudGlmaWVyIHsgMCB9OwpAQCAtNzMsNiArNzgsOCBA
QCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2
aWNlQ2FsbGJhY2s+IG1fdW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2VSZXF1ZXN0czsKICAgICBI
YXNoTWFwPHVpbnQ2NF90LCBHZXRQdXNoU3Vic2NyaXB0aW9uQ2FsbGJhY2s+IG1fZ2V0UHVzaFN1
YnNjcmlwdGlvblJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEdldFB1c2hQZXJtaXNz
aW9uU3RhdGVDYWxsYmFjaz4gbV9nZXRQdXNoUGVybWlzc2lvblN0YXRlQ2FsbGJhY2tzOworICAg
IEhhc2hNYXA8dWludDY0X3QsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxsYmFj
a3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlQ2FsbGJhY2s+IG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrczsKIH07CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCmluZGV4IGQ0NTRl
OWQxNzQ4NDBmNjVjMzdhMDExNTI4OTE1MmExMDI2NDI0M2EuLjliN2ZmNTMwYWVmNGJkNjcxOGIx
YjY3ZDhiNmRhOWEyY2ExYmQ2MDQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcApAQCAtMTM5
LDcgKzEzOSw3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NSZXNwb25zZShSZWY8Q2xpZW50PiYmIGNs
aWVudCwgRXhwZWN0ZWQ8UmVmPEZldGNoUmVzcG9uc2U+LCBzCiAgICAgfSk7CiB9CiAKLXZvaWQg
ZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYgY2xpZW50LCBTZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUmIGdsb2JhbFNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRl
eHRJZGVudGlmaWVyPiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5n
JiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIpCit2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVu
dCwgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTY29wZSwgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gY2xpZW50SWQsIFJlc291cmNlUmVxdWVz
dCYmIHJlcXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBib29sIGlzU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkRW5hYmxlZCkKIHsKICAgICBhdXRvIHJlcXVlc3RIZWFkZXJzID0gRmV0Y2hI
ZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlLCBIVFRQSGVhZGVy
TWFwIHsgcmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkgfSk7CiAKQEAgLTE2Nyw3ICsxNjcsOSBA
QCB2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVudCwgU2VydmljZVdv
cmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTYwogCiAgICAgVVJMIHJlcXVlc3RVUkwgPSByZXF1ZXN0
LnVybCgpOwogICAgIGF1dG8gZmV0Y2hSZXF1ZXN0ID0gRmV0Y2hSZXF1ZXN0OjpjcmVhdGUoZ2xv
YmFsU2NvcGUsIFdURk1vdmUoYm9keSksIFdURk1vdmUocmVxdWVzdEhlYWRlcnMpLCAgV1RGTW92
ZShyZXF1ZXN0KSwgV1RGTW92ZShvcHRpb25zKSwgV1RGTW92ZShyZWZlcnJlcikpOwotICAgIGZl
dGNoUmVxdWVzdC0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKGZldGNoSWRlbnRpZmll
cik7CisKKyAgICBpZiAoIWlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCkK
KyAgICAgICAgZmV0Y2hSZXF1ZXN0LT5zZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIoZmV0
Y2hJZGVudGlmaWVyKTsKIAogICAgIEZldGNoRXZlbnQ6OkluaXQgaW5pdDsKICAgICBpbml0LnJl
cXVlc3QgPSBXVEZNb3ZlKGZldGNoUmVxdWVzdCk7CkBAIC0xODAsNiArMTgyLDkgQEAgdm9pZCBk
aXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSYgZ2xvYmFsU2MKICAgICBpbml0LmNhbmNlbGFibGUgPSB0cnVlOwogICAgIGF1dG8g
ZXZlbnQgPSBGZXRjaEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZldGNoRXZlbnQsIFdURk1v
dmUoaW5pdCksIEV2ZW50OjpJc1RydXN0ZWQ6Olllcyk7CiAKKyAgICBpZiAoaXNTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQorICAgICAgICBldmVudC0+c2V0TmF2aWdhdGlv
blByZWxvYWRJZGVudGlmaWVyKGZldGNoSWRlbnRpZmllcik7CisKICAgICBDZXJ0aWZpY2F0ZUlu
Zm8gY2VydGlmaWNhdGVJbmZvID0gZ2xvYmFsU2NvcGUuY2VydGlmaWNhdGVJbmZvKCk7CiAKICAg
ICBldmVudC0+b25SZXNwb25zZShbY2xpZW50LCBtb2RlLCByZWRpcmVjdCwgcmVxdWVzdFVSTCwg
Y2VydGlmaWNhdGVJbmZvID0gV1RGTW92ZShjZXJ0aWZpY2F0ZUluZm8pXSAoYXV0byYmIHJlc3Vs
dCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
Y29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IDc2NzE0NmJiMDIzNjRkZGEx
ZWY3MWEwMTEzNDM5YWJjZTVlNWQ5OTUuLjU0ZDA0ZTgzNzRhOGFlY2VlNGMwZjAzZDY0MTFhNmI3
MzVhOTFiODUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250
ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC01OSw3ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9IDA7CiB9
OwogCi12b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmLCBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlm
aWVyPiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMm
JiwgRmV0Y2hJZGVudGlmaWVyKTsKK3ZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+
JiYsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJy
ZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXggOGIxY2VjZDM3ZGUzMWMzMjAxOWQ2OGYz
YTJlMDQxMjM3YTI4NWE0Yy4uNjUyNWZiOTcwMTZmZmFkZWU5MWExMTYwNjA0YzAyNzEwOWNlODY2
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTEyNCwxMSArMTI0LDExIEBAIHZv
aWQgU2VydmljZVdvcmtlclRocmVhZDo6cnVuRXZlbnRMb29wKCkKICAgICBXb3JrZXJUaHJlYWQ6
OnJ1bkV2ZW50TG9vcCgpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFz
a1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVu
dCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGll
bnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNo
T3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCit2b2lk
IFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZp
Y2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVj
dXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVx
dWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRl
bnRpZmllciBmZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblBy
ZWxvYWRFbmFibGVkKQogewogICAgIFJlZiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3du
Y2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCpnbG9iYWxTY29wZSgpKTsKLSAgICBzZXJ2
aWNlV29ya2VyR2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpE
T01NYW5pcHVsYXRpb24sIFtzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCA9IFdURk1v
dmUoY2xpZW50KSwgY2xpZW50SWQsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJl
ciA9IFdURk1vdmUocmVmZXJyZXIpLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJ
ZGVudGlmaWVyXSgpIG11dGFibGUgewotICAgICAgICBTZXJ2aWNlV29ya2VyRmV0Y2g6OmRpc3Bh
dGNoRmV0Y2hFdmVudChXVEZNb3ZlKGNsaWVudCksIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwg
Y2xpZW50SWQsIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9w
dGlvbnMpLCBmZXRjaElkZW50aWZpZXIpOworICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+
ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3NlcnZp
Y2VXb3JrZXJHbG9iYWxTY29wZSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwg
cmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlciks
IG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0oKSBtdXRhYmxlIHsKKyAgICAgICAgU2Vydmlj
ZVdvcmtlckZldGNoOjpkaXNwYXRjaEZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudElkLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJl
ZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyLCBpc1NlcnZpY2VXb3Jr
ZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmgKaW5kZXggZDllMzM2NTE5YzVkMDViODM2Zjg0MTIwODkzNTMyZTc5YTQxYzMxZi4u
ZGVkM2MyNTBmNWVlMTY2ODY2M2M3YjlkMGU3YTk0MTI5MDIzYWJjNyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJUaHJlYWQuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsUG9zdFRh
c2tUb0ZpcmVNZXNzYWdlRXZlbnQoKTsKICAgICB2b2lkIHdpbGxQb3N0VGFza1RvRmlyZVB1c2hT
dWJzY3JpcHRpb25DaGFuZ2VFdmVudCgpOwogCi0gICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVGZXRj
aEV2ZW50KFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0
cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2
b2lkIHF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xp
ZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYm
LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBG
ZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFi
bGVkKTsKICAgICB2b2lkIHF1ZXVlVGFza1RvUG9zdE1lc3NhZ2UoTWVzc2FnZVdpdGhNZXNzYWdl
UG9ydHMmJiwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZv
aWQgcXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0Zp
cmVBY3RpdmF0ZUV2ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcApp
bmRleCBjZmQzNmExOGU4ZmM1YmFiZGQ1MmQ5Yjc0OTlmODk0MjIyMzZjYWU5Li5iM2NmMmM3M2Iy
MjM5MjU5Mzg0NTNiZjlmMDhiNTQwMjY1Y2MyNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJU
aHJlYWRQcm94eS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJl
YWRQcm94eTo6bm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpCiAgICAgfSwg
V29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVj
dGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2
aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhl
Y3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYgY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQordm9pZCBT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9w
dGlvbnMsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogewog
ICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6
OnN0YXJ0RmV0Y2ggJWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIApAQCAtMjIx
LDggKzIyMSw4IEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvCiAKICAgICBBU1NFUlQoIW1fb25n
b2luZ0ZldGNoVGFza3MuY29udGFpbnMoa2V5KSk7CiAgICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy5h
ZGQoa2V5LCBjbGllbnQuY29weVJlZigpKTsKLSAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9y
V29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwg
Y2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IHJlcXVlc3QuaXNv
bGF0ZWRDb3B5KCksIHJlZmVycmVyID0gcmVmZXJyZXIuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMg
PSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBmZXRjaElkZW50aWZpZXJdKGF1dG8mKSBtdXRhYmxl
IHsKLSAgICAgICAgdGhyZWFkKCkucXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVudChXVEZNb3ZlKGNs
aWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVy
cmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBwb3N0VGFza0Zv
ck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0g
UmVmIHsgKnRoaXMgfSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVz
dCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gcmVmZXJyZXIuaXNvbGF0ZWRD
b3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBmZXRjaElkZW50aWZpZXIs
IGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0oYXV0byYpIG11dGFibGUg
eworICAgICAgICB0aHJlYWQoKS5xdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFdURk1vdmUoY2xp
ZW50KSwgV1RGTW92ZShjbGllbnRJZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJy
ZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5h
dmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1v
ZGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9j
b250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKaW5kZXggZGE5NmYw
Zjc4NTdiNTU4ZWJjMjQzMzM3ZDg2YTQ0N2NlYzg5NmIwYS4uMGEzMzc5MjQ0ODBlYmY4MjY3NTNl
ZjU0MWEzZjFjZDRjNjkyNWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgK
QEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3Rp
ZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGluZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVu
dGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8
U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBT
dHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZv
aWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZp
ZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3Jp
cHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmlu
ZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2FuY2VsRmV0Y2go
U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJD
T1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbW92ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRl
bnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGY3YzY3YmQ5YjU2ZDk1
ZGRhNzM2NjlhOTM5N2RhMDQwN2JiMjIxYzAuLmVjN2IzYmMzMjFjNzMwNzE5ZGQ5NTMyNmNjNDVi
OGZlYmMxY2IyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3
IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJIVFRQUGFyc2Vy
cy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1
ZGUgIlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5oIgpAQCAtNTQsNiArNTUsNyBAQCBTV1Nl
cnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXImIHNlcnZlciwg
Y29uc3QgU2VydmljZVdvcmtlcgogICAgICwgbV9zb2Z0VXBkYXRlVGltZXIgeyAqdGhpcywgJlNX
U2VydmVyUmVnaXN0cmF0aW9uOjpzb2Z0VXBkYXRlIH0KIHsKICAgICBtX3Njb3BlVVJMLnJlbW92
ZUZyYWdtZW50SWRlbnRpZmllcigpOworICAgIG1fcHJlbG9hZFN0YXRlLmhlYWRlclZhbHVlID0g
InRydWUiX3M7CiB9CiAKIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp+U1dTZXJ2ZXJSZWdpc3RyYXRp
b24oKQpAQCAtMzgyLDYgKzM4NCwzOCBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzY2hl
ZHVsZVNvZnRVcGRhdGUoSXNBcHBJbml0aWF0ZWQgaXNBcHBJbml0aWF0ZWQpCiAgICAgbV9zb2Z0
VXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KHNvZnRVcGRhdGVEZWxheSk7CiB9CiAKKy8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5h
Z2VyLWVuYWJsZSwgc3RlcHMgcnVuIGluIHBhcmFsbGVsLgorc3RkOjpvcHRpb25hbDxFeGNlcHRp
b25EYXRhPiBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoKQor
eworICAgIC8vIEZJWE1FOiBQZXJzaXN0IHRoaXMgZGF0YS4KKyAgICBpZiAoIW1fYWN0aXZlV29y
a2VyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAi
Tm8gYWN0aXZlIHdvcmtlciJfcyB9OworICAgIG1fcHJlbG9hZFN0YXRlLmVuYWJsZWQgPSB0cnVl
OworICAgIHJldHVybiB7IH07Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNl
V29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5hZ2VyLWRpc2FibGUsIHN0ZXBzIHJ1biBp
biBwYXJhbGxlbC4KK3N0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gU1dTZXJ2ZXJSZWdpc3Ry
YXRpb246OmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZCgpCit7CisgICAgLy8gRklYTUU6IFBlcnNp
c3QgdGhpcyBkYXRhLgorICAgIGlmICghbV9hY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUgd29ya2VyIl9zIH07
CisgICAgbV9wcmVsb2FkU3RhdGUuZW5hYmxlZCA9IGZhbHNlOworICAgIHJldHVybiB7IH07Cit9
CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tbmF2aWdhdGlv
bnByZWxvYWRtYW5hZ2VyLXNldGhlYWRlcnZhbHVlLCBzdGVwcyBydW4gaW4gcGFyYWxsZWwuCitz
dGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFN0cmluZyYmIGhlYWRlclZhbHVlKQoreworICAgIC8v
IEZJWE1FOiBQZXJzaXN0IHRoaXMgZGF0YS4KKyAgICBpZiAoIWlzVmFsaWRIVFRQSGVhZGVyVmFs
dWUoaGVhZGVyVmFsdWUpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJv
ciwgIkludmFsaWQgaGVhZGVyIHZhbHVlIl9zIH07CisgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGFj
dGl2ZSB3b3JrZXIiX3MgfTsKKyAgICBtX3ByZWxvYWRTdGF0ZS5oZWFkZXJWYWx1ZSA9IFdURk1v
dmUoaGVhZGVyVmFsdWUpOworICAgIHJldHVybiB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
aCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uaAppbmRleCA3Mjg3MWI5YjBhMDA3OWRlMjM2YjMzNTkyZDZkY2ZhN2Y0ZWM2YjVlLi5i
OWZkMGQ5MjU0MDQ5MzQzZjI1NTU5YWVjOGIyOGExNGI2MjkyZWM1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lz
dHJhdGlvbi5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKKyNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgiCiAjaW5jbHVkZSAiU1dTZXJ2
ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2lu
Y2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmgiCkBAIC0xMTAsNiArMTExLDEx
IEBAIHB1YmxpYzoKICAgICBib29sIGlzQXBwSW5pdGlhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9p
c0FwcEluaXRpYXRlZDsgfQogICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJu
IG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBz
dGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IGVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKCk7Cisg
ICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBkaXNhYmxlTmF2
aWdhdGlvblByZWxvYWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEV4Y2Vw
dGlvbkRhdGE+IHNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU3RyaW5nJiYpOworICAg
IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgbmF2aWdhdGlvblByZWxvYWRTdGF0ZSgpIHsgcmV0dXJu
IG1fcHJlbG9hZFN0YXRlOyB9CisKIHByaXZhdGU6CiAgICAgdm9pZCBhY3RpdmF0ZSgpOwogICAg
IHZvaWQgaGFuZGxlQ2xpZW50VW5sb2FkKCk7CkBAIC0xMzgsNiArMTQ0LDcgQEAgcHJpdmF0ZToK
ICAgICBXZWJDb3JlOjpUaW1lciBtX3NvZnRVcGRhdGVUaW1lcjsKICAgICAKICAgICBib29sIG1f
aXNBcHBJbml0aWF0ZWQgeyB0cnVlIH07CisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBtX3By
ZWxvYWRTdGF0ZTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0
Y2hUYXNrLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcAppbmRleCAzNDhkMjdlN2NiZmEyM2M4NjY5NTM5M2Zk
ZDBjMDc1NDVlYTAyYzY5Li5kNzg3YjUxMGFkNzgwMWI4NzZmZGFmMThiY2VhNjBhMDY3NzQ3ZDdh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCkBAIC04OCwxMiAr
ODgsMTEgQEAgU2VydmljZVdvcmtlckZldGNoVGFzazo6U2VydmljZVdvcmtlckZldGNoVGFzayhX
ZWJTV1NlcnZlckNvbm5lY3Rpb24mIHN3U2VydmVyQ28KIAogICAgIG1fdGltZW91dFRpbWVyLT5z
dGFydE9uZVNob3QobG9hZGVyLmNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MoKS5uZXR3b3JrUHJvY2Vz
cygpLnNlcnZpY2VXb3JrZXJGZXRjaFRpbWVvdXQoKSk7CiAKLSAgICAvLyBGSVhNRTogQ29uc2lk
ZXIgZXh0ZW5kaW5nIHRoaXMgYmFzZWQgb24gbmF2aWdhdGlvbiBwcmVsb2FkIG1hbmFnZXIuCiAg
ICAgYm9vbCBzaG91bGREb05hdmlnYXRpb25QcmVsb2FkID0gc2Vzc2lvbiAmJiBpc05hdmlnYXRp
b25SZXF1ZXN0KGxvYWRlci5wYXJhbWV0ZXJzKCkub3B0aW9ucy5kZXN0aW5hdGlvbikgJiYgbG9h
ZGVyLm9yaWdpbmFsUmVxdWVzdCgpLmh0dHBNZXRob2QoKSA9PSAiR0VUIjsKLSAgICBpZiAoc2hv
dWxkRG9OYXZpZ2F0aW9uUHJlbG9hZCAmJiAhaXNXb3JrZXJSZWFkeSkgeworICAgIGlmIChzaG91
bGREb05hdmlnYXRpb25QcmVsb2FkICYmICghaXNXb3JrZXJSZWFkeSB8fCByZWdpc3RyYXRpb24u
bmF2aWdhdGlvblByZWxvYWRTdGF0ZSgpLmVuYWJsZWQpKSB7CiAgICAgICAgIE5ldHdvcmtMb2Fk
UGFyYW1ldGVycyBwYXJhbWV0ZXJzID0gbG9hZGVyLnBhcmFtZXRlcnMoKTsKICAgICAgICAgcGFy
YW1ldGVycy5yZXF1ZXN0ID0gbV9jdXJyZW50UmVxdWVzdDsKLSAgICAgICAgbV9wcmVsb2FkZXIg
PSBtYWtlVW5pcXVlPFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyPigqc2Vzc2lvbiwg
V1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgICAgIG1fcHJlbG9hZGVyID0gbWFrZVVuaXF1ZTxT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcj4oKnNlc3Npb24sIFdURk1vdmUocGFyYW1l
dGVycyksIHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKCksIGxvYWRlci5zaG91
bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSk7CiAgICAgICAgIHNlc3Npb24tPmFk
ZE5hdmlnYXRpb25QcmVsb2FkZXJUYXNrKCp0aGlzKTsKICAgICB9CiB9CkBAIC0xNTEsNyArMTUw
LDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrOjpzdGFydEZldGNoKCkKICAgICBhdXRv
IHJlcXVlc3QgPSBtX2N1cnJlbnRSZXF1ZXN0OwogICAgIGNsZWFuSFRUUFJlcXVlc3RIZWFkZXJz
Rm9yQWNjZXNzQ29udHJvbChyZXF1ZXN0LCBtX2xvYWRlci5wYXJhbWV0ZXJzKCkuaHR0cEhlYWRl
cnNUb0tlZXApOwogCi0gICAgYm9vbCBpc1NlbnQgPSBzZW5kVG9TZXJ2aWNlV29ya2VyKE1lc3Nh
Z2VzOjpXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6U3RhcnRGZXRjaCB7IG1fc2VydmVy
Q29ubmVjdGlvbklkZW50aWZpZXIsIG1fc2VydmljZVdvcmtlcklkZW50aWZpZXIsIG1fZmV0Y2hJ
ZGVudGlmaWVyLCByZXF1ZXN0LCBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHsgbV9j
dXJyZW50UmVxdWVzdC5odHRwQm9keSgpIH0sIHJlZmVycmVyIH0pOworICAgIGJvb2wgaXNTZW50
ID0gc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5l
Y3Rpb246OlN0YXJ0RmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IG1fY3VycmVudFJlcXVlc3QuaHR0cEJvZHkoKSB9LCBy
ZWZlcnJlciwgbV9wcmVsb2FkZXIgJiYgbV9wcmVsb2FkZXItPmlzU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkRW5hYmxlZCgpIH0pOwogICAgIEFTU0VSVF9VTlVTRUQoaXNTZW50LCBpc1Nl
bnQpOwogfQogCkBAIC0yODIsNyArMjgxLDcgQEAgdm9pZCBTZXJ2aWNlV29ya2VyRmV0Y2hUYXNr
OjpkaWROb3RIYW5kbGUoKQogICAgICAgICBtX3RpbWVvdXRUaW1lci0+c3RvcCgpOwogICAgIHNv
ZnRVcGRhdGVJZk5lZWRlZCgpOwogCi0gICAgaWYgKG1fcHJlbG9hZGVyKSB7CisgICAgaWYgKG1f
cHJlbG9hZGVyICYmICFtX3ByZWxvYWRlci0+aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRFbmFibGVkKCkpIHsKICAgICAgICAgbG9hZFJlc3BvbnNlRnJvbVByZWxvYWRlcigpOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJv
Y2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcCBi
L1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2Vy
TmF2aWdhdGlvblByZWxvYWRlci5jcHAKaW5kZXggMzNhOWQ0YjZkZmI4ODEwZDJmNDI3ZTBmODc2
Yjg4MWYwNDBlYzJlNi4uYWVlM2M1ZTgwMWJkMzAyMThmZTliNzIyMjI1YjMxYTRhNGRmMjE4MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1Nl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2Fk
ZXIuY3BwCkBAIC0zMiw0NiArMzIsNjcgQEAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGUuaCIKICNp
bmNsdWRlICJOZXR3b3JrTG9hZC5oIgogI2luY2x1ZGUgIk5ldHdvcmtTZXNzaW9uLmgiCisjaW5j
bHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg+CiAKIG5hbWVzcGFjZSBXZWJL
aXQgewogCiB1c2luZyBuYW1lc3BhY2UgV2ViQ29yZTsKIAotU2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkZXI6OlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyKE5ldHdvcmtTZXNz
aW9uJiBzZXNzaW9uLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQorU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZGVyKE5ldHdvcmtTZXNzaW9uJiBzZXNzaW9uLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJh
bWV0ZXJzLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlJiBzdGF0ZSwgYm9v
bCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpYykKICAgICA6IG1fc2Vzc2lvbihz
ZXNzaW9uKQorICAgICwgbV9wYXJhbWV0ZXJzKFdURk1vdmUocGFyYW1ldGVycykpCisgICAgLCBt
X3N0YXRlKHN0YXRlKQorICAgICwgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJp
Y3Moc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpCiB7CiAgICAgUkVMRUFT
RV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlciAlcCIsIHRoaXMpOwotICAgIGlmIChzZXNz
aW9uLmNhY2hlKCkpIHsKLSAgICAgICAgTmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGdsb2Jh
bElEIHsgcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgcGFyYW1ldGVycy53ZWJQYWdlSUQsIHBh
cmFtZXRlcnMud2ViRnJhbWVJRCB9OwotICAgICAgICBzZXNzaW9uLmNhY2hlKCktPnJldHJpZXZl
KHBhcmFtZXRlcnMucmVxdWVzdCwgZ2xvYmFsSUQsIHBhcmFtZXRlcnMuaXNOYXZpZ2F0aW5nVG9B
cHBCb3VuZERvbWFpbiwgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH0sIHBhcmFt
ZXRlcnMgPSBXVEZNb3ZlKHBhcmFtZXRlcnMpXShhdXRvJiYgZW50cnksIGF1dG8mJikgbXV0YWJs
ZSB7CisgICAgaWYgKCFtX3N0YXRlLmVuYWJsZWQgfHwgcGFyYW1ldGVycy5pc01haW5GcmFtZU5h
dmlnYXRpb24pCisgICAgICAgIHN0YXJ0KCk7Cit9CisKK3ZvaWQgU2VydmljZVdvcmtlck5hdmln
YXRpb25QcmVsb2FkZXI6OnN0YXJ0KCkKK3sKKyAgICBpZiAobV9pc1N0YXJ0ZWQpCisgICAgICAg
IHJldHVybjsKKyAgICBtX2lzU3RhcnRlZCA9IHRydWU7CisKKyAgICBpZiAoIW1fc2Vzc2lvbikg
eworICAgICAgICBkaWRGYWlsTG9hZGluZyhSZXNvdXJjZUVycm9yIHsgZXJyb3JEb21haW5XZWJL
aXRJbnRlcm5hbCwgMCwgeyB9LCAiTm8gc2Vzc2lvbiBmb3IgcHJlbG9hZCJfcyB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKworICAgIGlmIChtX3Nlc3Npb24tPmNhY2hlKCkpIHsKKyAgICAg
ICAgTmV0d29ya0NhY2hlOjpHbG9iYWxGcmFtZUlEIGdsb2JhbElEIHsgbV9wYXJhbWV0ZXJzLndl
YlBhZ2VQcm94eUlELCBtX3BhcmFtZXRlcnMud2ViUGFnZUlELCBtX3BhcmFtZXRlcnMud2ViRnJh
bWVJRCB9OworICAgICAgICBtX3Nlc3Npb24tPmNhY2hlKCktPnJldHJpZXZlKG1fcGFyYW1ldGVy
cy5yZXF1ZXN0LCBnbG9iYWxJRCwgbV9wYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmRE
b21haW4sIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XShhdXRvJiYgZW50cnks
IGF1dG8mJikgbXV0YWJsZSB7CiAgICAgICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IG1faXNDYW5j
ZWxsZWQpCiAgICAgICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICAgICAgaWYgKCFtX3Nlc3Np
b24pIHsKLSAgICAgICAgICAgICAgICBkaWRGYWlsTG9hZGluZyhSZXNvdXJjZUVycm9yIHsgUmVz
b3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uIH0pOwotICAgICAgICAgICAgICAgIHJldHVy
bjsKLSAgICAgICAgICAgIH0KKwogICAgICAgICAgICAgaWYgKGVudHJ5ICYmICFlbnRyeS0+bmVl
ZHNWYWxpZGF0aW9uKCkpIHsKICAgICAgICAgICAgICAgICBsb2FkV2l0aENhY2hlRW50cnkoKmVu
dHJ5KTsKICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICB9CiAKLSAgICAgICAg
ICAgIHBhcmFtZXRlcnMucmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZXNvdXJjZVJlcXVlc3RDYWNo
ZVBvbGljeTo6UmVmcmVzaEFueUNhY2hlRGF0YSk7CisgICAgICAgICAgICBtX3BhcmFtZXRlcnMu
cmVxdWVzdC5zZXRDYWNoZVBvbGljeShSZXNvdXJjZVJlcXVlc3RDYWNoZVBvbGljeTo6UmVmcmVz
aEFueUNhY2hlRGF0YSk7CiAgICAgICAgICAgICBpZiAoZW50cnkpIHsKICAgICAgICAgICAgICAg
ICBtX2NhY2hlRW50cnkgPSBXVEZNb3ZlKGVudHJ5KTsKIAogICAgICAgICAgICAgICAgIGF1dG8g
ZVRhZyA9IG1fY2FjaGVFbnRyeS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRl
ck5hbWU6OkVUYWcpOwogICAgICAgICAgICAgICAgIGlmICghZVRhZy5pc0VtcHR5KCkpCi0gICAg
ICAgICAgICAgICAgICAgIHBhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRU
UEhlYWRlck5hbWU6OklmTm9uZU1hdGNoLCBlVGFnKTsKKyAgICAgICAgICAgICAgICAgICAgbV9w
YXJhbWV0ZXJzLnJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk5v
bmVNYXRjaCwgZVRhZyk7CiAKICAgICAgICAgICAgICAgICBhdXRvIGxhc3RNb2RpZmllZCA9IG1f
Y2FjaGVFbnRyeS0+cmVzcG9uc2UoKS5odHRwSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6Okxh
c3RNb2RpZmllZCk7CiAgICAgICAgICAgICAgICAgaWYgKCFsYXN0TW9kaWZpZWQuaXNFbXB0eSgp
KQotICAgICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLnJlcXVlc3Quc2V0SFRUUEhlYWRlckZp
ZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk1vZGlmaWVkU2luY2UsIGxhc3RNb2RpZmllZCk7CisgICAg
ICAgICAgICAgICAgICAgIG1fcGFyYW1ldGVycy5yZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChI
VFRQSGVhZGVyTmFtZTo6SWZNb2RpZmllZFNpbmNlLCBsYXN0TW9kaWZpZWQpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAoIW1fc2Vzc2lvbikgeworICAgICAgICAgICAgICAgIGRp
ZEZhaWxMb2FkaW5nKFJlc291cmNlRXJyb3IgeyBSZXNvdXJjZUVycm9yOjpUeXBlOjpDYW5jZWxs
YXRpb24gfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQotICAgICAg
ICAgICAgbG9hZEZyb21OZXR3b3JrKCptX3Nlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycykpOwor
ICAgICAgICAgICAgbG9hZEZyb21OZXR3b3JrKCk7CiAgICAgICAgIH0pOwogICAgICAgICByZXR1
cm47CiAgICAgfQotICAgIGxvYWRGcm9tTmV0d29yayhzZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRl
cnMpKTsKKyAgICBsb2FkRnJvbU5ldHdvcmsoKTsKIH0KIAogU2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkZXI6On5TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcigpCkBAIC05MCwz
MSArMTExLDQyIEBAIHZvaWQgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OmNhbmNl
bCgpCiB2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpsb2FkV2l0aENhY2hl
RW50cnkoTmV0d29ya0NhY2hlOjpFbnRyeSYgZW50cnkpCiB7CiAgICAgZGlkUmVjZWl2ZVJlc3Bv
bnNlKFJlc291cmNlUmVzcG9uc2UgeyBlbnRyeS5yZXNwb25zZSgpIH0sIFtib2R5ID0gUmVmUHRy
IHsgZW50cnkuYnVmZmVyKCkgfSwgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0bykg
bXV0YWJsZSB7Ci0gICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgIGlmICghd2Vha1RoaXMg
fHwgd2Vha1RoaXMtPm1faXNDYW5jZWxsZWQpCiAgICAgICAgICAgICByZXR1cm47CiAKKyAgICAg
ICAgc2l6ZV90IHNpemUgID0gMDsKICAgICAgICAgaWYgKGJvZHkpIHsKLSAgICAgICAgICAgIGF1
dG8gc2l6ZSA9IGJvZHktPnNpemUoKTsKKyAgICAgICAgICAgIHNpemUgPSBib2R5LT5zaXplKCk7
CiAgICAgICAgICAgICB3ZWFrVGhpcy0+ZGlkUmVjZWl2ZUJ1ZmZlcihib2R5LnJlbGVhc2VOb25O
dWxsKCksIHNpemUpOworICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcykKKyAgICAgICAgICAgICAg
ICByZXR1cm47CiAgICAgICAgIH0KIAotICAgICAgICBpZiAoIXdlYWtUaGlzKQotICAgICAgICAg
ICAgcmV0dXJuOwotCiAgICAgICAgIE5ldHdvcmtMb2FkTWV0cmljcyBuZXR3b3JrTG9hZE1ldHJp
Y3M7CiAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5tYXJrQ29tcGxldGUoKTsKICAgICAgICAg
bmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlQm9keUJ5dGVzUmVjZWl2ZWQgPSAwOwotICAgICAg
ICBuZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VCb2R5RGVjb2RlZFNpemUgPSAwOworICAgICAg
ICBuZXR3b3JrTG9hZE1ldHJpY3MucmVzcG9uc2VCb2R5RGVjb2RlZFNpemUgPSBzaXplOworICAg
ICAgICBpZiAod2Vha1RoaXMtPnNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygp
KSB7CisgICAgICAgICAgICBhdXRvIGFkZGl0aW9uYWxNZXRyaWNzID0gV2ViQ29yZTo6QWRkaXRp
b25hbE5ldHdvcmtMb2FkTWV0cmljc0ZvcldlYkluc3BlY3Rvcjo6Y3JlYXRlKCk7CisgICAgICAg
ICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVxdWVzdEhlYWRlckJ5dGVzU2VudCA9IDA7CisgICAg
ICAgICAgICBhZGRpdGlvbmFsTWV0cmljcy0+cmVxdWVzdEJvZHlCeXRlc1NlbnQgPSAwOworICAg
ICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlc3BvbnNlSGVhZGVyQnl0ZXNSZWNlaXZlZCA9
IDA7CisgICAgICAgICAgICBuZXR3b3JrTG9hZE1ldHJpY3MuYWRkaXRpb25hbE5ldHdvcmtMb2Fk
TWV0cmljc0ZvcldlYkluc3BlY3RvciA9IFdURk1vdmUoYWRkaXRpb25hbE1ldHJpY3MpOworICAg
ICAgICB9CiAgICAgICAgIHdlYWtUaGlzLT5kaWRGaW5pc2hMb2FkaW5nKG5ldHdvcmtMb2FkTWV0
cmljcyk7CiAgICAgfSk7CiAgICAgZGlkQ29tcGxldGUoKTsKIH0KIAotdm9pZCBTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9hZEZyb21OZXR3b3JrKE5ldHdvcmtTZXNzaW9uJiBz
ZXNzaW9uLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiBwYXJhbWV0ZXJzKQordm9pZCBTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9hZEZyb21OZXR3b3JrKCkKIHsKKyAgICBBU1NF
UlQobV9zZXNzaW9uKTsKICAgICBSRUxFQVNFX0xPRyhTZXJ2aWNlV29ya2VyLCAiU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OmxvYWRGcm9tTmV0d29yayAlcCIsIHRoaXMpOwogCi0g
ICAgbV9uZXR3b3JrTG9hZCA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCBudWxscHRy
LCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCBzZXNzaW9uKTsKKyAgICBpZiAobV9zdGF0ZS5lbmFibGVk
KQorICAgICAgICBtX3BhcmFtZXRlcnMucmVxdWVzdC5hZGRIVFRQSGVhZGVyRmllbGQoIlNlcnZp
Y2UtV29ya2VyLU5hdmlnYXRpb24tUHJlbG9hZCJfcywgbV9zdGF0ZS5oZWFkZXJWYWx1ZSk7CisK
KyAgICBtX25ldHdvcmtMb2FkID0gbWFrZVVuaXF1ZTxOZXR3b3JrTG9hZD4oKnRoaXMsIG51bGxw
dHIsIFdURk1vdmUobV9wYXJhbWV0ZXJzKSwgKm1fc2Vzc2lvbik7CiAgICAgbV9uZXR3b3JrTG9h
ZC0+c3RhcnQoKTsKIH0KIApAQCAtMTc3LDYgKzIwOSw4IEBAIHZvaWQgU2VydmljZVdvcmtlck5h
dmlnYXRpb25QcmVsb2FkZXI6OmRpZENvbXBsZXRlKCkKIAogdm9pZCBTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRlcjo6d2FpdEZvclJlc3BvbnNlKFJlc3BvbnNlQ2FsbGJhY2smJiBjYWxs
YmFjaykKIHsKKyAgICBzdGFydCgpOworCiAgICAgaWYgKCFtX2Vycm9yLmlzTnVsbCgpKSB7CiAg
ICAgICAgIGNhbGxiYWNrKCk7CiAgICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKaW5kZXggMGFmY2IwNzA3ZGFlZDY3
ZjBhMjc3OTY3ZDVlYzQ3MmRjMGZlMGM5Ny4uMWMwNmQ0ZmZhMGVmZWZjMGMxZmRkZGU0ZjIxZGUy
NjRiYmRhMDZjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2
aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmgKKysrIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyLmgKQEAgLTI5LDYgKzI5LDggQEAKIAogI2luY2x1ZGUgIk5ldHdvcmtDYWNo
ZUVudHJ5LmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWRDbGllbnQuaCIKKyNpbmNsdWRlICJOZXR3
b3JrTG9hZFBhcmFtZXRlcnMuaCIKKyNpbmNsdWRlIDxXZWJDb3JlL05hdmlnYXRpb25QcmVsb2Fk
U3RhdGUuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5oPgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CkBAIC0zOCwxMyArNDAsMTIgQEAgY2xhc3MgTmV0d29ya0xvYWRNZXRyaWNzOwogbmFtZXNwYWNl
IFdlYktpdCB7CiAKIGNsYXNzIE5ldHdvcmtMb2FkOwotY2xhc3MgTmV0d29ya0xvYWRQYXJhbWV0
ZXJzOwogY2xhc3MgTmV0d29ya1Nlc3Npb247CiAKIGNsYXNzIFNlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyIGZpbmFsIDogcHVibGljIE5ldHdvcmtMb2FkQ2xpZW50LCBwdWJsaWMgQ2Fu
TWFrZVdlYWtQdHI8U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI+IHsKICAgICBXVEZf
TUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKLSAgICBTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlcihOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmKTsKKyAg
ICBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcihOZXR3b3JrU2Vzc2lvbiYsIE5ldHdv
cmtMb2FkUGFyYW1ldGVycyYmLCBjb25zdCBXZWJDb3JlOjpOYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
JiwgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MpOwogICAgIH5TZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcigpOwogCiAgICAgdm9pZCBjYW5jZWwoKTsKQEAg
LTU3LDYgKzU4LDcgQEAgcHVibGljOgogICAgIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlRXJyb3Im
IGVycm9yKCkgY29uc3QgeyByZXR1cm4gbV9lcnJvcjsgfQogICAgIGNvbnN0IFdlYkNvcmU6OlJl
c291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKCkgY29uc3QgeyByZXR1cm4gbV9yZXNwb25zZTsgfQog
ICAgIGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYgbmV0d29ya0xvYWRNZXRyaWNz
KCkgY29uc3QgeyByZXR1cm4gbV9uZXR3b3JrTG9hZE1ldHJpY3M7IH0KKyAgICBib29sIGlzU2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpIGNvbnN0IHsgcmV0dXJuIG1fc3Rh
dGUuZW5hYmxlZDsgfQogCiBwcml2YXRlOgogICAgIC8vIE5ldHdvcmtMb2FkQ2xpZW50LgpAQCAt
NjgsMTUgKzcwLDIyIEBAIHByaXZhdGU6CiAgICAgdm9pZCBkaWRSZWNlaXZlQnVmZmVyKFJlZjxX
ZWJDb3JlOjpTaGFyZWRCdWZmZXI+JiYsIGludCByZXBvcnRlZEVuY29kZWREYXRhTGVuZ3RoKSBm
aW5hbDsKICAgICB2b2lkIGRpZEZpbmlzaExvYWRpbmcoY29uc3QgV2ViQ29yZTo6TmV0d29ya0xv
YWRNZXRyaWNzJikgZmluYWw7CiAgICAgdm9pZCBkaWRGYWlsTG9hZGluZyhjb25zdCBXZWJDb3Jl
OjpSZXNvdXJjZUVycm9yJikgZmluYWw7CisgICAgYm9vbCBzaG91bGRDYXB0dXJlRXh0cmFOZXR3
b3JrTG9hZE1ldHJpY3MoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX3Nob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljczsgfQogCisgICAgdm9pZCBzdGFydCgpOwogICAgIHZvaWQgbG9h
ZFdpdGhDYWNoZUVudHJ5KE5ldHdvcmtDYWNoZTo6RW50cnkmKTsKLSAgICB2b2lkIGxvYWRGcm9t
TmV0d29yayhOZXR3b3JrU2Vzc2lvbiYsIE5ldHdvcmtMb2FkUGFyYW1ldGVycyYmKTsKKyAgICB2
b2lkIGxvYWRGcm9tTmV0d29yaygpOwogICAgIHZvaWQgZGlkQ29tcGxldGUoKTsKIAogICAgIHN0
ZDo6dW5pcXVlX3B0cjxOZXR3b3JrTG9hZD4gbV9uZXR3b3JrTG9hZDsKICAgICBXZWFrUHRyPE5l
dHdvcmtTZXNzaW9uPiBtX3Nlc3Npb247CisgICAgYm9vbCBtX2lzU3RhcnRlZCB7IGZhbHNlIH07
CiAgICAgYm9vbCBtX2lzQ2FuY2VsbGVkIHsgZmFsc2UgfTsKIAorICAgIE5ldHdvcmtMb2FkUGFy
YW1ldGVycyBtX3BhcmFtZXRlcnM7CisgICAgV2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0
ZSBtX3N0YXRlOworICAgIGJvb2wgbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJp
Y3MgeyBmYWxzZSB9OworCiAgICAgc3RkOjp1bmlxdWVfcHRyPE5ldHdvcmtDYWNoZTo6RW50cnk+
IG1fY2FjaGVFbnRyeTsKICAgICBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MgbV9uZXR3b3Jr
TG9hZE1ldHJpY3M7CiAgICAgV2ViQ29yZTo6UmVzb3VyY2VSZXNwb25zZSBtX3Jlc3BvbnNlOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAppbmRleCAxODhmMjA5OWI4NTAz
ZTZmYzQ5MTU4MDkyNDBkNzIxMTJjZDZmMGM0Li4xMjkxMThkMDU5ZDFiMGIwNjM1N2I5NWJmYzdh
Njk2YjE2ZWI2ZGVhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1Nl
cnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcApA
QCAtNTIzLDYgKzUyMyw0NiBAQCB2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZmV0Y2hUYXNr
VGltZWRPdXQoU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcgogICAgIHdvcmtlci0+
dGVybWluYXRlKCk7CiB9CiAKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjplbmFibGVOYXZp
Z2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmIGNhbGxi
YWNrKQoreworICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlv
bihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbikgeworICAg
ICAgICBjYWxsYmFjayhFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsIHsgIk5vIHJl
Z2lzdHJhdGlvbiJfcyB9IH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNr
KHJlZ2lzdHJhdGlvbi0+ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoKSk7Cit9CisKK3ZvaWQgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
RXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiByZWdpc3Ry
YXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7
CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uRGF0
YSB7IEludmFsaWRTdGF0ZUVycm9yLCB7ICJObyByZWdpc3RyYXRpb24iX3MgfSB9KTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxsYmFjayhyZWdpc3RyYXRpb24tPmRpc2FibGVOYXZp
Z2F0aW9uUHJlbG9hZCgpKTsKK30KKwordm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OnNldE5h
dmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYgaGVhZGVyVmFs
dWUsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgYXV0byogcmVn
aXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9uKHJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uKSB7CisgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlv
bkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgeyAiTm8gcmVnaXN0cmF0aW9uIl9zIH0gfSk7Cisg
ICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FsbGJhY2socmVnaXN0cmF0aW9uLT5zZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdURk1vdmUoaGVhZGVyVmFsdWUpKSk7Cit9CisKK3Zv
aWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yTmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrJiYgY2FsbGJh
Y2spCit7CisgICAgYXV0byogcmVnaXN0cmF0aW9uID0gc2VydmVyKCkuZ2V0UmVnaXN0cmF0aW9u
KHJlZ2lzdHJhdGlvbklkZW50aWZpZXIpOworICAgIGlmICghcmVnaXN0cmF0aW9uKSB7CisgICAg
ICAgIGNhbGxiYWNrKG1ha2VVbmV4cGVjdGVkKEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVF
cnJvciwgeyB9IH0pKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBjYWxsYmFjayhyZWdp
c3RyYXRpb24tPm5hdmlnYXRpb25QcmVsb2FkU3RhdGUoKSk7Cit9CisKIH0gLy8gbmFtZXNwYWNl
IFdlYktpdAogCiAjdW5kZWYgU1dTRVJWRVJDT05ORUNUSU9OX1JFTEVBU0VfTE9HCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2
ZXJDb25uZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3Jr
ZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKaW5kZXggMTc0ZmU3MjY2NDgxYTMzZDkyMjQ3NGNi
NDdjYjdkOWZjYzI1M2IyNi4uOTZhMmNiMGQxY2E5OTc5Y2ZkNDUxYTc3ZTU1ZWU3Y2I0NTEyZGVh
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaApAQCAtMzIsNiArMzIsNyBA
QAogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJGZXRjaFRhc2suaCIKICNpbmNsdWRlIDxXZWJDb3Jl
L0V4Y2VwdGlvbk9yLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9GZXRjaElkZW50aWZpZXIuaD4KKyNp
bmNsdWRlIDxXZWJDb3JlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1Byb2Nlc3NJZGVudGlmaWVyLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdXNoUGVybWlzc2lv
blN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9QdXNoU3Vic2NyaXB0aW9uRGF0YS5oPgpAQCAt
MTI4LDYgKzEyOSwxMyBAQCBwcml2YXRlOgogICAgIHZvaWQgcG9zdE1lc3NhZ2VUb1NlcnZpY2VX
b3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb24sIFdlYkNv
cmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzJiYsIGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJPckNsaWVudElkZW50aWZpZXImIHNvdXJjZSk7CiAgICAgdm9pZCBjb250cm9sQ2xpZW50KFdl
YkNvcmU6OlNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyLCBXZWJDb3JlOjpTV1NlcnZl
clJlZ2lzdHJhdGlvbiYsIGNvbnN0IFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCYpOwogCisgICAg
dXNpbmcgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4mJik+OworICAgIHZvaWQgZW5hYmxl
TmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpOworICAgIHZvaWQgZGlzYWJsZU5hdmln
YXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVy
LCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB2b2lkIHNldE5hdmlnYXRpb25QcmVs
b2FkSGVhZGVyVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIFN0cmluZyYmLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB1c2luZyBFeGNl
cHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhwZWN0ZWQ8V2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSwgV2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4mJik+OworICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JO
YXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJik7CisKICAgICBVUkwgY2xpZW50VVJMRnJv
bUlkZW50aWZpZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50SWRlbnRpZmllcik7CiAK
ICAgICBJUEM6OkNvbm5lY3Rpb24qIG1lc3NhZ2VTZW5kZXJDb25uZWN0aW9uKCkgY29uc3QgZmlu
YWwgeyByZXR1cm4gbV9jb250ZW50Q29ubmVjdGlvbi5wdHIoKTsgfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KaW5kZXggYzk3ZDUyYzcyMWYw
ZGMyZWNjMzgxMDUxZjM3MmVhMDBhZjk3N2Y2ZS4uYWUyYjI3ZjRlZDY1Nzg4YzU4OGU2MWI1OTc1
OGNlODI4N2UyY2NjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9T
ZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluCkBAIC01MSw2ICs1MSwxMSBAQCBtZXNzYWdlcyAtPiBXZWJTV1NlcnZl
ckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgVW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZp
Y2UoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmll
cikgLT4gKEV4cGVjdGVkPGJvb2wsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5
bmMKICAgICBHZXRQdXNoU3Vic2NyaXB0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlB1c2hTdWJzY3JpcHRpb25EYXRhPiwgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVz
dWx0KSBBc3luYwogICAgIEdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPHVpbnQ4
X3QsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMgCisKKyAgICBFbmFibGVO
YXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiByZXN1bHQpIEFzeW5jCisgICAgRGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKKyAgICBTZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyIGlkZW50aWZpZXIsIFN0cmluZyB2YWx1ZSkgLT4gKHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYworICAgIEdldE5hdmlnYXRpb25Q
cmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIg
aWRlbnRpZmllcikgLT4gKEV4cGVjdGVkPFdlYkNvcmU6Ok5hdmlnYXRpb25QcmVsb2FkU3RhdGUs
IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKIH0KIAogI2VuZGlmIC8vIEVO
QUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCmluZGV4IDQ1MjJhMDI4N2M0
YzgzYTRlMjgzYjYzZmExNjQwY2MyZDhhMTM2YWUuLjE4MjYwNWI4ZTBlMzJlZjA1YTM5MWZjYzA5
M2IwNDQ1ZjdkMDY2YTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtMjY1LDYgKzI2NSw0MiBA
QCB2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cgogICAgIH0pOwogfQogCit2b2lkIFdlYlNXQ2xpZW50
Q29ubmVjdGlvbjo6ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9u
T3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVz
c2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6RW5hYmxlTmF2aWdhdGlvblByZWxvYWQgeyBy
ZWdpc3RyYXRpb25JZGVudGlmaWVyIH0sIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShh
dXRvJiYgZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICBy
ZXR1cm4gY2FsbGJhY2soZXJyb3ItPnRvRXhjZXB0aW9uKCkpOworICAgICAgICBjYWxsYmFjayh7
IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6ZGlzYWJsZU5h
dmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYgY2Fs
bGJhY2spCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNv
bm5lY3Rpb246OkRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZCB7IHJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIgfSwgW2NhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKGF1dG8mJiBlcnJvcikgbXV0YWJs
ZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAgICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJv
ci0+dG9FeGNlcHRpb24oKSk7CisgICAgICAgIGNhbGxiYWNrKHsgfSk7CisgICAgfSk7Cit9CisK
K3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9uOjpzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZh
bHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIFN0cmluZyYmIGhlYWRlclZhbHVlLCBFeGNlcHRpb25PclZvaWRDYWxs
YmFjayYmIGNhbGxiYWNrKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpTZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlIHsgcmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgaGVhZGVyVmFsdWUgfSwgW2NhbGxiYWNrID0gV1RGTW92ZShj
YWxsYmFjayldKGF1dG8mJiBlcnJvcikgbXV0YWJsZSB7CisgICAgICAgIGlmIChlcnJvcikKKyAg
ICAgICAgICAgIHJldHVybiBjYWxsYmFjayhlcnJvci0+dG9FeGNlcHRpb24oKSk7CisgICAgICAg
IGNhbGxiYWNrKHsgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV2ViU1dDbGllbnRDb25uZWN0aW9u
OjpnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yTmF2aWdh
dGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgc2VuZFdpdGhBc3lu
Y1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkdldE5hdmlnYXRpb25QcmVs
b2FkU3RhdGUgeyByZWdpc3RyYXRpb25JZGVudGlmaWVyIH0sIFtjYWxsYmFjayA9IFdURk1vdmUo
Y2FsbGJhY2spXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKCFyZXN1bHQu
aGFzX3ZhbHVlKCkpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2socmVzdWx0LmVycm9yKCku
dG9FeGNlcHRpb24oKSk7CisgICAgICAgIGNhbGxiYWNrKFdURk1vdmUoKnJlc3VsdCkpOworICAg
IH0pOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3Jh
Z2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmgKaW5kZXggM2QxODk1ODg0MDE2ZDI4YzY3YTA5MWUy
YTBjMjBmNmZmZmEzOWNjYS4uZTJhMWQzNmZjOGJiOWFhMTY0NmFhNWY3ZDI0NTQwMmFjMGMyNjhh
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGll
bnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2Vi
U1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTk1LDYgKzk1LDExIEBAIHByaXZhdGU6CiAgICAgdm9p
ZCBnZXRQdXNoU3Vic2NyaXB0aW9uKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBHZXRQdXNoU3Vic2NyaXB0aW9uQ2FsbGJhY2smJikgZmluYWw7CiAgICAgdm9p
ZCBnZXRQdXNoUGVybWlzc2lvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyLCBHZXRQdXNoUGVybWlzc2lvblN0YXRlQ2FsbGJhY2smJikgZmluYWw7CiAK
KyAgICB2b2lkIGVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKSBmaW5hbDsK
KyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmluYWw7
CisgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiwgRXhjZXB0aW9uT3JWb2lk
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25Pck5h
dmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayYmKSBmaW5hbDsKKwogICAgIHZvaWQgc2NoZWR1
bGVTdG9yYWdlSm9iKGNvbnN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhJik7CiAKICAg
ICB2b2lkIHJ1bk9yRGVsYXlUYXNrRm9ySW1wb3J0KEZ1bmN0aW9uPHZvaWQoKT4mJiB0YXNrKTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdl
L1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcAppbmRleCBhYTc0M2M2MmUzZjNiNTU0
M2NhN2NmYzdiNTJlMmUzMGFkOTkxOWNkLi5mODYyOWJlMDA2NTBiMzkyYjkwYzRmYTM5MTkxZmM5
NDg0MGZhYjAwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCkBAIC0yMzcs
NyArMjM3LDcgQEAgdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6Y29udGludWVE
aWRSZWNlaXZlRmV0Y2hSZXNwb25zZShTV1NlcnZlckNvbm4KICAgICAgICAgc2VydmljZVdvcmtl
clRocmVhZFByb3h5LT5jb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKHNlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyLCBmZXRjaElkZW50aWZpZXIpOwogfQogCi12b2lkIFdlYlNXQ29udGV4
dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZp
ZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBS
ZXNvdXJjZVJlcXVlc3QmJiByZXF1ZXN0LCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBJUEM6OkZv
cm1EYXRhUmVmZXJlbmNlJiYgZm9ybURhdGEsIFN0cmluZyYmIHJlZmVycmVyKQordm9pZCBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRp
ZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRp
ZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywg
SVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlciwgYm9v
bCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpCiB7CiAgICAgYXV0byog
c2VydmljZVdvcmtlclRocmVhZFByb3h5ID0gU1dDb250ZXh0TWFuYWdlcjo6c2luZ2xldG9uKCku
c2VydmljZVdvcmtlclRocmVhZFByb3h5KHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyKTsKICAgICBp
ZiAoIXNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSkgewpAQCAtMjU2LDcgKzI1Niw3IEBAIHZvaWQg
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2CiAgICAgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250
ZXh0SWRlbnRpZmllcj4gY2xpZW50SWQgPSBvcHRpb25zLmNsaWVudElkZW50aWZpZXI7CiAKICAg
ICByZXF1ZXN0LnNldEhUVFBCb2R5KGZvcm1EYXRhLnRha2VEYXRhKCkpOwotICAgIHNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS0+c3RhcnRGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
ZmV0Y2hJZGVudGlmaWVyLCBXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSk7CisgICAg
c2VydmljZVdvcmtlclRocmVhZFByb3h5LT5zdGFydEZldGNoKHNlcnZlckNvbm5lY3Rpb25JZGVu
dGlmaWVyLCBmZXRjaElkZW50aWZpZXIsIFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShjbGllbnRJ
ZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMp
LCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogfQogCiB2b2lkIFdl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpwb3N0TWVzc2FnZVRvU2VydmljZVdvcmtlcihT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBkZXN0aW5hdGlvbklkZW50aWZpZXIsIE1lc3NhZ2VXaXRo
TWVzc2FnZVBvcnRzJiYgbWVzc2FnZSwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJj
ZURhdGEpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAppbmRleCA5N2FlNWE4NGM0MmY0
MzVjM2ExZWNiNGZkM2ZhYTU0NWVmZjNkYTdjLi5lN2RmN2Q5NDFhY2U5MDY0MTRlY2ZmZjUwYzRi
YTQ3OWQxNDY0ZGQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKQEAgLTkwLDcg
KzkwLDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIHNlcnZpY2VXb3JrZXJGYWlsZWRUb1N0YXJ0KHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VydmljZVdvcmtlckpvYkRhdGFJZGVudGlmaWVyPiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIGNvbnN0IFN0cmluZyYgZXhjZXB0aW9uTWVz
c2FnZSkgZmluYWw7CiAgICAgdm9pZCBpbnN0YWxsU2VydmljZVdvcmtlcihXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyQ29udGV4dERhdGEmJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEmJiwgU3Ry
aW5nJiYgdXNlckFnZW50LCBXZWJDb3JlOjpXb3JrZXJUaHJlYWRNb2RlKTsKICAgICB2b2lkIHVw
ZGF0ZUFwcEluaXRpYXRlZFZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCk7Ci0gICAgdm9pZCBzdGFydEZl
dGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJl
c291cmNlUmVxdWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYmLCBTdHJpbmcmJiByZWZlcnJlcik7CisgICAgdm9pZCBzdGFydEZldGNoKFdlYkNv
cmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVx
dWVzdCYmLCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMmJiwgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYm
LCBTdHJpbmcmJiByZWZlcnJlciwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZEVuYWJsZWQpOwogICAgIHZvaWQgY2FuY2VsRmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6
OkZldGNoSWRlbnRpZmllcik7CiAgICAgdm9pZCBjb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3Bv
bnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwogICAgIHZvaWQg
cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZp
ZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0
cyYmLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGllbnREYXRhJiYgc291cmNlRGF0YSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRN
YW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IDE1
NGZhYmQzNTQ5NmViY2ZiYTE1YjcyY2I1YTdhYjVlZDczNzc5NmYuLjUyOGJlY2E0ZWE0Y2I1NzU4
NmM1Zjg2ODFmZGFhYWIyZTM3MTFkMmMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJD
b25uZWN0aW9uLm1lc3NhZ2VzLmluCkBAIC0yNSw3ICsyNSw3IEBACiBtZXNzYWdlcyAtPiBXZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbiBOb3RSZWZDb3VudGVkIHsKICAgICBJbnN0YWxsU2Vy
dmljZVdvcmtlcihzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhIGNvbnRl
eHREYXRhLCBzdHJ1Y3QgV2ViQ29yZTo6U2VydmljZVdvcmtlckRhdGEgd29ya2VyRGF0YSwgU3Ry
aW5nIHVzZXJBZ2VudCwgZW51bTpib29sIFdlYkNvcmU6OldvcmtlclRocmVhZE1vZGUgd29ya2Vy
VGhyZWFkTW9kZSkKICAgICBVcGRhdGVBcHBJbml0aWF0ZWRWYWx1ZShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgZW51bTpib29sIFdlYkNv
cmU6Okxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkIGxhc3ROYXZpZ2F0aW9uV2FzQXBwSW5p
dGlhdGVkKQotICAgIFN0YXJ0RmV0Y2goV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRp
ZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIsIFdlYkNvcmU6OlJlc291cmNlUmVxdWVzdCByZXF1ZXN0LCBzdHJ1
Y3QgV2ViQ29yZTo6RmV0Y2hPcHRpb25zIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Ug
cmVxdWVzdEJvZHksIFN0cmluZyByZWZlcnJlcikKKyAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJj
ZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJ
UEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIsIGJvb2wg
aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogICAgIENhbmNlbEZldGNo
KFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklk
ZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogICAg
IENvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoV2ViQ29yZTo6U1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6U2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIFdlYkNvcmU6OkZldGNo
SWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCiAgICAgUG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3Jr
ZXIoV2ViQ29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBzdHJ1Y3QgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMgbWVzc2FnZSwgV2ViQ29y
ZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSBzb3VyY2VEYXRhKQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDQ4YjBlMTZi
ZGQ5NDRlMmRhMGYwY2JkNzE1YjA2NDMxOTg0ZmU3NDkuLjFjZmZmMGUxMzUwZmZiOTk4MWY0OGQw
MTJkOWVkYjZjOTQzMTcxNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysg
Yi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMiBAQAorMjAyMS0xMi0wMSAgWW91
ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9y
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBUZXN0RXhwZWN0YXRpb25zOgorCiAyMDIxLTEyLTAxICBZb3Vl
bm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KIAogICAgICAgICBSZXVzZSBuYXZpZ2F0aW9u
IHByZWxvYWQgaWYgc2VydmljZSB3b3JrZXIgaXMgZmV0Y2hpbmcgdGhlIGNvcnJlc3BvbmRpbmcg
bmF2aWdhdGlvbiByZXF1ZXN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCBmM2Jm
YTY4OTQ4YjA0Zjc3N2IyZDgxNmNiOTg5MTY1NmExNzExNWFhLi41NTEyYzhlYzA0ODA0ZjFkZTc0
NTg4MDBkMjg1YTIzNDhmZDhiNGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAyMS0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhh
cm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2Vy
L25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDog
QWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2
aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZ2V0LXN0
YXRlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvbmF2
aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24t
cHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlv
bi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0cHMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKwogMjAyMS0xMS0zMCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIGh0bWwvc2VtYW50aWNzL2Zvcm1zL2NvbnN0cmFpbnRzL2Zvcm0tdmFs
aWRhdGlvbi12YWxpZGl0eS1jdXN0b21FcnJvci5odG1sIFdQVCB0ZXN0IGlzIGZhaWxpbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9UZXN0
RXhwZWN0YXRpb25zCmluZGV4IDFiNjA4NTc2YzdmYjRkNmJiMzgwY2VjMDM5N2RkZmI0ODY1ZDUx
NjcuLjliYzBmYWE1YzY5MjY4ZWE3MjcyYzYxZjYyYTUxNTRmZTIwMmU0ZGEgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVj
dGF0aW9ucwpAQCAtNDAzLDggKzQwMyw3IEBAIHdlYmtpdC5vcmcvYi8xNzY5MjkgaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9lbWJlZGRlZC1jb250CiAjIFJl
cXVpcmVzIGFkZGl0aW9uYWwgdGVzdCBpbmZyYXN0cnVjdHVyZS4KIGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL3VwZGF0ZS1hZnRl
ci1vbmVkYXkuaHR0cHMuaHRtbCBbIFNraXAgXQogCi0jIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBT
aGFyZWRXb3JrZXIsIE5hdmlnYXRpb25QcmVsb2FkCi1pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQg
WyBTa2lwIF0KKyMgVW5zdXBwb3J0ZWQgZmVhdHVyZXM6IFNoYXJlZFdvcmtlcgogaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvY2xh
aW0tc2hhcmVkLXdvcmtlci1mZXRjaC5odHRwcy5odG1sIFsgU2tpcCBdCiAKICMgVW5zdXBwb3J0
ZWQgZmVhdHVyZXM6IFBlcmZvcm1hbmNlTmF2aWdhdGlvblRpbWluZwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtl
ci1pZnJhbWUtcHJlbG9hZC1zY3JpcHQucHkgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLXNjcmlwdC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5iMGVkNjEwNzBiNGI0MDEwZDZmZjE2NGE4ZDM4ZWIyZjE1MmY2MTBjCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jl
c291cmNlcy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC1zY3JpcHQucHkKQEAgLTAsMCAr
MSwyNCBAQAoraW1wb3J0IG9zCitpbXBvcnQgaGFzaGxpYgoraW1wb3J0IGpzb24KKworCitkZWYg
bWFpbihyZXF1ZXN0LCByZXNwb25zZSk6CisgICAgdG9rZW4gPSByZXF1ZXN0LkdFVFtiJ3Rva2Vu
J10KKyAgICB0ZXN0SWQgPSBoYXNobGliLm1kNSh0b2tlbikuaGV4ZGlnZXN0KCkKKworICAgIGlm
IHJlcXVlc3QubWV0aG9kID09ICJQT1NUIjoKKyAgICAgICAgcmVxdWVzdC5zZXJ2ZXIuc3Rhc2gu
dGFrZSh0ZXN0SWQpCisgICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnB1dCh0ZXN0SWQsIHJl
cXVlc3QuR0VUW2IndmFsdWUnXSkKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250
ZW50LVR5cGUiLCBiInRleHQvYXNjaWkiKQorICAgICAgICByZXR1cm4gYiJ1cGRhdGVkIHRvICIg
KyByZXF1ZXN0LkdFVFtiJ3ZhbHVlJ10KKworICAgIHZhbHVlID0gcmVxdWVzdC5zZXJ2ZXIuc3Rh
c2gudGFrZSh0ZXN0SWQpCisgICAgaWYgbm90IHZhbHVlOgorICAgICAgICByZXNwb25zZS5oZWFk
ZXJzLnNldChiIkNhY2hlLUNvbnRyb2wiLCBiIm5vLWNhY2hlIikKKyAgICAgICAgcmVzcG9uc2Uu
aGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvaHRtbCIpCisgICAgICAgIHJldHVy
biAiPGh0bWw+PGJvZHk+PHNjcmlwdD53aW5kb3cudmFsdWUgPSAnbm90aGluZyc7PC9zY3JpcHQ+
PC9ib2R5PjwvaHRtbD4iCisKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNhY2hlLUNvbnRy
b2wiLCBiIm5vLWNhY2hlIikKKyAgICByZXNwb25zZS5oZWFkZXJzLnNldChiIkNvbnRlbnQtVHlw
ZSIsIGIidGV4dC9hc2NpaSIpCisgICAgcmV0dXJuIHZhbHVlLmRlY29kZSgpCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZy
YW1lLXByZWxvYWQtd29ya2VyLmpzIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLXdvcmtlci5qcwpuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZGMwMDAyNGQ1MTliMjA4MDhiNmQ2OGExZDZjYjY0NTM2NTk5ZDJhCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlm
cmFtZS1wcmVsb2FkLXdvcmtlci5qcwpAQCAtMCwwICsxLDM1IEBACitvbmluc3RhbGwgPSAoZXZl
bnQpID0+IHsKKyAgICBpZiAoc2VsZi5wb3J0KQorICAgICAgICByZXR1cm47CisgICAgZXZlbnQu
d2FpdFVudGlsKG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2VsZi5pbnN0YWxsaW5nUHJvbWlzZVJl
c29sdmUgPSByZXNvbHZlKSk7Cit9CisKK29ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgIGlm
IChldmVudC5kYXRhLnBvcnQpCisgICAgICAgIHNlbGYucG9ydCA9IGV2ZW50LmRhdGEucG9ydDsK
KyAgICBpZiAoc2VsZi5pbnN0YWxsaW5nUHJvbWlzZVJlc29sdmUpIHsKKyAgICAgICAgc2VsZi5p
bnN0YWxsaW5nUHJvbWlzZVJlc29sdmUoKTsKKyAgICAgICAgc2VsZi5pbnN0YWxsaW5nUHJvbWlz
ZVJlc29sdmUgPSBudWxsOworICAgIH0KKyAgICBpZiAoc2VsZi5mZXRjaGluZ1Byb21pc2VSZXNv
bHZlKSB7CisgICAgICAgIHNlbGYuZmV0Y2hpbmdQcm9taXNlUmVzb2x2ZSgpOworICAgICAgICBz
ZWxmLmZldGNoaW5nUHJvbWlzZVJlc29sdmUgPSBudWxsOworICAgIH0KK307CisKK29uYWN0aXZh
dGUgPSAoZXZlbnQpID0+IHsKKyAgICBzZWxmLnBvcnQucG9zdE1lc3NhZ2UoImFjdGl2YXRpbmci
KTsKK30KKworc2VsZi5hZGRFdmVudExpc3RlbmVyKCdmZXRjaCcsIChldmVudCkgPT4geworICAg
IHNlbGYucG9ydC5wb3N0TWVzc2FnZSgiZmV0Y2hpbmciKTsKKyAgICBjb25zdCBwcm9taXNlID0g
bmV3IFByb21pc2UocmVzb2x2ZSA9PiBzZWxmLmZldGNoaW5nUHJvbWlzZVJlc29sdmUgPSByZXNv
bHZlKTsKKyAgICBldmVudC5yZXNwb25kV2l0aChwcm9taXNlLnRoZW4oYXN5bmMgKCkgPT4gewor
ICAgICAgICBpZiAoIWV2ZW50LnByZWxvYWRSZXNwb25zZSkKKyAgICAgICAgICAgIHJldHVybiBu
ZXcgUmVzcG9uc2UoIkZBSUw6IHByZWxvYWQgbm90IGVuYWJsZWQiKTsKKyAgICAgICAgY29uc3Qg
cmVzcG9uc2UgPSBhd2FpdCBldmVudC5wcmVsb2FkUmVzcG9uc2U7CisgICAgICAgIGlmICghcmVz
cG9uc2UpCisgICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCJGQUlMOiBubyBwcmVsb2Fk
IHJlc3BvbnNlIik7CisgICAgICAgIHJldHVybiByZXNwb25zZTsKKyAgICB9KSk7Cit9KTsKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci1pZnJhbWUtcHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQuaHR0cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjdlZjJhZGY5YjAxYzI5YTIwYWVkYTQ1MmUwNGNjNjBh
MWU3MzdkYTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNSBAQAorCisKK1BBU1MgU2V0dXAgYWN0aXZhdGluZyB3b3JrZXIKK1BBU1Mg
U2VydmljZSB3b3JrZXIgbG9hZCB1c2VzIHByZWxvYWQgaWYgYXZhaWxhYmxlIGFuZCBmZXRjaCBl
dmVudCB3YXMgbm90IGhhbmRsZWQKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZy
YW1lLXByZWxvYWQuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44MmVkYmQ5NjFkMzYxOGI4ZDFmOGIy
YmE5ZjMzY2UzOWQzY2M5MTY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLmh0
bWwKQEAgLTAsMCArMSw3NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNj
cmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBz
cmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9y
b3V0aW5lcy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxzY3JpcHQ+Cit2YXIgYWN0
aXZlV29ya2VyOwordmFyIHV1aWQgPSB0b2tlbigpOwordmFyIHVybCA9ICIvV2ViS2l0L3NlcnZp
Y2Utd29ya2Vycy9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQtc2NyaXB0
LnB5P3Rva2VuPSIgKyB1dWlkOwordmFyIGZyYW1lOworY29uc3QgY2hhbm5lbCA9IG5ldyBNZXNz
YWdlQ2hhbm5lbCgpOworCitmdW5jdGlvbiB3YWl0VW50aWxBY3RpdmF0aW5nKCkKK3sKKyAgICBy
ZXR1cm4gbmV3IFByb21pc2UocmVzb2x2ZSA9PiB7CisgICAgICAgIGNoYW5uZWwucG9ydDIub25t
ZXNzYWdlID0gKGV2ZW50KSA9PiB7CisgICAgICAgICAgICBpZiAoZXZlbnQuZGF0YSA9PT0gImFj
dGl2YXRpbmciKQorICAgICAgICAgICAgICAgIHJlc29sdmUoKTsKKyAgICAgICAgfTsKKyAgICB9
KTsKK30KKworZnVuY3Rpb24gdHJpZ2dlckFjdGl2YXRpb24oKQoreworICAgIGFjdGl2ZVdvcmtl
ci5wb3N0TWVzc2FnZSgiYWN0aXZhdGUiKTsKK30KKworcHJvbWlzZV90ZXN0KGFzeW5jICh0ZXN0
KSA9PiB7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0VXNlU2VwYXJhdGVTZXJ2aWNlV29ya2VyUHJvY2Vzcyh0cnVlKTsKKyAgICAgICAgYXdhaXQg
ZmV0Y2goIiIpLnRoZW4oKCkgPT4geyB9LCAoKSA9PiB7IH0pOworICAgIH0KKworICAgIGxldCBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dl
YktpdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQtd29ya2Vy
LmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbi5pbnN0YWxsaW5n
KSB7CisgICAgICAgIHJlZ2lzdHJhdGlvbi51bnJlZ2lzdGVyKCk7CisgICAgICAgIHJlZ2lzdHJh
dGlvbiA9IGF3YWl0IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyLnJlZ2lzdGVyKCIvV2ViS2l0L3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC13b3JrZXIuanMiLCB7
IHNjb3BlIDogdXJsIH0pOworICAgIH0KKyAgICBhY3RpdmVXb3JrZXIgPSByZWdpc3RyYXRpb24u
aW5zdGFsbGluZzsKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoeyBwb3J0OiBjaGFubmVs
LnBvcnQxIH0sIFtjaGFubmVsLnBvcnQxXSk7CisKKyAgICBhd2FpdCB3YWl0VW50aWxBY3RpdmF0
aW5nKCk7CisgICAgaWYgKHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZCkKKyAgICAgICAg
YXdhaXQgcmVnaXN0cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkLmVuYWJsZSgpOworfSwgIlNldHVw
IGFjdGl2YXRpbmcgd29ya2VyIik7CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4gewor
ICAgIC8vIFNldCB2YWx1ZSB0byAnYmVmb3JlLW5hdmlnYXRpb24nCisgICAgYXdhaXQgZmV0Y2go
dXJsICsgIiZ2YWx1ZT1iZWZvcmUtbmF2aWdhdGlvbiIsIHsgbWV0aG9kOiAnUE9TVCcgfSk7CisK
KyAgICAvLyBTdGFydCBsb2FkaW5nIGlmcmFtZSwgd2l0aCBhY3RpdmF0aW5nIHdvcmtlciwgc28g
b25seSBwcmVsb2FkIHdpbGwgc3RhcnQuCisgICAgY29uc3QgaWZyYW1lUHJvbWlzZSA9IHdpdGhJ
ZnJhbWUodXJsKTsKKworICAgIC8vIFdhaXQgYSBsaXR0bGUgYml0IHRvIGRvIGEgZmV0Y2guIFRo
aXMgZmV0Y2ggc2hvdWxkIGhhcHBlbiBhZnRlciB0aGUgZmV0Y2ggZXZlbnQsIHdoaWNoIGlzIHBl
bmRpbmcuCisgICAgLy8gSXQgc2hvdWxkIHJlY2VpdmUgJ2JlZm9yZS1uYXZpZ2F0aW9uJworICAg
IGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2V0VGltZW91dChyZXNvbHZlLCAxMDApKTsK
KyAgICBjb25zdCBmZXRjaFByb21pc2UgPSBmZXRjaCh1cmwpOworCisgICAgLy8gVHJpZ2dlciBm
ZXRjaCwgd2hpY2ggd2lsbCB0cmlnZ2VyIHRoZSBwcmVsb2FkIHJlc3BvbnNlLgorICAgIGFjdGl2
ZVdvcmtlci5wb3N0TWVzc2FnZSgiZmV0Y2giKTsKKworICAgIGNvbnN0IHJlc3BvbnNlID0gYXdh
aXQgZmV0Y2hQcm9taXNlOworICAgIGFzc2VydF9lcXVhbHMoYXdhaXQgcmVzcG9uc2UudGV4dCgp
LCAiYmVmb3JlLW5hdmlnYXRpb24iKTsKKworICAgIGNvbnN0IGZyYW1lID0gYXdhaXQgaWZyYW1l
UHJvbWlzZTsKKyAgICBhc3NlcnRfZXF1YWxzKGZyYW1lLmNvbnRlbnRXaW5kb3cudmFsdWUsICJu
b3RoaW5nIik7Cit9LCAiU2VydmljZSB3b3JrZXIgbG9hZCB1c2VzIHByZWxvYWQgaWYgYXZhaWxh
YmxlIGFuZCBmZXRjaCBldmVudCB3YXMgbm90IGhhbmRsZWQiKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CmluZGV4IGRlMjUzMmRk
YzU5NzIyNTlkOTgzNWNhNzRkYzE5YzlkNDViNDkzYTUuLjQ5ODY5ZThmYjA3MzkzYmQ3YjU4MGVk
YzFmN2JiYjI4YjQ5M2QxYWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKQEAg
LTU3LDcgKzU3LDcgQEAgUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGluc3RhbGxpbmcKIFBBU1MgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSB3YWl0aW5nCiBQQVNTIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgYWN0aXZlCi1GQUlM
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbmF2aWdhdGlv
blByZWxvYWQgYXNzZXJ0X3RydWU6IFRoZSBwcm90b3R5cGUgb2JqZWN0IG11c3QgaGF2ZSBhIHBy
b3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK1BBU1Mg
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBuYXZpZ2F0aW9u
UHJlbG9hZAogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmli
dXRlIHNjb3BlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRy
aWJ1dGUgdXBkYXRlVmlhQ2FjaGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IG9wZXJhdGlvbiB1cGRhdGUoKQpAQCAtNjgsNyArNjgsNyBAQCBQQVNTIFN0cmluZ2lm
aWNhdGlvbiBvZiByZWdpc3RyYXRpb25JbnN0YW5jZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3Bl
cnR5ICJpbnN0YWxsaW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ3YWl0aW5nIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJhY3RpdmUiIHdpdGggdGhlIHByb3BlciB0eXBlCi1GQUlMIFNlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGlu
aGVyaXQgcHJvcGVydHkgIm5hdmlnYXRpb25QcmVsb2FkIiB3aXRoIHRoZSBwcm9wZXIgdHlwZSBh
c3NlcnRfaW5oZXJpdHM6IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgbm90IGZvdW5kIGlu
IHByb3RvdHlwZSBjaGFpbgorUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFj
ZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYXZpZ2F0aW9u
UHJlbG9hZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0
eSAic2NvcGUiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVy
dHkgInVwZGF0ZVZpYUNhY2hlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJ1cGRhdGUoKSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKQEAgLTEwMiwxNiAr
MTAyLDE2IEBAIFBBU1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRv
ci5zZXJ2aWNlV29ya2VyIG11c3QgaW5oZXJpdCBwcm9wCiBQQVNTIFNlcnZpY2VXb3JrZXJDb250
YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJv
cGVydHkgIm9uY29udHJvbGxlcmNoYW5nZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2Vy
dmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25tZXNzYWdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFT
UyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VXb3Jr
ZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm1lc3NhZ2VlcnJvciIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTog
c2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1G
QUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aCBhc3Nl
cnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBv
YmplY3QgbmFtZSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHBy
b3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2lu
ZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVz
IHByb3BlcnR5IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW5hYmxlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2Vs
ZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBl
eHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlM
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkaXNhYmxlKCkg
YXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZh
Y2U6IG9wZXJhdGlvbiBzZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5nKSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGdl
dFN0YXRlKCkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0
CitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IGxlbmd0aAor
UEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lCitQQVNT
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVy
dGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdAorUEFTUyBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IHByb3RvdHlwZSBvYmplY3QncyAiY29uc3RydWN0b3IiIHByb3BlcnR5CitQQVNTIE5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkKK1BBU1Mg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpCitQ
QVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBkaXNhYmxl
KCkKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIHNl
dEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcpCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBp
bnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTdGF0ZSgpCiBQQVNTIFNlcnZpY2VXb3JrZXJHbG9iYWxT
Y29wZSBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2Jq
ZWN0CiBQQVNTIENsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2Ugb2JqZWN0CiBQQVNTIFdpbmRvd0NsaWVudCBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJu
ZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5h
bnkud29ya2VyLWV4cGVjdGVkLnR4dAppbmRleCA4YjI2NDUwM2Q1NTIyODZiNzdkYTRjMjNmOTM5
MzI2N2VkY2U3OGZjLi4zMDQ4Yjc5ZWNhNmE1ODQzY2NiNzUxMzk5MjY3ODdhNjVmZjg0NDEwIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0Cisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13
b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKQEAgLTgyLDE2
ICs4MiwxNiBAQCBQQVNTIFNlcnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0
b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJvcAogUEFTUyBTZXJ2aWNlV29ya2VyQ29u
dGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgbXVzdCBpbmhlcml0IHBy
b3BlcnR5ICJvbmNvbnRyb2xsZXJjaGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNl
cnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBt
dXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubWVzc2FnZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBB
U1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5zZXJ2aWNlV29y
a2VyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25tZXNzYWdlZXJyb3IiIHdpdGggdGhlIHByb3Bl
ciB0eXBlCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwot
RkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNz
ZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ug
b2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3du
IHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBw
cm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxl
cyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNl
bGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIg
ZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJ
TCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJsZSgp
IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJm
YWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZykgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNz
aW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBn
ZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJv
cGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVj
dAorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgK
K1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFT
UyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3Bl
cnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNT
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFibGUoKQor
UEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJs
ZSgpCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBz
ZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5nKQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3RhdGUoKQogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdAogUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2Yg
aW50ZXJmYWNlIG9iamVjdAogUEFTUyBXaW5kb3dDbGllbnQgaW50ZXJmYWNlOiBleGlzdGVuY2Ug
YW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2Jyb2tlbi1jaHVua2VkLWVuY29kaW5nLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9icm9r
ZW4tY2h1bmtlZC1lbmNvZGluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZmU1ZmE2
YTZmY2U4NTdjMzY4NGNkYjI1Njc2ZDM3OTVlM2E0Nzg5OQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9icm9rZW4tY2h1bmtlZC1lbmNvZGlu
Zy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw1IEBACisKKworRkFJTCBGZXRjaEV2ZW50
I3ByZWxvYWRSZXNwb25zZSByZXNvbHZlcyBldmVuIGlmIHRoZSBib2R5IGlzIHNlbnQgd2l0aCBi
cm9rZW4gY2h1bmtlZCBlbmNvZGluZy4gYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlBBU1M6IHBy
ZWxvYWRSZXNwb25zZSByZXNvbHZlZCIgYnV0IGdvdCAiRkFJTDogcHJlbG9hZFJlc3BvbnNlIHJl
amVjdGVkIgorRkFJTCBGZXRjaEV2ZW50I3ByZWxvYWRSZXNwb25zZSByZXNvbHZlcyBldmVuIGlm
IHRoZSBib2R5IGlzIHNlbnQgd2l0aCBicm9rZW4gY2h1bmtlZCBlbmNvZGluZyB3aXRoIHNvbWUg
ZGVsYXlzIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJQQVNTOiBwcmVsb2FkUmVzcG9uc2UgcmVz
b2x2ZWQiIGJ1dCBnb3QgIkZBSUw6IHByZWxvYWRSZXNwb25zZSByZWplY3RlZCIKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2NodW5rZWQtZW5jb2Rp
bmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVs
b2FkL2NodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFlZjAx
NjI3YzhlMzg5NGRlNzA3MzMzMTAxMmFmYjRmY2QxMjU2YmIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvY2h1bmtlZC1lbmNvZGluZy5odHRw
cy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworUEFTUyBOYXZpZ2F0aW9uIFByZWxv
YWQgbXVzdCB3b3JrIHdpdGggY2h1bmtlZCBlbmNvZGluZy4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2VtcHR5LXByZWxvYWQtcmVzcG9uc2UtYm9k
eS5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi40Y2RhMjhjZmNhYTVlMmIxNDA1MWU5NWNmMmI5M2YyNGM3MDM5NzRmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2VtcHR5LXByZWxv
YWQtcmVzcG9uc2UtYm9keS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKwor
UEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgZW1wdHkgcmVzcG9uc2UgYm9keS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZ2V0LXN0
YXRlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44YWExZTlkMGFmMTk5ZjIzM2JjMzgx
Mjg5NTRkODg5YjVmYTNhZDIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCAr
MSw1IEBACisKK1BBU1MgZ2V0U3RhdGUKK1BBU1MgZ2V0U3RhdGUgZnJvbSBhIHdvcmtlcgorUEFT
UyBubyBhY3RpdmUgd29ya2VyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmln
YXRpb24tcHJlbG9hZC9uYXZpZ2F0aW9uUHJlbG9hZC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9z
ZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE1NzU2NTk3NTA4MTczNWNhYzJmMjFhNjFmNDNkNzYx
MTY3NjgzODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9u
LXByZWxvYWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MyBAQAorCitQQVNTIFRoZSBuYXZpZ2F0aW9uUHJlbG9hZCBhdHRyaWJ1dGUgbXVzdCByZXR1cm4g
c2VydmljZSB3b3JrZXIgcmVnaXN0cmF0aW9uJ3MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG9i
amVjdC4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2Fk
L3JlZGlyZWN0Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU1MWRj
NmI2MmE3NWY1OTY1MWNiYjc4MDhhM2ZiNTNhM2IxNmNkNQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACisKKworUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgcmVkaXJl
Y3QgcmVzcG9uc2UuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBuby1sb2NhdGlvbiByZWRpcmVj
dCByZXNwb25zZS4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIG5vLWxvY2F0aW9uIHJlZGlyZWN0
IHJlc3BvbnNlIHdpdGggYm9keS4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIHJlZGlyZWN0IHRv
IHRoZSBzYW1lIHNjb3BlLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0
aW9uLXByZWxvYWQvcmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXF1ZXN0LWhlYWRlcnMuaHR0cHMtZXhwZWN0
ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjA2YjNkYzBmNGNiZDI3ZjA2NGE1Y2M1ZDA0M2UzNDA3Y2YyN2I3
NDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvcmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKwor
CitGQUlMIE5hdmlnYXRpb24gUHJlbG9hZCByZXF1ZXN0IGhlYWRlcnMuIGFzc2VydF90cnVlOiBU
aGUgTmF2aWdhdGlvbiBQcmVsb2FkIHJlcXVlc3QgbXVzdCBzcGVjaWZ5IGFuICJVcGdyYWRlLUlu
c2VjdXJlLVJlcXVlc3RzIiBoZWFkZXIuIGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZS10aW1p
bmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVs
b2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODEyMTJl
MDEwOTNlNmRkODg2MTI0YTExOTE2MWVhODI1OGVmMmFmOQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZS10aW1pbmcuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK0ZBSUwgTmF2aWdhdGlvbiBQcmVsb2Fk
IFJlc291cmNlIFRpbWluZy4gYXNzZXJ0X2dyZWF0ZXJfdGhhbjogdHJhbnNmZXJTaXplIG11c3Qg
Z3JlYXRlciB0aGVuIGVuY29kZWRCb2R5U2l6ZS4gZXhwZWN0ZWQgYSBudW1iZXIgZ3JlYXRlciB0
aGFuIDAgYnV0IGdvdCAwCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9zYW1lc2l0ZS1jb29raWVzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9zYW1lc2l0ZS1jb29raWVzLmh0dHBzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40MWIwMzdhN2FlZDY4MmRlZjVkODczOGFkZjRkOThlMjJlNDgz
MjI2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVs
b2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAor
CisKK1BBU1MgU2V0IHVwIGEgc2VydmljZSB3b3JrZXIgZm9yIG5hdmlnYXRpb24gcHJlbG9hZCB0
ZXN0cy4KK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIGZvciBzYW1lIHNpdGUgY29va2llcyAoTm9u
ZSkuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBmb3Igc2FtZSBzaXRlIGNvb2tpZXMgKFN0cmlj
dCkuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBmb3Igc2FtZSBzaXRlIGNvb2tpZXMgKExheCku
CitQQVNTIFVucmVnaXN0ZXIgYSBzZXJ2aWNlIHdvcmtlci4KKwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445679</attachid>
            <date>2021-12-01 23:34:13 -0800</date>
            <delta_ts>2021-12-02 00:22:21 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233523-20211202083410.patch</filename>
            <type>text/plain</type>
            <size>133902</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY1NjE4Yjc3ZWI3MzRlNWYxNzcyMjM5
MGQwYWI4YjZhZGFmMjEwMDIuLjQ1N2Q2OGU4MWFjOWJhYzMyZDViMjk3NzcxYTY1ZmMyODAzNjA3
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICog
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAy
MDIxLTEyLTAxICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAg
ICAgICAgIFtXaW5dIE9TQWxsb2NhdG9yOjpyZXNlcnZlVW5jb21taXR0ZWRBbGlnbmVkIHNob3Vs
ZCB1c2UgYWxpZ25lZCBhbGxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUwMTc2YWNlOTA5ZjA3ZDRl
MDdjNzQ1ODAyNTQ5Nzg1NzA5M2ZlYi4uNzM0Y2U1Y2Y1OTJiZjkwMDM0ZGJlMzgwN2I1ZmY3OGVm
YTg2MDVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIxLTEyLTAxICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM1MjMKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4K
KworICAgICAgICBBZGQgc2VydmljZSB3b3JrZXIgbmF2aWdhdGlvbiBwcmVsb2FkIElETCBhbmQg
aW1wbGVtZW50YXRpb24uCisgICAgICAgIFRoaXMgaW5jbHVkZXMgaW4gcGFydGljdWxhciBzdGF0
ZSBtYW5hZ2VtZW50IChyZWFkIGFuZCB3cml0ZSkgb24gQVBJIHNpZGUgYW5kIFNXU2VydmVyIHNp
ZGUuCisgICAgICAgIFRoaXMgc3RhdGUgaXMgdXNlZCBpbiBXSzIgbmV0d29yayBjb2RlIHBhdGgg
dG8gZW5hYmxlIG9yIG5vdCBwcmVsb2Fkcy4KKyAgICAgICAgV2UgYXJlIG5vdCB5ZXQgcGVyc2lz
dGluZyBwcmVsb2FkIHJlZ2lzdHJhdGlvbiBzdGF0ZSBvbiBkaXNrLCB0aGlzIHdpbGwgYmUgZG9u
ZSBhcyBhIGZvbGxvdy11cC4KKworICAgICAgICBUaGUgRmV0Y2hFdmVudCBwcmVsb2FkUmVzcG9u
c2UgcmV0dXJucyBhIHByb21pc2Ugd2hpY2ggaGFzIGVpdGhlciB1bmRlZmluZWQgb3IgYSByZXNw
b25zZSBhcyByZXNvbHZlZCB2YWx1ZS4KKyAgICAgICAgSW4gY2FzZSB0aGVyZSBpcyBhIHByZWxv
YWRlciBmb3IgdGhhdCBGZXRjaEV2ZW50LCB3ZSBzdGFydCB0aGUgbG9hZCB3aGVuIHByZWxvYWRS
ZXNwb25zZSBpcyByZXRyaWV2ZWQgYnkgSlMuCisKKyAgICAgICAgVG8gaW1wbGVtZW50IHRoZSBy
ZXRyaWV2YWwgb2YgdGhlIHByZWxvYWQgcmVzcG9uc2UsIHdlIHVzZSBGZXRjaFJlc3BvbnNlOjpm
ZXRjaC4KKyAgICAgICAgVG8gZG8gc28sIHdlIGFkZCBhbiBpbml0aWF0b3IgcGFyYW1ldGVyIGFz
IHRoaXMgcHJlbG9hZCBpbml0aWF0b3IgaXMgdGhlIG5hdmlnYXRpb24gdGFzayBhbmQgbm90IGEg
ZmV0Y2ggY2FsbC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGVuYWJsZWQgdGVzdHMuCisKKyAgICAg
ICAgVGVzdHM6IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUt
cHJlbG9hZC5odHRwcy5odG1sLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2Fk
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcDoKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYmluZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5Lmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHA6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9yczo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbjoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvRmV0Y2hFdmVudC5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0ZldGNo
RXZlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGw6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHA6IEFkZGVk
LgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaDog
QWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ci5pZGw6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9h
ZFN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJl
bG9hZFN0YXRlLmlkbDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0
aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZl
dGNoLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RmV0Y2guaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg6CisKIDIwMjEtMTItMDEgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgc2hvdWxkIGJlIGludmFsaWRhdGVkIHdoZW4gbmV0d29yayBwcm9jZXNzIGNyYXNoZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggY2VjMTUyYzFmNzA2NzFkZmJmN2NkYTJjMDU3NDc2ODQzMTRmMDRiOS4uZDc3OTgx
ZjAzZTU4MGI3OTVjMjIwNWJlM2E2YzI1MWVhZDBmZDEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OCBAQAorMjAyMS0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXIgd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAg
ICAgV2Ugb25seSBzdGFydCBhcyBzb29uIGFzIGNyZWF0ZWQgdGhlIHByZWxvYWQgaW4gY2FzZSBv
ZiBtYWluIGZyYW1lIG5hdmlnYXRpb24gd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAg
ICAgVXBkYXRlIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyIHRvIGRpZmZlcmVudGlh
dGUgZXhwbGljaXQgcHJlbG9hZHMgKGVuYWJsZWQgYnkgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
KSBmcm9tIGltcGxpY3QgcHJlbG9hZHMuCisgICAgICAgIEltcGxpY3QgcHJlbG9hZHMgY2FuIGJl
IHVzZWQgd2hlbiBmZXRjaCBldmVudCBpcyBub3QgaGFuZGxlZCwgd2hpY2ggaXMgbm90IGd1YXJh
bnRlZWQgZm9yIGV4cGxpY2l0IHByZWxvYWRzLCBnaXZlbiB0aGUgU2VydmljZS1Xb3JrZXItTmF2
aWdhdGlvbi1QcmVsb2FkIGhlYWRlci4KKyAgICAgICAgQWRkIElQQyB0byByZWFkIGFuZCBzZXQg
cHJlbG9hZCBzdGF0ZSAoZW5hYmxlZCBhbmQgaGVhZGVyIHZhbHVlKS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdh
dGlvblByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAyMS0xMi0w
MSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgd2hlbiBuZXR3b3JrIHByb2Nl
c3MgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCAwZDlhZGQ1Nzc3NDgy
Mjc5NjRiMjI3ZDE4MTNlY2IzZTYwZTVhOGZhLi42YWUyYzE0MjgyMTgzY2I3MDkwOTU0NjNjOGZj
ZGRmYzZkNWU1YjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTI1OCw2ICsx
MjU4LDE5IEBAIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAgICAgICAiRU5BQkxFKEVYUEVSSU1FTlRB
TF9GRUFUVVJFUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkiOiB0cnVlCiAg
ICAgICBkZWZhdWx0OiBmYWxzZQogCitTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFi
bGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2VydmljZSBXb3JrZXIg
TmF2aWdhdGlvbiBQcmVsb2FkIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUg
U2VydmljZSBXb3JrZXIgTmF2aWdhdGlvbiBQcmVsb2FkIEFQSSIKKyAgY29uZGl0aW9uOiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQor
ICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIFNoYXJlZFdvcmtlckVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTaGFyZWRXb3JrZXIiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IGI4MTNmZWViYjU5YTExYjNjNmI3ZTg4NDJhNjNhNzFiYWY5ZjA2
ODguLjdmYjVjMDRlYzY1OTUxNTA5MjdlOTQ2ZjMwODZmMDU5OWNiN2ZkMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xMjI0LDYgKzEyMjQsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9G
SUxFUwogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0LmlkbAogICAgIHdv
cmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vy
dmljZS9GZXRjaEV2ZW50LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIuaWRsCisgICAgd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsCiAgICAgd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnRUeXBlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWUzMTk1YWM0ZjViOTE3N2YwMmZkNjg0MzUwYTkwMGI2
NDJmOTk4YS4uYTgzMjg5N2RiMDY3ZjZiMmE0MWM4OTY3MDhjY2ZkMjEyODFlZDY2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNjI0
LDYgKzE2MjQsOCBAQCAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2
ZW50LmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudElu
aXQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAor
JChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5p
ZGwKKyQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
LmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1B1c2hFdmVudC5pZGwKICQoUFJP
SkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9QdXNoRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJ
Uikvd29ya2Vycy9zZXJ2aWNlL1B1c2hNZXNzYWdlRGF0YS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTM0YjRiNjM0NmFjZDk5
MzVmM2IzOWFmOTE4NGFhNGNjNjBmMmE0OS4uOWJkNDg0MTE1NTZjMGQ0NzViZjJlN2YyMDhkM2E4
NDUyMmUzYmE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKQEAgLTE2MzEsNiArMTYzMSwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmFtZWRO
b2RlTWFwLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNO
YXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcitDbGlwYm9hcmQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ODJkZWQwMjY2Mzc5MmE0ZGEy
ODNhZjY2YmZhNDc4NmUxMGE5ZTFjLi4yZTY3ZDFhNGIwYjYzN2UyN2JlM2FlNDkzNTAyOTVhZTk3
NjM4MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0NDYsNiArMTQ0Niw4
IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2Vy
dmljZS9GZXRjaEV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCBcCisgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZp
Y2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNsaWVudFR5cGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDM2
MGM1NDY1MjZkMTQ0MzFlY2I4OWZhYTI4MzNhN2I1YzY3NmNjNTQuLjk1MTk5Y2NkODM2ODZmMWI5
ZDliZmVhYzZiNjA5NTNiNDBjMWI3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTg5OCw2ICsx
ODk4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHdvcmtl
cnMvV29ya2VyVGhyZWFkVHlwZS5oCiAgICAgd29ya2Vycy9Xb3JrZXJUeXBlLmgKIAorICAgIHdv
cmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKICAgICB3b3JrZXJzL3NlcnZp
Y2UvU1dDbGllbnRDb25uZWN0aW9uLmgKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudERhdGEuaAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50UXVl
cnlPcHRpb25zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKaW5k
ZXggOTA5OGUwNWFmNGM4NDMzYjNkMTNiMzk1NjUwNjRhOWMxNTQzMzg3ZC4uZTZjYzFhYWU3ODNh
NTIwOTRmNjU0OTliYjkwZGQ3ZjAwNzFkNDI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJET01DYWNoZS5o
IgogCiAjaW5jbHVkZSAiQ2FjaGVRdWVyeU9wdGlvbnMuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVk
ZSAiRmV0Y2hSZXNwb25zZS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCkBAIC0zMDIsNyAr
MzAzLDcgQEAgdm9pZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1ZXN0SW5mbz4mJiBpbmZv
cywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHIKICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgIHRhc2tIYW5kbGVyLT5hZGRSZXNwb25zZUJvZHkocmVjb3JkUG9z
aXRpb24sIHJlc3BvbnNlLCBXVEZNb3ZlKGRhdGEpKTsKICAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKKyAgICAgICAgfSwgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmZldGNo
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRl
ci5jcHAKaW5kZXggZTk4OTE0MWI3N2I4ZTNlZTY4OTFmNWU0NWJlMGMzMmU5OTg0MDRiZC4uZmM1
NWNjN2Q4M2Q4YmMxMWYwODU0ZGMzY2ZkODUwOTdhMzFmMTBmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKQEAgLTgzLDEzICs4MywxMyBAQCB2b2lk
IEZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFVSTAogICAgIG1faXNTdGFydGVkID0gbV9sb2FkZXI7CiB9CiAKLXZv
aWQgRmV0Y2hMb2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBpbml0aWF0b3IpCiB7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIHJl
c291cmNlTG9hZGVyT3B0aW9ucyA9IHJlcXVlc3QuZmV0Y2hPcHRpb25zKCk7CiAgICAgcmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLnByZWZsaWdodFBvbGljeSA9IFByZWZsaWdodFBvbGljeTo6Q29uc2lk
ZXI7CiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhyZXNvdXJjZUxvYWRlck9w
dGlvbnMsCiAgICAgICAgIGNvbnRleHQuc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZv
cmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VDb25uZWN0U3Jj
RGlyZWN0aXZlLAotICAgICAgICBTdHJpbmcoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cygpLmZldGNoKSwKKyAgICAgICAgU3RyaW5nKGluaXRpYXRvciksCiAgICAgICAgIFJlc3BvbnNl
RmlsdGVyaW5nUG9saWN5OjpEaXNhYmxlKTsKICAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tz
ID0gU2VuZENhbGxiYWNrUG9saWN5OjpTZW5kQ2FsbGJhY2tzOwogICAgIG9wdGlvbnMuZGF0YUJ1
ZmZlcmluZ1BvbGljeSA9IERhdGFCdWZmZXJpbmdQb2xpY3k6OkRvTm90QnVmZmVyRGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAppbmRleCA0MDcyOGQyNTdl
ODQzYzQxMTQ4NmZkNmU0MzgwNzA0NDMxYWNmY2EyLi4yZjkwZjBlYzNmZjkwNWEyNjIzMWM4NGM3
MmE3YTE4NmNkNGJmZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExv
YWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IHN0YXJ0U3RyZWFtaW5nKCk7CiAKLSAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBGZXRjaFJlcXVlc3QmKTsKKyAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBjb25zdCBGZXRjaFJlcXVlc3QmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBCbG9iJik7CiAgICAgdm9p
ZCBzdGFydExvYWRpbmdCbG9iVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBVUkwm
IGJsb2JVUkwpOwogICAgIHZvaWQgc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5kZXggNWQ0NTJjZTI4OGNlZGMwMjkzMmQ5Mzk2ZjY0
NjAwNDZlNDZiZDUzNi4uNGRmODQyNmM3MThiYTE2ZWNmMGE0N2U3M2U5MDBkM2Y4NDhmNjRmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBA
IC0yMjcsNyArMjI3LDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjphZGRBYm9ydFN0ZXBzKFJlZjxB
Ym9ydFNpZ25hbD4mJiBzaWduYWwpCiAgICAgfSk7CiB9CiAKLXZvaWQgRmV0Y2hSZXNwb25zZTo6
ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1
ZXN0LCBOb3RpZmljYXRpb25DYWxsYmFjayYmIHJlc3BvbnNlQ2FsbGJhY2spCit2b2lkIEZldGNo
UmVzcG9uc2U6OmZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVx
dWVzdCYgcmVxdWVzdCwgTm90aWZpY2F0aW9uQ2FsbGJhY2smJiByZXNwb25zZUNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGluaXRpYXRvcikKIHsKICAgICBpZiAocmVxdWVzdC5zaWduYWwoKS5hYm9y
dGVkKCkpIHsKICAgICAgICAgcmVzcG9uc2VDYWxsYmFjayhFeGNlcHRpb24geyBBYm9ydEVycm9y
LCAiUmVxdWVzdCBzaWduYWwgaXMgYWJvcnRlZCJfcyB9KTsKQEAgLTI0OSw3ICsyNDksNyBAQCB2
b2lkIEZldGNoUmVzcG9uc2U6OmZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEZldGNoUmVxdWVzdCYgcmVxdWVzdAogICAgIHJlc3BvbnNlLT5hZGRBYm9ydFN0ZXBzKHJlcXVl
c3Quc2lnbmFsKCkpOwogCiAgICAgcmVzcG9uc2UtPm1fYm9keUxvYWRlciA9IG1ha2VVbmlxdWU8
Qm9keUxvYWRlcj4ocmVzcG9uc2UuZ2V0KCksIFdURk1vdmUocmVzcG9uc2VDYWxsYmFjaykpOwot
ICAgIGlmICghcmVzcG9uc2UtPm1fYm9keUxvYWRlci0+c3RhcnQoY29udGV4dCwgcmVxdWVzdCkp
CisgICAgaWYgKCFyZXNwb25zZS0+bV9ib2R5TG9hZGVyLT5zdGFydChjb250ZXh0LCByZXF1ZXN0
LCBpbml0aWF0b3IpKQogICAgICAgICByZXNwb25zZS0+bV9ib2R5TG9hZGVyID0gbnVsbHB0cjsK
IH0KIApAQCAtMzc3LDExICszNzcsMTEgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKICAgICBz
b3VyY2UucmVzb2x2ZVB1bGxQcm9taXNlKCk7CiB9CiAKLWJvb2wgRmV0Y2hSZXNwb25zZTo6Qm9k
eUxvYWRlcjo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmV0
Y2hSZXF1ZXN0JiByZXF1ZXN0KQorYm9vbCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpzdGFy
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRjaFJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKQogewogICAgIG1fY3JlZGVudGlhbHMgPSBy
ZXF1ZXN0LmZldGNoT3B0aW9ucygpLmNyZWRlbnRpYWxzOwogICAgIG1fbG9hZGVyID0gbWFrZVVu
aXF1ZTxGZXRjaExvYWRlcj4oKnRoaXMsICZtX3Jlc3BvbnNlLm1fYm9keS0+Y29uc3VtZXIoKSk7
Ci0gICAgbV9sb2FkZXItPnN0YXJ0KGNvbnRleHQsIHJlcXVlc3QpOworICAgIG1fbG9hZGVyLT5z
dGFydChjb250ZXh0LCByZXF1ZXN0LCBpbml0aWF0b3IpOwogICAgIHJldHVybiBtX2xvYWRlci0+
aXNTdGFydGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
c3BvbnNlLmgKaW5kZXggYmM1ODU0ZjliOTY2ZmI2MzI5ZDE2ZmRlNjE4Y2NlYjFkOGM5NGNhOS4u
MzQyMGM2YTM4ZDNjM2Y2ZTJmZGI2Njc1ZThhNGQxMzY1YmY1YTViYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IHJlZGlyZWN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXR1cyk7
CiAKICAgICB1c2luZyBOb3RpZmljYXRpb25DYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoRXhjZXB0
aW9uT3I8RmV0Y2hSZXNwb25zZSY+JiYpPjsKLSAgICBzdGF0aWMgdm9pZCBmZXRjaChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgRmV0Y2hSZXF1ZXN0JiwgTm90aWZpY2F0aW9uQ2FsbGJhY2smJik7
CisgICAgc3RhdGljIHZvaWQgZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZldGNoUmVx
dWVzdCYsIE5vdGlmaWNhdGlvbkNhbGxiYWNrJiYsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKTsK
IAogICAgIHZvaWQgc3RhcnRDb25zdW1pbmdTdHJlYW0odW5zaWduZWQpOwogICAgIHZvaWQgY29u
c3VtZUNodW5rKFJlZjxKU0M6OlVpbnQ4QXJyYXk+JiYpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIEJvZHlMb2FkZXIoRmV0Y2hSZXNwb25zZSYsIE5vdGlmaWNhdGlvbkNh
bGxiYWNrJiYpOwogICAgICAgICB+Qm9keUxvYWRlcigpOwogCi0gICAgICAgIGJvb2wgc3RhcnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEZldGNoUmVxdWVzdCYpOworICAgICAgICBi
b29sIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBGZXRjaFJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIGluaXRpYXRvcik7CiAgICAgICAgIHZvaWQgc3RvcCgpOwogCiAgICAgICAg
IHZvaWQgY29uc3VtZURhdGFCeUNodW5rKENvbnN1bWVEYXRhQnlDaHVua0NhbGxiYWNrJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9XaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlRmV0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9XaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCmluZGV4IDljMWNkOGQwZmY3NWFlOWVkNDk0YzI2
NTk0ZTdjNzY3YzRkMjdiMWMuLjcwNzI3YjcxZDJjNWZlOGIyZGYwNmIyOWUxZGUyMmQxOTZiMWQw
YzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZUZldGNoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKQEAgLTYyLDcgKzYyLDcgQEAgdm9p
ZCBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2g6OmZldGNoKERPTVdpbmRvdyYgd2luZG93
LCBGZXRjaFJlcXVlc3Q6OkluZm8KIAogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0
dXJlSW5kaWNhdG9yKHVzZXJHZXN0dXJlVG9rZW4sIFVzZXJHZXN0dXJlVG9rZW46Okdlc3R1cmVT
Y29wZTo6TWVkaWFPbmx5LCBVc2VyR2VzdHVyZVRva2VuOjpJc1Byb3BhZ2F0ZWRGcm9tRmV0Y2g6
Olllcyk7CiAgICAgICAgIHByb21pc2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7
CisgICAgfSwgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmZldGNoKTsKIH0KIAog
dm9pZCBXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0Y2g6OmZldGNoKFdvcmtlckdsb2JhbFNj
b3BlJiBzY29wZSwgRmV0Y2hSZXF1ZXN0OjpJbmZvJiYgaW5wdXQsIEZldGNoUmVxdWVzdDo6SW5p
dCYmIGluaXQsIFJlZjxEZWZlcnJlZFByb21pc2U+JiYgZGVmZXJyZWQpCkBAIC03Nyw3ICs3Nyw3
IEBAIHZvaWQgV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoOjpmZXRjaChXb3JrZXJHbG9i
YWxTY29wZSYgc2NvcGUsIEZldGNoUmVxdWVzCiAKICAgICBGZXRjaFJlc3BvbnNlOjpmZXRjaChz
Y29wZSwgcmVxdWVzdC5yZWxlYXNlUmV0dXJuVmFsdWUoKS5nZXQoKSwgW3Byb21pc2UgPSBXVEZN
b3ZlKHByb21pc2UpXShFeGNlcHRpb25PcjxGZXRjaFJlc3BvbnNlJj4mJiByZXN1bHQpIG11dGFi
bGUgewogICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOwor
ICAgIH0sIGNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKS5mZXRjaCk7CiB9CiAKIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUv
U291cmNlcy50eHQKaW5kZXggNDdkYWZiMzQwNGJiMmJmYjk0YTkzNzlhMWMzMTM1MThiYTUyYjEz
NS4uZmU0OTVlMWZmMmM1ZGY0Mzk4MmMyNWViN2Y2ZTViNjQxZjhlMTI2YyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50
eHQKQEAgLTI3NDIsNiArMjc0Miw3IEBAIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAogd29ya2Vy
cy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudC5jcHAKIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxl
TWVzc2FnZUV2ZW50LmNwcAogd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCit3b3JrZXJz
L3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcAogd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5jcHAKIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAog
d29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuY3BwCkBAIC0zNDc3LDYgKzM0Nzgs
OCBAQCBKU05hdmlnYXRvckdQVS5jcHAKIEpTTm9kZS5jcHAKIEpTTm9kZUZpbHRlci5jcHAKIEpT
Q3VzdG9tWFBhdGhOU1Jlc29sdmVyLmNwcAorSlNOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3Bw
CitKU05hdmlnYXRpb25QcmVsb2FkU3RhdGUuY3BwCiBKU05vZGVJdGVyYXRvci5jcHAKIEpTTm9k
ZUxpc3QuY3BwCiBKU05vbkRvY3VtZW50VHlwZUNoaWxkTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9X
ZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMTJlMDEyMzY1
YmE3NDlmYjhiNjY5NGI1ZjFlZWRlOTg5ZTQ0MjA4Li4xMWYxNzdmZjc2NDkyZGFmZTFlYTMyNDcz
ZmJiNDQ4NWQ2ZmM3ZjY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2Rl
cHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTA0LDYgKzExMDQsNyBAQAogCQk0MTRCN0ZBRDI0RDgx
Q0MxMDAzM0Q0NDIgLyogTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTRCN0ZBQjI0RDgxQzhGMDAzM0Q0
NDIgLyogTWVkaWFSZWNvcmRlclByaXZhdGVPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDE0QjgyMDUxRDZERjBFNTAwNzdFQkUzIC8q
IFN0cnVjdHVyZWRDbG9uZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNDE0QjgyMDMxRDZERjBEOTAwNzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9uZS5oICov
OyB9OwogCQk0MTRERURFNzFGOUZFOTFFMDA0N0M0MEQgLyogRW1wdHlGcmFtZUxvYWRlckNsaWVu
dC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REVE
RTUxRjlGRTkxNTAwNDdDNDBEIC8qIEVtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk0MTUwMzc5MzI3NEZEQzlC
MDAzNTRBQkMgLyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMkYxOUIyNzRGQjBBNjAwQTA4OUVFIC8qIE5h
dmlnYXRpb25QcmVsb2FkU3RhdGUuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2
YXRlLCApOyB9OyB9OwogCQk0MTUwNzE1ODE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0
ZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTA3
MTU2MTY4NTA2NzMwMEMzQzdCMyAvKiBTZWxlY3RvckZpbHRlci5oICovOyB9OwogCQk0MTUwODAz
NjFFM0YwMEFEMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9Nb2R1bGUuY3BwIGluIFNvdXJjZXMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE1MDgwMzQxRTNGMDBBQTAwNTFE
NzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmNwcCAqLzsgfTsKIAkJNDE1MDgwMzcxRTNGMDBC
MDAwNTFENzVEIC8qIExpYldlYlJUQ0F1ZGlvTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MTUwODAzNTFFM0YwMEFBMDA1MUQ3NUQgLyogTGli
V2ViUlRDQXVkaW9Nb2R1bGUuaCAqLzsgfTsKQEAgLTEyMTcsNiArMTIxOCw3IEBACiAJCTQxREVG
Q0I2MUU1NkMxQkQwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxREVGQ0I0MUU1NkMxQjkwMDBEOUU1RiAvKiBK
U0RPTU1hcExpa2UuaCAqLzsgfTsKIAkJNDFFMTJFOUYyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNv
Y2tldElkZW50aWZpZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxRTEyRTlEMjRGRTc0RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJZGVudGlmaWVyLmgg
Ki87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFMUIx
RDEwRkY1OTg2OTAwNTc2QjNCIC8qIEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyog
QWJzdHJhY3RXb3JrZXIuaCAqLzsgfTsKKwkJNDFFMkYxOTkyNzRGQUVDRjAwQTA4OUVFIC8qIE5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDFFMkYxOTcyNzRGQUVDQjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlci5oICovOyB9OwogCQk0MUU2N0E4MzI1RDE2ODQ3MDA3QjBBNEMgLyogU1RVTk1l
c3NhZ2VQYXJzaW5nLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MUU2N0E4MTI1RDE2ODQ3MDA3QjBBNEMgLyogU1RVTk1lc3NhZ2VQYXJzaW5nLmggKi87
IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFNkQ3MUIy
NkVBMUE0NjAwQjc2NUQ2IC8qIFJUQ0Vycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA0MUI3QzA0QjI2RTY5MTcxMDBEMzZDMDcgLyogUlRDRXJyb3Iu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MUU5
RENFNzIzMTk3NEJGMDBGMzU5NDkgLyogQmxvYkxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFOURDRTQyMzE5NzNGRTAwRjM1OTQ5IC8qIEJs
b2JMb2FkZXIuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtODg1Nyw2ICs4ODU5LDExIEBACiAJCTQxRTFCMUNDMEZGNTk4NjkwMDU3NkIzQiAvKiBB
YnN0cmFjdFdvcmtlci5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWJzdHJhY3RXb3JrZXIu
aWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUxRjMzRDI0OEE2MkI2MDAyMkQ1
REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUUxRjMzRjI0OEE2MkI2MDAyMkQ1REUgLyogQXVk
aW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IEF1ZGlvU2FtcGxlQnVmZmVyQ29tcHJlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk0MUUyRjE5NTI3NEZBRUNBMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9
IHRleHQ7IHBhdGggPSBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OworCQk0MUUyRjE5NzI3NEZBRUNCMDBBMDg5RUUgLyogTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUyRjE5ODI3NEZBRUNCMDBBMDg5RUUg
LyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmln
YXRpb25QcmVsb2FkTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQx
RTJGMTlBMjc0RkIwQTUwMEEwODlFRSAvKiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGgg
PSBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
KwkJNDFFMkYxOUIyNzRGQjBBNjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUU0MDgzODFEQ0I3NDc5MDBFRkNFMTkgLyogUGVlckNvbm5lY3Rpb25C
YWNrZW5kLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlZXJDb25u
ZWN0aW9uQmFja2VuZC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTU5M0ZE
MjE0ODY1QTkwMEQzQ0I2MSAvKiBSVENQcmlvcml0eVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1ByaW9yaXR5
VHlwZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTU5M0ZGMjE0ODY1QUEw
MEQzQ0I2MSAvKiBSVENSdHBFbmNvZGluZ1BhcmFtZXRlcnMuaWRsICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0cEVuY29k
aW5nUGFyYW1ldGVycy5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjExNyw2
ICsyMjEyNCwxMSBAQAogCQkJCTQxQUYzNzk0MUY4REE0OTUwMDExMUMzMSAvKiBGZXRjaEV2ZW50
LmNwcCAqLywKIAkJCQk0MUFGMzc4ODFGOEMxRTc5MDAxMTFDMzEgLyogRmV0Y2hFdmVudC5oICov
LAogCQkJCTQxQUYzNzhEMUY4QzFFN0IwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmlkbCAqLywKKwkJ
CQk0MUUyRjE5ODI3NEZBRUNCMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNw
cCAqLywKKwkJCQk0MUUyRjE5NzI3NEZBRUNCMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyLmggKi8sCisJCQkJNDFFMkYxOTUyNzRGQUVDQTAwQTA4OUVFIC8qIE5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlci5pZGwgKi8sCisJCQkJNDFFMkYxOUIyNzRGQjBBNjAwQTA4OUVFIC8qIE5h
dmlnYXRpb25QcmVsb2FkU3RhdGUuaCAqLywKKwkJCQk0MUUyRjE5QTI3NEZCMEE1MDBBMDg5RUUg
LyogTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwgKi8sCiAJCQkJNTFGMTc1NUIxRjNFQkMwQzAw
Qzc0OTUwIC8qIFNlcnZpY2VXb3JrZXIuY3BwICovLAogCQkJCTUxRjE3NTVBMUYzRUJDMEMwMEM3
NDk1MCAvKiBTZXJ2aWNlV29ya2VyLmggKi8sCiAJCQkJNTFGMTc1NTkxRjNFQkMwQzAwQzc0OTUw
IC8qIFNlcnZpY2VXb3JrZXIuaWRsICovLApAQCAtMzU5MjgsNiArMzU5NDAsOCBAQAogCQkJCTgz
QjJEMTc1MUI4QkNENkEwMEEwMkU0NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQlFMTBCOUI2QzBCNzQ3NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0NDRjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdh
dGlvbkFjdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDFFMkYxOTkyNzRGQUVDRjAwQTA4OUVF
IC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE1MDM3
OTMyNzRGREM5QjAwMzU0QUJDIC8qIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTQ2OUQ3N0I4MjcwMTYyNTEwMDE0MkZBNiAvKiBOYXZpZ2F0aW9uUmVxdWVzdGVy
LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzlGNDNENDEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdh
dGlvblNjaGVkdWxlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTlDNkU1QTYwRDc0NjQ1ODAwNjQ0
MkU5IC8qIE5hdmlnYXRvci5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9ET01Qcm9taXNlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0RPTVByb21pc2VQcm94eS5oCmluZGV4IDgwMjQ5MDUzZDU4OTdiNjY2ZGFmNTA4MWU2
MjMxNmM5OGY2YmQ4NGMuLjJiODcwNmU3NmU0N2Q0NGJjZDU0MzYwNTk1YjUyZWYwZTBlZTgwYWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVByb21pc2VQcm94eS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVByb21pc2VQcm94eS5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDEx
ICs0OCwxMyBAQCBwdWJsaWM6CiAKICAgICBib29sIGlzRnVsZmlsbGVkKCkgY29uc3Q7CiAKLSAg
ICB2b2lkIHJlc29sdmUodHlwZW5hbWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZSk7Ci0gICAgdm9p
ZCByZXNvbHZlV2l0aE5ld2x5Q3JlYXRlZCh0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBl
KTsKKyAgICB2b2lkIHJlc29sdmUodHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGUpOworICAg
IHZvaWQgcmVzb2x2ZVdpdGhOZXdseUNyZWF0ZWQodHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5
cGUpOwogICAgIHZvaWQgcmVqZWN0KEV4Y2VwdGlvbiwgUmVqZWN0QXNIYW5kbGVkID0gUmVqZWN0
QXNIYW5kbGVkOjpObyk7CiAgICAgCiBwcml2YXRlOgorICAgIEpTQzo6SlNWYWx1ZSByZXNvbHZl
UHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNET01HbG9iYWxPYmplY3QmLCBjb25zdCBG
dW5jdGlvbjx2b2lkKERlZmVycmVkUHJvbWlzZSYpPiYpOworCiAgICAgc3RkOjpvcHRpb25hbDxF
eGNlcHRpb25PcjxWYWx1ZT4+IG1fdmFsdWVPckV4Y2VwdGlvbjsKICAgICBWZWN0b3I8UmVmPERl
ZmVycmVkUHJvbWlzZT4sIDE+IG1fZGVmZXJyZWRQcm9taXNlczsKIH07CkBAIC0xMDksMTEgKzEx
MSwxMCBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxSZWY8RGVmZXJyZWRQcm9taXNlPiwgMT4gbV9k
ZWZlcnJlZFByb21pc2VzOwogfTsKIAotCiAvLyBNQVJLOiAtIERPTVByb21pc2VQcm94eTxJRExU
eXBlPiBnZW5lcmljIGltcGxlbWVudGF0aW9uCiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+
Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cHJvbWlzZShK
U0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVj
dCYgZ2xvYmFsT2JqZWN0KQoraW5saW5lIEpTQzo6SlNWYWx1ZSBET01Qcm9taXNlUHJveHk8SURM
VHlwZT46OnJlc29sdmVQcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxP
YmplY3QsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IEZ1bmN0aW9uPHZv
aWQoRGVmZXJyZWRQcm9taXNlJik+JiByZXNvbHZlUHJvbWlzZUNhbGxiYWNrKQogewogICAgIFVO
VVNFRF9QQVJBTShsZXhpY2FsR2xvYmFsT2JqZWN0KTsKICAgICBmb3IgKGF1dG8mIGRlZmVycmVk
UHJvbWlzZSA6IG1fZGVmZXJyZWRQcm9taXNlcykgewpAQCAtMTMwLDcgKzEzMSw3IEBAIGlubGlu
ZSBKU0M6OkpTVmFsdWUgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+Ojpwcm9taXNlKEpTQzo6SlNH
bG9iYWxPYmplY3QmIGxleGljCiAgICAgICAgIGlmIChtX3ZhbHVlT3JFeGNlcHRpb24tPmhhc0V4
Y2VwdGlvbigpKQogICAgICAgICAgICAgZGVmZXJyZWRQcm9taXNlLT5yZWplY3QobV92YWx1ZU9y
RXhjZXB0aW9uLT5leGNlcHRpb24oKSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRlZmVy
cmVkUHJvbWlzZS0+dGVtcGxhdGUgcmVzb2x2ZTxJRExUeXBlPihtX3ZhbHVlT3JFeGNlcHRpb24t
PnJldHVyblZhbHVlKCkpOworICAgICAgICAgICAgcmVzb2x2ZVByb21pc2VDYWxsYmFjaygqZGVm
ZXJyZWRQcm9taXNlKTsKICAgICB9CiAKICAgICBhdXRvIHJlc3VsdCA9IGRlZmVycmVkUHJvbWlz
ZS0+cHJvbWlzZSgpOwpAQCAtMTM4LDYgKzEzOSwyMiBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIERP
TVByb21pc2VQcm94eTxJRExUeXBlPjo6cHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
YwogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+Citp
bmxpbmUgSlNDOjpKU1ZhbHVlIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cHJvbWlzZShKU0M6
OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYg
Z2xvYmFsT2JqZWN0KQoreworICAgIHJldHVybiByZXNvbHZlUHJvbWlzZShsZXhpY2FsR2xvYmFs
T2JqZWN0LCBnbG9iYWxPYmplY3QsIFt0aGlzXShhdXRvJiBkZWZlcnJlZFByb21pc2UpIHsKKyAg
ICAgICAgZGVmZXJyZWRQcm9taXNlLnRlbXBsYXRlIHJlc29sdmU8SURMVHlwZT4obV92YWx1ZU9y
RXhjZXB0aW9uLT5yZXR1cm5WYWx1ZSgpKTsKKyAgICB9KTsKK30KKwordGVtcGxhdGU8PgoraW5s
aW5lIEpTQzo6SlNWYWx1ZSBET01Qcm9taXNlUHJveHk8SURMQW55Pjo6cHJvbWlzZShKU0M6OkpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xv
YmFsT2JqZWN0KQoreworICAgIHJldHVybiByZXNvbHZlUHJvbWlzZShsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBnbG9iYWxPYmplY3QsIFt0aGlzXShhdXRvJiBkZWZlcnJlZFByb21pc2UpIHsKKyAgICAg
ICAgZGVmZXJyZWRQcm9taXNlLnJlc29sdmVXaXRoSlNWYWx1ZShtX3ZhbHVlT3JFeGNlcHRpb24t
PnJldHVyblZhbHVlKCkuZ2V0KCkpOworICAgIH0pOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJ
RExUeXBlPgogaW5saW5lIHZvaWQgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+OjpjbGVhcigpCiB7
CkBAIC0xNTIsMjEgKzE2OSwzMSBAQCBpbmxpbmUgYm9vbCBET01Qcm9taXNlUHJveHk8SURMVHlw
ZT46OmlzRnVsZmlsbGVkKCkgY29uc3QKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4K
LWlubGluZSB2b2lkIERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cmVzb2x2ZSh0eXBlbmFtZSBJ
RExUeXBlOjpQYXJhbWV0ZXJUeXBlIHZhbHVlKQoraW5saW5lIHZvaWQgRE9NUHJvbWlzZVByb3h5
PElETFR5cGU+OjpyZXNvbHZlKHR5cGVuYW1lIElETFR5cGU6OlN0b3JhZ2VUeXBlIHZhbHVlKQog
ewogICAgIEFTU0VSVCghbV92YWx1ZU9yRXhjZXB0aW9uKTsKIAotICAgIG1fdmFsdWVPckV4Y2Vw
dGlvbiA9IEV4Y2VwdGlvbk9yPFZhbHVlPiB7IHN0ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExUeXBl
OjpQYXJhbWV0ZXJUeXBlPih2YWx1ZSkgfTsKKyAgICBtX3ZhbHVlT3JFeGNlcHRpb24gPSBFeGNl
cHRpb25PcjxWYWx1ZT4geyBzdGQ6OmZvcndhcmQ8dHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5
cGU+KHZhbHVlKSB9OwogICAgIGZvciAoYXV0byYgZGVmZXJyZWRQcm9taXNlIDogbV9kZWZlcnJl
ZFByb21pc2VzKQogICAgICAgICBkZWZlcnJlZFByb21pc2UtPnRlbXBsYXRlIHJlc29sdmU8SURM
VHlwZT4obV92YWx1ZU9yRXhjZXB0aW9uLT5yZXR1cm5WYWx1ZSgpKTsKIH0KIAordGVtcGxhdGU8
PgoraW5saW5lIHZvaWQgRE9NUHJvbWlzZVByb3h5PElETEFueT46OnJlc29sdmUodHlwZW5hbWUg
SURMQW55OjpTdG9yYWdlVHlwZSB2YWx1ZSkKK3sKKyAgICBBU1NFUlQoIW1fdmFsdWVPckV4Y2Vw
dGlvbik7CisKKyAgICBtX3ZhbHVlT3JFeGNlcHRpb24gPSBFeGNlcHRpb25PcjxWYWx1ZT4geyBz
dGQ6OmZvcndhcmQ8dHlwZW5hbWUgSURMQW55OjpTdG9yYWdlVHlwZT4odmFsdWUpIH07CisgICAg
Zm9yIChhdXRvJiBkZWZlcnJlZFByb21pc2UgOiBtX2RlZmVycmVkUHJvbWlzZXMpCisgICAgICAg
IGRlZmVycmVkUHJvbWlzZS0+cmVzb2x2ZVdpdGhKU1ZhbHVlKG1fdmFsdWVPckV4Y2VwdGlvbi0+
cmV0dXJuVmFsdWUoKS5nZXQoKSk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+Ci1p
bmxpbmUgdm9pZCBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OnJlc29sdmVXaXRoTmV3bHlDcmVh
dGVkKHR5cGVuYW1lIElETFR5cGU6OlBhcmFtZXRlclR5cGUgdmFsdWUpCitpbmxpbmUgdm9pZCBE
T01Qcm9taXNlUHJveHk8SURMVHlwZT46OnJlc29sdmVXaXRoTmV3bHlDcmVhdGVkKHR5cGVuYW1l
IElETFR5cGU6OlN0b3JhZ2VUeXBlIHZhbHVlKQogewogICAgIEFTU0VSVCghbV92YWx1ZU9yRXhj
ZXB0aW9uKTsKIAotICAgIG1fdmFsdWVPckV4Y2VwdGlvbiA9IEV4Y2VwdGlvbk9yPFZhbHVlPiB7
IHN0ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPih2YWx1ZSkgfTsK
KyAgICBtX3ZhbHVlT3JFeGNlcHRpb24gPSBFeGNlcHRpb25PcjxWYWx1ZT4geyBzdGQ6OmZvcndh
cmQ8dHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGU+KHZhbHVlKSB9OwogICAgIGZvciAoYXV0
byYgZGVmZXJyZWRQcm9taXNlIDogbV9kZWZlcnJlZFByb21pc2VzKQogICAgICAgICBkZWZlcnJl
ZFByb21pc2UtPnRlbXBsYXRlIHJlc29sdmVXaXRoTmV3bHlDcmVhdGVkPElETFR5cGU+KG1fdmFs
dWVPckV4Y2VwdGlvbi0+cmV0dXJuVmFsdWUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9XZWJDb3JlQnVpbHRpbk5hbWVzLmgKaW5kZXggZWI0MzU0NWQ5YjUwMTgxMGNi
MWRiMmJkZmYwNWY0YzZmYzE0MzJkYy4uZjE5YTA4OGJkM2M0YWQxYjE1NTFhOTE3OGZmNzIwNTUz
YjUzNGViYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1
aWx0aW5OYW1lcy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWls
dGluTmFtZXMuaApAQCAtMjE3LDYgKzIxNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBt
YWNybyhNZWRpYVN0cmVhbVRyYWNrKSBcCiAgICAgbWFjcm8oTWVyY2hhbnRWYWxpZGF0aW9uRXZl
bnQpIFwKICAgICBtYWNybyhNb2NrUlRDUnRwVHJhbnNmb3JtKSBcCisgICAgbWFjcm8oTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyKSBcCiAgICAgbWFjcm8oTmF2aWdhdG9yQ3JlZGVudGlhbHMpIFwK
ICAgICBtYWNybyhOYXZpZ2F0b3JNZWRpYURldmljZXMpIFwKICAgICBtYWNybyhOYXZpZ2F0b3JQ
ZXJtaXNzaW9ucykgXApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNv
dXJjZS5jcHAKaW5kZXggOGI4M2U1MzMxOTBhNzc2YmE4ZjQwYzI4MzE1OGNkYjc2MWFlOTcwMi4u
M2FlOGJiNjhkMjVjZGRkMTgwMjA5MjJmNWVkYjI0ZDRiOTEyMDAwMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2UuY3BwCkBAIC00NTUsOSArNDU1LDE2
IEBAIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VSZXF1ZXN0
JiYgcmVxdWVzdCwgY29uc3QgUmVzb3VyY2VSCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92
ZShyZXF1ZXN0KSk7CiB9CiAKKyNpZiBBU1NFUlRfRU5BQkxFRAorc3RhdGljIGJvb2wgaXNPcGFx
dWVSZWRpcmVjdFJlc3BvbnNlV2l0aG91dExvY2F0aW9uSGVhZGVyKGNvbnN0IFJlc291cmNlUmVz
cG9uc2UmIHJlc3BvbnNlKQoreworICAgIHJldHVybiByZXNwb25zZS50eXBlKCkgPT0gUmVzb3Vy
Y2VSZXNwb25zZTo6VHlwZTo6T3BhcXVlcmVkaXJlY3QgJiYgcmVzcG9uc2UuaXNSZWRpcmVjdGlv
bigpICYmIHJlc3BvbnNlLmh0dHBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24p
LmlzTnVsbCgpOworfQorI2VuZGlmCisKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnNldFJlc3BvbnNl
KGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQogewotICAgIEFTU0VSVChtX3Jlc3Bv
bnNlLnR5cGUoKSA9PSBSZXNvdXJjZVJlc3BvbnNlOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBBU1NF
UlQobV9yZXNwb25zZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6RGVmYXVsdCB8
fCBpc09wYXF1ZVJlZGlyZWN0UmVzcG9uc2VXaXRob3V0TG9jYXRpb25IZWFkZXIobV9yZXNwb25z
ZSkpOwogICAgIG1fcmVzcG9uc2UgPSByZXNwb25zZTsKICAgICBtX3ZhcnlpbmdIZWFkZXJWYWx1
ZXMgPSBjb2xsZWN0VmFyeWluZ1JlcXVlc3RIZWFkZXJzKGNvb2tpZUphcigpLCBtX3Jlc291cmNl
UmVxdWVzdCwgbV9yZXNwb25zZSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcAppbmRl
eCAxM2Y1YjQ2ZGY5MzcyMjM3OWU4Yzk4OTliMDNiNmEyMWY5ZGY2NTI3Li41Yzk0YjYwMzc3NWE1
ZWY2MTJmZmMzM2NhZGEzMGZjZjYwZTc5OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMu
Y3BwCkBAIC0zMyw2ICszMyw3IEBAIENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMoKQogICAgICwgZXZlbnRzb3VyY2UoImV2ZW50
c291cmNlIiwgQXRvbVN0cmluZzo6Q29uc3RydWN0RnJvbUxpdGVyYWwpCiAgICAgLCBmZXRjaCgi
ZmV0Y2giLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKICAgICAsIGljb24oImlj
b24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKKyAgICAsIG5hdmlnYXRpb24o
Im5hdmlnYXRpb24iLCBBdG9tU3RyaW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKICAgICAsIHht
bGh0dHByZXF1ZXN0KCJ4bWxodHRwcmVxdWVzdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21M
aXRlcmFsKQogewogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmgKaW5kZXggMDY0YTgzMWZiOWNk
Njc1NjdmZWM1ZTIzNzI2NDg1MGI5NjkyNGVmMy4uODAwYzliMzIxYmViOTBlOTQ1NDdiNzgxZjI4
NzkyY2EzYjY4OTJlMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2Fk
ZXIvY2FjaGUvQ2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5oCkBAIC0zNyw2ICszNyw3
IEBAIHN0cnVjdCBDYWNoZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzIHsKICAgICBjb25zdCBB
dG9tU3RyaW5nIGV2ZW50c291cmNlOwogICAgIGNvbnN0IEF0b21TdHJpbmcgZmV0Y2g7CiAgICAg
Y29uc3QgQXRvbVN0cmluZyBpY29uOworICAgIGNvbnN0IEF0b21TdHJpbmcgbmF2aWdhdGlvbjsK
ICAgICBjb25zdCBBdG9tU3RyaW5nIHhtbGh0dHByZXF1ZXN0OwogICAgIFdURl9NQUtFX05PTkNP
UFlBQkxFKENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMpOyBXVEZfTUFLRV9GQVNUX0FM
TE9DQVRFRDsKIHByaXZhdGU6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9u
ZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdv
cmsvSFRUUEhlYWRlck5hbWVzLmluCmluZGV4IDM4YzFmMWZkNTk3MTYzZjk0MzYzYzVmNGEyMGQ2
N2E4NWY1MmE4NjUuLmNkNjk5OTNlOGU5MmZhOTFlZjhhNWQ4OGRhZGJlYWE3YjdjNDBkMTkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVz
LmluCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVz
LmluCkBAIC05Miw2ICs5Miw3IEBAIFNlYy1XZWJTb2NrZXQtVmVyc2lvbgogU2VydmVyLVRpbWlu
ZwogU2VydmljZS1Xb3JrZXIKIFNlcnZpY2UtV29ya2VyLUFsbG93ZWQKK1NlcnZpY2UtV29ya2Vy
LU5hdmlnYXRpb24tUHJlbG9hZAogU2V0LUNvb2tpZQogU2V0LUNvb2tpZTIKIFNvdXJjZU1hcApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCmluZGV4IGFm
Y2Q2ZTljZDA1NGRlY2E0YjY1YWFjYzRjM2NjNGM4N2YyOTQ1NjYuLjZjZjQ2OTlmNzEzYmJmOGRl
MDQ4OGVmNTIzZDAyZTQ3NTRiYjUyMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9GZXRjaEV2ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvRmV0Y2hFdmVudC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChD
KSAyMDE3IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykg
MjAxNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3Ry
aWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhv
dXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xs
b3dpbmcgY29uZGl0aW9ucwpAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkZldGNoRXZlbnQuaCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU0Zl
dGNoUmVzcG9uc2UuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC0xMzcsNiArMTM4LDQ0IEBA
IHZvaWQgRmV0Y2hFdmVudDo6cHJvbWlzZUlzU2V0dGxlZCgpCiAgICAgcHJvY2Vzc1Jlc3BvbnNl
KFJlZiB7ICpyZXNwb25zZSB9KTsKIH0KIAorRmV0Y2hFdmVudDo6UHJlbG9hZFJlc3BvbnNlUHJv
bWlzZSYgRmV0Y2hFdmVudDo6cHJlbG9hZFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQpCit7CisgICAgaWYgKCFtX3ByZWxvYWRSZXNwb25zZVByb21pc2UpIHsKKyAgICAg
ICAgbV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlID0gbWFrZVVuaXF1ZTxQcmVsb2FkUmVzcG9uc2VQ
cm9taXNlPigpOworICAgICAgICBpZiAoIW1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKSB7
CisgICAgICAgICAgICBhdXRvKiBnbG9iYWxPYmplY3QgPSBjb250ZXh0Lmdsb2JhbE9iamVjdCgp
OworICAgICAgICAgICAgaWYgKGdsb2JhbE9iamVjdCkgeworICAgICAgICAgICAgICAgIEpTQzo6
U3Ryb25nPEpTQzo6VW5rbm93bj4gdmFsdWUgeyBnbG9iYWxPYmplY3QtPnZtKCksIEpTQzo6anNV
bmRlZmluZWQoKSB9OworICAgICAgICAgICAgICAgIG1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZS0+
cmVzb2x2ZSh2YWx1ZSk7CisgICAgICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKm1fcHJl
bG9hZFJlc3BvbnNlUHJvbWlzZTsKKyAgICAgICAgfQorCisgICAgICAgIGF1dG8gcmVxdWVzdCA9
IEZldGNoUmVxdWVzdDo6Y3JlYXRlKGNvbnRleHQsIHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUo
KSwgUmVzb3VyY2VSZXF1ZXN0IHsgbV9yZXF1ZXN0LT5pbnRlcm5hbFJlcXVlc3QoKSB9ICwgRmV0
Y2hPcHRpb25zIHsgbV9yZXF1ZXN0LT5mZXRjaE9wdGlvbnMoKSB9LCBTdHJpbmcgeyBtX3JlcXVl
c3QtPmludGVybmFsUmVxdWVzdFJlZmVycmVyKCkgfSk7CisgICAgICAgIHJlcXVlc3QtPnNldE5h
dmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcihtX25hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcik7
CisgICAgICAgIEZldGNoUmVzcG9uc2U6OmZldGNoKGNvbnRleHQsIHJlcXVlc3QuZ2V0KCksIFtw
cm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfV0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAg
ICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgICAgIHByb3RlY3Rl
ZFRoaXMtPm1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhj
ZXB0aW9uKCkpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgUmVmIHJlc3BvbnNlID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAg
ICAgICAgICAgYXV0byogY29udGV4dCA9IHJlc3BvbnNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0
KCk7CisgICAgICAgICAgICBpZiAoIWNvbnRleHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICAgICAgYXV0byogZ2xvYmFsT2JqZWN0ID0gY29udGV4dC0+Z2xvYmFsT2JqZWN0KCk7
CisgICAgICAgICAgICBpZiAoIWdsb2JhbE9iamVjdCkKKyAgICAgICAgICAgICAgICByZXR1cm47
CisKKyAgICAgICAgICAgIGF1dG8mIHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAg
ICAgSlNDOjpKU0xvY2tIb2xkZXIgbG9jayh2bSk7CisgICAgICAgICAgICBKU0M6OlN0cm9uZzxK
U0M6OlVua25vd24+IHZhbHVlIHsgdm0sIHRvSlMoZ2xvYmFsT2JqZWN0LCBKU0M6OmpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCksIHJlc3BvbnNlLmdldCgpKSB9OworICAg
ICAgICAgICAgcHJvdGVjdGVkVGhpcy0+bV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlLT5yZXNvbHZl
KHZhbHVlKTsKKyAgICAgICAgfSwgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLm5h
dmlnYXRpb24pOworICAgIH0KKyAgICByZXR1cm4gKm1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZTsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNo
RXZlbnQuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmgKaW5k
ZXggNzQ1MGZmYzBhZTU4MzhlMTlkMGE5YTU3MDUwZWQ4MzlmN2ExNTZiZi4uOGY3YWFmNTdiNGZi
MzIyMjVmMzgzNzVkM2NkMDlmZjcwYTY0ZDJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvRmV0Y2hFdmVudC5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJET01Qcm9taXNlUHJveHkuaCIKICNpbmNsdWRlICJF
eHRlbmRhYmxlRXZlbnQuaCIKICNpbmNsdWRlICJGZXRjaFJlcXVlc3QuaCIKICNpbmNsdWRlIDx3
dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KQEAgLTcxLDYgKzcyLDExIEBAIHB1YmxpYzoKIAogICAg
IHN0YXRpYyBSZXNvdXJjZUVycm9yIGNyZWF0ZVJlc3BvbnNlRXJyb3IoY29uc3QgVVJMJiwgY29u
c3QgU3RyaW5nJiwgUmVzb3VyY2VFcnJvcjo6SXNTYW5pdGl6ZWQgPSBSZXNvdXJjZUVycm9yOjpJ
c1Nhbml0aXplZDo6Tm8pOwogCisgICAgdXNpbmcgUHJlbG9hZFJlc3BvbnNlUHJvbWlzZSA9IERP
TVByb21pc2VQcm94eTxJRExBbnk+OworICAgIFByZWxvYWRSZXNwb25zZVByb21pc2UmIHByZWxv
YWRSZXNwb25zZShTY3JpcHRFeGVjdXRpb25Db250ZXh0Jik7CisKKyAgICB2b2lkIHNldE5hdmln
YXRpb25QcmVsb2FkSWRlbnRpZmllcihGZXRjaElkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAg
IFdFQkNPUkVfRVhQT1JUIEZldGNoRXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIEluaXQmJiwgSXNU
cnVzdGVkKTsKIApAQCAtODksOCArOTUsMTggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NUHJv
bWlzZT4gbV9yZXNwb25kUHJvbWlzZTsKIAogICAgIFJlc3BvbnNlQ2FsbGJhY2sgbV9vblJlc3Bv
bnNlOworCisgICAgRmV0Y2hJZGVudGlmaWVyIG1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVy
OworICAgIHN0ZDo6dW5pcXVlX3B0cjxQcmVsb2FkUmVzcG9uc2VQcm9taXNlPiBtX3ByZWxvYWRS
ZXNwb25zZVByb21pc2U7CiB9OwogCitpbmxpbmUgdm9pZCBGZXRjaEV2ZW50OjpzZXROYXZpZ2F0
aW9uUHJlbG9hZElkZW50aWZpZXIoRmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAg
QVNTRVJUKCFtX25hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcik7CisgICAgQVNTRVJUKGlkZW50
aWZpZXIpOworICAgIG1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsK
K30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0Vf
V09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNo
RXZlbnQuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRs
CmluZGV4IGFlY2JlYWRiNDg3YmQ0OGYwY2IzM2Y5M2Q4ZDlkMzIzMGMwMzJjMWIuLjk3Mzc1OTA2
ZGYwZjRjMGVhMTU4Y2FkNjk3Yzk0NmIzZmI3ZWYyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGwKQEAgLTMyLDggKzMyLDggQEAKICAgICBKU0dl
bmVyYXRlVG9OYXRpdmVPYmplY3QKIF0gaW50ZXJmYWNlIEZldGNoRXZlbnQgOiBFeHRlbmRhYmxl
RXZlbnQgewogICAgIGNvbnN0cnVjdG9yKERPTVN0cmluZyB0eXBlLCBGZXRjaEV2ZW50SW5pdCBl
dmVudEluaXREaWN0KTsKLQogICAgIFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRmV0
Y2hSZXF1ZXN0IHJlcXVlc3Q7CisgICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQs
IEVuYWJsZWRCeVNldHRpbmc9U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0g
cmVhZG9ubHkgYXR0cmlidXRlIFByb21pc2U8YW55PiBwcmVsb2FkUmVzcG9uc2U7CiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyBjbGllbnRJZDsKICAgICByZWFkb25seSBhdHRyaWJ1
dGUgRE9NU3RyaW5nIHJlc2VydmVkQ2xpZW50SWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERP
TVN0cmluZyB0YXJnZXRDbGllbnRJZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
OTE0Y2E5YTAxZGUwYjRiNTMwYTk1OTA1ZDk1NzNhZjIwODMzZjNmZAotLS0gL2Rldi9udWxsCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIuY3BwCkBAIC0wLDAgKzEsNTggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUg
SW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0
aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0Cisg
KiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlh
bHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycK
KyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFC
SUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xB
SU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisg
KiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBT
RVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJ
TlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBP
VVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRI
RSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgi
CisjaW5jbHVkZSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgiCisjaW5j
bHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3ZvaWQgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyOjplbmFibGUoUHJvbWlzZSYmIHByb21p
c2UpCit7CisgICAgbV9yZWdpc3RyYXRpb24uY29udGFpbmVyKCkuZW5hYmxlTmF2aWdhdGlvblBy
ZWxvYWQobV9yZWdpc3RyYXRpb24uaWRlbnRpZmllcigpLCBXVEZNb3ZlKHByb21pc2UpKTsKK30K
Kwordm9pZCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXI6OmRpc2FibGUoUHJvbWlzZSYmIHByb21p
c2UpCit7CisgICAgbV9yZWdpc3RyYXRpb24uY29udGFpbmVyKCkuZGlzYWJsZU5hdmlnYXRpb25Q
cmVsb2FkKG1fcmVnaXN0cmF0aW9uLmlkZW50aWZpZXIoKSwgV1RGTW92ZShwcm9taXNlKSk7Cit9
CisKK3ZvaWQgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyOjpzZXRIZWFkZXJWYWx1ZShTdHJpbmcm
JiB2YWx1ZSwgUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgbV9yZWdpc3RyYXRpb24uY29udGFp
bmVyKCkuc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShtX3JlZ2lzdHJhdGlvbi5pZGVu
dGlmaWVyKCksIFdURk1vdmUodmFsdWUpLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXI6OmdldFN0YXRlKFN0YXRlUHJvbWlzZSYmIHByb21pc2Up
Cit7CisgICAgbV9yZWdpc3RyYXRpb24uY29udGFpbmVyKCkuZ2V0TmF2aWdhdGlvblByZWxvYWRT
dGF0ZShtX3JlZ2lzdHJhdGlvbi5pZGVudGlmaWVyKCksIFdURk1vdmUocHJvbWlzZSkpOworfQor
Cit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZThjZjY5OTRiYmY0MjI0ODQ0OGU1MzQ3
MzVjMzRjMWEyM2M0ZTljYQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaApAQCAtMCwwICsxLDY0IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisK
KyNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgiCisjaW5jbHVkZSAiU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5hdmln
YXRpb25QcmVsb2FkTWFuYWdlciB7CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJs
aWM6CisgICAgZnJpZW5kIGNsYXNzIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb247CisKKyAgICB1
c2luZyBQcm9taXNlID0gRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+OworICAgIHZvaWQgZW5hYmxl
KFByb21pc2UmJik7CisgICAgdm9pZCBkaXNhYmxlKFByb21pc2UmJik7CisgICAgdm9pZCBzZXRI
ZWFkZXJWYWx1ZShTdHJpbmcmJiwgUHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFN0YXRlUHJvbWlz
ZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExEaWN0aW9uYXJ5PE5hdmlnYXRpb25QcmVsb2FkU3Rh
dGU+PjsKKyAgICB2b2lkIGdldFN0YXRlKFN0YXRlUHJvbWlzZSYmKTsKKworICAgIHZvaWQgcmVm
KCkgeyBtX3JlZ2lzdHJhdGlvbi5yZWYoKTsgfQorICAgIHZvaWQgZGVyZWYoKSB7IG1fcmVnaXN0
cmF0aW9uLmRlcmVmKCk7IH0KKworcHJpdmF0ZToKKyAgICBleHBsaWNpdCBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiYpOworCisgICAgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiYgbV9yZWdpc3RyYXRpb247Cit9OworCitpbmxpbmUgTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyOjpOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbiYgcmVnaXN0cmF0aW9uKQorICAgIDogbV9yZWdpc3RyYXRpb24ocmVnaXN0cmF0
aW9uKQoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUo
U0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MzlmODU4
MTcwMzFiNjIwODg1ZDQxM2NlMTMyNTY3NDE0MTdiMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbApA
QCAtMCwwICsxLDM2IEBACisvKgorKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorKgorKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVy
bWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6
CisqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJv
dmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQor
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorKgorKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBU
SEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSCisqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxM
IEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJF
Q1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNF
UVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVN
RU5UIE9GCisqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VE
IEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FS
RSwgRVZFTiBJRiBBRFZJU0VEIE9GCisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4K
KyovCisKK1sKKyAgICBDb25kaXRpb25hbD1TRVJWSUNFX1dPUktFUiwKKyAgICBFbmFibGVkQnlT
ZXR0aW5nPVNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQsCisgICAgRXhwb3Nl
ZD0oV2luZG93LFdvcmtlciksCisgICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCitdIGludGVyZmFj
ZSBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgeworICAgIFByb21pc2U8dW5kZWZpbmVkPiBlbmFi
bGUoKTsKKyAgICBQcm9taXNlPHVuZGVmaW5lZD4gZGlzYWJsZSgpOworICAgIFByb21pc2U8dW5k
ZWZpbmVkPiBzZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5nIHZhbHVlKTsKKyAgICBQcm9taXNlPE5h
dmlnYXRpb25QcmVsb2FkU3RhdGU+IGdldFN0YXRlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYzM4ZWQ1ZTI3OTdmNTVkNTAxZDFkZGNmOGY3MDFiNWJlZDAwMWE1OAotLS0gL2Rldi9u
dWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9h
ZFN0YXRlLmgKQEAgLTAsMCArMSw2MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmlj
YXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlv
bnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVz
dCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
KyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcg
ZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVy
aWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FS
RSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMn
JworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5U
QUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVND
TEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMK
KyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJ
QUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBC
VVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9S
IFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAq
IElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklM
SVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAo
SU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZ
IE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICog
VEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisj
aWYgRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0
IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgeworICAgIGJvb2wgZW5hYmxlZCB7IGZhbHNlIH07Cisg
ICAgU3RyaW5nIGhlYWRlclZhbHVlOworCisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBpc29s
YXRlZENvcHkoKSBjb25zdCAmIHsgcmV0dXJuIHsgZW5hYmxlZCwgaGVhZGVyVmFsdWUuaXNvbGF0
ZWRDb3B5KCkgfTsgfQorICAgIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgaXNvbGF0ZWRDb3B5KCkg
JiYgeyByZXR1cm4geyBlbmFibGVkLCBXVEZNb3ZlKGhlYWRlclZhbHVlKS5pc29sYXRlZENvcHko
KSB9OyB9CisKKyAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JiBlbmNvZGVyKSBjb25zdCB7IGVuY29kZXIgPDwgZW5hYmxlZCA8PCBoZWFkZXJWYWx1ZTsgfQor
ICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRp
b25QcmVsb2FkU3RhdGU+IGRlY29kZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBE
ZWNvZGVyPgorc3RkOjpvcHRpb25hbDxOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlPiBOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlv
bmFsPGJvb2w+IGVuYWJsZWQ7CisgICAgZGVjb2RlciA+PiBlbmFibGVkOworICAgIGlmICghZW5h
YmxlZCkKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBo
ZWFkZXJWYWx1ZTsKKyAgICBkZWNvZGVyID4+IGhlYWRlclZhbHVlOworICAgIGlmICghaGVhZGVy
VmFsdWUpCisgICAgICAgIHJldHVybiB7IH07CisgICAgcmV0dXJuIHsgeyAqZW5hYmxlZCwgV1RG
TW92ZSgqaGVhZGVyVmFsdWUpIH0gfTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisj
ZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmJjNzkzMTdiNTI3MjdjMzNkYzRlYTY0NDYxZDVmNmNkYzI3MGM0ZGQKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRT
dGF0ZS5pZGwKQEAgLTAsMCArMSwzMyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
KiBhcmUgbWV0OgorKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ciBpbiB0aGUKKyogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3Zp
ZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJ
VE5FU1MgRk9SIEEgUEFSVElDVUxBUgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBF
VkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZP
UiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UgorKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRP
LCBQUk9DVVJFTUVOVCBPRgorKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dF
VkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisqLworCitbCisgICAgQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIsCisgICAg
SlNHZW5lcmF0ZVRvSlNPYmplY3QsCitdCitkaWN0aW9uYXJ5IE5hdmlnYXRpb25QcmVsb2FkU3Rh
dGUgeworICAgIGJvb2xlYW4gZW5hYmxlZCA9IGZhbHNlOworICAgIEJ5dGVTdHJpbmcgaGVhZGVy
VmFsdWU7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NX
Q2xpZW50Q29ubmVjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xp
ZW50Q29ubmVjdGlvbi5oCmluZGV4IDk1YjBlNTgxOWVhOTFiNjY5YjJlOTdlZjQ1MDllMzQxNDJl
YWFiNjguLjI1YzVhNWNkODMwMzNiNjlmNjExMjI3NGQ2ZDBiNTkzZmU3MTdmM2YgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgK
QEAgLTI4LDYgKzI4LDcgQEAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRl
ICJFeGNlcHRpb25Pci5oIgorI2luY2x1ZGUgIk5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCIKICNp
bmNsdWRlICJQdXNoUGVybWlzc2lvblN0YXRlLmgiCiAjaW5jbHVkZSAiUHVzaFN1YnNjcmlwdGlv
bkRhdGEuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgpA
QCAtMTAwLDYgKzEwMSwxMyBAQCBwdWJsaWM6CiAgICAgdXNpbmcgR2V0UHVzaFBlcm1pc3Npb25T
dGF0ZUNhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxQdXNoUGVy
bWlzc2lvblN0YXRlPiYmKT47CiAgICAgdmlydHVhbCB2b2lkIGdldFB1c2hQZXJtaXNzaW9uU3Rh
dGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEdldFB1c2hQZXJtaXNzaW9u
U3RhdGVDYWxsYmFjayYmKSA9IDA7CiAKKyAgICB1c2luZyBFeGNlcHRpb25PclZvaWRDYWxsYmFj
ayA9IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OworICAgIHZp
cnR1YWwgdm9pZCBlbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1
YWwgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFs
IHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpID0g
MDsKKyAgICB1c2luZyBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoRXhjZXB0aW9uT3I8TmF2aWdhdGlvblByZWxvYWRTdGF0
ZT4mJik+OworICAgIHZpcnR1YWwgdm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVs
b2FkU3RhdGVDYWxsYmFjayYmKSA9IDA7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lz
dGVyU2VydmljZVdvcmtlckNsaWVudHMoKTsKICAgICBib29sIGlzQ2xvc2VkKCkgY29uc3QgeyBy
ZXR1cm4gbV9pc0Nsb3NlZDsgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5lci5jcHAKaW5kZXggODhjOTk3YzY0ZmQ1
OWQyZjgyMGI1ZWE1ODVhM2IxNWE2Zjk1YWI2OC4uYjQyMjg4Y2FiM2UxYzk0MGVmZDkzZDUzODcw
ZDU1OTJiYTgyOGEyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1NlcnZpY2VXb3JrZXJDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMv
c2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2lu
Y2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNs
dWRlICJKU0RPTVByb21pc2VEZWZlcnJlZC5oIgorI2luY2x1ZGUgIkpTTmF2aWdhdGlvblByZWxv
YWRTdGF0ZS5oIgogI2luY2x1ZGUgIkpTUHVzaFN1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkpT
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgogI2luY2x1ZGUgIkxlZ2FjeVNjaGVtZVJlZ2lz
dHJ5LmgiCkBAIC02NDYsNiArNjQ3LDM4IEBAIGJvb2wgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6
YWRkRXZlbnRMaXN0ZW5lcihjb25zdCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFCiAgICAg
cmV0dXJuIEV2ZW50VGFyZ2V0V2l0aElubGluZURhdGE6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRU
eXBlLCBXVEZNb3ZlKGV2ZW50TGlzdGVuZXIpLCBvcHRpb25zKTsKIH0KIAordm9pZCBTZXJ2aWNl
V29ya2VyQ29udGFpbmVyOjplbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBWb2lkUHJvbWlzZSYmIHByb21pc2UpCit7
CisgICAgZW5zdXJlU1dDbGllbnRDb25uZWN0aW9uKCkuZW5hYmxlTmF2aWdhdGlvblByZWxvYWQo
aWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVzdWx0KSBt
dXRhYmxlIHsKKyAgICAgICAgcHJvbWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9
KTsKK30KKwordm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjpkaXNhYmxlTmF2aWdhdGlvblBy
ZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgVm9p
ZFByb21pc2UmJiBwcm9taXNlKQoreworICAgIGVuc3VyZVNXQ2xpZW50Q29ubmVjdGlvbigpLmRp
c2FibGVOYXZpZ2F0aW9uUHJlbG9hZChpZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJv
bWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShX
VEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWlu
ZXI6OnNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgU3RyaW5nJiYgaGVhZGVyVmFsdWUsIFZvaWRQcm9t
aXNlJiYgcHJvbWlzZSkKK3sKKyAgICBlbnN1cmVTV0NsaWVudENvbm5lY3Rpb24oKS5zZXROYXZp
Z2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKGlkZW50aWZpZXIsIFdURk1vdmUoaGVhZGVyVmFsdWUp
LCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgewor
ICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2
b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgTmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZVByb21pc2UmJiBwcm9taXNlKQoreworICAgIGVuc3VyZVNXQ2xpZW50Q29ubmVj
dGlvbigpLmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoaWRlbnRpZmllciwgW3Byb21pc2UgPSBX
VEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHJl
c3VsdC5oYXNFeGNlcHRpb24oKSkgeworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0
LnJlbGVhc2VFeGNlcHRpb24oKSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAg
ICAgICAgcHJvbWlzZS5yZXNvbHZlKHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAg
fSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9T
ZXJ2aWNlV29ya2VyQ29udGFpbmVyLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uv
U2VydmljZVdvcmtlckNvbnRhaW5lci5oCmluZGV4IDgyODk3MWE2NTdhZjBlMDkwNjAyZDljMWEx
NzQ0ZjBmNTMyY2ZkNjUuLmE5YmJiZDgwYmQ0MWI5NDVkNGI4MTM4NGEyYzQyMzhjZjhlNDdhZTMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJDb250YWluZXIuaApAQCAtOTgsNiArOTgsMTMgQEAgcHVibGljOgogCiAgICAgTmF2aWdh
dG9yQmFzZSogbmF2aWdhdG9yKCkgeyByZXR1cm4gJm1fbmF2aWdhdG9yOyB9CiAKKyAgICB1c2lu
ZyBWb2lkUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDx2b2lkPjsKKyAgICB1c2luZyBOYXZp
Z2F0aW9uUHJlbG9hZFN0YXRlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExEaWN0aW9u
YXJ5PE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+PjsKKyAgICB2b2lkIGVuYWJsZU5hdmlnYXRpb25Q
cmVsb2FkKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBWb2lkUHJvbWlzZSYm
KTsKKyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgVm9pZFByb21pc2UmJik7CisgICAgdm9pZCBzZXROYXZpZ2F0aW9u
UHJlbG9hZEhlYWRlclZhbHVlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBT
dHJpbmcmJiwgVm9pZFByb21pc2UmJik7CisgICAgdm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBOYXZpZ2F0aW9uUHJlbG9h
ZFN0YXRlUHJvbWlzZSYmKTsKKwogcHJpdmF0ZToKICAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIo
Y29uc3QgQXRvbVN0cmluZyYgZXZlbnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3Qg
QWRkRXZlbnRMaXN0ZW5lck9wdGlvbnMmID0geyB9KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24uY3BwCmluZGV4IDBiNjgyOGM4ODdiYWUzYzBlYmViYTMwMzI5YjI5ZTE5OWRjNmJhNzEuLjBj
MDZkOTliYjMyZTJjZmU1ZjA2YzgwMDk4NTZiYzY0MGY4N2I5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5j
bHVkZSAiSlNET01Qcm9taXNlRGVmZXJyZWQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5j
bHVkZSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtl
ci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRlICJTZXJ2
aWNlV29ya2VyVHlwZXMuaCIKQEAgLTI1NCw2ICsyNTUsMTMgQEAgYm9vbCBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uOjp2aXJ0dWFsSGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKICAgICByZXR1
cm4gZ2V0TmV3ZXN0V29ya2VyKCkgJiYgaGFzRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAorTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyJiBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpuYXZpZ2F0aW9u
UHJlbG9hZCgpCit7CisgICAgaWYgKCFtX25hdmlnYXRpb25QcmVsb2FkKQorICAgICAgICBtX25h
dmlnYXRpb25QcmVsb2FkID0gc3RkOjp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
cj4obmV3IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcigqdGhpcykpOworICAgIHJldHVybiAqbV9u
YXZpZ2F0aW9uUHJlbG9hZDsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYg
Ly8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggODllYzk3
M2Y1ZmY2N2EzNmM3YTE0Yzk2ZjBhNTZkMTg3YTM0OTlmNi4uYzMyNzg5MjEzZTk0N2I5NDhjMTdl
MDkyODQzNTEzN2U0OGEzOTMwOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC00MCw2ICs0MCw3
IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKK2NsYXNz
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7
CiBjbGFzcyBTZXJ2aWNlV29ya2VyOwogY2xhc3MgU2VydmljZVdvcmtlckNvbnRhaW5lcjsKQEAg
LTg1LDYgKzg2LDkgQEAgcHVibGljOgogICAgIHZvaWQgdXBkYXRlU3RhdGVGcm9tU2VydmVyKFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25TdGF0ZSwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+JiYpOwog
ICAgIHZvaWQgcXVldWVUYXNrVG9GaXJlVXBkYXRlRm91bmRFdmVudCgpOwogCisgICAgTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyJiBuYXZpZ2F0aW9uUHJlbG9hZCgpOworICAgIFNlcnZpY2VXb3Jr
ZXJDb250YWluZXImIGNvbnRhaW5lcigpIHsgcmV0dXJuIG1fY29udGFpbmVyLmdldCgpOyB9CisK
IHByaXZhdGU6CiAgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRFeGVjdXRpb25D
b250ZXh0JiwgUmVmPFNlcnZpY2VXb3JrZXJDb250YWluZXI+JiYsIFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25EYXRhJiYpOwogCkBAIC0xMDQsNiArMTA4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQ
dHI8U2VydmljZVdvcmtlcj4gbV9pbnN0YWxsaW5nV29ya2VyOwogICAgIFJlZlB0cjxTZXJ2aWNl
V29ya2VyPiBtX3dhaXRpbmdXb3JrZXI7CiAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fYWN0
aXZlV29ya2VyOworCisgICAgc3RkOjp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
cj4gbV9uYXZpZ2F0aW9uUHJlbG9hZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uLmlkbAppbmRleCBkZDhiMjJlMzdlMTdmOGMwMTgwODM5ZmYxZWI0ODY0
YjYzMmYzMjY3Li4yZTlkMWZlNTFiNGMwN2NkZGQ3YWMzMjlmMDk3NTI2OGU0MDllMzQ4IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbi5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24uaWRsCkBAIC0zNyw2ICszNyw3IEBACiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFNlcnZpY2VXb3JrZXI/IGluc3RhbGxpbmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRl
IFNlcnZpY2VXb3JrZXI/IHdhaXRpbmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VX
b3JrZXI/IGFjdGl2ZTsKKyAgICBbU2FtZU9iamVjdCwgRW5hYmxlZEJ5U2V0dGluZz1TZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkXSByZWFkb25seSBhdHRyaWJ1dGUgTmF2aWdh
dGlvblByZWxvYWRNYW5hZ2VyIG5hdmlnYXRpb25QcmVsb2FkOwogCiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIFVTVlN0cmluZyBzY29wZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU2VydmljZVdv
cmtlclVwZGF0ZVZpYUNhY2hlIHVwZGF0ZVZpYUNhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcApp
bmRleCBmYWVmOTRhNzVhOGQ3MjE5ODZmNTc5ZjNiNjU5MDIzMzdmOGVlZjc4Li5lMGNhODczNjJi
MTRiZjdjMmI2NDgxMjcxYmY3ZjkxMDAzOTBkOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcApA
QCAtNzMsNiArNzMsMTQgQEAgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjp+V29ya2VyU1dDbGll
bnRDb25uZWN0aW9uKCkKICAgICBhdXRvIGdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFja3Mg
PSBXVEZNb3ZlKG1fZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrcyk7CiAgICAgZm9yIChh
dXRvJiBjYWxsYmFjayA6IGdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFja3MudmFsdWVzKCkp
CiAgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0IHN0b3Bw
ZWQiX3MgfSk7CisKKyAgICBhdXRvIHZvaWRDYWxsYmFja3MgPSBXVEZNb3ZlKG1fdm9pZENhbGxi
YWNrcyk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IHZvaWRDYWxsYmFja3MudmFsdWVzKCkp
CisgICAgICAgIGNhbGxiYWNrKEV4Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0IHN0b3Bw
ZWQiX3MgfSk7CisKKyAgICBhdXRvIG5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFja3MgPSBX
VEZNb3ZlKG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcyk7CisgICAgZm9yIChhdXRv
JiBjYWxsYmFjayA6IG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcy52YWx1ZXMoKSkK
KyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uIHsgQWJvcnRFcnJvciwgImNvbnRleHQgc3RvcHBl
ZCJfcyB9KTsKIH0KIAogdm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0
cmF0aW9uKFNlY3VyaXR5T3JpZ2luRGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRV
UkwsIFJlZ2lzdHJhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCkBAIC0yODUsNiArMjkzLDcwIEBA
IHZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29ya2VyU1dDbGll
bnRDb25uZWN0aW9uOjplbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRD
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0g
KyttX2xhc3RSZXF1ZXN0SWRlbnRpZmllcjsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKHJlcXVl
c3RJZGVudGlmaWVyLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFk
KFt0aHJlYWQgPSBtX3RocmVhZCwgcmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbklkZW50
aWZpZXJdKCkgbXV0YWJsZSB7CisgICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29y
a2VyUHJvdmlkZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CisgICAg
ICAgIGNvbm5lY3Rpb24uZW5hYmxlTmF2aWdhdGlvblByZWxvYWQocmVnaXN0cmF0aW9uSWRlbnRp
ZmllciwgW3RocmVhZCA9IFdURk1vdmUodGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJdKGF1dG8m
JiByZXN1bHQpIHsKKyAgICAgICAgICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9k
ZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKHJl
c3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgYXV0byBjYWxs
YmFjayA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuc3dDbGllbnRDb25uZWN0
aW9uKCkubV92b2lkQ2FsbGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICAg
ICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJS
dW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
V29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhj
ZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0
SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CisgICAgbV92b2lkQ2FsbGJh
Y2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2Fs
bE9uTWFpblRocmVhZChbdGhyZWFkID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlmaWVyLCByZWdp
c3RyYXRpb25JZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBjb25uZWN0aW9u
ID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVj
dGlvbigpOworICAgICAgICBjb25uZWN0aW9uLmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChyZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCByZXF1ZXN0SWRl
bnRpZmllcl0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhyZWFkLT5ydW5Mb29wKCku
cG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRD
b3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIGNhbGxiYWNrID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5z
d0NsaWVudENvbm5lY3Rpb24oKS5tX3ZvaWRDYWxsYmFja3MudGFrZShyZXF1ZXN0SWRlbnRpZmll
cik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAg
ICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9KTsKKyAgICB9
KTsKK30KKwordm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OnNldE5hdmlnYXRpb25QcmVs
b2FkSGVhZGVyVmFsdWUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0
cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYgaGVhZGVyVmFsdWUsIEV4Y2VwdGlvbk9yVm9pZENh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgPSAr
K21fbGFzdFJlcXVlc3RJZGVudGlmaWVyOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQocmVxdWVz
dElkZW50aWZpZXIsIFdURk1vdmUoY2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQo
W3RocmVhZCA9IG1fdGhyZWFkLCByZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uSWRlbnRp
ZmllciwgaGVhZGVyVmFsdWUgPSBXVEZNb3ZlKGhlYWRlclZhbHVlKS5pc29sYXRlZENvcHkoKV0o
KSBtdXRhYmxlIHsKKyAgICAgICAgYXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92
aWRlcjo6c2luZ2xldG9uKCkuc2VydmljZVdvcmtlckNvbm5lY3Rpb24oKTsKKyAgICAgICAgY29u
bmVjdGlvbi5zZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKHJlZ2lzdHJhdGlvbklkZW50
aWZpZXIsIFdURk1vdmUoaGVhZGVyVmFsdWUpLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCBy
ZXF1ZXN0SWRlbnRpZmllcl0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhyZWFkLT5y
dW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jv
c3NUaHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAg
ICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+
KHNjb3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5tX3ZvaWRDYWxsYmFja3MudGFrZShyZXF1ZXN0
SWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsK
KyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9
KTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OmdldE5hdmln
YXRpb25QcmVsb2FkU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsr
bV9sYXN0UmVxdWVzdElkZW50aWZpZXI7CisgICAgbV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAg
Y2FsbE9uTWFpblRocmVhZChbdGhyZWFkID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlmaWVyLCBy
ZWdpc3RyYXRpb25JZGVudGlmaWVyXSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBjb25uZWN0
aW9uID0gU2VydmljZVdvcmtlclByb3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29u
bmVjdGlvbigpOworICAgICAgICBjb25uZWN0aW9uLmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUo
cmVnaXN0cmF0aW9uSWRlbnRpZmllciwgW3RocmVhZCA9IFdURk1vdmUodGhyZWFkKSwgcmVxdWVz
dElkZW50aWZpZXJdKGF1dG8mJiByZXN1bHQpIHsKKyAgICAgICAgICAgIHRocmVhZC0+cnVuTG9v
cCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhy
ZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAg
ICAgICAgICAgYXV0byBjYWxsYmFjayA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29w
ZSkuc3dDbGllbnRDb25uZWN0aW9uKCkubV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2tz
LnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCA5
Njk5NGJkOTU2ZDFjYmYxNWJhM2UxOWJjZjA3MTMzMzlmOTkxZTM4Li5kMDBkMTExNWM2ZmJlNjcw
OGM1NTI4NGU0NmMyNzFlYTJmOGJiMzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3Jr
ZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC02Miw2ICs2
MiwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFN1YnNjcmlwdGlvbkNhbGxiYWNrJiYp
IGZpbmFsOwogICAgIHZvaWQgZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZShTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrJiYpIGZp
bmFsOwogCisgICAgdm9pZCBlbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmluYWw7Cisg
ICAgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQg
c2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOwor
ICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2sm
JikgZmluYWw7CisKICAgICBSZWY8V29ya2VyVGhyZWFkPiBtX3RocmVhZDsKIAogICAgIHVpbnQ2
NF90IG1fbGFzdFJlcXVlc3RJZGVudGlmaWVyIHsgMCB9OwpAQCAtNzMsNiArNzgsOCBAQCBwcml2
YXRlOgogICAgIEhhc2hNYXA8dWludDY0X3QsIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlQ2Fs
bGJhY2s+IG1fdW5zdWJzY3JpYmVGcm9tUHVzaFNlcnZpY2VSZXF1ZXN0czsKICAgICBIYXNoTWFw
PHVpbnQ2NF90LCBHZXRQdXNoU3Vic2NyaXB0aW9uQ2FsbGJhY2s+IG1fZ2V0UHVzaFN1YnNjcmlw
dGlvblJlcXVlc3RzOwogICAgIEhhc2hNYXA8dWludDY0X3QsIEdldFB1c2hQZXJtaXNzaW9uU3Rh
dGVDYWxsYmFjaz4gbV9nZXRQdXNoUGVybWlzc2lvblN0YXRlQ2FsbGJhY2tzOworICAgIEhhc2hN
YXA8dWludDY0X3QsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxsYmFja3M7Cisg
ICAgSGFzaE1hcDx1aW50NjRfdCwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2Fs
bGJhY2s+IG1fbmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFt
ZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJz
L3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guY3BwCmluZGV4IGQ0NTRlOWQxNzQ4
NDBmNjVjMzdhMDExNTI4OTE1MmExMDI2NDI0M2EuLjhhOTEzOGQyM2IwZDVkZWM1M2QyOTkwZGVk
NWRiNzc2MzU0ZTUyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZldGNoLmNwcApAQCAtMTM5LDcgKzEz
OSw3IEBAIHN0YXRpYyB2b2lkIHByb2Nlc3NSZXNwb25zZShSZWY8Q2xpZW50PiYmIGNsaWVudCwg
RXhwZWN0ZWQ8UmVmPEZldGNoUmVzcG9uc2U+LCBzCiAgICAgfSk7CiB9CiAKLXZvaWQgZGlzcGF0
Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYgY2xpZW50LCBTZXJ2aWNlV29ya2VyR2xvYmFsU2Nv
cGUmIGdsb2JhbFNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVu
dGlmaWVyPiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVm
ZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50
aWZpZXIpCit2b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVudCwgU2Vy
dmljZVdvcmtlckdsb2JhbFNjb3BlJiBnbG9iYWxTY29wZSwgc3RkOjpvcHRpb25hbDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4gY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJl
cXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBGZXRjaElk
ZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBib29sIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25Q
cmVsb2FkRW5hYmxlZCkKIHsKICAgICBhdXRvIHJlcXVlc3RIZWFkZXJzID0gRmV0Y2hIZWFkZXJz
OjpjcmVhdGUoRmV0Y2hIZWFkZXJzOjpHdWFyZDo6SW1tdXRhYmxlLCBIVFRQSGVhZGVyTWFwIHsg
cmVxdWVzdC5odHRwSGVhZGVyRmllbGRzKCkgfSk7CiAKQEAgLTE2Nyw3ICsxNjcsMTAgQEAgdm9p
ZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJH
bG9iYWxTY29wZSYgZ2xvYmFsU2MKIAogICAgIFVSTCByZXF1ZXN0VVJMID0gcmVxdWVzdC51cmwo
KTsKICAgICBhdXRvIGZldGNoUmVxdWVzdCA9IEZldGNoUmVxdWVzdDo6Y3JlYXRlKGdsb2JhbFNj
b3BlLCBXVEZNb3ZlKGJvZHkpLCBXVEZNb3ZlKHJlcXVlc3RIZWFkZXJzKSwgIFdURk1vdmUocmVx
dWVzdCksIFdURk1vdmUob3B0aW9ucyksIFdURk1vdmUocmVmZXJyZXIpKTsKLSAgICBmZXRjaFJl
cXVlc3QtPnNldE5hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpOwor
CisgICAgLy8gSWYgc2VydmljZSB3b3JrZXIgbmF2aWdhdGlvbiBwcmVsb2FkIGlzIG5vdCBlbmFi
bGVkLCB3ZSBkbyBub3Qgd2FudCB0byByZXVzZSBhbnkgcHJlbG9hZCBkaXJlY3RseS4KKyAgICBp
ZiAoIWlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCkKKyAgICAgICAgZmV0
Y2hSZXF1ZXN0LT5zZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVy
KTsKIAogICAgIEZldGNoRXZlbnQ6OkluaXQgaW5pdDsKICAgICBpbml0LnJlcXVlc3QgPSBXVEZN
b3ZlKGZldGNoUmVxdWVzdCk7CkBAIC0xODAsNiArMTgzLDkgQEAgdm9pZCBkaXNwYXRjaEZldGNo
RXZlbnQoUmVmPENsaWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xv
YmFsU2MKICAgICBpbml0LmNhbmNlbGFibGUgPSB0cnVlOwogICAgIGF1dG8gZXZlbnQgPSBGZXRj
aEV2ZW50OjpjcmVhdGUoZXZlbnROYW1lcygpLmZldGNoRXZlbnQsIFdURk1vdmUoaW5pdCksIEV2
ZW50OjpJc1RydXN0ZWQ6Olllcyk7CiAKKyAgICBpZiAoaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRFbmFibGVkKQorICAgICAgICBldmVudC0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVu
dGlmaWVyKGZldGNoSWRlbnRpZmllcik7CisKICAgICBDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNh
dGVJbmZvID0gZ2xvYmFsU2NvcGUuY2VydGlmaWNhdGVJbmZvKCk7CiAKICAgICBldmVudC0+b25S
ZXNwb25zZShbY2xpZW50LCBtb2RlLCByZWRpcmVjdCwgcmVxdWVzdFVSTCwgY2VydGlmaWNhdGVJ
bmZvID0gV1RGTW92ZShjZXJ0aWZpY2F0ZUluZm8pXSAoYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRmV0Y2guaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJGZXRjaC5oCmluZGV4IDdkODVlZmRmMDM5NmRlZGU5ZDJlMDBiM2EzNzE4
NDUyNDg2NDUyMmYuLmViMjY2YjZjMDdlNjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VX
b3JrZXJGZXRjaC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0
L1NlcnZpY2VXb3JrZXJGZXRjaC5oCkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0
dWFsIHZvaWQgY29udGludWVEaWRSZWNlaXZlUmVzcG9uc2UoKSA9IDA7CiB9OwogCi12b2lkIGRp
c3BhdGNoRmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUm
LCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgUmVzb3Vy
Y2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVu
dGlmaWVyKTsKK3ZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYsIFNlcnZpY2VX
b3JrZXJHbG9iYWxTY29wZSYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElk
ZW50aWZpZXI+LCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0
aW9ucyYmLCBGZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblBy
ZWxvYWRFbmFibGVkKTsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJl
YWQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZC5jcHAKaW5kZXggOGIxY2VjZDM3ZGUzMWMzMjAxOWQ2OGYzYTJlMDQxMjM3YTI4
NWE0Yy4uNjUyNWZiOTcwMTZmZmFkZWU5MWExMTYwNjA0YzAyNzEwOWNlODY2MSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZC5jcHAKQEAgLTEyNCwxMSArMTI0LDExIEBAIHZvaWQgU2VydmljZVdv
cmtlclRocmVhZDo6cnVuRXZlbnRMb29wKCkKICAgICBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9v
cCgpOwogfQogCi12b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUZldGNo
RXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRp
b25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3Vy
Y2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9w
dGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCit2b2lkIFNlcnZpY2VXb3Jr
ZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRj
aDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0
SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5n
JiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRj
aElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVk
KQogewogICAgIFJlZiBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGU+KCpnbG9iYWxTY29wZSgpKTsKLSAgICBzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUtPmV2ZW50TG9vcCgpLnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRp
b24sIFtzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwg
Y2xpZW50SWQsIHJlcXVlc3QgPSBXVEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciA9IFdURk1vdmUo
cmVmZXJyZXIpLCBvcHRpb25zID0gV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyXSgp
IG11dGFibGUgewotICAgICAgICBTZXJ2aWNlV29ya2VyRmV0Y2g6OmRpc3BhdGNoRmV0Y2hFdmVu
dChXVEZNb3ZlKGNsaWVudCksIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgY2xpZW50SWQsIFdU
Rk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRj
aElkZW50aWZpZXIpOworICAgIHNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCku
cXVldWVUYXNrKFRhc2tTb3VyY2U6OkRPTU1hbmlwdWxhdGlvbiwgW3NlcnZpY2VXb3JrZXJHbG9i
YWxTY29wZSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IFdU
Rk1vdmUocmVxdWVzdCksIHJlZmVycmVyID0gV1RGTW92ZShyZWZlcnJlciksIG9wdGlvbnMgPSBX
VEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkRW5hYmxlZF0oKSBtdXRhYmxlIHsKKyAgICAgICAgU2VydmljZVdvcmtlckZldGNo
OjpkaXNwYXRjaEZldGNoRXZlbnQoV1RGTW92ZShjbGllbnQpLCBzZXJ2aWNlV29ya2VyR2xvYmFs
U2NvcGUsIGNsaWVudElkLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RG
TW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyLCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9u
UHJlbG9hZEVuYWJsZWQpOwogICAgIH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5k
ZXggZDllMzM2NTE5YzVkMDViODM2Zjg0MTIwODkzNTMyZTc5YTQxYzMxZi4uZGVkM2MyNTBmNWVl
MTY2ODY2M2M3YjlkMGU3YTk0MTI5MDIzYWJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
d29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApA
QCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3aWxsUG9zdFRhc2tUb0ZpcmVNZXNz
YWdlRXZlbnQoKTsKICAgICB2b2lkIHdpbGxQb3N0VGFza1RvRmlyZVB1c2hTdWJzY3JpcHRpb25D
aGFuZ2VFdmVudCgpOwogCi0gICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFJlZjxT
ZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRp
b25Db250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVy
cmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIHF1ZXVlVGFz
a1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6
Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJl
cXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElkZW50aWZp
ZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICB2
b2lkIHF1ZXVlVGFza1RvUG9zdE1lc3NhZ2UoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2Vy
dmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwogICAgIHZvaWQgcXVldWVUYXNr
VG9GaXJlSW5zdGFsbEV2ZW50KCk7CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVBY3RpdmF0ZUV2
ZW50KCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4
dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBjZmQzNmEx
OGU4ZmM1YmFiZGQ1MmQ5Yjc0OTlmODk0MjIyMzZjYWU5Li5iM2NmMmM3M2IyMjM5MjU5Mzg0NTNi
ZjlmMDhiNTQwMjY1Y2MyNmRiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5j
cHAKQEAgLTIxMCw3ICsyMTAsNyBAQCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6bm90
aWZ5TmV0d29ya1N0YXRlQ2hhbmdlKGJvb2wgaXNPbmxpbmUpCiAgICAgfSwgV29ya2VyUnVuTG9v
cDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5Ojpz
dGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZp
ZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0
Y2g6OkNsaWVudD4mJiBjbGllbnQsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4
dElkZW50aWZpZXI+JiYgY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN0cmlu
ZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zKQordm9pZCBTZXJ2aWNlV29ya2Vy
VGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25u
ZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgUmVmPFNl
cnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRF
eGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYg
cmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wg
aXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogewogICAgIFJFTEVBU0Vf
TE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2gg
JWxsdSIsIGZldGNoSWRlbnRpZmllci50b1VJbnQ2NCgpKTsKIApAQCAtMjIxLDggKzIyMSw4IEBA
IHZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIgY29ubmVjdGlvCiAKICAgICBBU1NFUlQoIW1fb25nb2luZ0ZldGNoVGFz
a3MuY29udGFpbnMoa2V5KSk7CiAgICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy5hZGQoa2V5LCBjbGll
bnQuY29weVJlZigpKTsKLSAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2Jh
bFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY2xpZW50ID0gV1RG
TW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCks
IHJlZmVycmVyID0gcmVmZXJyZXIuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlz
b2xhdGVkQ29weSgpLCBmZXRjaElkZW50aWZpZXJdKGF1dG8mKSBtdXRhYmxlIHsKLSAgICAgICAg
dGhyZWFkKCkucXVldWVUYXNrVG9GaXJlRmV0Y2hFdmVudChXVEZNb3ZlKGNsaWVudCksIFdURk1v
dmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92
ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyKTsKKyAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtl
ck9yV29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IHJlcXVlc3Qu
aXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gcmVmZXJyZXIuaXNvbGF0ZWRDb3B5KCksIG9wdGlv
bnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0oYXV0byYpIG11dGFibGUgeworICAgICAgICB0
aHJlYWQoKS5xdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFdURk1vdmUoY2xpZW50KSwgV1RGTW92
ZShjbGllbnRJZCksIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3Zl
KG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkRW5hYmxlZCk7CiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZp
Y2VXb3JrZXJUaHJlYWRQcm94eS5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2Nv
bnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKaW5kZXggZGE5NmYwZjc4NTdiNTU4ZWJj
MjQzMzM3ZDg2YTQ0N2NlYzg5NmIwYS4uMGEzMzc5MjQ0ODBlYmY4MjY3NTNlZjU0MWEzZjFjZDRj
NjkyNWY0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZFByb3h5LmgKQEAgLTc1LDcgKzc1
LDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlOZXR3b3JrU3Rh
dGVDaGFuZ2UoYm9vbCBpc09ubGluZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0
RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyLCBSZWY8
U2VydmljZVdvcmtlckZldGNoOjpDbGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0
aW9uQ29udGV4dElkZW50aWZpZXI+JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZl
cnJlciwgRmV0Y2hPcHRpb25zJiYpOworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRGZXRj
aChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2
aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4mJiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVy
LCBGZXRjaE9wdGlvbnMmJiwgYm9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVu
YWJsZWQpOwogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgY2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25u
ZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgRmV0Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92
ZUZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVy
UmVnaXN0cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIv
U1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IGY3YzY3YmQ5YjU2ZDk1ZGRhNzM2NjlhOTM5
N2RhMDQwN2JiMjIxYzAuLmVjN2IzYmMzMjFjNzMwNzE5ZGQ5NTMyNmNjNDViOGZlYmMxY2IyNzUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2
ZXJSZWdpc3RyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9z
ZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBF
TkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1
ZGUgIkxvZ2dpbmcuaCIKICNpbmNsdWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNXU2VydmVy
VG9Db250ZXh0Q29ubmVjdGlvbi5oIgpAQCAtNTQsNiArNTUsNyBAQCBTV1NlcnZlclJlZ2lzdHJh
dGlvbjo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24oU1dTZXJ2ZXImIHNlcnZlciwgY29uc3QgU2Vydmlj
ZVdvcmtlcgogICAgICwgbV9zb2Z0VXBkYXRlVGltZXIgeyAqdGhpcywgJlNXU2VydmVyUmVnaXN0
cmF0aW9uOjpzb2Z0VXBkYXRlIH0KIHsKICAgICBtX3Njb3BlVVJMLnJlbW92ZUZyYWdtZW50SWRl
bnRpZmllcigpOworICAgIG1fcHJlbG9hZFN0YXRlLmhlYWRlclZhbHVlID0gInRydWUiX3M7CiB9
CiAKIFNXU2VydmVyUmVnaXN0cmF0aW9uOjp+U1dTZXJ2ZXJSZWdpc3RyYXRpb24oKQpAQCAtMzgy
LDYgKzM4NCwzOCBAQCB2b2lkIFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzY2hlZHVsZVNvZnRVcGRh
dGUoSXNBcHBJbml0aWF0ZWQgaXNBcHBJbml0aWF0ZWQpCiAgICAgbV9zb2Z0VXBkYXRlVGltZXIu
c3RhcnRPbmVTaG90KHNvZnRVcGRhdGVEZWxheSk7CiB9CiAKKy8vIGh0dHBzOi8vdzNjLmdpdGh1
Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5hZ2VyLWVuYWJsZSwg
c3RlcHMgcnVuIGluIHBhcmFsbGVsLgorc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBTV1Nl
cnZlclJlZ2lzdHJhdGlvbjo6ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoKQoreworICAgIC8vIEZJ
WE1FOiBQZXJzaXN0IHRoaXMgZGF0YS4KKyAgICBpZiAoIW1fYWN0aXZlV29ya2VyKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYWN0aXZlIHdv
cmtlciJfcyB9OworICAgIG1fcHJlbG9hZFN0YXRlLmVuYWJsZWQgPSB0cnVlOworICAgIHJldHVy
biB7IH07Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20t
bmF2aWdhdGlvbnByZWxvYWRtYW5hZ2VyLWRpc2FibGUsIHN0ZXBzIHJ1biBpbiBwYXJhbGxlbC4K
K3N0ZDo6b3B0aW9uYWw8RXhjZXB0aW9uRGF0YT4gU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmRpc2Fi
bGVOYXZpZ2F0aW9uUHJlbG9hZCgpCit7CisgICAgLy8gRklYTUU6IFBlcnNpc3QgdGhpcyBkYXRh
LgorICAgIGlmICghbV9hY3RpdmVXb3JrZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb25EYXRh
IHsgSW52YWxpZFN0YXRlRXJyb3IsICJObyBhY3RpdmUgd29ya2VyIl9zIH07CisgICAgbV9wcmVs
b2FkU3RhdGUuZW5hYmxlZCA9IGZhbHNlOworICAgIHJldHVybiB7IH07Cit9CisKKy8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5h
Z2VyLXNldGhlYWRlcnZhbHVlLCBzdGVwcyBydW4gaW4gcGFyYWxsZWwuCitzdGQ6Om9wdGlvbmFs
PEV4Y2VwdGlvbkRhdGE+IFNXU2VydmVyUmVnaXN0cmF0aW9uOjpzZXROYXZpZ2F0aW9uUHJlbG9h
ZEhlYWRlclZhbHVlKFN0cmluZyYmIGhlYWRlclZhbHVlKQoreworICAgIC8vIEZJWE1FOiBQZXJz
aXN0IHRoaXMgZGF0YS4KKyAgICBpZiAoIWlzVmFsaWRIVFRQSGVhZGVyVmFsdWUoaGVhZGVyVmFs
dWUpKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJvciwgIkludmFsaWQg
aGVhZGVyIHZhbHVlIl9zIH07CisgICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbkRhdGEgeyBJbnZhbGlkU3RhdGVFcnJvciwgIk5vIGFjdGl2ZSB3b3JrZXIi
X3MgfTsKKyAgICBtX3ByZWxvYWRTdGF0ZS5oZWFkZXJWYWx1ZSA9IFdURk1vdmUoaGVhZGVyVmFs
dWUpOworICAgIHJldHVybiB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2Vu
ZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRl
eCA3Mjg3MWI5YjBhMDA3OWRlMjM2YjMzNTkyZDZkY2ZhN2Y0ZWM2YjVlLi45MThiOGU3M2E4ZGMx
YTczMWM4YTQ1NzhhOWNjZGRjMmI3YzE4YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBA
IC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRl
ICJOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXIuaCIKICNpbmNs
dWRlICJTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhLmgiCkBAIC0xMTAsNiArMTExLDExIEBAIHB1YmxpYzoK
ICAgICBib29sIGlzQXBwSW5pdGlhdGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0FwcEluaXRpYXRl
ZDsgfQogICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
IHNlcnZpY2VXb3JrZXJQYWdlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdv
cmtlclBhZ2VJZGVudGlmaWVyOyB9CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFs
PEV4Y2VwdGlvbkRhdGE+IGVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKCk7CisgICAgV0VCQ09SRV9F
WFBPUlQgc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBkaXNhYmxlTmF2aWdhdGlvblByZWxv
YWQoKTsKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IHNl
dE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU3RyaW5nJiYpOworICAgIGNvbnN0IE5hdmln
YXRpb25QcmVsb2FkU3RhdGUmIG5hdmlnYXRpb25QcmVsb2FkU3RhdGUoKSBjb25zdCB7IHJldHVy
biBtX3ByZWxvYWRTdGF0ZTsgfQorCiBwcml2YXRlOgogICAgIHZvaWQgYWN0aXZhdGUoKTsKICAg
ICB2b2lkIGhhbmRsZUNsaWVudFVubG9hZCgpOwpAQCAtMTM4LDYgKzE0NCw3IEBAIHByaXZhdGU6
CiAgICAgV2ViQ29yZTo6VGltZXIgbV9zb2Z0VXBkYXRlVGltZXI7CiAgICAgCiAgICAgYm9vbCBt
X2lzQXBwSW5pdGlhdGVkIHsgdHJ1ZSB9OworICAgIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgbV9w
cmVsb2FkU3RhdGU7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZl
dGNoVGFzay5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIv
U2VydmljZVdvcmtlckZldGNoVGFzay5jcHAKaW5kZXggMzQ4ZDI3ZTdjYmZhMjNjODY2OTUzOTNm
ZGQwYzA3NTQ1ZWEwMmM2OS4uZDc4N2I1MTBhZDc4MDFiODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3
YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2Vy
L1NlcnZpY2VXb3JrZXJGZXRjaFRhc2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtODgsMTIg
Kzg4LDExIEBAIFNlcnZpY2VXb3JrZXJGZXRjaFRhc2s6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2so
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uJiBzd1NlcnZlckNvCiAKICAgICBtX3RpbWVvdXRUaW1lci0+
c3RhcnRPbmVTaG90KGxvYWRlci5jb25uZWN0aW9uVG9XZWJQcm9jZXNzKCkubmV0d29ya1Byb2Nl
c3MoKS5zZXJ2aWNlV29ya2VyRmV0Y2hUaW1lb3V0KCkpOwogCi0gICAgLy8gRklYTUU6IENvbnNp
ZGVyIGV4dGVuZGluZyB0aGlzIGJhc2VkIG9uIG5hdmlnYXRpb24gcHJlbG9hZCBtYW5hZ2VyLgog
ICAgIGJvb2wgc2hvdWxkRG9OYXZpZ2F0aW9uUHJlbG9hZCA9IHNlc3Npb24gJiYgaXNOYXZpZ2F0
aW9uUmVxdWVzdChsb2FkZXIucGFyYW1ldGVycygpLm9wdGlvbnMuZGVzdGluYXRpb24pICYmIGxv
YWRlci5vcmlnaW5hbFJlcXVlc3QoKS5odHRwTWV0aG9kKCkgPT0gIkdFVCI7Ci0gICAgaWYgKHNo
b3VsZERvTmF2aWdhdGlvblByZWxvYWQgJiYgIWlzV29ya2VyUmVhZHkpIHsKKyAgICBpZiAoc2hv
dWxkRG9OYXZpZ2F0aW9uUHJlbG9hZCAmJiAoIWlzV29ya2VyUmVhZHkgfHwgcmVnaXN0cmF0aW9u
Lm5hdmlnYXRpb25QcmVsb2FkU3RhdGUoKS5lbmFibGVkKSkgewogICAgICAgICBOZXR3b3JrTG9h
ZFBhcmFtZXRlcnMgcGFyYW1ldGVycyA9IGxvYWRlci5wYXJhbWV0ZXJzKCk7CiAgICAgICAgIHBh
cmFtZXRlcnMucmVxdWVzdCA9IG1fY3VycmVudFJlcXVlc3Q7Ci0gICAgICAgIG1fcHJlbG9hZGVy
ID0gbWFrZVVuaXF1ZTxTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcj4oKnNlc3Npb24s
IFdURk1vdmUocGFyYW1ldGVycykpOworICAgICAgICBtX3ByZWxvYWRlciA9IG1ha2VVbmlxdWU8
U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI+KCpzZXNzaW9uLCBXVEZNb3ZlKHBhcmFt
ZXRlcnMpLCByZWdpc3RyYXRpb24ubmF2aWdhdGlvblByZWxvYWRTdGF0ZSgpLCBsb2FkZXIuc2hv
dWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkpOwogICAgICAgICBzZXNzaW9uLT5h
ZGROYXZpZ2F0aW9uUHJlbG9hZGVyVGFzaygqdGhpcyk7CiAgICAgfQogfQpAQCAtMTUxLDcgKzE1
MCw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6c3RhcnRGZXRjaCgpCiAgICAgYXV0
byByZXF1ZXN0ID0gbV9jdXJyZW50UmVxdWVzdDsKICAgICBjbGVhbkhUVFBSZXF1ZXN0SGVhZGVy
c0ZvckFjY2Vzc0NvbnRyb2wocmVxdWVzdCwgbV9sb2FkZXIucGFyYW1ldGVycygpLmh0dHBIZWFk
ZXJzVG9LZWVwKTsKIAotICAgIGJvb2wgaXNTZW50ID0gc2VuZFRvU2VydmljZVdvcmtlcihNZXNz
YWdlczo6V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBtX3NlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNo
SWRlbnRpZmllciwgcmVxdWVzdCwgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IG1f
Y3VycmVudFJlcXVlc3QuaHR0cEJvZHkoKSB9LCByZWZlcnJlciB9KTsKKyAgICBib29sIGlzU2Vu
dCA9IHNlbmRUb1NlcnZpY2VXb3JrZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25u
ZWN0aW9uOjpTdGFydEZldGNoIHsgbV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2
aWNlV29ya2VySWRlbnRpZmllciwgbV9mZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMs
IElQQzo6Rm9ybURhdGFSZWZlcmVuY2UgeyBtX2N1cnJlbnRSZXF1ZXN0Lmh0dHBCb2R5KCkgfSwg
cmVmZXJyZXIsIG1fcHJlbG9hZGVyICYmIG1fcHJlbG9hZGVyLT5pc1NlcnZpY2VXb3JrZXJOYXZp
Z2F0aW9uUHJlbG9hZEVuYWJsZWQoKSB9KTsKICAgICBBU1NFUlRfVU5VU0VEKGlzU2VudCwgaXNT
ZW50KTsKIH0KIApAQCAtMjgyLDcgKzI4MSw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFz
azo6ZGlkTm90SGFuZGxlKCkKICAgICAgICAgbV90aW1lb3V0VGltZXItPnN0b3AoKTsKICAgICBz
b2Z0VXBkYXRlSWZOZWVkZWQoKTsKIAotICAgIGlmIChtX3ByZWxvYWRlcikgeworICAgIGlmICht
X3ByZWxvYWRlciAmJiAhbV9wcmVsb2FkZXItPmlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkRW5hYmxlZCgpKSB7CiAgICAgICAgIGxvYWRSZXNwb25zZUZyb21QcmVsb2FkZXIoKTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAg
Yi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ck5hdmlnYXRpb25QcmVsb2FkZXIuY3BwCmluZGV4IDMzYTlkNGI2ZGZiODgxMGQyZjQyN2UwZjg3
NmI4ODFmMDQwZWMyZTYuLjcxZTBjZjZjNmRjN2JlYTUyMmM5MDYwMDU1NWY1NzIxNjFjM2MyZjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9O
ZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZGVyLmNwcApAQCAtMzIsNDYgKzMyLDY3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAj
aW5jbHVkZSAiTmV0d29ya0xvYWQuaCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2lu
Y2x1ZGUgPFdlYkNvcmUvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CiAKLVNlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyOjpTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcihOZXR3b3JrU2Vz
c2lvbiYgc2Vzc2lvbiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK1NlcnZp
Y2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRlcihOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFy
YW1ldGVycywgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSYgc3RhdGUsIGJv
b2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWMpCiAgICAgOiBtX3Nlc3Npb24o
c2Vzc2lvbikKKyAgICAsIG1fcGFyYW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgICwg
bV9zdGF0ZShzdGF0ZSkKKyAgICAsIG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzKHNob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcygpKQogewogICAgIFJFTEVB
U0VfTE9HKFNlcnZpY2VXb3JrZXIsICJTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6
U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIgJXAiLCB0aGlzKTsKLSAgICBpZiAoc2Vz
c2lvbi5jYWNoZSgpKSB7Ci0gICAgICAgIE5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBnbG9i
YWxJRCB7IHBhcmFtZXRlcnMud2ViUGFnZVByb3h5SUQsIHBhcmFtZXRlcnMud2ViUGFnZUlELCBw
YXJhbWV0ZXJzLndlYkZyYW1lSUQgfTsKLSAgICAgICAgc2Vzc2lvbi5jYWNoZSgpLT5yZXRyaWV2
ZShwYXJhbWV0ZXJzLnJlcXVlc3QsIGdsb2JhbElELCBwYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1Rv
QXBwQm91bmREb21haW4sIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwYXJh
bWV0ZXJzID0gV1RGTW92ZShwYXJhbWV0ZXJzKV0oYXV0byYmIGVudHJ5LCBhdXRvJiYpIG11dGFi
bGUgeworICAgIGlmICghbV9zdGF0ZS5lbmFibGVkIHx8IHBhcmFtZXRlcnMuaXNNYWluRnJhbWVO
YXZpZ2F0aW9uKQorICAgICAgICBzdGFydCgpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJOYXZp
Z2F0aW9uUHJlbG9hZGVyOjpzdGFydCgpCit7CisgICAgaWYgKG1faXNTdGFydGVkKQorICAgICAg
ICByZXR1cm47CisgICAgbV9pc1N0YXJ0ZWQgPSB0cnVlOworCisgICAgaWYgKCFtX3Nlc3Npb24p
IHsKKyAgICAgICAgZGlkRmFpbExvYWRpbmcoUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2Vi
S2l0SW50ZXJuYWwsIDAsIHsgfSwgIk5vIHNlc3Npb24gZm9yIHByZWxvYWQiX3MgfSk7CisgICAg
ICAgIHJldHVybjsKKyAgICB9CisKKyAgICBpZiAobV9zZXNzaW9uLT5jYWNoZSgpKSB7CisgICAg
ICAgIE5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBnbG9iYWxJRCB7IG1fcGFyYW1ldGVycy53
ZWJQYWdlUHJveHlJRCwgbV9wYXJhbWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZy
YW1lSUQgfTsKKyAgICAgICAgbV9zZXNzaW9uLT5jYWNoZSgpLT5yZXRyaWV2ZShtX3BhcmFtZXRl
cnMucmVxdWVzdCwgZ2xvYmFsSUQsIG1fcGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5k
RG9tYWluLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0byYmIGVudHJ5
LCBhdXRvJiYpIG11dGFibGUgewogICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCBtX2lzQ2Fu
Y2VsbGVkKQogICAgICAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghbV9zZXNz
aW9uKSB7Ci0gICAgICAgICAgICAgICAgZGlkRmFpbExvYWRpbmcoUmVzb3VyY2VFcnJvciB7IFJl
c291cmNlRXJyb3I6OlR5cGU6OkNhbmNlbGxhdGlvbiB9KTsKLSAgICAgICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgICAgICB9CisKICAgICAgICAgICAgIGlmIChlbnRyeSAmJiAhZW50cnktPm5l
ZWRzVmFsaWRhdGlvbigpKSB7CiAgICAgICAgICAgICAgICAgbG9hZFdpdGhDYWNoZUVudHJ5KCpl
bnRyeSk7CiAgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAg
ICAgICBwYXJhbWV0ZXJzLnJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVzb3VyY2VSZXF1ZXN0Q2Fj
aGVQb2xpY3k6OlJlZnJlc2hBbnlDYWNoZURhdGEpOworICAgICAgICAgICAgbV9wYXJhbWV0ZXJz
LnJlcXVlc3Quc2V0Q2FjaGVQb2xpY3koUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJl
c2hBbnlDYWNoZURhdGEpOwogICAgICAgICAgICAgaWYgKGVudHJ5KSB7CiAgICAgICAgICAgICAg
ICAgbV9jYWNoZUVudHJ5ID0gV1RGTW92ZShlbnRyeSk7CiAKICAgICAgICAgICAgICAgICBhdXRv
IGVUYWcgPSBtX2NhY2hlRW50cnktPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFk
ZXJOYW1lOjpFVGFnKTsKICAgICAgICAgICAgICAgICBpZiAoIWVUYWcuaXNFbXB0eSgpKQotICAg
ICAgICAgICAgICAgICAgICBwYXJhbWV0ZXJzLnJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhU
VFBIZWFkZXJOYW1lOjpJZk5vbmVNYXRjaCwgZVRhZyk7CisgICAgICAgICAgICAgICAgICAgIG1f
cGFyYW1ldGVycy5yZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6SWZO
b25lTWF0Y2gsIGVUYWcpOwogCiAgICAgICAgICAgICAgICAgYXV0byBsYXN0TW9kaWZpZWQgPSBt
X2NhY2hlRW50cnktPnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpM
YXN0TW9kaWZpZWQpOwogICAgICAgICAgICAgICAgIGlmICghbGFzdE1vZGlmaWVkLmlzRW1wdHko
KSkKLSAgICAgICAgICAgICAgICAgICAgcGFyYW1ldGVycy5yZXF1ZXN0LnNldEhUVFBIZWFkZXJG
aWVsZChIVFRQSGVhZGVyTmFtZTo6SWZNb2RpZmllZFNpbmNlLCBsYXN0TW9kaWZpZWQpOworICAg
ICAgICAgICAgICAgICAgICBtX3BhcmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQo
SFRUUEhlYWRlck5hbWU6OklmTW9kaWZpZWRTaW5jZSwgbGFzdE1vZGlmaWVkKTsKKyAgICAgICAg
ICAgIH0KKworICAgICAgICAgICAgaWYgKCFtX3Nlc3Npb24pIHsKKyAgICAgICAgICAgICAgICBk
aWRGYWlsTG9hZGluZyhSZXNvdXJjZUVycm9yIHsgUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2Vs
bGF0aW9uIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAg
ICAgICAgIGxvYWRGcm9tTmV0d29yaygqbV9zZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKTsK
KyAgICAgICAgICAgIGxvYWRGcm9tTmV0d29yaygpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0
dXJuOwogICAgIH0KLSAgICBsb2FkRnJvbU5ldHdvcmsoc2Vzc2lvbiwgV1RGTW92ZShwYXJhbWV0
ZXJzKSk7CisgICAgbG9hZEZyb21OZXR3b3JrKCk7CiB9CiAKIFNlcnZpY2VXb3JrZXJOYXZpZ2F0
aW9uUHJlbG9hZGVyOjp+U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIoKQpAQCAtOTAs
MzEgKzExMSw0MiBAQCB2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpjYW5j
ZWwoKQogdm9pZCBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9hZFdpdGhDYWNo
ZUVudHJ5KE5ldHdvcmtDYWNoZTo6RW50cnkmIGVudHJ5KQogewogICAgIGRpZFJlY2VpdmVSZXNw
b25zZShSZXNvdXJjZVJlc3BvbnNlIHsgZW50cnkucmVzcG9uc2UoKSB9LCBbYm9keSA9IFJlZlB0
ciB7IGVudHJ5LmJ1ZmZlcigpIH0sIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGF1dG8p
IG11dGFibGUgewotICAgICAgICBpZiAoIXdlYWtUaGlzKQorICAgICAgICBpZiAoIXdlYWtUaGlz
IHx8IHdlYWtUaGlzLT5tX2lzQ2FuY2VsbGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAg
ICAgIHNpemVfdCBzaXplICA9IDA7CiAgICAgICAgIGlmIChib2R5KSB7Ci0gICAgICAgICAgICBh
dXRvIHNpemUgPSBib2R5LT5zaXplKCk7CisgICAgICAgICAgICBzaXplID0gYm9keS0+c2l6ZSgp
OwogICAgICAgICAgICAgd2Vha1RoaXMtPmRpZFJlY2VpdmVCdWZmZXIoYm9keS5yZWxlYXNlTm9u
TnVsbCgpLCBzaXplKTsKKyAgICAgICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICB9CiAKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAg
ICAgIHJldHVybjsKLQogICAgICAgICBOZXR3b3JrTG9hZE1ldHJpY3MgbmV0d29ya0xvYWRNZXRy
aWNzOwogICAgICAgICBuZXR3b3JrTG9hZE1ldHJpY3MubWFya0NvbXBsZXRlKCk7CiAgICAgICAg
IG5ldHdvcmtMb2FkTWV0cmljcy5yZXNwb25zZUJvZHlCeXRlc1JlY2VpdmVkID0gMDsKLSAgICAg
ICAgbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlQm9keURlY29kZWRTaXplID0gMDsKKyAgICAg
ICAgbmV0d29ya0xvYWRNZXRyaWNzLnJlc3BvbnNlQm9keURlY29kZWRTaXplID0gc2l6ZTsKKyAg
ICAgICAgaWYgKHdlYWtUaGlzLT5zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3Mo
KSkgeworICAgICAgICAgICAgYXV0byBhZGRpdGlvbmFsTWV0cmljcyA9IFdlYkNvcmU6OkFkZGl0
aW9uYWxOZXR3b3JrTG9hZE1ldHJpY3NGb3JXZWJJbnNwZWN0b3I6OmNyZWF0ZSgpOworICAgICAg
ICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlcXVlc3RIZWFkZXJCeXRlc1NlbnQgPSAwOworICAg
ICAgICAgICAgYWRkaXRpb25hbE1ldHJpY3MtPnJlcXVlc3RCb2R5Qnl0ZXNTZW50ID0gMDsKKyAg
ICAgICAgICAgIGFkZGl0aW9uYWxNZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQg
PSAwOworICAgICAgICAgICAgbmV0d29ya0xvYWRNZXRyaWNzLmFkZGl0aW9uYWxOZXR3b3JrTG9h
ZE1ldHJpY3NGb3JXZWJJbnNwZWN0b3IgPSBXVEZNb3ZlKGFkZGl0aW9uYWxNZXRyaWNzKTsKKyAg
ICAgICAgfQogICAgICAgICB3ZWFrVGhpcy0+ZGlkRmluaXNoTG9hZGluZyhuZXR3b3JrTG9hZE1l
dHJpY3MpOwogICAgIH0pOwogICAgIGRpZENvbXBsZXRlKCk7CiB9CiAKLXZvaWQgU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OmxvYWRGcm9tTmV0d29yayhOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3ZvaWQgU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OmxvYWRGcm9tTmV0d29yaygpCiB7CisgICAgQVNT
RVJUKG1fc2Vzc2lvbik7CiAgICAgUkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VX
b3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpsb2FkRnJvbU5ldHdvcmsgJXAiLCB0aGlzKTsKIAot
ICAgIG1fbmV0d29ya0xvYWQgPSBtYWtlVW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgbnVsbHB0
ciwgV1RGTW92ZShwYXJhbWV0ZXJzKSwgc2Vzc2lvbik7CisgICAgaWYgKG1fc3RhdGUuZW5hYmxl
ZCkKKyAgICAgICAgbV9wYXJhbWV0ZXJzLnJlcXVlc3QuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBI
ZWFkZXJOYW1lOjpTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWQsIG1fc3RhdGUuaGVhZGVy
VmFsdWUpOworCisgICAgbV9uZXR3b3JrTG9hZCA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWQ+KCp0
aGlzLCBudWxscHRyLCBXVEZNb3ZlKG1fcGFyYW1ldGVycyksICptX3Nlc3Npb24pOwogICAgIG1f
bmV0d29ya0xvYWQtPnN0YXJ0KCk7CiB9CiAKQEAgLTE3Nyw2ICsyMDksOCBAQCB2b2lkIFNlcnZp
Y2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpkaWRDb21wbGV0ZSgpCiAKIHZvaWQgU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXI6OndhaXRGb3JSZXNwb25zZShSZXNwb25zZUNhbGxi
YWNrJiYgY2FsbGJhY2spCiB7CisgICAgc3RhcnQoKTsKKwogICAgIGlmICghbV9lcnJvci5pc051
bGwoKSkgewogICAgICAgICBjYWxsYmFjaygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtl
ck5hdmlnYXRpb25QcmVsb2FkZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2Vy
dmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCmluZGV4IDBhZmNi
MDcwN2RhZWQ2N2YwYTI3Nzk2N2Q1ZWM0NzJkYzBmZTBjOTcuLjFlNzhjMmNlZmExNTQ4NDEwNDA2
MGYzYjE5ZGM1MGU2Y2I4ZjFlYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCisr
KyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlci5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJO
ZXR3b3JrQ2FjaGVFbnRyeS5oIgogI2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCisjaW5j
bHVkZSAiTmV0d29ya0xvYWRQYXJhbWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0
aW9uUHJlbG9hZFN0YXRlLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNl
IFdlYkNvcmUgewpAQCAtMzgsMTMgKzQwLDEyIEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljczsK
IG5hbWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBOZXR3b3JrTG9hZDsKLWNsYXNzIE5ldHdvcmtM
b2FkUGFyYW1ldGVyczsKIGNsYXNzIE5ldHdvcmtTZXNzaW9uOwogCiBjbGFzcyBTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlciBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrTG9hZENsaWVudCwg
cHVibGljIENhbk1ha2VXZWFrUHRyPFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyPiB7
CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtl
ck5hdmlnYXRpb25QcmVsb2FkZXIoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFtZXRl
cnMmJik7CisgICAgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIoTmV0d29ya1Nlc3Np
b24mLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZSYsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKTsK
ICAgICB+U2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIoKTsKIAogICAgIHZvaWQgY2Fu
Y2VsKCk7CkBAIC01Nyw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpSZXNv
dXJjZUVycm9yJiBlcnJvcigpIGNvbnN0IHsgcmV0dXJuIG1fZXJyb3I7IH0KICAgICBjb25zdCBX
ZWJDb3JlOjpSZXNvdXJjZVJlc3BvbnNlJiByZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVz
cG9uc2U7IH0KICAgICBjb25zdCBXZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtM
b2FkTWV0cmljcygpIGNvbnN0IHsgcmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CisgICAg
Ym9vbCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSBjb25zdCB7IHJl
dHVybiBtX3N0YXRlLmVuYWJsZWQ7IH0KIAogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9hZENs
aWVudC4KQEAgLTY4LDE0ICs3MCwxOCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZUJ1
ZmZlcihSZWY8V2ViQ29yZTo6U2hhcmVkQnVmZmVyPiYmLCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0
YUxlbmd0aCkgZmluYWw7CiAgICAgdm9pZCBkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IFdlYkNvcmU6
Ok5ldHdvcmtMb2FkTWV0cmljcyYpIGZpbmFsOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcoY29u
c3QgV2ViQ29yZTo6UmVzb3VyY2VFcnJvciYpIGZpbmFsOworICAgIGJvb2wgc2hvdWxkQ2FwdHVy
ZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zaG91bGRD
YXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3M7IH0KIAorICAgIHZvaWQgc3RhcnQoKTsKICAg
ICB2b2lkIGxvYWRXaXRoQ2FjaGVFbnRyeShOZXR3b3JrQ2FjaGU6OkVudHJ5Jik7Ci0gICAgdm9p
ZCBsb2FkRnJvbU5ldHdvcmsoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMm
Jik7CisgICAgdm9pZCBsb2FkRnJvbU5ldHdvcmsoKTsKICAgICB2b2lkIGRpZENvbXBsZXRlKCk7
CiAKICAgICBzdGQ6OnVuaXF1ZV9wdHI8TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7CiAgICAg
V2Vha1B0cjxOZXR3b3JrU2Vzc2lvbj4gbV9zZXNzaW9uOwotICAgIGJvb2wgbV9pc0NhbmNlbGxl
ZCB7IGZhbHNlIH07CisKKyAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOwor
ICAgIFdlYkNvcmU6Ok5hdmlnYXRpb25QcmVsb2FkU3RhdGUgbV9zdGF0ZTsKIAogICAgIHN0ZDo6
dW5pcXVlX3B0cjxOZXR3b3JrQ2FjaGU6OkVudHJ5PiBtX2NhY2hlRW50cnk7CiAgICAgV2ViQ29y
ZTo6TmV0d29ya0xvYWRNZXRyaWNzIG1fbmV0d29ya0xvYWRNZXRyaWNzOwpAQCAtODUsNiArOTEs
MTAgQEAgcHJpdmF0ZToKIAogICAgIFJlc3BvbnNlQ2FsbGJhY2sgbV9yZXNwb25zZUNhbGxiYWNr
OwogICAgIEJvZHlDYWxsYmFjayBtX2JvZHlDYWxsYmFjazsKKworICAgIGJvb2wgbV9pc1N0YXJ0
ZWQgeyBmYWxzZSB9OworICAgIGJvb2wgbV9pc0NhbmNlbGxlZCB7IGZhbHNlIH07CisgICAgYm9v
bCBtX3Nob3VsZENhcHR1cmVFeHRyYU5ldHdvcmtMb2FkTWV0cmljcyB7IGZhbHNlIH07CiB9Owog
CiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKaW5kZXggMTg4ZjIwOTliODUwM2U2ZmM0OTE1ODA5MjQwZDcyMTEyY2Q2ZjBjNC4uMTEy
NDQyODI4MmNkNmU0Yzk1NTg5NmE4NmFhYzJmNzBmNDU1NmNhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dl
YlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKQEAgLTUyMyw2ICs1MjMsNDYgQEAgdm9pZCBXZWJTV1Nl
cnZlckNvbm5lY3Rpb246OmZldGNoVGFza1RpbWVkT3V0KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3IKICAgICB3b3JrZXItPnRlcm1pbmF0ZSgpOwogfQogCit2b2lkIFdlYlNXU2Vy
dmVyQ29ubmVjdGlvbjo6ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0
aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiByZWdpc3RyYXRpb24g
PSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAg
aWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uRGF0YSB7IElu
dmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVnaXN0cmF0aW9uIl9zIH0pOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+ZW5hYmxlTmF2aWdhdGlvblByZWxv
YWQoKSk7Cit9CisKK3ZvaWQgV2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlv
blByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVn
aXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykK
K3sKKyAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVn
aXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAg
Y2FsbGJhY2soRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVnaXN0cmF0
aW9uIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNrKHJlZ2lzdHJh
dGlvbi0+ZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKCkpOworfQorCit2b2lkIFdlYlNXU2VydmVy
Q29ubmVjdGlvbjo6c2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBT
dHJpbmcmJiBoZWFkZXJWYWx1ZSwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykK
K3sKKyAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVn
aXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAg
Y2FsbGJhY2soRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVnaXN0cmF0
aW9uIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNrKHJlZ2lzdHJh
dGlvbi0+c2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXVEZNb3ZlKGhlYWRlclZhbHVl
KSkpOworfQorCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6Z2V0TmF2aWdhdGlvblByZWxv
YWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxs
YmFjayYmIGNhbGxiYWNrKQoreworICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigpLmdl
dFJlZ2lzdHJhdGlvbihyZWdpc3RyYXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lzdHJh
dGlvbikgeworICAgICAgICBjYWxsYmFjayhtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsg
SW52YWxpZFN0YXRlRXJyb3IsIHsgfSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
Y2FsbGJhY2socmVnaXN0cmF0aW9uLT5uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKCkpOworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI3VuZGVmIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNF
X0xPRwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29y
a2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDE3NGZlNzI2NjQ4
MWEzM2Q5MjI0NzRjYjQ3Y2I3ZDlmY2MyNTNiMjYuLjk2YTJjYjBkMWNhOTk3OWNmZDQ1MWE3N2U1
NWVlN2NiNDUxMmRlYWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3Mv
U2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAg
LTMyLDYgKzMyLDcgQEAKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5j
bHVkZSA8V2ViQ29yZS9FeGNlcHRpb25Pci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVu
dGlmaWVyLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg+CiAj
aW5jbHVkZSA8V2ViQ29yZS9Qcm9jZXNzSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUv
UHVzaFBlcm1pc3Npb25TdGF0ZS5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVzaFN1YnNjcmlwdGlv
bkRhdGEuaD4KQEAgLTEyOCw2ICsxMjksMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uLCBXZWJDb3JlOjpNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBXZWJDb3Jl
OjpTZXJ2aWNlV29ya2VyT3JDbGllbnRJZGVudGlmaWVyJiBzb3VyY2UpOwogICAgIHZvaWQgY29u
dHJvbENsaWVudChXZWJDb3JlOjpTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgV2Vi
Q29yZTo6U1dTZXJ2ZXJSZWdpc3RyYXRpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVl
c3QmKTsKIAorICAgIHVzaW5nIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhh
bmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPjsKKyAg
ICB2b2lkIGVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB2b2lk
IGRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJik7CisgICAgdm9pZCBzZXRO
YXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJik7Cisg
ICAgdXNpbmcgRXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2sgPSBDb21w
bGV0aW9uSGFuZGxlcjx2b2lkKEV4cGVjdGVkPFdlYkNvcmU6Ok5hdmlnYXRpb25QcmVsb2FkU3Rh
dGUsIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPjsKKyAgICB2b2lkIGdldE5hdmlnYXRpb25Q
cmVsb2FkU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIs
IEV4Y2VwdGlvbk9yTmF2aWdhdGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrJiYpOworCiAgICAgVVJM
IGNsaWVudFVSTEZyb21JZGVudGlmaWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElk
ZW50aWZpZXIpOwogCiAgICAgSVBDOjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlv
bigpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJT
V1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4
IGM5N2Q1MmM3MjFmMGRjMmVjYzM4MTA1MWYzNzJlYTAwYWY5NzdmNmUuLmFlMmIyN2Y0ZWQ2NTc4
OGM1ODhlNjFiNTk3NThjZTgyODdlMmNjY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMu
aW4KKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtNTEsNiArNTEsMTEgQEAgbWVzc2FnZXMg
LT4gV2ViU1dTZXJ2ZXJDb25uZWN0aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFVuc3Vic2NyaWJl
RnJvbVB1c2hTZXJ2aWNlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlm
aWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
PiByZXN1bHQpIEFzeW5jCiAgICAgR2V0UHVzaFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpQdXNoU3Vic2NyaXB0aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2Vw
dGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKICAgICBHZXRQdXNoUGVybWlzc2lvblN0YXRlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDx1aW50OF90LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jIAor
CisgICAgRW5hYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
RXhjZXB0aW9uRGF0YT4gcmVzdWx0KSBBc3luYworICAgIERpc2FibGVOYXZpZ2F0aW9uUHJlbG9h
ZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVy
KSAtPiAoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5j
CisgICAgU2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyLCBTdHJpbmcgdmFsdWUpIC0+IChz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKKyAgICBH
ZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCiB9CiAK
ICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRl
eCA0NTIyYTAyODdjNGM4M2E0ZTI4M2I2M2ZhMTY0MGNjMmQ4YTEzNmFlLi4xODI2MDViOGUwZTMy
ZWYwNWEzOTFmY2MwOTNiMDQ0NWY3ZDA2NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI2
NSw2ICsyNjUsNDIgQEAgdm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmdldFB1c2hQZXJtaXNz
aW9uU3RhdGUoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHIKICAgICB9KTsKIH0KIAordm9p
ZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6
OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZp
ZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJTV1NlcnZlckNvbm5lY3Rpb246OkVuYWJsZU5hdmlnYXRp
b25QcmVsb2FkIHsgcmVnaXN0cmF0aW9uSWRlbnRpZmllciB9LCBbY2FsbGJhY2sgPSBXVEZNb3Zl
KGNhbGxiYWNrKV0oYXV0byYmIGVycm9yKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGVycm9yKQor
ICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKGVycm9yLT50b0V4Y2VwdGlvbigpKTsKKyAgICAg
ICAgY2FsbGJhY2soeyB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246OmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0
cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRD
YWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6
V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpEaXNhYmxlTmF2aWdhdGlvblByZWxvYWQgeyByZWdpc3Ry
YXRpb25JZGVudGlmaWVyIH0sIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYg
ZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm4g
Y2FsbGJhY2soZXJyb3ItPnRvRXhjZXB0aW9uKCkpOworICAgICAgICBjYWxsYmFjayh7IH0pOwor
ICAgIH0pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0TmF2aWdhdGlvblBy
ZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiBoZWFkZXJWYWx1ZSwgRXhjZXB0
aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHko
TWVzc2FnZXM6OldlYlNXU2VydmVyQ29ubmVjdGlvbjo6U2V0TmF2aWdhdGlvblByZWxvYWRIZWFk
ZXJWYWx1ZSB7IHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIGhlYWRlclZhbHVlIH0sIFtjYWxsYmFj
ayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXJyb3IpIG11dGFibGUgeworICAgICAgICBp
ZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3ItPnRvRXhjZXB0aW9u
KCkpOworICAgICAgICBjYWxsYmFjayh7IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlNXQ2xp
ZW50Q29ubmVjdGlvbjo6Z2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNl
V29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNl
cHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAg
IHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXRO
YXZpZ2F0aW9uUHJlbG9hZFN0YXRlIHsgcmVnaXN0cmF0aW9uSWRlbnRpZmllciB9LCBbY2FsbGJh
Y2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAg
IGlmICghcmVzdWx0Lmhhc192YWx1ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJl
c3VsdC5lcnJvcigpLnRvRXhjZXB0aW9uKCkpOworICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKCpy
ZXN1bHQpKTsKKyAgICB9KTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAv
LyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDNkMTg5NTg4NDAx
NmQyOGM2N2EwOTFlMmEwYzIwZjZmZmZhMzljY2EuLmUyYTFkMzZmYzhiYjlhYTE2NDZhYTVmN2Qy
NDU0MDJhYzBjMjY4YTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC05NSw2ICs5NSwxMSBAQCBwcml2
YXRlOgogICAgIHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFN1YnNjcmlwdGlvbkNhbGxiYWNrJiYpIGZp
bmFsOwogICAgIHZvaWQgZ2V0UHVzaFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNr
JiYpIGZpbmFsOwogCisgICAgdm9pZCBlbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJh
Y2smJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxi
YWNrJiYpIGZpbmFsOworICAgIHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4
Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0TmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
RXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJikgZmluYWw7CisKICAg
ICB2b2lkIHNjaGVkdWxlU3RvcmFnZUpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9i
RGF0YSYpOwogCiAgICAgdm9pZCBydW5PckRlbGF5VGFza0ZvckltcG9ydChGdW5jdGlvbjx2b2lk
KCk+JiYgdGFzayk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggYWE3
NDNjNjJlM2YzYjU1NDNjYTdjZmM3YjUyZTJlMzBhZDk5MTljZC4uZjg2MjliZTAwNjUwYjM5MmI5
MGM0ZmEzOTE5MWZjOTQ4NDBmYWIwMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9u
LmNwcApAQCAtMjM3LDcgKzIzNyw3IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rp
b246OmNvbnRpbnVlRGlkUmVjZWl2ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uCiAgICAgICAg
IHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25z
ZShzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAotdm9p
ZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5l
Y3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNo
SWRlbnRpZmllciwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0
aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJl
cikKK3ZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2
ZXJDb25uZWN0aW9uSWRlbnRpZmllciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2Vydmlj
ZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9u
cyYmIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiBmb3JtRGF0YSwgU3RyaW5nJiYg
cmVmZXJyZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQog
ewogICAgIGF1dG8qIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eSA9IFNXQ29udGV4dE1hbmFnZXI6
OnNpbmdsZXRvbigpLnNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eShzZXJ2aWNlV29ya2VySWRlbnRp
Zmllcik7CiAgICAgaWYgKCFzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkpIHsKQEAgLTI1Niw3ICsy
NTYsNyBAQCB2b2lkIFdlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydgogICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0
RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IGNsaWVudElkID0gb3B0aW9ucy5jbGllbnRJZGVu
dGlmaWVyOwogCiAgICAgcmVxdWVzdC5zZXRIVFRQQm9keShmb3JtRGF0YS50YWtlRGF0YSgpKTsK
LSAgICBzZXJ2aWNlV29ya2VyVGhyZWFkUHJveHktPnN0YXJ0RmV0Y2goc2VydmVyQ29ubmVjdGlv
bklkZW50aWZpZXIsIGZldGNoSWRlbnRpZmllciwgV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNs
aWVudElkKSwgV1RGTW92ZShyZXF1ZXN0KSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUob3B0
aW9ucykpOworICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS0+c3RhcnRGZXRjaChzZXJ2ZXJD
b25uZWN0aW9uSWRlbnRpZmllciwgZmV0Y2hJZGVudGlmaWVyLCBXVEZNb3ZlKGNsaWVudCksIFdU
Rk1vdmUoY2xpZW50SWQpLCBXVEZNb3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RG
TW92ZShvcHRpb25zKSwgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsK
IH0KIAogdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1Nl
cnZpY2VXb3JrZXIoU2VydmljZVdvcmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVy
LCBNZXNzYWdlV2l0aE1lc3NhZ2VQb3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJPckNsaWVu
dERhdGEmJiBzb3VyY2VEYXRhKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNz
L1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXgg
OTdhZTVhODRjNDJmNDM1YzNhMWVjYjRmZDNmYWE1NDVlZmYzZGE3Yy4uZTdkZjdkOTQxYWNlOTA2
NDE0ZWNmZmY1MGM0YmE0NzlkMTQ2NGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5oCkBAIC05MCw3ICs5MCw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyRmFp
bGVkVG9TdGFydChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRl
bnRpZmllcj4sIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcm
IGV4Y2VwdGlvbk1lc3NhZ2UpIGZpbmFsOwogICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIo
V2ViQ29yZTo6U2VydmljZVdvcmtlckNvbnRleHREYXRhJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3Jr
ZXJEYXRhJiYsIFN0cmluZyYmIHVzZXJBZ2VudCwgV2ViQ29yZTo6V29ya2VyVGhyZWFkTW9kZSk7
CiAgICAgdm9pZCB1cGRhdGVBcHBJbml0aWF0ZWRWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwotICAg
IHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
LCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQ
Qzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIpOworICAgIHZvaWQgc3Rh
cnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3Jl
OjpSZXNvdXJjZVJlcXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURh
dGFSZWZlcmVuY2UmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2
aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICB2b2lkIGNhbmNlbEZldGNoKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlm
aWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIpOwogICAgIHZvaWQgY29udGludWVEaWRSZWNl
aXZlRmV0Y2hSZXNwb25zZShXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBX
ZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVy
KTsKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VX
b3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdp
dGhNZXNzYWdlUG9ydHMmJiwgV2ViQ29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNv
dXJjZURhdGEpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2Uv
V2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdl
cy5pbgppbmRleCAxNTRmYWJkMzU0OTZlYmNmYmExNWI3MmNiNWE3YWI1ZWQ3Mzc3OTZmLi41Mjhi
ZWNhNGVhNGNiNTc1ODZjNWY4NjgxZmRhYWFiMmUzNzExZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAogbWVz
c2FnZXMgLT4gV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAg
ICAgSW5zdGFsbFNlcnZpY2VXb3JrZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250
ZXh0RGF0YSBjb250ZXh0RGF0YSwgc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIHdv
cmtlckRhdGEsIFN0cmluZyB1c2VyQWdlbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpXb3JrZXJUaHJl
YWRNb2RlIHdvcmtlclRocmVhZE1vZGUpCiAgICAgVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWUoV2Vi
Q29yZTo6U2VydmljZVdvcmtlcklkZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGVu
dW06Ym9vbCBXZWJDb3JlOjpMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdh
dGlvbldhc0FwcEluaXRpYXRlZCkKLSAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpG
ZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3Qg
cmVxdWVzdCwgc3RydWN0IFdlYkNvcmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1E
YXRhUmVmZXJlbmNlIHJlcXVlc3RCb2R5LCBTdHJpbmcgcmVmZXJyZXIpCisgICAgU3RhcnRGZXRj
aChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2Vi
Q29yZTo6UmVzb3VyY2VSZXF1ZXN0IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlv
bnMgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgU3RyaW5nIHJl
ZmVycmVyLCBib29sIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCkKICAg
ICBDYW5jZWxGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBz
ZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRl
bnRpZmllcikKICAgICBDb250aW51ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNX
U2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBX
ZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlmaWVyKQogICAgIFBvc3RNZXNzYWdl
VG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0
aW9uSWRlbnRpZmllciwgc3RydWN0IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1l
c3NhZ2UsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEgc291cmNlRGF0YSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpp
bmRleCAyZGY5ZDM4Mjk4MzI4ZTM4NDAyNTg0YmY5OWVmMjYzZDU2NzIyYTc5Li4wNmI2OGQ2YjNi
NWYxZjZlY2NkZGUwMmNiZTdlMTYzNWE3YWEyYTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIw
MjEtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFk
ZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzUyMworCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0x
Mi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHZhbGlkaXR5
LnZhbHVlTWlzc2luZyBzaG91bGQgbm90IHJlbHkgb24gZWxlbWVudCdzIGRpc2FibGVkIHN0YXRl
IGZvciBpbnB1dHMgb2YgdHlwZSByYWRpby9maWxlL2NoZWNrYm94CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCAzMGNjM2M2N2ZjMmY4NmY4MTA1ODI4ZDNkNjIyMTNlYWMzMDQ3ODBk
Li5kOGY0MTlmZDNkOGNjNTQ5MWFlZGQyOTdkMzVkZDFmNTljODhlOTMzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0xMi0wMSAgWW91ZW5uIEZh
YmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE5hdmln
YXRpb25QcmVsb2FkTWFuYWdlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjMzNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3Mu
aHR0cHMuYW55LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9uYXZpZ2F0aW9uLXByZWxvYWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0
ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZW1wdHktcHJl
bG9hZC1yZXNwb25zZS1ib2R5Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0
aW9uLXByZWxvYWQvZ2V0LXN0YXRlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZp
Z2F0aW9uLXByZWxvYWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlLXRpbWluZy5odHRw
cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2
aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3NhbWVzaXRlLWNv
b2tpZXMuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKwogMjAyMS0xMi0wMSAgQ2hyaXMgRHVt
ZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBz
aG91bGQgbm90IHJlbHkgb24gZWxlbWVudCdzIGRpc2FibGVkIHN0YXRlIGZvciBpbnB1dHMgb2Yg
dHlwZSByYWRpby9maWxlL2NoZWNrYm94CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MmNiMDlkMTY4
ZjkyYzAyNTdhNDQxM2EwZTAxZmQ2Y2YzMmY2MGUzLi43MDAwYzAyMTM1ZmI3M2Y5ZGZhNDBmYjM0
Y2JlZmM0NjY0MWJkYjI4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25z
CisrKyBiL0xheW91dFRlc3RzL1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTQwMyw4ICs0MDMsNyBAQCB3
ZWJraXQub3JnL2IvMTc2OTI5IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9z
ZW1hbnRpY3MvZW1iZWRkZWQtY29udAogIyBSZXF1aXJlcyBhZGRpdGlvbmFsIHRlc3QgaW5mcmFz
dHJ1Y3R1cmUuCiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci91cGRhdGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwgWyBTa2lwIF0K
IAotIyBVbnN1cHBvcnRlZCBmZWF0dXJlczogU2hhcmVkV29ya2VyLCBOYXZpZ2F0aW9uUHJlbG9h
ZAotaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vydmlj
ZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkIFsgU2tpcCBdCisjIFVuc3VwcG9ydGVkIGZlYXR1
cmVzOiBTaGFyZWRXb3JrZXIKIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL2NsYWltLXNoYXJlZC13b3JrZXItZmV0Y2guaHR0cHMu
aHRtbCBbIFNraXAgXQogCiAjIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBQZXJmb3JtYW5jZU5hdmln
YXRpb25UaW1pbmcKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQtc2NyaXB0LnB5IGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9zZXJ2aWNlLXdv
cmtlci1pZnJhbWUtcHJlbG9hZC1zY3JpcHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBlZDYxMDcwYjRiNDAx
MGQ2ZmYxNjRhOGQzOGViMmYxNTJmNjEwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaWZyYW1l
LXByZWxvYWQtc2NyaXB0LnB5CkBAIC0wLDAgKzEsMjQgQEAKK2ltcG9ydCBvcworaW1wb3J0IGhh
c2hsaWIKK2ltcG9ydCBqc29uCisKKworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAg
IHRva2VuID0gcmVxdWVzdC5HRVRbYid0b2tlbiddCisgICAgdGVzdElkID0gaGFzaGxpYi5tZDUo
dG9rZW4pLmhleGRpZ2VzdCgpCisKKyAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAiUE9TVCI6Cisg
ICAgICAgIHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodGVzdElkKQorICAgICAgICByZXF1ZXN0
LnNlcnZlci5zdGFzaC5wdXQodGVzdElkLCByZXF1ZXN0LkdFVFtiJ3ZhbHVlJ10pCisgICAgICAg
IHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2FzY2lpIikKKyAg
ICAgICAgcmV0dXJuIGIidXBkYXRlZCB0byAiICsgcmVxdWVzdC5HRVRbYid2YWx1ZSddCisKKyAg
ICB2YWx1ZSA9IHJlcXVlc3Quc2VydmVyLnN0YXNoLnRha2UodGVzdElkKQorICAgIGlmIG5vdCB2
YWx1ZToKKyAgICAgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDYWNoZS1Db250cm9sIiwgYiJu
by1jYWNoZSIpCisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwg
YiJ0ZXh0L2h0bWwiKQorICAgICAgICByZXR1cm4gIjxodG1sPjxib2R5PjxzY3JpcHQ+d2luZG93
LnZhbHVlID0gJ25vdGhpbmcnOzwvc2NyaXB0PjwvYm9keT48L2h0bWw+IgorCisgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJDYWNoZS1Db250cm9sIiwgYiJuby1jYWNoZSIpCisgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJDb250ZW50LVR5cGUiLCBiInRleHQvYXNjaWkiKQorICAgIHJldHVy
biB2YWx1ZS5kZWNvZGUoKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLXdvcmtlci5qcyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJl
bG9hZC13b3JrZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWRjMDAwMjRkNTE5YjIwODA4YjZkNjhhMWQ2Y2I2
NDUzNjU5OWQyYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC13b3JrZXIuanMKQEAgLTAs
MCArMSwzNSBAQAorb25pbnN0YWxsID0gKGV2ZW50KSA9PiB7CisgICAgaWYgKHNlbGYucG9ydCkK
KyAgICAgICAgcmV0dXJuOworICAgIGV2ZW50LndhaXRVbnRpbChuZXcgUHJvbWlzZShyZXNvbHZl
ID0+IHNlbGYuaW5zdGFsbGluZ1Byb21pc2VSZXNvbHZlID0gcmVzb2x2ZSkpOworfQorCitvbm1l
c3NhZ2UgPSAoZXZlbnQpID0+IHsKKyAgICBpZiAoZXZlbnQuZGF0YS5wb3J0KQorICAgICAgICBz
ZWxmLnBvcnQgPSBldmVudC5kYXRhLnBvcnQ7CisgICAgaWYgKHNlbGYuaW5zdGFsbGluZ1Byb21p
c2VSZXNvbHZlKSB7CisgICAgICAgIHNlbGYuaW5zdGFsbGluZ1Byb21pc2VSZXNvbHZlKCk7Cisg
ICAgICAgIHNlbGYuaW5zdGFsbGluZ1Byb21pc2VSZXNvbHZlID0gbnVsbDsKKyAgICB9CisgICAg
aWYgKHNlbGYuZmV0Y2hpbmdQcm9taXNlUmVzb2x2ZSkgeworICAgICAgICBzZWxmLmZldGNoaW5n
UHJvbWlzZVJlc29sdmUoKTsKKyAgICAgICAgc2VsZi5mZXRjaGluZ1Byb21pc2VSZXNvbHZlID0g
bnVsbDsKKyAgICB9Cit9OworCitvbmFjdGl2YXRlID0gKGV2ZW50KSA9PiB7CisgICAgc2VsZi5w
b3J0LnBvc3RNZXNzYWdlKCJhY3RpdmF0aW5nIik7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5l
cignZmV0Y2gnLCAoZXZlbnQpID0+IHsKKyAgICBzZWxmLnBvcnQucG9zdE1lc3NhZ2UoImZldGNo
aW5nIik7CisgICAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2VsZi5m
ZXRjaGluZ1Byb21pc2VSZXNvbHZlID0gcmVzb2x2ZSk7CisgICAgZXZlbnQucmVzcG9uZFdpdGgo
cHJvbWlzZS50aGVuKGFzeW5jICgpID0+IHsKKyAgICAgICAgaWYgKCFldmVudC5wcmVsb2FkUmVz
cG9uc2UpCisgICAgICAgICAgICByZXR1cm4gbmV3IFJlc3BvbnNlKCJGQUlMOiBwcmVsb2FkIG5v
dCBlbmFibGVkIik7CisgICAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXZlbnQucHJlbG9h
ZFJlc3BvbnNlOworICAgICAgICBpZiAoIXJlc3BvbnNlKQorICAgICAgICAgICAgcmV0dXJuIG5l
dyBSZXNwb25zZSgiRkFJTDogbm8gcHJlbG9hZCByZXNwb25zZSIpOworICAgICAgICByZXR1cm4g
cmVzcG9uc2U7CisgICAgfSkpOworfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQuaHR0cHMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYy
YWRmOWIwMWMyOWEyMGFlZGE0NTJlMDRjYzYwYTFlNzM3ZGE1Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFt
ZS1wcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworCitQQVNTIFNl
dHVwIGFjdGl2YXRpbmcgd29ya2VyCitQQVNTIFNlcnZpY2Ugd29ya2VyIGxvYWQgdXNlcyBwcmVs
b2FkIGlmIGF2YWlsYWJsZSBhbmQgZmV0Y2ggZXZlbnQgd2FzIG5vdCBoYW5kbGVkCisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci1pZnJhbWUtcHJlbG9hZC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2Vydmlj
ZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uODJlZGJkOTYxZDM2MThiOGQxZjhiMmJhOWYzM2NlMzlkM2NjOTE2OQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci1pZnJhbWUtcHJlbG9hZC5odHRwcy5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhZG9jdHlw
ZSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVw
b3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8c2NyaXB0PgordmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciB1dWlkID0gdG9rZW4o
KTsKK3ZhciB1cmwgPSAiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3NlcnZpY2Ut
d29ya2VyLWlmcmFtZS1wcmVsb2FkLXNjcmlwdC5weT90b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFt
ZTsKK2NvbnN0IGNoYW5uZWwgPSBuZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2Fp
dFVudGlsQWN0aXZhdGluZygpCit7CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
eworICAgICAgICBjaGFubmVsLnBvcnQyLm9ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAg
ICAgICAgaWYgKGV2ZW50LmRhdGEgPT09ICJhY3RpdmF0aW5nIikKKyAgICAgICAgICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICAgIH07CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3Rp
dmF0aW9uKCkKK3sKKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9
CisKK3Byb21pc2VfdGVzdChhc3luYyAodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLnNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclBy
b2Nlc3ModHJ1ZSk7CisgICAgICAgIGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkg
PT4geyB9KTsKKyAgICB9CisKKyAgICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9y
LnNlcnZpY2VXb3JrZXIucmVnaXN0ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyLWlmcmFtZS1wcmVsb2FkLXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAg
aWYgKCFyZWdpc3RyYXRpb24uaW5zdGFsbGluZykgeworICAgICAgICByZWdpc3RyYXRpb24udW5y
ZWdpc3RlcigpOworICAgICAgICByZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2Vydmlj
ZVdvcmtlci5yZWdpc3RlcigiL1dlYktpdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIt
aWZyYW1lLXByZWxvYWQtd29ya2VyLmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisgICAg
YWN0aXZlV29ya2VyID0gcmVnaXN0cmF0aW9uLmluc3RhbGxpbmc7CisgICAgYWN0aXZlV29ya2Vy
LnBvc3RNZXNzYWdlKHsgcG9ydDogY2hhbm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5wb3J0MV0pOwor
CisgICAgYXdhaXQgd2FpdFVudGlsQWN0aXZhdGluZygpOworICAgIGlmIChyZWdpc3RyYXRpb24u
bmF2aWdhdGlvblByZWxvYWQpCisgICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9u
UHJlbG9hZC5lbmFibGUoKTsKK30sICJTZXR1cCBhY3RpdmF0aW5nIHdvcmtlciIpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgKHRlc3QpID0+IHsKKyAgICAvLyBTZXQgdmFsdWUgdG8gJ2JlZm9yZS1u
YXZpZ2F0aW9uJworICAgIGF3YWl0IGZldGNoKHVybCArICImdmFsdWU9YmVmb3JlLW5hdmlnYXRp
b24iLCB7IG1ldGhvZDogJ1BPU1QnIH0pOworCisgICAgLy8gU3RhcnQgbG9hZGluZyBpZnJhbWUs
IHdpdGggYWN0aXZhdGluZyB3b3JrZXIsIHNvIG9ubHkgcHJlbG9hZCB3aWxsIHN0YXJ0LgorICAg
IGNvbnN0IGlmcmFtZVByb21pc2UgPSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICAvLyBXYWl0IGEg
bGl0dGxlIGJpdCB0byBkbyBhIGZldGNoLiBUaGlzIGZldGNoIHNob3VsZCBoYXBwZW4gYWZ0ZXIg
dGhlIGZldGNoIGV2ZW50LCB3aGljaCBpcyBwZW5kaW5nLgorICAgIC8vIEl0IHNob3VsZCByZWNl
aXZlICdiZWZvcmUtbmF2aWdhdGlvbicKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+
IHNldFRpbWVvdXQocmVzb2x2ZSwgMTAwKSk7CisgICAgY29uc3QgZmV0Y2hQcm9taXNlID0gZmV0
Y2godXJsKTsKKworICAgIC8vIFRyaWdnZXIgZmV0Y2gsIHdoaWNoIHdpbGwgdHJpZ2dlciB0aGUg
cHJlbG9hZCByZXNwb25zZS4KKyAgICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoImZldGNoIik7
CisKKyAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGZldGNoUHJvbWlzZTsKKyAgICBhc3NlcnRf
ZXF1YWxzKGF3YWl0IHJlc3BvbnNlLnRleHQoKSwgImJlZm9yZS1uYXZpZ2F0aW9uIik7CisKKyAg
ICBjb25zdCBmcmFtZSA9IGF3YWl0IGlmcmFtZVByb21pc2U7CisgICAgYXNzZXJ0X2VxdWFscyhm
cmFtZS5jb250ZW50V2luZG93LnZhbHVlLCAibm90aGluZyIpOworfSwgIlNlcnZpY2Ugd29ya2Vy
IGxvYWQgdXNlcyBwcmVsb2FkIGlmIGF2YWlsYWJsZSBhbmQgZmV0Y2ggZXZlbnQgd2FzIG5vdCBo
YW5kbGVkIik7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lk
bGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55
LWV4cGVjdGVkLnR4dAppbmRleCBkZTI1MzJkZGM1OTcyMjU5ZDk4MzVjYTc0ZGMxOWM5ZDQ1YjQ5
M2E1Li40OTg2OWU4ZmIwNzM5M2JkN2I1ODBlZGMxZjdiYmIyOGI0OTNkMWFlIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVz
cy5odHRwcy5hbnktZXhwZWN0ZWQudHh0CkBAIC01Nyw3ICs1Nyw3IEBAIFBBU1MgU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJp
YnV0ZSBpbnN0YWxsaW5nCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNl
OiBhdHRyaWJ1dGUgd2FpdGluZwogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVy
ZmFjZTogYXR0cmlidXRlIGFjdGl2ZQotRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGlu
dGVyZmFjZTogYXR0cmlidXRlIG5hdmlnYXRpb25QcmVsb2FkIGFzc2VydF90cnVlOiBUaGUgcHJv
dG90eXBlIG9iamVjdCBtdXN0IGhhdmUgYSBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50
ZXJmYWNlOiBhdHRyaWJ1dGUgbmF2aWdhdGlvblByZWxvYWQKIFBBU1MgU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBzY29wZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIHVwZGF0ZVZpYUNhY2hlCiBQQVNTIFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBvcGVyYXRpb24gdXBkYXRlKCkKQEAg
LTY4LDcgKzY4LDcgQEAgUEFTUyBTdHJpbmdpZmljYXRpb24gb2YgcmVnaXN0cmF0aW9uSW5zdGFu
Y2UKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlv
bkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiaW5zdGFsbGluZyIgd2l0aCB0aGUgcHJv
cGVyIHR5cGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lz
dHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAid2FpdGluZyIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJl
Z2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWN0aXZlIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZQotRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTog
cmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJl
bG9hZCIgd2l0aCB0aGUgcHJvcGVyIHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAibmF2
aWdhdGlvblByZWxvYWQiIG5vdCBmb3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIHdpdGggdGhlIHByb3BlciB0eXBl
CiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25J
bnN0YW5jZSBtdXN0IGluaGVyaXQgcHJvcGVydHkgInNjb3BlIiB3aXRoIHRoZSBwcm9wZXIgdHlw
ZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9u
SW5zdGFuY2UgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJ1cGRhdGVWaWFDYWNoZSIgd2l0aCB0aGUg
cHJvcGVyIHR5cGUKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJl
Z2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRlKCkiIHdpdGgg
dGhlIHByb3BlciB0eXBlCkBAIC0xMDIsMTYgKzEwMiwxNiBAQCBQQVNTIFNlcnZpY2VXb3JrZXJD
b250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQg
cHJvcAogUEFTUyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNl
cnZpY2VXb3JrZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbmNvbnRyb2xsZXJjaGFuZ2UiIHdp
dGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNl
OiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubWVzc2Fn
ZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRl
cmZhY2U6IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25t
ZXNzYWdlZXJyb3IiIHdpdGggdGhlIHByb3BlciB0eXBlCi1GQUlMIE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ug
b2JqZWN0IGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlIG9iamVjdCBsZW5ndGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5v
dCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5n
Ci1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQg
cHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9y
IiBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHBy
b3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90
b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcK
LUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJs
ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
Ik5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50
ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9l
cyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0
ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUo
Qnl0ZVN0cmluZykgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBnZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6
IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwor
UEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHBy
b3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5ndGgKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IGludGVyZmFjZSBvYmplY3QgbmFtZQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50
ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBv
YmplY3QKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNl
IGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVj
dG9yIiBwcm9wZXJ0eQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBA
QHVuc2NvcGFibGVzIHByb3BlcnR5CitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRl
cmZhY2U6IG9wZXJhdGlvbiBlbmFibGUoKQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlOiBvcGVyYXRpb24gZGlzYWJsZSgpCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBzZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5nKQorUEFT
UyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3RhdGUo
KQogUEFTUyBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXaW5kb3dD
bGllbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9i
amVjdApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vydmlj
ZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXgg
OGIyNjQ1MDNkNTUyMjg2Yjc3ZGE0YzIzZjkzOTMyNjdlZGNlNzhmYy4uMzA0OGI3OWVjYTZhNTg0
M2NjYjc1MTM5OTI2Nzg3YTY1ZmY4NDQxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRw
cy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53
b3JrZXItZXhwZWN0ZWQudHh0CkBAIC04MiwxNiArODIsMTYgQEAgUEFTUyBTZXJ2aWNlV29ya2Vy
Q29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgbXVzdCBpbmhlcml0
IHByb3AKIFBBU1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5z
ZXJ2aWNlV29ya2VyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25jb250cm9sbGVyY2hhbmdlIiB3
aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGludGVyZmFj
ZTogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm1lc3Nh
Z2UiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJDb250YWluZXIgaW50
ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9u
bWVzc2FnZWVycm9yIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQotRkFJTCBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IGludGVyZmFjZSBvYmplY3QgbGVuZ3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBu
b3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQg
cHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2lu
ZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9w
ZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNz
aW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBh
bmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3Rv
ciIgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBw
cm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJv
dG90eXBlIG9iamVjdCdzIEBAdW5zY29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0
eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5n
Ci1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFi
bGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5
ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGlu
dGVyZmFjZTogb3BlcmF0aW9uIGRpc2FibGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRv
ZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVj
dGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIHNldEhlYWRlclZhbHVl
KEJ5dGVTdHJpbmcpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24g
cHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5h
dmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3RhdGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5
OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcK
K1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBw
cm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5h
Z2VyIGludGVyZmFjZSBvYmplY3QgbGVuZ3RoCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciBpbnRlcmZhY2Ugb2JqZWN0IG5hbWUKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGlu
dGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUg
b2JqZWN0CitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5j
ZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1
Y3RvciIgcHJvcGVydHkKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3Mg
QEB1bnNjb3BhYmxlcyBwcm9wZXJ0eQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50
ZXJmYWNlOiBvcGVyYXRpb24gZW5hYmxlKCkKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IGludGVyZmFjZTogb3BlcmF0aW9uIGRpc2FibGUoKQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZykKK1BB
U1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRl
KCkKIFBBU1MgU2VydmljZVdvcmtlckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgQ2xpZW50IGludGVyZmFjZTog
ZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV2luZG93
Q2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBv
YmplY3QKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9i
cm9rZW4tY2h1bmtlZC1lbmNvZGluZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZlNWZhNmE2ZmNlODU3YzM2ODRjZGIyNTY3NmQzNzk1ZTNh
NDc4OTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXBy
ZWxvYWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNSBAQAorCisKK0ZBSUwgRmV0Y2hFdmVudCNwcmVsb2FkUmVzcG9uc2UgcmVzb2x2ZXMgZXZl
biBpZiB0aGUgYm9keSBpcyBzZW50IHdpdGggYnJva2VuIGNodW5rZWQgZW5jb2RpbmcuIGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkICJQQVNTOiBwcmVsb2FkUmVzcG9uc2UgcmVzb2x2ZWQiIGJ1dCBn
b3QgIkZBSUw6IHByZWxvYWRSZXNwb25zZSByZWplY3RlZCIKK0ZBSUwgRmV0Y2hFdmVudCNwcmVs
b2FkUmVzcG9uc2UgcmVzb2x2ZXMgZXZlbiBpZiB0aGUgYm9keSBpcyBzZW50IHdpdGggYnJva2Vu
IGNodW5rZWQgZW5jb2Rpbmcgd2l0aCBzb21lIGRlbGF5cyBhc3NlcnRfZXF1YWxzOiBleHBlY3Rl
ZCAiUEFTUzogcHJlbG9hZFJlc3BvbnNlIHJlc29sdmVkIiBidXQgZ290ICJGQUlMOiBwcmVsb2Fk
UmVzcG9uc2UgcmVqZWN0ZWQiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmln
YXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xZWYwMTYyN2M4ZTM4OTRkZTcwNzMzMzEwMTJhZmI0ZmNk
MTI1NmJiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1w
cmVsb2FkL2NodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCisKK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIG11c3Qgd29yayB3aXRoIGNodW5rZWQgZW5j
b2RpbmcuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9h
ZC9lbXB0eS1wcmVsb2FkLXJlc3BvbnNlLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2VtcHR5LXByZWxvYWQtcmVzcG9uc2UtYm9k
eS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkYTI4Y2ZjYWE1ZTJiMTQwNTFlOTVj
ZjJiOTNmMjRjNzAzOTc0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25h
dmlnYXRpb24tcHJlbG9hZC9lbXB0eS1wcmVsb2FkLXJlc3BvbnNlLWJvZHkuaHR0cHMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIGVtcHR5
IHJlc3BvbnNlIGJvZHkuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9nZXQtc3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3Jr
ZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2dldC1zdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOGFhMWU5ZDBhZjE5OWYyMzNiYzM4MTI4OTU0ZDg4OWI1ZmEzYWQyMgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9nZXQtc3RhdGUu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitQQVNTIGdldFN0YXRlCitQQVNT
IGdldFN0YXRlIGZyb20gYSB3b3JrZXIKK1BBU1Mgbm8gYWN0aXZlIHdvcmtlcgorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvbmF2aWdhdGlvblByZWxv
YWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVs
b2FkL25hdmlnYXRpb25QcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc1
NjU5NzUwODE3MzVjYWMyZjIxYTYxZjQzZDc2MTE2NzY4MzgyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtl
cnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL25hdmlnYXRpb25QcmVsb2FkLmh0
dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUaGUgbmF2aWdhdGlvblBy
ZWxvYWQgYXR0cmlidXRlIG11c3QgcmV0dXJuIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbidz
IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBvYmplY3QuCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZp
Y2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVkaXJlY3QuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1NTFkYzZiNjJhNzVmNTk2NTFjYmI3ODA4YTNmYjUzYTNi
MTZjZDUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXBy
ZWxvYWQvcmVkaXJlY3QuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCisKK1BB
U1MgTmF2aWdhdGlvbiBQcmVsb2FkIHJlZGlyZWN0IHJlc3BvbnNlLgorUEFTUyBOYXZpZ2F0aW9u
IFByZWxvYWQgbm8tbG9jYXRpb24gcmVkaXJlY3QgcmVzcG9uc2UuCitQQVNTIE5hdmlnYXRpb24g
UHJlbG9hZCBuby1sb2NhdGlvbiByZWRpcmVjdCByZXNwb25zZSB3aXRoIGJvZHkuCitQQVNTIE5h
dmlnYXRpb24gUHJlbG9hZCByZWRpcmVjdCB0byB0aGUgc2FtZSBzY29wZS4KKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQv
cmVxdWVzdC1oZWFkZXJzLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmIzZGMwZjRj
YmQyN2YwNjRhNWNjNWQwNDNlMzQwN2NmMjdiNzQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKKworRkFJTCBOYXZpZ2F0aW9uIFByZWxvYWQgcmVx
dWVzdCBoZWFkZXJzLiBhc3NlcnRfdHJ1ZTogVGhlIE5hdmlnYXRpb24gUHJlbG9hZCByZXF1ZXN0
IG11c3Qgc3BlY2lmeSBhbiAiVXBncmFkZS1JbnNlY3VyZS1SZXF1ZXN0cyIgaGVhZGVyLiBleHBl
Y3RlZCB0cnVlIGdvdCBmYWxzZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZp
Z2F0aW9uLXByZWxvYWQvcmVzb3VyY2UtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9yZXNvdXJjZS10aW1pbmcuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjgxMjEyZTAxMDkzZTZkZDg4NjEyNGExMTkxNjFlYTgyNThl
ZjJhZjkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXBy
ZWxvYWQvcmVzb3VyY2UtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworCitGQUlMIE5hdmlnYXRpb24gUHJlbG9hZCBSZXNvdXJjZSBUaW1pbmcuIGFzc2VydF9ncmVh
dGVyX3RoYW46IHRyYW5zZmVyU2l6ZSBtdXN0IGdyZWF0ZXIgdGhlbiBlbmNvZGVkQm9keVNpemUu
IGV4cGVjdGVkIGEgbnVtYmVyIGdyZWF0ZXIgdGhhbiAwIGJ1dCBnb3QgMAorCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29y
a2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvc2FtZXNpdGUtY29va2llcy5o
dHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQv
c2FtZXNpdGUtY29va2llcy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFiMDM3YTdh
ZWQ2ODJkZWY1ZDg3MzhhZGY0ZDk4ZTIyZTQ4MzIyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3Nl
cnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9zYW1lc2l0ZS1jb29raWVzLmh0dHBzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKKworCitQQVNTIFNldCB1cCBhIHNlcnZpY2Ugd29y
a2VyIGZvciBuYXZpZ2F0aW9uIHByZWxvYWQgdGVzdHMuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9h
ZCBmb3Igc2FtZSBzaXRlIGNvb2tpZXMgKE5vbmUpLgorUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQg
Zm9yIHNhbWUgc2l0ZSBjb29raWVzIChTdHJpY3QpLgorUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQg
Zm9yIHNhbWUgc2l0ZSBjb29raWVzIChMYXgpLgorUEFTUyBVbnJlZ2lzdGVyIGEgc2VydmljZSB3
b3JrZXIuCisK
</data>
<flag name="commit-queue"
          id="470905"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>445681</attachid>
            <date>2021-12-01 23:59:34 -0800</date>
            <delta_ts>2021-12-02 00:58:02 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-233523-20211202085928.patch</filename>
            <type>text/plain</type>
            <size>134109</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2NDE0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDY1NjE4Yjc3ZWI3MzRlNWYxNzcyMjM5
MGQwYWI4YjZhZGFmMjEwMDIuLjQ1N2Q2OGU4MWFjOWJhYzMyZDViMjk3NzcxYTY1ZmMyODAzNjA3
NDYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTItMDEgIFlvdWVubiBGYWJsZXQgIDx5b3Vl
bm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisgICAgICAgICog
U2NyaXB0cy9QcmVmZXJlbmNlcy9XZWJQcmVmZXJlbmNlc0V4cGVyaW1lbnRhbC55YW1sOgorCiAy
MDIxLTEyLTAxICBGdWppaSBIaXJvbm9yaSAgPEhpcm9ub3JpLkZ1amlpQHNvbnkuY29tPgogCiAg
ICAgICAgIFtXaW5dIE9TQWxsb2NhdG9yOjpyZXNlcnZlVW5jb21taXR0ZWRBbGlnbmVkIHNob3Vs
ZCB1c2UgYWxpZ25lZCBhbGxvY2F0aW9uCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDUwMTc2YWNlOTA5ZjA3ZDRl
MDdjNzQ1ODAyNTQ5Nzg1NzA5M2ZlYi4uNzM0Y2U1Y2Y1OTJiZjkwMDM0ZGJlMzgwN2I1ZmY3OGVm
YTg2MDVlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY5IEBACisyMDIxLTEyLTAxICBZb3Vlbm4g
RmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgc3VwcG9ydCBmb3IgTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMzM1MjMKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJpcyBEdW1lei4K
KworICAgICAgICBBZGQgc2VydmljZSB3b3JrZXIgbmF2aWdhdGlvbiBwcmVsb2FkIElETCBhbmQg
aW1wbGVtZW50YXRpb24uCisgICAgICAgIFRoaXMgaW5jbHVkZXMgaW4gcGFydGljdWxhciBzdGF0
ZSBtYW5hZ2VtZW50IChyZWFkIGFuZCB3cml0ZSkgb24gQVBJIHNpZGUgYW5kIFNXU2VydmVyIHNp
ZGUuCisgICAgICAgIFRoaXMgc3RhdGUgaXMgdXNlZCBpbiBXSzIgbmV0d29yayBjb2RlIHBhdGgg
dG8gZW5hYmxlIG9yIG5vdCBwcmVsb2Fkcy4KKyAgICAgICAgV2UgYXJlIG5vdCB5ZXQgcGVyc2lz
dGluZyBwcmVsb2FkIHJlZ2lzdHJhdGlvbiBzdGF0ZSBvbiBkaXNrLCB0aGlzIHdpbGwgYmUgZG9u
ZSBhcyBhIGZvbGxvdy11cC4KKworICAgICAgICBUaGUgRmV0Y2hFdmVudCBwcmVsb2FkUmVzcG9u
c2UgcmV0dXJucyBhIHByb21pc2Ugd2hpY2ggaGFzIGVpdGhlciB1bmRlZmluZWQgb3IgYSByZXNw
b25zZSBhcyByZXNvbHZlZCB2YWx1ZS4KKyAgICAgICAgSW4gY2FzZSB0aGVyZSBpcyBhIHByZWxv
YWRlciBmb3IgdGhhdCBGZXRjaEV2ZW50LCB3ZSBzdGFydCB0aGUgbG9hZCB3aGVuIHByZWxvYWRS
ZXNwb25zZSBpcyByZXRyaWV2ZWQgYnkgSlMuCisKKyAgICAgICAgVG8gaW1wbGVtZW50IHRoZSBy
ZXRyaWV2YWwgb2YgdGhlIHByZWxvYWQgcmVzcG9uc2UsIHdlIHVzZSBGZXRjaFJlc3BvbnNlOjpm
ZXRjaC4KKyAgICAgICAgVG8gZG8gc28sIHdlIGFkZCBhbiBpbml0aWF0b3IgcGFyYW1ldGVyIGFz
IHRoaXMgcHJlbG9hZCBpbml0aWF0b3IgaXMgdGhlIG5hdmlnYXRpb24gdGFzayBhbmQgbm90IGEg
ZmV0Y2ggY2FsbC4KKworICAgICAgICBDb3ZlcmVkIGJ5IGVuYWJsZWQgdGVzdHMuCisKKyAgICAg
ICAgVGVzdHM6IGh0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUt
cHJlbG9hZC5odHRwcy5odG1sLgorCisgICAgICAgICogQ01ha2VMaXN0cy50eHQ6CisgICAgICAg
ICogRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291
cmNlcy1vdXRwdXQueGNmaWxlbGlzdDoKKyAgICAgICAgKiBEZXJpdmVkU291cmNlcy5tYWtlOgor
ICAgICAgICAqIE1vZHVsZXMvY2FjaGUvRE9NQ2FjaGUuY3BwOgorICAgICAgICAqIE1vZHVsZXMv
ZmV0Y2gvRmV0Y2hMb2FkZXIuY3BwOgorICAgICAgICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hMb2Fk
ZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwOgorICAgICAg
ICAqIE1vZHVsZXMvZmV0Y2gvRmV0Y2hSZXNwb25zZS5oOgorICAgICAgICAqIE1vZHVsZXMvZmV0
Y2gvV2luZG93T3JXb3JrZXJHbG9iYWxTY29wZUZldGNoLmNwcDoKKyAgICAgICAgKiBTb3VyY2Vz
LnR4dDoKKyAgICAgICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAg
ICAgICogYmluZGluZ3MvanMvRE9NUHJvbWlzZVByb3h5Lmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRS
ZXNvdXJjZS5jcHA6CisgICAgICAgICogbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVz
dEluaXRpYXRvcnMuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0
SW5pdGlhdG9yczo6Q2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycyk6CisgICAgICAgICog
bG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaDoKKyAgICAgICAg
KiBwbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1lcy5pbjoKKyAgICAgICAgKiB3b3JrZXJz
L3NlcnZpY2UvRmV0Y2hFdmVudC5jcHA6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL0ZldGNo
RXZlbnQuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5pZGw6CisgICAg
ICAgICogd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5jcHA6IEFkZGVk
LgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaDog
QWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ci5pZGw6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9h
ZFN0YXRlLmg6IEFkZGVkLgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJl
bG9hZFN0YXRlLmlkbDogQWRkZWQuCisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50
Q29ubmVjdGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29u
dGFpbmVyLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRh
aW5lci5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5oOgorICAgICAgICAqIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uLmlkbDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0
aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0
aW9uLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlckZl
dGNoLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
RmV0Y2guaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2Vy
VGhyZWFkLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29y
a2VyVGhyZWFkLmg6CisgICAgICAgICogd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdv
cmtlclRocmVhZFByb3h5LmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2UvY29udGV4dC9T
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHkuaDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uvc2Vy
dmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcDoKKyAgICAgICAgKiB3b3JrZXJzL3NlcnZpY2Uv
c2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmg6CisKIDIwMjEtMTItMDEgIFNpaHVpIExpdSAg
PHNpaHVpX2xpdUBhcHBsZS5jb20+CiAKICAgICAgICAgRmlsZVN5c3RlbVN5bmNBY2Nlc3NIYW5k
bGUgc2hvdWxkIGJlIGludmFsaWRhdGVkIHdoZW4gbmV0d29yayBwcm9jZXNzIGNyYXNoZXMKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cKaW5kZXggY2VjMTUyYzFmNzA2NzFkZmJmN2NkYTJjMDU3NDc2ODQzMTRmMDRiOS4uZDc3OTgx
ZjAzZTU4MGI3OTVjMjIwNWJlM2E2YzI1MWVhZDBmZDEyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwy
OCBAQAorMjAyMS0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CisKKyAg
ICAgICAgQWRkIHN1cHBvcnQgZm9yIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgTWFrZSB1c2Ugb2YgU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXIgd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAg
ICAgV2Ugb25seSBzdGFydCBhcyBzb29uIGFzIGNyZWF0ZWQgdGhlIHByZWxvYWQgaW4gY2FzZSBv
ZiBtYWluIGZyYW1lIG5hdmlnYXRpb24gd2hlbiBwcmVsb2FkIGZsYWcgaXMgdHJ1ZS4KKyAgICAg
ICAgVXBkYXRlIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyIHRvIGRpZmZlcmVudGlh
dGUgZXhwbGljaXQgcHJlbG9hZHMgKGVuYWJsZWQgYnkgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
KSBmcm9tIGltcGxpY3QgcHJlbG9hZHMuCisgICAgICAgIEltcGxpY3QgcHJlbG9hZHMgY2FuIGJl
IHVzZWQgd2hlbiBmZXRjaCBldmVudCBpcyBub3QgaGFuZGxlZCwgd2hpY2ggaXMgbm90IGd1YXJh
bnRlZWQgZm9yIGV4cGxpY2l0IHByZWxvYWRzLCBnaXZlbiB0aGUgU2VydmljZS1Xb3JrZXItTmF2
aWdhdGlvbi1QcmVsb2FkIGhlYWRlci4KKyAgICAgICAgQWRkIElQQyB0byByZWFkIGFuZCBzZXQg
cHJlbG9hZCBzdGF0ZSAoZW5hYmxlZCBhbmQgaGVhZGVyIHZhbHVlKS4KKworICAgICAgICAqIE5l
dHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHA6Cisg
ICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdh
dGlvblByZWxvYWRlci5jcHA6CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oOgorICAgICAgICAqIE5ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmNwcDoKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5oOgor
ICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uLm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NsaWVu
dENvbm5lY3Rpb24uaDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uY3BwOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oOgorICAgICAgICAqIFdlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbjoKKwogMjAyMS0xMi0w
MSAgU2lodWkgTGl1ICA8c2lodWlfbGl1QGFwcGxlLmNvbT4KIAogICAgICAgICBGaWxlU3lzdGVt
U3luY0FjY2Vzc0hhbmRsZSBzaG91bGQgYmUgaW52YWxpZGF0ZWQgd2hlbiBuZXR3b3JrIHByb2Nl
c3MgY3Jhc2hlcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dURi9TY3JpcHRzL1ByZWZlcmVuY2VzL1dl
YlByZWZlcmVuY2VzRXhwZXJpbWVudGFsLnlhbWwgYi9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVy
ZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAppbmRleCAwZDlhZGQ1Nzc3NDgy
Mjc5NjRiMjI3ZDE4MTNlY2IzZTYwZTVhOGZhLi42YWUyYzE0MjgyMTgzY2I3MDkwOTU0NjNjOGZj
ZGRmYzZkNWU1YjY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV1RGL1NjcmlwdHMvUHJlZmVyZW5jZXMv
V2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbAorKysgYi9Tb3VyY2UvV1RGL1NjcmlwdHMv
UHJlZmVyZW5jZXMvV2ViUHJlZmVyZW5jZXNFeHBlcmltZW50YWwueWFtbApAQCAtMTI1OCw2ICsx
MjU4LDE5IEBAIFNlcnZlclRpbWluZ0VuYWJsZWQ6CiAgICAgICAiRU5BQkxFKEVYUEVSSU1FTlRB
TF9GRUFUVVJFUykgJiYgKFBMQVRGT1JNKEdUSykgfHwgUExBVEZPUk0oV1BFKSkiOiB0cnVlCiAg
ICAgICBkZWZhdWx0OiBmYWxzZQogCitTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFi
bGVkOgorICB0eXBlOiBib29sCisgIGh1bWFuUmVhZGFibGVOYW1lOiAiU2VydmljZSBXb3JrZXIg
TmF2aWdhdGlvbiBQcmVsb2FkIgorICBodW1hblJlYWRhYmxlRGVzY3JpcHRpb246ICJFbmFibGUg
U2VydmljZSBXb3JrZXIgTmF2aWdhdGlvbiBQcmVsb2FkIEFQSSIKKyAgY29uZGl0aW9uOiBFTkFC
TEUoU0VSVklDRV9XT1JLRVIpCisgIGRlZmF1bHRWYWx1ZToKKyAgICBXZWJDb3JlOgorICAgICAg
ZGVmYXVsdDogZmFsc2UKKyAgICBXZWJLaXRMZWdhY3k6CisgICAgICBkZWZhdWx0OiBmYWxzZQor
ICAgIFdlYktpdDoKKyAgICAgIGRlZmF1bHQ6IGZhbHNlCisKIFNoYXJlZFdvcmtlckVuYWJsZWQ6
CiAgIHR5cGU6IGJvb2wKICAgaHVtYW5SZWFkYWJsZU5hbWU6ICJTaGFyZWRXb3JrZXIiCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dCBiL1NvdXJjZS9XZWJDb3JlL0NN
YWtlTGlzdHMudHh0CmluZGV4IGI4MTNmZWViYjU5YTExYjNjNmI3ZTg4NDJhNjNhNzFiYWY5ZjA2
ODguLjdmYjVjMDRlYzY1OTUxNTA5MjdlOTQ2ZjMwODZmMDU5OWNiN2ZkMGYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CisrKyBiL1NvdXJjZS9XZWJDb3JlL0NNYWtl
TGlzdHMudHh0CkBAIC0xMjI0LDYgKzEyMjQsOCBAQCBzZXQoV2ViQ29yZV9OT05fU1ZHX0lETF9G
SUxFUwogICAgIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlRXZlbnRJbml0LmlkbAogICAgIHdv
cmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmlkbAogICAgIHdvcmtlcnMvc2Vy
dmljZS9GZXRjaEV2ZW50LmlkbAorICAgIHdvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIuaWRsCisgICAgd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsCiAgICAgd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJDbGllbnQuaWRsCiAgICAgd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnRUeXBlLmlkbApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvRGVyaXZl
ZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdCBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2Vz
LWlucHV0LnhjZmlsZWxpc3QKaW5kZXggZWUzMTk1YWM0ZjViOTE3N2YwMmZkNjg0MzUwYTkwMGI2
NDJmOTk4YS4uYTgzMjg5N2RiMDY3ZjZiMmE0MWM4OTY3MDhjY2ZkMjEyODFlZDY2YSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtaW5wdXQueGNmaWxlbGlzdAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy1pbnB1dC54Y2ZpbGVsaXN0CkBAIC0xNjI0
LDYgKzE2MjQsOCBAQCAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZUV2
ZW50LmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVFdmVudElu
aXQuaWRsCiAkKFBST0pFQ1RfRElSKS93b3JrZXJzL3NlcnZpY2UvRXh0ZW5kYWJsZU1lc3NhZ2VF
dmVudC5pZGwKICQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmlkbAor
JChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL05hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5p
ZGwKKyQoUFJPSkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
LmlkbAogJChQUk9KRUNUX0RJUikvd29ya2Vycy9zZXJ2aWNlL1B1c2hFdmVudC5pZGwKICQoUFJP
SkVDVF9ESVIpL3dvcmtlcnMvc2VydmljZS9QdXNoRXZlbnRJbml0LmlkbAogJChQUk9KRUNUX0RJ
Uikvd29ya2Vycy9zZXJ2aWNlL1B1c2hNZXNzYWdlRGF0YS5pZGwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLW91dHB1dC54Y2ZpbGVsaXN0IGIvU291cmNlL1dlYkNv
cmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0LnhjZmlsZWxpc3QKaW5kZXggZTM0YjRiNjM0NmFjZDk5
MzVmM2IzOWFmOTE4NGFhNGNjNjBmMmE0OS4uOWJkNDg0MTE1NTZjMGQ0NzViZjJlN2YyMDhkM2E4
NDUyMmUzYmE4YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0
cHV0LnhjZmlsZWxpc3QKKysrIGIvU291cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMtb3V0cHV0
LnhjZmlsZWxpc3QKQEAgLTE2MzEsNiArMTYzMSwxMCBAQCAkKEJVSUxUX1BST0RVQ1RTX0RJUikv
RGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU011dGF0aW9uUmVjb3JkLmNwcAogJChCVUlMVF9QUk9E
VUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNNdXRhdGlvblJlY29yZC5oCiAkKEJV
SUxUX1BST0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hbWVkTm9kZU1hcC5j
cHAKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmFtZWRO
b2RlTWFwLmgKKyQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pT
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2
ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuaAorJChCVUlMVF9Q
Uk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlLmNwcAorJChCVUlMVF9QUk9EVUNUU19ESVIpL0Rlcml2ZWRTb3VyY2VzL1dlYkNvcmUvSlNO
YXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKICQoQlVJTFRfUFJPRFVDVFNfRElSKS9EZXJpdmVkU291
cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5jcHAKICQoQlVJTFRfUFJPRFVDVFNfRElS
KS9EZXJpdmVkU291cmNlcy9XZWJDb3JlL0pTTmF2aWdhdG9yK0JlYWNvbi5oCiAkKEJVSUxUX1BS
T0RVQ1RTX0RJUikvRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU05hdmlnYXRvcitDbGlwYm9hcmQu
Y3BwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlIGIvU291
cmNlL1dlYkNvcmUvRGVyaXZlZFNvdXJjZXMubWFrZQppbmRleCA4ODJkZWQwMjY2Mzc5MmE0ZGEy
ODNhZjY2YmZhNDc4NmUxMGE5ZTFjLi4yZTY3ZDFhNGIwYjYzN2UyN2JlM2FlNDkzNTAyOTVhZTk3
NjM4MmZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9EZXJpdmVkU291cmNlcy5tYWtlCisr
KyBiL1NvdXJjZS9XZWJDb3JlL0Rlcml2ZWRTb3VyY2VzLm1ha2UKQEAgLTE0NDYsNiArMTQ0Niw4
IEBAIEpTX0JJTkRJTkdfSURMUyA6PSBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2Uv
RXh0ZW5kYWJsZUV2ZW50SW5pdC5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9zZXJ2aWNl
L0V4dGVuZGFibGVNZXNzYWdlRXZlbnQuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2Vy
dmljZS9GZXRjaEV2ZW50LmlkbCBcCisgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZpY2UvTmF2
aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCBcCisgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZp
Y2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwgXAogICAgICQoV2ViQ29yZSkvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXIuaWRsIFwKICAgICAkKFdlYkNvcmUpL3dvcmtlcnMvc2Vydmlj
ZS9TZXJ2aWNlV29ya2VyQ2xpZW50LmlkbCBcCiAgICAgJChXZWJDb3JlKS93b3JrZXJzL3NlcnZp
Y2UvU2VydmljZVdvcmtlckNsaWVudFR5cGUuaWRsIFwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL0hlYWRlcnMuY21ha2UgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCmluZGV4IDM2
MGM1NDY1MjZkMTQ0MzFlY2I4OWZhYTI4MzNhN2I1YzY3NmNjNTQuLjk1MTk5Y2NkODM2ODZmMWI5
ZDliZmVhYzZiNjA5NTNiNDBjMWI3OWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL0hlYWRl
cnMuY21ha2UKKysrIGIvU291cmNlL1dlYkNvcmUvSGVhZGVycy5jbWFrZQpAQCAtMTg5OCw2ICsx
ODk4LDcgQEAgc2V0KFdlYkNvcmVfUFJJVkFURV9GUkFNRVdPUktfSEVBREVSUwogICAgIHdvcmtl
cnMvV29ya2VyVGhyZWFkVHlwZS5oCiAgICAgd29ya2Vycy9Xb3JrZXJUeXBlLmgKIAorICAgIHdv
cmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKICAgICB3b3JrZXJzL3NlcnZp
Y2UvU1dDbGllbnRDb25uZWN0aW9uLmgKICAgICB3b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNsaWVudERhdGEuaAogICAgIHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ2xpZW50UXVl
cnlPcHRpb25zLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY2FjaGUvRE9N
Q2FjaGUuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKaW5k
ZXggOTA5OGUwNWFmNGM4NDMzYjNkMTNiMzk1NjUwNjRhOWMxNTQzMzg3ZC4uZTZjYzFhYWU3ODNh
NTIwOTRmNjU0OTliYjkwZGQ3ZjAwNzFkNDI0YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jYWNoZS9ET01DYWNoZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9j
YWNoZS9ET01DYWNoZS5jcHAKQEAgLTI3LDYgKzI3LDcgQEAKICNpbmNsdWRlICJET01DYWNoZS5o
IgogCiAjaW5jbHVkZSAiQ2FjaGVRdWVyeU9wdGlvbnMuaCIKKyNpbmNsdWRlICJDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzLmgiCiAjaW5jbHVkZSAiRXZlbnRMb29wLmgiCiAjaW5jbHVk
ZSAiRmV0Y2hSZXNwb25zZS5oIgogI2luY2x1ZGUgIkhUVFBQYXJzZXJzLmgiCkBAIC0zMDIsNyAr
MzAzLDcgQEAgdm9pZCBET01DYWNoZTo6YWRkQWxsKFZlY3RvcjxSZXF1ZXN0SW5mbz4mJiBpbmZv
cywgRE9NUHJvbWlzZURlZmVycmVkPHZvaWQ+JiYgcHIKICAgICAgICAgICAgICAgICBlbHNlCiAg
ICAgICAgICAgICAgICAgICAgIHRhc2tIYW5kbGVyLT5hZGRSZXNwb25zZUJvZHkocmVjb3JkUG9z
aXRpb24sIHJlc3BvbnNlLCBXVEZNb3ZlKGRhdGEpKTsKICAgICAgICAgICAgIH0pOwotICAgICAg
ICB9KTsKKyAgICAgICAgfSwgY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLmZldGNo
KTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gv
RmV0Y2hMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRl
ci5jcHAKaW5kZXggZTk4OTE0MWI3N2I4ZTNlZTY4OTFmNWU0NWJlMGMzMmU5OTg0MDRiZC4uZmM1
NWNjN2Q4M2Q4YmMxMWYwODU0ZGMzY2ZkODUwOTdhMzFmMTBmNiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy9mZXRjaC9GZXRjaExvYWRlci5jcHAKQEAgLTgzLDEzICs4MywxMyBAQCB2b2lk
IEZldGNoTG9hZGVyOjpzdGFydExvYWRpbmdCbG9iVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQm
IGNvbnRleHQsIGNvbnN0IFVSTAogICAgIG1faXNTdGFydGVkID0gbV9sb2FkZXI7CiB9CiAKLXZv
aWQgRmV0Y2hMb2FkZXI6OnN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNv
bnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCkKK3ZvaWQgRmV0Y2hMb2FkZXI6OnN0YXJ0KFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIGNvbnN0IEZldGNoUmVxdWVzdCYgcmVxdWVzdCwg
Y29uc3QgU3RyaW5nJiBpbml0aWF0b3IpCiB7CiAgICAgUmVzb3VyY2VMb2FkZXJPcHRpb25zIHJl
c291cmNlTG9hZGVyT3B0aW9ucyA9IHJlcXVlc3QuZmV0Y2hPcHRpb25zKCk7CiAgICAgcmVzb3Vy
Y2VMb2FkZXJPcHRpb25zLnByZWZsaWdodFBvbGljeSA9IFByZWZsaWdodFBvbGljeTo6Q29uc2lk
ZXI7CiAgICAgVGhyZWFkYWJsZUxvYWRlck9wdGlvbnMgb3B0aW9ucyhyZXNvdXJjZUxvYWRlck9w
dGlvbnMsCiAgICAgICAgIGNvbnRleHQuc2hvdWxkQnlwYXNzTWFpbldvcmxkQ29udGVudFNlY3Vy
aXR5UG9saWN5KCkgPyBDb250ZW50U2VjdXJpdHlQb2xpY3lFbmZvcmNlbWVudDo6RG9Ob3RFbmZv
cmNlIDogQ29udGVudFNlY3VyaXR5UG9saWN5RW5mb3JjZW1lbnQ6OkVuZm9yY2VDb25uZWN0U3Jj
RGlyZWN0aXZlLAotICAgICAgICBTdHJpbmcoY2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9y
cygpLmZldGNoKSwKKyAgICAgICAgU3RyaW5nKGluaXRpYXRvciksCiAgICAgICAgIFJlc3BvbnNl
RmlsdGVyaW5nUG9saWN5OjpEaXNhYmxlKTsKICAgICBvcHRpb25zLnNlbmRMb2FkQ2FsbGJhY2tz
ID0gU2VuZENhbGxiYWNrUG9saWN5OjpTZW5kQ2FsbGJhY2tzOwogICAgIG9wdGlvbnMuZGF0YUJ1
ZmZlcmluZ1BvbGljeSA9IERhdGFCdWZmZXJpbmdQb2xpY3k6OkRvTm90QnVmZmVyRGF0YTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvRmV0Y2hMb2FkZXIuaAppbmRleCA0MDcyOGQyNTdl
ODQzYzQxMTQ4NmZkNmU0MzgwNzA0NDMxYWNmY2EyLi4yZjkwZjBlYzNmZjkwNWEyNjIzMWM4NGM3
MmE3YTE4NmNkNGJmZTgzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L0ZldGNoTG9hZGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaExv
YWRlci5oCkBAIC00OCw3ICs0OCw3IEBAIHB1YmxpYzoKIAogICAgIFJlZlB0cjxTaGFyZWRCdWZm
ZXI+IHN0YXJ0U3RyZWFtaW5nKCk7CiAKLSAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNv
bnRleHQmLCBjb25zdCBGZXRjaFJlcXVlc3QmKTsKKyAgICB2b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQmLCBjb25zdCBGZXRjaFJlcXVlc3QmLCBjb25zdCBTdHJpbmcmKTsKICAgICB2
b2lkIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBCbG9iJik7CiAgICAgdm9p
ZCBzdGFydExvYWRpbmdCbG9iVVJMKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBVUkwm
IGJsb2JVUkwpOwogICAgIHZvaWQgc3RvcCgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
ZmV0Y2gvRmV0Y2hSZXNwb25zZS5jcHAKaW5kZXggNWQ0NTJjZTI4OGNlZGMwMjkzMmQ5Mzk2ZjY0
NjAwNDZlNDZiZDUzNi4uNGRmODQyNmM3MThiYTE2ZWNmMGE0N2U3M2U5MDBkM2Y4NDhmNjRmMiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNoL0ZldGNoUmVzcG9uc2UuY3BwCkBA
IC0yMjcsNyArMjI3LDcgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjphZGRBYm9ydFN0ZXBzKFJlZjxB
Ym9ydFNpZ25hbD4mJiBzaWduYWwpCiAgICAgfSk7CiB9CiAKLXZvaWQgRmV0Y2hSZXNwb25zZTo6
ZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgRmV0Y2hSZXF1ZXN0JiByZXF1
ZXN0LCBOb3RpZmljYXRpb25DYWxsYmFjayYmIHJlc3BvbnNlQ2FsbGJhY2spCit2b2lkIEZldGNo
UmVzcG9uc2U6OmZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQsIEZldGNoUmVx
dWVzdCYgcmVxdWVzdCwgTm90aWZpY2F0aW9uQ2FsbGJhY2smJiByZXNwb25zZUNhbGxiYWNrLCBj
b25zdCBTdHJpbmcmIGluaXRpYXRvcikKIHsKICAgICBpZiAocmVxdWVzdC5zaWduYWwoKS5hYm9y
dGVkKCkpIHsKICAgICAgICAgcmVzcG9uc2VDYWxsYmFjayhFeGNlcHRpb24geyBBYm9ydEVycm9y
LCAiUmVxdWVzdCBzaWduYWwgaXMgYWJvcnRlZCJfcyB9KTsKQEAgLTI0OSw3ICsyNDksNyBAQCB2
b2lkIEZldGNoUmVzcG9uc2U6OmZldGNoKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQs
IEZldGNoUmVxdWVzdCYgcmVxdWVzdAogICAgIHJlc3BvbnNlLT5hZGRBYm9ydFN0ZXBzKHJlcXVl
c3Quc2lnbmFsKCkpOwogCiAgICAgcmVzcG9uc2UtPm1fYm9keUxvYWRlciA9IG1ha2VVbmlxdWU8
Qm9keUxvYWRlcj4ocmVzcG9uc2UuZ2V0KCksIFdURk1vdmUocmVzcG9uc2VDYWxsYmFjaykpOwot
ICAgIGlmICghcmVzcG9uc2UtPm1fYm9keUxvYWRlci0+c3RhcnQoY29udGV4dCwgcmVxdWVzdCkp
CisgICAgaWYgKCFyZXNwb25zZS0+bV9ib2R5TG9hZGVyLT5zdGFydChjb250ZXh0LCByZXF1ZXN0
LCBpbml0aWF0b3IpKQogICAgICAgICByZXNwb25zZS0+bV9ib2R5TG9hZGVyID0gbnVsbHB0cjsK
IH0KIApAQCAtMzc3LDExICszNzcsMTEgQEAgdm9pZCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVy
OjpkaWRSZWNlaXZlRGF0YShjb25zdCB1aW50OF90KiBkYXRhLCBzaXplX3Qgc2l6ZSkKICAgICBz
b3VyY2UucmVzb2x2ZVB1bGxQcm9taXNlKCk7CiB9CiAKLWJvb2wgRmV0Y2hSZXNwb25zZTo6Qm9k
eUxvYWRlcjo6c3RhcnQoU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYgY29udGV4dCwgY29uc3QgRmV0
Y2hSZXF1ZXN0JiByZXF1ZXN0KQorYm9vbCBGZXRjaFJlc3BvbnNlOjpCb2R5TG9hZGVyOjpzdGFy
dChTY3JpcHRFeGVjdXRpb25Db250ZXh0JiBjb250ZXh0LCBjb25zdCBGZXRjaFJlcXVlc3QmIHJl
cXVlc3QsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKQogewogICAgIG1fY3JlZGVudGlhbHMgPSBy
ZXF1ZXN0LmZldGNoT3B0aW9ucygpLmNyZWRlbnRpYWxzOwogICAgIG1fbG9hZGVyID0gbWFrZVVu
aXF1ZTxGZXRjaExvYWRlcj4oKnRoaXMsICZtX3Jlc3BvbnNlLm1fYm9keS0+Y29uc3VtZXIoKSk7
Ci0gICAgbV9sb2FkZXItPnN0YXJ0KGNvbnRleHQsIHJlcXVlc3QpOworICAgIG1fbG9hZGVyLT5z
dGFydChjb250ZXh0LCByZXF1ZXN0LCBpbml0aWF0b3IpOwogICAgIHJldHVybiBtX2xvYWRlci0+
aXNTdGFydGVkKCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0
Y2gvRmV0Y2hSZXNwb25zZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJl
c3BvbnNlLmgKaW5kZXggYmM1ODU0ZjliOTY2ZmI2MzI5ZDE2ZmRlNjE4Y2NlYjFkOGM5NGNhOS4u
MzQyMGM2YTM4ZDNjM2Y2ZTJmZGI2Njc1ZThhNGQxMzY1YmY1YTViYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKKysrIGIvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy9mZXRjaC9GZXRjaFJlc3BvbnNlLmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBFeGNlcHRpb25PcjxSZWY8RmV0Y2hSZXNwb25zZT4+IHJlZGlyZWN0
KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBTdHJpbmcmIHVybCwgaW50IHN0YXR1cyk7
CiAKICAgICB1c2luZyBOb3RpZmljYXRpb25DYWxsYmFjayA9IEZ1bmN0aW9uPHZvaWQoRXhjZXB0
aW9uT3I8RmV0Y2hSZXNwb25zZSY+JiYpPjsKLSAgICBzdGF0aWMgdm9pZCBmZXRjaChTY3JpcHRF
eGVjdXRpb25Db250ZXh0JiwgRmV0Y2hSZXF1ZXN0JiwgTm90aWZpY2F0aW9uQ2FsbGJhY2smJik7
CisgICAgc3RhdGljIHZvaWQgZmV0Y2goU2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIEZldGNoUmVx
dWVzdCYsIE5vdGlmaWNhdGlvbkNhbGxiYWNrJiYsIGNvbnN0IFN0cmluZyYgaW5pdGlhdG9yKTsK
IAogICAgIHZvaWQgc3RhcnRDb25zdW1pbmdTdHJlYW0odW5zaWduZWQpOwogICAgIHZvaWQgY29u
c3VtZUNodW5rKFJlZjxKU0M6OlVpbnQ4QXJyYXk+JiYpOwpAQCAtMTI5LDcgKzEyOSw3IEBAIHBy
aXZhdGU6CiAgICAgICAgIEJvZHlMb2FkZXIoRmV0Y2hSZXNwb25zZSYsIE5vdGlmaWNhdGlvbkNh
bGxiYWNrJiYpOwogICAgICAgICB+Qm9keUxvYWRlcigpOwogCi0gICAgICAgIGJvb2wgc3RhcnQo
U2NyaXB0RXhlY3V0aW9uQ29udGV4dCYsIGNvbnN0IEZldGNoUmVxdWVzdCYpOworICAgICAgICBi
b29sIHN0YXJ0KFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmLCBjb25zdCBGZXRjaFJlcXVlc3QmLCBj
b25zdCBTdHJpbmcmIGluaXRpYXRvcik7CiAgICAgICAgIHZvaWQgc3RvcCgpOwogCiAgICAgICAg
IHZvaWQgY29uc3VtZURhdGFCeUNodW5rKENvbnN1bWVEYXRhQnlDaHVua0NhbGxiYWNrJiYpOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9XaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlRmV0Y2guY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9mZXRjaC9XaW5kb3dP
cldvcmtlckdsb2JhbFNjb3BlRmV0Y2guY3BwCmluZGV4IDljMWNkOGQwZmY3NWFlOWVkNDk0YzI2
NTk0ZTdjNzY3YzRkMjdiMWMuLjk5MDA5Y2JhNGI4MWQ2YTU1MDU3NGQ2OGEyY2Q4OTEwZTZhYmM0
MmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvZmV0Y2gvV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZUZldGNoLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2ZldGNo
L1dpbmRvd09yV29ya2VyR2xvYmFsU2NvcGVGZXRjaC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJXaW5kb3dPcldvcmtlckdsb2JhbFNjb3BlRmV0
Y2guaCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNp
bmNsdWRlICJET01XaW5kb3cuaCIKICNpbmNsdWRlICJEb2N1bWVudC5oIgogI2luY2x1ZGUgIkZl
dGNoUmVzcG9uc2UuaCIKQEAgLTYyLDcgKzYzLDcgQEAgdm9pZCBXaW5kb3dPcldvcmtlckdsb2Jh
bFNjb3BlRmV0Y2g6OmZldGNoKERPTVdpbmRvdyYgd2luZG93LCBGZXRjaFJlcXVlc3Q6OkluZm8K
IAogICAgICAgICBVc2VyR2VzdHVyZUluZGljYXRvciBnZXN0dXJlSW5kaWNhdG9yKHVzZXJHZXN0
dXJlVG9rZW4sIFVzZXJHZXN0dXJlVG9rZW46Okdlc3R1cmVTY29wZTo6TWVkaWFPbmx5LCBVc2Vy
R2VzdHVyZVRva2VuOjpJc1Byb3BhZ2F0ZWRGcm9tRmV0Y2g6Olllcyk7CiAgICAgICAgIHByb21p
c2Uuc2V0dGxlKFdURk1vdmUocmVzdWx0KSk7Ci0gICAgfSk7CisgICAgfSwgY2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycygpLmZldGNoKTsKIH0KIAogdm9pZCBXaW5kb3dPcldvcmtlckds
b2JhbFNjb3BlRmV0Y2g6OmZldGNoKFdvcmtlckdsb2JhbFNjb3BlJiBzY29wZSwgRmV0Y2hSZXF1
ZXN0OjpJbmZvJiYgaW5wdXQsIEZldGNoUmVxdWVzdDo6SW5pdCYmIGluaXQsIFJlZjxEZWZlcnJl
ZFByb21pc2U+JiYgZGVmZXJyZWQpCkBAIC03Nyw3ICs3OCw3IEBAIHZvaWQgV2luZG93T3JXb3Jr
ZXJHbG9iYWxTY29wZUZldGNoOjpmZXRjaChXb3JrZXJHbG9iYWxTY29wZSYgc2NvcGUsIEZldGNo
UmVxdWVzCiAKICAgICBGZXRjaFJlc3BvbnNlOjpmZXRjaChzY29wZSwgcmVxdWVzdC5yZWxlYXNl
UmV0dXJuVmFsdWUoKS5nZXQoKSwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShFeGNlcHRp
b25PcjxGZXRjaFJlc3BvbnNlJj4mJiByZXN1bHQpIG11dGFibGUgewogICAgICAgICBwcm9taXNl
LnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOwotICAgIH0pOworICAgIH0sIGNhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMoKS5mZXRjaCk7CiB9CiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL1NvdXJjZXMudHh0IGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKaW5kZXggNDdk
YWZiMzQwNGJiMmJmYjk0YTkzNzlhMWMzMTM1MThiYTUyYjEzNS4uZmU0OTVlMWZmMmM1ZGY0Mzk4
MmMyNWViN2Y2ZTViNjQxZjhlMTI2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvU291cmNl
cy50eHQKKysrIGIvU291cmNlL1dlYkNvcmUvU291cmNlcy50eHQKQEAgLTI3NDIsNiArMjc0Miw3
IEBAIHdvcmtlcnMvV29ya2VyVGhyZWFkLmNwcAogd29ya2Vycy9zZXJ2aWNlL0V4dGVuZGFibGVF
dmVudC5jcHAKIHdvcmtlcnMvc2VydmljZS9FeHRlbmRhYmxlTWVzc2FnZUV2ZW50LmNwcAogd29y
a2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCit3b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyLmNwcAogd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5jcHAK
IHdvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyLmNwcAogd29ya2Vycy9zZXJ2aWNlL1NlcnZp
Y2VXb3JrZXJDbGllbnQuY3BwCkBAIC0zNDc3LDYgKzM0NzgsOCBAQCBKU05hdmlnYXRvckdQVS5j
cHAKIEpTTm9kZS5jcHAKIEpTTm9kZUZpbHRlci5jcHAKIEpTQ3VzdG9tWFBhdGhOU1Jlc29sdmVy
LmNwcAorSlNOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwCitKU05hdmlnYXRpb25QcmVsb2Fk
U3RhdGUuY3BwCiBKU05vZGVJdGVyYXRvci5jcHAKIEpTTm9kZUxpc3QuY3BwCiBKU05vbkRvY3Vt
ZW50VHlwZUNoaWxkTm9kZS5jcHAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBiMTJlMDEyMzY1YmE3NDlmYjhiNjY5NGI1ZjFlZWRl
OTg5ZTQ0MjA4Li4xMWYxNzdmZjc2NDkyZGFmZTFlYTMyNDczZmJiNDQ4NWQ2ZmM3ZjY0IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC0xMTA0LDYgKzExMDQsNyBAQAogCQk0MTRCN0ZBRDI0RDgxQ0MxMDAzM0Q0NDIgLyogTWVkaWFS
ZWNvcmRlclByaXZhdGVPcHRpb25zLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA0MTRCN0ZBQjI0RDgxQzhGMDAzM0Q0NDIgLyogTWVkaWFSZWNvcmRlclBy
aXZhdGVPcHRpb25zLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsg
fTsgfTsKIAkJNDE0QjgyMDUxRDZERjBFNTAwNzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9uZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0QjgyMDMxRDZE
RjBEOTAwNzdFQkUzIC8qIFN0cnVjdHVyZWRDbG9uZS5oICovOyB9OwogCQk0MTRERURFNzFGOUZF
OTFFMDA0N0M0MEQgLyogRW1wdHlGcmFtZUxvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDE0REVERTUxRjlGRTkxNTAwNDdDNDBEIC8q
IEVtcHR5RnJhbWVMb2FkZXJDbGllbnQuaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQ
cml2YXRlLCApOyB9OyB9OworCQk0MTUwMzc5MzI3NEZEQzlCMDAzNTRBQkMgLyogTmF2aWdhdGlv
blByZWxvYWRTdGF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFMkYxOUIyNzRGQjBBNjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MTUw
NzE1ODE2ODUwNjczMDBDM0M3QjMgLyogU2VsZWN0b3JGaWx0ZXIuaCBpbiBIZWFkZXJzICovID0g
e2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxNTA3MTU2MTY4NTA2NzMwMEMzQzdCMyAv
KiBTZWxlY3RvckZpbHRlci5oICovOyB9OwogCQk0MTUwODAzNjFFM0YwMEFEMDA1MUQ3NUQgLyog
TGliV2ViUlRDQXVkaW9Nb2R1bGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNDE1MDgwMzQxRTNGMDBBQTAwNTFENzVEIC8qIExpYldlYlJUQ0F1ZGlv
TW9kdWxlLmNwcCAqLzsgfTsKIAkJNDE1MDgwMzcxRTNGMDBCMDAwNTFENzVEIC8qIExpYldlYlJU
Q0F1ZGlvTW9kdWxlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA0MTUwODAzNTFFM0YwMEFBMDA1MUQ3NUQgLyogTGliV2ViUlRDQXVkaW9Nb2R1bGUuaCAq
LzsgfTsKQEAgLTEyMTcsNiArMTIxOCw3IEBACiAJCTQxREVGQ0I2MUU1NkMxQkQwMDBEOUU1RiAv
KiBKU0RPTU1hcExpa2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDQxREVGQ0I0MUU1NkMxQjkwMDBEOUU1RiAvKiBKU0RPTU1hcExpa2UuaCAqLzsgfTsK
IAkJNDFFMTJFOUYyNEZFNzRFMjAwOTNGRkI0IC8qIFdlYlNvY2tldElkZW50aWZpZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDQxRTEyRTlEMjRGRTc0
RTIwMDkzRkZCNCAvKiBXZWJTb2NrZXRJZGVudGlmaWVyLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFMUIxRDEwRkY1OTg2OTAwNTc2QjNCIC8q
IEFic3RyYWN0V29ya2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSA0MUUxQjFDQjBGRjU5ODY5MDA1NzZCM0IgLyogQWJzdHJhY3RXb3JrZXIuaCAqLzsg
fTsKKwkJNDFFMkYxOTkyNzRGQUVDRjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNDFFMkYx
OTcyNzRGQUVDQjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5oICovOyB9Owog
CQk0MUU2N0E4MzI1RDE2ODQ3MDA3QjBBNEMgLyogU1RVTk1lc3NhZ2VQYXJzaW5nLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0MUU2N0E4MTI1RDE2ODQ3
MDA3QjBBNEMgLyogU1RVTk1lc3NhZ2VQYXJzaW5nLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVU
RVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNDFFNkQ3MUIyNkVBMUE0NjAwQjc2NUQ2IC8qIFJU
Q0Vycm9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA0
MUI3QzA0QjI2RTY5MTcxMDBEMzZDMDcgLyogUlRDRXJyb3IuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk0MUU5RENFNzIzMTk3NEJGMDBGMzU5NDkg
LyogQmxvYkxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNDFFOURDRTQyMzE5NzNGRTAwRjM1OTQ5IC8qIEJsb2JMb2FkZXIuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtODg1Nyw2ICs4ODU5LDEx
IEBACiAJCTQxRTFCMUNDMEZGNTk4NjkwMDU3NkIzQiAvKiBBYnN0cmFjdFdvcmtlci5pZGwgKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gQWJzdHJhY3RXb3JrZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQk0MUUxRjMzRDI0OEE2MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZm
ZXJDb21wcmVzc29yLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGlu
ZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0g
QXVkaW9TYW1wbGVCdWZmZXJDb21wcmVzc29yLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk0MUUxRjMzRjI0OEE2MkI2MDAyMkQ1REUgLyogQXVkaW9TYW1wbGVCdWZmZXJDb21wcmVz
c29yLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEF1ZGlvU2FtcGxlQnVmZmVy
Q29tcHJlc3Nvci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUyRjE5NTI3NEZB
RUNBMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIuaWRsOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk0MUUy
RjE5NzI3NEZBRUNCMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk0MUUyRjE5ODI3NEZBRUNCMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5j
cHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTQxRTJGMTlBMjc0RkIwQTUwMEEwODlF
RSAvKiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJl
bmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNDFFMkYxOUIyNzRGQjBBNjAw
QTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmF2aWdh
dGlvblByZWxvYWRTdGF0ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk0MUU0MDgz
ODFEQ0I3NDc5MDBFRkNFMTkgLyogUGVlckNvbm5lY3Rpb25CYWNrZW5kLmNwcCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFBlZXJDb25uZWN0aW9uQmFja2VuZC5jcHA7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTQxRTU5M0ZEMjE0ODY1QTkwMEQzQ0I2MSAvKiBS
VENQcmlvcml0eVR5cGUuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1ByaW9yaXR5VHlwZS5pZGw7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTQxRTU5M0ZGMjE0ODY1QUEwMEQzQ0I2MSAvKiBSVENSdHBFbmNv
ZGluZ1BhcmFtZXRlcnMuaWRsICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93
bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFJUQ1J0cEVuY29kaW5nUGFyYW1ldGVycy5pZGw7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMjExNyw2ICsyMjEyNCwxMSBAQAogCQkJCTQx
QUYzNzk0MUY4REE0OTUwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmNwcCAqLywKIAkJCQk0MUFGMzc4
ODFGOEMxRTc5MDAxMTFDMzEgLyogRmV0Y2hFdmVudC5oICovLAogCQkJCTQxQUYzNzhEMUY4QzFF
N0IwMDExMUMzMSAvKiBGZXRjaEV2ZW50LmlkbCAqLywKKwkJCQk0MUUyRjE5ODI3NEZBRUNCMDBB
MDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmNwcCAqLywKKwkJCQk0MUUyRjE5NzI3
NEZBRUNCMDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmggKi8sCisJCQkJNDFF
MkYxOTUyNzRGQUVDQTAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlci5pZGwgKi8s
CisJCQkJNDFFMkYxOUIyNzRGQjBBNjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUu
aCAqLywKKwkJCQk0MUUyRjE5QTI3NEZCMEE1MDBBMDg5RUUgLyogTmF2aWdhdGlvblByZWxvYWRT
dGF0ZS5pZGwgKi8sCiAJCQkJNTFGMTc1NUIxRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3Jr
ZXIuY3BwICovLAogCQkJCTUxRjE3NTVBMUYzRUJDMEMwMEM3NDk1MCAvKiBTZXJ2aWNlV29ya2Vy
LmggKi8sCiAJCQkJNTFGMTc1NTkxRjNFQkMwQzAwQzc0OTUwIC8qIFNlcnZpY2VXb3JrZXIuaWRs
ICovLApAQCAtMzU5MjgsNiArMzU5NDAsOCBAQAogCQkJCTgzQjJEMTc1MUI4QkNENkEwMEEwMkU0
NyAvKiBOYXRpdmVOb2RlRmlsdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMTBCOUI2QzBCNzQ3
NTk5MDAzRUQ4OTAgLyogTmF0aXZlWFBhdGhOU1Jlc29sdmVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5M0NDRjAyNzBBRjZDNTI5MDAwMThFODkgLyogTmF2aWdhdGlvbkFjdGlvbi5oIGluIEhlYWRl
cnMgKi8sCisJCQkJNDFFMkYxOTkyNzRGQUVDRjAwQTA4OUVFIC8qIE5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE1MDM3OTMyNzRGREM5QjAwMzU0QUJDIC8q
IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCBpbiBIZWFkZXJzICovLAogCQkJCTQ2OUQ3N0I4Mjcw
MTYyNTEwMDE0MkZBNiAvKiBOYXZpZ2F0aW9uUmVxdWVzdGVyLmggaW4gSGVhZGVycyAqLywKIAkJ
CQk5NzlGNDNENDEwNzVFNDRBMDAwMEY4M0IgLyogTmF2aWdhdGlvblNjaGVkdWxlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTlDNkU1QTYwRDc0NjQ1ODAwNjQ0MkU5IC8qIE5hdmlnYXRvci5oIGlu
IEhlYWRlcnMgKi8sCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9ET01Q
cm9taXNlUHJveHkuaCBiL1NvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVByb21pc2VQcm94
eS5oCmluZGV4IDgwMjQ5MDUzZDU4OTdiNjY2ZGFmNTA4MWU2MjMxNmM5OGY2YmQ4NGMuLjJiODcw
NmU3NmU0N2Q0NGJjZDU0MzYwNTk1YjUyZWYwZTBlZTgwYWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0RPTVByb21pc2VQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0RPTVByb21pc2VQcm94eS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgog
ICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0
aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhh
dCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTQ4LDExICs0OCwxMyBAQCBwdWJsaWM6CiAK
ICAgICBib29sIGlzRnVsZmlsbGVkKCkgY29uc3Q7CiAKLSAgICB2b2lkIHJlc29sdmUodHlwZW5h
bWUgSURMVHlwZTo6UGFyYW1ldGVyVHlwZSk7Ci0gICAgdm9pZCByZXNvbHZlV2l0aE5ld2x5Q3Jl
YXRlZCh0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlKTsKKyAgICB2b2lkIHJlc29sdmUo
dHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGUpOworICAgIHZvaWQgcmVzb2x2ZVdpdGhOZXds
eUNyZWF0ZWQodHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGUpOwogICAgIHZvaWQgcmVqZWN0
KEV4Y2VwdGlvbiwgUmVqZWN0QXNIYW5kbGVkID0gUmVqZWN0QXNIYW5kbGVkOjpObyk7CiAgICAg
CiBwcml2YXRlOgorICAgIEpTQzo6SlNWYWx1ZSByZXNvbHZlUHJvbWlzZShKU0M6OkpTR2xvYmFs
T2JqZWN0JiwgSlNET01HbG9iYWxPYmplY3QmLCBjb25zdCBGdW5jdGlvbjx2b2lkKERlZmVycmVk
UHJvbWlzZSYpPiYpOworCiAgICAgc3RkOjpvcHRpb25hbDxFeGNlcHRpb25PcjxWYWx1ZT4+IG1f
dmFsdWVPckV4Y2VwdGlvbjsKICAgICBWZWN0b3I8UmVmPERlZmVycmVkUHJvbWlzZT4sIDE+IG1f
ZGVmZXJyZWRQcm9taXNlczsKIH07CkBAIC0xMDksMTEgKzExMSwxMCBAQCBwcml2YXRlOgogICAg
IFZlY3RvcjxSZWY8RGVmZXJyZWRQcm9taXNlPiwgMT4gbV9kZWZlcnJlZFByb21pc2VzOwogfTsK
IAotCiAvLyBNQVJLOiAtIERPTVByb21pc2VQcm94eTxJRExUeXBlPiBnZW5lcmljIGltcGxlbWVu
dGF0aW9uCiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+Ci1pbmxpbmUgSlNDOjpKU1ZhbHVl
IERPTVByb21pc2VQcm94eTxJRExUeXBlPjo6cHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoraW5s
aW5lIEpTQzo6SlNWYWx1ZSBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OnJlc29sdmVQcm9taXNl
KEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTRE9NR2xvYmFsT2Jq
ZWN0JiBnbG9iYWxPYmplY3QsIGNvbnN0IEZ1bmN0aW9uPHZvaWQoRGVmZXJyZWRQcm9taXNlJik+
JiByZXNvbHZlUHJvbWlzZUNhbGxiYWNrKQogewogICAgIFVOVVNFRF9QQVJBTShsZXhpY2FsR2xv
YmFsT2JqZWN0KTsKICAgICBmb3IgKGF1dG8mIGRlZmVycmVkUHJvbWlzZSA6IG1fZGVmZXJyZWRQ
cm9taXNlcykgewpAQCAtMTMwLDcgKzEzMSw3IEBAIGlubGluZSBKU0M6OkpTVmFsdWUgRE9NUHJv
bWlzZVByb3h5PElETFR5cGU+Ojpwcm9taXNlKEpTQzo6SlNHbG9iYWxPYmplY3QmIGxleGljCiAg
ICAgICAgIGlmIChtX3ZhbHVlT3JFeGNlcHRpb24tPmhhc0V4Y2VwdGlvbigpKQogICAgICAgICAg
ICAgZGVmZXJyZWRQcm9taXNlLT5yZWplY3QobV92YWx1ZU9yRXhjZXB0aW9uLT5leGNlcHRpb24o
KSk7CiAgICAgICAgIGVsc2UKLSAgICAgICAgICAgIGRlZmVycmVkUHJvbWlzZS0+dGVtcGxhdGUg
cmVzb2x2ZTxJRExUeXBlPihtX3ZhbHVlT3JFeGNlcHRpb24tPnJldHVyblZhbHVlKCkpOworICAg
ICAgICAgICAgcmVzb2x2ZVByb21pc2VDYWxsYmFjaygqZGVmZXJyZWRQcm9taXNlKTsKICAgICB9
CiAKICAgICBhdXRvIHJlc3VsdCA9IGRlZmVycmVkUHJvbWlzZS0+cHJvbWlzZSgpOwpAQCAtMTM4
LDYgKzEzOSwyMiBAQCBpbmxpbmUgSlNDOjpKU1ZhbHVlIERPTVByb21pc2VQcm94eTxJRExUeXBl
Pjo6cHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpYwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKK3RlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+CitpbmxpbmUgSlNDOjpKU1ZhbHVlIERP
TVByb21pc2VQcm94eTxJRExUeXBlPjo6cHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAg
IHJldHVybiByZXNvbHZlUHJvbWlzZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qs
IFt0aGlzXShhdXRvJiBkZWZlcnJlZFByb21pc2UpIHsKKyAgICAgICAgZGVmZXJyZWRQcm9taXNl
LnRlbXBsYXRlIHJlc29sdmU8SURMVHlwZT4obV92YWx1ZU9yRXhjZXB0aW9uLT5yZXR1cm5WYWx1
ZSgpKTsKKyAgICB9KTsKK30KKwordGVtcGxhdGU8PgoraW5saW5lIEpTQzo6SlNWYWx1ZSBET01Q
cm9taXNlUHJveHk8SURMQW55Pjo6cHJvbWlzZShKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQoreworICAgIHJl
dHVybiByZXNvbHZlUHJvbWlzZShsZXhpY2FsR2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3QsIFt0
aGlzXShhdXRvJiBkZWZlcnJlZFByb21pc2UpIHsKKyAgICAgICAgZGVmZXJyZWRQcm9taXNlLnJl
c29sdmVXaXRoSlNWYWx1ZShtX3ZhbHVlT3JFeGNlcHRpb24tPnJldHVyblZhbHVlKCkuZ2V0KCkp
OworICAgIH0pOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPgogaW5saW5lIHZvaWQg
RE9NUHJvbWlzZVByb3h5PElETFR5cGU+OjpjbGVhcigpCiB7CkBAIC0xNTIsMjEgKzE2OSwzMSBA
QCBpbmxpbmUgYm9vbCBET01Qcm9taXNlUHJveHk8SURMVHlwZT46OmlzRnVsZmlsbGVkKCkgY29u
c3QKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4KLWlubGluZSB2b2lkIERPTVByb21p
c2VQcm94eTxJRExUeXBlPjo6cmVzb2x2ZSh0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBl
IHZhbHVlKQoraW5saW5lIHZvaWQgRE9NUHJvbWlzZVByb3h5PElETFR5cGU+OjpyZXNvbHZlKHR5
cGVuYW1lIElETFR5cGU6OlN0b3JhZ2VUeXBlIHZhbHVlKQogewogICAgIEFTU0VSVCghbV92YWx1
ZU9yRXhjZXB0aW9uKTsKIAotICAgIG1fdmFsdWVPckV4Y2VwdGlvbiA9IEV4Y2VwdGlvbk9yPFZh
bHVlPiB7IHN0ZDo6Zm9yd2FyZDx0eXBlbmFtZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPih2YWx1
ZSkgfTsKKyAgICBtX3ZhbHVlT3JFeGNlcHRpb24gPSBFeGNlcHRpb25PcjxWYWx1ZT4geyBzdGQ6
OmZvcndhcmQ8dHlwZW5hbWUgSURMVHlwZTo6U3RvcmFnZVR5cGU+KHZhbHVlKSB9OwogICAgIGZv
ciAoYXV0byYgZGVmZXJyZWRQcm9taXNlIDogbV9kZWZlcnJlZFByb21pc2VzKQogICAgICAgICBk
ZWZlcnJlZFByb21pc2UtPnRlbXBsYXRlIHJlc29sdmU8SURMVHlwZT4obV92YWx1ZU9yRXhjZXB0
aW9uLT5yZXR1cm5WYWx1ZSgpKTsKIH0KIAordGVtcGxhdGU8PgoraW5saW5lIHZvaWQgRE9NUHJv
bWlzZVByb3h5PElETEFueT46OnJlc29sdmUodHlwZW5hbWUgSURMQW55OjpTdG9yYWdlVHlwZSB2
YWx1ZSkKK3sKKyAgICBBU1NFUlQoIW1fdmFsdWVPckV4Y2VwdGlvbik7CisKKyAgICBtX3ZhbHVl
T3JFeGNlcHRpb24gPSBFeGNlcHRpb25PcjxWYWx1ZT4geyBzdGQ6OmZvcndhcmQ8dHlwZW5hbWUg
SURMQW55OjpTdG9yYWdlVHlwZT4odmFsdWUpIH07CisgICAgZm9yIChhdXRvJiBkZWZlcnJlZFBy
b21pc2UgOiBtX2RlZmVycmVkUHJvbWlzZXMpCisgICAgICAgIGRlZmVycmVkUHJvbWlzZS0+cmVz
b2x2ZVdpdGhKU1ZhbHVlKG1fdmFsdWVPckV4Y2VwdGlvbi0+cmV0dXJuVmFsdWUoKS5nZXQoKSk7
Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+Ci1pbmxpbmUgdm9pZCBET01Qcm9taXNl
UHJveHk8SURMVHlwZT46OnJlc29sdmVXaXRoTmV3bHlDcmVhdGVkKHR5cGVuYW1lIElETFR5cGU6
OlBhcmFtZXRlclR5cGUgdmFsdWUpCitpbmxpbmUgdm9pZCBET01Qcm9taXNlUHJveHk8SURMVHlw
ZT46OnJlc29sdmVXaXRoTmV3bHlDcmVhdGVkKHR5cGVuYW1lIElETFR5cGU6OlN0b3JhZ2VUeXBl
IHZhbHVlKQogewogICAgIEFTU0VSVCghbV92YWx1ZU9yRXhjZXB0aW9uKTsKIAotICAgIG1fdmFs
dWVPckV4Y2VwdGlvbiA9IEV4Y2VwdGlvbk9yPFZhbHVlPiB7IHN0ZDo6Zm9yd2FyZDx0eXBlbmFt
ZSBJRExUeXBlOjpQYXJhbWV0ZXJUeXBlPih2YWx1ZSkgfTsKKyAgICBtX3ZhbHVlT3JFeGNlcHRp
b24gPSBFeGNlcHRpb25PcjxWYWx1ZT4geyBzdGQ6OmZvcndhcmQ8dHlwZW5hbWUgSURMVHlwZTo6
U3RvcmFnZVR5cGU+KHZhbHVlKSB9OwogICAgIGZvciAoYXV0byYgZGVmZXJyZWRQcm9taXNlIDog
bV9kZWZlcnJlZFByb21pc2VzKQogICAgICAgICBkZWZlcnJlZFByb21pc2UtPnRlbXBsYXRlIHJl
c29sdmVXaXRoTmV3bHlDcmVhdGVkPElETFR5cGU+KG1fdmFsdWVPckV4Y2VwdGlvbi0+cmV0dXJu
VmFsdWUoKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJD
b3JlQnVpbHRpbk5hbWVzLmggYi9Tb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9XZWJDb3JlQnVp
bHRpbk5hbWVzLmgKaW5kZXggZWI0MzU0NWQ5YjUwMTgxMGNiMWRiMmJkZmYwNWY0YzZmYzE0MzJk
Yy4uZjE5YTA4OGJkM2M0YWQxYjE1NTFhOTE3OGZmNzIwNTUzYjUzNGViYyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvV2ViQ29yZUJ1aWx0aW5OYW1lcy5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL1dlYkNvcmVCdWlsdGluTmFtZXMuaApAQCAtMjE3LDYg
KzIxNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICBtYWNybyhNZWRpYVN0cmVhbVRyYWNr
KSBcCiAgICAgbWFjcm8oTWVyY2hhbnRWYWxpZGF0aW9uRXZlbnQpIFwKICAgICBtYWNybyhNb2Nr
UlRDUnRwVHJhbnNmb3JtKSBcCisgICAgbWFjcm8oTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyKSBc
CiAgICAgbWFjcm8oTmF2aWdhdG9yQ3JlZGVudGlhbHMpIFwKICAgICBtYWNybyhOYXZpZ2F0b3JN
ZWRpYURldmljZXMpIFwKICAgICBtYWNybyhOYXZpZ2F0b3JQZXJtaXNzaW9ucykgXApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZS5jcHAKaW5kZXggOGI4M2U1
MzMxOTBhNzc2YmE4ZjQwYzI4MzE1OGNkYjc2MWFlOTcwMi4uM2FlOGJiNjhkMjVjZGRkMTgwMjA5
MjJmNWVkYjI0ZDRiOTEyMDAwMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkUmVzb3VyY2UuY3BwCkBAIC00NTUsOSArNDU1LDE2IEBAIHZvaWQgQ2FjaGVkUmVzb3Vy
Y2U6OnJlZGlyZWN0UmVjZWl2ZWQoUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgY29uc3QgUmVz
b3VyY2VSCiAgICAgY29tcGxldGlvbkhhbmRsZXIoV1RGTW92ZShyZXF1ZXN0KSk7CiB9CiAKKyNp
ZiBBU1NFUlRfRU5BQkxFRAorc3RhdGljIGJvb2wgaXNPcGFxdWVSZWRpcmVjdFJlc3BvbnNlV2l0
aG91dExvY2F0aW9uSGVhZGVyKGNvbnN0IFJlc291cmNlUmVzcG9uc2UmIHJlc3BvbnNlKQorewor
ICAgIHJldHVybiByZXNwb25zZS50eXBlKCkgPT0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6T3Bh
cXVlcmVkaXJlY3QgJiYgcmVzcG9uc2UuaXNSZWRpcmVjdGlvbigpICYmIHJlc3BvbnNlLmh0dHBI
ZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6TG9jYXRpb24pLmlzTnVsbCgpOworfQorI2VuZGlm
CisKIHZvaWQgQ2FjaGVkUmVzb3VyY2U6OnNldFJlc3BvbnNlKGNvbnN0IFJlc291cmNlUmVzcG9u
c2UmIHJlc3BvbnNlKQogewotICAgIEFTU0VSVChtX3Jlc3BvbnNlLnR5cGUoKSA9PSBSZXNvdXJj
ZVJlc3BvbnNlOjpUeXBlOjpEZWZhdWx0KTsKKyAgICBBU1NFUlQobV9yZXNwb25zZS50eXBlKCkg
PT0gUmVzb3VyY2VSZXNwb25zZTo6VHlwZTo6RGVmYXVsdCB8fCBpc09wYXF1ZVJlZGlyZWN0UmVz
cG9uc2VXaXRob3V0TG9jYXRpb25IZWFkZXIobV9yZXNwb25zZSkpOwogICAgIG1fcmVzcG9uc2Ug
PSByZXNwb25zZTsKICAgICBtX3ZhcnlpbmdIZWFkZXJWYWx1ZXMgPSBjb2xsZWN0VmFyeWluZ1Jl
cXVlc3RIZWFkZXJzKGNvb2tpZUphcigpLCBtX3Jlc291cmNlUmVxdWVzdCwgbV9yZXNwb25zZSk7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJj
ZVJlcXVlc3RJbml0aWF0b3JzLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNo
ZWRSZXNvdXJjZVJlcXVlc3RJbml0aWF0b3JzLmNwcAppbmRleCAxM2Y1YjQ2ZGY5MzcyMjM3OWU4
Yzk4OTliMDNiNmEyMWY5ZGY2NTI3Li41Yzk0YjYwMzc3NWE1ZWY2MTJmZmMzM2NhZGEzMGZjZjYw
ZTc5OWMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVz
b3VyY2VSZXF1ZXN0SW5pdGlhdG9ycy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2Nh
Y2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuY3BwCkBAIC0zMyw2ICszMyw3IEBA
IENhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnM6OkNhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMoKQogICAgICwgZXZlbnRzb3VyY2UoImV2ZW50c291cmNlIiwgQXRvbVN0cmluZzo6
Q29uc3RydWN0RnJvbUxpdGVyYWwpCiAgICAgLCBmZXRjaCgiZmV0Y2giLCBBdG9tU3RyaW5nOjpD
b25zdHJ1Y3RGcm9tTGl0ZXJhbCkKICAgICAsIGljb24oImljb24iLCBBdG9tU3RyaW5nOjpDb25z
dHJ1Y3RGcm9tTGl0ZXJhbCkKKyAgICAsIG5hdmlnYXRpb24oIm5hdmlnYXRpb24iLCBBdG9tU3Ry
aW5nOjpDb25zdHJ1Y3RGcm9tTGl0ZXJhbCkKICAgICAsIHhtbGh0dHByZXF1ZXN0KCJ4bWxodHRw
cmVxdWVzdCIsIEF0b21TdHJpbmc6OkNvbnN0cnVjdEZyb21MaXRlcmFsKQogewogfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRSZXNvdXJjZVJl
cXVlc3RJbml0aWF0b3JzLmgKaW5kZXggMDY0YTgzMWZiOWNkNjc1NjdmZWM1ZTIzNzI2NDg1MGI5
NjkyNGVmMy4uODAwYzliMzIxYmViOTBlOTQ1NDdiNzgxZjI4NzkyY2EzYjY4OTJlMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFJlc291cmNlUmVxdWVzdElu
aXRpYXRvcnMuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkUmVzb3Vy
Y2VSZXF1ZXN0SW5pdGlhdG9ycy5oCkBAIC0zNyw2ICszNyw3IEBAIHN0cnVjdCBDYWNoZWRSZXNv
dXJjZVJlcXVlc3RJbml0aWF0b3JzIHsKICAgICBjb25zdCBBdG9tU3RyaW5nIGV2ZW50c291cmNl
OwogICAgIGNvbnN0IEF0b21TdHJpbmcgZmV0Y2g7CiAgICAgY29uc3QgQXRvbVN0cmluZyBpY29u
OworICAgIGNvbnN0IEF0b21TdHJpbmcgbmF2aWdhdGlvbjsKICAgICBjb25zdCBBdG9tU3RyaW5n
IHhtbGh0dHByZXF1ZXN0OwogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKENhY2hlZFJlc291cmNl
UmVxdWVzdEluaXRpYXRvcnMpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHByaXZhdGU6CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0hUVFBIZWFkZXJOYW1l
cy5pbiBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVzLmlu
CmluZGV4IDM4YzFmMWZkNTk3MTYzZjk0MzYzYzVmNGEyMGQ2N2E4NWY1MmE4NjUuLmNkNjk5OTNl
OGU5MmZhOTFlZjhhNWQ4OGRhZGJlYWE3YjdjNDBkMTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVzLmluCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL25ldHdvcmsvSFRUUEhlYWRlck5hbWVzLmluCkBAIC05Miw2ICs5Miw3IEBA
IFNlYy1XZWJTb2NrZXQtVmVyc2lvbgogU2VydmVyLVRpbWluZwogU2VydmljZS1Xb3JrZXIKIFNl
cnZpY2UtV29ya2VyLUFsbG93ZWQKK1NlcnZpY2UtV29ya2VyLU5hdmlnYXRpb24tUHJlbG9hZAog
U2V0LUNvb2tpZQogU2V0LUNvb2tpZTIKIFNvdXJjZU1hcApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuY3BwCmluZGV4IGFmY2Q2ZTljZDA1NGRlY2E0YjY1YWFj
YzRjM2NjNGM4N2YyOTQ1NjYuLjZjZjQ2OTlmNzEzYmJmOGRlMDQ4OGVmNTIzZDAyZTQ3NTRiYjUy
MmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5jcHAK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAxNy0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNv
dXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAt
MjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZldGNoRXZlbnQu
aCIKIAorI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlUmVxdWVzdEluaXRpYXRvcnMuaCIKICNpbmNs
dWRlICJKU0RPTVByb21pc2UuaCIKICNpbmNsdWRlICJKU0ZldGNoUmVzcG9uc2UuaCIKICNpbmNs
dWRlICJMb2dnaW5nLmgiCkBAIC0xMzcsNiArMTM4LDQ0IEBAIHZvaWQgRmV0Y2hFdmVudDo6cHJv
bWlzZUlzU2V0dGxlZCgpCiAgICAgcHJvY2Vzc1Jlc3BvbnNlKFJlZiB7ICpyZXNwb25zZSB9KTsK
IH0KIAorRmV0Y2hFdmVudDo6UHJlbG9hZFJlc3BvbnNlUHJvbWlzZSYgRmV0Y2hFdmVudDo6cHJl
bG9hZFJlc3BvbnNlKFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQmIGNvbnRleHQpCit7CisgICAgaWYg
KCFtX3ByZWxvYWRSZXNwb25zZVByb21pc2UpIHsKKyAgICAgICAgbV9wcmVsb2FkUmVzcG9uc2VQ
cm9taXNlID0gbWFrZVVuaXF1ZTxQcmVsb2FkUmVzcG9uc2VQcm9taXNlPigpOworICAgICAgICBp
ZiAoIW1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKSB7CisgICAgICAgICAgICBhdXRvKiBn
bG9iYWxPYmplY3QgPSBjb250ZXh0Lmdsb2JhbE9iamVjdCgpOworICAgICAgICAgICAgaWYgKGds
b2JhbE9iamVjdCkgeworICAgICAgICAgICAgICAgIEpTQzo6U3Ryb25nPEpTQzo6VW5rbm93bj4g
dmFsdWUgeyBnbG9iYWxPYmplY3QtPnZtKCksIEpTQzo6anNVbmRlZmluZWQoKSB9OworICAgICAg
ICAgICAgICAgIG1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZS0+cmVzb2x2ZSh2YWx1ZSk7CisgICAg
ICAgICAgICB9CisgICAgICAgICAgICByZXR1cm4gKm1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZTsK
KyAgICAgICAgfQorCisgICAgICAgIGF1dG8gcmVxdWVzdCA9IEZldGNoUmVxdWVzdDo6Y3JlYXRl
KGNvbnRleHQsIHsgfSwgRmV0Y2hIZWFkZXJzOjpjcmVhdGUoKSwgUmVzb3VyY2VSZXF1ZXN0IHsg
bV9yZXF1ZXN0LT5pbnRlcm5hbFJlcXVlc3QoKSB9ICwgRmV0Y2hPcHRpb25zIHsgbV9yZXF1ZXN0
LT5mZXRjaE9wdGlvbnMoKSB9LCBTdHJpbmcgeyBtX3JlcXVlc3QtPmludGVybmFsUmVxdWVzdFJl
ZmVycmVyKCkgfSk7CisgICAgICAgIHJlcXVlc3QtPnNldE5hdmlnYXRpb25QcmVsb2FkSWRlbnRp
ZmllcihtX25hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmllcik7CisgICAgICAgIEZldGNoUmVzcG9u
c2U6OmZldGNoKGNvbnRleHQsIHJlcXVlc3QuZ2V0KCksIFtwcm90ZWN0ZWRUaGlzID0gUmVmIHsg
KnRoaXMgfV0oYXV0byYmIHJlc3VsdCkgeworICAgICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNl
cHRpb24oKSkgeworICAgICAgICAgICAgICAgIHByb3RlY3RlZFRoaXMtPm1fcHJlbG9hZFJlc3Bv
bnNlUHJvbWlzZS0+cmVqZWN0KHJlc3VsdC5yZWxlYXNlRXhjZXB0aW9uKCkpOworICAgICAgICAg
ICAgICAgIHJldHVybjsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgUmVmIHJlc3BvbnNl
ID0gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOworICAgICAgICAgICAgYXV0byogY29udGV4
dCA9IHJlc3BvbnNlLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCk7CisgICAgICAgICAgICBpZiAo
IWNvbnRleHQpCisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgYXV0byogZ2xv
YmFsT2JqZWN0ID0gY29udGV4dC0+Z2xvYmFsT2JqZWN0KCk7CisgICAgICAgICAgICBpZiAoIWds
b2JhbE9iamVjdCkKKyAgICAgICAgICAgICAgICByZXR1cm47CisKKyAgICAgICAgICAgIGF1dG8m
IHZtID0gZ2xvYmFsT2JqZWN0LT52bSgpOworICAgICAgICAgICAgSlNDOjpKU0xvY2tIb2xkZXIg
bG9jayh2bSk7CisgICAgICAgICAgICBKU0M6OlN0cm9uZzxKU0M6OlVua25vd24+IHZhbHVlIHsg
dm0sIHRvSlMoZ2xvYmFsT2JqZWN0LCBKU0M6OmpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGds
b2JhbE9iamVjdCksIHJlc3BvbnNlLmdldCgpKSB9OworICAgICAgICAgICAgcHJvdGVjdGVkVGhp
cy0+bV9wcmVsb2FkUmVzcG9uc2VQcm9taXNlLT5yZXNvbHZlKHZhbHVlKTsKKyAgICAgICAgfSwg
Y2FjaGVkUmVzb3VyY2VSZXF1ZXN0SW5pdGlhdG9ycygpLm5hdmlnYXRpb24pOworICAgIH0KKyAg
ICByZXR1cm4gKm1fcHJlbG9hZFJlc3BvbnNlUHJvbWlzZTsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaCBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9GZXRjaEV2ZW50LmgKaW5kZXggNzQ1MGZmYzBhZTU4MzhlMTlk
MGE5YTU3MDUwZWQ4MzlmN2ExNTZiZi4uOGY3YWFmNTdiNGZiMzIyMjVmMzgzNzVkM2NkMDlmZjcw
YTY0ZDJmNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNo
RXZlbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hFdmVudC5o
CkBAIC0yNyw2ICsyNyw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNs
dWRlICJET01Qcm9taXNlUHJveHkuaCIKICNpbmNsdWRlICJFeHRlbmRhYmxlRXZlbnQuaCIKICNp
bmNsdWRlICJGZXRjaFJlcXVlc3QuaCIKICNpbmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIu
aD4KQEAgLTcxLDYgKzcyLDExIEBAIHB1YmxpYzoKIAogICAgIHN0YXRpYyBSZXNvdXJjZUVycm9y
IGNyZWF0ZVJlc3BvbnNlRXJyb3IoY29uc3QgVVJMJiwgY29uc3QgU3RyaW5nJiwgUmVzb3VyY2VF
cnJvcjo6SXNTYW5pdGl6ZWQgPSBSZXNvdXJjZUVycm9yOjpJc1Nhbml0aXplZDo6Tm8pOwogCisg
ICAgdXNpbmcgUHJlbG9hZFJlc3BvbnNlUHJvbWlzZSA9IERPTVByb21pc2VQcm94eTxJRExBbnk+
OworICAgIFByZWxvYWRSZXNwb25zZVByb21pc2UmIHByZWxvYWRSZXNwb25zZShTY3JpcHRFeGVj
dXRpb25Db250ZXh0Jik7CisKKyAgICB2b2lkIHNldE5hdmlnYXRpb25QcmVsb2FkSWRlbnRpZmll
cihGZXRjaElkZW50aWZpZXIpOworCiBwcml2YXRlOgogICAgIFdFQkNPUkVfRVhQT1JUIEZldGNo
RXZlbnQoY29uc3QgQXRvbVN0cmluZyYsIEluaXQmJiwgSXNUcnVzdGVkKTsKIApAQCAtODksOCAr
OTUsMTggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8RE9NUHJvbWlzZT4gbV9yZXNwb25kUHJvbWlz
ZTsKIAogICAgIFJlc3BvbnNlQ2FsbGJhY2sgbV9vblJlc3BvbnNlOworCisgICAgRmV0Y2hJZGVu
dGlmaWVyIG1fbmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyOworICAgIHN0ZDo6dW5pcXVlX3B0
cjxQcmVsb2FkUmVzcG9uc2VQcm9taXNlPiBtX3ByZWxvYWRSZXNwb25zZVByb21pc2U7CiB9Owog
CitpbmxpbmUgdm9pZCBGZXRjaEV2ZW50OjpzZXROYXZpZ2F0aW9uUHJlbG9hZElkZW50aWZpZXIo
RmV0Y2hJZGVudGlmaWVyIGlkZW50aWZpZXIpCit7CisgICAgQVNTRVJUKCFtX25hdmlnYXRpb25Q
cmVsb2FkSWRlbnRpZmllcik7CisgICAgQVNTRVJUKGlkZW50aWZpZXIpOworICAgIG1fbmF2aWdh
dGlvblByZWxvYWRJZGVudGlmaWVyID0gaWRlbnRpZmllcjsKK30KKwogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsIGIvU291cmNlL1dl
YkNvcmUvd29ya2Vycy9zZXJ2aWNlL0ZldGNoRXZlbnQuaWRsCmluZGV4IGFlY2JlYWRiNDg3YmQ0
OGYwY2IzM2Y5M2Q4ZDlkMzIzMGMwMzJjMWIuLjk3Mzc1OTA2ZGYwZjRjMGVhMTU4Y2FkNjk3Yzk0
NmIzZmI3ZWYyZTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9G
ZXRjaEV2ZW50LmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvRmV0Y2hF
dmVudC5pZGwKQEAgLTMyLDggKzMyLDggQEAKICAgICBKU0dlbmVyYXRlVG9OYXRpdmVPYmplY3QK
IF0gaW50ZXJmYWNlIEZldGNoRXZlbnQgOiBFeHRlbmRhYmxlRXZlbnQgewogICAgIGNvbnN0cnVj
dG9yKERPTVN0cmluZyB0eXBlLCBGZXRjaEV2ZW50SW5pdCBldmVudEluaXREaWN0KTsKLQogICAg
IFtTYW1lT2JqZWN0XSByZWFkb25seSBhdHRyaWJ1dGUgRmV0Y2hSZXF1ZXN0IHJlcXVlc3Q7Cisg
ICAgW0NhbGxXaXRoPVNjcmlwdEV4ZWN1dGlvbkNvbnRleHQsIEVuYWJsZWRCeVNldHRpbmc9U2Vy
dmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0gcmVhZG9ubHkgYXR0cmlidXRlIFBy
b21pc2U8YW55PiBwcmVsb2FkUmVzcG9uc2U7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0
cmluZyBjbGllbnRJZDsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgRE9NU3RyaW5nIHJlc2VydmVk
Q2xpZW50SWQ7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIERPTVN0cmluZyB0YXJnZXRDbGllbnRJ
ZDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05hdmln
YXRpb25QcmVsb2FkTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOTE0Y2E5YTAxZGUwYjRiNTMwYTk1
OTA1ZDk1NzNhZjIwODMzZjNmZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIuY3BwCkBAIC0wLDAgKzEsNTgg
QEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkg
Zm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHBy
b3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4g
UmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlz
dCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUg
SU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBP
UiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICog
VEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9S
IEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hB
TEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBE
SVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBD
T05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9D
VVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0Us
IERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIg
Q0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09O
VFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9S
IE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElT
IFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNI
IERBTUFHRS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyLmgiCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3ZvaWQgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyOjplbmFibGUoUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgbV9yZWdpc3Ry
YXRpb24uY29udGFpbmVyKCkuZW5hYmxlTmF2aWdhdGlvblByZWxvYWQobV9yZWdpc3RyYXRpb24u
aWRlbnRpZmllcigpLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXI6OmRpc2FibGUoUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgbV9yZWdpc3Ry
YXRpb24uY29udGFpbmVyKCkuZGlzYWJsZU5hdmlnYXRpb25QcmVsb2FkKG1fcmVnaXN0cmF0aW9u
LmlkZW50aWZpZXIoKSwgV1RGTW92ZShwcm9taXNlKSk7Cit9CisKK3ZvaWQgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyOjpzZXRIZWFkZXJWYWx1ZShTdHJpbmcmJiB2YWx1ZSwgUHJvbWlzZSYmIHBy
b21pc2UpCit7CisgICAgbV9yZWdpc3RyYXRpb24uY29udGFpbmVyKCkuc2V0TmF2aWdhdGlvblBy
ZWxvYWRIZWFkZXJWYWx1ZShtX3JlZ2lzdHJhdGlvbi5pZGVudGlmaWVyKCksIFdURk1vdmUodmFs
dWUpLCBXVEZNb3ZlKHByb21pc2UpKTsKK30KKwordm9pZCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFn
ZXI6OmdldFN0YXRlKFN0YXRlUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgbV9yZWdpc3RyYXRp
b24uY29udGFpbmVyKCkuZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShtX3JlZ2lzdHJhdGlvbi5p
ZGVudGlmaWVyKCksIFdURk1vdmUocHJvbWlzZSkpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmggYi9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmgK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZThjZjY5OTRiYmY0MjI0ODQ0OGU1MzQ3MzVjMzRjMWEyM2M0ZTljYQotLS0g
L2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9u
UHJlbG9hZE1hbmFnZXIuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBv
bmNlCisKKyNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCisKKyNpbmNsdWRlICJOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlLmgiCisjaW5jbHVkZSAiU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5oIgor
CituYW1lc3BhY2UgV2ViQ29yZSB7CisKK2NsYXNzIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciB7
CisgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CitwdWJsaWM6CisgICAgZnJpZW5kIGNsYXNz
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb247CisKKyAgICB1c2luZyBQcm9taXNlID0gRE9NUHJv
bWlzZURlZmVycmVkPHZvaWQ+OworICAgIHZvaWQgZW5hYmxlKFByb21pc2UmJik7CisgICAgdm9p
ZCBkaXNhYmxlKFByb21pc2UmJik7CisgICAgdm9pZCBzZXRIZWFkZXJWYWx1ZShTdHJpbmcmJiwg
UHJvbWlzZSYmKTsKKworICAgIHVzaW5nIFN0YXRlUHJvbWlzZSA9IERPTVByb21pc2VEZWZlcnJl
ZDxJRExEaWN0aW9uYXJ5PE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+PjsKKyAgICB2b2lkIGdldFN0
YXRlKFN0YXRlUHJvbWlzZSYmKTsKKworICAgIHZvaWQgcmVmKCkgeyBtX3JlZ2lzdHJhdGlvbi5y
ZWYoKTsgfQorICAgIHZvaWQgZGVyZWYoKSB7IG1fcmVnaXN0cmF0aW9uLmRlcmVmKCk7IH0KKwor
cHJpdmF0ZToKKyAgICBleHBsaWNpdCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIoU2VydmljZVdv
cmtlclJlZ2lzdHJhdGlvbiYpOworCisgICAgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiYgbV9y
ZWdpc3RyYXRpb247Cit9OworCitpbmxpbmUgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyOjpOYXZp
Z2F0aW9uUHJlbG9hZE1hbmFnZXIoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiYgcmVnaXN0cmF0
aW9uKQorICAgIDogbV9yZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uKQoreworfQorCit9IC8vIG5h
bWVzcGFjZSBXZWJDb3JlCisKKyNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyLmlkbCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg5MzlmODU4MTcwMzFiNjIwODg1ZDQxM2NlMTMy
NTY3NDE0MTdiMzYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyLmlkbApAQCAtMCwwICsxLDM2IEBACisvKgor
KiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorKgor
KiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRo
IG9yIHdpdGhvdXQKKyogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisqIGFyZSBtZXQ6CisqIDEuIFJlZGlzdHJpYnV0aW9u
cyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorKiAgICBkb2N1bWVudGF0aW9uIGFu
ZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorKgor
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklC
VVRPUlMgYGBBUyBJUycnCisqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorKiBUSEUgSU1QTElFRCBXQVJSQU5USUVT
IE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENP
TlRSSUJVVE9SUworKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVO
VEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5D
TFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorKiBBUklTSU5HIElOIEFO
WSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9G
CisqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyovCisKK1sKKyAgICBDb25kaXRp
b25hbD1TRVJWSUNFX1dPUktFUiwKKyAgICBFbmFibGVkQnlTZXR0aW5nPVNlcnZpY2VXb3JrZXJO
YXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQsCisgICAgRXhwb3NlZD0oV2luZG93LFdvcmtlciksCisg
ICAgU2tpcFZUYWJsZVZhbGlkYXRpb24sCitdIGludGVyZmFjZSBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIgeworICAgIFByb21pc2U8dW5kZWZpbmVkPiBlbmFibGUoKTsKKyAgICBQcm9taXNlPHVu
ZGVmaW5lZD4gZGlzYWJsZSgpOworICAgIFByb21pc2U8dW5kZWZpbmVkPiBzZXRIZWFkZXJWYWx1
ZShCeXRlU3RyaW5nIHZhbHVlKTsKKyAgICBQcm9taXNlPE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+
IGdldFN0YXRlKCk7Cit9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYzM4ZWQ1ZTI3OTdmNTVk
NTAxZDFkZGNmOGY3MDFiNWJlZDAwMWE1OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmgKQEAgLTAsMCArMSw2
MyBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFy
eSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQg
cHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAx
LiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3Jt
IG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAq
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBM
RSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisg
KiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBT
SEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5Z
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAq
IENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZF
UiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBD
T05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNV
Q0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQorCisjaW5jbHVkZSA8b3B0aW9uYWw+CisjaW5jbHVkZSA8d3RmL3RleHQvV1RGU3RyaW5n
Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IE5hdmlnYXRpb25QcmVsb2FkU3Rh
dGUgeworICAgIGJvb2wgZW5hYmxlZCB7IGZhbHNlIH07CisgICAgU3RyaW5nIGhlYWRlclZhbHVl
OworCisgICAgTmF2aWdhdGlvblByZWxvYWRTdGF0ZSBpc29sYXRlZENvcHkoKSBjb25zdCAmIHsg
cmV0dXJuIHsgZW5hYmxlZCwgaGVhZGVyVmFsdWUuaXNvbGF0ZWRDb3B5KCkgfTsgfQorICAgIE5h
dmlnYXRpb25QcmVsb2FkU3RhdGUgaXNvbGF0ZWRDb3B5KCkgJiYgeyByZXR1cm4geyBlbmFibGVk
LCBXVEZNb3ZlKGhlYWRlclZhbHVlKS5pc29sYXRlZENvcHkoKSB9OyB9CisKKyAgICB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdCB7IGVu
Y29kZXIgPDwgZW5hYmxlZCA8PCBoZWFkZXJWYWx1ZTsgfQorICAgIHRlbXBsYXRlPGNsYXNzIERl
Y29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFsPE5hdmlnYXRpb25QcmVsb2FkU3RhdGU+IGRlY29k
ZShEZWNvZGVyJik7Cit9OworCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25h
bDxOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlPiBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlOjpkZWNvZGUo
RGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBzdGQ6Om9wdGlvbmFsPGJvb2w+IGVuYWJsZWQ7Cisg
ICAgZGVjb2RlciA+PiBlbmFibGVkOworICAgIGlmICghZW5hYmxlZCkKKyAgICAgICAgcmV0dXJu
IHsgfTsKKworICAgIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBoZWFkZXJWYWx1ZTsKKyAgICBkZWNv
ZGVyID4+IGhlYWRlclZhbHVlOworICAgIGlmICghaGVhZGVyVmFsdWUpCisgICAgICAgIHJldHVy
biB7IH07CisgICAgcmV0dXJuIHsgeyAqZW5hYmxlZCwgV1RGTW92ZSgqaGVhZGVyVmFsdWUpIH0g
fTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQorCisjZW5kaWYgLy8gRU5BQkxFKFNFUlZJ
Q0VfV09SS0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL05h
dmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L05hdmlnYXRpb25QcmVsb2FkU3RhdGUuaWRsCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJjNzkzMTdiNTI3MjdjMzNk
YzRlYTY0NDYxZDVmNmNkYzI3MGM0ZGQKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5pZGwKQEAgLTAsMCArMSwz
MyBAQAorLyoKKyogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyoKKyogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBm
b3Jtcywgd2l0aCBvciB3aXRob3V0CisqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworKiBhcmUgbWV0OgorKiAxLiBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJl
cHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyogICAgZG9jdW1l
bnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1
dGlvbi4KKyoKKyogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJ
VFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyogVEhFIElNUExJRUQg
V0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxB
UgorKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMu
IE9SIElUUyBDT05UUklCVVRPUlMKKyogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVD
VCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5Z
IFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyogQ09OVFJBQ1QsIFNUUklDVCBMSUFC
SUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyogQVJJ
U0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYg
QURWSVNFRCBPRgorKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisqLworCitbCisg
ICAgQ29uZGl0aW9uYWw9U0VSVklDRV9XT1JLRVIsCisgICAgSlNHZW5lcmF0ZVRvSlNPYmplY3Qs
CitdCitkaWN0aW9uYXJ5IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgeworICAgIGJvb2xlYW4gZW5h
YmxlZCA9IGZhbHNlOworICAgIEJ5dGVTdHJpbmcgaGVhZGVyVmFsdWU7Cit9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oIGIv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NXQ2xpZW50Q29ubmVjdGlvbi5oCmluZGV4
IDk1YjBlNTgxOWVhOTFiNjY5YjJlOTdlZjQ1MDllMzQxNDJlYWFiNjguLjI1YzVhNWNkODMwMzNi
NjlmNjExMjI3NGQ2ZDBiNTkzZmU3MTdmM2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvc2VydmljZS9TV0NsaWVudENvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU1dDbGllbnRDb25uZWN0aW9uLmgKQEAgLTI4LDYgKzI4LDcgQEAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKICNpbmNsdWRlICJFeGNlcHRpb25Pci5oIgorI2lu
Y2x1ZGUgIk5hdmlnYXRpb25QcmVsb2FkU3RhdGUuaCIKICNpbmNsdWRlICJQdXNoUGVybWlzc2lv
blN0YXRlLmgiCiAjaW5jbHVkZSAiUHVzaFN1YnNjcmlwdGlvbkRhdGEuaCIKICNpbmNsdWRlICJT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllci5oIgpAQCAtMTAwLDYgKzEwMSwxMyBAQCBw
dWJsaWM6CiAgICAgdXNpbmcgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrID0gQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChFeGNlcHRpb25PcjxQdXNoUGVybWlzc2lvblN0YXRlPiYmKT47CiAg
ICAgdmlydHVhbCB2b2lkIGdldFB1c2hQZXJtaXNzaW9uU3RhdGUoU2VydmljZVdvcmtlclJlZ2lz
dHJhdGlvbklkZW50aWZpZXIsIEdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFjayYmKSA9IDA7
CiAKKyAgICB1c2luZyBFeGNlcHRpb25PclZvaWRDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVy
PHZvaWQoRXhjZXB0aW9uT3I8dm9pZD4mJik+OworICAgIHZpcnR1YWwgdm9pZCBlbmFibGVOYXZp
Z2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0
aW9uT3JWb2lkQ2FsbGJhY2smJikgPSAwOworICAgIHZpcnR1YWwgdm9pZCBkaXNhYmxlTmF2aWdh
dGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0TmF2aWdhdGlvblBy
ZWxvYWRIZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3Ry
aW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpID0gMDsKKyAgICB1c2luZyBFeGNlcHRp
b25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayA9IENvbXBsZXRpb25IYW5kbGVyPHZv
aWQoRXhjZXB0aW9uT3I8TmF2aWdhdGlvblByZWxvYWRTdGF0ZT4mJik+OworICAgIHZpcnR1YWwg
dm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25J
ZGVudGlmaWVyLCBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayYmKSA9
IDA7CisKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlZ2lzdGVyU2VydmljZVdvcmtlckNsaWVu
dHMoKTsKICAgICBib29sIGlzQ2xvc2VkKCkgY29uc3QgeyByZXR1cm4gbV9pc0Nsb3NlZDsgfQog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtl
ckNvbnRhaW5lci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdv
cmtlckNvbnRhaW5lci5jcHAKaW5kZXggODhjOTk3YzY0ZmQ1OWQyZjgyMGI1ZWE1ODVhM2IxNWE2
Zjk1YWI2OC4uYjQyMjg4Y2FiM2UxYzk0MGVmZDkzZDUzODcwZDU1OTJiYTgyOGEyOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWlu
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2Vy
Q29udGFpbmVyLmNwcApAQCAtMzgsNiArMzgsNyBAQAogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xp
ZW50LmgiCiAjaW5jbHVkZSAiSURMVHlwZXMuaCIKICNpbmNsdWRlICJKU0RPTVByb21pc2VEZWZl
cnJlZC5oIgorI2luY2x1ZGUgIkpTTmF2aWdhdGlvblByZWxvYWRTdGF0ZS5oIgogI2luY2x1ZGUg
IkpTUHVzaFN1YnNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkpTU2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbi5oIgogI2luY2x1ZGUgIkxlZ2FjeVNjaGVtZVJlZ2lzdHJ5LmgiCkBAIC02NDYsNiArNjQ3
LDM4IEBAIGJvb2wgU2VydmljZVdvcmtlckNvbnRhaW5lcjo6YWRkRXZlbnRMaXN0ZW5lcihjb25z
dCBBdG9tU3RyaW5nJiBldmVudFR5cGUsIFJlZjxFCiAgICAgcmV0dXJuIEV2ZW50VGFyZ2V0V2l0
aElubGluZURhdGE6OmFkZEV2ZW50TGlzdGVuZXIoZXZlbnRUeXBlLCBXVEZNb3ZlKGV2ZW50TGlz
dGVuZXIpLCBvcHRpb25zKTsKIH0KIAordm9pZCBTZXJ2aWNlV29ya2VyQ29udGFpbmVyOjplbmFi
bGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBp
ZGVudGlmaWVyLCBWb2lkUHJvbWlzZSYmIHByb21pc2UpCit7CisgICAgZW5zdXJlU1dDbGllbnRD
b25uZWN0aW9uKCkuZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoaWRlbnRpZmllciwgW3Byb21pc2Ug
PSBXVEZNb3ZlKHByb21pc2UpXShhdXRvJiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgcHJv
bWlzZS5zZXR0bGUoV1RGTW92ZShyZXN1bHQpKTsKKyAgICB9KTsKK30KKwordm9pZCBTZXJ2aWNl
V29ya2VyQ29udGFpbmVyOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJl
Z2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRpZmllciwgVm9pZFByb21pc2UmJiBwcm9taXNlKQor
eworICAgIGVuc3VyZVNXQ2xpZW50Q29ubmVjdGlvbigpLmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9h
ZChpZGVudGlmaWVyLCBbcHJvbWlzZSA9IFdURk1vdmUocHJvbWlzZSldKGF1dG8mJiByZXN1bHQp
IG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRsZShXVEZNb3ZlKHJlc3VsdCkpOworICAg
IH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250YWluZXI6OnNldE5hdmlnYXRpb25QcmVs
b2FkSGVhZGVyVmFsdWUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRlbnRp
ZmllciwgU3RyaW5nJiYgaGVhZGVyVmFsdWUsIFZvaWRQcm9taXNlJiYgcHJvbWlzZSkKK3sKKyAg
ICBlbnN1cmVTV0NsaWVudENvbm5lY3Rpb24oKS5zZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZh
bHVlKGlkZW50aWZpZXIsIFdURk1vdmUoaGVhZGVyVmFsdWUpLCBbcHJvbWlzZSA9IFdURk1vdmUo
cHJvbWlzZSldKGF1dG8mJiByZXN1bHQpIG11dGFibGUgeworICAgICAgICBwcm9taXNlLnNldHRs
ZShXVEZNb3ZlKHJlc3VsdCkpOworICAgIH0pOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJDb250
YWluZXI6OmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlv
bklkZW50aWZpZXIgaWRlbnRpZmllciwgTmF2aWdhdGlvblByZWxvYWRTdGF0ZVByb21pc2UmJiBw
cm9taXNlKQoreworICAgIGVuc3VyZVNXQ2xpZW50Q29ubmVjdGlvbigpLmdldE5hdmlnYXRpb25Q
cmVsb2FkU3RhdGUoaWRlbnRpZmllciwgW3Byb21pc2UgPSBXVEZNb3ZlKHByb21pc2UpXShhdXRv
JiYgcmVzdWx0KSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkg
eworICAgICAgICAgICAgcHJvbWlzZS5yZWplY3QocmVzdWx0LnJlbGVhc2VFeGNlcHRpb24oKSk7
CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgcHJvbWlzZS5yZXNvbHZl
KHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKSk7CisgICAgfSk7Cit9CisKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNFX1dPUktFUikKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVy
LmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlckNvbnRhaW5l
ci5oCmluZGV4IDgyODk3MWE2NTdhZjBlMDkwNjAyZDljMWExNzQ0ZjBmNTMyY2ZkNjUuLmE5YmJi
ZDgwYmQ0MWI5NDVkNGI4MTM4NGEyYzQyMzhjZjhlNDdhZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyQ29udGFpbmVyLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJDb250YWluZXIuaApAQCAt
OTgsNiArOTgsMTMgQEAgcHVibGljOgogCiAgICAgTmF2aWdhdG9yQmFzZSogbmF2aWdhdG9yKCkg
eyByZXR1cm4gJm1fbmF2aWdhdG9yOyB9CiAKKyAgICB1c2luZyBWb2lkUHJvbWlzZSA9IERPTVBy
b21pc2VEZWZlcnJlZDx2b2lkPjsKKyAgICB1c2luZyBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlUHJv
bWlzZSA9IERPTVByb21pc2VEZWZlcnJlZDxJRExEaWN0aW9uYXJ5PE5hdmlnYXRpb25QcmVsb2Fk
U3RhdGU+PjsKKyAgICB2b2lkIGVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb25JZGVudGlmaWVyLCBWb2lkUHJvbWlzZSYmKTsKKyAgICB2b2lkIGRpc2FibGVO
YXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgVm9p
ZFByb21pc2UmJik7CisgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFNl
cnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiwgVm9pZFByb21pc2Um
Jik7CisgICAgdm9pZCBnZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKFNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlUHJvbWlzZSYmKTsKKwog
cHJpdmF0ZToKICAgICBib29sIGFkZEV2ZW50TGlzdGVuZXIoY29uc3QgQXRvbVN0cmluZyYgZXZl
bnRUeXBlLCBSZWY8RXZlbnRMaXN0ZW5lcj4mJiwgY29uc3QgQWRkRXZlbnRMaXN0ZW5lck9wdGlv
bnMmID0geyB9KSBmaW5hbDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9z
ZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uY3BwCmluZGV4IDBiNjgyOGM4
ODdiYWUzYzBlYmViYTMwMzI5YjI5ZTE5OWRjNmJhNzEuLjBjMDZkOTliYjMyZTJjZmU1ZjA2Yzgw
MDk4NTZiYzY0MGY4N2I5OTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5jcHAKQEAgLTMzLDYgKzMz
LDcgQEAKICNpbmNsdWRlICJFdmVudE5hbWVzLmgiCiAjaW5jbHVkZSAiSlNET01Qcm9taXNlRGVm
ZXJyZWQuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCisjaW5jbHVkZSAiTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyLmgiCiAjaW5jbHVkZSAiU2VydmljZVdvcmtlci5oIgogI2luY2x1ZGUgIlNlcnZp
Y2VXb3JrZXJDb250YWluZXIuaCIKICNpbmNsdWRlICJTZXJ2aWNlV29ya2VyVHlwZXMuaCIKQEAg
LTI1NCw2ICsyNTUsMTMgQEAgYm9vbCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjp2aXJ0dWFs
SGFzUGVuZGluZ0FjdGl2aXR5KCkgY29uc3QKICAgICByZXR1cm4gZ2V0TmV3ZXN0V29ya2VyKCkg
JiYgaGFzRXZlbnRMaXN0ZW5lcnMoKTsKIH0KIAorTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uOjpuYXZpZ2F0aW9uUHJlbG9hZCgpCit7CisgICAgaWYg
KCFtX25hdmlnYXRpb25QcmVsb2FkKQorICAgICAgICBtX25hdmlnYXRpb25QcmVsb2FkID0gc3Rk
Ojp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcj4obmV3IE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlcigqdGhpcykpOworICAgIHJldHVybiAqbV9uYXZpZ2F0aW9uUHJlbG9hZDsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKFNFUlZJQ0VfV09S
S0VSKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VX
b3JrZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uLmgKaW5kZXggODllYzk3M2Y1ZmY2N2EzNmM3YTE0Yzk2ZjBh
NTZkMTg3YTM0OTlmNi4uYzMyNzg5MjEzZTk0N2I5NDhjMTdlMDkyODQzNTEzN2U0OGEzOTMwOCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbi5oCkBAIC00MCw2ICs0MCw3IEBACiBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKK2NsYXNzIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlcjsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTZXJ2aWNlV29ya2Vy
OwogY2xhc3MgU2VydmljZVdvcmtlckNvbnRhaW5lcjsKQEAgLTg1LDYgKzg2LDkgQEAgcHVibGlj
OgogICAgIHZvaWQgdXBkYXRlU3RhdGVGcm9tU2VydmVyKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25TdGF0ZSwgUmVmUHRyPFNlcnZpY2VXb3JrZXI+JiYpOwogICAgIHZvaWQgcXVldWVUYXNrVG9G
aXJlVXBkYXRlRm91bmRFdmVudCgpOwogCisgICAgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyJiBu
YXZpZ2F0aW9uUHJlbG9hZCgpOworICAgIFNlcnZpY2VXb3JrZXJDb250YWluZXImIGNvbnRhaW5l
cigpIHsgcmV0dXJuIG1fY29udGFpbmVyLmdldCgpOyB9CisKIHByaXZhdGU6CiAgICAgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbihTY3JpcHRFeGVjdXRpb25Db250ZXh0JiwgUmVmPFNlcnZpY2VX
b3JrZXJDb250YWluZXI+JiYsIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25EYXRhJiYpOwogCkBA
IC0xMDQsNiArMTA4LDggQEAgcHJpdmF0ZToKICAgICBSZWZQdHI8U2VydmljZVdvcmtlcj4gbV9p
bnN0YWxsaW5nV29ya2VyOwogICAgIFJlZlB0cjxTZXJ2aWNlV29ya2VyPiBtX3dhaXRpbmdXb3Jr
ZXI7CiAgICAgUmVmUHRyPFNlcnZpY2VXb3JrZXI+IG1fYWN0aXZlV29ya2VyOworCisgICAgc3Rk
Ojp1bmlxdWVfcHRyPE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcj4gbV9uYXZpZ2F0aW9uUHJlbG9h
ZDsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmlkbCBiL1NvdXJj
ZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9TZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uLmlkbApp
bmRleCBkZDhiMjJlMzdlMTdmOGMwMTgwODM5ZmYxZWI0ODY0YjYzMmYzMjY3Li4yZTlkMWZlNTFi
NGMwN2NkZGQ3YWMzMjlmMDk3NTI2OGU0MDllMzQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS93b3JrZXJzL3NlcnZpY2UvU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbi5pZGwKKysrIGIvU291
cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1NlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24uaWRs
CkBAIC0zNyw2ICszNyw3IEBACiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/
IGluc3RhbGxpbmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/IHdhaXRp
bmc7CiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFNlcnZpY2VXb3JrZXI/IGFjdGl2ZTsKKyAgICBb
U2FtZU9iamVjdCwgRW5hYmxlZEJ5U2V0dGluZz1TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxv
YWRFbmFibGVkXSByZWFkb25seSBhdHRyaWJ1dGUgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIG5h
dmlnYXRpb25QcmVsb2FkOwogCiAgICAgcmVhZG9ubHkgYXR0cmlidXRlIFVTVlN0cmluZyBzY29w
ZTsKICAgICByZWFkb25seSBhdHRyaWJ1dGUgU2VydmljZVdvcmtlclVwZGF0ZVZpYUNhY2hlIHVw
ZGF0ZVZpYUNhY2hlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNl
L1dvcmtlclNXQ2xpZW50Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCBmYWVmOTRhNzVhOGQ3MjE5
ODZmNTc5ZjNiNjU5MDIzMzdmOGVlZjc4Li5lMGNhODczNjJiMTRiZjdjMmI2NDgxMjcxYmY3Zjkx
MDAzOTBkOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29y
a2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3Nl
cnZpY2UvV29ya2VyU1dDbGllbnRDb25uZWN0aW9uLmNwcApAQCAtNzMsNiArNzMsMTQgQEAgV29y
a2VyU1dDbGllbnRDb25uZWN0aW9uOjp+V29ya2VyU1dDbGllbnRDb25uZWN0aW9uKCkKICAgICBh
dXRvIGdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFja3MgPSBXVEZNb3ZlKG1fZ2V0UHVzaFBl
cm1pc3Npb25TdGF0ZUNhbGxiYWNrcyk7CiAgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IGdldFB1
c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFja3MudmFsdWVzKCkpCiAgICAgICAgIGNhbGxiYWNrKEV4
Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0IHN0b3BwZWQiX3MgfSk7CisKKyAgICBhdXRv
IHZvaWRDYWxsYmFja3MgPSBXVEZNb3ZlKG1fdm9pZENhbGxiYWNrcyk7CisgICAgZm9yIChhdXRv
JiBjYWxsYmFjayA6IHZvaWRDYWxsYmFja3MudmFsdWVzKCkpCisgICAgICAgIGNhbGxiYWNrKEV4
Y2VwdGlvbiB7IEFib3J0RXJyb3IsICJjb250ZXh0IHN0b3BwZWQiX3MgfSk7CisKKyAgICBhdXRv
IG5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFja3MgPSBXVEZNb3ZlKG1fbmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZUNhbGxiYWNrcyk7CisgICAgZm9yIChhdXRvJiBjYWxsYmFjayA6IG1fbmF2aWdh
dGlvblByZWxvYWRTdGF0ZUNhbGxiYWNrcy52YWx1ZXMoKSkKKyAgICAgICAgY2FsbGJhY2soRXhj
ZXB0aW9uIHsgQWJvcnRFcnJvciwgImNvbnRleHQgc3RvcHBlZCJfcyB9KTsKIH0KIAogdm9pZCBX
b3JrZXJTV0NsaWVudENvbm5lY3Rpb246Om1hdGNoUmVnaXN0cmF0aW9uKFNlY3VyaXR5T3JpZ2lu
RGF0YSYmIHRvcE9yaWdpbiwgY29uc3QgVVJMJiBjbGllbnRVUkwsIFJlZ2lzdHJhdGlvbkNhbGxi
YWNrJiYgY2FsbGJhY2spCkBAIC0yODUsNiArMjkzLDcwIEBAIHZvaWQgV29ya2VyU1dDbGllbnRD
b25uZWN0aW9uOjpnZXRQdXNoUGVybWlzc2lvblN0YXRlKFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b25JCiAgICAgfSk7CiB9CiAKK3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0aW9uOjplbmFibGVO
YXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQor
eworICAgIHVpbnQ2NF90IHJlcXVlc3RJZGVudGlmaWVyID0gKyttX2xhc3RSZXF1ZXN0SWRlbnRp
ZmllcjsKKyAgICBtX3ZvaWRDYWxsYmFja3MuYWRkKHJlcXVlc3RJZGVudGlmaWVyLCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CisKKyAgICBjYWxsT25NYWluVGhyZWFkKFt0aHJlYWQgPSBtX3RocmVhZCwg
cmVxdWVzdElkZW50aWZpZXIsIHJlZ2lzdHJhdGlvbklkZW50aWZpZXJdKCkgbXV0YWJsZSB7Cisg
ICAgICAgIGF1dG8mIGNvbm5lY3Rpb24gPSBTZXJ2aWNlV29ya2VyUHJvdmlkZXI6OnNpbmdsZXRv
bigpLnNlcnZpY2VXb3JrZXJDb25uZWN0aW9uKCk7CisgICAgICAgIGNvbm5lY3Rpb24uZW5hYmxl
TmF2aWdhdGlvblByZWxvYWQocmVnaXN0cmF0aW9uSWRlbnRpZmllciwgW3RocmVhZCA9IFdURk1v
dmUodGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiByZXN1bHQpIHsKKyAgICAgICAg
ICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShbcmVxdWVzdElkZW50aWZpZXIs
IHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKHJlc3VsdCkpXShhdXRvJiBzY29wZSkg
bXV0YWJsZSB7CisgICAgICAgICAgICAgICAgYXV0byBjYWxsYmFjayA9IGRvd25jYXN0PFdvcmtl
ckdsb2JhbFNjb3BlPihzY29wZSkuc3dDbGllbnRDb25uZWN0aW9uKCkubV92b2lkQ2FsbGJhY2tz
LnRha2UocmVxdWVzdElkZW50aWZpZXIpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1v
dmUocmVzdWx0KSk7CisgICAgICAgICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgp
KTsKKyAgICAgICAgfSk7CisgICAgfSk7Cit9CisKK3ZvaWQgV29ya2VyU1dDbGllbnRDb25uZWN0
aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklk
ZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2sm
JiBjYWxsYmFjaykKK3sKKyAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0
UmVxdWVzdElkZW50aWZpZXI7CisgICAgbV92b2lkQ2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRlbnRp
ZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhyZWFk
ID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlmaWVyLCByZWdpc3RyYXRpb25JZGVudGlmaWVyXSgp
IG11dGFibGUgeworICAgICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdvcmtlclByb3Zp
ZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOworICAgICAgICBjb25u
ZWN0aW9uLmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChyZWdpc3RyYXRpb25JZGVudGlmaWVyLCBb
dGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCByZXF1ZXN0SWRlbnRpZmllcl0oYXV0byYmIHJlc3Vs
dCkgeworICAgICAgICAgICAgdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JNb2RlKFtyZXF1
ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUocmVzdWx0KSld
KGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNhbGxiYWNrID0g
ZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zd0NsaWVudENvbm5lY3Rpb24oKS5t
X3ZvaWRDYWxsYmFja3MudGFrZShyZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAgICAgICAgICAg
Y2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtlclJ1bkxvb3A6
OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwordm9pZCBXb3JrZXJT
V0NsaWVudENvbm5lY3Rpb246OnNldE5hdmlnYXRpb25QcmVsb2FkSGVhZGVyVmFsdWUoU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3Ry
aW5nJiYgaGVhZGVyVmFsdWUsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYgY2FsbGJhY2spCit7
CisgICAgdWludDY0X3QgcmVxdWVzdElkZW50aWZpZXIgPSArK21fbGFzdFJlcXVlc3RJZGVudGlm
aWVyOworICAgIG1fdm9pZENhbGxiYWNrcy5hZGQocmVxdWVzdElkZW50aWZpZXIsIFdURk1vdmUo
Y2FsbGJhY2spKTsKKworICAgIGNhbGxPbk1haW5UaHJlYWQoW3RocmVhZCA9IG1fdGhyZWFkLCBy
ZXF1ZXN0SWRlbnRpZmllciwgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgaGVhZGVyVmFsdWUgPSBX
VEZNb3ZlKGhlYWRlclZhbHVlKS5pc29sYXRlZENvcHkoKV0oKSBtdXRhYmxlIHsKKyAgICAgICAg
YXV0byYgY29ubmVjdGlvbiA9IFNlcnZpY2VXb3JrZXJQcm92aWRlcjo6c2luZ2xldG9uKCkuc2Vy
dmljZVdvcmtlckNvbm5lY3Rpb24oKTsKKyAgICAgICAgY29ubmVjdGlvbi5zZXROYXZpZ2F0aW9u
UHJlbG9hZEhlYWRlclZhbHVlKHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIFdURk1vdmUoaGVhZGVy
VmFsdWUpLCBbdGhyZWFkID0gV1RGTW92ZSh0aHJlYWQpLCByZXF1ZXN0SWRlbnRpZmllcl0oYXV0
byYmIHJlc3VsdCkgeworICAgICAgICAgICAgdGhyZWFkLT5ydW5Mb29wKCkucG9zdFRhc2tGb3JN
b2RlKFtyZXF1ZXN0SWRlbnRpZmllciwgcmVzdWx0ID0gY3Jvc3NUaHJlYWRDb3B5KFdURk1vdmUo
cmVzdWx0KSldKGF1dG8mIHNjb3BlKSBtdXRhYmxlIHsKKyAgICAgICAgICAgICAgICBhdXRvIGNh
bGxiYWNrID0gZG93bmNhc3Q8V29ya2VyR2xvYmFsU2NvcGU+KHNjb3BlKS5zd0NsaWVudENvbm5l
Y3Rpb24oKS5tX3ZvaWRDYWxsYmFja3MudGFrZShyZXF1ZXN0SWRlbnRpZmllcik7CisgICAgICAg
ICAgICAgICAgY2FsbGJhY2soV1RGTW92ZShyZXN1bHQpKTsKKyAgICAgICAgICAgIH0sIFdvcmtl
clJ1bkxvb3A6OmRlZmF1bHRNb2RlKCkpOworICAgICAgICB9KTsKKyAgICB9KTsKK30KKwordm9p
ZCBXb3JrZXJTV0NsaWVudENvbm5lY3Rpb246OmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
RXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sK
KyAgICB1aW50NjRfdCByZXF1ZXN0SWRlbnRpZmllciA9ICsrbV9sYXN0UmVxdWVzdElkZW50aWZp
ZXI7CisgICAgbV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2tzLmFkZChyZXF1ZXN0SWRl
bnRpZmllciwgV1RGTW92ZShjYWxsYmFjaykpOworCisgICAgY2FsbE9uTWFpblRocmVhZChbdGhy
ZWFkID0gbV90aHJlYWQsIHJlcXVlc3RJZGVudGlmaWVyLCByZWdpc3RyYXRpb25JZGVudGlmaWVy
XSgpIG11dGFibGUgeworICAgICAgICBhdXRvJiBjb25uZWN0aW9uID0gU2VydmljZVdvcmtlclBy
b3ZpZGVyOjpzaW5nbGV0b24oKS5zZXJ2aWNlV29ya2VyQ29ubmVjdGlvbigpOworICAgICAgICBj
b25uZWN0aW9uLmdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUocmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgW3RocmVhZCA9IFdURk1vdmUodGhyZWFkKSwgcmVxdWVzdElkZW50aWZpZXJdKGF1dG8mJiBy
ZXN1bHQpIHsKKyAgICAgICAgICAgIHRocmVhZC0+cnVuTG9vcCgpLnBvc3RUYXNrRm9yTW9kZShb
cmVxdWVzdElkZW50aWZpZXIsIHJlc3VsdCA9IGNyb3NzVGhyZWFkQ29weShXVEZNb3ZlKHJlc3Vs
dCkpXShhdXRvJiBzY29wZSkgbXV0YWJsZSB7CisgICAgICAgICAgICAgICAgYXV0byBjYWxsYmFj
ayA9IGRvd25jYXN0PFdvcmtlckdsb2JhbFNjb3BlPihzY29wZSkuc3dDbGllbnRDb25uZWN0aW9u
KCkubV9uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2tzLnRha2UocmVxdWVzdElkZW50aWZp
ZXIpOworICAgICAgICAgICAgICAgIGNhbGxiYWNrKFdURk1vdmUocmVzdWx0KSk7CisgICAgICAg
ICAgICB9LCBXb3JrZXJSdW5Mb29wOjpkZWZhdWx0TW9kZSgpKTsKKyAgICAgICAgfSk7CisgICAg
fSk7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJW
SUNFX1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9X
b3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9Xb3JrZXJTV0NsaWVudENvbm5lY3Rpb24uaAppbmRleCA5Njk5NGJkOTU2ZDFjYmYxNWJhM2Ux
OWJjZjA3MTMzMzlmOTkxZTM4Li5kMDBkMTExNWM2ZmJlNjcwOGM1NTI4NGU0NmMyNzFlYTJmOGJi
MzY1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvV29ya2VyU1dD
bGllbnRDb25uZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL1dv
cmtlclNXQ2xpZW50Q29ubmVjdGlvbi5oCkBAIC02Miw2ICs2MiwxMSBAQCBwcml2YXRlOgogICAg
IHZvaWQgZ2V0UHVzaFN1YnNjcmlwdGlvbihTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciwgR2V0UHVzaFN1YnNjcmlwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0
UHVzaFBlcm1pc3Npb25TdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
R2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrJiYpIGZpbmFsOwogCisgICAgdm9pZCBlbmFi
bGVOYXZpZ2F0aW9uUHJlbG9hZChTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
RXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCBkaXNhYmxlTmF2aWdh
dGlvblByZWxvYWQoU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlv
bk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgc2V0TmF2aWdhdGlvblByZWxvYWRI
ZWFkZXJWYWx1ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYs
IEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0TmF2aWdhdGlv
blByZWxvYWRTdGF0ZShTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0
aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2smJikgZmluYWw7CisKICAgICBSZWY8
V29ya2VyVGhyZWFkPiBtX3RocmVhZDsKIAogICAgIHVpbnQ2NF90IG1fbGFzdFJlcXVlc3RJZGVu
dGlmaWVyIHsgMCB9OwpAQCAtNzMsNiArNzgsOCBAQCBwcml2YXRlOgogICAgIEhhc2hNYXA8dWlu
dDY0X3QsIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlQ2FsbGJhY2s+IG1fdW5zdWJzY3JpYmVG
cm9tUHVzaFNlcnZpY2VSZXF1ZXN0czsKICAgICBIYXNoTWFwPHVpbnQ2NF90LCBHZXRQdXNoU3Vi
c2NyaXB0aW9uQ2FsbGJhY2s+IG1fZ2V0UHVzaFN1YnNjcmlwdGlvblJlcXVlc3RzOwogICAgIEhh
c2hNYXA8dWludDY0X3QsIEdldFB1c2hQZXJtaXNzaW9uU3RhdGVDYWxsYmFjaz4gbV9nZXRQdXNo
UGVybWlzc2lvblN0YXRlQ2FsbGJhY2tzOworICAgIEhhc2hNYXA8dWludDY0X3QsIEV4Y2VwdGlv
bk9yVm9pZENhbGxiYWNrPiBtX3ZvaWRDYWxsYmFja3M7CisgICAgSGFzaE1hcDx1aW50NjRfdCwg
RXhjZXB0aW9uT3JOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2s+IG1fbmF2aWdhdGlvblBy
ZWxvYWRTdGF0ZUNhbGxiYWNrczsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJGZXRjaC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2
aWNlV29ya2VyRmV0Y2guY3BwCmluZGV4IGQ0NTRlOWQxNzQ4NDBmNjVjMzdhMDExNTI4OTE1MmEx
MDI2NDI0M2EuLjhhOTEzOGQyM2IwZDVkZWM1M2QyOTkwZGVkNWRiNzc2MzU0ZTUyNDAgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3Jr
ZXJGZXRjaC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQv
U2VydmljZVdvcmtlckZldGNoLmNwcApAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyB2b2lkIHBy
b2Nlc3NSZXNwb25zZShSZWY8Q2xpZW50PiYmIGNsaWVudCwgRXhwZWN0ZWQ8UmVmPEZldGNoUmVz
cG9uc2U+LCBzCiAgICAgfSk7CiB9CiAKLXZvaWQgZGlzcGF0Y2hGZXRjaEV2ZW50KFJlZjxDbGll
bnQ+JiYgY2xpZW50LCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmIGdsb2JhbFNjb3BlLCBzdGQ6
Om9wdGlvbmFsPFNjcmlwdEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiBjbGllbnRJZCwgUmVz
b3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYm
IG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIpCit2b2lkIGRpc3BhdGNo
RmV0Y2hFdmVudChSZWY8Q2xpZW50PiYmIGNsaWVudCwgU2VydmljZVdvcmtlckdsb2JhbFNjb3Bl
JiBnbG9iYWxTY29wZSwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4gY2xpZW50SWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN0cmluZyYmIHJlZmVy
cmVyLCBGZXRjaE9wdGlvbnMmJiBvcHRpb25zLCBGZXRjaElkZW50aWZpZXIgZmV0Y2hJZGVudGlm
aWVyLCBib29sIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCkKIHsKICAg
ICBhdXRvIHJlcXVlc3RIZWFkZXJzID0gRmV0Y2hIZWFkZXJzOjpjcmVhdGUoRmV0Y2hIZWFkZXJz
OjpHdWFyZDo6SW1tdXRhYmxlLCBIVFRQSGVhZGVyTWFwIHsgcmVxdWVzdC5odHRwSGVhZGVyRmll
bGRzKCkgfSk7CiAKQEAgLTE2Nyw3ICsxNjcsMTAgQEAgdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQo
UmVmPENsaWVudD4mJiBjbGllbnQsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2MK
IAogICAgIFVSTCByZXF1ZXN0VVJMID0gcmVxdWVzdC51cmwoKTsKICAgICBhdXRvIGZldGNoUmVx
dWVzdCA9IEZldGNoUmVxdWVzdDo6Y3JlYXRlKGdsb2JhbFNjb3BlLCBXVEZNb3ZlKGJvZHkpLCBX
VEZNb3ZlKHJlcXVlc3RIZWFkZXJzKSwgIFdURk1vdmUocmVxdWVzdCksIFdURk1vdmUob3B0aW9u
cyksIFdURk1vdmUocmVmZXJyZXIpKTsKLSAgICBmZXRjaFJlcXVlc3QtPnNldE5hdmlnYXRpb25Q
cmVsb2FkSWRlbnRpZmllcihmZXRjaElkZW50aWZpZXIpOworCisgICAgLy8gSWYgc2VydmljZSB3
b3JrZXIgbmF2aWdhdGlvbiBwcmVsb2FkIGlzIG5vdCBlbmFibGVkLCB3ZSBkbyBub3Qgd2FudCB0
byByZXVzZSBhbnkgcHJlbG9hZCBkaXJlY3RseS4KKyAgICBpZiAoIWlzU2VydmljZVdvcmtlck5h
dmlnYXRpb25QcmVsb2FkRW5hYmxlZCkKKyAgICAgICAgZmV0Y2hSZXF1ZXN0LT5zZXROYXZpZ2F0
aW9uUHJlbG9hZElkZW50aWZpZXIoZmV0Y2hJZGVudGlmaWVyKTsKIAogICAgIEZldGNoRXZlbnQ6
OkluaXQgaW5pdDsKICAgICBpbml0LnJlcXVlc3QgPSBXVEZNb3ZlKGZldGNoUmVxdWVzdCk7CkBA
IC0xODAsNiArMTgzLDkgQEAgdm9pZCBkaXNwYXRjaEZldGNoRXZlbnQoUmVmPENsaWVudD4mJiBj
bGllbnQsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYgZ2xvYmFsU2MKICAgICBpbml0LmNhbmNl
bGFibGUgPSB0cnVlOwogICAgIGF1dG8gZXZlbnQgPSBGZXRjaEV2ZW50OjpjcmVhdGUoZXZlbnRO
YW1lcygpLmZldGNoRXZlbnQsIFdURk1vdmUoaW5pdCksIEV2ZW50OjpJc1RydXN0ZWQ6Olllcyk7
CiAKKyAgICBpZiAoaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQorICAg
ICAgICBldmVudC0+c2V0TmF2aWdhdGlvblByZWxvYWRJZGVudGlmaWVyKGZldGNoSWRlbnRpZmll
cik7CisKICAgICBDZXJ0aWZpY2F0ZUluZm8gY2VydGlmaWNhdGVJbmZvID0gZ2xvYmFsU2NvcGUu
Y2VydGlmaWNhdGVJbmZvKCk7CiAKICAgICBldmVudC0+b25SZXNwb25zZShbY2xpZW50LCBtb2Rl
LCByZWRpcmVjdCwgcmVxdWVzdFVSTCwgY2VydGlmaWNhdGVJbmZvID0gV1RGTW92ZShjZXJ0aWZp
Y2F0ZUluZm8pXSAoYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyRmV0Y2guaCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5o
CmluZGV4IDdkODVlZmRmMDM5NmRlZGU5ZDJlMDBiM2EzNzE4NDUyNDg2NDUyMmYuLmViMjY2YjZj
MDdlNjczZDkxNjZjYWNlNmIzMzkxOWQ4MGViYmYzMWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJGZXRjaC5o
CkBAIC02MCw3ICs2MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgY29udGludWVEaWRS
ZWNlaXZlUmVzcG9uc2UoKSA9IDA7CiB9OwogCi12b2lkIGRpc3BhdGNoRmV0Y2hFdmVudChSZWY8
Q2xpZW50PiYmLCBTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUmLCBzdGQ6Om9wdGlvbmFsPFNjcmlw
dEV4ZWN1dGlvbkNvbnRleHRJZGVudGlmaWVyPiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYm
IHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgRmV0Y2hJZGVudGlmaWVyKTsKK3ZvaWQgZGlzcGF0
Y2hGZXRjaEV2ZW50KFJlZjxDbGllbnQ+JiYsIFNlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSYsIHN0
ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+LCBSZXNvdXJjZVJl
cXVlc3QmJiwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElkZW50aWZp
ZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKIH07CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKaW5kZXgg
OGIxY2VjZDM3ZGUzMWMzMjAxOWQ2OGYzYTJlMDQxMjM3YTI4NWE0Yy4uNjUyNWZiOTcwMTZmZmFk
ZWU5MWExMTYwNjA0YzAyNzEwOWNlODY2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29y
a2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVhZC5jcHAK
QEAgLTEyNCwxMSArMTI0LDExIEBAIHZvaWQgU2VydmljZVdvcmtlclRocmVhZDo6cnVuRXZlbnRM
b29wKCkKICAgICBXb3JrZXJUaHJlYWQ6OnJ1bkV2ZW50TG9vcCgpOwogfQogCi12b2lkIFNlcnZp
Y2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3Jr
ZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwg
U3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmll
ciBmZXRjaElkZW50aWZpZXIpCit2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWQ6OnF1ZXVlVGFza1Rv
RmlyZUZldGNoRXZlbnQoUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmIGNsaWVudCwg
c3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiBjbGllbnRJ
ZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVmZXJyZXIsIEZldGNoT3B0
aW9ucyYmIG9wdGlvbnMsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIGJvb2wgaXNT
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogewogICAgIFJlZiBzZXJ2aWNl
V29ya2VyR2xvYmFsU2NvcGUgPSBkb3duY2FzdDxTZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGU+KCpn
bG9iYWxTY29wZSgpKTsKLSAgICBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUtPmV2ZW50TG9vcCgp
LnF1ZXVlVGFzayhUYXNrU291cmNlOjpET01NYW5pcHVsYXRpb24sIFtzZXJ2aWNlV29ya2VyR2xv
YmFsU2NvcGUsIGNsaWVudCA9IFdURk1vdmUoY2xpZW50KSwgY2xpZW50SWQsIHJlcXVlc3QgPSBX
VEZNb3ZlKHJlcXVlc3QpLCByZWZlcnJlciA9IFdURk1vdmUocmVmZXJyZXIpLCBvcHRpb25zID0g
V1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVudGlmaWVyXSgpIG11dGFibGUgewotICAgICAgICBT
ZXJ2aWNlV29ya2VyRmV0Y2g6OmRpc3BhdGNoRmV0Y2hFdmVudChXVEZNb3ZlKGNsaWVudCksIHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgY2xpZW50SWQsIFdURk1vdmUocmVxdWVzdCksIFdURk1v
dmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50aWZpZXIpOworICAgIHNl
cnZpY2VXb3JrZXJHbG9iYWxTY29wZS0+ZXZlbnRMb29wKCkucXVldWVUYXNrKFRhc2tTb3VyY2U6
OkRPTU1hbmlwdWxhdGlvbiwgW3NlcnZpY2VXb3JrZXJHbG9iYWxTY29wZSwgY2xpZW50ID0gV1RG
TW92ZShjbGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IFdURk1vdmUocmVxdWVzdCksIHJlZmVy
cmVyID0gV1RGTW92ZShyZWZlcnJlciksIG9wdGlvbnMgPSBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRj
aElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZF0oKSBt
dXRhYmxlIHsKKyAgICAgICAgU2VydmljZVdvcmtlckZldGNoOjpkaXNwYXRjaEZldGNoRXZlbnQo
V1RGTW92ZShjbGllbnQpLCBzZXJ2aWNlV29ya2VyR2xvYmFsU2NvcGUsIGNsaWVudElkLCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJ
ZGVudGlmaWVyLCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAg
IH0pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29u
dGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmggYi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZp
Y2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFkLmgKaW5kZXggZDllMzM2NTE5YzVkMDViODM2
Zjg0MTIwODkzNTMyZTc5YTQxYzMxZi4uZGVkM2MyNTBmNWVlMTY2ODY2M2M3YjlkMGU3YTk0MTI5
MDIzYWJjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRl
eHQvU2VydmljZVdvcmtlclRocmVhZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vy
dmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWQuaApAQCAtNjQsNyArNjQsNyBAQCBwdWJs
aWM6CiAgICAgdm9pZCB3aWxsUG9zdFRhc2tUb0ZpcmVNZXNzYWdlRXZlbnQoKTsKICAgICB2b2lk
IHdpbGxQb3N0VGFza1RvRmlyZVB1c2hTdWJzY3JpcHRpb25DaGFuZ2VFdmVudCgpOwogCi0gICAg
dm9pZCBxdWV1ZVRhc2tUb0ZpcmVGZXRjaEV2ZW50KFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNs
aWVudD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4m
JiwgUmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwg
RmV0Y2hJZGVudGlmaWVyKTsKKyAgICB2b2lkIHF1ZXVlVGFza1RvRmlyZUZldGNoRXZlbnQoUmVm
PFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xpZW50PiYmLCBzdGQ6Om9wdGlvbmFsPFNjcmlwdEV4ZWN1
dGlvbkNvbnRleHRJZGVudGlmaWVyPiYmLCBSZXNvdXJjZVJlcXVlc3QmJiwgU3RyaW5nJiYgcmVm
ZXJyZXIsIEZldGNoT3B0aW9ucyYmLCBGZXRjaElkZW50aWZpZXIsIGJvb2wgaXNTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKICAgICB2b2lkIHF1ZXVlVGFza1RvUG9zdE1l
c3NhZ2UoTWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgU2VydmljZVdvcmtlck9yQ2xpZW50RGF0
YSYmIHNvdXJjZURhdGEpOwogICAgIHZvaWQgcXVldWVUYXNrVG9GaXJlSW5zdGFsbEV2ZW50KCk7
CiAgICAgdm9pZCBxdWV1ZVRhc2tUb0ZpcmVBY3RpdmF0ZUV2ZW50KCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNlV29ya2VyVGhyZWFk
UHJveHkuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vydmlj
ZVdvcmtlclRocmVhZFByb3h5LmNwcAppbmRleCBjZmQzNmExOGU4ZmM1YmFiZGQ1MmQ5Yjc0OTlm
ODk0MjIyMzZjYWU5Li5iM2NmMmM3M2IyMjM5MjU5Mzg0NTNiZjlmMDhiNTQwMjY1Y2MyNmRiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2UvY29udGV4dC9TZXJ2aWNl
V29ya2VyVGhyZWFkUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5jcHAKQEAgLTIxMCw3ICsyMTAsNyBA
QCB2b2lkIFNlcnZpY2VXb3JrZXJUaHJlYWRQcm94eTo6bm90aWZ5TmV0d29ya1N0YXRlQ2hhbmdl
KGJvb2wgaXNPbmxpbmUpCiAgICAgfSwgV29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9
CiAKLXZvaWQgU2VydmljZVdvcmtlclRocmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2VydmVyQ29u
bmVjdGlvbklkZW50aWZpZXIgY29ubmVjdGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBm
ZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVudD4mJiBjbGllbnQs
IHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+JiYgY2xpZW50
SWQsIFJlc291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9w
dGlvbnMmJiBvcHRpb25zKQordm9pZCBTZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0
Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciBjb25uZWN0aW9uSWRlbnRpZmllciwgRmV0
Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgUmVmPFNlcnZpY2VXb3JrZXJGZXRjaDo6Q2xp
ZW50PiYmIGNsaWVudCwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRp
Zmllcj4mJiBjbGllbnRJZCwgUmVzb3VyY2VSZXF1ZXN0JiYgcmVxdWVzdCwgU3RyaW5nJiYgcmVm
ZXJyZXIsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdh
dGlvblByZWxvYWRFbmFibGVkKQogewogICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIsICJT
ZXJ2aWNlV29ya2VyVGhyZWFkUHJveHk6OnN0YXJ0RmV0Y2ggJWxsdSIsIGZldGNoSWRlbnRpZmll
ci50b1VJbnQ2NCgpKTsKIApAQCAtMjIxLDggKzIyMSw4IEBAIHZvaWQgU2VydmljZVdvcmtlclRo
cmVhZFByb3h5OjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgY29ubmVj
dGlvCiAKICAgICBBU1NFUlQoIW1fb25nb2luZ0ZldGNoVGFza3MuY29udGFpbnMoa2V5KSk7CiAg
ICAgbV9vbmdvaW5nRmV0Y2hUYXNrcy5hZGQoa2V5LCBjbGllbnQuY29weVJlZigpKTsKLSAgICBw
b3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3BlKFt0aGlzLCBwcm90ZWN0
ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY2xpZW50ID0gV1RGTW92ZShjbGllbnQpLCBjbGllbnRJ
ZCwgcmVxdWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVycmVyID0gcmVmZXJyZXIu
aXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVkQ29weSgpLCBmZXRjaElk
ZW50aWZpZXJdKGF1dG8mKSBtdXRhYmxlIHsKLSAgICAgICAgdGhyZWFkKCkucXVldWVUYXNrVG9G
aXJlRmV0Y2hFdmVudChXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZNb3Zl
KHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgZmV0Y2hJZGVu
dGlmaWVyKTsKKyAgICBwb3N0VGFza0Zvck1vZGVUb1dvcmtlck9yV29ya2xldEdsb2JhbFNjb3Bl
KFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMgfSwgY2xpZW50ID0gV1RGTW92ZShj
bGllbnQpLCBjbGllbnRJZCwgcmVxdWVzdCA9IHJlcXVlc3QuaXNvbGF0ZWRDb3B5KCksIHJlZmVy
cmVyID0gcmVmZXJyZXIuaXNvbGF0ZWRDb3B5KCksIG9wdGlvbnMgPSBvcHRpb25zLmlzb2xhdGVk
Q29weSgpLCBmZXRjaElkZW50aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2Fk
RW5hYmxlZF0oYXV0byYpIG11dGFibGUgeworICAgICAgICB0aHJlYWQoKS5xdWV1ZVRhc2tUb0Zp
cmVGZXRjaEV2ZW50KFdURk1vdmUoY2xpZW50KSwgV1RGTW92ZShjbGllbnRJZCksIFdURk1vdmUo
cmVxdWVzdCksIFdURk1vdmUocmVmZXJyZXIpLCBXVEZNb3ZlKG9wdGlvbnMpLCBmZXRjaElkZW50
aWZpZXIsIGlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCk7CiAgICAgfSwg
V29ya2VyUnVuTG9vcDo6ZGVmYXVsdE1vZGUoKSk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9jb250ZXh0L1NlcnZpY2VXb3JrZXJUaHJlYWRQcm94eS5o
IGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRo
cmVhZFByb3h5LmgKaW5kZXggZGE5NmYwZjc4NTdiNTU4ZWJjMjQzMzM3ZDg2YTQ0N2NlYzg5NmIw
YS4uMGEzMzc5MjQ0ODBlYmY4MjY3NTNlZjU0MWEzZjFjZDRjNjkyNWY0YSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2VydmljZVdvcmtlclRocmVh
ZFByb3h5LmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2aWNlL2NvbnRleHQvU2Vy
dmljZVdvcmtlclRocmVhZFByb3h5LmgKQEAgLTc1LDcgKzc1LDcgQEAgcHVibGljOgogCiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBub3RpZnlOZXR3b3JrU3RhdGVDaGFuZ2UoYm9vbCBpc09ubGlu
ZSk7CiAKLSAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0
aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyLCBSZWY8U2VydmljZVdvcmtlckZldGNoOjpD
bGllbnQ+JiYsIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+
JiYsIFJlc291cmNlUmVxdWVzdCYmLCBTdHJpbmcmJiByZWZlcnJlciwgRmV0Y2hPcHRpb25zJiYp
OworICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25J
ZGVudGlmaWVyLCBGZXRjaElkZW50aWZpZXIsIFJlZjxTZXJ2aWNlV29ya2VyRmV0Y2g6OkNsaWVu
dD4mJiwgc3RkOjpvcHRpb25hbDxTY3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllcj4mJiwg
UmVzb3VyY2VSZXF1ZXN0JiYsIFN0cmluZyYmIHJlZmVycmVyLCBGZXRjaE9wdGlvbnMmJiwgYm9v
bCBpc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQpOwogICAgIFdFQkNPUkVf
RVhQT1JUIHZvaWQgY2FuY2VsRmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0
Y2hJZGVudGlmaWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNvbnRpbnVlRGlkUmVjZWl2
ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgRmV0Y2hJZGVudGlm
aWVyKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbW92ZUZldGNoKFNXU2VydmVyQ29ubmVj
dGlvbklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllcik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVyL1NXU2VydmVyUmVnaXN0cmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24u
Y3BwCmluZGV4IGY3YzY3YmQ5YjU2ZDk1ZGRhNzM2NjlhOTM5N2RhMDQwN2JiMjIxYzAuLmVjN2Iz
YmMzMjFjNzMwNzE5ZGQ5NTMyNmNjNDViOGZlYmMxY2IyNzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3Ry
YXRpb24uY3BwCkBAIC0yOCw2ICsyOCw3IEBACiAKICNpZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIp
CiAKKyNpbmNsdWRlICJIVFRQUGFyc2Vycy5oIgogI2luY2x1ZGUgIkxvZ2dpbmcuaCIKICNpbmNs
dWRlICJTV1NlcnZlci5oIgogI2luY2x1ZGUgIlNXU2VydmVyVG9Db250ZXh0Q29ubmVjdGlvbi5o
IgpAQCAtNTQsNiArNTUsNyBAQCBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6U1dTZXJ2ZXJSZWdpc3Ry
YXRpb24oU1dTZXJ2ZXImIHNlcnZlciwgY29uc3QgU2VydmljZVdvcmtlcgogICAgICwgbV9zb2Z0
VXBkYXRlVGltZXIgeyAqdGhpcywgJlNXU2VydmVyUmVnaXN0cmF0aW9uOjpzb2Z0VXBkYXRlIH0K
IHsKICAgICBtX3Njb3BlVVJMLnJlbW92ZUZyYWdtZW50SWRlbnRpZmllcigpOworICAgIG1fcHJl
bG9hZFN0YXRlLmhlYWRlclZhbHVlID0gInRydWUiX3M7CiB9CiAKIFNXU2VydmVyUmVnaXN0cmF0
aW9uOjp+U1dTZXJ2ZXJSZWdpc3RyYXRpb24oKQpAQCAtMzgyLDYgKzM4NCwzOCBAQCB2b2lkIFNX
U2VydmVyUmVnaXN0cmF0aW9uOjpzY2hlZHVsZVNvZnRVcGRhdGUoSXNBcHBJbml0aWF0ZWQgaXNB
cHBJbml0aWF0ZWQpCiAgICAgbV9zb2Z0VXBkYXRlVGltZXIuc3RhcnRPbmVTaG90KHNvZnRVcGRh
dGVEZWxheSk7CiB9CiAKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNk
b20tbmF2aWdhdGlvbnByZWxvYWRtYW5hZ2VyLWVuYWJsZSwgc3RlcHMgcnVuIGluIHBhcmFsbGVs
Lgorc3RkOjpvcHRpb25hbDxFeGNlcHRpb25EYXRhPiBTV1NlcnZlclJlZ2lzdHJhdGlvbjo6ZW5h
YmxlTmF2aWdhdGlvblByZWxvYWQoKQoreworICAgIC8vIEZJWE1FOiBQZXJzaXN0IHRoaXMgZGF0
YS4KKyAgICBpZiAoIW1fYWN0aXZlV29ya2VyKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uRGF0
YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gYWN0aXZlIHdvcmtlciJfcyB9OworICAgIG1fcHJl
bG9hZFN0YXRlLmVuYWJsZWQgPSB0cnVlOworICAgIHJldHVybiB7IH07Cit9CisKKy8vIGh0dHBz
Oi8vdzNjLmdpdGh1Yi5pby9TZXJ2aWNlV29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5h
Z2VyLWRpc2FibGUsIHN0ZXBzIHJ1biBpbiBwYXJhbGxlbC4KK3N0ZDo6b3B0aW9uYWw8RXhjZXB0
aW9uRGF0YT4gU1dTZXJ2ZXJSZWdpc3RyYXRpb246OmRpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZCgp
Cit7CisgICAgLy8gRklYTUU6IFBlcnNpc3QgdGhpcyBkYXRhLgorICAgIGlmICghbV9hY3RpdmVX
b3JrZXIpCisgICAgICAgIHJldHVybiBFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3Is
ICJObyBhY3RpdmUgd29ya2VyIl9zIH07CisgICAgbV9wcmVsb2FkU3RhdGUuZW5hYmxlZCA9IGZh
bHNlOworICAgIHJldHVybiB7IH07Cit9CisKKy8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby9TZXJ2
aWNlV29ya2VyLyNkb20tbmF2aWdhdGlvbnByZWxvYWRtYW5hZ2VyLXNldGhlYWRlcnZhbHVlLCBz
dGVwcyBydW4gaW4gcGFyYWxsZWwuCitzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IFNXU2Vy
dmVyUmVnaXN0cmF0aW9uOjpzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRlclZhbHVlKFN0cmluZyYm
IGhlYWRlclZhbHVlKQoreworICAgIC8vIEZJWE1FOiBQZXJzaXN0IHRoaXMgZGF0YS4KKyAgICBp
ZiAoIWlzVmFsaWRIVFRQSGVhZGVyVmFsdWUoaGVhZGVyVmFsdWUpKQorICAgICAgICByZXR1cm4g
RXhjZXB0aW9uRGF0YSB7IFR5cGVFcnJvciwgIkludmFsaWQgaGVhZGVyIHZhbHVlIl9zIH07Cisg
ICAgaWYgKCFtX2FjdGl2ZVdvcmtlcikKKyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbkRhdGEgeyBJ
bnZhbGlkU3RhdGVFcnJvciwgIk5vIGFjdGl2ZSB3b3JrZXIiX3MgfTsKKyAgICBtX3ByZWxvYWRT
dGF0ZS5oZWFkZXJWYWx1ZSA9IFdURk1vdmUoaGVhZGVyVmFsdWUpOworICAgIHJldHVybiB7IH07
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAogI2VuZGlmIC8vIEVOQUJMRShTRVJWSUNF
X1dPUktFUikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2VydmljZS9zZXJ2
ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvc2Vydmlj
ZS9zZXJ2ZXIvU1dTZXJ2ZXJSZWdpc3RyYXRpb24uaAppbmRleCA3Mjg3MWI5YjBhMDA3OWRlMjM2
YjMzNTkyZDZkY2ZhN2Y0ZWM2YjVlLi45MThiOGU3M2E4ZGMxYTczMWM4YTQ1NzhhOWNjZGRjMmI3
YzE4YjQ0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL3NlcnZpY2Uvc2VydmVy
L1NXU2VydmVyUmVnaXN0cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9zZXJ2
aWNlL3NlcnZlci9TV1NlcnZlclJlZ2lzdHJhdGlvbi5oCkBAIC0yNyw2ICsyNyw3IEBACiAKICNp
ZiBFTkFCTEUoU0VSVklDRV9XT1JLRVIpCiAKKyNpbmNsdWRlICJOYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlLmgiCiAjaW5jbHVkZSAiU1dTZXJ2ZXIuaCIKICNpbmNsdWRlICJTY3JpcHRFeGVjdXRpb25D
b250ZXh0SWRlbnRpZmllci5oIgogI2luY2x1ZGUgIlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25E
YXRhLmgiCkBAIC0xMTAsNiArMTExLDExIEBAIHB1YmxpYzoKICAgICBib29sIGlzQXBwSW5pdGlh
dGVkKCkgY29uc3QgeyByZXR1cm4gbV9pc0FwcEluaXRpYXRlZDsgfQogICAgIHN0ZDo6b3B0aW9u
YWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50aWZpZXI+IHNlcnZpY2VXb3JrZXJQYWdlSWRl
bnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fc2VydmljZVdvcmtlclBhZ2VJZGVudGlmaWVyOyB9
CiAKKyAgICBXRUJDT1JFX0VYUE9SVCBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IGVuYWJs
ZU5hdmlnYXRpb25QcmVsb2FkKCk7CisgICAgV0VCQ09SRV9FWFBPUlQgc3RkOjpvcHRpb25hbDxF
eGNlcHRpb25EYXRhPiBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoKTsKKyAgICBXRUJDT1JFX0VY
UE9SVCBzdGQ6Om9wdGlvbmFsPEV4Y2VwdGlvbkRhdGE+IHNldE5hdmlnYXRpb25QcmVsb2FkSGVh
ZGVyVmFsdWUoU3RyaW5nJiYpOworICAgIGNvbnN0IE5hdmlnYXRpb25QcmVsb2FkU3RhdGUmIG5h
dmlnYXRpb25QcmVsb2FkU3RhdGUoKSBjb25zdCB7IHJldHVybiBtX3ByZWxvYWRTdGF0ZTsgfQor
CiBwcml2YXRlOgogICAgIHZvaWQgYWN0aXZhdGUoKTsKICAgICB2b2lkIGhhbmRsZUNsaWVudFVu
bG9hZCgpOwpAQCAtMTM4LDYgKzE0NCw3IEBAIHByaXZhdGU6CiAgICAgV2ViQ29yZTo6VGltZXIg
bV9zb2Z0VXBkYXRlVGltZXI7CiAgICAgCiAgICAgYm9vbCBtX2lzQXBwSW5pdGlhdGVkIHsgdHJ1
ZSB9OworICAgIE5hdmlnYXRpb25QcmVsb2FkU3RhdGUgbV9wcmVsb2FkU3RhdGU7CiB9OwogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFzay5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlckZldGNoVGFz
ay5jcHAKaW5kZXggMzQ4ZDI3ZTdjYmZhMjNjODY2OTUzOTNmZGQwYzA3NTQ1ZWEwMmM2OS4uZDc4
N2I1MTBhZDc4MDFiODc2ZmRhZjE4YmNlYTYwYTA2Nzc0N2Q3YSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1NlcnZpY2VXb3JrZXJGZXRjaFRh
c2suY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmNwcApAQCAtODgsMTIgKzg4LDExIEBAIFNlcnZpY2VXb3Jr
ZXJGZXRjaFRhc2s6OlNlcnZpY2VXb3JrZXJGZXRjaFRhc2soV2ViU1dTZXJ2ZXJDb25uZWN0aW9u
JiBzd1NlcnZlckNvCiAKICAgICBtX3RpbWVvdXRUaW1lci0+c3RhcnRPbmVTaG90KGxvYWRlci5j
b25uZWN0aW9uVG9XZWJQcm9jZXNzKCkubmV0d29ya1Byb2Nlc3MoKS5zZXJ2aWNlV29ya2VyRmV0
Y2hUaW1lb3V0KCkpOwogCi0gICAgLy8gRklYTUU6IENvbnNpZGVyIGV4dGVuZGluZyB0aGlzIGJh
c2VkIG9uIG5hdmlnYXRpb24gcHJlbG9hZCBtYW5hZ2VyLgogICAgIGJvb2wgc2hvdWxkRG9OYXZp
Z2F0aW9uUHJlbG9hZCA9IHNlc3Npb24gJiYgaXNOYXZpZ2F0aW9uUmVxdWVzdChsb2FkZXIucGFy
YW1ldGVycygpLm9wdGlvbnMuZGVzdGluYXRpb24pICYmIGxvYWRlci5vcmlnaW5hbFJlcXVlc3Qo
KS5odHRwTWV0aG9kKCkgPT0gIkdFVCI7Ci0gICAgaWYgKHNob3VsZERvTmF2aWdhdGlvblByZWxv
YWQgJiYgIWlzV29ya2VyUmVhZHkpIHsKKyAgICBpZiAoc2hvdWxkRG9OYXZpZ2F0aW9uUHJlbG9h
ZCAmJiAoIWlzV29ya2VyUmVhZHkgfHwgcmVnaXN0cmF0aW9uLm5hdmlnYXRpb25QcmVsb2FkU3Rh
dGUoKS5lbmFibGVkKSkgewogICAgICAgICBOZXR3b3JrTG9hZFBhcmFtZXRlcnMgcGFyYW1ldGVy
cyA9IGxvYWRlci5wYXJhbWV0ZXJzKCk7CiAgICAgICAgIHBhcmFtZXRlcnMucmVxdWVzdCA9IG1f
Y3VycmVudFJlcXVlc3Q7Ci0gICAgICAgIG1fcHJlbG9hZGVyID0gbWFrZVVuaXF1ZTxTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcj4oKnNlc3Npb24sIFdURk1vdmUocGFyYW1ldGVycykp
OworICAgICAgICBtX3ByZWxvYWRlciA9IG1ha2VVbmlxdWU8U2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkZXI+KCpzZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRlcnMpLCByZWdpc3RyYXRpb24u
bmF2aWdhdGlvblByZWxvYWRTdGF0ZSgpLCBsb2FkZXIuc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29y
a0xvYWRNZXRyaWNzKCkpOwogICAgICAgICBzZXNzaW9uLT5hZGROYXZpZ2F0aW9uUHJlbG9hZGVy
VGFzaygqdGhpcyk7CiAgICAgfQogfQpAQCAtMTUxLDcgKzE1MCw3IEBAIHZvaWQgU2VydmljZVdv
cmtlckZldGNoVGFzazo6c3RhcnRGZXRjaCgpCiAgICAgYXV0byByZXF1ZXN0ID0gbV9jdXJyZW50
UmVxdWVzdDsKICAgICBjbGVhbkhUVFBSZXF1ZXN0SGVhZGVyc0ZvckFjY2Vzc0NvbnRyb2wocmVx
dWVzdCwgbV9sb2FkZXIucGFyYW1ldGVycygpLmh0dHBIZWFkZXJzVG9LZWVwKTsKIAotICAgIGJv
b2wgaXNTZW50ID0gc2VuZFRvU2VydmljZVdvcmtlcihNZXNzYWdlczo6V2ViU1dDb250ZXh0TWFu
YWdlckNvbm5lY3Rpb246OlN0YXJ0RmV0Y2ggeyBtX3NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBtX3NlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBtX2ZldGNoSWRlbnRpZmllciwgcmVxdWVzdCwg
b3B0aW9ucywgSVBDOjpGb3JtRGF0YVJlZmVyZW5jZSB7IG1fY3VycmVudFJlcXVlc3QuaHR0cEJv
ZHkoKSB9LCByZWZlcnJlciB9KTsKKyAgICBib29sIGlzU2VudCA9IHNlbmRUb1NlcnZpY2VXb3Jr
ZXIoTWVzc2FnZXM6OldlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uOjpTdGFydEZldGNoIHsg
bV9zZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgbV9zZXJ2aWNlV29ya2VySWRlbnRpZmllciwg
bV9mZXRjaElkZW50aWZpZXIsIHJlcXVlc3QsIG9wdGlvbnMsIElQQzo6Rm9ybURhdGFSZWZlcmVu
Y2UgeyBtX2N1cnJlbnRSZXF1ZXN0Lmh0dHBCb2R5KCkgfSwgcmVmZXJyZXIsIG1fcHJlbG9hZGVy
ICYmIG1fcHJlbG9hZGVyLT5pc1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQo
KSB9KTsKICAgICBBU1NFUlRfVU5VU0VEKGlzU2VudCwgaXNTZW50KTsKIH0KIApAQCAtMjgyLDcg
KzI4MSw3IEBAIHZvaWQgU2VydmljZVdvcmtlckZldGNoVGFzazo6ZGlkTm90SGFuZGxlKCkKICAg
ICAgICAgbV90aW1lb3V0VGltZXItPnN0b3AoKTsKICAgICBzb2Z0VXBkYXRlSWZOZWVkZWQoKTsK
IAotICAgIGlmIChtX3ByZWxvYWRlcikgeworICAgIGlmIChtX3ByZWxvYWRlciAmJiAhbV9wcmVs
b2FkZXItPmlzU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCgpKSB7CiAgICAg
ICAgIGxvYWRSZXNwb25zZUZyb21QcmVsb2FkZXIoKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIu
Y3BwCmluZGV4IDMzYTlkNGI2ZGZiODgxMGQyZjQyN2UwZjg3NmI4ODFmMDQwZWMyZTYuLjcxZTBj
ZjZjNmRjN2JlYTUyMmM5MDYwMDU1NWY1NzIxNjFjM2MyZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlv
blByZWxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNl
V29ya2VyL1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyLmNwcApAQCAtMzIsNDYgKzMy
LDY3IEBACiAjaW5jbHVkZSAiTmV0d29ya0NhY2hlLmgiCiAjaW5jbHVkZSAiTmV0d29ya0xvYWQu
aCIKICNpbmNsdWRlICJOZXR3b3JrU2Vzc2lvbi5oIgorI2luY2x1ZGUgPFdlYkNvcmUvTmF2aWdh
dGlvblByZWxvYWRTdGF0ZS5oPgogCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNw
YWNlIFdlYkNvcmU7CiAKLVNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpTZXJ2aWNl
V29ya2VyTmF2aWdhdGlvblByZWxvYWRlcihOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29y
a0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK1NlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJl
bG9hZGVyOjpTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcihOZXR3b3JrU2Vzc2lvbiYg
c2Vzc2lvbiwgTmV0d29ya0xvYWRQYXJhbWV0ZXJzJiYgcGFyYW1ldGVycywgY29uc3QgV2ViQ29y
ZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSYgc3RhdGUsIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJh
TmV0d29ya0xvYWRNZXRyaWMpCiAgICAgOiBtX3Nlc3Npb24oc2Vzc2lvbikKKyAgICAsIG1fcGFy
YW1ldGVycyhXVEZNb3ZlKHBhcmFtZXRlcnMpKQorICAgICwgbV9zdGF0ZShzdGF0ZSkKKyAgICAs
IG1fc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKHNob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljcygpKQogewogICAgIFJFTEVBU0VfTE9HKFNlcnZpY2VXb3JrZXIs
ICJTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlcjo6U2VydmljZVdvcmtlck5hdmlnYXRp
b25QcmVsb2FkZXIgJXAiLCB0aGlzKTsKLSAgICBpZiAoc2Vzc2lvbi5jYWNoZSgpKSB7Ci0gICAg
ICAgIE5ldHdvcmtDYWNoZTo6R2xvYmFsRnJhbWVJRCBnbG9iYWxJRCB7IHBhcmFtZXRlcnMud2Vi
UGFnZVByb3h5SUQsIHBhcmFtZXRlcnMud2ViUGFnZUlELCBwYXJhbWV0ZXJzLndlYkZyYW1lSUQg
fTsKLSAgICAgICAgc2Vzc2lvbi5jYWNoZSgpLT5yZXRyaWV2ZShwYXJhbWV0ZXJzLnJlcXVlc3Qs
IGdsb2JhbElELCBwYXJhbWV0ZXJzLmlzTmF2aWdhdGluZ1RvQXBwQm91bmREb21haW4sIFt0aGlz
LCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBwYXJhbWV0ZXJzID0gV1RGTW92ZShwYXJh
bWV0ZXJzKV0oYXV0byYmIGVudHJ5LCBhdXRvJiYpIG11dGFibGUgeworICAgIGlmICghbV9zdGF0
ZS5lbmFibGVkIHx8IHBhcmFtZXRlcnMuaXNNYWluRnJhbWVOYXZpZ2F0aW9uKQorICAgICAgICBz
dGFydCgpOworfQorCit2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpzdGFy
dCgpCit7CisgICAgaWYgKG1faXNTdGFydGVkKQorICAgICAgICByZXR1cm47CisgICAgbV9pc1N0
YXJ0ZWQgPSB0cnVlOworCisgICAgaWYgKCFtX3Nlc3Npb24pIHsKKyAgICAgICAgZGlkRmFpbExv
YWRpbmcoUmVzb3VyY2VFcnJvciB7IGVycm9yRG9tYWluV2ViS2l0SW50ZXJuYWwsIDAsIHsgfSwg
Ik5vIHNlc3Npb24gZm9yIHByZWxvYWQiX3MgfSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisK
KyAgICBpZiAobV9zZXNzaW9uLT5jYWNoZSgpKSB7CisgICAgICAgIE5ldHdvcmtDYWNoZTo6R2xv
YmFsRnJhbWVJRCBnbG9iYWxJRCB7IG1fcGFyYW1ldGVycy53ZWJQYWdlUHJveHlJRCwgbV9wYXJh
bWV0ZXJzLndlYlBhZ2VJRCwgbV9wYXJhbWV0ZXJzLndlYkZyYW1lSUQgfTsKKyAgICAgICAgbV9z
ZXNzaW9uLT5jYWNoZSgpLT5yZXRyaWV2ZShtX3BhcmFtZXRlcnMucmVxdWVzdCwgZ2xvYmFsSUQs
IG1fcGFyYW1ldGVycy5pc05hdmlnYXRpbmdUb0FwcEJvdW5kRG9tYWluLCBbdGhpcywgd2Vha1Ro
aXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0oYXV0byYmIGVudHJ5LCBhdXRvJiYpIG11dGFibGUgewog
ICAgICAgICAgICAgaWYgKCF3ZWFrVGhpcyB8fCBtX2lzQ2FuY2VsbGVkKQogICAgICAgICAgICAg
ICAgIHJldHVybjsKLSAgICAgICAgICAgIGlmICghbV9zZXNzaW9uKSB7Ci0gICAgICAgICAgICAg
ICAgZGlkRmFpbExvYWRpbmcoUmVzb3VyY2VFcnJvciB7IFJlc291cmNlRXJyb3I6OlR5cGU6OkNh
bmNlbGxhdGlvbiB9KTsKLSAgICAgICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgICB9CisK
ICAgICAgICAgICAgIGlmIChlbnRyeSAmJiAhZW50cnktPm5lZWRzVmFsaWRhdGlvbigpKSB7CiAg
ICAgICAgICAgICAgICAgbG9hZFdpdGhDYWNoZUVudHJ5KCplbnRyeSk7CiAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgfQogCi0gICAgICAgICAgICBwYXJhbWV0ZXJzLnJlcXVl
c3Quc2V0Q2FjaGVQb2xpY3koUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hBbnlD
YWNoZURhdGEpOworICAgICAgICAgICAgbV9wYXJhbWV0ZXJzLnJlcXVlc3Quc2V0Q2FjaGVQb2xp
Y3koUmVzb3VyY2VSZXF1ZXN0Q2FjaGVQb2xpY3k6OlJlZnJlc2hBbnlDYWNoZURhdGEpOwogICAg
ICAgICAgICAgaWYgKGVudHJ5KSB7CiAgICAgICAgICAgICAgICAgbV9jYWNoZUVudHJ5ID0gV1RG
TW92ZShlbnRyeSk7CiAKICAgICAgICAgICAgICAgICBhdXRvIGVUYWcgPSBtX2NhY2hlRW50cnkt
PnJlc3BvbnNlKCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpFVGFnKTsKICAgICAg
ICAgICAgICAgICBpZiAoIWVUYWcuaXNFbXB0eSgpKQotICAgICAgICAgICAgICAgICAgICBwYXJh
bWV0ZXJzLnJlcXVlc3Quc2V0SFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpJZk5vbmVN
YXRjaCwgZVRhZyk7CisgICAgICAgICAgICAgICAgICAgIG1fcGFyYW1ldGVycy5yZXF1ZXN0LnNl
dEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6SWZOb25lTWF0Y2gsIGVUYWcpOwogCiAg
ICAgICAgICAgICAgICAgYXV0byBsYXN0TW9kaWZpZWQgPSBtX2NhY2hlRW50cnktPnJlc3BvbnNl
KCkuaHR0cEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpMYXN0TW9kaWZpZWQpOwogICAgICAg
ICAgICAgICAgIGlmICghbGFzdE1vZGlmaWVkLmlzRW1wdHkoKSkKLSAgICAgICAgICAgICAgICAg
ICAgcGFyYW1ldGVycy5yZXF1ZXN0LnNldEhUVFBIZWFkZXJGaWVsZChIVFRQSGVhZGVyTmFtZTo6
SWZNb2RpZmllZFNpbmNlLCBsYXN0TW9kaWZpZWQpOworICAgICAgICAgICAgICAgICAgICBtX3Bh
cmFtZXRlcnMucmVxdWVzdC5zZXRIVFRQSGVhZGVyRmllbGQoSFRUUEhlYWRlck5hbWU6OklmTW9k
aWZpZWRTaW5jZSwgbGFzdE1vZGlmaWVkKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKCFtX3Nlc3Npb24pIHsKKyAgICAgICAgICAgICAgICBkaWRGYWlsTG9hZGluZyhSZXNvdXJj
ZUVycm9yIHsgUmVzb3VyY2VFcnJvcjo6VHlwZTo6Q2FuY2VsbGF0aW9uIH0pOworICAgICAgICAg
ICAgICAgIHJldHVybjsKICAgICAgICAgICAgIH0KLSAgICAgICAgICAgIGxvYWRGcm9tTmV0d29y
aygqbV9zZXNzaW9uLCBXVEZNb3ZlKHBhcmFtZXRlcnMpKTsKKyAgICAgICAgICAgIGxvYWRGcm9t
TmV0d29yaygpOwogICAgICAgICB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KLSAgICBsb2Fk
RnJvbU5ldHdvcmsoc2Vzc2lvbiwgV1RGTW92ZShwYXJhbWV0ZXJzKSk7CisgICAgbG9hZEZyb21O
ZXR3b3JrKCk7CiB9CiAKIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjp+U2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIoKQpAQCAtOTAsMzEgKzExMSw0MiBAQCB2b2lkIFNl
cnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyOjpjYW5jZWwoKQogdm9pZCBTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlcjo6bG9hZFdpdGhDYWNoZUVudHJ5KE5ldHdvcmtDYWNoZTo6
RW50cnkmIGVudHJ5KQogewogICAgIGRpZFJlY2VpdmVSZXNwb25zZShSZXNvdXJjZVJlc3BvbnNl
IHsgZW50cnkucmVzcG9uc2UoKSB9LCBbYm9keSA9IFJlZlB0ciB7IGVudHJ5LmJ1ZmZlcigpIH0s
IHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dKGF1dG8pIG11dGFibGUgewotICAgICAgICBp
ZiAoIXdlYWtUaGlzKQorICAgICAgICBpZiAoIXdlYWtUaGlzIHx8IHdlYWtUaGlzLT5tX2lzQ2Fu
Y2VsbGVkKQogICAgICAgICAgICAgcmV0dXJuOwogCisgICAgICAgIHNpemVfdCBzaXplICA9IDA7
CiAgICAgICAgIGlmIChib2R5KSB7Ci0gICAgICAgICAgICBhdXRvIHNpemUgPSBib2R5LT5zaXpl
KCk7CisgICAgICAgICAgICBzaXplID0gYm9keS0+c2l6ZSgpOwogICAgICAgICAgICAgd2Vha1Ro
aXMtPmRpZFJlY2VpdmVCdWZmZXIoYm9keS5yZWxlYXNlTm9uTnVsbCgpLCBzaXplKTsKKyAgICAg
ICAgICAgIGlmICghd2Vha1RoaXMpCisgICAgICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICB9
CiAKLSAgICAgICAgaWYgKCF3ZWFrVGhpcykKLSAgICAgICAgICAgIHJldHVybjsKLQogICAgICAg
ICBOZXR3b3JrTG9hZE1ldHJpY3MgbmV0d29ya0xvYWRNZXRyaWNzOwogICAgICAgICBuZXR3b3Jr
TG9hZE1ldHJpY3MubWFya0NvbXBsZXRlKCk7CiAgICAgICAgIG5ldHdvcmtMb2FkTWV0cmljcy5y
ZXNwb25zZUJvZHlCeXRlc1JlY2VpdmVkID0gMDsKLSAgICAgICAgbmV0d29ya0xvYWRNZXRyaWNz
LnJlc3BvbnNlQm9keURlY29kZWRTaXplID0gMDsKKyAgICAgICAgbmV0d29ya0xvYWRNZXRyaWNz
LnJlc3BvbnNlQm9keURlY29kZWRTaXplID0gc2l6ZTsKKyAgICAgICAgaWYgKHdlYWtUaGlzLT5z
aG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9hZE1ldHJpY3MoKSkgeworICAgICAgICAgICAgYXV0
byBhZGRpdGlvbmFsTWV0cmljcyA9IFdlYkNvcmU6OkFkZGl0aW9uYWxOZXR3b3JrTG9hZE1ldHJp
Y3NGb3JXZWJJbnNwZWN0b3I6OmNyZWF0ZSgpOworICAgICAgICAgICAgYWRkaXRpb25hbE1ldHJp
Y3MtPnJlcXVlc3RIZWFkZXJCeXRlc1NlbnQgPSAwOworICAgICAgICAgICAgYWRkaXRpb25hbE1l
dHJpY3MtPnJlcXVlc3RCb2R5Qnl0ZXNTZW50ID0gMDsKKyAgICAgICAgICAgIGFkZGl0aW9uYWxN
ZXRyaWNzLT5yZXNwb25zZUhlYWRlckJ5dGVzUmVjZWl2ZWQgPSAwOworICAgICAgICAgICAgbmV0
d29ya0xvYWRNZXRyaWNzLmFkZGl0aW9uYWxOZXR3b3JrTG9hZE1ldHJpY3NGb3JXZWJJbnNwZWN0
b3IgPSBXVEZNb3ZlKGFkZGl0aW9uYWxNZXRyaWNzKTsKKyAgICAgICAgfQogICAgICAgICB3ZWFr
VGhpcy0+ZGlkRmluaXNoTG9hZGluZyhuZXR3b3JrTG9hZE1ldHJpY3MpOwogICAgIH0pOwogICAg
IGRpZENvbXBsZXRlKCk7CiB9CiAKLXZvaWQgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2Fk
ZXI6OmxvYWRGcm9tTmV0d29yayhOZXR3b3JrU2Vzc2lvbiYgc2Vzc2lvbiwgTmV0d29ya0xvYWRQ
YXJhbWV0ZXJzJiYgcGFyYW1ldGVycykKK3ZvaWQgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkZXI6OmxvYWRGcm9tTmV0d29yaygpCiB7CisgICAgQVNTRVJUKG1fc2Vzc2lvbik7CiAgICAg
UkVMRUFTRV9MT0coU2VydmljZVdvcmtlciwgIlNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9h
ZGVyOjpsb2FkRnJvbU5ldHdvcmsgJXAiLCB0aGlzKTsKIAotICAgIG1fbmV0d29ya0xvYWQgPSBt
YWtlVW5pcXVlPE5ldHdvcmtMb2FkPigqdGhpcywgbnVsbHB0ciwgV1RGTW92ZShwYXJhbWV0ZXJz
KSwgc2Vzc2lvbik7CisgICAgaWYgKG1fc3RhdGUuZW5hYmxlZCkKKyAgICAgICAgbV9wYXJhbWV0
ZXJzLnJlcXVlc3QuYWRkSFRUUEhlYWRlckZpZWxkKEhUVFBIZWFkZXJOYW1lOjpTZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWQsIG1fc3RhdGUuaGVhZGVyVmFsdWUpOworCisgICAgbV9uZXR3
b3JrTG9hZCA9IG1ha2VVbmlxdWU8TmV0d29ya0xvYWQ+KCp0aGlzLCBudWxscHRyLCBXVEZNb3Zl
KG1fcGFyYW1ldGVycyksICptX3Nlc3Npb24pOwogICAgIG1fbmV0d29ya0xvYWQtPnN0YXJ0KCk7
CiB9CiAKQEAgLTE3Nyw2ICsyMDksOCBAQCB2b2lkIFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJl
bG9hZGVyOjpkaWRDb21wbGV0ZSgpCiAKIHZvaWQgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVs
b2FkZXI6OndhaXRGb3JSZXNwb25zZShSZXNwb25zZUNhbGxiYWNrJiYgY2FsbGJhY2spCiB7Cisg
ICAgc3RhcnQoKTsKKwogICAgIGlmICghbV9lcnJvci5pc051bGwoKSkgewogICAgICAgICBjYWxs
YmFjaygpOwogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdv
cmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIu
aCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29y
a2VyTmF2aWdhdGlvblByZWxvYWRlci5oCmluZGV4IDBhZmNiMDcwN2RhZWQ2N2YwYTI3Nzk2N2Q1
ZWM0NzJkYzBmZTBjOTcuLjFlNzhjMmNlZmExNTQ4NDEwNDA2MGYzYjE5ZGM1MGU2Y2I4ZjFlYjQg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9T
ZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9TZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRl
ci5oCkBAIC0yOSw2ICsyOSw4IEBACiAKICNpbmNsdWRlICJOZXR3b3JrQ2FjaGVFbnRyeS5oIgog
I2luY2x1ZGUgIk5ldHdvcmtMb2FkQ2xpZW50LmgiCisjaW5jbHVkZSAiTmV0d29ya0xvYWRQYXJh
bWV0ZXJzLmgiCisjaW5jbHVkZSA8V2ViQ29yZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg+CiAj
aW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewpAQCAtMzgsMTMg
KzQwLDEyIEBAIGNsYXNzIE5ldHdvcmtMb2FkTWV0cmljczsKIG5hbWVzcGFjZSBXZWJLaXQgewog
CiBjbGFzcyBOZXR3b3JrTG9hZDsKLWNsYXNzIE5ldHdvcmtMb2FkUGFyYW1ldGVyczsKIGNsYXNz
IE5ldHdvcmtTZXNzaW9uOwogCiBjbGFzcyBTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRl
ciBmaW5hbCA6IHB1YmxpYyBOZXR3b3JrTG9hZENsaWVudCwgcHVibGljIENhbk1ha2VXZWFrUHRy
PFNlcnZpY2VXb3JrZXJOYXZpZ2F0aW9uUHJlbG9hZGVyPiB7CiAgICAgV1RGX01BS0VfRkFTVF9B
TExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgU2VydmljZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkZXIo
TmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJik7CisgICAgU2VydmljZVdv
cmtlck5hdmlnYXRpb25QcmVsb2FkZXIoTmV0d29ya1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFt
ZXRlcnMmJiwgY29uc3QgV2ViQ29yZTo6TmF2aWdhdGlvblByZWxvYWRTdGF0ZSYsIGJvb2wgc2hv
dWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRyaWNzKTsKICAgICB+U2VydmljZVdvcmtlck5h
dmlnYXRpb25QcmVsb2FkZXIoKTsKIAogICAgIHZvaWQgY2FuY2VsKCk7CkBAIC01Nyw2ICs1OCw3
IEBAIHB1YmxpYzoKICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZUVycm9yJiBlcnJvcigpIGNv
bnN0IHsgcmV0dXJuIG1fZXJyb3I7IH0KICAgICBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlc3Bv
bnNlJiByZXNwb25zZSgpIGNvbnN0IHsgcmV0dXJuIG1fcmVzcG9uc2U7IH0KICAgICBjb25zdCBX
ZWJDb3JlOjpOZXR3b3JrTG9hZE1ldHJpY3MmIG5ldHdvcmtMb2FkTWV0cmljcygpIGNvbnN0IHsg
cmV0dXJuIG1fbmV0d29ya0xvYWRNZXRyaWNzOyB9CisgICAgYm9vbCBpc1NlcnZpY2VXb3JrZXJO
YXZpZ2F0aW9uUHJlbG9hZEVuYWJsZWQoKSBjb25zdCB7IHJldHVybiBtX3N0YXRlLmVuYWJsZWQ7
IH0KIAogcHJpdmF0ZToKICAgICAvLyBOZXR3b3JrTG9hZENsaWVudC4KQEAgLTY4LDE0ICs3MCwx
OCBAQCBwcml2YXRlOgogICAgIHZvaWQgZGlkUmVjZWl2ZUJ1ZmZlcihSZWY8V2ViQ29yZTo6U2hh
cmVkQnVmZmVyPiYmLCBpbnQgcmVwb3J0ZWRFbmNvZGVkRGF0YUxlbmd0aCkgZmluYWw7CiAgICAg
dm9pZCBkaWRGaW5pc2hMb2FkaW5nKGNvbnN0IFdlYkNvcmU6Ok5ldHdvcmtMb2FkTWV0cmljcyYp
IGZpbmFsOwogICAgIHZvaWQgZGlkRmFpbExvYWRpbmcoY29uc3QgV2ViQ29yZTo6UmVzb3VyY2VF
cnJvciYpIGZpbmFsOworICAgIGJvb2wgc2hvdWxkQ2FwdHVyZUV4dHJhTmV0d29ya0xvYWRNZXRy
aWNzKCkgY29uc3QgZmluYWwgeyByZXR1cm4gbV9zaG91bGRDYXB0dXJlRXh0cmFOZXR3b3JrTG9h
ZE1ldHJpY3M7IH0KIAorICAgIHZvaWQgc3RhcnQoKTsKICAgICB2b2lkIGxvYWRXaXRoQ2FjaGVF
bnRyeShOZXR3b3JrQ2FjaGU6OkVudHJ5Jik7Ci0gICAgdm9pZCBsb2FkRnJvbU5ldHdvcmsoTmV0
d29ya1Nlc3Npb24mLCBOZXR3b3JrTG9hZFBhcmFtZXRlcnMmJik7CisgICAgdm9pZCBsb2FkRnJv
bU5ldHdvcmsoKTsKICAgICB2b2lkIGRpZENvbXBsZXRlKCk7CiAKICAgICBzdGQ6OnVuaXF1ZV9w
dHI8TmV0d29ya0xvYWQ+IG1fbmV0d29ya0xvYWQ7CiAgICAgV2Vha1B0cjxOZXR3b3JrU2Vzc2lv
bj4gbV9zZXNzaW9uOwotICAgIGJvb2wgbV9pc0NhbmNlbGxlZCB7IGZhbHNlIH07CisKKyAgICBO
ZXR3b3JrTG9hZFBhcmFtZXRlcnMgbV9wYXJhbWV0ZXJzOworICAgIFdlYkNvcmU6Ok5hdmlnYXRp
b25QcmVsb2FkU3RhdGUgbV9zdGF0ZTsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxOZXR3b3JrQ2Fj
aGU6OkVudHJ5PiBtX2NhY2hlRW50cnk7CiAgICAgV2ViQ29yZTo6TmV0d29ya0xvYWRNZXRyaWNz
IG1fbmV0d29ya0xvYWRNZXRyaWNzOwpAQCAtODUsNiArOTEsMTAgQEAgcHJpdmF0ZToKIAogICAg
IFJlc3BvbnNlQ2FsbGJhY2sgbV9yZXNwb25zZUNhbGxiYWNrOwogICAgIEJvZHlDYWxsYmFjayBt
X2JvZHlDYWxsYmFjazsKKworICAgIGJvb2wgbV9pc1N0YXJ0ZWQgeyBmYWxzZSB9OworICAgIGJv
b2wgbV9pc0NhbmNlbGxlZCB7IGZhbHNlIH07CisgICAgYm9vbCBtX3Nob3VsZENhcHR1cmVFeHRy
YU5ldHdvcmtMb2FkTWV0cmljcyB7IGZhbHNlIH07CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtl
ci9XZWJTV1NlcnZlckNvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKaW5kZXggMTg4ZjIwOTli
ODUwM2U2ZmM0OTE1ODA5MjQwZDcyMTEyY2Q2ZjBjNC4uMTEyNDQyODI4MmNkNmU0Yzk1NTg5NmE4
NmFhYzJmNzBmNDU1NmNhYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5j
cHAKQEAgLTUyMyw2ICs1MjMsNDYgQEAgdm9pZCBXZWJTV1NlcnZlckNvbm5lY3Rpb246OmZldGNo
VGFza1RpbWVkT3V0KFNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIHNlcnZpY2VXb3IKICAgICB3b3Jr
ZXItPnRlcm1pbmF0ZSgpOwogfQogCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6ZW5hYmxl
TmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50
aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3sKKyAgICBhdXRvKiByZWdpc3RyYXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3Ry
YXRpb24ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsK
KyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uRGF0YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8g
cmVnaXN0cmF0aW9uIl9zIH0pOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNr
KHJlZ2lzdHJhdGlvbi0+ZW5hYmxlTmF2aWdhdGlvblByZWxvYWQoKSk7Cit9CisKK3ZvaWQgV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uOjpkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgcmVnaXN0cmF0aW9uSWRlbnRpZmllciwg
RXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiByZWdpc3Ry
YXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7
CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uRGF0
YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVnaXN0cmF0aW9uIl9zIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+ZGlzYWJsZU5hdmlnYXRp
b25QcmVsb2FkKCkpOworfQorCit2b2lkIFdlYlNXU2VydmVyQ29ubmVjdGlvbjo6c2V0TmF2aWdh
dGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9u
SWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJpbmcmJiBoZWFkZXJWYWx1ZSwg
RXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICBhdXRvKiByZWdpc3Ry
YXRpb24gPSBzZXJ2ZXIoKS5nZXRSZWdpc3RyYXRpb24ocmVnaXN0cmF0aW9uSWRlbnRpZmllcik7
CisgICAgaWYgKCFyZWdpc3RyYXRpb24pIHsKKyAgICAgICAgY2FsbGJhY2soRXhjZXB0aW9uRGF0
YSB7IEludmFsaWRTdGF0ZUVycm9yLCAiTm8gcmVnaXN0cmF0aW9uIl9zIH0pOworICAgICAgICBy
ZXR1cm47CisgICAgfQorICAgIGNhbGxiYWNrKHJlZ2lzdHJhdGlvbi0+c2V0TmF2aWdhdGlvblBy
ZWxvYWRIZWFkZXJWYWx1ZShXVEZNb3ZlKGhlYWRlclZhbHVlKSkpOworfQorCit2b2lkIFdlYlNX
U2VydmVyQ29ubmVjdGlvbjo6Z2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2
aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBF
eGNlcHRpb25Pck5hdmlnYXRpb25QcmVsb2FkU3RhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQorewor
ICAgIGF1dG8qIHJlZ2lzdHJhdGlvbiA9IHNlcnZlcigpLmdldFJlZ2lzdHJhdGlvbihyZWdpc3Ry
YXRpb25JZGVudGlmaWVyKTsKKyAgICBpZiAoIXJlZ2lzdHJhdGlvbikgeworICAgICAgICBjYWxs
YmFjayhtYWtlVW5leHBlY3RlZChFeGNlcHRpb25EYXRhIHsgSW52YWxpZFN0YXRlRXJyb3IsIHsg
fSB9KSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgY2FsbGJhY2socmVnaXN0cmF0aW9u
LT5uYXZpZ2F0aW9uUHJlbG9hZFN0YXRlKCkpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQK
IAogI3VuZGVmIFNXU0VSVkVSQ09OTkVDVElPTl9SRUxFQVNFX0xPRwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVj
dGlvbi5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNX
U2VydmVyQ29ubmVjdGlvbi5oCmluZGV4IDE3NGZlNzI2NjQ4MWEzM2Q5MjI0NzRjYjQ3Y2I3ZDlm
Y2MyNTNiMjYuLjk2YTJjYjBkMWNhOTk3OWNmZDQ1MWE3N2U1NWVlN2NiNDUxMmRlYWQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1Nl
cnZlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZp
Y2VXb3JrZXIvV2ViU1dTZXJ2ZXJDb25uZWN0aW9uLmgKQEAgLTMyLDYgKzMyLDcgQEAKICNpbmNs
dWRlICJTZXJ2aWNlV29ya2VyRmV0Y2hUYXNrLmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9FeGNlcHRp
b25Pci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRmV0Y2hJZGVudGlmaWVyLmg+CisjaW5jbHVkZSA8
V2ViQ29yZS9OYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9Qcm9j
ZXNzSWRlbnRpZmllci5oPgogI2luY2x1ZGUgPFdlYkNvcmUvUHVzaFBlcm1pc3Npb25TdGF0ZS5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvUHVzaFN1YnNjcmlwdGlvbkRhdGEuaD4KQEAgLTEyOCw2ICsx
MjksMTMgQEAgcHJpdmF0ZToKICAgICB2b2lkIHBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdl
YkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uLCBXZWJDb3JlOjpNZXNz
YWdlV2l0aE1lc3NhZ2VQb3J0cyYmLCBjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VyT3JDbGll
bnRJZGVudGlmaWVyJiBzb3VyY2UpOwogICAgIHZvaWQgY29udHJvbENsaWVudChXZWJDb3JlOjpT
Y3JpcHRFeGVjdXRpb25Db250ZXh0SWRlbnRpZmllciwgV2ViQ29yZTo6U1dTZXJ2ZXJSZWdpc3Ry
YXRpb24mLCBjb25zdCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmKTsKIAorICAgIHVzaW5nIEV4
Y2VwdGlvbk9yVm9pZENhbGxiYWNrID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+JiYpPjsKKyAgICB2b2lkIGVuYWJsZU5hdmlnYXRp
b25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBF
eGNlcHRpb25PclZvaWRDYWxsYmFjayYmKTsKKyAgICB2b2lkIGRpc2FibGVOYXZpZ2F0aW9uUHJl
bG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0
aW9uT3JWb2lkQ2FsbGJhY2smJik7CisgICAgdm9pZCBzZXROYXZpZ2F0aW9uUHJlbG9hZEhlYWRl
clZhbHVlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyLCBTdHJp
bmcmJiwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJik7CisgICAgdXNpbmcgRXhjZXB0aW9uT3JO
YXZpZ2F0aW9uUHJlbG9hZFN0YXRlQ2FsbGJhY2sgPSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKEV4
cGVjdGVkPFdlYkNvcmU6Ok5hdmlnYXRpb25QcmVsb2FkU3RhdGUsIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGE+JiYpPjsKKyAgICB2b2lkIGdldE5hdmlnYXRpb25QcmVsb2FkU3RhdGUoV2ViQ29yZTo6
U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yTmF2aWdhdGlv
blByZWxvYWRTdGF0ZUNhbGxiYWNrJiYpOworCiAgICAgVVJMIGNsaWVudFVSTEZyb21JZGVudGlm
aWVyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJPckNsaWVudElkZW50aWZpZXIpOwogCiAgICAgSVBD
OjpDb25uZWN0aW9uKiBtZXNzYWdlU2VuZGVyQ29ubmVjdGlvbigpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fY29udGVudENvbm5lY3Rpb24ucHRyKCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdvcmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVz
c2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1NlcnZpY2VXb3JrZXIvV2Vi
U1dTZXJ2ZXJDb25uZWN0aW9uLm1lc3NhZ2VzLmluCmluZGV4IGM5N2Q1MmM3MjFmMGRjMmVjYzM4
MTA1MWYzNzJlYTAwYWY5NzdmNmUuLmFlMmIyN2Y0ZWQ2NTc4OGM1ODhlNjFiNTk3NThjZTgyODdl
MmNjY2YgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvU2VydmljZVdv
cmtlci9XZWJTV1NlcnZlckNvbm5lY3Rpb24ubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9TZXJ2aWNlV29ya2VyL1dlYlNXU2VydmVyQ29ubmVjdGlvbi5tZXNz
YWdlcy5pbgpAQCAtNTEsNiArNTEsMTEgQEAgbWVzc2FnZXMgLT4gV2ViU1dTZXJ2ZXJDb25uZWN0
aW9uIE5vdFJlZkNvdW50ZWQgewogICAgIFVuc3Vic2NyaWJlRnJvbVB1c2hTZXJ2aWNlKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChF
eHBlY3RlZDxib29sLCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCiAgICAg
R2V0UHVzaFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciBpZGVudGlmaWVyKSAtPiAoRXhwZWN0ZWQ8c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQ
dXNoU3Vic2NyaXB0aW9uRGF0YT4sIFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5
bmMKICAgICBHZXRQdXNoUGVybWlzc2lvblN0YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdp
c3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZpZXIpIC0+IChFeHBlY3RlZDx1aW50OF90LCBXZWJD
b3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jIAorCisgICAgRW5hYmxlTmF2aWdhdGlv
blByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbklkZW50aWZpZXIgaWRl
bnRpZmllcikgLT4gKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6RXhjZXB0aW9uRGF0YT4gcmVzdWx0
KSBBc3luYworICAgIERpc2FibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29y
a2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciBpZGVudGlmaWVyKSAtPiAoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCisgICAgU2V0TmF2aWdhdGlvblBy
ZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciBpZGVudGlmaWVyLCBTdHJpbmcgdmFsdWUpIC0+IChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OkV4Y2VwdGlvbkRhdGE+IHJlc3VsdCkgQXN5bmMKKyAgICBHZXROYXZpZ2F0aW9uUHJlbG9hZFN0
YXRlKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb25JZGVudGlmaWVyIGlkZW50aWZp
ZXIpIC0+IChFeHBlY3RlZDxXZWJDb3JlOjpOYXZpZ2F0aW9uUHJlbG9hZFN0YXRlLCBXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhPiByZXN1bHQpIEFzeW5jCiB9CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VS
VklDRV9XT1JLRVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFn
ZS9XZWJTV0NsaWVudENvbm5lY3Rpb24uY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0
b3JhZ2UvV2ViU1dDbGllbnRDb25uZWN0aW9uLmNwcAppbmRleCA0NTIyYTAyODdjNGM4M2E0ZTI4
M2I2M2ZhMTY0MGNjMmQ4YTEzNmFlLi4xODI2MDViOGUwZTMyZWYwNWEzOTFmY2MwOTNiMDQ0NWY3
ZDA2NmExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJT
V0NsaWVudENvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9y
YWdlL1dlYlNXQ2xpZW50Q29ubmVjdGlvbi5jcHAKQEAgLTI2NSw2ICsyNjUsNDIgQEAgdm9pZCBX
ZWJTV0NsaWVudENvbm5lY3Rpb246OmdldFB1c2hQZXJtaXNzaW9uU3RhdGUoV2ViQ29yZTo6U2Vy
dmljZVdvcmtlclJlZ2lzdHIKICAgICB9KTsKIH0KIAordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rp
b246OmVuYWJsZU5hdmlnYXRpb25QcmVsb2FkKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJSZWdpc3Ry
YXRpb25JZGVudGlmaWVyIHJlZ2lzdHJhdGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENh
bGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpX
ZWJTV1NlcnZlckNvbm5lY3Rpb246OkVuYWJsZU5hdmlnYXRpb25QcmVsb2FkIHsgcmVnaXN0cmF0
aW9uSWRlbnRpZmllciB9LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oYXV0byYmIGVy
cm9yKSBtdXRhYmxlIHsKKyAgICAgICAgaWYgKGVycm9yKQorICAgICAgICAgICAgcmV0dXJuIGNh
bGxiYWNrKGVycm9yLT50b0V4Y2VwdGlvbigpKTsKKyAgICAgICAgY2FsbGJhY2soeyB9KTsKKyAg
ICB9KTsKK30KKwordm9pZCBXZWJTV0NsaWVudENvbm5lY3Rpb246OmRpc2FibGVOYXZpZ2F0aW9u
UHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdp
c3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25PclZvaWRDYWxsYmFjayYmIGNhbGxiYWNrKQor
eworICAgIHNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9u
OjpEaXNhYmxlTmF2aWdhdGlvblByZWxvYWQgeyByZWdpc3RyYXRpb25JZGVudGlmaWVyIH0sIFtj
YWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXShhdXRvJiYgZXJyb3IpIG11dGFibGUgeworICAg
ICAgICBpZiAoZXJyb3IpCisgICAgICAgICAgICByZXR1cm4gY2FsbGJhY2soZXJyb3ItPnRvRXhj
ZXB0aW9uKCkpOworICAgICAgICBjYWxsYmFjayh7IH0pOworICAgIH0pOworfQorCit2b2lkIFdl
YlNXQ2xpZW50Q29ubmVjdGlvbjo6c2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJD
b3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciByZWdpc3RyYXRpb25JZGVu
dGlmaWVyLCBTdHJpbmcmJiBoZWFkZXJWYWx1ZSwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJiBj
YWxsYmFjaykKK3sKKyAgICBzZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYlNXU2VydmVy
Q29ubmVjdGlvbjo6U2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZSB7IHJlZ2lzdHJhdGlv
bklkZW50aWZpZXIsIGhlYWRlclZhbHVlIH0sIFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2sp
XShhdXRvJiYgZXJyb3IpIG11dGFibGUgeworICAgICAgICBpZiAoZXJyb3IpCisgICAgICAgICAg
ICByZXR1cm4gY2FsbGJhY2soZXJyb3ItPnRvRXhjZXB0aW9uKCkpOworICAgICAgICBjYWxsYmFj
ayh7IH0pOworICAgIH0pOworfQorCit2b2lkIFdlYlNXQ2xpZW50Q29ubmVjdGlvbjo6Z2V0TmF2
aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRl
bnRpZmllciByZWdpc3RyYXRpb25JZGVudGlmaWVyLCBFeGNlcHRpb25Pck5hdmlnYXRpb25QcmVs
b2FkU3RhdGVDYWxsYmFjayYmIGNhbGxiYWNrKQoreworICAgIHNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViU1dTZXJ2ZXJDb25uZWN0aW9uOjpHZXROYXZpZ2F0aW9uUHJlbG9hZFN0YXRl
IHsgcmVnaXN0cmF0aW9uSWRlbnRpZmllciB9LCBbY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oYXV0byYmIHJlc3VsdCkgbXV0YWJsZSB7CisgICAgICAgIGlmICghcmVzdWx0Lmhhc192YWx1
ZSgpKQorICAgICAgICAgICAgcmV0dXJuIGNhbGxiYWNrKHJlc3VsdC5lcnJvcigpLnRvRXhjZXB0
aW9uKCkpOworICAgICAgICBjYWxsYmFjayhXVEZNb3ZlKCpyZXN1bHQpKTsKKyAgICB9KTsKK30K
KwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CiAKICNlbmRpZiAvLyBFTkFCTEUoU0VSVklDRV9XT1JL
RVIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Ns
aWVudENvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNX
Q2xpZW50Q29ubmVjdGlvbi5oCmluZGV4IDNkMTg5NTg4NDAxNmQyOGM2N2EwOTFlMmEwYzIwZjZm
ZmZhMzljY2EuLmUyYTFkMzZmYzhiYjlhYTE2NDZhYTVmN2QyNDU0MDJhYzBjMjY4YTMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50Q29ubmVj
dGlvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dlYlNXQ2xpZW50
Q29ubmVjdGlvbi5oCkBAIC05NSw2ICs5NSwxMSBAQCBwcml2YXRlOgogICAgIHZvaWQgZ2V0UHVz
aFN1YnNjcmlwdGlvbihXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmll
ciwgR2V0UHVzaFN1YnNjcmlwdGlvbkNhbGxiYWNrJiYpIGZpbmFsOwogICAgIHZvaWQgZ2V0UHVz
aFBlcm1pc3Npb25TdGF0ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRp
ZmllciwgR2V0UHVzaFBlcm1pc3Npb25TdGF0ZUNhbGxiYWNrJiYpIGZpbmFsOwogCisgICAgdm9p
ZCBlbmFibGVOYXZpZ2F0aW9uUHJlbG9hZChXZWJDb3JlOjpTZXJ2aWNlV29ya2VyUmVnaXN0cmF0
aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JWb2lkQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9p
ZCBkaXNhYmxlTmF2aWdhdGlvblByZWxvYWQoV2ViQ29yZTo6U2VydmljZVdvcmtlclJlZ2lzdHJh
dGlvbklkZW50aWZpZXIsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNrJiYpIGZpbmFsOworICAgIHZv
aWQgc2V0TmF2aWdhdGlvblByZWxvYWRIZWFkZXJWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uSWRlbnRpZmllciwgU3RyaW5nJiYsIEV4Y2VwdGlvbk9yVm9pZENhbGxiYWNr
JiYpIGZpbmFsOworICAgIHZvaWQgZ2V0TmF2aWdhdGlvblByZWxvYWRTdGF0ZShXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uSWRlbnRpZmllciwgRXhjZXB0aW9uT3JOYXZpZ2F0aW9u
UHJlbG9hZFN0YXRlQ2FsbGJhY2smJikgZmluYWw7CisKICAgICB2b2lkIHNjaGVkdWxlU3RvcmFn
ZUpvYihjb25zdCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySm9iRGF0YSYpOwogCiAgICAgdm9pZCBy
dW5PckRlbGF5VGFza0ZvckltcG9ydChGdW5jdGlvbjx2b2lkKCk+JiYgdGFzayk7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0Nv
bnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5jcHAKaW5kZXggYWE3NDNjNjJlM2YzYjU1NDNjYTdjZmM3
YjUyZTJlMzBhZDk5MTljZC4uZjg2MjliZTAwNjUwYjM5MmI5MGM0ZmEzOTE5MWZjOTQ4NDBmYWIw
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250
ZXh0TWFuYWdlckNvbm5lY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9T
dG9yYWdlL1dlYlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmNwcApAQCAtMjM3LDcgKzIzNyw3
IEBAIHZvaWQgV2ViU1dDb250ZXh0TWFuYWdlckNvbm5lY3Rpb246OmNvbnRpbnVlRGlkUmVjZWl2
ZUZldGNoUmVzcG9uc2UoU1dTZXJ2ZXJDb25uCiAgICAgICAgIHNlcnZpY2VXb3JrZXJUaHJlYWRQ
cm94eS0+Y29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShzZXJ2ZXJDb25uZWN0aW9uSWRl
bnRpZmllciwgZmV0Y2hJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBXZWJTV0NvbnRleHRNYW5hZ2Vy
Q29ubmVjdGlvbjo6c3RhcnRGZXRjaChTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZl
ckNvbm5lY3Rpb25JZGVudGlmaWVyLCBTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29y
a2VySWRlbnRpZmllciwgRmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgUmVzb3VyY2VS
ZXF1ZXN0JiYgcmVxdWVzdCwgRmV0Y2hPcHRpb25zJiYgb3B0aW9ucywgSVBDOjpGb3JtRGF0YVJl
ZmVyZW5jZSYmIGZvcm1EYXRhLCBTdHJpbmcmJiByZWZlcnJlcikKK3ZvaWQgV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb246OnN0YXJ0RmV0Y2goU1dTZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmll
ciBzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwgU2VydmljZVdvcmtlcklkZW50aWZpZXIgc2Vy
dmljZVdvcmtlcklkZW50aWZpZXIsIEZldGNoSWRlbnRpZmllciBmZXRjaElkZW50aWZpZXIsIFJl
c291cmNlUmVxdWVzdCYmIHJlcXVlc3QsIEZldGNoT3B0aW9ucyYmIG9wdGlvbnMsIElQQzo6Rm9y
bURhdGFSZWZlcmVuY2UmJiBmb3JtRGF0YSwgU3RyaW5nJiYgcmVmZXJyZXIsIGJvb2wgaXNTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKQogewogICAgIGF1dG8qIHNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eSA9IFNXQ29udGV4dE1hbmFnZXI6OnNpbmdsZXRvbigpLnNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eShzZXJ2aWNlV29ya2VySWRlbnRpZmllcik7CiAgICAgaWYgKCFzZXJ2
aWNlV29ya2VyVGhyZWFkUHJveHkpIHsKQEAgLTI1Niw3ICsyNTYsNyBAQCB2b2lkIFdlYlNXQ29u
dGV4dE1hbmFnZXJDb25uZWN0aW9uOjpzdGFydEZldGNoKFNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydgogICAgIHN0ZDo6b3B0aW9uYWw8U2NyaXB0RXhlY3V0aW9uQ29udGV4dElkZW50
aWZpZXI+IGNsaWVudElkID0gb3B0aW9ucy5jbGllbnRJZGVudGlmaWVyOwogCiAgICAgcmVxdWVz
dC5zZXRIVFRQQm9keShmb3JtRGF0YS50YWtlRGF0YSgpKTsKLSAgICBzZXJ2aWNlV29ya2VyVGhy
ZWFkUHJveHktPnN0YXJ0RmV0Y2goc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIGZldGNoSWRl
bnRpZmllciwgV1RGTW92ZShjbGllbnQpLCBXVEZNb3ZlKGNsaWVudElkKSwgV1RGTW92ZShyZXF1
ZXN0KSwgV1RGTW92ZShyZWZlcnJlciksIFdURk1vdmUob3B0aW9ucykpOworICAgIHNlcnZpY2VX
b3JrZXJUaHJlYWRQcm94eS0+c3RhcnRGZXRjaChzZXJ2ZXJDb25uZWN0aW9uSWRlbnRpZmllciwg
ZmV0Y2hJZGVudGlmaWVyLCBXVEZNb3ZlKGNsaWVudCksIFdURk1vdmUoY2xpZW50SWQpLCBXVEZN
b3ZlKHJlcXVlc3QpLCBXVEZNb3ZlKHJlZmVycmVyKSwgV1RGTW92ZShvcHRpb25zKSwgaXNTZXJ2
aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVkKTsKIH0KIAogdm9pZCBXZWJTV0NvbnRl
eHRNYW5hZ2VyQ29ubmVjdGlvbjo6cG9zdE1lc3NhZ2VUb1NlcnZpY2VXb3JrZXIoU2VydmljZVdv
cmtlcklkZW50aWZpZXIgZGVzdGluYXRpb25JZGVudGlmaWVyLCBNZXNzYWdlV2l0aE1lc3NhZ2VQ
b3J0cyYmIG1lc3NhZ2UsIFNlcnZpY2VXb3JrZXJPckNsaWVudERhdGEmJiBzb3VyY2VEYXRhKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9TdG9yYWdlL1dl
YlNXQ29udGV4dE1hbmFnZXJDb25uZWN0aW9uLmgKaW5kZXggOTdhZTVhODRjNDJmNDM1YzNhMWVj
YjRmZDNmYWE1NDVlZmYzZGE3Yy4uZTdkZjdkOTQxYWNlOTA2NDE0ZWNmZmY1MGM0YmE0NzlkMTQ2
NGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dD
b250ZXh0TWFuYWdlckNvbm5lY3Rpb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3Mv
U3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5oCkBAIC05MCw3ICs5MCw3IEBA
IHByaXZhdGU6CiAgICAgdm9pZCBzZXJ2aWNlV29ya2VyRmFpbGVkVG9TdGFydChzdGQ6Om9wdGlv
bmFsPFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJKb2JEYXRhSWRlbnRpZmllcj4sIFdlYkNvcmU6OlNl
cnZpY2VXb3JrZXJJZGVudGlmaWVyLCBjb25zdCBTdHJpbmcmIGV4Y2VwdGlvbk1lc3NhZ2UpIGZp
bmFsOwogICAgIHZvaWQgaW5zdGFsbFNlcnZpY2VXb3JrZXIoV2ViQ29yZTo6U2VydmljZVdvcmtl
ckNvbnRleHREYXRhJiYsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhJiYsIFN0cmluZyYmIHVz
ZXJBZ2VudCwgV2ViQ29yZTo6V29ya2VyVGhyZWFkTW9kZSk7CiAgICAgdm9pZCB1cGRhdGVBcHBJ
bml0aWF0ZWRWYWx1ZShXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6
TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOwotICAgIHZvaWQgc3RhcnRGZXRjaChXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJl
cXVlc3QmJiwgV2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2Um
JiwgU3RyaW5nJiYgcmVmZXJyZXIpOworICAgIHZvaWQgc3RhcnRGZXRjaChXZWJDb3JlOjpTV1Nl
cnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QmJiwg
V2ViQ29yZTo6RmV0Y2hPcHRpb25zJiYsIElQQzo6Rm9ybURhdGFSZWZlcmVuY2UmJiwgU3RyaW5n
JiYgcmVmZXJyZXIsIGJvb2wgaXNTZXJ2aWNlV29ya2VyTmF2aWdhdGlvblByZWxvYWRFbmFibGVk
KTsKICAgICB2b2lkIGNhbmNlbEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElk
ZW50aWZpZXIpOwogICAgIHZvaWQgY29udGludWVEaWRSZWNlaXZlRmV0Y2hSZXNwb25zZShXZWJD
b3JlOjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpTZXJ2aWNlV29ya2Vy
SWRlbnRpZmllciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyKTsKICAgICB2b2lkIHBvc3RNZXNz
YWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3Rp
bmF0aW9uSWRlbnRpZmllciwgV2ViQ29yZTo6TWVzc2FnZVdpdGhNZXNzYWdlUG9ydHMmJiwgV2Vi
Q29yZTo6U2VydmljZVdvcmtlck9yQ2xpZW50RGF0YSYmIHNvdXJjZURhdGEpOwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1N0b3JhZ2UvV2ViU1dDb250ZXh0TWFuYWdlckNv
bm5lY3Rpb24ubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9X
ZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgppbmRleCAxNTRmYWJkMzU0
OTZlYmNmYmExNWI3MmNiNWE3YWI1ZWQ3Mzc3OTZmLi41MjhiZWNhNGVhNGNiNTc1ODZjNWY4Njgx
ZmRhYWFiMmUzNzExZDJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvU3Rv
cmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlvbi5tZXNzYWdlcy5pbgorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvU3RvcmFnZS9XZWJTV0NvbnRleHRNYW5hZ2VyQ29ubmVjdGlv
bi5tZXNzYWdlcy5pbgpAQCAtMjUsNyArMjUsNyBAQAogbWVzc2FnZXMgLT4gV2ViU1dDb250ZXh0
TWFuYWdlckNvbm5lY3Rpb24gTm90UmVmQ291bnRlZCB7CiAgICAgSW5zdGFsbFNlcnZpY2VXb3Jr
ZXIoc3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJDb250ZXh0RGF0YSBjb250ZXh0RGF0YSwg
c3RydWN0IFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJEYXRhIHdvcmtlckRhdGEsIFN0cmluZyB1c2Vy
QWdlbnQsIGVudW06Ym9vbCBXZWJDb3JlOjpXb3JrZXJUaHJlYWRNb2RlIHdvcmtlclRocmVhZE1v
ZGUpCiAgICAgVXBkYXRlQXBwSW5pdGlhdGVkVmFsdWUoV2ViQ29yZTo6U2VydmljZVdvcmtlcklk
ZW50aWZpZXIgc2VydmljZVdvcmtlcklkZW50aWZpZXIsIGVudW06Ym9vbCBXZWJDb3JlOjpMYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCBsYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCkK
LSAgICBTdGFydEZldGNoKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIgc2Vy
dmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVy
IHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZpZXIgZmV0Y2hJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdCwgc3RydWN0IFdlYkNv
cmU6OkZldGNoT3B0aW9ucyBvcHRpb25zLCBJUEM6OkZvcm1EYXRhUmVmZXJlbmNlIHJlcXVlc3RC
b2R5LCBTdHJpbmcgcmVmZXJyZXIpCisgICAgU3RhcnRGZXRjaChXZWJDb3JlOjpTV1NlcnZlckNv
bm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyLCBXZWJDb3JlOjpT
ZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmllciwgV2ViQ29yZTo6
RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllciwgV2ViQ29yZTo6UmVzb3VyY2VSZXF1ZXN0
IHJlcXVlc3QsIHN0cnVjdCBXZWJDb3JlOjpGZXRjaE9wdGlvbnMgb3B0aW9ucywgSVBDOjpGb3Jt
RGF0YVJlZmVyZW5jZSByZXF1ZXN0Qm9keSwgU3RyaW5nIHJlZmVycmVyLCBib29sIGlzU2Vydmlj
ZVdvcmtlck5hdmlnYXRpb25QcmVsb2FkRW5hYmxlZCkKICAgICBDYW5jZWxGZXRjaChXZWJDb3Jl
OjpTV1NlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVyIHNlcnZlckNvbm5lY3Rpb25JZGVudGlmaWVy
LCBXZWJDb3JlOjpTZXJ2aWNlV29ya2VySWRlbnRpZmllciBzZXJ2aWNlV29ya2VySWRlbnRpZmll
ciwgV2ViQ29yZTo6RmV0Y2hJZGVudGlmaWVyIGZldGNoSWRlbnRpZmllcikKICAgICBDb250aW51
ZURpZFJlY2VpdmVGZXRjaFJlc3BvbnNlKFdlYkNvcmU6OlNXU2VydmVyQ29ubmVjdGlvbklkZW50
aWZpZXIgc2VydmVyQ29ubmVjdGlvbklkZW50aWZpZXIsIFdlYkNvcmU6OlNlcnZpY2VXb3JrZXJJ
ZGVudGlmaWVyIHNlcnZpY2VXb3JrZXJJZGVudGlmaWVyLCBXZWJDb3JlOjpGZXRjaElkZW50aWZp
ZXIgZmV0Y2hJZGVudGlmaWVyKQogICAgIFBvc3RNZXNzYWdlVG9TZXJ2aWNlV29ya2VyKFdlYkNv
cmU6OlNlcnZpY2VXb3JrZXJJZGVudGlmaWVyIGRlc3RpbmF0aW9uSWRlbnRpZmllciwgc3RydWN0
IFdlYkNvcmU6Ok1lc3NhZ2VXaXRoTWVzc2FnZVBvcnRzIG1lc3NhZ2UsIFdlYkNvcmU6OlNlcnZp
Y2VXb3JrZXJPckNsaWVudERhdGEgc291cmNlRGF0YSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAyZGY5ZDM4Mjk4MzI4ZTM4
NDAyNTg0YmY5OWVmMjYzZDU2NzIyYTc5Li4wNmI2OGQ2YjNiNWYxZjZlY2NkZGUwMmNiZTdlMTYz
NWE3YWEyYTlhIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMjEtMTItMDEgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIEFkZCBzdXBwb3J0IGZvciBOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTIzMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IENocmlzIER1bWV6LgorCisg
ICAgICAgICogVGVzdEV4cGVjdGF0aW9uczoKKwogMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxj
ZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQg
bm90IHJlbHkgb24gZWxlbWVudCdzIGRpc2FibGVkIHN0YXRlIGZvciBpbnB1dHMgb2YgdHlwZSBy
YWRpby9maWxlL2NoZWNrYm94CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
Q2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwppbmRleCAzMGNj
M2M2N2ZjMmY4NmY4MTA1ODI4ZDNkNjIyMTNlYWMzMDQ3ODBkLi5kOGY0MTlmZDNkOGNjNTQ5MWFl
ZGQyOTdkMzVkZDFmNTljODhlOTMzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyMiBAQAorMjAyMS0xMi0wMSAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CisKKyAgICAgICAgQWRkIHN1cHBvcnQgZm9yIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzNTIzCisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRHVtZXouCisKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5l
c3MuaHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQv
YnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25h
dmlnYXRpb24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNl
LXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZW1wdHktcHJlbG9hZC1yZXNwb25zZS1ib2R5Lmh0
dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvZ2V0LXN0YXRl
Lmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvbmF2aWdh
dGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJl
bG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1w
cmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1wcmVsb2FkL3Jlc291cmNlLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13
b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL3NhbWVzaXRlLWNvb2tpZXMuaHR0cHMtZXhwZWN0ZWQu
dHh0OiBBZGRlZC4KKwogMjAyMS0xMi0wMSAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29t
PgogCiAgICAgICAgIHZhbGlkaXR5LnZhbHVlTWlzc2luZyBzaG91bGQgbm90IHJlbHkgb24gZWxl
bWVudCdzIGRpc2FibGVkIHN0YXRlIGZvciBpbnB1dHMgb2YgdHlwZSByYWRpby9maWxlL2NoZWNr
Ym94CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvVGVzdEV4cGVjdGF0aW9ucwppbmRleCA3MmNiMDlkMTY4ZjkyYzAyNTdhNDQxM2EwZTAxZmQ2
Y2YzMmY2MGUzLi43MDAwYzAyMTM1ZmI3M2Y5ZGZhNDBmYjM0Y2JlZmM0NjY0MWJkYjI4IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL1Rl
c3RFeHBlY3RhdGlvbnMKQEAgLTQwMyw4ICs0MDMsNyBAQCB3ZWJraXQub3JnL2IvMTc2OTI5IGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZW1iZWRkZWQtY29u
dAogIyBSZXF1aXJlcyBhZGRpdGlvbmFsIHRlc3QgaW5mcmFzdHJ1Y3R1cmUuCiBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci91cGRh
dGUtYWZ0ZXItb25lZGF5Lmh0dHBzLmh0bWwgWyBTa2lwIF0KIAotIyBVbnN1cHBvcnRlZCBmZWF0
dXJlczogU2hhcmVkV29ya2VyLCBOYXZpZ2F0aW9uUHJlbG9hZAotaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1w
cmVsb2FkIFsgU2tpcCBdCisjIFVuc3VwcG9ydGVkIGZlYXR1cmVzOiBTaGFyZWRXb3JrZXIKIGlt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyL2NsYWltLXNoYXJlZC13b3JrZXItZmV0Y2guaHR0cHMuaHRtbCBbIFNraXAgXQogCiAjIFVu
c3VwcG9ydGVkIGZlYXR1cmVzOiBQZXJmb3JtYW5jZU5hdmlnYXRpb25UaW1pbmcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9yZXNvdXJjZXMvc2Vydmlj
ZS13b3JrZXItaWZyYW1lLXByZWxvYWQtc2NyaXB0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3Jlc291cmNlcy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC1z
Y3JpcHQucHkKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBlZDYxMDcwYjRiNDAxMGQ2ZmYxNjRhOGQzOGViMmYxNTJm
NjEwYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29y
a2Vycy9yZXNvdXJjZXMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQtc2NyaXB0LnB5CkBA
IC0wLDAgKzEsMjQgQEAKK2ltcG9ydCBvcworaW1wb3J0IGhhc2hsaWIKK2ltcG9ydCBqc29uCisK
KworZGVmIG1haW4ocmVxdWVzdCwgcmVzcG9uc2UpOgorICAgIHRva2VuID0gcmVxdWVzdC5HRVRb
Yid0b2tlbiddCisgICAgdGVzdElkID0gaGFzaGxpYi5tZDUodG9rZW4pLmhleGRpZ2VzdCgpCisK
KyAgICBpZiByZXF1ZXN0Lm1ldGhvZCA9PSAiUE9TVCI6CisgICAgICAgIHJlcXVlc3Quc2VydmVy
LnN0YXNoLnRha2UodGVzdElkKQorICAgICAgICByZXF1ZXN0LnNlcnZlci5zdGFzaC5wdXQodGVz
dElkLCByZXF1ZXN0LkdFVFtiJ3ZhbHVlJ10pCisgICAgICAgIHJlc3BvbnNlLmhlYWRlcnMuc2V0
KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2FzY2lpIikKKyAgICAgICAgcmV0dXJuIGIidXBkYXRl
ZCB0byAiICsgcmVxdWVzdC5HRVRbYid2YWx1ZSddCisKKyAgICB2YWx1ZSA9IHJlcXVlc3Quc2Vy
dmVyLnN0YXNoLnRha2UodGVzdElkKQorICAgIGlmIG5vdCB2YWx1ZToKKyAgICAgICAgcmVzcG9u
c2UuaGVhZGVycy5zZXQoYiJDYWNoZS1Db250cm9sIiwgYiJuby1jYWNoZSIpCisgICAgICAgIHJl
c3BvbnNlLmhlYWRlcnMuc2V0KGIiQ29udGVudC1UeXBlIiwgYiJ0ZXh0L2h0bWwiKQorICAgICAg
ICByZXR1cm4gIjxodG1sPjxib2R5PjxzY3JpcHQ+d2luZG93LnZhbHVlID0gJ25vdGhpbmcnOzwv
c2NyaXB0PjwvYm9keT48L2h0bWw+IgorCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDYWNo
ZS1Db250cm9sIiwgYiJuby1jYWNoZSIpCisgICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoYiJDb250
ZW50LVR5cGUiLCBiInRleHQvYXNjaWkiKQorICAgIHJldHVybiB2YWx1ZS5kZWNvZGUoKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyLWlmcmFtZS1wcmVsb2FkLXdvcmtlci5qcyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZp
Y2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC13b3JrZXIuanMKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWRjMDAwMjRkNTE5YjIwODA4YjZkNjhhMWQ2Y2I2NDUzNjU5OWQyYQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdv
cmtlci1pZnJhbWUtcHJlbG9hZC13b3JrZXIuanMKQEAgLTAsMCArMSwzNSBAQAorb25pbnN0YWxs
ID0gKGV2ZW50KSA9PiB7CisgICAgaWYgKHNlbGYucG9ydCkKKyAgICAgICAgcmV0dXJuOworICAg
IGV2ZW50LndhaXRVbnRpbChuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNlbGYuaW5zdGFsbGluZ1By
b21pc2VSZXNvbHZlID0gcmVzb2x2ZSkpOworfQorCitvbm1lc3NhZ2UgPSAoZXZlbnQpID0+IHsK
KyAgICBpZiAoZXZlbnQuZGF0YS5wb3J0KQorICAgICAgICBzZWxmLnBvcnQgPSBldmVudC5kYXRh
LnBvcnQ7CisgICAgaWYgKHNlbGYuaW5zdGFsbGluZ1Byb21pc2VSZXNvbHZlKSB7CisgICAgICAg
IHNlbGYuaW5zdGFsbGluZ1Byb21pc2VSZXNvbHZlKCk7CisgICAgICAgIHNlbGYuaW5zdGFsbGlu
Z1Byb21pc2VSZXNvbHZlID0gbnVsbDsKKyAgICB9CisgICAgaWYgKHNlbGYuZmV0Y2hpbmdQcm9t
aXNlUmVzb2x2ZSkgeworICAgICAgICBzZWxmLmZldGNoaW5nUHJvbWlzZVJlc29sdmUoKTsKKyAg
ICAgICAgc2VsZi5mZXRjaGluZ1Byb21pc2VSZXNvbHZlID0gbnVsbDsKKyAgICB9Cit9OworCitv
bmFjdGl2YXRlID0gKGV2ZW50KSA9PiB7CisgICAgc2VsZi5wb3J0LnBvc3RNZXNzYWdlKCJhY3Rp
dmF0aW5nIik7Cit9CisKK3NlbGYuYWRkRXZlbnRMaXN0ZW5lcignZmV0Y2gnLCAoZXZlbnQpID0+
IHsKKyAgICBzZWxmLnBvcnQucG9zdE1lc3NhZ2UoImZldGNoaW5nIik7CisgICAgY29uc3QgcHJv
bWlzZSA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gc2VsZi5mZXRjaGluZ1Byb21pc2VSZXNvbHZl
ID0gcmVzb2x2ZSk7CisgICAgZXZlbnQucmVzcG9uZFdpdGgocHJvbWlzZS50aGVuKGFzeW5jICgp
ID0+IHsKKyAgICAgICAgaWYgKCFldmVudC5wcmVsb2FkUmVzcG9uc2UpCisgICAgICAgICAgICBy
ZXR1cm4gbmV3IFJlc3BvbnNlKCJGQUlMOiBwcmVsb2FkIG5vdCBlbmFibGVkIik7CisgICAgICAg
IGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgZXZlbnQucHJlbG9hZFJlc3BvbnNlOworICAgICAgICBp
ZiAoIXJlc3BvbnNlKQorICAgICAgICAgICAgcmV0dXJuIG5ldyBSZXNwb25zZSgiRkFJTDogbm8g
cHJlbG9hZCByZXNwb25zZSIpOworICAgICAgICByZXR1cm4gcmVzcG9uc2U7CisgICAgfSkpOwor
fSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9zZXJ2aWNlLXdvcmtlcnMvc2Vy
dmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2Fk
Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43ZWYyYWRmOWIwMWMyOWEyMGFlZGE0NTJl
MDRjYzYwYTFlNzM3ZGE1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworCitQQVNTIFNldHVwIGFjdGl2YXRpbmcgd29ya2Vy
CitQQVNTIFNlcnZpY2Ugd29ya2VyIGxvYWQgdXNlcyBwcmVsb2FkIGlmIGF2YWlsYWJsZSBhbmQg
ZmV0Y2ggZXZlbnQgd2FzIG5vdCBoYW5kbGVkCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC5odHRw
cy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29y
a2VyLWlmcmFtZS1wcmVsb2FkLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODJlZGJkOTYxZDM2MThi
OGQxZjhiMmJhOWYzM2NlMzlkM2NjOTE2OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci1pZnJhbWUtcHJlbG9hZC5o
dHRwcy5odG1sCkBAIC0wLDAgKzEsNzQgQEAKKzwhZG9jdHlwZSBodG1sPgorPGh0bWw+Cis8aGVh
ZD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSJyZXNv
dXJjZXMvcm91dGluZXMuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8c2NyaXB0Pgor
dmFyIGFjdGl2ZVdvcmtlcjsKK3ZhciB1dWlkID0gdG9rZW4oKTsKK3ZhciB1cmwgPSAiL1dlYktp
dC9zZXJ2aWNlLXdvcmtlcnMvcmVzb3VyY2VzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2Fk
LXNjcmlwdC5weT90b2tlbj0iICsgdXVpZDsKK3ZhciBmcmFtZTsKK2NvbnN0IGNoYW5uZWwgPSBu
ZXcgTWVzc2FnZUNoYW5uZWwoKTsKKworZnVuY3Rpb24gd2FpdFVudGlsQWN0aXZhdGluZygpCit7
CisgICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBjaGFubmVsLnBv
cnQyLm9ubWVzc2FnZSA9IChldmVudCkgPT4geworICAgICAgICAgICAgaWYgKGV2ZW50LmRhdGEg
PT09ICJhY3RpdmF0aW5nIikKKyAgICAgICAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH07
CisgICAgfSk7Cit9CisKK2Z1bmN0aW9uIHRyaWdnZXJBY3RpdmF0aW9uKCkKK3sKKyAgICBhY3Rp
dmVXb3JrZXIucG9zdE1lc3NhZ2UoImFjdGl2YXRlIik7Cit9CisKK3Byb21pc2VfdGVzdChhc3lu
YyAodGVzdCkgPT4geworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLnNldFVzZVNlcGFyYXRlU2VydmljZVdvcmtlclByb2Nlc3ModHJ1ZSk7CisgICAgICAg
IGF3YWl0IGZldGNoKCIiKS50aGVuKCgpID0+IHsgfSwgKCkgPT4geyB9KTsKKyAgICB9CisKKyAg
ICBsZXQgcmVnaXN0cmF0aW9uID0gYXdhaXQgbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIucmVnaXN0
ZXIoIi9XZWJLaXQvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyLWlmcmFtZS1wcmVsb2Fk
LXdvcmtlci5qcyIsIHsgc2NvcGUgOiB1cmwgfSk7CisgICAgaWYgKCFyZWdpc3RyYXRpb24uaW5z
dGFsbGluZykgeworICAgICAgICByZWdpc3RyYXRpb24udW5yZWdpc3RlcigpOworICAgICAgICBy
ZWdpc3RyYXRpb24gPSBhd2FpdCBuYXZpZ2F0b3Iuc2VydmljZVdvcmtlci5yZWdpc3RlcigiL1dl
YktpdC9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXItaWZyYW1lLXByZWxvYWQtd29ya2Vy
LmpzIiwgeyBzY29wZSA6IHVybCB9KTsKKyAgICB9CisgICAgYWN0aXZlV29ya2VyID0gcmVnaXN0
cmF0aW9uLmluc3RhbGxpbmc7CisgICAgYWN0aXZlV29ya2VyLnBvc3RNZXNzYWdlKHsgcG9ydDog
Y2hhbm5lbC5wb3J0MSB9LCBbY2hhbm5lbC5wb3J0MV0pOworCisgICAgYXdhaXQgd2FpdFVudGls
QWN0aXZhdGluZygpOworICAgIGlmIChyZWdpc3RyYXRpb24ubmF2aWdhdGlvblByZWxvYWQpCisg
ICAgICAgIGF3YWl0IHJlZ2lzdHJhdGlvbi5uYXZpZ2F0aW9uUHJlbG9hZC5lbmFibGUoKTsKK30s
ICJTZXR1cCBhY3RpdmF0aW5nIHdvcmtlciIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHRlc3Qp
ID0+IHsKKyAgICAvLyBTZXQgdmFsdWUgdG8gJ2JlZm9yZS1uYXZpZ2F0aW9uJworICAgIGF3YWl0
IGZldGNoKHVybCArICImdmFsdWU9YmVmb3JlLW5hdmlnYXRpb24iLCB7IG1ldGhvZDogJ1BPU1Qn
IH0pOworCisgICAgLy8gU3RhcnQgbG9hZGluZyBpZnJhbWUsIHdpdGggYWN0aXZhdGluZyB3b3Jr
ZXIsIHNvIG9ubHkgcHJlbG9hZCB3aWxsIHN0YXJ0LgorICAgIGNvbnN0IGlmcmFtZVByb21pc2Ug
PSB3aXRoSWZyYW1lKHVybCk7CisKKyAgICAvLyBXYWl0IGEgbGl0dGxlIGJpdCB0byBkbyBhIGZl
dGNoLiBUaGlzIGZldGNoIHNob3VsZCBoYXBwZW4gYWZ0ZXIgdGhlIGZldGNoIGV2ZW50LCB3aGlj
aCBpcyBwZW5kaW5nLgorICAgIC8vIEl0IHNob3VsZCByZWNlaXZlICdiZWZvcmUtbmF2aWdhdGlv
bicKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHNldFRpbWVvdXQocmVzb2x2ZSwg
MTAwKSk7CisgICAgY29uc3QgZmV0Y2hQcm9taXNlID0gZmV0Y2godXJsKTsKKworICAgIC8vIFRy
aWdnZXIgZmV0Y2gsIHdoaWNoIHdpbGwgdHJpZ2dlciB0aGUgcHJlbG9hZCByZXNwb25zZS4KKyAg
ICBhY3RpdmVXb3JrZXIucG9zdE1lc3NhZ2UoImZldGNoIik7CisKKyAgICBjb25zdCByZXNwb25z
ZSA9IGF3YWl0IGZldGNoUHJvbWlzZTsKKyAgICBhc3NlcnRfZXF1YWxzKGF3YWl0IHJlc3BvbnNl
LnRleHQoKSwgImJlZm9yZS1uYXZpZ2F0aW9uIik7CisKKyAgICBjb25zdCBmcmFtZSA9IGF3YWl0
IGlmcmFtZVByb21pc2U7CisgICAgYXNzZXJ0X2VxdWFscyhmcmFtZS5jb250ZW50V2luZG93LnZh
bHVlLCAibm90aGluZyIpOworfSwgIlNlcnZpY2Ugd29ya2VyIGxvYWQgdXNlcyBwcmVsb2FkIGlm
IGF2YWlsYWJsZSBhbmQgZmV0Y2ggZXZlbnQgd2FzIG5vdCBoYW5kbGVkIik7Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3MuaHR0cHMuYW55LWV4cGVjdGVkLnR4dAppbmRleCBk
ZTI1MzJkZGM1OTcyMjU5ZDk4MzVjYTc0ZGMxOWM5ZDQ1YjQ5M2E1Li40OTg2OWU4ZmIwNzM5M2Jk
N2I1ODBlZGMxZjdiYmIyOGI0OTNkMWFlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBz
LmFueS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnktZXhwZWN0ZWQu
dHh0CkBAIC01Nyw3ICs1Nyw3IEBAIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRl
cmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UKIFBBU1MgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IGF0dHJpYnV0ZSBpbnN0YWxsaW5nCiBQQVNT
IFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgd2FpdGluZwog
UEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIGFjdGl2
ZQotRkFJTCBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogYXR0cmlidXRlIG5h
dmlnYXRpb25QcmVsb2FkIGFzc2VydF90cnVlOiBUaGUgcHJvdG90eXBlIG9iamVjdCBtdXN0IGhh
dmUgYSBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIGV4cGVjdGVkIHRydWUgZ290IGZhbHNl
CitQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRpb24gaW50ZXJmYWNlOiBhdHRyaWJ1dGUgbmF2
aWdhdGlvblByZWxvYWQKIFBBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6
IGF0dHJpYnV0ZSBzY29wZQogUEFTUyBTZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFj
ZTogYXR0cmlidXRlIHVwZGF0ZVZpYUNhY2hlCiBQQVNTIFNlcnZpY2VXb3JrZXJSZWdpc3RyYXRp
b24gaW50ZXJmYWNlOiBvcGVyYXRpb24gdXBkYXRlKCkKQEAgLTY4LDcgKzY4LDcgQEAgUEFTUyBT
dHJpbmdpZmljYXRpb24gb2YgcmVnaXN0cmF0aW9uSW5zdGFuY2UKIFBBU1MgU2VydmljZVdvcmtl
clJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJp
dCBwcm9wZXJ0eSAiaW5zdGFsbGluZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2Vydmlj
ZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3Qg
aW5oZXJpdCBwcm9wZXJ0eSAid2FpdGluZyIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAiYWN0aXZlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQotRkFJTCBT
ZXJ2aWNlV29ya2VyUmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2Ug
bXVzdCBpbmhlcml0IHByb3BlcnR5ICJuYXZpZ2F0aW9uUHJlbG9hZCIgd2l0aCB0aGUgcHJvcGVy
IHR5cGUgYXNzZXJ0X2luaGVyaXRzOiBwcm9wZXJ0eSAibmF2aWdhdGlvblByZWxvYWQiIG5vdCBm
b3VuZCBpbiBwcm90b3R5cGUgY2hhaW4KK1BBU1MgU2VydmljZVdvcmtlclJlZ2lzdHJhdGlvbiBp
bnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAibmF2
aWdhdGlvblByZWxvYWQiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJS
ZWdpc3RyYXRpb24gaW50ZXJmYWNlOiByZWdpc3RyYXRpb25JbnN0YW5jZSBtdXN0IGluaGVyaXQg
cHJvcGVydHkgInNjb3BlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQogUEFTUyBTZXJ2aWNlV29ya2Vy
UmVnaXN0cmF0aW9uIGludGVyZmFjZTogcmVnaXN0cmF0aW9uSW5zdGFuY2UgbXVzdCBpbmhlcml0
IHByb3BlcnR5ICJ1cGRhdGVWaWFDYWNoZSIgd2l0aCB0aGUgcHJvcGVyIHR5cGUKIFBBU1MgU2Vy
dmljZVdvcmtlclJlZ2lzdHJhdGlvbiBpbnRlcmZhY2U6IHJlZ2lzdHJhdGlvbkluc3RhbmNlIG11
c3QgaW5oZXJpdCBwcm9wZXJ0eSAidXBkYXRlKCkiIHdpdGggdGhlIHByb3BlciB0eXBlCkBAIC0x
MDIsMTYgKzEwMiwxNiBAQCBQQVNTIFNlcnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBu
YXZpZ2F0b3Iuc2VydmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJvcAogUEFTUyBTZXJ2aWNlV29y
a2VyQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgbXVzdCBpbmhl
cml0IHByb3BlcnR5ICJvbmNvbnRyb2xsZXJjaGFuZ2UiIHdpdGggdGhlIHByb3BlciB0eXBlCiBQ
QVNTIFNlcnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2VydmljZVdv
cmtlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubWVzc2FnZSIgd2l0aCB0aGUgcHJvcGVyIHR5
cGUKIFBBU1MgU2VydmljZVdvcmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5zZXJ2
aWNlV29ya2VyIG11c3QgaW5oZXJpdCBwcm9wZXJ0eSAib25tZXNzYWdlZXJyb3IiIHdpdGggdGhl
IHByb3BlciB0eXBlCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4
aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2Ugb2JqZWN0IGFzc2VydF9vd25fcHJv
cGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2Fk
TWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlz
c2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBsZW5n
dGggYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAi
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRl
cmZhY2Ugb2JqZWN0IG5hbWUgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0
eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZh
Y2UgcHJvdG90eXBlIG9iamVjdCBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhh
dmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eSBhc3NlcnRfb3du
X3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIi
IG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3Rl
bmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNj
b3BhYmxlcyBwcm9wZXJ0eSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5
ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGVuYWJsZSgpIGFzc2VydF9vd25fcHJvcGVy
dHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2lu
ZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZGlz
YWJsZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIg
aW50ZXJmYWNlOiBvcGVyYXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZykgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBnZXRTdGF0ZSgpIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBv
d24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkg
Ik5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZworUEFTUyBOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNl
IG9iamVjdAorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlIG9iamVjdCBs
ZW5ndGgKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbmFt
ZQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5k
IHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QKK1BBU1MgTmF2aWdhdGlv
blByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGlu
dGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgImNvbnN0cnVjdG9yIiBwcm9wZXJ0eQorUEFTUyBO
YXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIHByb3RvdHlwZSBvYmplY3QncyBAQHVuc2NvcGFibGVzIHByb3BlcnR5
CitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFi
bGUoKQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24g
ZGlzYWJsZSgpCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJh
dGlvbiBzZXRIZWFkZXJWYWx1ZShCeXRlU3RyaW5nKQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZ2V0U3RhdGUoKQogUEFTUyBTZXJ2aWNlV29ya2Vy
R2xvYmFsU2NvcGUgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIG9iamVjdAogUEFTUyBDbGllbnQgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRp
ZXMgb2YgaW50ZXJmYWNlIG9iamVjdAogUEFTUyBXaW5kb3dDbGllbnQgaW50ZXJmYWNlOiBleGlz
dGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMv
aWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL2lkbGhhcm5lc3Mu
aHR0cHMuYW55Lndvcmtlci1leHBlY3RlZC50eHQKaW5kZXggOGIyNjQ1MDNkNTUyMjg2Yjc3ZGE0
YzIzZjkzOTMyNjdlZGNlNzhmYy4uMzA0OGI3OWVjYTZhNTg0M2NjYjc1MTM5OTI2Nzg3YTY1ZmY4
NDQxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvaWRsaGFybmVzcy5odHRwcy5hbnkud29ya2VyLWV4cGVjdGVk
LnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3Nl
cnZpY2Utd29ya2Vycy9pZGxoYXJuZXNzLmh0dHBzLmFueS53b3JrZXItZXhwZWN0ZWQudHh0CkBA
IC04MiwxNiArODIsMTYgQEAgUEFTUyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGludGVyZmFjZTog
bmF2aWdhdG9yLnNlcnZpY2VXb3JrZXIgbXVzdCBpbmhlcml0IHByb3AKIFBBU1MgU2VydmljZVdv
cmtlckNvbnRhaW5lciBpbnRlcmZhY2U6IG5hdmlnYXRvci5zZXJ2aWNlV29ya2VyIG11c3QgaW5o
ZXJpdCBwcm9wZXJ0eSAib25jb250cm9sbGVyY2hhbmdlIiB3aXRoIHRoZSBwcm9wZXIgdHlwZQog
UEFTUyBTZXJ2aWNlV29ya2VyQ29udGFpbmVyIGludGVyZmFjZTogbmF2aWdhdG9yLnNlcnZpY2VX
b3JrZXIgbXVzdCBpbmhlcml0IHByb3BlcnR5ICJvbm1lc3NhZ2UiIHdpdGggdGhlIHByb3BlciB0
eXBlCiBQQVNTIFNlcnZpY2VXb3JrZXJDb250YWluZXIgaW50ZXJmYWNlOiBuYXZpZ2F0b3Iuc2Vy
dmljZVdvcmtlciBtdXN0IGluaGVyaXQgcHJvcGVydHkgIm9ubWVzc2FnZWVycm9yIiB3aXRoIHRo
ZSBwcm9wZXIgdHlwZQotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBl
eGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJmYWNlIG9iamVjdCBhc3NlcnRfb3duX3By
b3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9h
ZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1p
c3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3QgbGVu
Z3RoIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkg
Ik5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50
ZXJmYWNlIG9iamVjdCBuYW1lIGFzc2VydF9vd25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2
ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVy
dHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJl
bG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBleGlzdGVuY2UgYW5kIHByb3BlcnRpZXMgb2YgaW50ZXJm
YWNlIHByb3RvdHlwZSBvYmplY3QgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBo
YXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9w
ZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRl
cmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkgYXNzZXJ0X293
bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZlIG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblBy
ZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0
ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBpbnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzIEBAdW5z
Y29wYWJsZXMgcHJvcGVydHkgYXNzZXJ0X293bl9wcm9wZXJ0eTogc2VsZiBkb2VzIG5vdCBoYXZl
IG93biBwcm9wZXJ0eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBleHBlY3RlZCBwcm9wZXJ0
eSAiTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIiBtaXNzaW5nCi1GQUlMIE5hdmlnYXRpb25QcmVs
b2FkTWFuYWdlciBpbnRlcmZhY2U6IG9wZXJhdGlvbiBlbmFibGUoKSBhc3NlcnRfb3duX3Byb3Bl
cnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1h
bmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3Np
bmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGRp
c2FibGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUgb3duIHByb3Bl
cnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5ICJOYXZpZ2F0
aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKLUZBSUwgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2Vy
IGludGVyZmFjZTogb3BlcmF0aW9uIHNldEhlYWRlclZhbHVlKEJ5dGVTdHJpbmcpIGFzc2VydF9v
d25fcHJvcGVydHk6IHNlbGYgZG9lcyBub3QgaGF2ZSBvd24gcHJvcGVydHkgIk5hdmlnYXRpb25Q
cmVsb2FkTWFuYWdlciIgZXhwZWN0ZWQgcHJvcGVydHkgIk5hdmlnYXRpb25QcmVsb2FkTWFuYWdl
ciIgbWlzc2luZwotRkFJTCBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVy
YXRpb24gZ2V0U3RhdGUoKSBhc3NlcnRfb3duX3Byb3BlcnR5OiBzZWxmIGRvZXMgbm90IGhhdmUg
b3duIHByb3BlcnR5ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIGV4cGVjdGVkIHByb3BlcnR5
ICJOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIiIG1pc3NpbmcKK1BBU1MgTmF2aWdhdGlvblByZWxv
YWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFj
ZSBvYmplY3QKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZSBvYmplY3Qg
bGVuZ3RoCitQQVNTIE5hdmlnYXRpb25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2Ugb2JqZWN0IG5h
bWUKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFu
ZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0CitQQVNTIE5hdmlnYXRp
b25QcmVsb2FkTWFuYWdlciBpbnRlcmZhY2U6IGV4aXN0ZW5jZSBhbmQgcHJvcGVydGllcyBvZiBp
bnRlcmZhY2UgcHJvdG90eXBlIG9iamVjdCdzICJjb25zdHJ1Y3RvciIgcHJvcGVydHkKK1BBU1Mg
TmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBwcm90b3R5cGUgb2JqZWN0J3MgQEB1bnNjb3BhYmxlcyBwcm9wZXJ0
eQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVyYXRpb24gZW5h
YmxlKCkKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRNYW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9u
IGRpc2FibGUoKQorUEFTUyBOYXZpZ2F0aW9uUHJlbG9hZE1hbmFnZXIgaW50ZXJmYWNlOiBvcGVy
YXRpb24gc2V0SGVhZGVyVmFsdWUoQnl0ZVN0cmluZykKK1BBU1MgTmF2aWdhdGlvblByZWxvYWRN
YW5hZ2VyIGludGVyZmFjZTogb3BlcmF0aW9uIGdldFN0YXRlKCkKIFBBU1MgU2VydmljZVdvcmtl
ckdsb2JhbFNjb3BlIGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVy
ZmFjZSBvYmplY3QKIFBBU1MgQ2xpZW50IGludGVyZmFjZTogZXhpc3RlbmNlIGFuZCBwcm9wZXJ0
aWVzIG9mIGludGVyZmFjZSBvYmplY3QKIFBBU1MgV2luZG93Q2xpZW50IGludGVyZmFjZTogZXhp
c3RlbmNlIGFuZCBwcm9wZXJ0aWVzIG9mIGludGVyZmFjZSBvYmplY3QKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJz
L3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9icm9rZW4tY2h1bmtlZC1lbmNvZGlu
Zy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxv
YWQvYnJva2VuLWNodW5rZWQtZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LmZlNWZhNmE2ZmNlODU3YzM2ODRjZGIyNTY3NmQzNzk1ZTNhNDc4OTkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvYnJva2VuLWNodW5rZWQt
ZW5jb2RpbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCisKK0ZBSUwgRmV0
Y2hFdmVudCNwcmVsb2FkUmVzcG9uc2UgcmVzb2x2ZXMgZXZlbiBpZiB0aGUgYm9keSBpcyBzZW50
IHdpdGggYnJva2VuIGNodW5rZWQgZW5jb2RpbmcuIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJQ
QVNTOiBwcmVsb2FkUmVzcG9uc2UgcmVzb2x2ZWQiIGJ1dCBnb3QgIkZBSUw6IHByZWxvYWRSZXNw
b25zZSByZWplY3RlZCIKK0ZBSUwgRmV0Y2hFdmVudCNwcmVsb2FkUmVzcG9uc2UgcmVzb2x2ZXMg
ZXZlbiBpZiB0aGUgYm9keSBpcyBzZW50IHdpdGggYnJva2VuIGNodW5rZWQgZW5jb2Rpbmcgd2l0
aCBzb21lIGRlbGF5cyBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAiUEFTUzogcHJlbG9hZFJlc3Bv
bnNlIHJlc29sdmVkIiBidXQgZ290ICJGQUlMOiBwcmVsb2FkUmVzcG9uc2UgcmVqZWN0ZWQiCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
c2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9jaHVua2Vk
LWVuY29kaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9jaHVua2VkLWVuY29kaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZWYwMTYyN2M4ZTM4OTRkZTcwNzMzMzEwMTJhZmI0ZmNkMTI1NmJiCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNl
LXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL2NodW5rZWQtZW5jb2Rp
bmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgTmF2aWdhdGlv
biBQcmVsb2FkIG11c3Qgd29yayB3aXRoIGNodW5rZWQgZW5jb2RpbmcuCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3Jr
ZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9lbXB0eS1wcmVsb2FkLXJlc3Bv
bnNlLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlv
bi1wcmVsb2FkL2VtcHR5LXByZWxvYWQtcmVzcG9uc2UtYm9keS5odHRwcy1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNGNkYTI4Y2ZjYWE1ZTJiMTQwNTFlOTVjZjJiOTNmMjRjNzAzOTc0ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9lbXB0
eS1wcmVsb2FkLXJlc3BvbnNlLWJvZHkuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCisKK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2FkIGVtcHR5IHJlc3BvbnNlIGJvZHkuCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2Vy
dmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9nZXQtc3RhdGUu
aHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2Fk
L2dldC1zdGF0ZS5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOGFhMWU5ZDBhZjE5OWYy
MzNiYzM4MTI4OTU0ZDg4OWI1ZmEzYWQyMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Ut
d29ya2VyL25hdmlnYXRpb24tcHJlbG9hZC9nZXQtc3RhdGUuaHR0cHMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsNSBAQAorCitQQVNTIGdldFN0YXRlCitQQVNTIGdldFN0YXRlIGZyb20gYSB3b3Jr
ZXIKK1BBU1Mgbm8gYWN0aXZlIHdvcmtlcgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtl
ci9uYXZpZ2F0aW9uLXByZWxvYWQvbmF2aWdhdGlvblByZWxvYWQuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdv
cmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlvbi1wcmVsb2FkL25hdmlnYXRpb25QcmVsb2Fk
Lmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNTc1NjU5NzUwODE3MzVjYWMyZjIxYTYx
ZjQzZDc2MTE2NzY4MzgyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2
aWdhdGlvbi1wcmVsb2FkL25hdmlnYXRpb25QcmVsb2FkLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKKworUEFTUyBUaGUgbmF2aWdhdGlvblByZWxvYWQgYXR0cmlidXRlIG11c3Qg
cmV0dXJuIHNlcnZpY2Ugd29ya2VyIHJlZ2lzdHJhdGlvbidzIE5hdmlnYXRpb25QcmVsb2FkTWFu
YWdlciBvYmplY3QuCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRpb24t
cHJlbG9hZC9yZWRpcmVjdC5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9u
YXZpZ2F0aW9uLXByZWxvYWQvcmVkaXJlY3QuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY1NTFkYzZiNjJhNzVmNTk2NTFjYmI3ODA4YTNmYjUzYTNiMTZjZDUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVkaXJlY3QuaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorCisKK1BBU1MgTmF2aWdhdGlvbiBQcmVsb2Fk
IHJlZGlyZWN0IHJlc3BvbnNlLgorUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgbm8tbG9jYXRpb24g
cmVkaXJlY3QgcmVzcG9uc2UuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBuby1sb2NhdGlvbiBy
ZWRpcmVjdCByZXNwb25zZSB3aXRoIGJvZHkuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCByZWRp
cmVjdCB0byB0aGUgc2FtZSBzY29wZS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIv
bmF2aWdhdGlvbi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVxdWVzdC1oZWFkZXJzLmh0dHBz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNmIzZGMwZjRjYmQyN2YwNjRhNWNjNWQwNDNlMzQw
N2NmMjdiNzQzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9zZXJ2aWNlLXdvcmtlcnMvc2VydmljZS13b3JrZXIvbmF2aWdhdGlv
bi1wcmVsb2FkL3JlcXVlc3QtaGVhZGVycy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0
IEBACisKKworRkFJTCBOYXZpZ2F0aW9uIFByZWxvYWQgcmVxdWVzdCBoZWFkZXJzLiBhc3NlcnRf
dHJ1ZTogVGhlIE5hdmlnYXRpb24gUHJlbG9hZCByZXF1ZXN0IG11c3Qgc3BlY2lmeSBhbiAiVXBn
cmFkZS1JbnNlY3VyZS1SZXF1ZXN0cyIgaGVhZGVyLiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3Vy
Y2UtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9yZXNvdXJjZS10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjgxMjEyZTAxMDkzZTZkZDg4NjEyNGExMTkxNjFlYTgyNThlZjJhZjkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Ut
d29ya2Vycy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvcmVzb3VyY2UtdGltaW5n
Lmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitGQUlMIE5hdmlnYXRpb24g
UHJlbG9hZCBSZXNvdXJjZSBUaW1pbmcuIGFzc2VydF9ncmVhdGVyX3RoYW46IHRyYW5zZmVyU2l6
ZSBtdXN0IGdyZWF0ZXIgdGhlbiBlbmNvZGVkQm9keVNpemUuIGV4cGVjdGVkIGEgbnVtYmVyIGdy
ZWF0ZXIgdGhhbiAwIGJ1dCBnb3QgMAorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vycy9zZXJ2aWNlLXdvcmtlci9u
YXZpZ2F0aW9uLXByZWxvYWQvc2FtZXNpdGUtY29va2llcy5odHRwcy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3NlcnZpY2Utd29ya2Vy
cy9zZXJ2aWNlLXdvcmtlci9uYXZpZ2F0aW9uLXByZWxvYWQvc2FtZXNpdGUtY29va2llcy5odHRw
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDFiMDM3YTdhZWQ2ODJkZWY1ZDg3MzhhZGY0ZDk4
ZTIyZTQ4MzIyNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvc2VydmljZS13b3JrZXJzL3NlcnZpY2Utd29ya2VyL25hdmlnYXRp
b24tcHJlbG9hZC9zYW1lc2l0ZS1jb29raWVzLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDggQEAKKworCitQQVNTIFNldCB1cCBhIHNlcnZpY2Ugd29ya2VyIGZvciBuYXZpZ2F0aW9uIHBy
ZWxvYWQgdGVzdHMuCitQQVNTIE5hdmlnYXRpb24gUHJlbG9hZCBmb3Igc2FtZSBzaXRlIGNvb2tp
ZXMgKE5vbmUpLgorUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgZm9yIHNhbWUgc2l0ZSBjb29raWVz
IChTdHJpY3QpLgorUEFTUyBOYXZpZ2F0aW9uIFByZWxvYWQgZm9yIHNhbWUgc2l0ZSBjb29raWVz
IChMYXgpLgorUEFTUyBVbnJlZ2lzdGVyIGEgc2VydmljZSB3b3JrZXIuCisK
</data>

          </attachment>
      

    </bug>

</bugzilla>