<?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>232635</bug_id>
          
          <creation_ts>2021-11-02 12:29:27 -0700</creation_ts>
          <short_desc>[WebAuthn] Implement add/remove_virtual_authenticator for transport=internal</short_desc>
          <delta_ts>2021-11-04 10:40:48 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebDriver</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>231242</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="pascoe@apple.com">pascoe</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>bburg</cc>
    
    <cc>bfulgham</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1811220</commentid>
    <comment_count>0</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-02 12:29:27 -0700</bug_when>
    <thetext>This is a subtask of https://bugs.webkit.org/show_bug.cgi?id=231242

This bug covers the skeleton for the virtual authenticators commands as well as the implementation for add_virtual_authenticator/remove_virtual_authenticator for transport=internal (platform authenticator/local).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811221</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-11-02 12:29:40 -0700</bug_when>
    <thetext>&lt;rdar://problem/84942173&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811236</commentid>
    <comment_count>2</comment_count>
      <attachid>443126</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-02 13:14:41 -0700</bug_when>
    <thetext>Created attachment 443126
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811243</commentid>
    <comment_count>3</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-02 13:31:18 -0700</bug_when>
    <thetext>https://www.w3.org/TR/webauthn-2/#sctn-automation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811268</commentid>
    <comment_count>4</comment_count>
      <attachid>443135</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-02 14:28:36 -0700</bug_when>
    <thetext>Created attachment 443135
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811573</commentid>
    <comment_count>5</comment_count>
      <attachid>443219</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-03 12:03:23 -0700</bug_when>
    <thetext>Created attachment 443219
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811618</commentid>
    <comment_count>6</comment_count>
      <attachid>443230</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-03 13:03:18 -0700</bug_when>
    <thetext>Created attachment 443230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811669</commentid>
    <comment_count>7</comment_count>
      <attachid>443230</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-03 14:54:46 -0700</bug_when>
    <thetext>Comment on attachment 443230
Patch

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

I think this patch looks really good, but a couple of improvements could be made. r- to correct the pass-by-value things (or help me understand why I&apos;m wrong), and to confirm we don&apos;t have any racy behavior with objects going out of scope.

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1560
&gt; +    WebPageProxy* page = webPageProxyForHandle(browsingContextHandle);

Could be &apos;auto&apos;

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1563
&gt; +    VirtualAuthenticatorManager&amp; authenticatorManager = page-&gt;websiteDataStore().virtualAuthenticatorManager();

Couldn&apos;t this be &quot;const auto&amp;&quot;?

&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1605
&gt; +    VirtualAuthenticatorManager&amp; authenticatorManager = page-&gt;websiteDataStore().virtualAuthenticatorManager();

Ditto the auto and &quot;const auto&amp;&quot; comments above.

&gt; Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualAuthenticatorManager.cpp:41
&gt; +String VirtualAuthenticatorManager::createAuthenticator(VirtualAuthenticatorConfiguration config)

Seems like the config argument should be a const &amp; or a Move operation.

&gt; Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.h:41
&gt; +    void verifyUser(const String&amp;, WebCore::ClientDataType, SecAccessControlRef, WebCore::UserVerificationRequirement,  UserVerificationCallback&amp;&amp;) final;

Extra space before UserVerificationCallback&amp;&amp;

&gt; Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualLocalConnection.mm:55
&gt; +    RunLoop::main().dispatch([configuration = m_configuration, callback = WTFMove(callback)]() mutable {

Do we copy the configuration here because we think the main object may go out of scope? If so, we should hold a weakPtr to &apos;this&apos; and bail out early if it is nullptr.

If we don&apos;t think it&apos;s possible for &apos;this&apos; to be deleted before this code is called, maybe pass a reference or just access the object through this?

&gt; Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.h:39
&gt; +    static UniqueRef&lt;AuthenticatorTransportService&gt; createVirtual(WebCore::AuthenticatorTransport, Observer&amp;, const Vector&lt;VirtualAuthenticatorConfiguration&gt; configs);

Do you really want to pass a vector of VirtualAuthenticatorConfiguration by copy? Seems like you should move them, or pass a const ref.

&gt; Source/WebKit/UIProcess/WebAuthentication/Virtual/VirtualService.mm:54
&gt; +            observer()-&gt;authenticatorAdded(LocalAuthenticator::create(makeUniqueRef&lt;VirtualLocalConnection&gt;(config)));

Is it possible for &apos;authenticatorAdded&apos; to call anything that could cause observer() to return nullptr?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811716</commentid>
    <comment_count>8</comment_count>
      <attachid>443257</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-03 17:03:37 -0700</bug_when>
    <thetext>Created attachment 443257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811719</commentid>
    <comment_count>9</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-11-03 17:07:41 -0700</bug_when>
    <thetext>Updated patch that addresses all comments except:
&gt; Source/WebKit/UIProcess/Automation/WebAutomationSession.cpp:1563
&gt; +    VirtualAuthenticatorManager&amp; authenticatorManager = page-&gt;websiteDataStore().virtualAuthenticatorManager();

&quot;Couldn&apos;t this be &quot;const auto&amp;&quot;?&quot;


WebsiteDataStore::virtualAuthenticatorManager() can&apos;t be const because it sets m_authenticatorManager</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811898</commentid>
    <comment_count>10</comment_count>
      <attachid>443257</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-11-04 10:30:33 -0700</bug_when>
    <thetext>Comment on attachment 443257
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1811902</commentid>
    <comment_count>11</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-04 10:40:47 -0700</bug_when>
    <thetext>Committed r285267 (243878@main): &lt;https://commits.webkit.org/243878@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 443257.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443126</attachid>
            <date>2021-11-02 13:14:41 -0700</date>
            <delta_ts>2021-11-02 13:32:01 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232635-20211102131438.patch</filename>
            <type>text/plain</type>
            <size>55839</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MDQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVlYjJkYjRmNTZkZDM3MTJk
YmU4OTlhMTVhNDNkZjZiZmRiYWNjOTkuLjE4YjljODNjYjRhYTVlMzg0ZWE5MTJkM2ZlMjdjZjk3
NjU4ZjU1NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMTEtMDIgIEpvaG4gUGFz
Y29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50
IGFkZC9yZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yIGZvciB0cmFuc3BvcnQ9aW50ZXJuYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ5NDIxNzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBtdWNoIG9m
IHRoZSBwbHVtYmluZyBuZWVkZWQgdG8gY2FsbCB0aGUgdmlydHVhbCBhdXRoZW50aWNhdG9yCisg
ICAgICAgIGNvbW1hbmRzIGZyb20gc2FmYXJpZHJpdmVyLiBUaGUgaWRlYSBpcyB0aGF0IHZpcnR1
YWwgYXV0aGVudGljYXRvcnMgYXJlIGFkZGVkIHZpYQorICAgICAgICB0aGUgYWRkX3ZpcnR1YWxf
YXV0aGVudGljYXRvciBjYWxsLCB3aGljaCByZXBsYWNlcyB0aGUgZGVmYXVsdCBBdXRoZW50aWNh
dG9yTWFuYWdlcgorICAgICAgICB3aXRoIGEgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyIHNp
bWlsYXIgdG8gaG93IHdlIGRvIGl0IGZvciBtb2Nrcy4gVGhlbiB0aGUKKyAgICAgICAgVmlydHVh
bFNlcnZpY2Ugd2lsbCBjcmVhdGUgdGhlIHZpcnR1YWwgY29ubmVjdGlvbnMgZm9yIGF1dGhlbnRp
Y2F0b3JzIGFzIG5lc3Nlc2FyeQorICAgICAgICB0byBtYWtlIHdlYmF1dGhuIGNhbGxzIHdpdGhp
biBXZWJEcml2ZXIgYmFzZWQgdGVzdHMuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5IHZpYSBz
YWZhcmlkcml2ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9u
Lmpzb246CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVtb3ZlVmlydHVhbEF1dGhlbnRp
Y2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkVmlydHVh
bEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVBbGxWaXJ0dWFsQXV0aGVudGlj
YXRvckNyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246
OnNldFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICBQbHVtYmluZyB0
byBjYWxsIGZyb20gc2FmYXJpZHJpdmVyCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjppc1ZpcnR1YWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZUF1
dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXI6OnJlbW92ZUF1dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVu
dGljYXRvck1hbmFnZXI6OmNyZWF0ZVNlcnZpY2UgY29uc3QpOgorICAgICAgICBNYW5hZ2VzIHZp
cnR1YWwgYXV0aGVudGljYXRvcnMsIHJlcGxhY2VzIHRoZSBkZWZhdWx0IG1hbmFnZXIgd2hlbiB1
c2VkIHNpbWlsYXIgdG8gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVh
bC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW06IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjpWaXJ0dWFsTG9jYWxD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlvbjo6dmVy
aWZ5VXNlcik6CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxMb2NhbENvbm5lY3Rpb246OmdldEF0
dGVzdGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlv
bjo6ZmlsdGVyUmVzcG9uc2VzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpWaXJ0dWFsU2VydmljZSk6CisgICAg
ICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKToKKyAgICAgICAgKFdl
YktpdDo6VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6dmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTEwLTI5ICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFJlbGVhc2UgRmlsZVN5c3Rl
bVN0b3JhZ2VIYW5kbGUgd2hlbiBpdCBpcyBub3QgaW4gdXNlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDhkMmU5YmQzMDBh
MDYwZWNkZjZlN2ZlOTA5YTEyNWQ2YWRhYmFmOTMuLjlhMjhiODA2ODczODQxMWZiOTBjMWI1YzAy
ODQ4ZTA0ODk0MjgyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vQXV0b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vQXV0b21hdGlvbi5qc29uCkBAIC0zMzUsNiArMzM1LDU2IEBACiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJkZWx0YSIsICIkcmVmIjogIlNpemUiLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiRm9yICd3aGVlbCcgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIGEgc2Ny
b2xsIGRlbHRhLiJ9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZHVyYXRpb24iLCAidHlw
ZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBtaW5p
bXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBtdXN0IGVsYXBzZSB3aGlsZSB0aGUgcmVs
ZXZhbnQgaW5wdXQgc291cmNlIHRyYW5zaXRpb25zIHRvIHRoaXMgc3RhdGUuIiB9CiAgICAgICAg
ICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJBdXRoZW50
aWNhdG9yUHJvdG9jb2wiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGVudW0gY29udGFpbnMgdGhlIGRpZmZlcmVudCBwcm90
b2NvbCB0eXBlcyBzdXBwb3J0ZWQgYnkgdmlydHVhbCBhdXRoZW50aWNhdG9ycy4iLAorICAgICAg
ICAgICAgImVudW0iOiBbCisgICAgICAgICAgICAgICAgImN0YXAxX3UyZiIsCisgICAgICAgICAg
ICAgICAgImN0YXAyIiwKKyAgICAgICAgICAgICAgICAiY3RhcDJfMSIKKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJBdXRoZW50aWNhdG9ycyBtYXkgaW1wbGVtZW50IHZhcmlvdXMgdHJhbnNw
b3J0cyBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24gZGVm
aW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZSB3aXRoIGEgcGFy
dGljdWxhciBhdXRoZW50aWNhdG9yIGluIG9yZGVyIHRvIG9idGFpbiBhbiBhc3NlcnRpb24gZm9y
IGEgc3BlY2lmaWMgY3JlZGVudGlhbC4iLAorICAgICAgICAgICAgImVudW0iOiBbCisgICAgICAg
ICAgICAgICAgInVzYiIsCisgICAgICAgICAgICAgICAgIm5mYyIsCisgICAgICAgICAgICAgICAg
ImJsZSIsCisgICAgICAgICAgICAgICAgImludGVybmFsIgorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0b3JD
cmVkZW50aWFsIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQSBjcmVkZW50aWFsIG9iamVjdCB1c2VkIGZvciB2aXJ0dWFsIGF1dGhl
bnRpY2F0b3JzLiIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImNyZWRlbnRpYWxJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJUaGUgQ3JlZGVudGlhbCBJRCBlbmNvZGVkIHVzaW5nIEJhc2U2NHVybCBFbmNvZGluZy4i
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVzaWRlbnRDcmVkZW50aWFsIiwgInR5
cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJJZiBzZXQgdG8gdHJ1ZSwgYSBjbGllbnQt
c2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkLiBJZiBzZXQgdG8gZmFsc2Us
IGEgc2VydmVyLXNpZGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkIGluc3RlYWQuIn0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJycElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBSZWx5aW5nIFBhcnR5IElEIHRoZSBjcmVkZW50aWFsIGlzIHNjb3BlZCB0by4ifSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByaXZhdGVLZXkiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiQW4gYXN5bW1ldHJpYyBrZXkgcGFja2FnZSBjb250YWluaW5nIGEg
c2luZ2xlIHByaXZhdGUga2V5IHBlciBbUkZDNTk1OF0sIGVuY29kZWQgdXNpbmcgQmFzZTY0dXJs
IEVuY29kaW5nLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJIYW5kbGUiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVz
ZXJIYW5kbGUgYXNzb2NpYXRlZCB0byB0aGUgY3JlZGVudGlhbCBlbmNvZGVkIHVzaW5nIEJhc2U2
NHVybCBFbmNvZGluZy4gVGhpcyBwcm9wZXJ0eSBtYXkgbm90IGJlIGRlZmluZWQuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic2lnbkNvdW50IiwgInR5cGUiOiAiaW50ZWdlciIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgYSBzaWduYXR1cmUgY291bnRlciBh
c3NvY2lhdGVkIHRvIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgc291cmNlLiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImxhcmdlQmxvYiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFyZ2UsIHBlci1jcmVkZW50aWFsIGJs
b2IgYXNzb2NpYXRlZCB0byB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsIHNvdXJjZSwgZW5jb2Rl
ZCB1c2luZyBCYXNlNjR1cmwgRW5jb2RpbmcuIFRoaXMgcHJvcGVydHkgbWF5IG5vdCBiZSBkZWZp
bmVkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uIiwKKyAgICAgICAgICAg
ICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGFyYW1ldGVy
cyB1c2VkIHdoZW4gY3JlYXRpbmcgYSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IiLAorICAgICAgICAg
ICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm90b2NvbCIs
ICIkcmVmIjogIkF1dGhlbnRpY2F0b3JQcm90b2NvbCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcHJv
dG9jb2wgb2YgdGhlIGF1dGhlbnRpY2F0b3IiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ0cmFuc3BvcnQiLCAiJHJlZiI6ICJBdXRoZW50aWNhdG9yVHJhbnNwb3J0IiwgImRlc2NyaXB0
aW9uIjogIlRoZSB0cmFuc3BvcnQgb2YgdGhlIHByb3RvY29sIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGFzUmVzaWRlbnRLZXkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBhdXRoZW50aWNhdG9yIGhhcyBhIHJlc2lk
ZW50IGtleSIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhc1VzZXJWZXJpZmljYXRp
b24iLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IklmIHRoZSBhdXRoZW50aWNhdG9yIHN1cHBvcnRzIHVzZXIgdmVyaWZpY2F0aW9uIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNVc2VyQ29uc2VudGluZyIsICJ0eXBlIjogImJvb2xl
YW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHZpcnR1YWwgYXV0
aGVudGljYXRvciBzaG91bGQgY29uc2VudCB0byByZXF1ZXN0cyJ9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaXNVc2VyVmVyaWZpZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHVzZXIgdmVyaWZpY2F0aW9uIHJlcXVlc3RzIHNo
b3VsZCBzdWNjZWVlZCJ9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXh0ZW5zaW9ucyIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyJ0eXBlIjogInN0cmluZyJ9LCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQW4gYXJyYXkgY29udGFpbmluZyBleHRlbnNpb24gaWRl
bnRpZmllcnMiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1dm0iLCAidHlwZSI6ICJh
cnJheSIsICJpdGVtcyI6IHsidHlwZSI6ICJpbnRlZ2VyIn0sICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJVcCB0byAzIFVzZXIgVmVyaWZpY2F0aW9uIE1ldGhvZCBlbnRyaWVzIn0K
KyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpAQCAt
NzEzLDYgKzc2Myw3MSBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwZXJtaXNzaW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjog
eyAiJHJlZiI6ICJTZXNzaW9uUGVybWlzc2lvbkRhdGEiIH0sICJkZXNjcmlwdGlvbiI6ICJBcnJh
eSBvZiBzZXNzaW9uIHBlcm1pc3Npb25zIHRvIHNldCwgaWYgdGhleSBhcmUgYXZhaWxhYmxlLiIg
fQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQWRkcyBhIHZpcnR1YWwgd2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9yIHRo
ZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiYXV0aGVudGljYXRvciIsICIkcmVmIjogIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJh
dGlvbiIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpcnR1YWwg
YXV0aGVudGljYXRvciB0byBiZSBjcmVhdGVkLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRv
cklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBhdXRoZW50aWNhdG9y
SWQgb2YgdGhlIGNyZWF0ZWQgYXV0aGVudGljYXRvciIgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVWaXJ0dWFsQXV0aGVu
dGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyBhIHZpcnR1YWwg
d2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9yIHRoZSBzcGVjaWZpZWQgYnJvd3Np
bmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklk
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRp
Y2F0b3IgaWQgdG8gcmVtb3ZlLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRp
YWwiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNyZWRlbnRpYWwgdG8gYSBz
cGVjaWZpZWQgdmlydXRhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5n
IGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0
b3IgaWQgdG8gYWRkIHRoZSBjcmVkZW50aWFsIHRvLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNyZWRlbnRpYWwiLCAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRp
YWwiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGNyZWRlbnRpYWwgdG8g
YWRkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJHZXQgYWxsIGNyZWRlbnRpYWxzIGZvciBhIGdpdmVuIHZpcnR1
YWwgYXV0aGVudGljYXRvciBmb3IgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IiwKKyAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRl
c2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImF1dGhlbnRpY2F0b3JJZCIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmlydHVhbCBhdXRoZW50aWNhdG9yIGlkIHRvIGZldGNo
IGFsbCBjcmVkZW50aWFscyBmb3IuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJl
dHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjcmVkZW50aWFscyIsICJ0eXBl
IjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWwiIH0sICJkZXNjcmlwdGlvbiI6ICJBcnJheSBvZiBjcmVkZW50aWFscyBmb3IgZ2l2ZW4g
dmlydHVhbCBhdXRoZW50aWNhdG9yIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3Jl
ZGVudGlhbCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGEgY3JlZGVudGlh
bCBmcm9tIGEgdmlydHVhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5n
IGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0
b3IgaWQgdG8gZmV0Y2ggYWxsIGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJjcmVkZW50aWFsSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGNyZWRlbnRpYWxJZCBvZiB0aGUgY3JlZGVudGlhbCB0byByZW1vdmUgZnJvbSB0aGUg
dmlydHVhbCBhdXRoZW50aWNhdG9yIn0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVtb3ZlQWxsVmlydHVhbEF1dGhlbnRpY2F0b3JD
cmVkZW50aWFscyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGFsbCBjcmVk
ZW50aWFscyBmcm9tIGEgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdGlvciBmb3IgdGhlIHNwZWNp
ZmllZCBicm93c2luZyBjb250ZXh0IiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAi
QnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRo
ZSBicm93c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImF1dGhl
bnRpY2F0b3JJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmlydHVh
bCBhdXRoZW50aWNhdG9yIGlkIHRvIGZldGNoIGFsbCBjcmVkZW50aWFscyBmb3IuIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNl
dFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJzZXQgaXNVc2VyVmVyaWZpZWQgcHJvcGVydHkgZm9yIGEgZ2l2ZW4gdmlydHVhbCBh
dXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQiLAorICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgaWQgdG8gZmV0Y2ggYWxs
IGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1VzZXJW
ZXJpZmllZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVGhlIGlzVXNlclZl
cmlmaWVkIHZhbHVlIHRvIHNldCBvbiB0aGUgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdG9yIn0K
KyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5jcHAKaW5kZXggODdmNDQzZmEyODUxMjU2NTljNzY5ZWM2NjlhOTk0MzgyYjVm
NWExMC4uODAwZDM1ZmRiMTljMmY0ZTA4YjA4NDY3Y2FlMjdlNDA5ZWNlMzUzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBUElPcGVuUGFuZWxQ
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIgogI2lu
Y2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRv
ck1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgogI2lu
Y2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJv
bnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BvaW50ZXJFdmVudFR5cGVOYW1lcy5oPgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTE1
MzAsNiArMTUzMiwxMDUgQEAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lk
PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0U2Vzc2lvblBlcm1pc3MKICAgICByZXR1cm4geyB9
OwogfQogCitzdGF0aWMgV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCB0b0F1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGlj
YXRvclRyYW5zcG9ydCB0cmFuc3BvcnQpCit7CisgICAgc3dpdGNoICh0cmFuc3BvcnQpIHsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OlVzYjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3Bv
cnQ6OlVzYjsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkF1dGhl
bnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQ6Ok5mYzsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkJsZToKKyAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkJsZTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsOgorICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWw7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDsKKyAgICB9Cit9CisK
K0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8U3RyaW5nIC8qIGF1dGhlbnRpY2F0
b3JJZCAqLz4gV2ViQXV0b21hdGlvblNlc3Npb246OmFkZFZpcnR1YWxBdXRoZW50aWNhdG9yKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZWY8SlNPTjo6T2JqZWN0PiYmIGF1
dGhlbnRpY2F0b3IpCit7CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoYnJvd3NpbmdDb250ZXh0SGFuZGxlKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2lu
ZG93Tm90Rm91bmQpOworICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlciYgYXV0aGVudGlj
YXRvck1hbmFnZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkudmlydHVhbEF1dGhlbnRpY2F0
b3JNYW5hZ2VyKCk7CisgICAgYXV0byBwcm90b2NvbCA9IGF1dGhlbnRpY2F0b3ItPmdldFN0cmlu
ZygicHJvdG9jb2wiX3MpOworICAgIGlmICghcHJvdG9jb2wpCisgICAgICAgIFNZTkNfRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBw
YXJhbWV0ZXIgJ3Byb3RvY29sJyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisgICAgYXV0byB0
cmFuc3BvcnQgPSBhdXRoZW50aWNhdG9yLT5nZXRTdHJpbmcoInRyYW5zcG9ydCJfcyk7CisgICAg
aWYgKCF0cmFuc3BvcnQpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Jf
QU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ3RyYW5zcG9ydCcg
aXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOworICAgIGF1dG8gcGFyc2VkVHJhbnNwb3J0ID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OnBhcnNlRW51bVZhbHVlRnJvbVN0
cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpBdXRoZW50aWNhdG9yVHJhbnNw
b3J0Pih0cmFuc3BvcnQpOworICAgIGlmICghcGFyc2VkVHJhbnNwb3J0KQorICAgICAgICBTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIs
ICJUaGUgcGFyYW1ldGVyICd0cmFuc3BvcnQnIGhhcyBhbiB1bmtub3duIHZhbHVlLiIpOworICAg
IGF1dG8gaGFzUmVzaWRlbnRLZXkgPSBhdXRoZW50aWNhdG9yLT5nZXRCb29sZWFuKCJoYXNSZXNp
ZGVudEtleSJfcyk7CisgICAgaWYgKCFoYXNSZXNpZGVudEtleSkKKyAgICAgICAgU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhl
IHBhcmFtZXRlciAnaGFzUmVzaWRlbnRLZXknIGlzIG1pc3Npbmcgb3IgaW52YWxpZC4iKTsKKyAg
ICBhdXRvIGhhc1VzZXJWZXJpZmljYXRpb24gPSBhdXRoZW50aWNhdG9yLT5nZXRCb29sZWFuKCJo
YXNVc2VyVmVyaWZpY2F0aW9uIl9zKTsKKyAgICBpZiAoIWhhc1VzZXJWZXJpZmljYXRpb24pCisg
ICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxp
ZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2hhc1VzZXJWZXJpZmljYXRpb24nIGlzIG1pc3Np
bmcgb3IgaW52YWxpZC4iKTsKKyAgICBhdXRvIGlzVXNlckNvbnNlbnRpbmcgPSBhdXRoZW50aWNh
dG9yLT5nZXRCb29sZWFuKCJpc1VzZXJDb25zZW50aW5nIl9zKTsKKyAgICBpZiAoIWlzVXNlckNv
bnNlbnRpbmcpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RF
VEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2lzVXNlckNvbnNlbnRpbmcn
IGlzIG1pc3Npbmcgb3IgaW52YWxpZC4iKTsKKyAgICBhdXRvIGlzVXNlclZlcmlmaWVkID0gYXV0
aGVudGljYXRvci0+Z2V0Qm9vbGVhbigiaXNVc2VyVmVyaWZpZWQiX3MpOworICAgIGlmICghaXNV
c2VyVmVyaWZpZWQpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5E
X0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2lzVXNlclZlcmlmaWVk
JyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisKKyAgICByZXR1cm4gYXV0aGVudGljYXRvck1h
bmFnZXIuY3JlYXRlQXV0aGVudGljYXRvcih7CisgICAgICAgIC5wcm90b2NvbCA9IHByb3RvY29s
LAorICAgICAgICAudHJhbnNwb3J0ID0gdG9BdXRoZW50aWNhdG9yVHJhbnNwb3J0KHBhcnNlZFRy
YW5zcG9ydC52YWx1ZSgpKSwKKyAgICAgICAgLmhhc1Jlc2lkZW50S2V5ID0gKmhhc1Jlc2lkZW50
S2V5LAorICAgICAgICAuaGFzVXNlclZlcmlmaWNhdGlvbiA9ICpoYXNVc2VyVmVyaWZpY2F0aW9u
LAorICAgICAgICAuaXNVc2VyQ29uc2VudGluZyA9ICppc1VzZXJDb25zZW50aW5nLAorICAgICAg
ICAuaXNVc2VyVmVyaWZpZWQgPSAqaXNVc2VyVmVyaWZpZWQsCisgICAgfSk7CisjZWxzZQorICAg
IFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50
ZWQsICJUaGlzIG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworI2VuZGlmIC8vIEVO
QUJMRShXRUJfQVVUSE4pCit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8
dm9pZD4gV2ViQXV0b21hdGlvblNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRp
Y2F0b3JJZCkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorICAgIFdlYlBhZ2VQcm94eSogcGFn
ZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShicm93c2luZ0NvbnRleHRIYW5kbGUpOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dO
b3RGb3VuZCk7CisgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyJiBhdXRoZW50aWNhdG9y
TWFuYWdlciA9IHBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS52aXJ0dWFsQXV0aGVudGljYXRvck1h
bmFnZXIoKTsKKyAgICBpZiAoIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLnJlbW92ZUF1dGhlbnRpY2F0
b3IoYXV0aGVudGljYXRvcklkKSkKKyAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiTm8gc3VjaCBhdXRoZW50aWNhdG9y
IGV4aXN0cy4iKTsKKyAgICByZXR1cm4geyB9OworI2Vsc2UKKyAgICBTWU5DX0ZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE5vdEltcGxlbWVudGVkLCAiVGhpcyBtZXRob2Qg
aXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQor
fQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRp
b25TZXNzaW9uOjphZGRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWwoY29uc3QgU3RyaW5n
JiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBS
ZWY8SlNPTjo6T2JqZWN0PiYmIGNyZWRlbnRpYWwpCit7CisgICAgU1lOQ19GQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9kIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7Cit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9y
U3RyaW5nT3I8UmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsPj4gLyogY3JlZGVudGlhbHMgKi8+IFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRp
Y2F0b3JJZCkKK3sKKyAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRB
SUxTKE5vdEltcGxlbWVudGVkLCAiVGhpcyBtZXRob2QgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4i
KTsKK30KKworSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0
IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0
b3JJZCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsSWQpCit7CisgICAgU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9k
IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7Cit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVy
cm9yU3RyaW5nT3I8dm9pZD4gV2ViQXV0b21hdGlvblNlc3Npb246OnJlbW92ZUFsbFZpcnR1YWxB
dXRoZW50aWNhdG9yQ3JlZGVudGlhbHMoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5k
bGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkKQoreworICAgIFNZTkNfRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJUaGlzIG1ldGhv
ZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpF
cnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZXRWaXJ0dWFsQXV0aGVu
dGljYXRvclVzZXJWZXJpZmllZChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwg
Y29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9ySWQsIGJvb2wgaXNVc2VyVmVyaWZpZWQpCit7Cisg
ICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1l
bnRlZCwgIlRoaXMgbWV0aG9kIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7Cit9CisKIGJvb2wg
V2ViQXV0b21hdGlvblNlc3Npb246OnNob3VsZEFsbG93R2V0VXNlck1lZGlhRm9yUGFnZShjb25z
dCBXZWJQYWdlUHJveHkmKSBjb25zdAogewogICAgIHJldHVybiBtX3Blcm1pc3Npb25Gb3JHZXRV
c2VyTWVkaWE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggZjc1ZGNhZDVlMzU4NTQ5MzdlYzBiY2Rl
N2QyZDQ3MjhmYjBiNjIyMS4uMTJiN2YxOTMyMmVhNzdmMGI2MWFhNGYwMDMxNjJjMzJlYjk3MTky
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtMjA0LDYgKzIwNCwxNCBAQCBwdWJsaWM6CiAgICAg
SW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxSZWY8SlNPTjo6QXJyYXlPZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpTZXNzaW9uUGVybWlzc2lvbkRhdGE+Pj4gZ2V0
U2Vzc2lvblBlcm1pc3Npb25zKCk7CiAgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJp
bmdPcjx2b2lkPiBzZXRTZXNzaW9uUGVybWlzc2lvbnMoUmVmPEpTT046OkFycmF5PiYmKTsKIAor
ICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8U3RyaW5nIC8qIGF1dGhlbnRp
Y2F0b3JJZCAqLz4gYWRkVmlydHVhbEF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiBicm93c2lu
Z0NvbnRleHRIYW5kbGUsIFJlZjxKU09OOjpPYmplY3Q+JiYgYXV0aGVudGljYXRvcik7CisgICAg
SW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiByZW1vdmVWaXJ0dWFsQXV0
aGVudGljYXRvcihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3Ry
aW5nJiBhdXRoZW50aWNhdG9ySWQpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3Ry
aW5nT3I8dm9pZD4gYWRkVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0IFN0cmlu
ZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCwg
UmVmPEpTT046Ok9iamVjdD4mJiBjcmVkZW50aWFsKTsKKyAgICBJbnNwZWN0b3I6OlByb3RvY29s
OjpFcnJvclN0cmluZ09yPFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbD4+IC8qIGNyZWRlbnRpYWxz
ICovPiBnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgYnJv
d3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCk7CisgICAg
SW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiByZW1vdmVWaXJ0dWFsQXV0
aGVudGljYXRvckNyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxJ
ZCk7CisgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiByZW1vdmVB
bGxWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdD
b250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCk7CisgICAgSW5zcGVj
dG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBzZXRWaXJ0dWFsQXV0aGVudGljYXRv
clVzZXJWZXJpZmllZChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3Qg
U3RyaW5nJiBhdXRoZW50aWNhdG9ySWQsIGJvb2wgaXNVc2VyVmVyaWZpZWQpOworCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChjb25zdCBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHRIYW5kbGUmLCBzdGQ6Om9w
dGlvbmFsPGJvb2w+JiYgZW5hYmxlQXV0b0NhcHR1cmluZywgUmVmPEluc3BlY3RCcm93c2luZ0Nv
bnRleHRDYWxsYmFjaz4mJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5o
CmluZGV4IGY3MWUyZmRkZTU1MWUxYzM4ZGFiMTBlMzMzYjI3YzRhYjc1YTExNDIuLjg2NGIzMzc4
YjM0NzY2NWVlNWY3OTQ4YTdmZDRkMzY0MTY1NTE5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWwoKTsg
Ly8gQ2FsbGVkIGZyb20gdGhlIHByZXNlbnRlci4KIAogICAgIHZpcnR1YWwgYm9vbCBpc01vY2so
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1ZpcnR1YWwoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBlbmFibGVNb2Rlcm5XZWJBdXRoZW50
aWNhdGlvbigpOwogICAgIHZvaWQgZW5hYmxlTmF0aXZlU3VwcG9ydCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFs
QXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmNjMjhhODU1Y2Q5ZWJiN2JmMzU2NDM4NjFmZGRkZWM1Zjk1NTIzZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRI
TikKKworI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvclRyYW5zcG9ydC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0
IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiB7CisgICAgV1RGX01BS0VfU1RSVUNU
X0ZBU1RfQUxMT0NBVEVEOworICAgIC8vIEZJWE1FOiB1c2UgUHJvdG9jb2xWZXJzaW9uIGhlcmUK
KyAgICBTdHJpbmcgcHJvdG9jb2w7CisgICAgV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9y
dCB0cmFuc3BvcnQ7CisgICAgYm9vbCBoYXNSZXNpZGVudEtleTsKKyAgICBib29sIGhhc1VzZXJW
ZXJpZmljYXRpb247CisgICAgYm9vbCBpc1VzZXJDb25zZW50aW5nOworICAgIGJvb2wgaXNVc2Vy
VmVyaWZpZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRo
ZW50aWNhdG9yTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEyZGJiZWYwYjEyMjhhYTc1YTM4Zjc0
ZGFlOTQ3MGZjZDg2NjNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKFdF
Ql9BVVRITikKKworI2luY2x1ZGUgPFZpcnR1YWxTZXJ2aWNlLmg+CisjaW5jbHVkZSA8d3RmL1VV
SUQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
cjo6VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkKKyAgICA6IEF1dGhlbnRpY2F0b3JNYW5h
Z2VyKCkKK3sKK30KKworU3RyaW5nIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRl
QXV0aGVudGljYXRvcihWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24gY29uZmlnKQor
eworICAgIGlmIChjb25maWcudHJhbnNwb3J0ICE9IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OkludGVybmFsKQorICAgICAgICBVTklNUExFTUVOVEVEKCk7CisgICAgYXV0byBpZCA9
IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKKyAgICBtX3ZpcnR1YWxBdXRoZW50aWNhdG9y
cy5zZXQoaWQsIG1ha2VVbmlxdWVSZWY8VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
Pihjb25maWcpKTsKKworICAgIHJldHVybiBpZDsKK30KKworYm9vbCBWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXI6OnJlbW92ZUF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiBpZCkKK3sKKyAg
ICByZXR1cm4gbV92aXJ0dWFsQXV0aGVudGljYXRvcnMucmVtb3ZlKGlkKTsKK30KKworVW5pcXVl
UmVmPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBWaXJ0dWFsQXV0aGVudGljYXRvck1h
bmFnZXI6OmNyZWF0ZVNlcnZpY2UoV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCB0cmFu
c3BvcnQsIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlciYgb2JzZXJ2ZXIp
IGNvbnN0Cit7CisgICAgVmVjdG9yPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbj4g
Y29uZmlnczsKKyAgICBmb3IgKGF1dG8mIGNvbmZpZyA6IG1fdmlydHVhbEF1dGhlbnRpY2F0b3Jz
LnZhbHVlcygpKSB7CisgICAgICAgIGlmIChjb25maWcuZ2V0KCkudHJhbnNwb3J0ID09IHRyYW5z
cG9ydCkKKyAgICAgICAgICAgIGNvbmZpZ3MuYXBwZW5kKGNvbmZpZy5nZXQoKSk7CisgICAgfQor
ICAgIHJldHVybiBWaXJ0dWFsU2VydmljZTo6Y3JlYXRlVmlydHVhbCh0cmFuc3BvcnQsIG9ic2Vy
dmVyLCBjb25maWdzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk1NDdjOTdkZmE1NTQ5YzdlZDViNGJk
NDkwMjYzNTU5NDRlN2U5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIgZmluYWwgOiBwdWJs
aWMgQXV0aGVudGljYXRvck1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFZpcnR1YWxB
dXRoZW50aWNhdG9yTWFuYWdlcigpOworCisgICAgU3RyaW5nIGNyZWF0ZUF1dGhlbnRpY2F0b3Io
VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uIC8qY29uZmlnLyovKTsKKyAgICBib29s
IHJlbW92ZUF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiAvKmF1dGhlbnRpY2F0b3JJZCovKTsK
KworICAgIGJvb2wgaXNWaXJ0dWFsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCitw
cml2YXRlOgorICAgIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3Jl
YXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBBdXRoZW50aWNhdG9y
VHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBjb25zdCBmaW5hbDsKKworICAgIEhhc2hNYXA8
U3RyaW5nLCBVbmlxdWVSZWY8VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPj4gbV92
aXJ0dWFsQXV0aGVudGljYXRvcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVh
bExvY2FsQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NWUxMzExNmNhMjUzZDM2ZWI1NWZlYzI5
Njc4NWIxYWUwOWY4NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
X0FVVEhOKQorCisjaW5jbHVkZSAiTG9jYWxDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiVmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworc3Ry
dWN0IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbjsKKworY2xhc3MgVmlydHVhbExv
Y2FsQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBMb2NhbENvbm5lY3Rpb24geworcHVibGljOgor
ICAgIGV4cGxpY2l0IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24oY29uc3QgVmlydHVhbEF1dGhlbnRp
Y2F0b3JDb25maWd1cmF0aW9uJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCB2ZXJpZnlVc2VyKGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6OkNsaWVudERhdGFUeXBlLCBTZWNBY2Nlc3NDb250cm9sUmVm
LCBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsICBVc2VyVmVyaWZpY2F0aW9u
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCB2ZXJpZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xS
ZWYsIExBQ29udGV4dCAqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJWZXJpZmljYXRpb24p
PiYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEF0dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNEYXRhICph
dXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgZmlsdGVyUmVzcG9uc2VzKFZlY3RvcjxSZWY8V2ViQ29yZTo6QXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlPj4mKSBjb25zdCBmaW5hbDsKKworICAgIFZpcnR1YWxBdXRo
ZW50aWNhdG9yQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxM
b2NhbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg2ZDRk
MWIwOTY4M2ZmY2QxMjM5MDkxMTM1NjRhOTQ3NmY2YmUxYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbExv
Y2FsQ29ubmVjdGlvbi5tbQpAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmgiCisKKyNpZiBFTkFC
TEUoV0VCX0FVVEhOKQorCisjaW1wb3J0ICJWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRp
b24uaCIKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CisjaW1wb3J0IDxT
ZWN1cml0eS9TZWNJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JBc3NlcnRp
b25SZXNwb25zZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW1wb3J0
IDx3dGYvUmVmLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL3NwaS9j
b2NvYS9TZWN1cml0eVNQSS5oPgorI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CisjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2ltcG9ydCAiTG9jYWxBdXRoZW50aWNhdGlvblNv
ZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK1ZpcnR1YWxMb2NhbENvbm5lY3Rpb246OlZpcnR1YWxMb2NhbENvbm5lY3Rpb24oY29uc3Qg
VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIDog
bV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCit7Cit9CisKK3ZvaWQgVmlydHVhbExvY2Fs
Q29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBDbGllbnREYXRhVHlwZSwgU2Vj
QWNjZXNzQ29udHJvbFJlZiwgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LCBV
c2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICAvLyBNb2NrIGFzeW5j
IG9wZXJhdGlvbnMuCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb25maWd1cmF0aW9u
ID0gbV9jb25maWd1cmF0aW9uLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFi
bGUgeworICAgICAgICBBU1NFUlQoY29uZmlndXJhdGlvbi50cmFuc3BvcnQgPT0gQXV0aGVudGlj
YXRvclRyYW5zcG9ydDo6SW50ZXJuYWwpOworCisgICAgICAgIFVzZXJWZXJpZmljYXRpb24gdXNl
clZlcmlmaWNhdGlvbiA9IGNvbmZpZ3VyYXRpb24uaXNVc2VyVmVyaWZpZWQgPyBVc2VyVmVyaWZp
Y2F0aW9uOjpZZXMgOiBVc2VyVmVyaWZpY2F0aW9uOjpObzsKKworICAgICAgICBjYWxsYmFjayh1
c2VyVmVyaWZpY2F0aW9uLCBhZG9wdE5TKFthbGxvY0xBQ29udGV4dEluc3RhbmNlKCkgaW5pdF0p
LmdldCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjp2ZXJp
ZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIExBQ29udGV4dCAqLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFVzZXJWZXJpZmljYXRpb24pPiYmIGNhbGxiYWNrKQoreworICAgIC8vIE1vY2sgYXN5
bmMgb3BlcmF0aW9ucy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZpZ3VyYXRp
b24gPSBtX2NvbmZpZ3VyYXRpb24sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0
YWJsZSB7CisgICAgICAgIEFTU0VSVChjb25maWd1cmF0aW9uLnRyYW5zcG9ydCA9PSBBdXRoZW50
aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCk7CisKKyAgICAgICAgVXNlclZlcmlmaWNhdGlvbiB1
c2VyVmVyaWZpY2F0aW9uID0gY29uZmlndXJhdGlvbi5pc1VzZXJWZXJpZmllZCA/IFVzZXJWZXJp
ZmljYXRpb246OlllcyA6IFVzZXJWZXJpZmljYXRpb246Ok5vOworCisgICAgICAgIGNhbGxiYWNr
KHVzZXJWZXJpZmljYXRpb24pOworICAgIH0pOworfQorCit2b2lkIFZpcnR1YWxMb2NhbENvbm5l
Y3Rpb246OmdldEF0dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNEYXRhICosIE5TRGF0YSAqLCBBdHRl
c3RhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIGNvbnN0Cit7CisgICAgLy8gTW9jayBhc3luYyBv
cGVyYXRpb25zLgorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29uZmlndXJhdGlvbiA9
IG1fY29uZmlndXJhdGlvbiwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgQVNTRVJUKGNvbmZpZ3VyYXRpb24udHJhbnNwb3J0ID09IEF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKKyAgICAgICAgY2FsbGJhY2soTlVMTCwgW05TRXJyb3Ig
ZXJyb3JXaXRoRG9tYWluOkAiV2ViQXV0aGVudGljYXRpb24iIGNvZGU6LTEgdXNlckluZm86QHsg
TlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleTogQCJUaGUgb3BlcmF0aW9uIGNvdWxkbid0IGNvbXBs
ZXRlLiIgfV0pOworICAgIH0pOworfQorCit2b2lkIFZpcnR1YWxMb2NhbENvbm5lY3Rpb246OmZp
bHRlclJlc3BvbnNlcyhWZWN0b3I8UmVmPEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+
JiByZXNwb25zZXMpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2Uu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NGEwOGUwZDg0N2RlY2IwMDU1NzIwMjA1OWFjODYwYmE4NjAwOWNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oIgorI2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNh
dG9yQ29uZmlndXJhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVmlydHVh
bFNlcnZpY2UgOiBwdWJsaWMgQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IFZpcnR1YWxTZXJ2aWNlKE9ic2VydmVyJiwgVmVjdG9yPFZpcnR1YWxB
dXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbj4pOworCisgICAgc3RhdGljIFVuaXF1ZVJlZjxBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3JlYXRlVmlydHVhbChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yVHJhbnNwb3J0LCBPYnNlcnZlciYsIGNvbnN0IFZlY3RvcjxWaXJ0dWFsQXV0aGVudGlj
YXRvckNvbmZpZ3VyYXRpb24+IGNvbmZpZ3MpOworcHJpdmF0ZToKKyAgICB2b2lkIHN0YXJ0RGlz
Y292ZXJ5SW50ZXJuYWwoKSBmaW5hbDsKKworICAgIFZlY3RvcjxWaXJ0dWFsQXV0aGVudGljYXRv
ckNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxTZXJ2aWNl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsU2VydmljZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWFhNDRiNjg0N2FiNDM2NDgwYTA0NjFkM2Zm
NjZiYmFmNjE3ODhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbQpAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaXJ0dWFsU2Vy
dmljZS5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2ltcG9ydCAiTG9jYWxBdXRoZW50
aWNhdG9yLmgiCisjaW1wb3J0ICJWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmgiCisjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1ZpcnR1YWxTZXJ2
aWNlOjpWaXJ0dWFsU2VydmljZShPYnNlcnZlciYgb2JzZXJ2ZXIsIFZlY3RvcjxWaXJ0dWFsQXV0
aGVudGljYXRvckNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb25zKQorICAgIDogQXV0aGVudGlj
YXRvclRyYW5zcG9ydFNlcnZpY2Uob2JzZXJ2ZXIpLCBtX2NvbmZpZ3VyYXRpb25zKGNvbmZpZ3Vy
YXRpb25zKQoreworfQorCitVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+
IFZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQgdHJhbnNwb3J0LCBPYnNlcnZlciYgb2JzZXJ2ZXIsICBjb25zdCBWZWN0b3I8VmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBjb25maWdzKQoreworICAgIHJldHVybiBtYWtl
VW5pcXVlUmVmPFZpcnR1YWxTZXJ2aWNlPihvYnNlcnZlciwgY29uZmlncyk7Cit9CisKK3ZvaWQg
VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwoKQoreworICAgIGlmICghb2Jz
ZXJ2ZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvciAoYXV0byYgY29uZmlnIDogbV9jb25m
aWd1cmF0aW9ucykgeworICAgICAgICBzd2l0Y2ggKGNvbmZpZy50cmFuc3BvcnQpIHsKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDoKKyAgICAg
ICAgICAgIG9ic2VydmVyKCktPmF1dGhlbnRpY2F0b3JBZGRlZChMb2NhbEF1dGhlbnRpY2F0b3I6
OmNyZWF0ZShtYWtlVW5pcXVlUmVmPFZpcnR1YWxMb2NhbENvbm5lY3Rpb24+KGNvbmZpZykpKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFVO
SU1QTEVNRU5URUQoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCBm
ZmZjYTIyNjZmZTcwMTVhNmMwMzliMjkzN2FhNjQ4ODkxYjNjZDQ2Li5jMjRlM2E1NGEwYTJmYjVl
MjFhYjNmODg2NGRhNjc2NDFkM2YwYmQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaG91
bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVz
LmgiCisjaW5jbHVkZSAiVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
V2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5o
IgogI2luY2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCkBAIC0yMTQ0LDYgKzIxNDUsMTMgQEAg
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uKFdlYkNvcmU6Ok1vY2tXZWJBdXQKICAgICB9CiAgICAgc3RhdGljX2Nhc3Q8TW9ja0F1dGhl
bnRpY2F0b3JNYW5hZ2VyKj4oJm1fYXV0aGVudGljYXRvck1hbmFnZXIpLT5zZXRUZXN0Q29uZmln
dXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KKworVmlydHVhbEF1dGhlbnRpY2F0
b3JNYW5hZ2VyJiBXZWJzaXRlRGF0YVN0b3JlOjp2aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIo
KQoreworICAgIGlmICghbV9hdXRoZW50aWNhdG9yTWFuYWdlci0+aXNWaXJ0dWFsKCkpCisgICAg
ICAgIG1fYXV0aGVudGljYXRvck1hbmFnZXIgPSBtYWtlVW5pcXVlUmVmPFZpcnR1YWxBdXRoZW50
aWNhdG9yTWFuYWdlcj4oKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmlydHVhbEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyJj4obV9hdXRoZW50aWNhdG9yTWFuYWdlci5nZXQoKSk7Cit9CiAjZW5kaWYK
IAogQVBJOjpIVFRQQ29va2llU3RvcmUmIFdlYnNpdGVEYXRhU3RvcmU6OmNvb2tpZVN0b3JlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAppbmRleCA0MmVlNjc2Y2NkYTRhYjE0YjVhNDI4OWVlMWE1NzFkMTJlZGM1ZmVi
Li40Y2ExNGI1NDI5OWZlMTBjYWI3ZDJiM2Y5OWVhNTE2MjY1NDFmODQ0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CkBAIC04Nyw2ICs4Nyw3IEBAIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CiBjbGFzcyBEZXZpY2VJ
ZEhhc2hTYWx0U3RvcmFnZTsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CiBjbGFzcyBTT0F1
dGhvcml6YXRpb25Db29yZGluYXRvcjsKK2NsYXNzIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
cjsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2Vi
UHJvY2Vzc1Byb3h5OwpAQCAtMzExLDYgKzMxMiw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VC
X0FVVEhOKQogICAgIEF1dGhlbnRpY2F0b3JNYW5hZ2VyJiBhdXRoZW50aWNhdG9yTWFuYWdlcigp
IHsgcmV0dXJuIG1fYXV0aGVudGljYXRvck1hbmFnZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIm
IHZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcigpOwogI2VuZGlmCiAKICAgICBjb25zdCBXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fY29u
ZmlndXJhdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggMzg2YjA5NWUyZDQ5MWNiM2MwNjIwYjQ2OWQ4OWUyNTU1MzJm
NjdlMi4uNzc3NDBlMTJiOTkxOGQ0MDA4ZmUwYjM5YzE3MGIyOWVkNjdlY2EyYyAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMTM0LDYg
KzExMzQsMTMgQEAKIAkJNTFGRDE4QjYxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFGRDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oICovOyB9
OwogCQk1MjcyRDRDOTFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI3MkQ0QzcxRTcz
NUYwOTAwRUI0MjkwIC8qIFdLUHJvdGVjdGlvblNwYWNlTlMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MjhDMzdDMTE5NUNCQjFBMDBEOEI5Q0Mg
LyogV0tCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTlGMjgxMDE5NThGNDc4MDA4Q0FDNzIgLyogV0tCYWNrRm9y
d2FyZExpc3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTI4RjFDNTAyNzI3MzI1MzAwMDREOUMyIC8qIFZpcnR1YWxBdXRoZW50aWNh
dG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gNTI4RjFDNEYyNzI3MzI1MzAwMDREOUMyIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
ci5oICovOyB9OworCQk1MjhGMUM1MjI3MjczNkVGMDAwNEQ5QzIgLyogVmlydHVhbEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyOEYxQzUxMjcyNzM2RUYwMDA0RDlDMiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwICovOyB9OworCQk1MjhGMUM1OTI3Mjc1NzcyMDAwNEQ5QzIgLyogVmlydHVhbFNl
cnZpY2UuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUy
OEYxQzU3MjcyNzU3NzIwMDA0RDlDMiAvKiBWaXJ0dWFsU2VydmljZS5oICovOyB9OworCQk1MjhG
MUM1QTI3Mjc1NzcyMDAwNEQ5QzIgLyogVmlydHVhbFNlcnZpY2UubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MjhGMUM1ODI3Mjc1NzcyMDAwNEQ5QzIg
LyogVmlydHVhbFNlcnZpY2UubW0gKi87IH07CisJCTUyOEYxQzY0MjcyQjQwNzcwMDA0RDlDMiAv
KiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MjhGMUM2MjI3MkI0MDc3MDAwNEQ5QzIgLyogVmlydHVhbExvY2Fs
Q29ubmVjdGlvbi5oICovOyB9OworCQk1MjhGMUM2NTI3MkI0MDc3MDAwNEQ5QzIgLyogVmlydHVh
bExvY2FsQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUyOEYxQzYzMjcyQjQwNzcwMDA0RDlDMiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0
aW9uLm1tICovOyB9OworCQk1MkQzOUJEMTI3MkNBNDFGMDA2NkIxMTAgLyogVmlydHVhbEF1dGhl
bnRpY2F0b3JDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZp
bGU7IGZpbGVSZWYgPSA1MkQzOUJEMDI3MkNBNDFGMDA2NkIxMTAgLyogVmlydHVhbEF1dGhlbnRp
Y2F0b3JDb25maWd1cmF0aW9uLmggKi87IH07CiAJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAv
KiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUFBMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJNTJGMDYwRTExNjU0MzE4NTAwRjMyODFC
IC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRjA2MEREMTY1NDMx
NzUwMEYzMjgxQiAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTUzMjE1OTU1MURCQUU3MjkwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lv
bkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MzIxNTk1MDFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5oICovOyB9OwpA
QCAtNDMzMCw2ICs0MzM3LDEzIEBACiAJCTUxRkQxOEI0MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0
d29ya1Jlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNzJE
NEM3MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLUHJvdGVjdGlvblNwYWNlTlMuaDsgcGF0aCA9IG1hYy9X
S1Byb3RlY3Rpb25TcGFjZU5TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNzJE
NEM4MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQcm90ZWN0aW9uU3BhY2VOUy5tbTsgcGF0
aCA9IG1hYy9XS1Byb3RlY3Rpb25TcGFjZU5TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MjhGMUM0RjI3MjczMjUzMDAwNEQ5QzIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5h
Z2VyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MjhGMUM1MTI3MjczNkVGMDAwNEQ5QzIgLyogVmly
dHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpcnR1YWxB
dXRoZW50aWNhdG9yTWFuYWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUy
OEYxQzU3MjcyNzU3NzIwMDA0RDlDMiAvKiBWaXJ0dWFsU2VydmljZS5oICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGgg
PSBWaXJ0dWFsU2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MjhGMUM1
ODI3Mjc1NzcyMDAwNEQ5QzIgLyogVmlydHVhbFNlcnZpY2UubW0gKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBWaXJ0dWFsU2VydmljZS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTI4
RjFDNjIyNzJCNDA3NzAwMDREOUMyIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaCAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5o
OyBwYXRoID0gVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OworCQk1MjhGMUM2MzI3MkI0MDc3MDAwNEQ5QzIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlv
bi5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW07IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyRDM5QkQwMjcyQ0E0MUYwMDY2QjExMCAvKiBW
aXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07
CiAJCTUyRDVBMUFBMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJv
eHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFu
YWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUFCMUM1NzQ5
NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW4gKi8g
PSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmls
ZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1lc3NhZ2Vz
LmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBQzFDNTc0OTRFMDBERTM0
QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovID0ge2lzYSA9IFBCWEZpbGVS
ZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29k
ZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtOTE5Nyw2ICs5MjExLDIwIEBACiAJCQlwYXRoID0g
aW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTI4RjFDNEUyNzI3MzFE
NTAwMDREOUMyIC8qIFZpcnR1YWwgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91cDsKKwkJCWNoaWxk
cmVuID0gKAorCQkJCTUyRDM5QkQwMjcyQ0E0MUYwMDY2QjExMCAvKiBWaXJ0dWFsQXV0aGVudGlj
YXRvckNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQk1MjhGMUM1MTI3MjczNkVGMDAwNEQ5QzIgLyog
VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLywKKwkJCQk1MjhGMUM0RjI3MjczMjUz
MDAwNEQ5QzIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmggKi8sCisJCQkJNTI4RjFD
NjIyNzJCNDA3NzAwMDREOUMyIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaCAqLywKKwkJCQk1
MjhGMUM2MzI3MkI0MDc3MDAwNEQ5QzIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbSAqLywK
KwkJCQk1MjhGMUM1NzI3Mjc1NzcyMDAwNEQ5QzIgLyogVmlydHVhbFNlcnZpY2UuaCAqLywKKwkJ
CQk1MjhGMUM1ODI3Mjc1NzcyMDAwNEQ5QzIgLyogVmlydHVhbFNlcnZpY2UubW0gKi8sCisJCQkp
OworCQkJcGF0aCA9IFZpcnR1YWw7CisJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOworCQl9Owog
CQk1NTA2NDA5QzI0MDcxNUFBMDBBQUUwNDUgLyogZ3JhcGhpY3MgKi8gPSB7CiAJCQlpc2EgPSBQ
QlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtOTM5Niw2ICs5NDI0LDcgQEAKIAkJCQk1N0RD
RUQ5RTIxNDhGOUQxMDAxNkI4NDcgLyogQ29jb2EgKi8sCiAJCQkJNTc1OTdFQkYyMTgxODRCMjAw
MzdGOTI0IC8qIGZpZG8gKi8sCiAJCQkJNTdEQ0VEQkQyMTRDOUZBOTAwMTZCODQ3IC8qIE1vY2sg
Ki8sCisJCQkJNTI4RjFDNEUyNzI3MzFENTAwMDREOUMyIC8qIFZpcnR1YWwgKi8sCiAJCQkJNTdE
Q0VEQTQyMTQ5RTY0QTAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3IuY3BwICovLAogCQkJCTU3RENF
RDhCMjE0ODVCRDcwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yLmggKi8sCiAJCQkJNTdEQ0VEODUy
MTQ3MzYzQTAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLywKQEAgLTk1OTks
OSArOTYyOCw5IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTVD
QkI2RDREMjcxRjY3Q0MwMEZEMUE1RCAvKiBjb20uYXBwbGUud2Via2l0LndlYnB1c2hkLnBsaXN0
ICovLAotCQkJCTVDMTU3QTBCMjcxN0NBMUMwMEVENTI4MCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5t
bSAqLywKIAkJCQk1MTJDRDY5RDI3MjMzOTNBMDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5oICov
LAogCQkJCTUxMkNENjlFMjcyMzM5M0EwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uLm1tICovLAor
CQkJCTVDMTU3QTBCMjcxN0NBMUMwMEVENTI4MCAvKiBXZWJQdXNoRGFlbW9uTWFpbi5tbSAqLywK
IAkJCSk7CiAJCQlwYXRoID0gd2VicHVzaGQ7CiAJCQlzb3VyY2VUcmVlID0gIjxncm91cD4iOwpA
QCAtMTI4NDMsNyArMTI4NzIsNiBAQAogCQkJCTkzQUI5QjRFMjU3NTY3RTIwMDk4QjEwRSAvKiBT
cGVlY2hSZWNvZ25pdGlvblJlbW90ZVJlYWx0aW1lTWVkaWFTb3VyY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTkzQUI5QjREMjU3NTY3REMwMDk4QjEwRSAvKiBTcGVlY2hSZWNvZ25pdGlvblJlbW90
ZVJlYWx0aW1lTWVkaWFTb3VyY2VNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc3
MjI1NEJCNTE5MDA1OEREM0EgLyogU3BlZWNoUmVjb2duaXRpb25TZXJ2ZXIuaCBpbiBIZWFkZXJz
ICovLAotCQkJCTUxMkNENjlBMjcyMUYwQTkwMEY3RjhFQyAvKiBXZWJQdXNoRGFlbW9uQ29uc3Rh
bnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQk5M0Q2Qjc4NDI1NENDRDBFMDA1OEREM0EgLyogU3Bl
ZWNoUmVjb2duaXRpb25TZXJ2ZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTNENkI3
ODUyNTRDQ0Q0MzAwNThERDNBIC8qIFNwZWVjaFJlY29nbml0aW9uU2VydmVyTWVzc2FnZXNSZXBs
aWVzLmggaW4gSGVhZGVycyAqLywKIAkJCQk3QTNGRUNBMjIxRjdDMDk3MDBGMjY3Q0QgLyogU3Rv
cmFnZUFjY2Vzc1N0YXR1cy5oIGluIEhlYWRlcnMgKi8sCkBAIC0xMjkwNSw2ICsxMjkzMywxMCBA
QAogCQkJCTJEODE5QkEyMTg2MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29s
bGVjdG9yTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAogCQkJCTJENkNEMTE5MTg5MDU4QTUwMEU1
QTRBMCAvKiBWaWV3U25hcHNob3RTdG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY4NDA1NTMx
OEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFk
ZXJzICovLAorCQkJCTUyRDM5QkQxMjcyQ0E0MUYwMDY2QjExMCAvKiBWaXJ0dWFsQXV0aGVudGlj
YXRvckNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUyOEYxQzUwMjcyNzMyNTMw
MDA0RDlDMiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAor
CQkJCTUyOEYxQzY0MjcyQjQwNzcwMDA0RDlDMiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmgg
aW4gSGVhZGVycyAqLywKKwkJCQk1MjhGMUM1OTI3Mjc1NzcyMDAwNEQ5QzIgLyogVmlydHVhbFNl
cnZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2ODQwNTQ0MThCODVBNjMwMDIyQzM4QiAvKiBW
aXNpYmxlQ29udGVudFJlY3RVcGRhdGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ1QTcy
OTFFQkYwOEQ1MDA5QkE1OTcgLyogVmlzaWJsZVdlYlBhZ2VDb3VudGVyLmggaW4gSGVhZGVycyAq
LywKIAkJCQkzMTU1RUUwRDI2NzNGNEYwMDA4NUU1OUEgLyogVmlzaW9uS2l0U1BJLmggaW4gSGVh
ZGVycyAqLywKQEAgLTEyOTMxLDcgKzEyOTYzLDYgQEAKIAkJCQk5OTBEMzlGNTI0M0JFNjQ4MDAx
OTkzODggLyogV2ViQXV0b21hdGlvbkRPTVdpbmRvd09ic2VydmVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5OTU1QTZFQzFDNzk4MEMyMDBFQjZBOTMgLyogV2ViQXV0b21hdGlvblNlc3Npb24uaCBp
biBIZWFkZXJzICovLAogCQkJCTk5QzNBRTJEMURBREE2QUQwMEFGNUMxNiAvKiBXZWJBdXRvbWF0
aW9uU2Vzc2lvbk1hY3Jvcy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNTEyQ0Q2OTgyNzIxRUZDODAw
RjdGOEVDIC8qIFdlYlB1c2hEYWVtb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkx
QzBBMTk1ODFDOTAwNjhGMDBGRTBFQkIgLyogV2ViQXV0b21hdGlvblNlc3Npb25NZXNzYWdlcy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMUMwQTE5NDcxQzhGRjFBODAwRkUwRUJCIC8qIFdlYkF1dG9t
YXRpb25TZXNzaW9uUHJveHkuaCBpbiBIZWFkZXJzICovLAogCQkJCTFDMEExOTU0MUM4RkZERkIw
MEZFMEVCQiAvKiBXZWJBdXRvbWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZXMuaCBpbiBIZWFkZXJz
ICovLApAQCAtMTMxMTAsNiArMTMxNDEsOCBAQAogCQkJCUJDRTBFNDI1MTY4QjdBMjgwMDU3RTY2
QSAvKiBXZWJQcm9jZXNzU3VwcGxlbWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUExRTA5MzQx
ODg2MUQzODAwRDJEQzQ5IC8qIFdlYlByb2dyZXNzVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJNTEyRjU4OUQxMkE4ODM4ODAwNjI5NTMwIC8qIFdlYlByb3RlY3Rpb25TcGFjZS5o
IGluIEhlYWRlcnMgKi8sCisJCQkJNTEyQ0Q2OTgyNzIxRUZDODAwRjdGOEVDIC8qIFdlYlB1c2hE
YWVtb25Db25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MTJDRDY5QTI3MjFGMEE5MDBG
N0Y4RUMgLyogV2ViUHVzaERhZW1vbkNvbnN0YW50cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDYx
Q0NDQTYyMzE0ODVBQTAwQjY1OUI5IC8qIFdlYlJlbW90ZU9iamVjdFJlZ2lzdHJ5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNTg2MEU3MTIzMEY2N0ZDMDA0NjFBQUUgLyogV2ViUmVzb3VyY2VJbnRl
cmNlcHRDb250cm9sbGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTBBRkZCQTE2NTQyMDQ4MDAx
QkEwNUUgLyogV2ViUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovLApAQCAtMTQ2ODcsMTEg
KzE0NzIwLDExIEBACiAJCQlpc2EgPSBQQlhTb3VyY2VzQnVpbGRQaGFzZTsKIAkJCWJ1aWxkQWN0
aW9uTWFzayA9IDIxNDc0ODM2NDc7CiAJCQlmaWxlcyA9ICgKLQkJCQk1MTJDRDZBMDI3MjMzOTNB
MDBGN0Y4RUMgLyogV2ViUHVzaERhZW1vbi5tbSBpbiBTb3VyY2VzICovLAogCQkJCTVDMTU3QTAx
MjcxN0I3RkIwMEVENTI4MCAvKiBBcmd1bWVudENvZGVycy5jcHAgaW4gU291cmNlcyAqLywKIAkJ
CQk1QzE1NzlGRjI3MTdCNkQyMDBFRDUyODAgLyogRGFlbW9uRGVjb2Rlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQk1QzE1NzlGRTI3MTdCNkMxMDBFRDUyODAgLyogRGFlbW9uRW5jb2Rlci5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQk1QzE1NzlGQjI3MTdBRjUwMDBFRDUyODAgLyogRGFlbW9uVXRp
bGl0aWVzLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTEyQ0Q2QTAyNzIzMzkzQTAwRjdGOEVDIC8q
IFdlYlB1c2hEYWVtb24ubW0gaW4gU291cmNlcyAqLywKIAkJCQk1QzE1N0EwQzI3MTdDQTFEMDBF
RDUyODAgLyogV2ViUHVzaERhZW1vbk1haW4ubW0gaW4gU291cmNlcyAqLywKIAkJCSk7CiAJCQly
dW5Pbmx5Rm9yRGVwbG95bWVudFBvc3Rwcm9jZXNzaW5nID0gMDsKQEAgLTE1MDY3LDYgKzE1MTAw
LDkgQEAKIAkJCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVDb250cm9s
bGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODE5QkExMTg2Mjgw
MEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZVJlY2VpdmVy
LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2ODQwNTUyMThCODZFRDYwMDIyQzM4QiAvKiBWaWV3
VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1
MjhGMUM1MjI3MjczNkVGMDAwNEQ5QzIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNw
cCBpbiBTb3VyY2VzICovLAorCQkJCTUyOEYxQzY1MjcyQjQwNzcwMDA0RDlDMiAvKiBWaXJ0dWFs
TG9jYWxDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTI4RjFDNUEyNzI3NTc3MjAw
MDREOUMyIC8qIFZpcnR1YWxTZXJ2aWNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2MDIyNEMx
OEMxNkI5RjAwQzNFOEM5IC8qIFZpc2l0ZWRMaW5rU3RvcmVNZXNzYWdlUmVjZWl2ZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCiAJCQkJMUE4RTdEM0MxOEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0ZWRMaW5r
VGFibGVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTU3
RENFRDcwMjE0MkVFNjgwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443135</attachid>
            <date>2021-11-02 14:28:36 -0700</date>
            <delta_ts>2021-11-03 12:03:18 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232635-20211102142834.patch</filename>
            <type>text/plain</type>
            <size>53156</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MTc4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk3NTU2MjMxNWRjNmMzZDkw
Y2ExOTI0ZTFmOTU1OTkxYTEyZTJkNmIuLmU0MTA5ZjA0NzFkZmJlODlkODA1MTE0MDZhOGJjN2Vl
ODE2MTQ4YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMTEtMDIgIEpvaG4gUGFz
Y29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50
IGFkZC9yZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yIGZvciB0cmFuc3BvcnQ9aW50ZXJuYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ5NDIxNzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBtdWNoIG9m
IHRoZSBwbHVtYmluZyBuZWVkZWQgdG8gY2FsbCB0aGUgdmlydHVhbCBhdXRoZW50aWNhdG9yCisg
ICAgICAgIGNvbW1hbmRzIGZyb20gc2FmYXJpZHJpdmVyLiBUaGUgaWRlYSBpcyB0aGF0IHZpcnR1
YWwgYXV0aGVudGljYXRvcnMgYXJlIGFkZGVkIHZpYQorICAgICAgICB0aGUgYWRkX3ZpcnR1YWxf
YXV0aGVudGljYXRvciBjYWxsLCB3aGljaCByZXBsYWNlcyB0aGUgZGVmYXVsdCBBdXRoZW50aWNh
dG9yTWFuYWdlcgorICAgICAgICB3aXRoIGEgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyIHNp
bWlsYXIgdG8gaG93IHdlIGRvIGl0IGZvciBtb2Nrcy4gVGhlbiB0aGUKKyAgICAgICAgVmlydHVh
bFNlcnZpY2Ugd2lsbCBjcmVhdGUgdGhlIHZpcnR1YWwgY29ubmVjdGlvbnMgZm9yIGF1dGhlbnRp
Y2F0b3JzIGFzIG5lc3Nlc2FyeQorICAgICAgICB0byBtYWtlIHdlYmF1dGhuIGNhbGxzIHdpdGhp
biBXZWJEcml2ZXIgYmFzZWQgdGVzdHMuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5IHZpYSBz
YWZhcmlkcml2ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9u
Lmpzb246CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVtb3ZlVmlydHVhbEF1dGhlbnRp
Y2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkVmlydHVh
bEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVBbGxWaXJ0dWFsQXV0aGVudGlj
YXRvckNyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246
OnNldFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICBQbHVtYmluZyB0
byBjYWxsIGZyb20gc2FmYXJpZHJpdmVyCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjppc1ZpcnR1YWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZUF1
dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXI6OnJlbW92ZUF1dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVu
dGljYXRvck1hbmFnZXI6OmNyZWF0ZVNlcnZpY2UgY29uc3QpOgorICAgICAgICBNYW5hZ2VzIHZp
cnR1YWwgYXV0aGVudGljYXRvcnMsIHJlcGxhY2VzIHRoZSBkZWZhdWx0IG1hbmFnZXIgd2hlbiB1
c2VkIHNpbWlsYXIgdG8gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVh
bC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW06IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjpWaXJ0dWFsTG9jYWxD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlvbjo6dmVy
aWZ5VXNlcik6CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxMb2NhbENvbm5lY3Rpb246OmdldEF0
dGVzdGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlv
bjo6ZmlsdGVyUmVzcG9uc2VzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpWaXJ0dWFsU2VydmljZSk6CisgICAg
ICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKToKKyAgICAgICAgKFdl
YktpdDo6VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6dmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAyICBTaWh1
aSBMaXUgIDxzaWh1aV9saXVAYXBwbGUuY29tPgogCiAgICAgICAgIFRlcm1pbmF0ZSB1bnJlc3Bv
bnNpdmUgbmV0d29yayBwcm9jZXNzIGJ5IGNyYXNoaW5nIGl0CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDhkMmU5YmQzMDBh
MDYwZWNkZjZlN2ZlOTA5YTEyNWQ2YWRhYmFmOTMuLjlhMjhiODA2ODczODQxMWZiOTBjMWI1YzAy
ODQ4ZTA0ODk0MjgyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vQXV0b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9t
YXRpb24vQXV0b21hdGlvbi5qc29uCkBAIC0zMzUsNiArMzM1LDU2IEBACiAgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJkZWx0YSIsICIkcmVmIjogIlNpemUiLCAib3B0aW9uYWwiOiB0cnVlLCAi
ZGVzY3JpcHRpb24iOiAiRm9yICd3aGVlbCcgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIGEgc2Ny
b2xsIGRlbHRhLiJ9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZHVyYXRpb24iLCAidHlw
ZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBtaW5p
bXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBtdXN0IGVsYXBzZSB3aGlsZSB0aGUgcmVs
ZXZhbnQgaW5wdXQgc291cmNlIHRyYW5zaXRpb25zIHRvIHRoaXMgc3RhdGUuIiB9CiAgICAgICAg
ICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJBdXRoZW50
aWNhdG9yUHJvdG9jb2wiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGVudW0gY29udGFpbnMgdGhlIGRpZmZlcmVudCBwcm90
b2NvbCB0eXBlcyBzdXBwb3J0ZWQgYnkgdmlydHVhbCBhdXRoZW50aWNhdG9ycy4iLAorICAgICAg
ICAgICAgImVudW0iOiBbCisgICAgICAgICAgICAgICAgImN0YXAxX3UyZiIsCisgICAgICAgICAg
ICAgICAgImN0YXAyIiwKKyAgICAgICAgICAgICAgICAiY3RhcDJfMSIKKyAgICAgICAgICAgIF0K
KyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkF1dGhlbnRpY2F0b3JU
cmFuc3BvcnQiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAgICJk
ZXNjcmlwdGlvbiI6ICJBdXRoZW50aWNhdG9ycyBtYXkgaW1wbGVtZW50IHZhcmlvdXMgdHJhbnNw
b3J0cyBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24gZGVm
aW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZSB3aXRoIGEgcGFy
dGljdWxhciBhdXRoZW50aWNhdG9yIGluIG9yZGVyIHRvIG9idGFpbiBhbiBhc3NlcnRpb24gZm9y
IGEgc3BlY2lmaWMgY3JlZGVudGlhbC4iLAorICAgICAgICAgICAgImVudW0iOiBbCisgICAgICAg
ICAgICAgICAgInVzYiIsCisgICAgICAgICAgICAgICAgIm5mYyIsCisgICAgICAgICAgICAgICAg
ImJsZSIsCisgICAgICAgICAgICAgICAgImludGVybmFsIgorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0b3JD
cmVkZW50aWFsIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAi
ZGVzY3JpcHRpb24iOiAiQSBjcmVkZW50aWFsIG9iamVjdCB1c2VkIGZvciB2aXJ0dWFsIGF1dGhl
bnRpY2F0b3JzLiIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogImNyZWRlbnRpYWxJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlv
biI6ICJUaGUgQ3JlZGVudGlhbCBJRCBlbmNvZGVkIHVzaW5nIEJhc2U2NHVybCBFbmNvZGluZy4i
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVzaWRlbnRDcmVkZW50aWFsIiwgInR5
cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJJZiBzZXQgdG8gdHJ1ZSwgYSBjbGllbnQt
c2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkLiBJZiBzZXQgdG8gZmFsc2Us
IGEgc2VydmVyLXNpZGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkIGluc3RlYWQuIn0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJycElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9u
IjogIlRoZSBSZWx5aW5nIFBhcnR5IElEIHRoZSBjcmVkZW50aWFsIGlzIHNjb3BlZCB0by4ifSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByaXZhdGVLZXkiLCAidHlwZSI6ICJzdHJpbmci
LCAiZGVzY3JpcHRpb24iOiAiQW4gYXN5bW1ldHJpYyBrZXkgcGFja2FnZSBjb250YWluaW5nIGEg
c2luZ2xlIHByaXZhdGUga2V5IHBlciBbUkZDNTk1OF0sIGVuY29kZWQgdXNpbmcgQmFzZTY0dXJs
IEVuY29kaW5nLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJIYW5kbGUiLCAi
dHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIHVz
ZXJIYW5kbGUgYXNzb2NpYXRlZCB0byB0aGUgY3JlZGVudGlhbCBlbmNvZGVkIHVzaW5nIEJhc2U2
NHVybCBFbmNvZGluZy4gVGhpcyBwcm9wZXJ0eSBtYXkgbm90IGJlIGRlZmluZWQuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAic2lnbkNvdW50IiwgInR5cGUiOiAiaW50ZWdlciIsICJk
ZXNjcmlwdGlvbiI6ICJUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgYSBzaWduYXR1cmUgY291bnRlciBh
c3NvY2lhdGVkIHRvIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgc291cmNlLiIgfSwKKyAgICAg
ICAgICAgICAgICB7ICJuYW1lIjogImxhcmdlQmxvYiIsICJ0eXBlIjogInN0cmluZyIsICJvcHRp
b25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFyZ2UsIHBlci1jcmVkZW50aWFsIGJs
b2IgYXNzb2NpYXRlZCB0byB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsIHNvdXJjZSwgZW5jb2Rl
ZCB1c2luZyBCYXNlNjR1cmwgRW5jb2RpbmcuIFRoaXMgcHJvcGVydHkgbWF5IG5vdCBiZSBkZWZp
bmVkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uIiwKKyAgICAgICAgICAg
ICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGFyYW1ldGVy
cyB1c2VkIHdoZW4gY3JlYXRpbmcgYSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IiLAorICAgICAgICAg
ICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm90b2NvbCIs
ICIkcmVmIjogIkF1dGhlbnRpY2F0b3JQcm90b2NvbCIsICJkZXNjcmlwdGlvbiI6ICJUaGUgcHJv
dG9jb2wgb2YgdGhlIGF1dGhlbnRpY2F0b3IiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6
ICJ0cmFuc3BvcnQiLCAiJHJlZiI6ICJBdXRoZW50aWNhdG9yVHJhbnNwb3J0IiwgImRlc2NyaXB0
aW9uIjogIlRoZSB0cmFuc3BvcnQgb2YgdGhlIHByb3RvY29sIiB9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaGFzUmVzaWRlbnRLZXkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBhdXRoZW50aWNhdG9yIGhhcyBhIHJlc2lk
ZW50IGtleSIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhc1VzZXJWZXJpZmljYXRp
b24iLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjog
IklmIHRoZSBhdXRoZW50aWNhdG9yIHN1cHBvcnRzIHVzZXIgdmVyaWZpY2F0aW9uIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNVc2VyQ29uc2VudGluZyIsICJ0eXBlIjogImJvb2xl
YW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHZpcnR1YWwgYXV0
aGVudGljYXRvciBzaG91bGQgY29uc2VudCB0byByZXF1ZXN0cyJ9LAorICAgICAgICAgICAgICAg
IHsgIm5hbWUiOiAiaXNVc2VyVmVyaWZpZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHVzZXIgdmVyaWZpY2F0aW9uIHJlcXVlc3RzIHNo
b3VsZCBzdWNjZWVlZCJ9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXh0ZW5zaW9ucyIs
ICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyJ0eXBlIjogInN0cmluZyJ9LCAib3B0aW9uYWwi
OiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQW4gYXJyYXkgY29udGFpbmluZyBleHRlbnNpb24gaWRl
bnRpZmllcnMiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1dm0iLCAidHlwZSI6ICJh
cnJheSIsICJpdGVtcyI6IHsidHlwZSI6ICJpbnRlZ2VyIn0sICJvcHRpb25hbCI6IHRydWUsICJk
ZXNjcmlwdGlvbiI6ICJVcCB0byAzIFVzZXIgVmVyaWZpY2F0aW9uIE1ldGhvZCBlbnRyaWVzIn0K
KyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpAQCAt
NzEzLDYgKzc2Myw3MSBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJwZXJtaXNzaW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjog
eyAiJHJlZiI6ICJTZXNzaW9uUGVybWlzc2lvbkRhdGEiIH0sICJkZXNjcmlwdGlvbiI6ICJBcnJh
eSBvZiBzZXNzaW9uIHBlcm1pc3Npb25zIHRvIHNldCwgaWYgdGhleSBhcmUgYXZhaWxhYmxlLiIg
fQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFt
ZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24i
OiAiQWRkcyBhIHZpcnR1YWwgd2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9yIHRo
ZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMi
OiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAi
JHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRs
ZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiYXV0aGVudGljYXRvciIsICIkcmVmIjogIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJh
dGlvbiIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpcnR1YWwg
YXV0aGVudGljYXRvciB0byBiZSBjcmVhdGVkLiIgfQorICAgICAgICAgICAgXSwKKyAgICAgICAg
ICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRv
cklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBhdXRoZW50aWNhdG9y
SWQgb2YgdGhlIGNyZWF0ZWQgYXV0aGVudGljYXRvciIgfQorICAgICAgICAgICAgXQorICAgICAg
ICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVWaXJ0dWFsQXV0aGVu
dGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyBhIHZpcnR1YWwg
d2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9yIHRoZSBzcGVjaWZpZWQgYnJvd3Np
bmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklk
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRp
Y2F0b3IgaWQgdG8gcmVtb3ZlLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAg
ICB7CisgICAgICAgICAgICAibmFtZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRp
YWwiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNyZWRlbnRpYWwgdG8gYSBz
cGVjaWZpZWQgdmlydXRhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5n
IGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0
b3IgaWQgdG8gYWRkIHRoZSBjcmVkZW50aWFsIHRvLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNyZWRlbnRpYWwiLCAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRp
YWwiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGNyZWRlbnRpYWwgdG8g
YWRkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAg
ICAibmFtZSI6ICJnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzIiwKKyAgICAgICAg
ICAgICJkZXNjcmlwdGlvbiI6ICJHZXQgYWxsIGNyZWRlbnRpYWxzIGZvciBhIGdpdmVuIHZpcnR1
YWwgYXV0aGVudGljYXRvciBmb3IgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IiwKKyAg
ICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJv
d3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRl
c2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImF1dGhlbnRpY2F0b3JJZCIsICJ0eXBlIjogInN0cmlu
ZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmlydHVhbCBhdXRoZW50aWNhdG9yIGlkIHRvIGZldGNo
IGFsbCBjcmVkZW50aWFscyBmb3IuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAgInJl
dHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjcmVkZW50aWFscyIsICJ0eXBl
IjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWwiIH0sICJkZXNjcmlwdGlvbiI6ICJBcnJheSBvZiBjcmVkZW50aWFscyBmb3IgZ2l2ZW4g
dmlydHVhbCBhdXRoZW50aWNhdG9yIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAg
ICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3Jl
ZGVudGlhbCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGEgY3JlZGVudGlh
bCBmcm9tIGEgdmlydHVhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5n
IGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRl
eHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNv
bnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwg
InR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0
b3IgaWQgdG8gZmV0Y2ggYWxsIGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAgICAg
eyAibmFtZSI6ICJjcmVkZW50aWFsSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24i
OiAiVGhlIGNyZWRlbnRpYWxJZCBvZiB0aGUgY3JlZGVudGlhbCB0byByZW1vdmUgZnJvbSB0aGUg
dmlydHVhbCBhdXRoZW50aWNhdG9yIn0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAg
ICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVtb3ZlQWxsVmlydHVhbEF1dGhlbnRpY2F0b3JD
cmVkZW50aWFscyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGFsbCBjcmVk
ZW50aWFscyBmcm9tIGEgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdGlvciBmb3IgdGhlIHNwZWNp
ZmllZCBicm93c2luZyBjb250ZXh0IiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAi
QnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRo
ZSBicm93c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImF1dGhl
bnRpY2F0b3JJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmlydHVh
bCBhdXRoZW50aWNhdG9yIGlkIHRvIGZldGNoIGFsbCBjcmVkZW50aWFscyBmb3IuIiB9CisgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInNl
dFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkIiwKKyAgICAgICAgICAgICJkZXNjcmlw
dGlvbiI6ICJzZXQgaXNVc2VyVmVyaWZpZWQgcHJvcGVydHkgZm9yIGEgZ2l2ZW4gdmlydHVhbCBh
dXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQiLAorICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgaWQgdG8gZmV0Y2ggYWxs
IGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1VzZXJW
ZXJpZmllZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVGhlIGlzVXNlclZl
cmlmaWVkIHZhbHVlIHRvIHNldCBvbiB0aGUgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdG9yIn0K
KyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNl
c3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5jcHAKaW5kZXggODdmNDQzZmEyODUxMjU2NTljNzY5ZWM2NjlhOTk0MzgyYjVm
NWExMC4uODAwZDM1ZmRiMTljMmY0ZTA4YjA4NDY3Y2FlMjdlNDA5ZWNlMzUzMCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0
aW9uU2Vzc2lvbi5jcHAKQEAgLTMzLDYgKzMzLDcgQEAKICNpbmNsdWRlICJBUElPcGVuUGFuZWxQ
YXJhbWV0ZXJzLmgiCiAjaW5jbHVkZSAiQXV0b21hdGlvblByb3RvY29sT2JqZWN0cy5oIgogI2lu
Y2x1ZGUgIkNvb3JkaW5hdGVTeXN0ZW0uaCIKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRv
ck1hbmFnZXIuaCIKICNpbmNsdWRlICJXZWJBdXRvbWF0aW9uU2Vzc2lvbk1hY3Jvcy5oIgogI2lu
Y2x1ZGUgIldlYkF1dG9tYXRpb25TZXNzaW9uTWVzc2FnZXMuaCIKICNpbmNsdWRlICJXZWJBdXRv
bWF0aW9uU2Vzc2lvblByb3h5TWVzc2FnZXMuaCIKQEAgLTQ0LDYgKzQ1LDcgQEAKICNpbmNsdWRl
ICJXZWJQcm9jZXNzUG9vbC5oIgogI2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0luc3BlY3RvckJh
Y2tlbmREaXNwYXRjaGVyLmg+CiAjaW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvSW5zcGVjdG9yRnJv
bnRlbmRSb3V0ZXIuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQu
aD4KICNpbmNsdWRlIDxXZWJDb3JlL01JTUVUeXBlUmVnaXN0cnkuaD4KICNpbmNsdWRlIDxXZWJD
b3JlL1BvaW50ZXJFdmVudFR5cGVOYW1lcy5oPgogI2luY2x1ZGUgPGFsZ29yaXRobT4KQEAgLTE1
MzAsNiArMTUzMiwxMDUgQEAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lk
PiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0U2Vzc2lvblBlcm1pc3MKICAgICByZXR1cm4geyB9
OwogfQogCitzdGF0aWMgV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCB0b0F1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQoSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGlj
YXRvclRyYW5zcG9ydCB0cmFuc3BvcnQpCit7CisgICAgc3dpdGNoICh0cmFuc3BvcnQpIHsKKyAg
ICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OlVzYjoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3Bv
cnQ6OlVzYjsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246OkF1dGhl
bnRpY2F0b3JUcmFuc3BvcnQ6Ok5mYzoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQ6Ok5mYzsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9t
YXRpb246OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkJsZToKKyAgICAgICAgcmV0dXJuIFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkJsZTsKKyAgICBjYXNlIEluc3BlY3Rvcjo6UHJv
dG9jb2w6OkF1dG9tYXRpb246OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsOgorICAg
ICAgICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWw7Cisg
ICAgZGVmYXVsdDoKKyAgICAgICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDsKKyAgICB9Cit9CisK
K0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8U3RyaW5nIC8qIGF1dGhlbnRpY2F0
b3JJZCAqLz4gV2ViQXV0b21hdGlvblNlc3Npb246OmFkZFZpcnR1YWxBdXRoZW50aWNhdG9yKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZWY8SlNPTjo6T2JqZWN0PiYmIGF1
dGhlbnRpY2F0b3IpCit7CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICBXZWJQYWdlUHJveHkq
IHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoYnJvd3NpbmdDb250ZXh0SGFuZGxlKTsKKyAg
ICBpZiAoIXBhZ2UpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1IoV2lu
ZG93Tm90Rm91bmQpOworICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlciYgYXV0aGVudGlj
YXRvck1hbmFnZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkudmlydHVhbEF1dGhlbnRpY2F0
b3JNYW5hZ2VyKCk7CisgICAgYXV0byBwcm90b2NvbCA9IGF1dGhlbnRpY2F0b3ItPmdldFN0cmlu
ZygicHJvdG9jb2wiX3MpOworICAgIGlmICghcHJvdG9jb2wpCisgICAgICAgIFNZTkNfRkFJTF9X
SVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBw
YXJhbWV0ZXIgJ3Byb3RvY29sJyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisgICAgYXV0byB0
cmFuc3BvcnQgPSBhdXRoZW50aWNhdG9yLT5nZXRTdHJpbmcoInRyYW5zcG9ydCJfcyk7CisgICAg
aWYgKCF0cmFuc3BvcnQpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Jf
QU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ3RyYW5zcG9ydCcg
aXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOworICAgIGF1dG8gcGFyc2VkVHJhbnNwb3J0ID0gSW5z
cGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbkhlbHBlcnM6OnBhcnNlRW51bVZhbHVlRnJvbVN0
cmluZzxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpBdXRoZW50aWNhdG9yVHJhbnNw
b3J0Pih0cmFuc3BvcnQpOworICAgIGlmICghcGFyc2VkVHJhbnNwb3J0KQorICAgICAgICBTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIs
ICJUaGUgcGFyYW1ldGVyICd0cmFuc3BvcnQnIGhhcyBhbiB1bmtub3duIHZhbHVlLiIpOworICAg
IGF1dG8gaGFzUmVzaWRlbnRLZXkgPSBhdXRoZW50aWNhdG9yLT5nZXRCb29sZWFuKCJoYXNSZXNp
ZGVudEtleSJfcyk7CisgICAgaWYgKCFoYXNSZXNpZGVudEtleSkKKyAgICAgICAgU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhl
IHBhcmFtZXRlciAnaGFzUmVzaWRlbnRLZXknIGlzIG1pc3Npbmcgb3IgaW52YWxpZC4iKTsKKyAg
ICBhdXRvIGhhc1VzZXJWZXJpZmljYXRpb24gPSBhdXRoZW50aWNhdG9yLT5nZXRCb29sZWFuKCJo
YXNVc2VyVmVyaWZpY2F0aW9uIl9zKTsKKyAgICBpZiAoIWhhc1VzZXJWZXJpZmljYXRpb24pCisg
ICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxp
ZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2hhc1VzZXJWZXJpZmljYXRpb24nIGlzIG1pc3Np
bmcgb3IgaW52YWxpZC4iKTsKKyAgICBhdXRvIGlzVXNlckNvbnNlbnRpbmcgPSBhdXRoZW50aWNh
dG9yLT5nZXRCb29sZWFuKCJpc1VzZXJDb25zZW50aW5nIl9zKTsKKyAgICBpZiAoIWlzVXNlckNv
bnNlbnRpbmcpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RF
VEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2lzVXNlckNvbnNlbnRpbmcn
IGlzIG1pc3Npbmcgb3IgaW52YWxpZC4iKTsKKyAgICBhdXRvIGlzVXNlclZlcmlmaWVkID0gYXV0
aGVudGljYXRvci0+Z2V0Qm9vbGVhbigiaXNVc2VyVmVyaWZpZWQiX3MpOworICAgIGlmICghaXNV
c2VyVmVyaWZpZWQpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5E
X0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2lzVXNlclZlcmlmaWVk
JyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisKKyAgICByZXR1cm4gYXV0aGVudGljYXRvck1h
bmFnZXIuY3JlYXRlQXV0aGVudGljYXRvcih7CisgICAgICAgIC5wcm90b2NvbCA9IHByb3RvY29s
LAorICAgICAgICAudHJhbnNwb3J0ID0gdG9BdXRoZW50aWNhdG9yVHJhbnNwb3J0KHBhcnNlZFRy
YW5zcG9ydC52YWx1ZSgpKSwKKyAgICAgICAgLmhhc1Jlc2lkZW50S2V5ID0gKmhhc1Jlc2lkZW50
S2V5LAorICAgICAgICAuaGFzVXNlclZlcmlmaWNhdGlvbiA9ICpoYXNVc2VyVmVyaWZpY2F0aW9u
LAorICAgICAgICAuaXNVc2VyQ29uc2VudGluZyA9ICppc1VzZXJDb25zZW50aW5nLAorICAgICAg
ICAuaXNVc2VyVmVyaWZpZWQgPSAqaXNVc2VyVmVyaWZpZWQsCisgICAgfSk7CisjZWxzZQorICAg
IFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50
ZWQsICJUaGlzIG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworI2VuZGlmIC8vIEVO
QUJMRShXRUJfQVVUSE4pCit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8
dm9pZD4gV2ViQXV0b21hdGlvblNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRp
Y2F0b3JJZCkKK3sKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorICAgIFdlYlBhZ2VQcm94eSogcGFn
ZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShicm93c2luZ0NvbnRleHRIYW5kbGUpOworICAgIGlm
ICghcGFnZSkKKyAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUihXaW5kb3dO
b3RGb3VuZCk7CisgICAgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyJiBhdXRoZW50aWNhdG9y
TWFuYWdlciA9IHBhZ2UtPndlYnNpdGVEYXRhU3RvcmUoKS52aXJ0dWFsQXV0aGVudGljYXRvck1h
bmFnZXIoKTsKKyAgICBpZiAoIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLnJlbW92ZUF1dGhlbnRpY2F0
b3IoYXV0aGVudGljYXRvcklkKSkKKyAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiTm8gc3VjaCBhdXRoZW50aWNhdG9y
IGV4aXN0cy4iKTsKKyAgICByZXR1cm4geyB9OworI2Vsc2UKKyAgICBTWU5DX0ZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE5vdEltcGxlbWVudGVkLCAiVGhpcyBtZXRob2Qg
aXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQor
fQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRp
b25TZXNzaW9uOjphZGRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWwoY29uc3QgU3RyaW5n
JiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBS
ZWY8SlNPTjo6T2JqZWN0PiYmIGNyZWRlbnRpYWwpCit7CisgICAgU1lOQ19GQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9kIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7Cit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9y
U3RyaW5nT3I8UmVmPEpTT046OkFycmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlv
bjo6VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsPj4gLyogY3JlZGVudGlhbHMgKi8+IFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRp
Y2F0b3JJZCkKK3sKKyAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRB
SUxTKE5vdEltcGxlbWVudGVkLCAiVGhpcyBtZXRob2QgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4i
KTsKK30KKworSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRv
bWF0aW9uU2Vzc2lvbjo6cmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0
IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0
b3JJZCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsSWQpCit7CisgICAgU1lOQ19GQUlMX1dJVEhf
UFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9k
IGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7Cit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVy
cm9yU3RyaW5nT3I8dm9pZD4gV2ViQXV0b21hdGlvblNlc3Npb246OnJlbW92ZUFsbFZpcnR1YWxB
dXRoZW50aWNhdG9yQ3JlZGVudGlhbHMoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5k
bGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkKQoreworICAgIFNZTkNfRkFJTF9XSVRI
X1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJUaGlzIG1ldGhv
ZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpF
cnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZXRWaXJ0dWFsQXV0aGVu
dGljYXRvclVzZXJWZXJpZmllZChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwg
Y29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9ySWQsIGJvb2wgaXNVc2VyVmVyaWZpZWQpCit7Cisg
ICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1l
bnRlZCwgIlRoaXMgbWV0aG9kIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7Cit9CisKIGJvb2wg
V2ViQXV0b21hdGlvblNlc3Npb246OnNob3VsZEFsbG93R2V0VXNlck1lZGlhRm9yUGFnZShjb25z
dCBXZWJQYWdlUHJveHkmKSBjb25zdAogewogICAgIHJldHVybiBtX3Blcm1pc3Npb25Gb3JHZXRV
c2VyTWVkaWE7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9u
L1dlYkF1dG9tYXRpb25TZXNzaW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0
aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKaW5kZXggZjc1ZGNhZDVlMzU4NTQ5MzdlYzBiY2Rl
N2QyZDQ3MjhmYjBiNjIyMS4uMTJiN2YxOTMyMmVhNzdmMGI2MWFhNGYwMDMxNjJjMzJlYjk3MTky
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24v
V2ViQXV0b21hdGlvblNlc3Npb24uaApAQCAtMjA0LDYgKzIwNCwxNCBAQCBwdWJsaWM6CiAgICAg
SW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxSZWY8SlNPTjo6QXJyYXlPZjxJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpTZXNzaW9uUGVybWlzc2lvbkRhdGE+Pj4gZ2V0
U2Vzc2lvblBlcm1pc3Npb25zKCk7CiAgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJp
bmdPcjx2b2lkPiBzZXRTZXNzaW9uUGVybWlzc2lvbnMoUmVmPEpTT046OkFycmF5PiYmKTsKIAor
ICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8U3RyaW5nIC8qIGF1dGhlbnRp
Y2F0b3JJZCAqLz4gYWRkVmlydHVhbEF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiBicm93c2lu
Z0NvbnRleHRIYW5kbGUsIFJlZjxKU09OOjpPYmplY3Q+JiYgYXV0aGVudGljYXRvcik7CisgICAg
SW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiByZW1vdmVWaXJ0dWFsQXV0
aGVudGljYXRvcihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3Ry
aW5nJiBhdXRoZW50aWNhdG9ySWQpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3Ry
aW5nT3I8dm9pZD4gYWRkVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0IFN0cmlu
ZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCwg
UmVmPEpTT046Ok9iamVjdD4mJiBjcmVkZW50aWFsKTsKKyAgICBJbnNwZWN0b3I6OlByb3RvY29s
OjpFcnJvclN0cmluZ09yPFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OlZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbD4+IC8qIGNyZWRlbnRpYWxz
ICovPiBnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgYnJv
d3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCk7CisgICAg
SW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiByZW1vdmVWaXJ0dWFsQXV0
aGVudGljYXRvckNyZWRlbnRpYWwoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBjb25zdCBTdHJpbmcmIGNyZWRlbnRpYWxJ
ZCk7CisgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiByZW1vdmVB
bGxWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdD
b250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCk7CisgICAgSW5zcGVj
dG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBzZXRWaXJ0dWFsQXV0aGVudGljYXRv
clVzZXJWZXJpZmllZChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3Qg
U3RyaW5nJiBhdXRoZW50aWNhdG9ySWQsIGJvb2wgaXNVc2VyVmVyaWZpZWQpOworCiAjaWYgUExB
VEZPUk0oTUFDKQogICAgIHZvaWQgaW5zcGVjdEJyb3dzaW5nQ29udGV4dChjb25zdCBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpCcm93c2luZ0NvbnRleHRIYW5kbGUmLCBzdGQ6Om9w
dGlvbmFsPGJvb2w+JiYgZW5hYmxlQXV0b0NhcHR1cmluZywgUmVmPEluc3BlY3RCcm93c2luZ0Nv
bnRleHRDYWxsYmFjaz4mJik7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5o
CmluZGV4IGY3MWUyZmRkZTU1MWUxYzM4ZGFiMTBlMzMzYjI3YzRhYjc1YTExNDIuLjg2NGIzMzc4
YjM0NzY2NWVlNWY3OTQ4YTdmZDRkMzY0MTY1NTE5ZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuaApAQCAtNjksNiArNjksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBjYW5jZWwoKTsg
Ly8gQ2FsbGVkIGZyb20gdGhlIHByZXNlbnRlci4KIAogICAgIHZpcnR1YWwgYm9vbCBpc01vY2so
KSBjb25zdCB7IHJldHVybiBmYWxzZTsgfQorICAgIHZpcnR1YWwgYm9vbCBpc1ZpcnR1YWwoKSBj
b25zdCB7IHJldHVybiBmYWxzZTsgfQogCiAgICAgdm9pZCBlbmFibGVNb2Rlcm5XZWJBdXRoZW50
aWNhdGlvbigpOwogICAgIHZvaWQgZW5hYmxlTmF0aXZlU3VwcG9ydCgpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFs
QXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmNjMjhhODU1Y2Q5ZWJiN2JmMzU2NDM4NjFmZGRkZWM1Zjk1NTIzZAot
LS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmgKQEAgLTAsMCAr
MSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6Cisg
KiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3Zl
IGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBm
b3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhp
cyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUK
KyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRo
IHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBB
UFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBS
RVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
CisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVT
UyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVO
VCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1Ig
QU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IK
KyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8s
IFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9G
IFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9X
RVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisg
KiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VO
Q0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9G
IFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9G
IFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5BQkxFKFdFQl9BVVRI
TikKKworI2luY2x1ZGUgPFdlYkNvcmUvQXV0aGVudGljYXRvclRyYW5zcG9ydC5oPgorI2luY2x1
ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0
IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiB7CisgICAgV1RGX01BS0VfU1RSVUNU
X0ZBU1RfQUxMT0NBVEVEOworICAgIC8vIEZJWE1FOiB1c2UgUHJvdG9jb2xWZXJzaW9uIGhlcmUK
KyAgICBTdHJpbmcgcHJvdG9jb2w7CisgICAgV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9y
dCB0cmFuc3BvcnQ7CisgICAgYm9vbCBoYXNSZXNpZGVudEtleTsKKyAgICBib29sIGhhc1VzZXJW
ZXJpZmljYXRpb247CisgICAgYm9vbCBpc1VzZXJDb25zZW50aW5nOworICAgIGJvb2wgaXNVc2Vy
VmVyaWZpZWQ7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRo
ZW50aWNhdG9yTWFuYWdlci5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjEyZGJiZWYwYjEyMjhhYTc1YTM4Zjc0
ZGFlOTQ3MGZjZDg2NjNiZgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmNwcApAQCAtMCwwICsxLDY4IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIElu
Yy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwor
ICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJl
dGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlv
bnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICog
ICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNj
bGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisg
KiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICog
QkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VS
VklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5U
RVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VU
IE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUg
UE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2luY2x1ZGUgImNvbmZpZy5oIgor
I2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oIgorCisjaWYgRU5BQkxFKFdF
Ql9BVVRITikKKworI2luY2x1ZGUgPFZpcnR1YWxTZXJ2aWNlLmg+CisjaW5jbHVkZSA8d3RmL1VV
SUQuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
cjo6VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkKKyAgICA6IEF1dGhlbnRpY2F0b3JNYW5h
Z2VyKCkKK3sKK30KKworU3RyaW5nIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcjo6Y3JlYXRl
QXV0aGVudGljYXRvcihWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24gY29uZmlnKQor
eworICAgIGlmIChjb25maWcudHJhbnNwb3J0ICE9IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQ6OkludGVybmFsKQorICAgICAgICBVTklNUExFTUVOVEVEKCk7CisgICAgYXV0byBpZCA9
IGNyZWF0ZUNhbm9uaWNhbFVVSURTdHJpbmcoKTsKKyAgICBtX3ZpcnR1YWxBdXRoZW50aWNhdG9y
cy5zZXQoaWQsIG1ha2VVbmlxdWVSZWY8VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
Pihjb25maWcpKTsKKworICAgIHJldHVybiBpZDsKK30KKworYm9vbCBWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXI6OnJlbW92ZUF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiBpZCkKK3sKKyAg
ICByZXR1cm4gbV92aXJ0dWFsQXV0aGVudGljYXRvcnMucmVtb3ZlKGlkKTsKK30KKworVW5pcXVl
UmVmPEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlPiBWaXJ0dWFsQXV0aGVudGljYXRvck1h
bmFnZXI6OmNyZWF0ZVNlcnZpY2UoV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCB0cmFu
c3BvcnQsIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlOjpPYnNlcnZlciYgb2JzZXJ2ZXIp
IGNvbnN0Cit7CisgICAgVmVjdG9yPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbj4g
Y29uZmlnczsKKyAgICBmb3IgKGF1dG8mIGNvbmZpZyA6IG1fdmlydHVhbEF1dGhlbnRpY2F0b3Jz
LnZhbHVlcygpKSB7CisgICAgICAgIGlmIChjb25maWcuZ2V0KCkudHJhbnNwb3J0ID09IHRyYW5z
cG9ydCkKKyAgICAgICAgICAgIGNvbmZpZ3MuYXBwZW5kKGNvbmZpZy5nZXQoKSk7CisgICAgfQor
ICAgIHJldHVybiBWaXJ0dWFsU2VydmljZTo6Y3JlYXRlVmlydHVhbCh0cmFuc3BvcnQsIG9ic2Vy
dmVyLCBjb25maWdzKTsKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBF
TkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTk1NDdjOTdkZmE1NTQ5YzdlZDViNGJk
NDkwMjYzNTU5NDRlN2U5OAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
LmgKQEAgLTAsMCArMSw1MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYgRU5B
QkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCisjaW5j
bHVkZSAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmgiCisKK25hbWVzcGFjZSBX
ZWJLaXQgeworCitjbGFzcyBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIgZmluYWwgOiBwdWJs
aWMgQXV0aGVudGljYXRvck1hbmFnZXIgeworcHVibGljOgorICAgIGV4cGxpY2l0IFZpcnR1YWxB
dXRoZW50aWNhdG9yTWFuYWdlcigpOworCisgICAgU3RyaW5nIGNyZWF0ZUF1dGhlbnRpY2F0b3Io
VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uIC8qY29uZmlnLyovKTsKKyAgICBib29s
IHJlbW92ZUF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiAvKmF1dGhlbnRpY2F0b3JJZCovKTsK
KworICAgIGJvb2wgaXNWaXJ0dWFsKCkgY29uc3QgZmluYWwgeyByZXR1cm4gdHJ1ZTsgfQorCitw
cml2YXRlOgorICAgIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3Jl
YXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBBdXRoZW50aWNhdG9y
VHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBjb25zdCBmaW5hbDsKKworICAgIEhhc2hNYXA8
U3RyaW5nLCBVbmlxdWVSZWY8VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPj4gbV92
aXJ0dWFsQXV0aGVudGljYXRvcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2Vu
ZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVh
bExvY2FsQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE0NWUxMzExNmNhMjUzZDM2ZWI1NWZlYzI5
Njc4NWIxYWUwOWY4NjUKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaApAQCAt
MCwwICsxLDUxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUg
YWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGlu
IHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVk
IHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVE
IEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5Z
IEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBG
SVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5P
IEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZ
LCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIg
SU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVH
TElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VC
X0FVVEhOKQorCisjaW5jbHVkZSAiTG9jYWxDb25uZWN0aW9uLmgiCisjaW5jbHVkZSAiVmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworc3Ry
dWN0IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbjsKKworY2xhc3MgVmlydHVhbExv
Y2FsQ29ubmVjdGlvbiBmaW5hbCA6IHB1YmxpYyBMb2NhbENvbm5lY3Rpb24geworcHVibGljOgor
ICAgIGV4cGxpY2l0IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24oY29uc3QgVmlydHVhbEF1dGhlbnRp
Y2F0b3JDb25maWd1cmF0aW9uJik7CisKK3ByaXZhdGU6CisgICAgdm9pZCB2ZXJpZnlVc2VyKGNv
bnN0IFN0cmluZyYsIFdlYkNvcmU6OkNsaWVudERhdGFUeXBlLCBTZWNBY2Nlc3NDb250cm9sUmVm
LCBXZWJDb3JlOjpVc2VyVmVyaWZpY2F0aW9uUmVxdWlyZW1lbnQsICBVc2VyVmVyaWZpY2F0aW9u
Q2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCB2ZXJpZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xS
ZWYsIExBQ29udGV4dCAqLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFVzZXJWZXJpZmljYXRpb24p
PiYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEF0dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNEYXRhICph
dXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRlc3RhdGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFs
OworICAgIHZvaWQgZmlsdGVyUmVzcG9uc2VzKFZlY3RvcjxSZWY8V2ViQ29yZTo6QXV0aGVudGlj
YXRvckFzc2VydGlvblJlc3BvbnNlPj4mKSBjb25zdCBmaW5hbDsKKworICAgIFZpcnR1YWxBdXRo
ZW50aWNhdG9yQ29uZmlndXJhdGlvbiBtX2NvbmZpZ3VyYXRpb247Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxM
b2NhbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg2ZDRk
MWIwOTY4M2ZmY2QxMjM5MDkxMTM1NjRhOTQ3NmY2YmUxYwotLS0gL2Rldi9udWxsCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbExv
Y2FsQ29ubmVjdGlvbi5tbQpAQCAtMCwwICsxLDkxIEBACisvKgorICogQ29weXJpZ2h0IChDKSAy
MDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBS
ZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNv
cHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZv
bGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3Ro
ZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElT
IFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMg
YGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0Yg
TUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0Ug
QVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRS
SUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAi
Y29uZmlnLmgiCisjaW1wb3J0ICJWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmgiCisKKyNpZiBFTkFC
TEUoV0VCX0FVVEhOKQorCisjaW1wb3J0ICJWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRp
b24uaCIKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3JlL0FycmF5QnVmZmVyLmg+CisjaW1wb3J0IDxT
ZWN1cml0eS9TZWNJdGVtLmg+CisjaW1wb3J0IDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JBc3NlcnRp
b25SZXNwb25zZS5oPgorI2ltcG9ydCA8V2ViQ29yZS9FeGNlcHRpb25EYXRhLmg+CisjaW1wb3J0
IDx3dGYvUmVmLmg+CisjaW1wb3J0IDx3dGYvUnVuTG9vcC5oPgorI2ltcG9ydCA8d3RmL3NwaS9j
b2NvYS9TZWN1cml0eVNQSS5oPgorI2ltcG9ydCA8d3RmL3RleHQvQmFzZTY0Lmg+CisjaW1wb3J0
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2ltcG9ydCAiTG9jYWxBdXRoZW50aWNhdGlvblNv
ZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJLaXQgewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7
CisKK1ZpcnR1YWxMb2NhbENvbm5lY3Rpb246OlZpcnR1YWxMb2NhbENvbm5lY3Rpb24oY29uc3Qg
VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uJiBjb25maWd1cmF0aW9uKQorICAgIDog
bV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24pCit7Cit9CisKK3ZvaWQgVmlydHVhbExvY2Fs
Q29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBDbGllbnREYXRhVHlwZSwgU2Vj
QWNjZXNzQ29udHJvbFJlZiwgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LCBV
c2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjYWxsYmFjaykKK3sKKyAgICAvLyBNb2NrIGFzeW5j
IG9wZXJhdGlvbnMuCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjb25maWd1cmF0aW9u
ID0gbV9jb25maWd1cmF0aW9uLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFi
bGUgeworICAgICAgICBBU1NFUlQoY29uZmlndXJhdGlvbi50cmFuc3BvcnQgPT0gQXV0aGVudGlj
YXRvclRyYW5zcG9ydDo6SW50ZXJuYWwpOworCisgICAgICAgIFVzZXJWZXJpZmljYXRpb24gdXNl
clZlcmlmaWNhdGlvbiA9IGNvbmZpZ3VyYXRpb24uaXNVc2VyVmVyaWZpZWQgPyBVc2VyVmVyaWZp
Y2F0aW9uOjpZZXMgOiBVc2VyVmVyaWZpY2F0aW9uOjpObzsKKworICAgICAgICBjYWxsYmFjayh1
c2VyVmVyaWZpY2F0aW9uLCBhZG9wdE5TKFthbGxvY0xBQ29udGV4dEluc3RhbmNlKCkgaW5pdF0p
LmdldCgpKTsKKyAgICB9KTsKK30KKwordm9pZCBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjp2ZXJp
ZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIExBQ29udGV4dCAqLCBDb21wbGV0aW9uSGFuZGxl
cjx2b2lkKFVzZXJWZXJpZmljYXRpb24pPiYmIGNhbGxiYWNrKQoreworICAgIC8vIE1vY2sgYXN5
bmMgb3BlcmF0aW9ucy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZpZ3VyYXRp
b24gPSBtX2NvbmZpZ3VyYXRpb24sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayldKCkgbXV0
YWJsZSB7CisgICAgICAgIEFTU0VSVChjb25maWd1cmF0aW9uLnRyYW5zcG9ydCA9PSBBdXRoZW50
aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCk7CisKKyAgICAgICAgVXNlclZlcmlmaWNhdGlvbiB1
c2VyVmVyaWZpY2F0aW9uID0gY29uZmlndXJhdGlvbi5pc1VzZXJWZXJpZmllZCA/IFVzZXJWZXJp
ZmljYXRpb246OlllcyA6IFVzZXJWZXJpZmljYXRpb246Ok5vOworCisgICAgICAgIGNhbGxiYWNr
KHVzZXJWZXJpZmljYXRpb24pOworICAgIH0pOworfQorCit2b2lkIFZpcnR1YWxMb2NhbENvbm5l
Y3Rpb246OmdldEF0dGVzdGF0aW9uKFNlY0tleVJlZiwgTlNEYXRhICosIE5TRGF0YSAqLCBBdHRl
c3RhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spIGNvbnN0Cit7CisgICAgLy8gTW9jayBhc3luYyBv
cGVyYXRpb25zLgorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29uZmlndXJhdGlvbiA9
IG1fY29uZmlndXJhdGlvbiwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNrKV0oKSBtdXRhYmxl
IHsKKyAgICAgICAgQVNTRVJUKGNvbmZpZ3VyYXRpb24udHJhbnNwb3J0ID09IEF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKKyAgICAgICAgY2FsbGJhY2soTlVMTCwgW05TRXJyb3Ig
ZXJyb3JXaXRoRG9tYWluOkAiV2ViQXV0aGVudGljYXRpb24iIGNvZGU6LTEgdXNlckluZm86QHsg
TlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleTogQCJUaGUgb3BlcmF0aW9uIGNvdWxkbid0IGNvbXBs
ZXRlLiIgfV0pOworICAgIH0pOworfQorCit2b2lkIFZpcnR1YWxMb2NhbENvbm5lY3Rpb246OmZp
bHRlclJlc3BvbnNlcyhWZWN0b3I8UmVmPEF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+
JiByZXNwb25zZXMpIGNvbnN0Cit7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisjZW5k
aWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UuaCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2Uu
aApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi43NGEwOGUwZDg0N2RlY2IwMDU1NzIwMjA1OWFjODYwYmE4NjAwOWNlCi0t
LSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oCkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJl
ZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Ig
d2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhl
IGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25z
IG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5v
dGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1l
ci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25z
IGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgor
ICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENP
TlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgor
ICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBP
UiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNU
LCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERB
TUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICog
U1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJ
VFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBB
TlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBM
SUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAq
IEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVO
IElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLwor
CisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZS5oIgorI2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNh
dG9yQ29uZmlndXJhdGlvbi5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVmlydHVh
bFNlcnZpY2UgOiBwdWJsaWMgQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UgeworcHVibGlj
OgorICAgIGV4cGxpY2l0IFZpcnR1YWxTZXJ2aWNlKE9ic2VydmVyJiwgVmVjdG9yPFZpcnR1YWxB
dXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbj4pOworCisgICAgc3RhdGljIFVuaXF1ZVJlZjxBdXRo
ZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gY3JlYXRlVmlydHVhbChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yVHJhbnNwb3J0LCBPYnNlcnZlciYsIGNvbnN0IFZlY3RvcjxWaXJ0dWFsQXV0aGVudGlj
YXRvckNvbmZpZ3VyYXRpb24+IGNvbmZpZ3MpOworcHJpdmF0ZToKKyAgICB2b2lkIHN0YXJ0RGlz
Y292ZXJ5SW50ZXJuYWwoKSBmaW5hbDsKKworICAgIFZlY3RvcjxWaXJ0dWFsQXV0aGVudGljYXRv
ckNvbmZpZ3VyYXRpb24+IG1fY29uZmlndXJhdGlvbnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxTZXJ2aWNl
Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsU2VydmljZS5tbQpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMWFhNDRiNjg0N2FiNDM2NDgwYTA0NjFkM2Zm
NjZiYmFmNjE3ODhiCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbQpAQCAtMCwwICsxLDY0
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaXJ0dWFsU2Vy
dmljZS5oIgorCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2ltcG9ydCAiTG9jYWxBdXRoZW50
aWNhdG9yLmgiCisjaW1wb3J0ICJWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmgiCisjaW1wb3J0IDx3
dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK1ZpcnR1YWxTZXJ2
aWNlOjpWaXJ0dWFsU2VydmljZShPYnNlcnZlciYgb2JzZXJ2ZXIsIFZlY3RvcjxWaXJ0dWFsQXV0
aGVudGljYXRvckNvbmZpZ3VyYXRpb24+IGNvbmZpZ3VyYXRpb25zKQorICAgIDogQXV0aGVudGlj
YXRvclRyYW5zcG9ydFNlcnZpY2Uob2JzZXJ2ZXIpLCBtX2NvbmZpZ3VyYXRpb25zKGNvbmZpZ3Vy
YXRpb25zKQoreworfQorCitVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+
IFZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQgdHJhbnNwb3J0LCBPYnNlcnZlciYgb2JzZXJ2ZXIsICBjb25zdCBWZWN0b3I8VmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBjb25maWdzKQoreworICAgIHJldHVybiBtYWtl
VW5pcXVlUmVmPFZpcnR1YWxTZXJ2aWNlPihvYnNlcnZlciwgY29uZmlncyk7Cit9CisKK3ZvaWQg
VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwoKQoreworICAgIGlmICghb2Jz
ZXJ2ZXIoKSkKKyAgICAgICAgcmV0dXJuOworICAgIGZvciAoYXV0byYgY29uZmlnIDogbV9jb25m
aWd1cmF0aW9ucykgeworICAgICAgICBzd2l0Y2ggKGNvbmZpZy50cmFuc3BvcnQpIHsKKyAgICAg
ICAgY2FzZSBXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDoKKyAgICAg
ICAgICAgIG9ic2VydmVyKCktPmF1dGhlbnRpY2F0b3JBZGRlZChMb2NhbEF1dGhlbnRpY2F0b3I6
OmNyZWF0ZShtYWtlVW5pcXVlUmVmPFZpcnR1YWxMb2NhbENvbm5lY3Rpb24+KGNvbmZpZykpKTsK
KyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgZGVmYXVsdDoKKyAgICAgICAgICAgIFVO
SU1QTEVNRU5URUQoKTsKKyAgICAgICAgfQorICAgIH0KK30KKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAppbmRleCAz
YmQ0OGJiNWYzMGU5M2VjZjgwZDNmNzgzYWRiMmI4Mzk3NDkwYjJhLi43MDcxNThjOGM1OTUyMmM5
NmJhMDAwZDYxMTZiOGZlYzc0ZjgzMGIxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcApAQCAtMzgsNiArMzgs
NyBAQAogI2luY2x1ZGUgIk5ldHdvcmtQcm9jZXNzTWVzc2FnZXMuaCIKICNpbmNsdWRlICJTaG91
bGRHcmFuZGZhdGhlclN0YXRpc3RpY3MuaCIKICNpbmNsdWRlICJTdG9yYWdlQWNjZXNzU3RhdHVz
LmgiCisjaW5jbHVkZSAiVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmgiCiAjaW5jbHVkZSAi
V2ViQmFja0ZvcndhcmRDYWNoZS5oIgogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5o
IgogI2luY2x1ZGUgIldlYktpdDJJbml0aWFsaXplLmgiCkBAIC0xOTQ1LDYgKzE5NDYsMTMgQEAg
dm9pZCBXZWJzaXRlRGF0YVN0b3JlOjpzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0
aW9uKFdlYkNvcmU6Ok1vY2tXZWJBdXQKICAgICB9CiAgICAgc3RhdGljX2Nhc3Q8TW9ja0F1dGhl
bnRpY2F0b3JNYW5hZ2VyKj4oJm1fYXV0aGVudGljYXRvck1hbmFnZXIpLT5zZXRUZXN0Q29uZmln
dXJhdGlvbihXVEZNb3ZlKGNvbmZpZ3VyYXRpb24pKTsKIH0KKworVmlydHVhbEF1dGhlbnRpY2F0
b3JNYW5hZ2VyJiBXZWJzaXRlRGF0YVN0b3JlOjp2aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIo
KQoreworICAgIGlmICghbV9hdXRoZW50aWNhdG9yTWFuYWdlci0+aXNWaXJ0dWFsKCkpCisgICAg
ICAgIG1fYXV0aGVudGljYXRvck1hbmFnZXIgPSBtYWtlVW5pcXVlUmVmPFZpcnR1YWxBdXRoZW50
aWNhdG9yTWFuYWdlcj4oKTsKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VmlydHVhbEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyJj4obV9hdXRoZW50aWNhdG9yTWFuYWdlci5nZXQoKSk7Cit9CiAjZW5kaWYK
IAogQVBJOjpIVFRQQ29va2llU3RvcmUmIFdlYnNpdGVEYXRhU3RvcmU6OmNvb2tpZVN0b3JlKCkK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaAppbmRleCAxNTA0NmJlNWI1ZTQwZmYxYjc4NWVjNTRjYjRiNWU0MWMwYjVjNzBi
Li42MTk2MjgwZjc2ZGExMjAyOThlMmI3YWIxNjQwNWQyZjBiYTI4OTIzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5o
CkBAIC04Nyw2ICs4Nyw3IEBAIGNsYXNzIFNlY0tleVByb3h5U3RvcmU7CiBjbGFzcyBEZXZpY2VJ
ZEhhc2hTYWx0U3RvcmFnZTsKIGNsYXNzIE5ldHdvcmtQcm9jZXNzUHJveHk7CiBjbGFzcyBTT0F1
dGhvcml6YXRpb25Db29yZGluYXRvcjsKK2NsYXNzIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
cjsKIGNsYXNzIFdlYlBhZ2VQcm94eTsKIGNsYXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2Vi
UHJvY2Vzc1Byb3h5OwpAQCAtMzA3LDYgKzMwOCw3IEBAIHB1YmxpYzoKICNpZiBFTkFCTEUoV0VC
X0FVVEhOKQogICAgIEF1dGhlbnRpY2F0b3JNYW5hZ2VyJiBhdXRoZW50aWNhdG9yTWFuYWdlcigp
IHsgcmV0dXJuIG1fYXV0aGVudGljYXRvck1hbmFnZXIuZ2V0KCk7IH0KICAgICB2b2lkIHNldE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dGhlbnRp
Y2F0aW9uQ29uZmlndXJhdGlvbiYmKTsKKyAgICBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIm
IHZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcigpOwogI2VuZGlmCiAKICAgICBjb25zdCBXZWJz
aXRlRGF0YVN0b3JlQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlvbigpIHsgcmV0dXJuIG1fY29u
ZmlndXJhdGlvbi5nZXQoKTsgfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNv
ZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKaW5kZXggNGM5MGU3MTE0MTE5NWQzZTk0OGU3ODM2YWMyZDhjMGM1MjU4
MmM1Mi4uYjVkNjdhYTg5NzQ5MDFiNWU1YmZmYzY0ZTNjNTVhMmY0NWJkNGY5ZSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0xMDQ5LDYg
KzEwNDksMTMgQEAKIAkJNTFGRDE4QjYxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJj
ZUxvYWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
NTFGRDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oICovOyB9
OwogCQk1MjcyRDRDOTFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTI3MkQ0QzcxRTcz
NUYwOTAwRUI0MjkwIC8qIFdLUHJvdGVjdGlvblNwYWNlTlMuaCAqLzsgc2V0dGluZ3MgPSB7QVRU
UklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQk1MjhDMzdDMTE5NUNCQjFBMDBEOEI5Q0Mg
LyogV0tCYWNrRm9yd2FyZExpc3RQcml2YXRlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQTlGMjgxMDE5NThGNDc4MDA4Q0FDNzIgLyogV0tCYWNrRm9y
d2FyZExpc3RQcml2YXRlLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwg
KTsgfTsgfTsKKwkJNTJDREM1QzQyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNh
dG9yQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJDREM1QkQyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9y
Q29uZmlndXJhdGlvbi5oICovOyB9OworCQk1MkNEQzVDNTI3MzFEQTBEMDBBM0UzRUIgLyogVmly
dHVhbFNlcnZpY2UubW0gaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVS
ZWYgPSA1MkNEQzVCRTI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbFNlcnZpY2UubW0gKi87IH07
CisJCTUyQ0RDNUM2MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJD
REM1QkYyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAg
Ki87IH07CisJCTUyQ0RDNUM3MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0
aW9uLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNE
QzVDMDI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oICovOyB9Owor
CQk1MkNEQzVDODI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbFNlcnZpY2UuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUMxMjczMURBMEMwMEEz
RTNFQiAvKiBWaXJ0dWFsU2VydmljZS5oICovOyB9OworCQk1MkNEQzVDOTI3MzFEQTBEMDBBM0Uz
RUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUMyMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFs
TG9jYWxDb25uZWN0aW9uLm1tICovOyB9OworCQk1MkNEQzVDQTI3MzFEQTBEMDBBM0UzRUIgLyog
VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVDMzI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbEF1
dGhlbnRpY2F0b3JNYW5hZ2VyLmggKi87IH07CiAJCTUyRDVBMUIwMUM1NzQ5NUEwMERFMzRBMyAv
KiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRDVBMUFBMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1
bGxzY3JlZW5NYW5hZ2VyUHJveHkuaCAqLzsgfTsKIAkJNTJGMDYwRTExNjU0MzE4NTAwRjMyODFC
IC8qIE5ldHdvcmtDb250ZW50UnVsZUxpc3RNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBT
b3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyRjA2MEREMTY1NDMx
NzUwMEYzMjgxQiAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgKi87IH07CiAJCTUzMjE1OTU1MURCQUU3MjkwMDU0QUEzQyAvKiBOZXR3b3JrU2Vzc2lv
bkNvY29hLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1
MzIxNTk1MDFEQkFFNkQ3MDA1NEFBM0MgLyogTmV0d29ya1Nlc3Npb25Db2NvYS5oICovOyB9OwpA
QCAtNDA2OSw2ICs0MDc2LDEzIEBACiAJCTUxRkQxOEI0MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gTmV0
d29ya1Jlc291cmNlTG9hZGVyLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNzJE
NEM3MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgbmFtZSA9IFdLUHJvdGVjdGlvblNwYWNlTlMuaDsgcGF0aCA9IG1hYy9X
S1Byb3RlY3Rpb25TcGFjZU5TLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUyNzJE
NEM4MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLm1tICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jcHAub2JqY3BwOyBuYW1lID0gV0tQcm90ZWN0aW9uU3BhY2VOUy5tbTsgcGF0
aCA9IG1hYy9XS1Byb3RlY3Rpb25TcGFjZU5TLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OworCQk1MkNEQzVCRDI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JDb25m
aWd1cmF0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpcnR1YWxBdXRo
ZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1
MkNEQzVCRTI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbFNlcnZpY2UubW0gKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaXJ0dWFsU2VydmljZS5tbTsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJDREM1QkYyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxB
dXRoZW50aWNhdG9yTWFuYWdlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmls
ZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OworCQk1MkNEQzVDMDI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVj
dGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXJ0dWFsTG9jYWxDb25u
ZWN0aW9uLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUMxMjczMURBMEMw
MEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBh
dGggPSBWaXJ0dWFsU2VydmljZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkNE
QzVDMjI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbSAqLyA9IHtp
c2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlw
ZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24u
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUMzMjczMURBMEMwMEEzRTNF
QiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmg7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CiAJCTUyRDVBMUFBMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3Jl
ZW5NYW5hZ2VyUHJveHkuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlkZW9G
dWxsc2NyZWVuTWFuYWdlclByb3h5Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCTUy
RDVBMUFCMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVz
c2FnZXMuaW4gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1lc3NhZ2VzLmluOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBQzFD
NTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5Lm1tICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlkZW9GdWxsc2NyZWVuTWFuYWdlclBy
b3h5Lm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwpAQCAtODc0MCw2ICs4NzU0LDIwIEBA
CiAJCQlwYXRoID0gaW9zOwogCQkJc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsKIAkJfTsKKwkJNTJD
REM1QkMyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWwgKi8gPSB7CisJCQlpc2EgPSBQQlhHcm91
cDsKKwkJCWNoaWxkcmVuID0gKAorCQkJCTUyQ0RDNUJEMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0
dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCAqLywKKwkJCQk1MkNEQzVCRjI3MzFEQTBD
MDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLywKKwkJCQk1MkNE
QzVDMzI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmggKi8s
CisJCQkJNTJDREM1QzAyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24u
aCAqLywKKwkJCQk1MkNEQzVDMjI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVj
dGlvbi5tbSAqLywKKwkJCQk1MkNEQzVDMTI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbFNlcnZp
Y2UuaCAqLywKKwkJCQk1MkNEQzVCRTI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbFNlcnZpY2Uu
bW0gKi8sCisJCQkpOworCQkJcGF0aCA9IFZpcnR1YWw7CisJCQlzb3VyY2VUcmVlID0gIjxncm91
cD4iOworCQl9OwogCQk1NTA2NDA5QzI0MDcxNUFBMDBBQUUwNDUgLyogZ3JhcGhpY3MgKi8gPSB7
CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKApAQCAtODkzOSw2ICs4OTY3LDcg
QEAKIAkJCQk1N0RDRUQ5RTIxNDhGOUQxMDAxNkI4NDcgLyogQ29jb2EgKi8sCiAJCQkJNTc1OTdF
QkYyMTgxODRCMjAwMzdGOTI0IC8qIGZpZG8gKi8sCiAJCQkJNTdEQ0VEQkQyMTRDOUZBOTAwMTZC
ODQ3IC8qIE1vY2sgKi8sCisJCQkJNTJDREM1QkMyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWwg
Ki8sCiAJCQkJNTdEQ0VEQTQyMTQ5RTY0QTAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3IuY3BwICov
LAogCQkJCTU3RENFRDhCMjE0ODVCRDcwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yLmggKi8sCiAJ
CQkJNTdEQ0VEODUyMTQ3MzYzQTAwMTZCODQ3IC8qIEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAq
LywKQEAgLTEyMzM1LDYgKzEyMzY0LDEwIEBACiAJCQkJMkQ4MTlCQTIxODYyODAwRTAwMUYwM0Qx
IC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMkQ2Q0QxMTkxODkwNThBNTAwRTVBNEEwIC8qIFZpZXdTbmFwc2hvdFN0b3JlLmggaW4g
SGVhZGVycyAqLywKIAkJCQkyNjg0MDU1MzE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURp
c3BhdGNoZXJNZXNzYWdlcy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTJDREM1QzQyNzMxREEwRDAw
QTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNTJDREM1Q0EyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9y
TWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJNTJDREM1QzcyNzMxREEwRDAwQTNFM0VCIC8q
IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCTUyQ0RDNUM4Mjcz
MURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY4
NDA1NDQxOEI4NUE2MzAwMjJDMzhCIC8qIFZpc2libGVDb250ZW50UmVjdFVwZGF0ZUluZm8uaCBp
biBIZWFkZXJzICovLAogCQkJCTJERDVBNzI5MUVCRjA4RDUwMDlCQTU5NyAvKiBWaXNpYmxlV2Vi
UGFnZUNvdW50ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTMxNTVFRTBEMjY3M0Y0RjAwMDg1RTU5
QSAvKiBWaXNpb25LaXRTUEkuaCBpbiBIZWFkZXJzICovLApAQCAtMTQzOTAsNiArMTQ0MjMsOSBA
QAogCQkJCTJEMUI1RDVEMTg1ODY5QzgwMDZDNjU5NiAvKiBWaWV3R2VzdHVyZUNvbnRyb2xsZXJN
ZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMkQ4MTlCQTExODYyODAwRTAw
MUYwM0QxIC8qIFZpZXdHZXN0dXJlR2VvbWV0cnlDb2xsZWN0b3JNZXNzYWdlUmVjZWl2ZXIuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMjY4NDA1NTIxOEI4NkVENjAwMjJDMzhCIC8qIFZpZXdVcGRh
dGVEaXNwYXRjaGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUyQ0RD
NUM2MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGlu
IFNvdXJjZXMgKi8sCisJCQkJNTJDREM1QzkyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxMb2Nh
bENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLywKKwkJCQk1MkNEQzVDNTI3MzFEQTBEMDBBM0Uz
RUIgLyogVmlydHVhbFNlcnZpY2UubW0gaW4gU291cmNlcyAqLywKIAkJCQkxQTYwMjI0QzE4QzE2
QjlGMDBDM0U4QzkgLyogVmlzaXRlZExpbmtTdG9yZU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291
cmNlcyAqLywKIAkJCQkxQThFN0QzQzE4QzE1MTQ5MDA1QTcwMkEgLyogVmlzaXRlZExpbmtUYWJs
ZUNvbnRyb2xsZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJNTdEQ0VE
NzAyMTQyRUU2ODAwMTZCODQ3IC8qIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5TWVz
c2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443219</attachid>
            <date>2021-11-03 12:03:23 -0700</date>
            <delta_ts>2021-11-03 13:05:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232635-20211103120321.patch</filename>
            <type>text/plain</type>
            <size>52881</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE3NmY1NGJhM2JlZDU0NTE3
NjRhZTE2NzY2YzZkZWU3NTRiMWQ4NGUuLmFhNmIyMTA4ODMxMTBlMTE0ODZlNDNkYzAzMmQ0YmM3
MWNhMjI0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMTEtMDMgIEpvaG4gUGFz
Y29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50
IGFkZC9yZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yIGZvciB0cmFuc3BvcnQ9aW50ZXJuYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ5NDIxNzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBtdWNoIG9m
IHRoZSBwbHVtYmluZyBuZWVkZWQgdG8gY2FsbCB0aGUgdmlydHVhbCBhdXRoZW50aWNhdG9yCisg
ICAgICAgIGNvbW1hbmRzIGZyb20gc2FmYXJpZHJpdmVyLiBUaGUgaWRlYSBpcyB0aGF0IHZpcnR1
YWwgYXV0aGVudGljYXRvcnMgYXJlIGFkZGVkIHZpYQorICAgICAgICB0aGUgYWRkX3ZpcnR1YWxf
YXV0aGVudGljYXRvciBjYWxsLCB3aGljaCByZXBsYWNlcyB0aGUgZGVmYXVsdCBBdXRoZW50aWNh
dG9yTWFuYWdlcgorICAgICAgICB3aXRoIGEgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyIHNp
bWlsYXIgdG8gaG93IHdlIGRvIGl0IGZvciBtb2Nrcy4gVGhlbiB0aGUKKyAgICAgICAgVmlydHVh
bFNlcnZpY2Ugd2lsbCBjcmVhdGUgdGhlIHZpcnR1YWwgY29ubmVjdGlvbnMgZm9yIGF1dGhlbnRp
Y2F0b3JzIGFzIG5lc3Nlc2FyeQorICAgICAgICB0byBtYWtlIHdlYmF1dGhuIGNhbGxzIHdpdGhp
biBXZWJEcml2ZXIgYmFzZWQgdGVzdHMuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5IHZpYSBz
YWZhcmlkcml2ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9u
Lmpzb246CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVtb3ZlVmlydHVhbEF1dGhlbnRp
Y2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkVmlydHVh
bEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVBbGxWaXJ0dWFsQXV0aGVudGlj
YXRvckNyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246
OnNldFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICBQbHVtYmluZyB0
byBjYWxsIGZyb20gc2FmYXJpZHJpdmVyCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjppc1ZpcnR1YWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZUF1
dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXI6OnJlbW92ZUF1dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVu
dGljYXRvck1hbmFnZXI6OmNyZWF0ZVNlcnZpY2UgY29uc3QpOgorICAgICAgICBNYW5hZ2VzIHZp
cnR1YWwgYXV0aGVudGljYXRvcnMsIHJlcGxhY2VzIHRoZSBkZWZhdWx0IG1hbmFnZXIgd2hlbiB1
c2VkIHNpbWlsYXIgdG8gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVh
bC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW06IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjpWaXJ0dWFsTG9jYWxD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlvbjo6dmVy
aWZ5VXNlcik6CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxMb2NhbENvbm5lY3Rpb246OmdldEF0
dGVzdGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlv
bjo6ZmlsdGVyUmVzcG9uc2VzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpWaXJ0dWFsU2VydmljZSk6CisgICAg
ICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKToKKyAgICAgICAgKFdl
YktpdDo6VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6dmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAyICBEb24g
T2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQg
YnVpbGQgZml4ZXMgZWFybHkgTm92ZW1iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDhkMmU5YmQz
MDBhMDYwZWNkZjZlN2ZlOTA5YTEyNWQ2YWRhYmFmOTMuLjlhMjhiODA2ODczODQxMWZiOTBjMWI1
YzAyODQ4ZTA0ODk0MjgyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCkBAIC0zMzUsNiArMzM1LDU2IEBACiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJkZWx0YSIsICIkcmVmIjogIlNpemUiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiRm9yICd3aGVlbCcgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIGEg
c2Nyb2xsIGRlbHRhLiJ9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZHVyYXRpb24iLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBt
aW5pbXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBtdXN0IGVsYXBzZSB3aGlsZSB0aGUg
cmVsZXZhbnQgaW5wdXQgc291cmNlIHRyYW5zaXRpb25zIHRvIHRoaXMgc3RhdGUuIiB9CiAgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJBdXRo
ZW50aWNhdG9yUHJvdG9jb2wiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGVudW0gY29udGFpbnMgdGhlIGRpZmZlcmVudCBw
cm90b2NvbCB0eXBlcyBzdXBwb3J0ZWQgYnkgdmlydHVhbCBhdXRoZW50aWNhdG9ycy4iLAorICAg
ICAgICAgICAgImVudW0iOiBbCisgICAgICAgICAgICAgICAgImN0YXAxX3UyZiIsCisgICAgICAg
ICAgICAgICAgImN0YXAyIiwKKyAgICAgICAgICAgICAgICAiY3RhcDJfMSIKKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJBdXRoZW50aWNhdG9ycyBtYXkgaW1wbGVtZW50IHZhcmlvdXMgdHJh
bnNwb3J0cyBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24g
ZGVmaW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZSB3aXRoIGEg
cGFydGljdWxhciBhdXRoZW50aWNhdG9yIGluIG9yZGVyIHRvIG9idGFpbiBhbiBhc3NlcnRpb24g
Zm9yIGEgc3BlY2lmaWMgY3JlZGVudGlhbC4iLAorICAgICAgICAgICAgImVudW0iOiBbCisgICAg
ICAgICAgICAgICAgInVzYiIsCisgICAgICAgICAgICAgICAgIm5mYyIsCisgICAgICAgICAgICAg
ICAgImJsZSIsCisgICAgICAgICAgICAgICAgImludGVybmFsIgorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0
b3JDcmVkZW50aWFsIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiQSBjcmVkZW50aWFsIG9iamVjdCB1c2VkIGZvciB2aXJ0dWFsIGF1
dGhlbnRpY2F0b3JzLiIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNyZWRlbnRpYWxJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgQ3JlZGVudGlhbCBJRCBlbmNvZGVkIHVzaW5nIEJhc2U2NHVybCBFbmNvZGlu
Zy4ifSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVzaWRlbnRDcmVkZW50aWFsIiwg
InR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJJZiBzZXQgdG8gdHJ1ZSwgYSBjbGll
bnQtc2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkLiBJZiBzZXQgdG8gZmFs
c2UsIGEgc2VydmVyLXNpZGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkIGluc3RlYWQuIn0sCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJycElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlRoZSBSZWx5aW5nIFBhcnR5IElEIHRoZSBjcmVkZW50aWFsIGlzIHNjb3BlZCB0by4i
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByaXZhdGVLZXkiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiQW4gYXN5bW1ldHJpYyBrZXkgcGFja2FnZSBjb250YWluaW5n
IGEgc2luZ2xlIHByaXZhdGUga2V5IHBlciBbUkZDNTk1OF0sIGVuY29kZWQgdXNpbmcgQmFzZTY0
dXJsIEVuY29kaW5nLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJIYW5kbGUi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhl
IHVzZXJIYW5kbGUgYXNzb2NpYXRlZCB0byB0aGUgY3JlZGVudGlhbCBlbmNvZGVkIHVzaW5nIEJh
c2U2NHVybCBFbmNvZGluZy4gVGhpcyBwcm9wZXJ0eSBtYXkgbm90IGJlIGRlZmluZWQuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2lnbkNvdW50IiwgInR5cGUiOiAiaW50ZWdlciIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgYSBzaWduYXR1cmUgY291bnRl
ciBhc3NvY2lhdGVkIHRvIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgc291cmNlLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImxhcmdlQmxvYiIsICJ0eXBlIjogInN0cmluZyIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFyZ2UsIHBlci1jcmVkZW50aWFs
IGJsb2IgYXNzb2NpYXRlZCB0byB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsIHNvdXJjZSwgZW5j
b2RlZCB1c2luZyBCYXNlNjR1cmwgRW5jb2RpbmcuIFRoaXMgcHJvcGVydHkgbWF5IG5vdCBiZSBk
ZWZpbmVkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uIiwKKyAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGFyYW1l
dGVycyB1c2VkIHdoZW4gY3JlYXRpbmcgYSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IiLAorICAgICAg
ICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm90b2Nv
bCIsICIkcmVmIjogIkF1dGhlbnRpY2F0b3JQcm90b2NvbCIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
cHJvdG9jb2wgb2YgdGhlIGF1dGhlbnRpY2F0b3IiIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ0cmFuc3BvcnQiLCAiJHJlZiI6ICJBdXRoZW50aWNhdG9yVHJhbnNwb3J0IiwgImRlc2Ny
aXB0aW9uIjogIlRoZSB0cmFuc3BvcnQgb2YgdGhlIHByb3RvY29sIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiaGFzUmVzaWRlbnRLZXkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBhdXRoZW50aWNhdG9yIGhhcyBhIHJl
c2lkZW50IGtleSIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhc1VzZXJWZXJpZmlj
YXRpb24iLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIklmIHRoZSBhdXRoZW50aWNhdG9yIHN1cHBvcnRzIHVzZXIgdmVyaWZpY2F0aW9uIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNVc2VyQ29uc2VudGluZyIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHZpcnR1YWwg
YXV0aGVudGljYXRvciBzaG91bGQgY29uc2VudCB0byByZXF1ZXN0cyJ9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiaXNVc2VyVmVyaWZpZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHVzZXIgdmVyaWZpY2F0aW9uIHJlcXVlc3Rz
IHNob3VsZCBzdWNjZWVlZCJ9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXh0ZW5zaW9u
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyJ0eXBlIjogInN0cmluZyJ9LCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQW4gYXJyYXkgY29udGFpbmluZyBleHRlbnNpb24g
aWRlbnRpZmllcnMiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1dm0iLCAidHlwZSI6
ICJhcnJheSIsICJpdGVtcyI6IHsidHlwZSI6ICJpbnRlZ2VyIn0sICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJVcCB0byAzIFVzZXIgVmVyaWZpY2F0aW9uIE1ldGhvZCBlbnRyaWVz
In0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpA
QCAtNzEzLDYgKzc2Myw3MSBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJwZXJtaXNzaW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJTZXNzaW9uUGVybWlzc2lvbkRhdGEiIH0sICJkZXNjcmlwdGlvbiI6ICJB
cnJheSBvZiBzZXNzaW9uIHBlcm1pc3Npb25zIHRvIHNldCwgaWYgdGhleSBhcmUgYXZhaWxhYmxl
LiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiQWRkcyBhIHZpcnR1YWwgd2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9y
IHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUi
LCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhh
bmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiYXV0aGVudGljYXRvciIsICIkcmVmIjogIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmln
dXJhdGlvbiIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpcnR1
YWwgYXV0aGVudGljYXRvciB0byBiZSBjcmVhdGVkLiIgfQorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGlj
YXRvcklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBhdXRoZW50aWNh
dG9ySWQgb2YgdGhlIGNyZWF0ZWQgYXV0aGVudGljYXRvciIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVWaXJ0dWFsQXV0
aGVudGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyBhIHZpcnR1
YWwgd2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9yIHRoZSBzcGVjaWZpZWQgYnJv
d3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dz
aW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRv
cklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhl
bnRpY2F0b3IgaWQgdG8gcmVtb3ZlLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWwiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNyZWRlbnRpYWwgdG8g
YSBzcGVjaWZpZWQgdmlydXRhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dz
aW5nIGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklk
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRp
Y2F0b3IgaWQgdG8gYWRkIHRoZSBjcmVkZW50aWFsIHRvLiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNyZWRlbnRpYWwiLCAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWwiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGNyZWRlbnRpYWwg
dG8gYWRkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJHZXQgYWxsIGNyZWRlbnRpYWxzIGZvciBhIGdpdmVuIHZp
cnR1YWwgYXV0aGVudGljYXRvciBmb3IgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IiwK
KyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImF1dGhlbnRpY2F0b3JJZCIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmlydHVhbCBhdXRoZW50aWNhdG9yIGlkIHRvIGZl
dGNoIGFsbCBjcmVkZW50aWFscyBmb3IuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
InJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjcmVkZW50aWFscyIsICJ0
eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNy
ZWRlbnRpYWwiIH0sICJkZXNjcmlwdGlvbiI6ICJBcnJheSBvZiBjcmVkZW50aWFscyBmb3IgZ2l2
ZW4gdmlydHVhbCBhdXRoZW50aWNhdG9yIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9y
Q3JlZGVudGlhbCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGEgY3JlZGVu
dGlhbCBmcm9tIGEgdmlydHVhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dz
aW5nIGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklk
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRp
Y2F0b3IgaWQgdG8gZmV0Y2ggYWxsIGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjcmVkZW50aWFsSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGNyZWRlbnRpYWxJZCBvZiB0aGUgY3JlZGVudGlhbCB0byByZW1vdmUgZnJvbSB0
aGUgdmlydHVhbCBhdXRoZW50aWNhdG9yIn0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVtb3ZlQWxsVmlydHVhbEF1dGhlbnRpY2F0
b3JDcmVkZW50aWFscyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGFsbCBj
cmVkZW50aWFscyBmcm9tIGEgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdGlvciBmb3IgdGhlIHNw
ZWNpZmllZCBicm93c2luZyBjb250ZXh0IiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYi
OiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImF1
dGhlbnRpY2F0b3JJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmly
dHVhbCBhdXRoZW50aWNhdG9yIGlkIHRvIGZldGNoIGFsbCBjcmVkZW50aWFscyBmb3IuIiB9Cisg
ICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
InNldFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJzZXQgaXNVc2VyVmVyaWZpZWQgcHJvcGVydHkgZm9yIGEgZ2l2ZW4gdmlydHVh
bCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQiLAorICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVz
Y3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgaWQgdG8gZmV0Y2gg
YWxsIGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1Vz
ZXJWZXJpZmllZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVGhlIGlzVXNl
clZlcmlmaWVkIHZhbHVlIHRvIHNldCBvbiB0aGUgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdG9y
In0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggODdmNDQzZmEyODUxMjU2NTljNzY5ZWM2NjlhOTk0Mzgy
YjVmNWExMC4uNzM3ZGU4OWY5NTA5YjEwOTY1NmM4YmFlNDQ2MDFkMzkwMjlhNTA5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTUzLDYgKzUzLDExIEBACiAjaW5jbHVkZSA8d3RmL1VVSUQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogCisjaWYgRU5BQkxF
KFdFQl9BVVRITikKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVVEhOKQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIElu
c3BlY3RvcjsKQEAgLTE1MzAsNiArMTUzNSwxMDcgQEAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJy
b3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0U2Vzc2lvblBlcm1pc3MK
ICAgICByZXR1cm4geyB9OwogfQogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKK3N0YXRpYyBXZWJD
b3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHRvQXV0aGVudGljYXRvclRyYW5zcG9ydChJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHRyYW5z
cG9ydCkKK3sKKyAgICBzd2l0Y2ggKHRyYW5zcG9ydCkgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6VXNiOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6VXNiOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6
TmZjOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6TmZj
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGljYXRv
clRyYW5zcG9ydDo6QmxlOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRy
YW5zcG9ydDo6QmxlOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
QXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWw6CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQ6OkludGVybmFsOworICAgIH0KK30KKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVVEhOKQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPFN0cmluZyAvKiBh
dXRoZW50aWNhdG9ySWQgKi8+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjphZGRWaXJ0dWFsQXV0aGVu
dGljYXRvcihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgUmVmPEpTT046Ok9i
amVjdD4mJiBhdXRoZW50aWNhdG9yKQoreworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisgICAgV2Vi
UGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGJyb3dzaW5nQ29udGV4dEhh
bmRsZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKyAgICBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIm
IGF1dGhlbnRpY2F0b3JNYW5hZ2VyID0gcGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnZpcnR1YWxB
dXRoZW50aWNhdG9yTWFuYWdlcigpOworICAgIGF1dG8gcHJvdG9jb2wgPSBhdXRoZW50aWNhdG9y
LT5nZXRTdHJpbmcoInByb3RvY29sIl9zKTsKKyAgICBpZiAoIXByb3RvY29sKQorICAgICAgICBT
WU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0
ZXIsICJUaGUgcGFyYW1ldGVyICdwcm90b2NvbCcgaXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOwor
ICAgIGF1dG8gdHJhbnNwb3J0ID0gYXV0aGVudGljYXRvci0+Z2V0U3RyaW5nKCJ0cmFuc3BvcnQi
X3MpOworICAgIGlmICghdHJhbnNwb3J0KQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICd0
cmFuc3BvcnQnIGlzIG1pc3Npbmcgb3IgaW52YWxpZC4iKTsKKyAgICBhdXRvIHBhcnNlZFRyYW5z
cG9ydCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1W
YWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGlj
YXRvclRyYW5zcG9ydD4odHJhbnNwb3J0KTsKKyAgICBpZiAoIXBhcnNlZFRyYW5zcG9ydCkKKyAg
ICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlk
UGFyYW1ldGVyLCAiVGhlIHBhcmFtZXRlciAndHJhbnNwb3J0JyBoYXMgYW4gdW5rbm93biB2YWx1
ZS4iKTsKKyAgICBhdXRvIGhhc1Jlc2lkZW50S2V5ID0gYXV0aGVudGljYXRvci0+Z2V0Qm9vbGVh
bigiaGFzUmVzaWRlbnRLZXkiX3MpOworICAgIGlmICghaGFzUmVzaWRlbnRLZXkpCisgICAgICAg
IFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFt
ZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2hhc1Jlc2lkZW50S2V5JyBpcyBtaXNzaW5nIG9yIGludmFs
aWQuIik7CisgICAgYXV0byBoYXNVc2VyVmVyaWZpY2F0aW9uID0gYXV0aGVudGljYXRvci0+Z2V0
Qm9vbGVhbigiaGFzVXNlclZlcmlmaWNhdGlvbiJfcyk7CisgICAgaWYgKCFoYXNVc2VyVmVyaWZp
Y2F0aW9uKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRB
SUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICdoYXNVc2VyVmVyaWZpY2F0aW9u
JyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisgICAgYXV0byBpc1VzZXJDb25zZW50aW5nID0g
YXV0aGVudGljYXRvci0+Z2V0Qm9vbGVhbigiaXNVc2VyQ29uc2VudGluZyJfcyk7CisgICAgaWYg
KCFpc1VzZXJDb25zZW50aW5nKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICdpc1VzZXJD
b25zZW50aW5nJyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisgICAgYXV0byBpc1VzZXJWZXJp
ZmllZCA9IGF1dGhlbnRpY2F0b3ItPmdldEJvb2xlYW4oImlzVXNlclZlcmlmaWVkIl9zKTsKKyAg
ICBpZiAoIWlzVXNlclZlcmlmaWVkKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICdpc1Vz
ZXJWZXJpZmllZCcgaXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOworCisgICAgcmV0dXJuIGF1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNyZWF0ZUF1dGhlbnRpY2F0b3IoeworICAgICAgICAucHJvdG9jb2wg
PSBwcm90b2NvbCwKKyAgICAgICAgLnRyYW5zcG9ydCA9IHRvQXV0aGVudGljYXRvclRyYW5zcG9y
dChwYXJzZWRUcmFuc3BvcnQudmFsdWUoKSksCisgICAgICAgIC5oYXNSZXNpZGVudEtleSA9ICpo
YXNSZXNpZGVudEtleSwKKyAgICAgICAgLmhhc1VzZXJWZXJpZmljYXRpb24gPSAqaGFzVXNlclZl
cmlmaWNhdGlvbiwKKyAgICAgICAgLmlzVXNlckNvbnNlbnRpbmcgPSAqaXNVc2VyQ29uc2VudGlu
ZywKKyAgICAgICAgLmlzVXNlclZlcmlmaWVkID0gKmlzVXNlclZlcmlmaWVkLAorICAgIH0pOwor
I2Vsc2UKKyAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE5v
dEltcGxlbWVudGVkLCAiVGhpcyBtZXRob2QgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQorfQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJv
clN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVWaXJ0dWFsQXV0aGVu
dGljYXRvcihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5n
JiBhdXRoZW50aWNhdG9ySWQpCit7CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICBXZWJQYWdl
UHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoYnJvd3NpbmdDb250ZXh0SGFuZGxl
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJS
T1IoV2luZG93Tm90Rm91bmQpOworICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlciYgYXV0
aGVudGljYXRvck1hbmFnZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkudmlydHVhbEF1dGhl
bnRpY2F0b3JNYW5hZ2VyKCk7CisgICAgaWYgKCFhdXRoZW50aWNhdG9yTWFuYWdlci5yZW1vdmVB
dXRoZW50aWNhdG9yKGF1dGhlbnRpY2F0b3JJZCkpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIk5vIHN1Y2ggYXV0
aGVudGljYXRvciBleGlzdHMuIik7CisgICAgcmV0dXJuIHsgfTsKKyNlbHNlCisgICAgU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRo
aXMgbWV0aG9kIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7CisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVVRITikKK30KKworSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRp
Y2F0b3JJZCwgUmVmPEpTT046Ok9iamVjdD4mJiBjcmVkZW50aWFsKQoreworICAgIFNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJUaGlz
IG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlByb3Rv
Y29sOjpFcnJvclN0cmluZ09yPFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbD4+IC8qIGNyZWRlbnRp
YWxzICovPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVk
ZW50aWFscyhjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5n
JiBhdXRoZW50aWNhdG9ySWQpCit7CisgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
Ul9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9kIGlzIG5vdCB5ZXQgaW1w
bGVtZW50ZWQuIik7Cit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9p
ZD4gV2ViQXV0b21hdGlvblNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVu
dGlhbChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBh
dXRoZW50aWNhdG9ySWQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbElkKQoreworICAgIFNZTkNf
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJU
aGlzIG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlBy
b3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVB
bGxWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdD
b250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCkKK3sKKyAgICBTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE5vdEltcGxlbWVudGVkLCAi
VGhpcyBtZXRob2QgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKK30KKworSW5zcGVjdG9yOjpQ
cm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0Vmly
dHVhbEF1dGhlbnRpY2F0b3JVc2VyVmVyaWZpZWQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRl
eHRIYW5kbGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBib29sIGlzVXNlclZlcmlm
aWVkKQoreworICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
Tm90SW1wbGVtZW50ZWQsICJUaGlzIG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOwor
fQorCiBib29sIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzaG91bGRBbGxvd0dldFVzZXJNZWRpYUZv
clBhZ2UoY29uc3QgV2ViUGFnZVByb3h5JikgY29uc3QKIHsKICAgICByZXR1cm4gbV9wZXJtaXNz
aW9uRm9yR2V0VXNlck1lZGlhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGY3NWRjYWQ1ZTM1ODU0
OTM3ZWMwYmNkZTdkMmQ0NzI4ZmIwYjYyMjEuLjEyYjdmMTkzMjJlYTc3ZjBiNjFhYTRmMDAzMTYy
YzMyZWI5NzE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTIwNCw2ICsyMDQsMTQgQEAgcHVi
bGljOgogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8UmVmPEpTT046OkFy
cmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6U2Vzc2lvblBlcm1pc3Npb25E
YXRhPj4+IGdldFNlc3Npb25QZXJtaXNzaW9ucygpOwogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0U2Vzc2lvblBlcm1pc3Npb25zKFJlZjxKU09OOjpBcnJh
eT4mJik7CiAKKyAgICBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPFN0cmluZyAv
KiBhdXRoZW50aWNhdG9ySWQgKi8+IGFkZFZpcnR1YWxBdXRoZW50aWNhdG9yKGNvbnN0IFN0cmlu
ZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZWY8SlNPTjo6T2JqZWN0PiYmIGF1dGhlbnRpY2F0
b3IpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gcmVtb3Zl
VmlydHVhbEF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkKTsKKyAgICBJbnNwZWN0b3I6OlByb3RvY29s
OjpFcnJvclN0cmluZ09yPHZvaWQ+IGFkZFZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbChj
b25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50
aWNhdG9ySWQsIFJlZjxKU09OOjpPYmplY3Q+JiYgY3JlZGVudGlhbCk7CisgICAgSW5zcGVjdG9y
OjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWw+PiAvKiBj
cmVkZW50aWFscyAqLz4gZ2V0VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyhjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9y
SWQpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gcmVtb3Zl
VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCwgY29uc3QgU3RyaW5nJiBj
cmVkZW50aWFsSWQpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9p
ZD4gcmVtb3ZlQWxsVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyhjb25zdCBTdHJpbmcm
IGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9ySWQpOwor
ICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0VmlydHVhbEF1
dGhlbnRpY2F0b3JVc2VyVmVyaWZpZWQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5k
bGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBib29sIGlzVXNlclZlcmlmaWVkKTsK
KwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGluc3BlY3RCcm93c2luZ0NvbnRleHQoY29u
c3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0SGFuZGxl
Jiwgc3RkOjpvcHRpb25hbDxib29sPiYmIGVuYWJsZUF1dG9DYXB0dXJpbmcsIFJlZjxJbnNwZWN0
QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuaAppbmRleCBmNzFlMmZkZGU1NTFlMWMzOGRhYjEwZTMzM2IyN2M0YWI3NWExMTQy
Li44NjRiMzM3OGIzNDc2NjVlZTVmNzk0OGE3ZmQ0ZDM2NDE2NTUxOWU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y2FuY2VsKCk7IC8vIENhbGxlZCBmcm9tIHRoZSBwcmVzZW50ZXIuCiAKICAgICB2aXJ0dWFsIGJv
b2wgaXNNb2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNW
aXJ0dWFsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgZW5hYmxlTW9kZXJu
V2ViQXV0aGVudGljYXRpb24oKTsKICAgICB2b2lkIGVuYWJsZU5hdGl2ZVN1cHBvcnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1
YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29u
ZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYzI4YTg1NWNkOWViYjdiZjM1NjQzODYxZmRkZGVj
NWY5NTUyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJfQVVUSE4pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0cnVjdCBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24geworICAgIFdURl9N
QUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICAvLyBGSVhNRTogdXNlIFByb3RvY29sVmVy
c2lvbiBoZXJlCisgICAgU3RyaW5nIHByb3RvY29sOworICAgIFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQgdHJhbnNwb3J0OworICAgIGJvb2wgaGFzUmVzaWRlbnRLZXk7CisgICAgYm9v
bCBoYXNVc2VyVmVyaWZpY2F0aW9uOworICAgIGJvb2wgaXNVc2VyQ29uc2VudGluZzsKKyAgICBi
b29sIGlzVXNlclZlcmlmaWVkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMmRiYmVmMGIxMjI4
YWE3NWEzOGY3NGRhZTk0NzBmY2Q4NjYzYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNh
dG9yTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlIDxWaXJ0dWFsU2VydmljZS5oPgorI2luY2x1
ZGUgPHd0Zi9VVUlELmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXI6OlZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcigpCisgICAgOiBBdXRoZW50
aWNhdG9yTWFuYWdlcigpCit7Cit9CisKK1N0cmluZyBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXI6OmNyZWF0ZUF1dGhlbnRpY2F0b3IoVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
IGNvbmZpZykKK3sKKyAgICBpZiAoY29uZmlnLnRyYW5zcG9ydCAhPSBXZWJDb3JlOjpBdXRoZW50
aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCkKKyAgICAgICAgVU5JTVBMRU1FTlRFRCgpOworICAg
IGF1dG8gaWQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CisgICAgbV92aXJ0dWFsQXV0
aGVudGljYXRvcnMuc2V0KGlkLCBtYWtlVW5pcXVlUmVmPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29u
ZmlndXJhdGlvbj4oY29uZmlnKSk7CisKKyAgICByZXR1cm4gaWQ7Cit9CisKK2Jvb2wgVmlydHVh
bEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZW1vdmVBdXRoZW50aWNhdG9yKGNvbnN0IFN0cmluZyYg
aWQpCit7CisgICAgcmV0dXJuIG1fdmlydHVhbEF1dGhlbnRpY2F0b3JzLnJlbW92ZShpZCk7Cit9
CisKK1VuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gVmlydHVhbEF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjpjcmVhdGVTZXJ2aWNlKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQgdHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXIm
IG9ic2VydmVyKSBjb25zdAoreworICAgIFZlY3RvcjxWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZp
Z3VyYXRpb24+IGNvbmZpZ3M7CisgICAgZm9yIChhdXRvJiBjb25maWcgOiBtX3ZpcnR1YWxBdXRo
ZW50aWNhdG9ycy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoY29uZmlnLmdldCgpLnRyYW5zcG9y
dCA9PSB0cmFuc3BvcnQpCisgICAgICAgICAgICBjb25maWdzLmFwcGVuZChjb25maWcuZ2V0KCkp
OworICAgIH0KKyAgICByZXR1cm4gVmlydHVhbFNlcnZpY2U6OmNyZWF0ZVZpcnR1YWwodHJhbnNw
b3J0LCBvYnNlcnZlciwgY29uZmlncyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFs
L1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5NTQ3Yzk3ZGZhNTU0
OWM3ZWQ1YjRiZDQ5MDI2MzU1OTQ0ZTdlOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNh
dG9yTWFuYWdlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yTWFuYWdl
ci5oIgorI2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyIGZp
bmFsIDogcHVibGljIEF1dGhlbnRpY2F0b3JNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIoKTsKKworICAgIFN0cmluZyBjcmVhdGVBdXRo
ZW50aWNhdG9yKFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiAvKmNvbmZpZy8qLyk7
CisgICAgYm9vbCByZW1vdmVBdXRoZW50aWNhdG9yKGNvbnN0IFN0cmluZyYgLyphdXRoZW50aWNh
dG9ySWQqLyk7CisKKyAgICBib29sIGlzVmlydHVhbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKworcHJpdmF0ZToKKyAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNl
cnZpY2U+IGNyZWF0ZVNlcnZpY2UoV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCwgQXV0
aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyJikgY29uc3QgZmluYWw7CisKKyAg
ICBIYXNoTWFwPFN0cmluZywgVW5pcXVlUmVmPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJh
dGlvbj4+IG1fdmlydHVhbEF1dGhlbnRpY2F0b3JzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsTG9jYWxDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0
dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDVlMTMxMTZjYTI1M2Qz
NmViNTVmZWMyOTY3ODViMWFlMDlmODY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsTG9jYWxDb25uZWN0
aW9uLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkxvY2FsQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3N0cnVjdCBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb247CisKK2NsYXNz
IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgTG9jYWxDb25uZWN0aW9uIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uKGNvbnN0IFZpcnR1
YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiYpOworCitwcml2YXRlOgorICAgIHZvaWQgdmVy
aWZ5VXNlcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSwgU2VjQWNjZXNz
Q29udHJvbFJlZiwgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LCAgVXNlclZl
cmlmaWNhdGlvbkNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgdmVyaWZ5VXNlcihTZWNBY2Nl
c3NDb250cm9sUmVmLCBMQUNvbnRleHQgKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVc2VyVmVy
aWZpY2F0aW9uKT4mJikgZmluYWw7CisgICAgdm9pZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYs
IE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBj
b25zdCBmaW5hbDsKKyAgICB2b2lkIGZpbHRlclJlc3BvbnNlcyhWZWN0b3I8UmVmPFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+JikgY29uc3QgZmluYWw7CisKKyAgICBW
aXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9uOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVh
bC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4NmQ0ZDFiMDk2ODNmZmNkMTIzOTA5MTEzNTY0YTk0NzZmNmJlMWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFs
L1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0KQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oIgor
CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2ltcG9ydCAiVmlydHVhbEF1dGhlbnRpY2F0b3JD
b25maWd1cmF0aW9uLmgiCisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgor
I2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5o
PgorI2ltcG9ydCA8d3RmL1JlZi5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQg
PHd0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5o
PgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpbXBvcnQgIkxvY2FsQXV0aGVu
dGljYXRpb25Tb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjpWaXJ0dWFsTG9jYWxDb25uZWN0
aW9uKGNvbnN0IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
bikKKyAgICA6IG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQoreworfQorCit2b2lkIFZp
cnR1YWxMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiwgQ2xpZW50RGF0
YVR5cGUsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudCwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgLy8g
TW9jayBhc3luYyBvcGVyYXRpb25zLgorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29u
ZmlndXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbiwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKGNvbmZpZ3VyYXRpb24udHJhbnNwb3J0ID09
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKKworICAgICAgICBVc2VyVmVyaWZp
Y2F0aW9uIHVzZXJWZXJpZmljYXRpb24gPSBjb25maWd1cmF0aW9uLmlzVXNlclZlcmlmaWVkID8g
VXNlclZlcmlmaWNhdGlvbjo6WWVzIDogVXNlclZlcmlmaWNhdGlvbjo6Tm87CisKKyAgICAgICAg
Y2FsbGJhY2sodXNlclZlcmlmaWNhdGlvbiwgYWRvcHROUyhbYWxsb2NMQUNvbnRleHRJbnN0YW5j
ZSgpIGluaXRdKS5nZXQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgVmlydHVhbExvY2FsQ29ubmVj
dGlvbjo6dmVyaWZ5VXNlcihTZWNBY2Nlc3NDb250cm9sUmVmLCBMQUNvbnRleHQgKiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChVc2VyVmVyaWZpY2F0aW9uKT4mJiBjYWxsYmFjaykKK3sKKyAgICAv
LyBNb2NrIGFzeW5jIG9wZXJhdGlvbnMuCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtj
b25maWd1cmF0aW9uID0gbV9jb25maWd1cmF0aW9uLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXSgpIG11dGFibGUgeworICAgICAgICBBU1NFUlQoY29uZmlndXJhdGlvbi50cmFuc3BvcnQg
PT0gQXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWwpOworCisgICAgICAgIFVzZXJWZXJp
ZmljYXRpb24gdXNlclZlcmlmaWNhdGlvbiA9IGNvbmZpZ3VyYXRpb24uaXNVc2VyVmVyaWZpZWQg
PyBVc2VyVmVyaWZpY2F0aW9uOjpZZXMgOiBVc2VyVmVyaWZpY2F0aW9uOjpObzsKKworICAgICAg
ICBjYWxsYmFjayh1c2VyVmVyaWZpY2F0aW9uKTsKKyAgICB9KTsKK30KKwordm9pZCBWaXJ0dWFs
TG9jYWxDb25uZWN0aW9uOjpnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqLCBOU0Rh
dGEgKiwgQXR0ZXN0YXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSBjb25zdAoreworICAgIC8vIE1v
Y2sgYXN5bmMgb3BlcmF0aW9ucy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZp
Z3VyYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KCkgbXV0YWJsZSB7CisgICAgICAgIEFTU0VSVChjb25maWd1cmF0aW9uLnRyYW5zcG9ydCA9PSBB
dXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCk7CisgICAgICAgIGNhbGxiYWNrKE5VTEws
IFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIldlYkF1dGhlbnRpY2F0aW9uIiBjb2RlOi0xIHVz
ZXJJbmZvOkB7IE5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXk6IEAiVGhlIG9wZXJhdGlvbiBjb3Vs
ZG4ndCBjb21wbGV0ZS4iIH1dKTsKKyAgICB9KTsKK30KKwordm9pZCBWaXJ0dWFsTG9jYWxDb25u
ZWN0aW9uOjpmaWx0ZXJSZXNwb25zZXMoVmVjdG9yPFJlZjxBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcG9uc2U+PiYgcmVzcG9uc2VzKSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxTZXJ2aWNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1
YWxTZXJ2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRhMDhlMGQ4NDdkZWNiMDA1NTcyMDIwNTlhYzg2MGJh
ODYwMDljZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5j
bHVkZSAiQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCIKKyNpbmNsdWRlICJWaXJ0dWFs
QXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFZpcnR1YWxTZXJ2aWNlIDogcHVibGljIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNl
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBWaXJ0dWFsU2VydmljZShPYnNlcnZlciYsIFZlY3Rv
cjxWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24+KTsKKworICAgIHN0YXRpYyBVbmlx
dWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IGNyZWF0ZVZpcnR1YWwoV2ViQ29y
ZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCwgT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8VmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBjb25maWdzKTsKK3ByaXZhdGU6CisgICAgdm9p
ZCBzdGFydERpc2NvdmVyeUludGVybmFsKCkgZmluYWw7CisKKyAgICBWZWN0b3I8VmlydHVhbEF1
dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb25zOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0
dWFsU2VydmljZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFhYTQ0YjY4NDdhYjQzNjQ4
MGEwNDYxZDNmZjY2YmJhZjYxNzg4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UubW0KQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
VmlydHVhbFNlcnZpY2UuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbXBvcnQgIkxv
Y2FsQXV0aGVudGljYXRvci5oIgorI2ltcG9ydCAiVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oIgor
I2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitW
aXJ0dWFsU2VydmljZTo6VmlydHVhbFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyLCBWZWN0b3I8
VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9ucykKKyAgICA6
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlKG9ic2VydmVyKSwgbV9jb25maWd1cmF0aW9u
cyhjb25maWd1cmF0aW9ucykKK3sKK30KKworVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlPiBWaXJ0dWFsU2VydmljZTo6Y3JlYXRlVmlydHVhbChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yVHJhbnNwb3J0IHRyYW5zcG9ydCwgT2JzZXJ2ZXImIG9ic2VydmVyLCAgY29uc3QgVmVj
dG9yPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbj4gY29uZmlncykKK3sKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZVJlZjxWaXJ0dWFsU2VydmljZT4ob2JzZXJ2ZXIsIGNvbmZpZ3MpOwor
fQorCit2b2lkIFZpcnR1YWxTZXJ2aWNlOjpzdGFydERpc2NvdmVyeUludGVybmFsKCkKK3sKKyAg
ICBpZiAoIW9ic2VydmVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKGF1dG8mIGNvbmZp
ZyA6IG1fY29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgc3dpdGNoIChjb25maWcudHJhbnNwb3J0
KSB7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJu
YWw6CisgICAgICAgICAgICBvYnNlcnZlcigpLT5hdXRoZW50aWNhdG9yQWRkZWQoTG9jYWxBdXRo
ZW50aWNhdG9yOjpjcmVhdGUobWFrZVVuaXF1ZVJlZjxWaXJ0dWFsTG9jYWxDb25uZWN0aW9uPihj
b25maWcpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBVTklNUExFTUVOVEVEKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKaW5kZXggM2JkNDhiYjVmMzBlOTNlY2Y4MGQzZjc4M2FkYjJiODM5NzQ5MGIyYS4uNzA3MTU4
YzhjNTk1MjJjOTZiYTAwMGQ2MTE2YjhmZWM3NGY4MzBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAg
LTM4LDYgKzM4LDcgQEAKICNpbmNsdWRlICJOZXR3b3JrUHJvY2Vzc01lc3NhZ2VzLmgiCiAjaW5j
bHVkZSAiU2hvdWxkR3JhbmRmYXRoZXJTdGF0aXN0aWNzLmgiCiAjaW5jbHVkZSAiU3RvcmFnZUFj
Y2Vzc1N0YXR1cy5oIgorI2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oIgog
I2luY2x1ZGUgIldlYkJhY2tGb3J3YXJkQ2FjaGUuaCIKICNpbmNsdWRlICJXZWJDb29raWVNYW5h
Z2VyUHJveHkuaCIKICNpbmNsdWRlICJXZWJLaXQySW5pdGlhbGl6ZS5oIgpAQCAtMTk0NSw2ICsx
OTQ2LDEzIEBAIHZvaWQgV2Vic2l0ZURhdGFTdG9yZTo6c2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9u
Q29uZmlndXJhdGlvbihXZWJDb3JlOjpNb2NrV2ViQXV0CiAgICAgfQogICAgIHN0YXRpY19jYXN0
PE1vY2tBdXRoZW50aWNhdG9yTWFuYWdlcio+KCZtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyKS0+c2V0
VGVzdENvbmZpZ3VyYXRpb24oV1RGTW92ZShjb25maWd1cmF0aW9uKSk7CiB9CisKK1ZpcnR1YWxB
dXRoZW50aWNhdG9yTWFuYWdlciYgV2Vic2l0ZURhdGFTdG9yZTo6dmlydHVhbEF1dGhlbnRpY2F0
b3JNYW5hZ2VyKCkKK3sKKyAgICBpZiAoIW1fYXV0aGVudGljYXRvck1hbmFnZXItPmlzVmlydHVh
bCgpKQorICAgICAgICBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyID0gbWFrZVVuaXF1ZVJlZjxWaXJ0
dWFsQXV0aGVudGljYXRvck1hbmFnZXI+KCk7CisgICAgcmV0dXJuIHN0YXRpY19jYXN0PFZpcnR1
YWxBdXRoZW50aWNhdG9yTWFuYWdlciY+KG1fYXV0aGVudGljYXRvck1hbmFnZXIuZ2V0KCkpOwor
fQogI2VuZGlmCiAKIEFQSTo6SFRUUENvb2tpZVN0b3JlJiBXZWJzaXRlRGF0YVN0b3JlOjpjb29r
aWVTdG9yZSgpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJzaXRlRGF0
YS9XZWJzaXRlRGF0YVN0b3JlLmgKaW5kZXggMTUwNDZiZTViNWU0MGZmMWI3ODVlYzU0Y2I0YjVl
NDFjMGI1YzcwYi4uNjE5NjI4MGY3NmRhMTIwMjk4ZTJiN2FiMTY0MDVkMmYwYmEyODkyMyAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFT
dG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVE
YXRhU3RvcmUuaApAQCAtODcsNiArODcsNyBAQCBjbGFzcyBTZWNLZXlQcm94eVN0b3JlOwogY2xh
c3MgRGV2aWNlSWRIYXNoU2FsdFN0b3JhZ2U7CiBjbGFzcyBOZXR3b3JrUHJvY2Vzc1Byb3h5Owog
Y2xhc3MgU09BdXRob3JpemF0aW9uQ29vcmRpbmF0b3I7CitjbGFzcyBWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXI7CiBjbGFzcyBXZWJQYWdlUHJveHk7CiBjbGFzcyBXZWJQcm9jZXNzUG9vbDsK
IGNsYXNzIFdlYlByb2Nlc3NQcm94eTsKQEAgLTMwNyw2ICszMDgsNyBAQCBwdWJsaWM6CiAjaWYg
RU5BQkxFKFdFQl9BVVRITikKICAgICBBdXRoZW50aWNhdG9yTWFuYWdlciYgYXV0aGVudGljYXRv
ck1hbmFnZXIoKSB7IHJldHVybiBtX2F1dGhlbnRpY2F0b3JNYW5hZ2VyLmdldCgpOyB9CiAgICAg
dm9pZCBzZXRNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uKFdlYkNvcmU6Ok1vY2tX
ZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24mJik7CisgICAgVmlydHVhbEF1dGhlbnRpY2F0
b3JNYW5hZ2VyJiB2aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIoKTsKICNlbmRpZgogCiAgICAg
Y29uc3QgV2Vic2l0ZURhdGFTdG9yZUNvbmZpZ3VyYXRpb24mIGNvbmZpZ3VyYXRpb24oKSB7IHJl
dHVybiBtX2NvbmZpZ3VyYXRpb24uZ2V0KCk7IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
V2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViS2l0L1dlYktpdC54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDRjOTBlNzExNDExOTVkM2U5NDhlNzgzNmFj
MmQ4YzBjNTI1ODJjNTIuLmI1ZDY3YWE4OTc0OTAxYjVlNWJmZmM2NGUzYzU1YTJmNDViZDRmOWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKKysrIGIvU291cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpA
QCAtMTA0OSw2ICsxMDQ5LDEzIEBACiAJCTUxRkQxOEI2MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3
b3JrUmVzb3VyY2VMb2FkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IDUxRkQxOEI0MTY1MUZCQUQwMERCRTFDRSAvKiBOZXR3b3JrUmVzb3VyY2VMb2Fk
ZXIuaCAqLzsgfTsKIAkJNTI3MkQ0QzkxRTczNUYwOTAwRUI0MjkwIC8qIFdLUHJvdGVjdGlvblNw
YWNlTlMuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUy
NzJENEM3MUU3MzVGMDkwMEVCNDI5MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLmggKi87IHNldHRp
bmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJNTI4QzM3QzExOTVDQkIx
QTAwRDhCOUNDIC8qIFdLQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gMUE5RjI4MTAxOTU4RjQ3ODAwOENBQzcyIC8q
IFdLQmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0g
KFByaXZhdGUsICk7IH07IH07CisJCTUyQ0RDNUM0MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFs
QXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUJEMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0
aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCAqLzsgfTsKKwkJNTJDREM1QzUyNzMxREEwRDAwQTNF
M0VCIC8qIFZpcnR1YWxTZXJ2aWNlLm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTJDREM1QkUyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNl
Lm1tICovOyB9OworCQk1MkNEQzVDNjI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRp
Y2F0b3JNYW5hZ2VyLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmls
ZVJlZiA9IDUyQ0RDNUJGMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1h
bmFnZXIuY3BwICovOyB9OworCQk1MkNEQzVDNzI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbExv
Y2FsQ29ubmVjdGlvbi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gNTJDREM1QzAyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24u
aCAqLzsgfTsKKwkJNTJDREM1QzgyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNlLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVDMTI3
MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbFNlcnZpY2UuaCAqLzsgfTsKKwkJNTJDREM1QzkyNzMx
REEwRDAwQTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0gaW4gU291cmNlcyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVDMjI3MzFEQTBDMDBBM0UzRUIg
LyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbSAqLzsgfTsKKwkJNTJDREM1Q0EyNzMxREEwRDAw
QTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDREM1QzMyNzMxREEwQzAwQTNFM0VCIC8q
IFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oICovOyB9OwogCQk1MkQ1QTFCMDFDNTc0OTVB
MDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkQ1QTFBQTFDNTc0OTRFMDBERTM0QTMg
LyogVmlkZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi87IH07CiAJCTUyRjA2MEUxMTY1NDMx
ODUwMEYzMjgxQiAvKiBOZXR3b3JrQ29udGVudFJ1bGVMaXN0TWFuYWdlck1lc3NhZ2VSZWNlaXZl
ci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkYw
NjBERDE2NTQzMTc1MDBGMzI4MUIgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1hbmFnZXJNZXNz
YWdlUmVjZWl2ZXIuY3BwICovOyB9OwogCQk1MzIxNTk1NTFEQkFFNzI5MDA1NEFBM0MgLyogTmV0
d29ya1Nlc3Npb25Db2NvYS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTMyMTU5NTAxREJBRTZENzAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2Eu
aCAqLzsgfTsKQEAgLTQwNjksNiArNDA3NiwxMyBAQAogCQk1MUZEMThCNDE2NTFGQkFEMDBEQkUx
Q0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MjcyRDRDNzFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IG5hbWUgPSBXS1Byb3RlY3Rpb25TcGFjZU5TLmg7IHBh
dGggPSBtYWMvV0tQcm90ZWN0aW9uU3BhY2VOUy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQk1MjcyRDRDODFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9uU3BhY2VOUy5tbSAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgbmFtZSA9IFdLUHJvdGVjdGlvblNwYWNl
TlMubW07IHBhdGggPSBtYWMvV0tQcm90ZWN0aW9uU3BhY2VOUy5tbTsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKKwkJNTJDREM1QkQyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50
aWNhdG9yQ29uZmlndXJhdGlvbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBW
aXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+
IjsgfTsKKwkJNTJDREM1QkUyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNlLm1tICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBwYXRoID0gVmlydHVhbFNlcnZpY2UubW07
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUJGMjczMURBMEMwMEEzRTNFQiAv
KiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
cHAuY3BwOyBwYXRoID0gVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcDsgc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsgfTsKKwkJNTJDREM1QzAyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxM
b2NhbENvbm5lY3Rpb24uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gVmlydHVh
bExvY2FsQ29ubmVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkNEQzVD
MTI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbFNlcnZpY2UuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuYy5oOyBwYXRoID0gVmlydHVhbFNlcnZpY2UuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTJDREM1QzIyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24u
bW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBhdGggPSBWaXJ0dWFsTG9jYWxD
b25uZWN0aW9uLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkNEQzVDMzI3MzFE
QTBDMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmggKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQk1MkQ1QTFBQTFDNTc0OTRFMDBERTM0QTMgLyogVmlk
ZW9GdWxsc2NyZWVuTWFuYWdlclByb3h5LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQk1MkQ1QTFBQjFDNTc0OTRFMDBERTM0QTMgLyogVmlkZW9GdWxsc2NyZWVuTWFuYWdl
clByb3h5Lm1lc3NhZ2VzLmluICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4dDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbjsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJ
NTJENUExQUMxQzU3NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5t
bSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9IFZpZGVvRnVsbHNjcmVl
bk1hbmFnZXJQcm94eS5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTg3NDAsNiAr
ODc1NCwyMCBAQAogCQkJcGF0aCA9IGlvczsKIAkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CiAJ
CX07CisJCTUyQ0RDNUJDMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsICovID0geworCQkJaXNh
ID0gUEJYR3JvdXA7CisJCQljaGlsZHJlbiA9ICgKKwkJCQk1MkNEQzVCRDI3MzFEQTBDMDBBM0Uz
RUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggKi8sCisJCQkJNTJDREM1
QkYyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgKi8s
CisJCQkJNTJDREM1QzMyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFu
YWdlci5oICovLAorCQkJCTUyQ0RDNUMwMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxD
b25uZWN0aW9uLmggKi8sCisJCQkJNTJDREM1QzIyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxM
b2NhbENvbm5lY3Rpb24ubW0gKi8sCisJCQkJNTJDREM1QzEyNzMxREEwQzAwQTNFM0VCIC8qIFZp
cnR1YWxTZXJ2aWNlLmggKi8sCisJCQkJNTJDREM1QkUyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1
YWxTZXJ2aWNlLm1tICovLAorCQkJKTsKKwkJCXBhdGggPSBWaXJ0dWFsOworCQkJc291cmNlVHJl
ZSA9ICI8Z3JvdXA+IjsKKwkJfTsKIAkJNTUwNjQwOUMyNDA3MTVBQTAwQUFFMDQ1IC8qIGdyYXBo
aWNzICovID0gewogCQkJaXNhID0gUEJYR3JvdXA7CiAJCQljaGlsZHJlbiA9ICgKQEAgLTg5Mzks
NiArODk2Nyw3IEBACiAJCQkJNTdEQ0VEOUUyMTQ4RjlEMTAwMTZCODQ3IC8qIENvY29hICovLAog
CQkJCTU3NTk3RUJGMjE4MTg0QjIwMDM3RjkyNCAvKiBmaWRvICovLAogCQkJCTU3RENFREJEMjE0
QzlGQTkwMDE2Qjg0NyAvKiBNb2NrICovLAorCQkJCTUyQ0RDNUJDMjczMURBMEMwMEEzRTNFQiAv
KiBWaXJ0dWFsICovLAogCQkJCTU3RENFREE0MjE0OUU2NEEwMDE2Qjg0NyAvKiBBdXRoZW50aWNh
dG9yLmNwcCAqLywKIAkJCQk1N0RDRUQ4QjIxNDg1QkQ3MDAxNkI4NDcgLyogQXV0aGVudGljYXRv
ci5oICovLAogCQkJCTU3RENFRDg1MjE0NzM2M0EwMDE2Qjg0NyAvKiBBdXRoZW50aWNhdG9yTWFu
YWdlci5jcHAgKi8sCkBAIC0xMjMzNSw2ICsxMjM2NCwxMCBAQAogCQkJCTJEODE5QkEyMTg2Mjgw
MEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTJENkNEMTE5MTg5MDU4QTUwMEU1QTRBMCAvKiBWaWV3U25hcHNob3RT
dG9yZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjY4NDA1NTMxOEI4NkVENjAwMjJDMzhCIC8qIFZp
ZXdVcGRhdGVEaXNwYXRjaGVyTWVzc2FnZXMuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyQ0RDNUM0
MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCBp
biBIZWFkZXJzICovLAorCQkJCTUyQ0RDNUNBMjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0
aGVudGljYXRvck1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCTUyQ0RDNUM3MjczMURBMEQw
MEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1
MkNEQzVDODI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbFNlcnZpY2UuaCBpbiBIZWFkZXJzICov
LAogCQkJCTI2ODQwNTQ0MThCODVBNjMwMDIyQzM4QiAvKiBWaXNpYmxlQ29udGVudFJlY3RVcGRh
dGVJbmZvLmggaW4gSGVhZGVycyAqLywKIAkJCQkyREQ1QTcyOTFFQkYwOEQ1MDA5QkE1OTcgLyog
VmlzaWJsZVdlYlBhZ2VDb3VudGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkzMTU1RUUwRDI2NzNG
NEYwMDA4NUU1OUEgLyogVmlzaW9uS2l0U1BJLmggaW4gSGVhZGVycyAqLywKQEAgLTE0MzkwLDYg
KzE0NDIzLDkgQEAKIAkJCQkyRDFCNUQ1RDE4NTg2OUM4MDA2QzY1OTYgLyogVmlld0dlc3R1cmVD
b250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTJEODE5QkEx
MTg2MjgwMEUwMDFGMDNEMSAvKiBWaWV3R2VzdHVyZUdlb21ldHJ5Q29sbGVjdG9yTWVzc2FnZVJl
Y2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTI2ODQwNTUyMThCODZFRDYwMDIyQzM4QiAv
KiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
KwkJCQk1MkNEQzVDNjI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5h
Z2VyLmNwcCBpbiBTb3VyY2VzICovLAorCQkJCTUyQ0RDNUM5MjczMURBMEQwMEEzRTNFQiAvKiBW
aXJ0dWFsTG9jYWxDb25uZWN0aW9uLm1tIGluIFNvdXJjZXMgKi8sCisJCQkJNTJDREM1QzUyNzMx
REEwRDAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNlLm1tIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE2
MDIyNEMxOEMxNkI5RjAwQzNFOEM5IC8qIFZpc2l0ZWRMaW5rU3RvcmVNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUE4RTdEM0MxOEMxNTE0OTAwNUE3MDJBIC8qIFZpc2l0
ZWRMaW5rVGFibGVDb250cm9sbGVyTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTU3RENFRDcwMjE0MkVFNjgwMDE2Qjg0NyAvKiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eU1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywK
</data>
<flag name="commit-queue"
          id="467933"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443230</attachid>
            <date>2021-11-03 13:03:18 -0700</date>
            <delta_ts>2021-11-03 17:03:32 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232635-20211103130315.patch</filename>
            <type>text/plain</type>
            <size>52843</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDE3NmY1NGJhM2JlZDU0NTE3
NjRhZTE2NzY2YzZkZWU3NTRiMWQ4NGUuLmFhNmIyMTA4ODMxMTBlMTE0ODZlNDNkYzAzMmQ0YmM3
MWNhMjI0MTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMTEtMDMgIEpvaG4gUGFz
Y29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50
IGFkZC9yZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yIGZvciB0cmFuc3BvcnQ9aW50ZXJuYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ5NDIxNzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBtdWNoIG9m
IHRoZSBwbHVtYmluZyBuZWVkZWQgdG8gY2FsbCB0aGUgdmlydHVhbCBhdXRoZW50aWNhdG9yCisg
ICAgICAgIGNvbW1hbmRzIGZyb20gc2FmYXJpZHJpdmVyLiBUaGUgaWRlYSBpcyB0aGF0IHZpcnR1
YWwgYXV0aGVudGljYXRvcnMgYXJlIGFkZGVkIHZpYQorICAgICAgICB0aGUgYWRkX3ZpcnR1YWxf
YXV0aGVudGljYXRvciBjYWxsLCB3aGljaCByZXBsYWNlcyB0aGUgZGVmYXVsdCBBdXRoZW50aWNh
dG9yTWFuYWdlcgorICAgICAgICB3aXRoIGEgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyIHNp
bWlsYXIgdG8gaG93IHdlIGRvIGl0IGZvciBtb2Nrcy4gVGhlbiB0aGUKKyAgICAgICAgVmlydHVh
bFNlcnZpY2Ugd2lsbCBjcmVhdGUgdGhlIHZpcnR1YWwgY29ubmVjdGlvbnMgZm9yIGF1dGhlbnRp
Y2F0b3JzIGFzIG5lc3Nlc2FyeQorICAgICAgICB0byBtYWtlIHdlYmF1dGhuIGNhbGxzIHdpdGhp
biBXZWJEcml2ZXIgYmFzZWQgdGVzdHMuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5IHZpYSBz
YWZhcmlkcml2ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9u
Lmpzb246CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVtb3ZlVmlydHVhbEF1dGhlbnRp
Y2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkVmlydHVh
bEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVBbGxWaXJ0dWFsQXV0aGVudGlj
YXRvckNyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246
OnNldFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICBQbHVtYmluZyB0
byBjYWxsIGZyb20gc2FmYXJpZHJpdmVyCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjppc1ZpcnR1YWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZUF1
dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXI6OnJlbW92ZUF1dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVu
dGljYXRvck1hbmFnZXI6OmNyZWF0ZVNlcnZpY2UgY29uc3QpOgorICAgICAgICBNYW5hZ2VzIHZp
cnR1YWwgYXV0aGVudGljYXRvcnMsIHJlcGxhY2VzIHRoZSBkZWZhdWx0IG1hbmFnZXIgd2hlbiB1
c2VkIHNpbWlsYXIgdG8gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVh
bC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW06IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjpWaXJ0dWFsTG9jYWxD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlvbjo6dmVy
aWZ5VXNlcik6CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxMb2NhbENvbm5lY3Rpb246OmdldEF0
dGVzdGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlv
bjo6ZmlsdGVyUmVzcG9uc2VzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpWaXJ0dWFsU2VydmljZSk6CisgICAg
ICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKToKKyAgICAgICAgKFdl
YktpdDo6VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6dmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAyICBEb24g
T2xtc3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgTm9uLXVuaWZpZWQg
YnVpbGQgZml4ZXMgZWFybHkgTm92ZW1iZXIgMjAyMSBlZGl0aW9uCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL0F1dG9tYXRpb24uanNvbiBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCmluZGV4IDhkMmU5YmQz
MDBhMDYwZWNkZjZlN2ZlOTA5YTEyNWQ2YWRhYmFmOTMuLjlhMjhiODA2ODczODQxMWZiOTBjMWI1
YzAyODQ4ZTA0ODk0MjgyM2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1
dG9tYXRpb24vQXV0b21hdGlvbi5qc29uCkBAIC0zMzUsNiArMzM1LDU2IEBACiAgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJkZWx0YSIsICIkcmVmIjogIlNpemUiLCAib3B0aW9uYWwiOiB0cnVl
LCAiZGVzY3JpcHRpb24iOiAiRm9yICd3aGVlbCcgaW5wdXQgc291cmNlcywgc3BlY2lmaWVzIGEg
c2Nyb2xsIGRlbHRhLiJ9LAogICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZHVyYXRpb24iLCAi
dHlwZSI6ICJpbnRlZ2VyIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBt
aW5pbXVtIG51bWJlciBvZiBtaWxsaXNlY29uZHMgdGhhdCBtdXN0IGVsYXBzZSB3aGlsZSB0aGUg
cmVsZXZhbnQgaW5wdXQgc291cmNlIHRyYW5zaXRpb25zIHRvIHRoaXMgc3RhdGUuIiB9CiAgICAg
ICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJBdXRo
ZW50aWNhdG9yUHJvdG9jb2wiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJUaGlzIGVudW0gY29udGFpbnMgdGhlIGRpZmZlcmVudCBw
cm90b2NvbCB0eXBlcyBzdXBwb3J0ZWQgYnkgdmlydHVhbCBhdXRoZW50aWNhdG9ycy4iLAorICAg
ICAgICAgICAgImVudW0iOiBbCisgICAgICAgICAgICAgICAgImN0YXAxX3UyZiIsCisgICAgICAg
ICAgICAgICAgImN0YXAyIiwKKyAgICAgICAgICAgICAgICAiY3RhcDJfMSIKKyAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQiLAorICAgICAgICAgICAgInR5cGUiOiAic3RyaW5nIiwKKyAgICAgICAgICAg
ICJkZXNjcmlwdGlvbiI6ICJBdXRoZW50aWNhdG9ycyBtYXkgaW1wbGVtZW50IHZhcmlvdXMgdHJh
bnNwb3J0cyBmb3IgY29tbXVuaWNhdGluZyB3aXRoIGNsaWVudHMuIFRoaXMgZW51bWVyYXRpb24g
ZGVmaW5lcyBoaW50cyBhcyB0byBob3cgY2xpZW50cyBtaWdodCBjb21tdW5pY2F0ZSB3aXRoIGEg
cGFydGljdWxhciBhdXRoZW50aWNhdG9yIGluIG9yZGVyIHRvIG9idGFpbiBhbiBhc3NlcnRpb24g
Zm9yIGEgc3BlY2lmaWMgY3JlZGVudGlhbC4iLAorICAgICAgICAgICAgImVudW0iOiBbCisgICAg
ICAgICAgICAgICAgInVzYiIsCisgICAgICAgICAgICAgICAgIm5mYyIsCisgICAgICAgICAgICAg
ICAgImJsZSIsCisgICAgICAgICAgICAgICAgImludGVybmFsIgorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0
b3JDcmVkZW50aWFsIiwKKyAgICAgICAgICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAg
ICAiZGVzY3JpcHRpb24iOiAiQSBjcmVkZW50aWFsIG9iamVjdCB1c2VkIGZvciB2aXJ0dWFsIGF1
dGhlbnRpY2F0b3JzLiIsCisgICAgICAgICAgICAicHJvcGVydGllcyI6IFsKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogImNyZWRlbnRpYWxJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlw
dGlvbiI6ICJUaGUgQ3JlZGVudGlhbCBJRCBlbmNvZGVkIHVzaW5nIEJhc2U2NHVybCBFbmNvZGlu
Zy4ifSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzUmVzaWRlbnRDcmVkZW50aWFsIiwg
InR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJJZiBzZXQgdG8gdHJ1ZSwgYSBjbGll
bnQtc2lkZSBkaXNjb3ZlcmFibGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkLiBJZiBzZXQgdG8gZmFs
c2UsIGEgc2VydmVyLXNpZGUgY3JlZGVudGlhbCBpcyBjcmVhdGVkIGluc3RlYWQuIn0sCisgICAg
ICAgICAgICAgICAgeyAibmFtZSI6ICJycElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0
aW9uIjogIlRoZSBSZWx5aW5nIFBhcnR5IElEIHRoZSBjcmVkZW50aWFsIGlzIHNjb3BlZCB0by4i
fSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByaXZhdGVLZXkiLCAidHlwZSI6ICJzdHJp
bmciLCAiZGVzY3JpcHRpb24iOiAiQW4gYXN5bW1ldHJpYyBrZXkgcGFja2FnZSBjb250YWluaW5n
IGEgc2luZ2xlIHByaXZhdGUga2V5IHBlciBbUkZDNTk1OF0sIGVuY29kZWQgdXNpbmcgQmFzZTY0
dXJsIEVuY29kaW5nLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInVzZXJIYW5kbGUi
LCAidHlwZSI6ICJzdHJpbmciLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhl
IHVzZXJIYW5kbGUgYXNzb2NpYXRlZCB0byB0aGUgY3JlZGVudGlhbCBlbmNvZGVkIHVzaW5nIEJh
c2U2NHVybCBFbmNvZGluZy4gVGhpcyBwcm9wZXJ0eSBtYXkgbm90IGJlIGRlZmluZWQuIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAic2lnbkNvdW50IiwgInR5cGUiOiAiaW50ZWdlciIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgaW5pdGlhbCB2YWx1ZSBmb3IgYSBzaWduYXR1cmUgY291bnRl
ciBhc3NvY2lhdGVkIHRvIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgc291cmNlLiIgfSwKKyAg
ICAgICAgICAgICAgICB7ICJuYW1lIjogImxhcmdlQmxvYiIsICJ0eXBlIjogInN0cmluZyIsICJv
cHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgbGFyZ2UsIHBlci1jcmVkZW50aWFs
IGJsb2IgYXNzb2NpYXRlZCB0byB0aGUgcHVibGljIGtleSBjcmVkZW50aWFsIHNvdXJjZSwgZW5j
b2RlZCB1c2luZyBCYXNlNjR1cmwgRW5jb2RpbmcuIFRoaXMgcHJvcGVydHkgbWF5IG5vdCBiZSBk
ZWZpbmVkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAiaWQiOiAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uIiwKKyAgICAgICAg
ICAgICJ0eXBlIjogIm9iamVjdCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUGFyYW1l
dGVycyB1c2VkIHdoZW4gY3JlYXRpbmcgYSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IiLAorICAgICAg
ICAgICAgInByb3BlcnRpZXMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJwcm90b2Nv
bCIsICIkcmVmIjogIkF1dGhlbnRpY2F0b3JQcm90b2NvbCIsICJkZXNjcmlwdGlvbiI6ICJUaGUg
cHJvdG9jb2wgb2YgdGhlIGF1dGhlbnRpY2F0b3IiIH0sCisgICAgICAgICAgICAgICAgeyAibmFt
ZSI6ICJ0cmFuc3BvcnQiLCAiJHJlZiI6ICJBdXRoZW50aWNhdG9yVHJhbnNwb3J0IiwgImRlc2Ny
aXB0aW9uIjogIlRoZSB0cmFuc3BvcnQgb2YgdGhlIHByb3RvY29sIiB9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiaGFzUmVzaWRlbnRLZXkiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHRoZSBhdXRoZW50aWNhdG9yIGhhcyBhIHJl
c2lkZW50IGtleSIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImhhc1VzZXJWZXJpZmlj
YXRpb24iLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9u
IjogIklmIHRoZSBhdXRoZW50aWNhdG9yIHN1cHBvcnRzIHVzZXIgdmVyaWZpY2F0aW9uIiB9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNVc2VyQ29uc2VudGluZyIsICJ0eXBlIjogImJv
b2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIHZpcnR1YWwg
YXV0aGVudGljYXRvciBzaG91bGQgY29uc2VudCB0byByZXF1ZXN0cyJ9LAorICAgICAgICAgICAg
ICAgIHsgIm5hbWUiOiAiaXNVc2VyVmVyaWZpZWQiLCAidHlwZSI6ICJib29sZWFuIiwgIm9wdGlv
bmFsIjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIklmIHVzZXIgdmVyaWZpY2F0aW9uIHJlcXVlc3Rz
IHNob3VsZCBzdWNjZWVlZCJ9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiZXh0ZW5zaW9u
cyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyJ0eXBlIjogInN0cmluZyJ9LCAib3B0aW9u
YWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiQW4gYXJyYXkgY29udGFpbmluZyBleHRlbnNpb24g
aWRlbnRpZmllcnMiIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJ1dm0iLCAidHlwZSI6
ICJhcnJheSIsICJpdGVtcyI6IHsidHlwZSI6ICJpbnRlZ2VyIn0sICJvcHRpb25hbCI6IHRydWUs
ICJkZXNjcmlwdGlvbiI6ICJVcCB0byAzIFVzZXIgVmVyaWZpY2F0aW9uIE1ldGhvZCBlbnRyaWVz
In0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImNvbW1hbmRzIjogWwpA
QCAtNzEzLDYgKzc2Myw3MSBAQAogICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCiAgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJwZXJtaXNzaW9ucyIsICJ0eXBlIjogImFycmF5IiwgIml0ZW1z
IjogeyAiJHJlZiI6ICJTZXNzaW9uUGVybWlzc2lvbkRhdGEiIH0sICJkZXNjcmlwdGlvbiI6ICJB
cnJheSBvZiBzZXNzaW9uIHBlcm1pc3Npb25zIHRvIHNldCwgaWYgdGhleSBhcmUgYXZhaWxhYmxl
LiIgfQogICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAi
bmFtZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRp
b24iOiAiQWRkcyBhIHZpcnR1YWwgd2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9y
IHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRl
cnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUi
LCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhh
bmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5h
bWUiOiAiYXV0aGVudGljYXRvciIsICIkcmVmIjogIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmln
dXJhdGlvbiIsICJkZXNjcmlwdGlvbiI6ICJUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHZpcnR1
YWwgYXV0aGVudGljYXRvciB0byBiZSBjcmVhdGVkLiIgfQorICAgICAgICAgICAgXSwKKyAgICAg
ICAgICAgICJyZXR1cm5zIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGlj
YXRvcklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSBhdXRoZW50aWNh
dG9ySWQgb2YgdGhlIGNyZWF0ZWQgYXV0aGVudGljYXRvciIgfQorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVWaXJ0dWFsQXV0
aGVudGljYXRvciIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlcyBhIHZpcnR1
YWwgd2ViIGF1dGhlbnRpY2F0aW9uIGF1dGhlbnRpY2F0b3IgZm9yIHRoZSBzcGVjaWZpZWQgYnJv
d3NpbmcgY29udGV4dC4iLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dz
aW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRv
cklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhl
bnRpY2F0b3IgaWQgdG8gcmVtb3ZlLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAg
ICAgICB7CisgICAgICAgICAgICAibmFtZSI6ICJhZGRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWwiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9uIjogIkFkZCBhIGNyZWRlbnRpYWwgdG8g
YSBzcGVjaWZpZWQgdmlydXRhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dz
aW5nIGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklk
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRp
Y2F0b3IgaWQgdG8gYWRkIHRoZSBjcmVkZW50aWFsIHRvLiIgfSwKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImNyZWRlbnRpYWwiLCAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWwiLCAiZGVzY3JpcHRpb24iOiAiVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGNyZWRlbnRpYWwg
dG8gYWRkLiIgfQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7CisgICAgICAg
ICAgICAibmFtZSI6ICJnZXRWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzIiwKKyAgICAg
ICAgICAgICJkZXNjcmlwdGlvbiI6ICJHZXQgYWxsIGNyZWRlbnRpYWxzIGZvciBhIGdpdmVuIHZp
cnR1YWwgYXV0aGVudGljYXRvciBmb3IgdGhlIHNwZWNpZmllZCBicm93c2luZyBjb250ZXh0IiwK
KyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWworICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAi
YnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYiOiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9yIHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImF1dGhlbnRpY2F0b3JJZCIsICJ0eXBlIjogInN0
cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmlydHVhbCBhdXRoZW50aWNhdG9yIGlkIHRvIGZl
dGNoIGFsbCBjcmVkZW50aWFscyBmb3IuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
InJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJjcmVkZW50aWFscyIsICJ0
eXBlIjogImFycmF5IiwgIml0ZW1zIjogeyAiJHJlZiI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNy
ZWRlbnRpYWwiIH0sICJkZXNjcmlwdGlvbiI6ICJBcnJheSBvZiBjcmVkZW50aWFscyBmb3IgZ2l2
ZW4gdmlydHVhbCBhdXRoZW50aWNhdG9yIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisg
ICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9y
Q3JlZGVudGlhbCIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGEgY3JlZGVu
dGlhbCBmcm9tIGEgdmlydHVhbCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dz
aW5nIGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0Nv
bnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5n
IGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklk
IiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRp
Y2F0b3IgaWQgdG8gZmV0Y2ggYWxsIGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAg
ICAgeyAibmFtZSI6ICJjcmVkZW50aWFsSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRp
b24iOiAiVGhlIGNyZWRlbnRpYWxJZCBvZiB0aGUgY3JlZGVudGlhbCB0byByZW1vdmUgZnJvbSB0
aGUgdmlydHVhbCBhdXRoZW50aWNhdG9yIn0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAg
ICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAicmVtb3ZlQWxsVmlydHVhbEF1dGhlbnRpY2F0
b3JDcmVkZW50aWFscyIsCisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiUmVtb3ZlIGFsbCBj
cmVkZW50aWFscyBmcm9tIGEgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdGlvciBmb3IgdGhlIHNw
ZWNpZmllZCBicm93c2luZyBjb250ZXh0IiwKKyAgICAgICAgICAgICJwYXJhbWV0ZXJzIjogWwor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgIiRyZWYi
OiAiQnJvd3NpbmdDb250ZXh0SGFuZGxlIiwgImRlc2NyaXB0aW9uIjogIlRoZSBoYW5kbGUgZm9y
IHRoZSBicm93c2luZyBjb250ZXh0LiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImF1
dGhlbnRpY2F0b3JJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJUaGUgdmly
dHVhbCBhdXRoZW50aWNhdG9yIGlkIHRvIGZldGNoIGFsbCBjcmVkZW50aWFscyBmb3IuIiB9Cisg
ICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
InNldFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkIiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJzZXQgaXNVc2VyVmVyaWZpZWQgcHJvcGVydHkgZm9yIGEgZ2l2ZW4gdmlydHVh
bCBhdXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQiLAorICAg
ICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVz
Y3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwgInR5cGUiOiAic3RyaW5n
IiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgaWQgdG8gZmV0Y2gg
YWxsIGNyZWRlbnRpYWxzIGZvci4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJpc1Vz
ZXJWZXJpZmllZCIsICJ0eXBlIjogImJvb2xlYW4iLCAiZGVzY3JpcHRpb24iOiAiVGhlIGlzVXNl
clZlcmlmaWVkIHZhbHVlIHRvIHNldCBvbiB0aGUgZ2l2ZW4gdmlydHVhbCBhdXRoZW50aWNhdG9y
In0KKyAgICAgICAgICAgIF0KICAgICAgICAgfQogICAgIF0sCiAgICAgImV2ZW50cyI6IFsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlv
blNlc3Npb24uY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKaW5kZXggODdmNDQzZmEyODUxMjU2NTljNzY5ZWM2NjlhOTk0Mzgy
YjVmNWExMC4uNzM3ZGU4OWY5NTA5YjEwOTY1NmM4YmFlNDQ2MDFkMzkwMjlhNTA5ZiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vz
c2lvbi5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRv
bWF0aW9uU2Vzc2lvbi5jcHAKQEAgLTUzLDYgKzUzLDExIEBACiAjaW5jbHVkZSA8d3RmL1VVSUQu
aD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZS5oPgogCisjaWYgRU5BQkxF
KFdFQl9BVVRITikKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCIKKyNp
bmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KKyNlbmRpZiAvLyBFTkFC
TEUoV0VCX0FVVEhOKQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogdXNpbmcgbmFtZXNwYWNlIElu
c3BlY3RvcjsKQEAgLTE1MzAsNiArMTUzNSwxMDcgQEAgSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJy
b3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0U2Vzc2lvblBlcm1pc3MK
ICAgICByZXR1cm4geyB9OwogfQogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKK3N0YXRpYyBXZWJD
b3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHRvQXV0aGVudGljYXRvclRyYW5zcG9ydChJbnNw
ZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0IHRyYW5z
cG9ydCkKK3sKKyAgICBzd2l0Y2ggKHRyYW5zcG9ydCkgeworICAgIGNhc2UgSW5zcGVjdG9yOjpQ
cm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6VXNiOgorICAgICAg
ICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6VXNiOworICAgIGNhc2Ug
SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6
TmZjOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6TmZj
OworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGljYXRv
clRyYW5zcG9ydDo6QmxlOgorICAgICAgICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRy
YW5zcG9ydDo6QmxlOworICAgIGNhc2UgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6
QXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWw6CisgICAgICAgIHJldHVybiBXZWJDb3Jl
OjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDsKKyAgICBkZWZhdWx0OgorICAgICAg
ICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dGhlbnRp
Y2F0b3JUcmFuc3BvcnQ6OkludGVybmFsOworICAgIH0KK30KKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVVEhOKQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPFN0cmluZyAvKiBh
dXRoZW50aWNhdG9ySWQgKi8+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjphZGRWaXJ0dWFsQXV0aGVu
dGljYXRvcihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgUmVmPEpTT046Ok9i
amVjdD4mJiBhdXRoZW50aWNhdG9yKQoreworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisgICAgV2Vi
UGFnZVByb3h5KiBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGJyb3dzaW5nQ29udGV4dEhh
bmRsZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKyAgICBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIm
IGF1dGhlbnRpY2F0b3JNYW5hZ2VyID0gcGFnZS0+d2Vic2l0ZURhdGFTdG9yZSgpLnZpcnR1YWxB
dXRoZW50aWNhdG9yTWFuYWdlcigpOworICAgIGF1dG8gcHJvdG9jb2wgPSBhdXRoZW50aWNhdG9y
LT5nZXRTdHJpbmcoInByb3RvY29sIl9zKTsKKyAgICBpZiAoIXByb3RvY29sKQorICAgICAgICBT
WU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0
ZXIsICJUaGUgcGFyYW1ldGVyICdwcm90b2NvbCcgaXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOwor
ICAgIGF1dG8gdHJhbnNwb3J0ID0gYXV0aGVudGljYXRvci0+Z2V0U3RyaW5nKCJ0cmFuc3BvcnQi
X3MpOworICAgIGlmICghdHJhbnNwb3J0KQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJ
TkVEX0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICd0
cmFuc3BvcnQnIGlzIG1pc3Npbmcgb3IgaW52YWxpZC4iKTsKKyAgICBhdXRvIHBhcnNlZFRyYW5z
cG9ydCA9IEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb25IZWxwZXJzOjpwYXJzZUVudW1W
YWx1ZUZyb21TdHJpbmc8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QXV0aGVudGlj
YXRvclRyYW5zcG9ydD4odHJhbnNwb3J0KTsKKyAgICBpZiAoIXBhcnNlZFRyYW5zcG9ydCkKKyAg
ICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlk
UGFyYW1ldGVyLCAiVGhlIHBhcmFtZXRlciAndHJhbnNwb3J0JyBoYXMgYW4gdW5rbm93biB2YWx1
ZS4iKTsKKyAgICBhdXRvIGhhc1Jlc2lkZW50S2V5ID0gYXV0aGVudGljYXRvci0+Z2V0Qm9vbGVh
bigiaGFzUmVzaWRlbnRLZXkiX3MpOworICAgIGlmICghaGFzUmVzaWRlbnRLZXkpCisgICAgICAg
IFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFt
ZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ2hhc1Jlc2lkZW50S2V5JyBpcyBtaXNzaW5nIG9yIGludmFs
aWQuIik7CisgICAgYXV0byBoYXNVc2VyVmVyaWZpY2F0aW9uID0gYXV0aGVudGljYXRvci0+Z2V0
Qm9vbGVhbigiaGFzVXNlclZlcmlmaWNhdGlvbiJfcyk7CisgICAgaWYgKCFoYXNVc2VyVmVyaWZp
Y2F0aW9uKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRB
SUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICdoYXNVc2VyVmVyaWZpY2F0aW9u
JyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisgICAgYXV0byBpc1VzZXJDb25zZW50aW5nID0g
YXV0aGVudGljYXRvci0+Z2V0Qm9vbGVhbigiaXNVc2VyQ29uc2VudGluZyJfcyk7CisgICAgaWYg
KCFpc1VzZXJDb25zZW50aW5nKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VS
Uk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICdpc1VzZXJD
b25zZW50aW5nJyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7CisgICAgYXV0byBpc1VzZXJWZXJp
ZmllZCA9IGF1dGhlbnRpY2F0b3ItPmdldEJvb2xlYW4oImlzVXNlclZlcmlmaWVkIl9zKTsKKyAg
ICBpZiAoIWlzVXNlclZlcmlmaWVkKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVE
X0VSUk9SX0FORF9ERVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICdpc1Vz
ZXJWZXJpZmllZCcgaXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOworCisgICAgcmV0dXJuIGF1dGhl
bnRpY2F0b3JNYW5hZ2VyLmNyZWF0ZUF1dGhlbnRpY2F0b3IoeworICAgICAgICAucHJvdG9jb2wg
PSBwcm90b2NvbCwKKyAgICAgICAgLnRyYW5zcG9ydCA9IHRvQXV0aGVudGljYXRvclRyYW5zcG9y
dChwYXJzZWRUcmFuc3BvcnQudmFsdWUoKSksCisgICAgICAgIC5oYXNSZXNpZGVudEtleSA9ICpo
YXNSZXNpZGVudEtleSwKKyAgICAgICAgLmhhc1VzZXJWZXJpZmljYXRpb24gPSAqaGFzVXNlclZl
cmlmaWNhdGlvbiwKKyAgICAgICAgLmlzVXNlckNvbnNlbnRpbmcgPSAqaXNVc2VyQ29uc2VudGlu
ZywKKyAgICAgICAgLmlzVXNlclZlcmlmaWVkID0gKmlzVXNlclZlcmlmaWVkLAorICAgIH0pOwor
I2Vsc2UKKyAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE5v
dEltcGxlbWVudGVkLCAiVGhpcyBtZXRob2QgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKKyNl
bmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQorfQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJv
clN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVWaXJ0dWFsQXV0aGVu
dGljYXRvcihjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5n
JiBhdXRoZW50aWNhdG9ySWQpCit7CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICBXZWJQYWdl
UHJveHkqIHBhZ2UgPSB3ZWJQYWdlUHJveHlGb3JIYW5kbGUoYnJvd3NpbmdDb250ZXh0SGFuZGxl
KTsKKyAgICBpZiAoIXBhZ2UpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJS
T1IoV2luZG93Tm90Rm91bmQpOworICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlciYgYXV0
aGVudGljYXRvck1hbmFnZXIgPSBwYWdlLT53ZWJzaXRlRGF0YVN0b3JlKCkudmlydHVhbEF1dGhl
bnRpY2F0b3JNYW5hZ2VyKCk7CisgICAgaWYgKCFhdXRoZW50aWNhdG9yTWFuYWdlci5yZW1vdmVB
dXRoZW50aWNhdG9yKGF1dGhlbnRpY2F0b3JJZCkpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIk5vIHN1Y2ggYXV0
aGVudGljYXRvciBleGlzdHMuIik7CisgICAgcmV0dXJuIHsgfTsKKyNlbHNlCisgICAgU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRo
aXMgbWV0aG9kIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7CisjZW5kaWYgLy8gRU5BQkxFKFdF
Ql9BVVRITikKK30KKworSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBX
ZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNv
bnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRp
Y2F0b3JJZCwgUmVmPEpTT046Ok9iamVjdD4mJiBjcmVkZW50aWFsKQoreworICAgIFNZTkNfRkFJ
TF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJUaGlz
IG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlByb3Rv
Y29sOjpFcnJvclN0cmluZ09yPFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkF1dG9tYXRpb246OlZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbD4+IC8qIGNyZWRlbnRp
YWxzICovPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6Z2V0VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVk
ZW50aWFscyhjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5n
JiBhdXRoZW50aWNhdG9ySWQpCit7CisgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJP
Ul9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9kIGlzIG5vdCB5ZXQgaW1w
bGVtZW50ZWQuIik7Cit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9p
ZD4gV2ViQXV0b21hdGlvblNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVu
dGlhbChjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBh
dXRoZW50aWNhdG9ySWQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbElkKQoreworICAgIFNZTkNf
RkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJU
aGlzIG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlBy
b3RvY29sOjpFcnJvclN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVB
bGxWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdD
b250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCkKK3sKKyAgICBTWU5D
X0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE5vdEltcGxlbWVudGVkLCAi
VGhpcyBtZXRob2QgaXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKK30KKworSW5zcGVjdG9yOjpQ
cm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0Vmly
dHVhbEF1dGhlbnRpY2F0b3JVc2VyVmVyaWZpZWQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRl
eHRIYW5kbGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBib29sIGlzVXNlclZlcmlm
aWVkKQoreworICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMo
Tm90SW1wbGVtZW50ZWQsICJUaGlzIG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOwor
fQorCiBib29sIFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzaG91bGRBbGxvd0dldFVzZXJNZWRpYUZv
clBhZ2UoY29uc3QgV2ViUGFnZVByb3h5JikgY29uc3QKIHsKICAgICByZXR1cm4gbV9wZXJtaXNz
aW9uRm9yR2V0VXNlck1lZGlhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGY3NWRjYWQ1ZTM1ODU0
OTM3ZWMwYmNkZTdkMmQ0NzI4ZmIwYjYyMjEuLjEyYjdmMTkzMjJlYTc3ZjBiNjFhYTRmMDAzMTYy
YzMyZWI5NzE5MjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRp
b24vV2ViQXV0b21hdGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
dXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTIwNCw2ICsyMDQsMTQgQEAgcHVi
bGljOgogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8UmVmPEpTT046OkFy
cmF5T2Y8SW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6U2Vzc2lvblBlcm1pc3Npb25E
YXRhPj4+IGdldFNlc3Npb25QZXJtaXNzaW9ucygpOwogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6
OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0U2Vzc2lvblBlcm1pc3Npb25zKFJlZjxKU09OOjpBcnJh
eT4mJik7CiAKKyAgICBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPFN0cmluZyAv
KiBhdXRoZW50aWNhdG9ySWQgKi8+IGFkZFZpcnR1YWxBdXRoZW50aWNhdG9yKGNvbnN0IFN0cmlu
ZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZWY8SlNPTjo6T2JqZWN0PiYmIGF1dGhlbnRpY2F0
b3IpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gcmVtb3Zl
VmlydHVhbEF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUs
IGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkKTsKKyAgICBJbnNwZWN0b3I6OlByb3RvY29s
OjpFcnJvclN0cmluZ09yPHZvaWQ+IGFkZFZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbChj
b25zdCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50
aWNhdG9ySWQsIFJlZjxKU09OOjpPYmplY3Q+JiYgY3JlZGVudGlhbCk7CisgICAgSW5zcGVjdG9y
OjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjxSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlBy
b3RvY29sOjpBdXRvbWF0aW9uOjpWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWw+PiAvKiBj
cmVkZW50aWFscyAqLz4gZ2V0VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyhjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9y
SWQpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gcmVtb3Zl
VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250
ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCwgY29uc3QgU3RyaW5nJiBj
cmVkZW50aWFsSWQpOworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9p
ZD4gcmVtb3ZlQWxsVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyhjb25zdCBTdHJpbmcm
IGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9ySWQpOwor
ICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0VmlydHVhbEF1
dGhlbnRpY2F0b3JVc2VyVmVyaWZpZWQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5k
bGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBib29sIGlzVXNlclZlcmlmaWVkKTsK
KwogI2lmIFBMQVRGT1JNKE1BQykKICAgICB2b2lkIGluc3BlY3RCcm93c2luZ0NvbnRleHQoY29u
c3QgSW5zcGVjdG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0SGFuZGxl
Jiwgc3RkOjpvcHRpb25hbDxib29sPiYmIGVuYWJsZUF1dG9DYXB0dXJpbmcsIFJlZjxJbnNwZWN0
QnJvd3NpbmdDb250ZXh0Q2FsbGJhY2s+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRv
ck1hbmFnZXIuaAppbmRleCBmNzFlMmZkZGU1NTFlMWMzOGRhYjEwZTMzM2IyN2M0YWI3NWExMTQy
Li44NjRiMzM3OGIzNDc2NjVlZTVmNzk0OGE3ZmQ0ZDM2NDE2NTUxOWU0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFu
YWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1
dGhlbnRpY2F0b3JNYW5hZ2VyLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQg
Y2FuY2VsKCk7IC8vIENhbGxlZCBmcm9tIHRoZSBwcmVzZW50ZXIuCiAKICAgICB2aXJ0dWFsIGJv
b2wgaXNNb2NrKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNW
aXJ0dWFsKCkgY29uc3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgZW5hYmxlTW9kZXJu
V2ViQXV0aGVudGljYXRpb24oKTsKICAgICB2b2lkIGVuYWJsZU5hdGl2ZVN1cHBvcnQoKTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1
YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29u
ZmlndXJhdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZjYzI4YTg1NWNkOWViYjdiZjM1NjQzODYxZmRkZGVj
NWY5NTUyM2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
CkBAIC0wLDAgKzEsNDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291
cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBh
cmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBh
cmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlv
bnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBp
biBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBu
b3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWlt
ZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJv
dmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFO
RCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBM
SUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJM
RShXRUJfQVVUSE4pCisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQu
aD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7
CisKK3N0cnVjdCBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24geworICAgIFdURl9N
QUtFX1NUUlVDVF9GQVNUX0FMTE9DQVRFRDsKKyAgICAvLyBGSVhNRTogdXNlIFByb3RvY29sVmVy
c2lvbiBoZXJlCisgICAgU3RyaW5nIHByb3RvY29sOworICAgIFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JUcmFuc3BvcnQgdHJhbnNwb3J0OworICAgIGJvb2wgaGFzUmVzaWRlbnRLZXk7CisgICAgYm9v
bCBoYXNVc2VyVmVyaWZpY2F0aW9uOworICAgIGJvb2wgaXNVc2VyQ29uc2VudGluZzsKKyAgICBi
b29sIGlzVXNlclZlcmlmaWVkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIu
Y3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMmRiYmVmMGIxMjI4
YWE3NWEzOGY3NGRhZTk0NzBmY2Q4NjYzYmYKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNh
dG9yTWFuYWdlci5jcHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAy
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24g
YW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNv
ZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVk
aXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5
cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xs
b3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVy
IG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBT
T0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBg
QVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFS
RSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklC
VVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdP
T0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1Ig
VE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBB
TlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJj
b25maWcuaCIKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCIKKworI2lm
IEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlIDxWaXJ0dWFsU2VydmljZS5oPgorI2luY2x1
ZGUgPHd0Zi9VVUlELmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXI6OlZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcigpCisgICAgOiBBdXRoZW50
aWNhdG9yTWFuYWdlcigpCit7Cit9CisKK1N0cmluZyBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXI6OmNyZWF0ZUF1dGhlbnRpY2F0b3IoVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
IGNvbmZpZykKK3sKKyAgICBpZiAoY29uZmlnLnRyYW5zcG9ydCAhPSBXZWJDb3JlOjpBdXRoZW50
aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCkKKyAgICAgICAgVU5JTVBMRU1FTlRFRCgpOworICAg
IGF1dG8gaWQgPSBjcmVhdGVDYW5vbmljYWxVVUlEU3RyaW5nKCk7CisgICAgbV92aXJ0dWFsQXV0
aGVudGljYXRvcnMuc2V0KGlkLCBtYWtlVW5pcXVlUmVmPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29u
ZmlndXJhdGlvbj4oY29uZmlnKSk7CisKKyAgICByZXR1cm4gaWQ7Cit9CisKK2Jvb2wgVmlydHVh
bEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpyZW1vdmVBdXRoZW50aWNhdG9yKGNvbnN0IFN0cmluZyYg
aWQpCit7CisgICAgcmV0dXJuIG1fdmlydHVhbEF1dGhlbnRpY2F0b3JzLnJlbW92ZShpZCk7Cit9
CisKK1VuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4gVmlydHVhbEF1dGhl
bnRpY2F0b3JNYW5hZ2VyOjpjcmVhdGVTZXJ2aWNlKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFu
c3BvcnQgdHJhbnNwb3J0LCBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXIm
IG9ic2VydmVyKSBjb25zdAoreworICAgIFZlY3RvcjxWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZp
Z3VyYXRpb24+IGNvbmZpZ3M7CisgICAgZm9yIChhdXRvJiBjb25maWcgOiBtX3ZpcnR1YWxBdXRo
ZW50aWNhdG9ycy52YWx1ZXMoKSkgeworICAgICAgICBpZiAoY29uZmlnLmdldCgpLnRyYW5zcG9y
dCA9PSB0cmFuc3BvcnQpCisgICAgICAgICAgICBjb25maWdzLmFwcGVuZChjb25maWcuZ2V0KCkp
OworICAgIH0KKyAgICByZXR1cm4gVmlydHVhbFNlcnZpY2U6OmNyZWF0ZVZpcnR1YWwodHJhbnNw
b3J0LCBvYnNlcnZlciwgY29uZmlncyk7Cit9CisKK30gLy8gbmFtZXNwYWNlIFdlYktpdAorCisj
ZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5h
Z2VyLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFs
L1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmE5NTQ3Yzk3ZGZhNTU0
OWM3ZWQ1YjRiZDQ5MDI2MzU1OTQ0ZTdlOTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNh
dG9yTWFuYWdlci5oCkBAIC0wLDAgKzEsNTIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTgg
QXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFu
ZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9k
aWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25k
aXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2Rl
IG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlz
dHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBt
YXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09G
VFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFT
IElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJD
SEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUg
RElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVU
T1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBT
UEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElO
RywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNT
CisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJ
QUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YK
KyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbmNsdWRlICJBdXRoZW50aWNhdG9yTWFuYWdl
ci5oIgorI2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oIgorCitu
YW1lc3BhY2UgV2ViS2l0IHsKKworY2xhc3MgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyIGZp
bmFsIDogcHVibGljIEF1dGhlbnRpY2F0b3JNYW5hZ2VyIHsKK3B1YmxpYzoKKyAgICBleHBsaWNp
dCBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIoKTsKKworICAgIFN0cmluZyBjcmVhdGVBdXRo
ZW50aWNhdG9yKFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiAvKmNvbmZpZy8qLyk7
CisgICAgYm9vbCByZW1vdmVBdXRoZW50aWNhdG9yKGNvbnN0IFN0cmluZyYgLyphdXRoZW50aWNh
dG9ySWQqLyk7CisKKyAgICBib29sIGlzVmlydHVhbCgpIGNvbnN0IGZpbmFsIHsgcmV0dXJuIHRy
dWU7IH0KKworcHJpdmF0ZToKKyAgICBVbmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNl
cnZpY2U+IGNyZWF0ZVNlcnZpY2UoV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCwgQXV0
aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyJikgY29uc3QgZmluYWw7CisKKyAg
ICBIYXNoTWFwPFN0cmluZywgVW5pcXVlUmVmPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJh
dGlvbj4+IG1fdmlydHVhbEF1dGhlbnRpY2F0b3JzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2Vi
S2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsTG9jYWxDb25u
ZWN0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0
dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNDVlMTMxMTZjYTI1M2Qz
NmViNTVmZWMyOTY3ODViMWFlMDlmODY1Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsTG9jYWxDb25uZWN0
aW9uLmgKQEAgLTAsMCArMSw1MSBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJ
bmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBp
biBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRp
b24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMK
KyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCBy
ZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29u
ZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlz
Y2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFs
cyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJ
UyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJwor
ICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAq
IEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaWYg
RU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkxvY2FsQ29ubmVjdGlvbi5oIgorI2luY2x1
ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oIgorCituYW1lc3BhY2UgV2Vi
S2l0IHsKK3N0cnVjdCBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb247CisKK2NsYXNz
IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24gZmluYWwgOiBwdWJsaWMgTG9jYWxDb25uZWN0aW9uIHsK
K3B1YmxpYzoKKyAgICBleHBsaWNpdCBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uKGNvbnN0IFZpcnR1
YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiYpOworCitwcml2YXRlOgorICAgIHZvaWQgdmVy
aWZ5VXNlcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSwgU2VjQWNjZXNz
Q29udHJvbFJlZiwgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJlcXVpcmVtZW50LCAgVXNlclZl
cmlmaWNhdGlvbkNhbGxiYWNrJiYpIGZpbmFsOworICAgIHZvaWQgdmVyaWZ5VXNlcihTZWNBY2Nl
c3NDb250cm9sUmVmLCBMQUNvbnRleHQgKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVc2VyVmVy
aWZpY2F0aW9uKT4mJikgZmluYWw7CisgICAgdm9pZCBnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYs
IE5TRGF0YSAqYXV0aERhdGEsIE5TRGF0YSAqaGFzaCwgQXR0ZXN0YXRpb25DYWxsYmFjayYmKSBj
b25zdCBmaW5hbDsKKyAgICB2b2lkIGZpbHRlclJlc3BvbnNlcyhWZWN0b3I8UmVmPFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4+JikgY29uc3QgZmluYWw7CisKKyAgICBW
aXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24gbV9jb25maWd1cmF0aW9uOworfTsKKwor
fSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVh
bC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLm1tCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4NmQ0ZDFiMDk2ODNmZmNkMTIzOTA5MTEzNTY0YTk0NzZmNmJlMWMKLS0tIC9kZXYvbnVs
bAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFs
L1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0KQEAgLTAsMCArMSw5MSBAQAorLyoKKyAqIENvcHly
aWdodCAoQykgMjAxOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMg
b2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24g
YW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09O
VFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisg
KiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9S
IElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFN
QUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBT
VUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJ
QUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICog
QVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisK
KyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oIgor
CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2ltcG9ydCAiVmlydHVhbEF1dGhlbnRpY2F0b3JD
b25maWd1cmF0aW9uLmgiCisjaW1wb3J0IDxKYXZhU2NyaXB0Q29yZS9BcnJheUJ1ZmZlci5oPgor
I2ltcG9ydCA8U2VjdXJpdHkvU2VjSXRlbS5oPgorI2ltcG9ydCA8V2ViQ29yZS9BdXRoZW50aWNh
dG9yQXNzZXJ0aW9uUmVzcG9uc2UuaD4KKyNpbXBvcnQgPFdlYkNvcmUvRXhjZXB0aW9uRGF0YS5o
PgorI2ltcG9ydCA8d3RmL1JlZi5oPgorI2ltcG9ydCA8d3RmL1J1bkxvb3AuaD4KKyNpbXBvcnQg
PHd0Zi9zcGkvY29jb2EvU2VjdXJpdHlTUEkuaD4KKyNpbXBvcnQgPHd0Zi90ZXh0L0Jhc2U2NC5o
PgorI2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKKyNpbXBvcnQgIkxvY2FsQXV0aGVu
dGljYXRpb25Tb2Z0TGluay5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKK3VzaW5nIG5hbWVzcGFj
ZSBXZWJDb3JlOworCitWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjpWaXJ0dWFsTG9jYWxDb25uZWN0
aW9uKGNvbnN0IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiYgY29uZmlndXJhdGlv
bikKKyAgICA6IG1fY29uZmlndXJhdGlvbihjb25maWd1cmF0aW9uKQoreworfQorCit2b2lkIFZp
cnR1YWxMb2NhbENvbm5lY3Rpb246OnZlcmlmeVVzZXIoY29uc3QgU3RyaW5nJiwgQ2xpZW50RGF0
YVR5cGUsIFNlY0FjY2Vzc0NvbnRyb2xSZWYsIFdlYkNvcmU6OlVzZXJWZXJpZmljYXRpb25SZXF1
aXJlbWVudCwgVXNlclZlcmlmaWNhdGlvbkNhbGxiYWNrJiYgY2FsbGJhY2spCit7CisgICAgLy8g
TW9jayBhc3luYyBvcGVyYXRpb25zLgorICAgIFJ1bkxvb3A6Om1haW4oKS5kaXNwYXRjaChbY29u
ZmlndXJhdGlvbiA9IG1fY29uZmlndXJhdGlvbiwgY2FsbGJhY2sgPSBXVEZNb3ZlKGNhbGxiYWNr
KV0oKSBtdXRhYmxlIHsKKyAgICAgICAgQVNTRVJUKGNvbmZpZ3VyYXRpb24udHJhbnNwb3J0ID09
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKKworICAgICAgICBVc2VyVmVyaWZp
Y2F0aW9uIHVzZXJWZXJpZmljYXRpb24gPSBjb25maWd1cmF0aW9uLmlzVXNlclZlcmlmaWVkID8g
VXNlclZlcmlmaWNhdGlvbjo6WWVzIDogVXNlclZlcmlmaWNhdGlvbjo6Tm87CisKKyAgICAgICAg
Y2FsbGJhY2sodXNlclZlcmlmaWNhdGlvbiwgYWRvcHROUyhbYWxsb2NMQUNvbnRleHRJbnN0YW5j
ZSgpIGluaXRdKS5nZXQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQgVmlydHVhbExvY2FsQ29ubmVj
dGlvbjo6dmVyaWZ5VXNlcihTZWNBY2Nlc3NDb250cm9sUmVmLCBMQUNvbnRleHQgKiwgQ29tcGxl
dGlvbkhhbmRsZXI8dm9pZChVc2VyVmVyaWZpY2F0aW9uKT4mJiBjYWxsYmFjaykKK3sKKyAgICAv
LyBNb2NrIGFzeW5jIG9wZXJhdGlvbnMuCisgICAgUnVuTG9vcDo6bWFpbigpLmRpc3BhdGNoKFtj
b25maWd1cmF0aW9uID0gbV9jb25maWd1cmF0aW9uLCBjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJh
Y2spXSgpIG11dGFibGUgeworICAgICAgICBBU1NFUlQoY29uZmlndXJhdGlvbi50cmFuc3BvcnQg
PT0gQXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJuYWwpOworCisgICAgICAgIFVzZXJWZXJp
ZmljYXRpb24gdXNlclZlcmlmaWNhdGlvbiA9IGNvbmZpZ3VyYXRpb24uaXNVc2VyVmVyaWZpZWQg
PyBVc2VyVmVyaWZpY2F0aW9uOjpZZXMgOiBVc2VyVmVyaWZpY2F0aW9uOjpObzsKKworICAgICAg
ICBjYWxsYmFjayh1c2VyVmVyaWZpY2F0aW9uKTsKKyAgICB9KTsKK30KKwordm9pZCBWaXJ0dWFs
TG9jYWxDb25uZWN0aW9uOjpnZXRBdHRlc3RhdGlvbihTZWNLZXlSZWYsIE5TRGF0YSAqLCBOU0Rh
dGEgKiwgQXR0ZXN0YXRpb25DYWxsYmFjayYmIGNhbGxiYWNrKSBjb25zdAoreworICAgIC8vIE1v
Y2sgYXN5bmMgb3BlcmF0aW9ucy4KKyAgICBSdW5Mb29wOjptYWluKCkuZGlzcGF0Y2goW2NvbmZp
Z3VyYXRpb24gPSBtX2NvbmZpZ3VyYXRpb24sIGNhbGxiYWNrID0gV1RGTW92ZShjYWxsYmFjayld
KCkgbXV0YWJsZSB7CisgICAgICAgIEFTU0VSVChjb25maWd1cmF0aW9uLnRyYW5zcG9ydCA9PSBB
dXRoZW50aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbCk7CisgICAgICAgIGNhbGxiYWNrKE5VTEws
IFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpAIldlYkF1dGhlbnRpY2F0aW9uIiBjb2RlOi0xIHVz
ZXJJbmZvOkB7IE5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXk6IEAiVGhlIG9wZXJhdGlvbiBjb3Vs
ZG4ndCBjb21wbGV0ZS4iIH1dKTsKKyAgICB9KTsKK30KKwordm9pZCBWaXJ0dWFsTG9jYWxDb25u
ZWN0aW9uOjpmaWx0ZXJSZXNwb25zZXMoVmVjdG9yPFJlZjxBdXRoZW50aWNhdG9yQXNzZXJ0aW9u
UmVzcG9uc2U+PiYgcmVzcG9uc2VzKSBjb25zdAoreworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJL
aXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxTZXJ2aWNlLmgg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1
YWxTZXJ2aWNlLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzRhMDhlMGQ4NDdkZWNiMDA1NTcyMDIwNTlhYzg2MGJh
ODYwMDljZQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UuaApAQCAtMCwwICsxLDQ4IEBACisv
KgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
KyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1z
LCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRl
ZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlz
dHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0
CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCBy
ZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2Yg
Y29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4g
QU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1Q
TElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJ
TVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBB
UlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQ
UExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNU
LCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VR
VUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1F
TlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRB
LCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNF
RCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNU
LCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhF
UldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZU
V0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1B
R0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5j
bHVkZSAiQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2UuaCIKKyNpbmNsdWRlICJWaXJ0dWFs
QXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNwYWNlIFdlYktpdCB7CisKK2Ns
YXNzIFZpcnR1YWxTZXJ2aWNlIDogcHVibGljIEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNl
IHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBWaXJ0dWFsU2VydmljZShPYnNlcnZlciYsIFZlY3Rv
cjxWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24+KTsKKworICAgIHN0YXRpYyBVbmlx
dWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IGNyZWF0ZVZpcnR1YWwoV2ViQ29y
ZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydCwgT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8VmlydHVh
bEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBjb25maWdzKTsKK3ByaXZhdGU6CisgICAgdm9p
ZCBzdGFydERpc2NvdmVyeUludGVybmFsKCkgZmluYWw7CisKKyAgICBWZWN0b3I8VmlydHVhbEF1
dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb25zOworfTsKKworfSAvLyBu
YW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0
dWFsU2VydmljZS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9u
L1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDFhYTQ0YjY4NDdhYjQzNjQ4
MGEwNDYxZDNmZjY2YmJhZjYxNzg4YgotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UubW0KQEAg
LTAsMCArMSw2NCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBw
ZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBt
ZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhl
IGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBh
bmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJp
bmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRl
ZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURF
RCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFO
WSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQg
RklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBO
TyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFS
WSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVS
IElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5F
R0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAi
VmlydHVhbFNlcnZpY2UuaCIKKworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbXBvcnQgIkxv
Y2FsQXV0aGVudGljYXRvci5oIgorI2ltcG9ydCAiVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oIgor
I2ltcG9ydCA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitW
aXJ0dWFsU2VydmljZTo6VmlydHVhbFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyLCBWZWN0b3I8
VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uPiBjb25maWd1cmF0aW9ucykKKyAgICA6
IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnRTZXJ2aWNlKG9ic2VydmVyKSwgbV9jb25maWd1cmF0aW9u
cyhjb25maWd1cmF0aW9ucykKK3sKK30KKworVW5pcXVlUmVmPEF1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlPiBWaXJ0dWFsU2VydmljZTo6Y3JlYXRlVmlydHVhbChXZWJDb3JlOjpBdXRoZW50
aWNhdG9yVHJhbnNwb3J0IHRyYW5zcG9ydCwgT2JzZXJ2ZXImIG9ic2VydmVyLCAgY29uc3QgVmVj
dG9yPFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbj4gY29uZmlncykKK3sKKyAgICBy
ZXR1cm4gbWFrZVVuaXF1ZVJlZjxWaXJ0dWFsU2VydmljZT4ob2JzZXJ2ZXIsIGNvbmZpZ3MpOwor
fQorCit2b2lkIFZpcnR1YWxTZXJ2aWNlOjpzdGFydERpc2NvdmVyeUludGVybmFsKCkKK3sKKyAg
ICBpZiAoIW9ic2VydmVyKCkpCisgICAgICAgIHJldHVybjsKKyAgICBmb3IgKGF1dG8mIGNvbmZp
ZyA6IG1fY29uZmlndXJhdGlvbnMpIHsKKyAgICAgICAgc3dpdGNoIChjb25maWcudHJhbnNwb3J0
KSB7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJu
YWw6CisgICAgICAgICAgICBvYnNlcnZlcigpLT5hdXRoZW50aWNhdG9yQWRkZWQoTG9jYWxBdXRo
ZW50aWNhdG9yOjpjcmVhdGUobWFrZVVuaXF1ZVJlZjxWaXJ0dWFsTG9jYWxDb25uZWN0aW9uPihj
b25maWcpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBVTklNUExFTUVOVEVEKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKaW5kZXggM2JkNDhiYjVmMzBlOTNlY2Y4MGQzZjc4M2FkYjJiODM5NzQ5MGIyYS4uYmMyMjM3
OWJhNzY2M2FjYTZiMmQxMTc2NmMxOTU4MDNhN2UwMzA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAg
LTgyLDYgKzgyLDEwIEBACiAjaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNl
bmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXIuaCIKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogc3RhdGljIGJvb2wgYWxsb3dzV2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3Jp
Z2luczsKQEAgLTE5NDUsNiArMTk0OSwxMyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dAogICAg
IH0KICAgICBzdGF0aWNfY2FzdDxNb2NrQXV0aGVudGljYXRvck1hbmFnZXIqPigmbV9hdXRoZW50
aWNhdG9yTWFuYWdlciktPnNldFRlc3RDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlv
bikpOwogfQorCitWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXImIFdlYnNpdGVEYXRhU3RvcmU6
OnZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcigpCit7CisgICAgaWYgKCFtX2F1dGhlbnRpY2F0
b3JNYW5hZ2VyLT5pc1ZpcnR1YWwoKSkKKyAgICAgICAgbV9hdXRoZW50aWNhdG9yTWFuYWdlciA9
IG1ha2VVbmlxdWVSZWY8VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyPigpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXImPihtX2F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmdldCgpKTsKK30KICNlbmRpZgogCiBBUEk6OkhUVFBDb29raWVTdG9yZSYgV2Vi
c2l0ZURhdGFTdG9yZTo6Y29va2llU3RvcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDE1MDQ2YmU1YjVl
NDBmZjFiNzg1ZWM1NGNiNGI1ZTQxYzBiNWM3MGIuLjYxOTYyODBmNzZkYTEyMDI5OGUyYjdhYjE2
NDA1ZDJmMGJhMjg5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTg3LDYgKzg3LDcgQEAgY2xhc3MgU2Vj
S2V5UHJveHlTdG9yZTsKIGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOwogY2xhc3MgTmV0
d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yOworY2xh
c3MgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xh
c3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CkBAIC0zMDcsNiArMzA4
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgQXV0aGVudGljYXRvck1h
bmFnZXImIGF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkgeyByZXR1cm4gbV9hdXRoZW50aWNhdG9yTWFu
YWdlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbihXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJiYpOworICAg
IFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlciYgdmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
KCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKCkgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzkwZTcx
MTQxMTk1ZDNlOTQ4ZTc4MzZhYzJkOGMwYzUyNTgyYzUyLi5iNWQ2N2FhODk3NDkwMWI1ZTViZmZj
NjRlM2M1NWEyZjQ1YmQ0ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNDksNiArMTA0OSwxMyBAQAogCQk1MUZEMThCNjE2NTFG
QkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZEMThCNDE2NTFGQkFEMDBEQkUxQ0UgLyog
TmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi87IH07CiAJCTUyNzJENEM5MUU3MzVGMDkwMEVCNDI5
MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MjcyRDRDNzFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9u
U3BhY2VOUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyOEMzN0MxMTk1Q0JCMUEwMEQ4QjlDQyAvKiBXS0JhY2tGb3J3YXJkTGlzdFByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBOUYyODEw
MTk1OEY0NzgwMDhDQUM3MiAvKiBXS0JhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkNEQzVDNDI3MzFEQTBE
MDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVCRDI3MzFEQTBDMDBB
M0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggKi87IH07CisJCTUy
Q0RDNUM1MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUJFMjczMURBMEMwMEEzRTNF
QiAvKiBWaXJ0dWFsU2VydmljZS5tbSAqLzsgfTsKKwkJNTJDREM1QzYyNzMxREEwRDAwQTNFM0VC
IC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVCRjI3MzFEQTBDMDBBM0UzRUIgLyogVmly
dHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNTJDREM1QzcyNzMxREEwRDAw
QTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUMwMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0
dWFsTG9jYWxDb25uZWN0aW9uLmggKi87IH07CisJCTUyQ0RDNUM4MjczMURBMEQwMEEzRTNFQiAv
KiBWaXJ0dWFsU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJDREM1QzEyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNlLmggKi87
IH07CisJCTUyQ0RDNUM5MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9u
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDREM1
QzIyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0gKi87IH07CisJ
CTUyQ0RDNUNBMjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUMz
MjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLzsgfTsK
IAkJNTJENUExQjAxQzU3NDk1QTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUEx
QUExQzU3NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovOyB9
OwogCQk1MkYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTJGMDYwREQxNjU0MzE3NTAwRjMyODFCIC8qIE5ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTMyMTU5NTUxREJB
RTcyOTAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1OTUwMURCQUU2RDcwMDU0QUEzQyAvKiBO
ZXR3b3JrU2Vzc2lvbkNvY29hLmggKi87IH07CkBAIC00MDY5LDYgKzQwNzYsMTMgQEAKIAkJNTFG
RDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzcxRTczNUYwOTAwRUI0MjkwIC8qIFdLUHJv
dGVjdGlvblNwYWNlTlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tQcm90
ZWN0aW9uU3BhY2VOUy5oOyBwYXRoID0gbWFjL1dLUHJvdGVjdGlvblNwYWNlTlMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzgxRTczNUYwOTAwRUI0MjkwIC8qIFdLUHJv
dGVjdGlvblNwYWNlTlMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS1Byb3RlY3Rpb25TcGFjZU5TLm1tOyBwYXRoID0gbWFjL1dLUHJvdGVjdGlvblNwYWNlTlMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUJEMjczMURBMEMwMEEzRTNF
QiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUJFMjczMURBMEMwMEEzRTNFQiAvKiBW
aXJ0dWFsU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZpcnR1YWxTZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkNEQzVC
RjI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpcnR1YWxBdXRoZW50aWNhdG9yTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUMwMjczMURBMEMw
MEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTJDREM1QzEyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpcnR1YWxTZXJ2aWNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUMyMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0
dWFsTG9jYWxDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTJDREM1QzMyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQUExQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQUIxQzU3NDk0RTAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUFDMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04NzQwLDYgKzg3NTQsMjAgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MkNEQzVCQzI3MzFEQTBDMDBBM0UzRUIgLyogVmly
dHVhbCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTJD
REM1QkQyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlv
bi5oICovLAorCQkJCTUyQ0RDNUJGMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXIuY3BwICovLAorCQkJCTUyQ0RDNUMzMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0
dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLywKKwkJCQk1MkNEQzVDMDI3MzFEQTBDMDBBM0Uz
RUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oICovLAorCQkJCTUyQ0RDNUMyMjczMURBMEMw
MEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLm1tICovLAorCQkJCTUyQ0RDNUMxMjcz
MURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5oICovLAorCQkJCTUyQ0RDNUJFMjczMURB
MEMwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gVmly
dHVhbDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTU1MDY0MDlDMjQwNzE1
QUEwMEFBRTA0NSAvKiBncmFwaGljcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC04OTM5LDYgKzg5NjcsNyBAQAogCQkJCTU3RENFRDlFMjE0OEY5RDEwMDE2
Qjg0NyAvKiBDb2NvYSAqLywKIAkJCQk1NzU5N0VCRjIxODE4NEIyMDAzN0Y5MjQgLyogZmlkbyAq
LywKIAkJCQk1N0RDRURCRDIxNEM5RkE5MDAxNkI4NDcgLyogTW9jayAqLywKKwkJCQk1MkNEQzVC
QzI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbCAqLywKIAkJCQk1N0RDRURBNDIxNDlFNjRBMDAx
NkI4NDcgLyogQXV0aGVudGljYXRvci5jcHAgKi8sCiAJCQkJNTdEQ0VEOEIyMTQ4NUJENzAwMTZC
ODQ3IC8qIEF1dGhlbnRpY2F0b3IuaCAqLywKIAkJCQk1N0RDRUQ4NTIxNDczNjNBMDAxNkI4NDcg
LyogQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovLApAQCAtMTIzMzUsNiArMTIzNjQsMTAgQEAK
IAkJCQkyRDgxOUJBMjE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxl
Y3Rvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDZDRDExOTE4OTA1OEE1MDBFNUE0
QTAgLyogVmlld1NuYXBzaG90U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2ODQwNTUzMThC
ODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MkNEQzVDNDI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0
b3JDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MkNEQzVDQTI3MzFEQTBEMDBB
M0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MkNEQzVDNzI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTJDREM1QzgyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2
aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjg0MDU0NDE4Qjg1QTYzMDAyMkMzOEIgLyogVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRENUE3Mjkx
RUJGMDhENTAwOUJBNTk3IC8qIFZpc2libGVXZWJQYWdlQ291bnRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE1NUVFMEQyNjczRjRGMDAwODVFNTlBIC8qIFZpc2lvbktpdFNQSS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNDM5MCw2ICsxNDQyMyw5IEBACiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2
NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDgxOUJBMTE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRy
eUNvbGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjg0MDU1
MjE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTJDREM1QzYyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1
YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MkNEQzVDOTI3
MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTUyQ0RDNUM1MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBNjAyMjRDMThDMTZCOUYwMEMzRThDOSAvKiBWaXNpdGVkTGlua1N0
b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEU3RDNDMThDMTUx
NDkwMDVBNzAyQSAvKiBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0RDRUQ3MDIxNDJFRTY4MDAxNkI4NDcgLyogV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>443257</attachid>
            <date>2021-11-03 17:03:37 -0700</date>
            <delta_ts>2021-11-04 10:40:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-232635-20211103170335.patch</filename>
            <type>text/plain</type>
            <size>53014</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1MjM1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDU0ZGI3MWQ5OWJjZDE1MjNh
MTZjNzM1ZjM3NWJhY2YzMDMxZGJkNjguLmM5ODgyMTA4YzIyZTg3YWQ5MGFjN2JhYjhkNTg3ZGVm
ZWJiNTIxMjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTYgQEAKKzIwMjEtMTEtMDMgIEpvaG4gUGFz
Y29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gSW1wbGVtZW50
IGFkZC9yZW1vdmVfdmlydHVhbF9hdXRoZW50aWNhdG9yIGZvciB0cmFuc3BvcnQ9aW50ZXJuYWwK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMjYzNQor
ICAgICAgICA8cmRhcjovL3Byb2JsZW0vODQ5NDIxNzM+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBjaGFuZ2UgaW1wbGVtZW50cyBtdWNoIG9m
IHRoZSBwbHVtYmluZyBuZWVkZWQgdG8gY2FsbCB0aGUgdmlydHVhbCBhdXRoZW50aWNhdG9yCisg
ICAgICAgIGNvbW1hbmRzIGZyb20gc2FmYXJpZHJpdmVyLiBUaGUgaWRlYSBpcyB0aGF0IHZpcnR1
YWwgYXV0aGVudGljYXRvcnMgYXJlIGFkZGVkIHZpYQorICAgICAgICB0aGUgYWRkX3ZpcnR1YWxf
YXV0aGVudGljYXRvciBjYWxsLCB3aGljaCByZXBsYWNlcyB0aGUgZGVmYXVsdCBBdXRoZW50aWNh
dG9yTWFuYWdlcgorICAgICAgICB3aXRoIGEgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyIHNp
bWlsYXIgdG8gaG93IHdlIGRvIGl0IGZvciBtb2Nrcy4gVGhlbiB0aGUKKyAgICAgICAgVmlydHVh
bFNlcnZpY2Ugd2lsbCBjcmVhdGUgdGhlIHZpcnR1YWwgY29ubmVjdGlvbnMgZm9yIGF1dGhlbnRp
Y2F0b3JzIGFzIG5lc3Nlc2FyeQorICAgICAgICB0byBtYWtlIHdlYmF1dGhuIGNhbGxzIHdpdGhp
biBXZWJEcml2ZXIgYmFzZWQgdGVzdHMuCisKKyAgICAgICAgVGVzdGVkIG1hbnVhbGx5IHZpYSBz
YWZhcmlkcml2ZXIuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9u
Lmpzb246CisgICAgICAgICogVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21hdGlvblNlc3Np
b24uY3BwOgorICAgICAgICAoV2ViS2l0Ojp0b0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQpOgorICAg
ICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6cmVtb3ZlVmlydHVhbEF1dGhlbnRp
Y2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6YWRkVmlydHVh
bEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlv
blNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbCk6CisgICAgICAg
IChXZWJLaXQ6OldlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVBbGxWaXJ0dWFsQXV0aGVudGlj
YXRvckNyZWRlbnRpYWxzKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0b21hdGlvblNlc3Npb246
OnNldFZpcnR1YWxBdXRoZW50aWNhdG9yVXNlclZlcmlmaWVkKToKKyAgICAgICAgKiBVSVByb2Nl
c3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oOgorICAgICAgICBQbHVtYmluZyB0
byBjYWxsIGZyb20gc2FmYXJpZHJpdmVyCisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRp
Y2F0aW9uL0F1dGhlbnRpY2F0b3JNYW5hZ2VyLmg6CisgICAgICAgIChXZWJLaXQ6OkF1dGhlbnRp
Y2F0b3JNYW5hZ2VyOjppc1ZpcnR1YWwgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
OiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9W
aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwOiBBZGRlZC4KKyAgICAgICAgKFdlYktpdDo6
VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyOjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIp
OgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZUF1
dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFn
ZXI6OnJlbW92ZUF1dGhlbnRpY2F0b3IpOgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsQXV0aGVu
dGljYXRvck1hbmFnZXI6OmNyZWF0ZVNlcnZpY2UgY29uc3QpOgorICAgICAgICBNYW5hZ2VzIHZp
cnR1YWwgYXV0aGVudGljYXRvcnMsIHJlcGxhY2VzIHRoZSBkZWZhdWx0IG1hbmFnZXIgd2hlbiB1
c2VkIHNpbWlsYXIgdG8gTW9ja0F1dGhlbnRpY2F0b3JNYW5hZ2VyLgorICAgICAgICAqIFVJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdl
ci5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVh
bC9WaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmg6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW06IEFkZGVk
LgorICAgICAgICAoV2ViS2l0OjpWaXJ0dWFsTG9jYWxDb25uZWN0aW9uOjpWaXJ0dWFsTG9jYWxD
b25uZWN0aW9uKToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlvbjo6dmVy
aWZ5VXNlcik6CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxMb2NhbENvbm5lY3Rpb246OmdldEF0
dGVzdGF0aW9uIGNvbnN0KToKKyAgICAgICAgKFdlYktpdDo6VmlydHVhbExvY2FsQ29ubmVjdGlv
bjo6ZmlsdGVyUmVzcG9uc2VzIGNvbnN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oOiBBZGRlZC4KKyAgICAgICAgKiBVSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbTogQWRkZWQu
CisgICAgICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpWaXJ0dWFsU2VydmljZSk6CisgICAg
ICAgIChXZWJLaXQ6OlZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKToKKyAgICAgICAgKFdl
YktpdDo6VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwpOgorICAgICAgICAq
IFVJUHJvY2Vzcy9XZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2Vic2l0ZURhdGFTdG9yZTo6dmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKToKKyAg
ICAgICAgKiBVSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oOgorICAgICAg
ICAqIFdlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOgorCiAyMDIxLTExLTAzICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFtHUFUgUHJvY2Vz
c10gUmVuZGVyaW5nIGJhY2tlbmQgbWF5IHN0b3AgcHJvY2Vzc2luZyBJUEMgc3RyZWFtIG1lc3Nh
Z2VzIGFmdGVyIGEgc3luYyBtZXNzYWdlIHRpbWVvdXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vQXV0b21hdGlvbi5qc29uIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQXV0b21hdGlvbi9BdXRvbWF0aW9uLmpzb24KaW5kZXggOGQyZTliZDMwMGEwNjBl
Y2RmNmU3ZmU5MDlhMTI1ZDZhZGFiYWY5My4uOWEyOGI4MDY4NzM4NDExZmI5MGMxYjVjMDI4NDhl
MDQ4OTQyODIzZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9BdXRvbWF0aW9uLmpzb24KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9BdXRvbWF0aW9uLmpzb24KQEAgLTMzNSw2ICszMzUsNTYgQEAKICAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImRlbHRhIiwgIiRyZWYiOiAiU2l6ZSIsICJvcHRpb25hbCI6IHRydWUsICJkZXNj
cmlwdGlvbiI6ICJGb3IgJ3doZWVsJyBpbnB1dCBzb3VyY2VzLCBzcGVjaWZpZXMgYSBzY3JvbGwg
ZGVsdGEuIn0sCiAgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJkdXJhdGlvbiIsICJ0eXBlIjog
ImludGVnZXIiLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiVGhlIG1pbmltdW0g
bnVtYmVyIG9mIG1pbGxpc2Vjb25kcyB0aGF0IG11c3QgZWxhcHNlIHdoaWxlIHRoZSByZWxldmFu
dCBpbnB1dCBzb3VyY2UgdHJhbnNpdGlvbnMgdG8gdGhpcyBzdGF0ZS4iIH0KICAgICAgICAgICAg
IF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgImlkIjogIkF1dGhlbnRpY2F0
b3JQcm90b2NvbCIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIlRoaXMgZW51bSBjb250YWlucyB0aGUgZGlmZmVyZW50IHByb3RvY29s
IHR5cGVzIHN1cHBvcnRlZCBieSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3JzLiIsCisgICAgICAgICAg
ICAiZW51bSI6IFsKKyAgICAgICAgICAgICAgICAiY3RhcDFfdTJmIiwKKyAgICAgICAgICAgICAg
ICAiY3RhcDIiLAorICAgICAgICAgICAgICAgICJjdGFwMl8xIgorICAgICAgICAgICAgXQorICAg
ICAgICB9LAorICAgICAgICB7CisgICAgICAgICAgICAiaWQiOiAiQXV0aGVudGljYXRvclRyYW5z
cG9ydCIsCisgICAgICAgICAgICAidHlwZSI6ICJzdHJpbmciLAorICAgICAgICAgICAgImRlc2Ny
aXB0aW9uIjogIkF1dGhlbnRpY2F0b3JzIG1heSBpbXBsZW1lbnQgdmFyaW91cyB0cmFuc3BvcnRz
IGZvciBjb21tdW5pY2F0aW5nIHdpdGggY2xpZW50cy4gVGhpcyBlbnVtZXJhdGlvbiBkZWZpbmVz
IGhpbnRzIGFzIHRvIGhvdyBjbGllbnRzIG1pZ2h0IGNvbW11bmljYXRlIHdpdGggYSBwYXJ0aWN1
bGFyIGF1dGhlbnRpY2F0b3IgaW4gb3JkZXIgdG8gb2J0YWluIGFuIGFzc2VydGlvbiBmb3IgYSBz
cGVjaWZpYyBjcmVkZW50aWFsLiIsCisgICAgICAgICAgICAiZW51bSI6IFsKKyAgICAgICAgICAg
ICAgICAidXNiIiwKKyAgICAgICAgICAgICAgICAibmZjIiwKKyAgICAgICAgICAgICAgICAiYmxl
IiwKKyAgICAgICAgICAgICAgICAiaW50ZXJuYWwiCisgICAgICAgICAgICBdCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJpZCI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWwiLAorICAgICAgICAgICAgInR5cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJkZXNj
cmlwdGlvbiI6ICJBIGNyZWRlbnRpYWwgb2JqZWN0IHVzZWQgZm9yIHZpcnR1YWwgYXV0aGVudGlj
YXRvcnMuIiwKKyAgICAgICAgICAgICJwcm9wZXJ0aWVzIjogWworICAgICAgICAgICAgICAgIHsg
Im5hbWUiOiAiY3JlZGVudGlhbElkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjog
IlRoZSBDcmVkZW50aWFsIElEIGVuY29kZWQgdXNpbmcgQmFzZTY0dXJsIEVuY29kaW5nLiJ9LAor
ICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaXNSZXNpZGVudENyZWRlbnRpYWwiLCAidHlwZSI6
ICJib29sZWFuIiwgImRlc2NyaXB0aW9uIjogIklmIHNldCB0byB0cnVlLCBhIGNsaWVudC1zaWRl
IGRpc2NvdmVyYWJsZSBjcmVkZW50aWFsIGlzIGNyZWF0ZWQuIElmIHNldCB0byBmYWxzZSwgYSBz
ZXJ2ZXItc2lkZSBjcmVkZW50aWFsIGlzIGNyZWF0ZWQgaW5zdGVhZC4ifSwKKyAgICAgICAgICAg
ICAgICB7ICJuYW1lIjogInJwSWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAi
VGhlIFJlbHlpbmcgUGFydHkgSUQgdGhlIGNyZWRlbnRpYWwgaXMgc2NvcGVkIHRvLiJ9LAorICAg
ICAgICAgICAgICAgIHsgIm5hbWUiOiAicHJpdmF0ZUtleSIsICJ0eXBlIjogInN0cmluZyIsICJk
ZXNjcmlwdGlvbiI6ICJBbiBhc3ltbWV0cmljIGtleSBwYWNrYWdlIGNvbnRhaW5pbmcgYSBzaW5n
bGUgcHJpdmF0ZSBrZXkgcGVyIFtSRkM1OTU4XSwgZW5jb2RlZCB1c2luZyBCYXNlNjR1cmwgRW5j
b2RpbmcuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAidXNlckhhbmRsZSIsICJ0eXBl
IjogInN0cmluZyIsICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJUaGUgdXNlckhh
bmRsZSBhc3NvY2lhdGVkIHRvIHRoZSBjcmVkZW50aWFsIGVuY29kZWQgdXNpbmcgQmFzZTY0dXJs
IEVuY29kaW5nLiBUaGlzIHByb3BlcnR5IG1heSBub3QgYmUgZGVmaW5lZC4iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJzaWduQ291bnQiLCAidHlwZSI6ICJpbnRlZ2VyIiwgImRlc2Ny
aXB0aW9uIjogIlRoZSBpbml0aWFsIHZhbHVlIGZvciBhIHNpZ25hdHVyZSBjb3VudGVyIGFzc29j
aWF0ZWQgdG8gdGhlIHB1YmxpYyBrZXkgY3JlZGVudGlhbCBzb3VyY2UuIiB9LAorICAgICAgICAg
ICAgICAgIHsgIm5hbWUiOiAibGFyZ2VCbG9iIiwgInR5cGUiOiAic3RyaW5nIiwgIm9wdGlvbmFs
IjogdHJ1ZSwgImRlc2NyaXB0aW9uIjogIlRoZSBsYXJnZSwgcGVyLWNyZWRlbnRpYWwgYmxvYiBh
c3NvY2lhdGVkIHRvIHRoZSBwdWJsaWMga2V5IGNyZWRlbnRpYWwgc291cmNlLCBlbmNvZGVkIHVz
aW5nIEJhc2U2NHVybCBFbmNvZGluZy4gVGhpcyBwcm9wZXJ0eSBtYXkgbm90IGJlIGRlZmluZWQu
IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJp
ZCI6ICJWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24iLAorICAgICAgICAgICAgInR5
cGUiOiAib2JqZWN0IiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJQYXJhbWV0ZXJzIHVz
ZWQgd2hlbiBjcmVhdGluZyBhIHZpcnR1YWwgYXV0aGVudGljYXRvciIsCisgICAgICAgICAgICAi
cHJvcGVydGllcyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInByb3RvY29sIiwgIiRy
ZWYiOiAiQXV0aGVudGljYXRvclByb3RvY29sIiwgImRlc2NyaXB0aW9uIjogIlRoZSBwcm90b2Nv
bCBvZiB0aGUgYXV0aGVudGljYXRvciIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInRy
YW5zcG9ydCIsICIkcmVmIjogIkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQiLCAiZGVzY3JpcHRpb24i
OiAiVGhlIHRyYW5zcG9ydCBvZiB0aGUgcHJvdG9jb2wiIH0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJoYXNSZXNpZGVudEtleSIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdGhlIGF1dGhlbnRpY2F0b3IgaGFzIGEgcmVzaWRlbnQg
a2V5IiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiaGFzVXNlclZlcmlmaWNhdGlvbiIs
ICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYg
dGhlIGF1dGhlbnRpY2F0b3Igc3VwcG9ydHMgdXNlciB2ZXJpZmljYXRpb24iIH0sCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJpc1VzZXJDb25zZW50aW5nIiwgInR5cGUiOiAiYm9vbGVhbiIs
ICJvcHRpb25hbCI6IHRydWUsICJkZXNjcmlwdGlvbiI6ICJJZiB0aGUgdmlydHVhbCBhdXRoZW50
aWNhdG9yIHNob3VsZCBjb25zZW50IHRvIHJlcXVlc3RzIn0sCisgICAgICAgICAgICAgICAgeyAi
bmFtZSI6ICJpc1VzZXJWZXJpZmllZCIsICJ0eXBlIjogImJvb2xlYW4iLCAib3B0aW9uYWwiOiB0
cnVlLCAiZGVzY3JpcHRpb24iOiAiSWYgdXNlciB2ZXJpZmljYXRpb24gcmVxdWVzdHMgc2hvdWxk
IHN1Y2NlZWVkIn0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJleHRlbnNpb25zIiwgInR5
cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7InR5cGUiOiAic3RyaW5nIn0sICJvcHRpb25hbCI6IHRy
dWUsICJkZXNjcmlwdGlvbiI6ICJBbiBhcnJheSBjb250YWluaW5nIGV4dGVuc2lvbiBpZGVudGlm
aWVycyIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogInV2bSIsICJ0eXBlIjogImFycmF5
IiwgIml0ZW1zIjogeyJ0eXBlIjogImludGVnZXIifSwgIm9wdGlvbmFsIjogdHJ1ZSwgImRlc2Ny
aXB0aW9uIjogIlVwIHRvIDMgVXNlciBWZXJpZmljYXRpb24gTWV0aG9kIGVudHJpZXMifQorICAg
ICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiY29tbWFuZHMiOiBbCkBAIC03MTMs
NiArNzYzLDcxIEBACiAgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKICAgICAgICAgICAgICAg
ICB7ICJuYW1lIjogInBlcm1pc3Npb25zIiwgInR5cGUiOiAiYXJyYXkiLCAiaXRlbXMiOiB7ICIk
cmVmIjogIlNlc3Npb25QZXJtaXNzaW9uRGF0YSIgfSwgImRlc2NyaXB0aW9uIjogIkFycmF5IG9m
IHNlc3Npb24gcGVybWlzc2lvbnMgdG8gc2V0LCBpZiB0aGV5IGFyZSBhdmFpbGFibGUuIiB9CiAg
ICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjog
ImFkZFZpcnR1YWxBdXRoZW50aWNhdG9yIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJB
ZGRzIGEgdmlydHVhbCB3ZWIgYXV0aGVudGljYXRpb24gYXV0aGVudGljYXRvciBmb3IgdGhlIHNw
ZWNpZmllZCBicm93c2luZyBjb250ZXh0LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsK
KyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVm
IjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZv
ciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJh
dXRoZW50aWNhdG9yIiwgIiRyZWYiOiAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
IiwgImRlc2NyaXB0aW9uIjogIlRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgdmlydHVhbCBhdXRo
ZW50aWNhdG9yIHRvIGJlIGNyZWF0ZWQuIiB9CisgICAgICAgICAgICBdLAorICAgICAgICAgICAg
InJldHVybnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhdXRoZW50aWNhdG9ySWQi
LCAidHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIGF1dGhlbnRpY2F0b3JJZCBv
ZiB0aGUgY3JlYXRlZCBhdXRoZW50aWNhdG9yIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0s
CisgICAgICAgIHsKKyAgICAgICAgICAgICJuYW1lIjogInJlbW92ZVZpcnR1YWxBdXRoZW50aWNh
dG9yIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZW1vdmVzIGEgdmlydHVhbCB3ZWIg
YXV0aGVudGljYXRpb24gYXV0aGVudGljYXRvciBmb3IgdGhlIHNwZWNpZmllZCBicm93c2luZyBj
b250ZXh0LiIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7
ICJuYW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4
dEhhbmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29u
dGV4dC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhdXRoZW50aWNhdG9ySWQiLCAi
dHlwZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHZpcnR1YWwgYXV0aGVudGljYXRv
ciBpZCB0byByZW1vdmUuIiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsK
KyAgICAgICAgICAgICJuYW1lIjogImFkZFZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbCIs
CisgICAgICAgICAgICAiZGVzY3JpcHRpb24iOiAiQWRkIGEgY3JlZGVudGlhbCB0byBhIHNwZWNp
ZmllZCB2aXJ1dGFsIGF1dGhlbnRpY2F0b3IgZm9yIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29u
dGV4dCIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4
dC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhdXRoZW50aWNhdG9ySWQiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHZpcnR1YWwgYXV0aGVudGljYXRvciBp
ZCB0byBhZGQgdGhlIGNyZWRlbnRpYWwgdG8uIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUi
OiAiY3JlZGVudGlhbCIsICIkcmVmIjogIlZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbCIs
ICJkZXNjcmlwdGlvbiI6ICJUaGUgcGFyYW1ldGVycyBvZiB0aGUgY3JlZGVudGlhbCB0byBhZGQu
IiB9CisgICAgICAgICAgICBdCisgICAgICAgIH0sCisgICAgICAgIHsKKyAgICAgICAgICAgICJu
YW1lIjogImdldFZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbHMiLAorICAgICAgICAgICAg
ImRlc2NyaXB0aW9uIjogIkdldCBhbGwgY3JlZGVudGlhbHMgZm9yIGEgZ2l2ZW4gdmlydHVhbCBh
dXRoZW50aWNhdG9yIGZvciB0aGUgc3BlY2lmaWVkIGJyb3dzaW5nIGNvbnRleHQiLAorICAgICAg
ICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJicm93c2lu
Z0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3Jp
cHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJyb3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAg
ICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGljYXRvcklkIiwgInR5cGUiOiAic3RyaW5nIiwg
ImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgaWQgdG8gZmV0Y2ggYWxs
IGNyZWRlbnRpYWxzIGZvci4iIH0KKyAgICAgICAgICAgIF0sCisgICAgICAgICAgICAicmV0dXJu
cyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImNyZWRlbnRpYWxzIiwgInR5cGUiOiAi
YXJyYXkiLCAiaXRlbXMiOiB7ICIkcmVmIjogIlZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlh
bCIgfSwgImRlc2NyaXB0aW9uIjogIkFycmF5IG9mIGNyZWRlbnRpYWxzIGZvciBnaXZlbiB2aXJ0
dWFsIGF1dGhlbnRpY2F0b3IiIH0KKyAgICAgICAgICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAg
eworICAgICAgICAgICAgIm5hbWUiOiAicmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50
aWFsIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYSBjcmVkZW50aWFsIGZy
b20gYSB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IgZm9yIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29u
dGV4dCIsCisgICAgICAgICAgICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhh
bmRsZSIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4
dC4iIH0sCisgICAgICAgICAgICAgICAgeyAibmFtZSI6ICJhdXRoZW50aWNhdG9ySWQiLCAidHlw
ZSI6ICJzdHJpbmciLCAiZGVzY3JpcHRpb24iOiAiVGhlIHZpcnR1YWwgYXV0aGVudGljYXRvciBp
ZCB0byBmZXRjaCBhbGwgY3JlZGVudGlhbHMgZm9yLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJu
YW1lIjogImNyZWRlbnRpYWxJZCIsICJ0eXBlIjogInN0cmluZyIsICJkZXNjcmlwdGlvbiI6ICJU
aGUgY3JlZGVudGlhbElkIG9mIHRoZSBjcmVkZW50aWFsIHRvIHJlbW92ZSBmcm9tIHRoZSB2aXJ0
dWFsIGF1dGhlbnRpY2F0b3IifQorICAgICAgICAgICAgXQorICAgICAgICB9LAorICAgICAgICB7
CisgICAgICAgICAgICAibmFtZSI6ICJyZW1vdmVBbGxWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRl
bnRpYWxzIiwKKyAgICAgICAgICAgICJkZXNjcmlwdGlvbiI6ICJSZW1vdmUgYWxsIGNyZWRlbnRp
YWxzIGZyb20gYSBnaXZlbiB2aXJ0dWFsIGF1dGhlbnRpY2F0aW9yIGZvciB0aGUgc3BlY2lmaWVk
IGJyb3dzaW5nIGNvbnRleHQiLAorICAgICAgICAgICAgInBhcmFtZXRlcnMiOiBbCisgICAgICAg
ICAgICAgICAgeyAibmFtZSI6ICJicm93c2luZ0NvbnRleHRIYW5kbGUiLCAiJHJlZiI6ICJCcm93
c2luZ0NvbnRleHRIYW5kbGUiLCAiZGVzY3JpcHRpb24iOiAiVGhlIGhhbmRsZSBmb3IgdGhlIGJy
b3dzaW5nIGNvbnRleHQuIiB9LAorICAgICAgICAgICAgICAgIHsgIm5hbWUiOiAiYXV0aGVudGlj
YXRvcklkIiwgInR5cGUiOiAic3RyaW5nIiwgImRlc2NyaXB0aW9uIjogIlRoZSB2aXJ0dWFsIGF1
dGhlbnRpY2F0b3IgaWQgdG8gZmV0Y2ggYWxsIGNyZWRlbnRpYWxzIGZvci4iIH0KKyAgICAgICAg
ICAgIF0KKyAgICAgICAgfSwKKyAgICAgICAgeworICAgICAgICAgICAgIm5hbWUiOiAic2V0Vmly
dHVhbEF1dGhlbnRpY2F0b3JVc2VyVmVyaWZpZWQiLAorICAgICAgICAgICAgImRlc2NyaXB0aW9u
IjogInNldCBpc1VzZXJWZXJpZmllZCBwcm9wZXJ0eSBmb3IgYSBnaXZlbiB2aXJ0dWFsIGF1dGhl
bnRpY2F0b3IgZm9yIHRoZSBzcGVjaWZpZWQgYnJvd3NpbmcgY29udGV4dCIsCisgICAgICAgICAg
ICAicGFyYW1ldGVycyI6IFsKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImJyb3dzaW5nQ29u
dGV4dEhhbmRsZSIsICIkcmVmIjogIkJyb3dzaW5nQ29udGV4dEhhbmRsZSIsICJkZXNjcmlwdGlv
biI6ICJUaGUgaGFuZGxlIGZvciB0aGUgYnJvd3NpbmcgY29udGV4dC4iIH0sCisgICAgICAgICAg
ICAgICAgeyAibmFtZSI6ICJhdXRoZW50aWNhdG9ySWQiLCAidHlwZSI6ICJzdHJpbmciLCAiZGVz
Y3JpcHRpb24iOiAiVGhlIHZpcnR1YWwgYXV0aGVudGljYXRvciBpZCB0byBmZXRjaCBhbGwgY3Jl
ZGVudGlhbHMgZm9yLiIgfSwKKyAgICAgICAgICAgICAgICB7ICJuYW1lIjogImlzVXNlclZlcmlm
aWVkIiwgInR5cGUiOiAiYm9vbGVhbiIsICJkZXNjcmlwdGlvbiI6ICJUaGUgaXNVc2VyVmVyaWZp
ZWQgdmFsdWUgdG8gc2V0IG9uIHRoZSBnaXZlbiB2aXJ0dWFsIGF1dGhlbnRpY2F0b3IifQorICAg
ICAgICAgICAgXQogICAgICAgICB9CiAgICAgXSwKICAgICAiZXZlbnRzIjogWwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9XZWJBdXRvbWF0aW9uU2Vzc2lv
bi5jcHAgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcAppbmRleCA4N2Y0NDNmYTI4NTEyNTY1OWM3NjllYzY2OWE5OTQzODJiNWY1YTEw
Li41YjY2MjYxNzQ5YjhkMDZkZDVkNDk0Zjg4MGUzNDlhMzZlNWJlYmYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25TZXNzaW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dlYkF1dG9tYXRpb25T
ZXNzaW9uLmNwcApAQCAtNTMsNiArNTMsMTEgQEAKICNpbmNsdWRlIDx3dGYvVVVJRC5oPgogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1N0cmluZ0NvbmNhdGVuYXRlLmg+CiAKKyNpZiBFTkFCTEUoV0VCX0FV
VEhOKQorI2luY2x1ZGUgIlZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5oIgorI2luY2x1ZGUg
PFdlYkNvcmUvQXV0aGVudGljYXRvclRyYW5zcG9ydC5oPgorI2VuZGlmIC8vIEVOQUJMRShXRUJf
QVVUSE4pCisKIG5hbWVzcGFjZSBXZWJLaXQgewogCiB1c2luZyBuYW1lc3BhY2UgSW5zcGVjdG9y
OwpAQCAtMTUzMCw2ICsxNTM1LDEwNSBAQCBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmlu
Z09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpzZXRTZXNzaW9uUGVybWlzcwogICAgIHJl
dHVybiB7IH07CiB9CiAKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorc3RhdGljIFdlYkNvcmU6OkF1
dGhlbnRpY2F0b3JUcmFuc3BvcnQgdG9BdXRoZW50aWNhdG9yVHJhbnNwb3J0KEluc3BlY3Rvcjo6
UHJvdG9jb2w6OkF1dG9tYXRpb246OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQgdHJhbnNwb3J0KQor
eworICAgIHN3aXRjaCAodHJhbnNwb3J0KSB7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29s
OjpBdXRvbWF0aW9uOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpVc2I6CisgICAgICAgIHJldHVy
biBXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpVc2I7CisgICAgY2FzZSBJbnNwZWN0
b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpOZmM6Cisg
ICAgICAgIHJldHVybiBXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0OjpOZmM7CisgICAg
Y2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpBdXRoZW50aWNhdG9yVHJhbnNw
b3J0OjpCbGU6CisgICAgICAgIHJldHVybiBXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0
OjpCbGU7CisgICAgY2FzZSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9uOjpBdXRoZW50
aWNhdG9yVHJhbnNwb3J0OjpJbnRlcm5hbDoKKyAgICAgICAgcmV0dXJuIFdlYkNvcmU6OkF1dGhl
bnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsOworICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VS
VF9OT1RfUkVBQ0hFRCgpOworICAgICAgICByZXR1cm4gV2ViQ29yZTo6QXV0aGVudGljYXRvclRy
YW5zcG9ydDo6SW50ZXJuYWw7CisgICAgfQorfQorI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4p
CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8U3RyaW5nIC8qIGF1dGhlbnRp
Y2F0b3JJZCAqLz4gV2ViQXV0b21hdGlvblNlc3Npb246OmFkZFZpcnR1YWxBdXRoZW50aWNhdG9y
KGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBSZWY8SlNPTjo6T2JqZWN0PiYm
IGF1dGhlbnRpY2F0b3IpCit7CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyAgICBhdXRvIHByb3Rv
Y29sID0gYXV0aGVudGljYXRvci0+Z2V0U3RyaW5nKCJwcm90b2NvbCJfcyk7CisgICAgaWYgKCFw
cm90b2NvbCkKKyAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVU
QUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlIHBhcmFtZXRlciAncHJvdG9jb2wnIGlzIG1pc3Np
bmcgb3IgaW52YWxpZC4iKTsKKyAgICBhdXRvIHRyYW5zcG9ydCA9IGF1dGhlbnRpY2F0b3ItPmdl
dFN0cmluZygidHJhbnNwb3J0Il9zKTsKKyAgICBpZiAoIXRyYW5zcG9ydCkKKyAgICAgICAgU1lO
Q19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVy
LCAiVGhlIHBhcmFtZXRlciAndHJhbnNwb3J0JyBpcyBtaXNzaW5nIG9yIGludmFsaWQuIik7Cisg
ICAgYXV0byBwYXJzZWRUcmFuc3BvcnQgPSBJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRvbWF0aW9u
SGVscGVyczo6cGFyc2VFbnVtVmFsdWVGcm9tU3RyaW5nPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1
dG9tYXRpb246OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ+KHRyYW5zcG9ydCk7CisgICAgaWYgKCFw
YXJzZWRUcmFuc3BvcnQpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1Jf
QU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIlRoZSBwYXJhbWV0ZXIgJ3RyYW5zcG9ydCcg
aGFzIGFuIHVua25vd24gdmFsdWUuIik7CisgICAgYXV0byBoYXNSZXNpZGVudEtleSA9IGF1dGhl
bnRpY2F0b3ItPmdldEJvb2xlYW4oImhhc1Jlc2lkZW50S2V5Il9zKTsKKyAgICBpZiAoIWhhc1Jl
c2lkZW50S2V5KQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVERUZJTkVEX0VSUk9SX0FORF9E
RVRBSUxTKEludmFsaWRQYXJhbWV0ZXIsICJUaGUgcGFyYW1ldGVyICdoYXNSZXNpZGVudEtleScg
aXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOworICAgIGF1dG8gaGFzVXNlclZlcmlmaWNhdGlvbiA9
IGF1dGhlbnRpY2F0b3ItPmdldEJvb2xlYW4oImhhc1VzZXJWZXJpZmljYXRpb24iX3MpOworICAg
IGlmICghaGFzVXNlclZlcmlmaWNhdGlvbikKKyAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVG
SU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhlIHBhcmFtZXRlciAn
aGFzVXNlclZlcmlmaWNhdGlvbicgaXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOworICAgIGF1dG8g
aXNVc2VyQ29uc2VudGluZyA9IGF1dGhlbnRpY2F0b3ItPmdldEJvb2xlYW4oImlzVXNlckNvbnNl
bnRpbmciX3MpOworICAgIGlmICghaXNVc2VyQ29uc2VudGluZykKKyAgICAgICAgU1lOQ19GQUlM
X1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAiVGhl
IHBhcmFtZXRlciAnaXNVc2VyQ29uc2VudGluZycgaXMgbWlzc2luZyBvciBpbnZhbGlkLiIpOwor
ICAgIGF1dG8gaXNVc2VyVmVyaWZpZWQgPSBhdXRoZW50aWNhdG9yLT5nZXRCb29sZWFuKCJpc1Vz
ZXJWZXJpZmllZCJfcyk7CisgICAgaWYgKCFpc1VzZXJWZXJpZmllZCkKKyAgICAgICAgU1lOQ19G
QUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhJbnZhbGlkUGFyYW1ldGVyLCAi
VGhlIHBhcmFtZXRlciAnaXNVc2VyVmVyaWZpZWQnIGlzIG1pc3Npbmcgb3IgaW52YWxpZC4iKTsK
KworICAgIGF1dG8gcGFnZSA9IHdlYlBhZ2VQcm94eUZvckhhbmRsZShicm93c2luZ0NvbnRleHRI
YW5kbGUpOworICAgIGlmICghcGFnZSkKKyAgICAgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5F
RF9FUlJPUihXaW5kb3dOb3RGb3VuZCk7CisgICAgcmV0dXJuIHBhZ2UtPndlYnNpdGVEYXRhU3Rv
cmUoKS52aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIoKS5jcmVhdGVBdXRoZW50aWNhdG9yKHsK
KyAgICAgICAgLnByb3RvY29sID0gcHJvdG9jb2wsCisgICAgICAgIC50cmFuc3BvcnQgPSB0b0F1
dGhlbnRpY2F0b3JUcmFuc3BvcnQocGFyc2VkVHJhbnNwb3J0LnZhbHVlKCkpLAorICAgICAgICAu
aGFzUmVzaWRlbnRLZXkgPSAqaGFzUmVzaWRlbnRLZXksCisgICAgICAgIC5oYXNVc2VyVmVyaWZp
Y2F0aW9uID0gKmhhc1VzZXJWZXJpZmljYXRpb24sCisgICAgICAgIC5pc1VzZXJDb25zZW50aW5n
ID0gKmlzVXNlckNvbnNlbnRpbmcsCisgICAgICAgIC5pc1VzZXJWZXJpZmllZCA9ICppc1VzZXJW
ZXJpZmllZCwKKyAgICB9KTsKKyNlbHNlCisgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9F
UlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9kIGlzIG5vdCB5ZXQg
aW1wbGVtZW50ZWQuIik7CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKK30KKworSW5zcGVj
dG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6
cmVtb3ZlVmlydHVhbEF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRI
YW5kbGUsIGNvbnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkKQoreworI2lmIEVOQUJMRShXRUJf
QVVUSE4pCisgICAgYXV0byBwYWdlID0gd2ViUGFnZVByb3h5Rm9ySGFuZGxlKGJyb3dzaW5nQ29u
dGV4dEhhbmRsZSk7CisgICAgaWYgKCFwYWdlKQorICAgICAgICBTWU5DX0ZBSUxfV0lUSF9QUkVE
RUZJTkVEX0VSUk9SKFdpbmRvd05vdEZvdW5kKTsKKyAgICBpZiAoIXBhZ2UtPndlYnNpdGVEYXRh
U3RvcmUoKS52aXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIoKS5yZW1vdmVBdXRoZW50aWNhdG9y
KGF1dGhlbnRpY2F0b3JJZCkpCisgICAgICAgIFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJS
T1JfQU5EX0RFVEFJTFMoSW52YWxpZFBhcmFtZXRlciwgIk5vIHN1Y2ggYXV0aGVudGljYXRvciBl
eGlzdHMuIik7CisgICAgcmV0dXJuIHsgfTsKKyNlbHNlCisgICAgU1lOQ19GQUlMX1dJVEhfUFJF
REVGSU5FRF9FUlJPUl9BTkRfREVUQUlMUyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9kIGlz
IG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7CisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKK30K
KworSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJyb3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9u
U2Vzc2lvbjo6YWRkVmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYg
YnJvd3NpbmdDb250ZXh0SGFuZGxlLCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCwgUmVm
PEpTT046Ok9iamVjdD4mJiBjcmVkZW50aWFsKQoreworICAgIFNZTkNfRkFJTF9XSVRIX1BSRURF
RklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJUaGlzIG1ldGhvZCBpcyBu
b3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0
cmluZ09yPFJlZjxKU09OOjpBcnJheU9mPEluc3BlY3Rvcjo6UHJvdG9jb2w6OkF1dG9tYXRpb246
OlZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbD4+IC8qIGNyZWRlbnRpYWxzICovPiBXZWJB
dXRvbWF0aW9uU2Vzc2lvbjo6Z2V0VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyhjb25z
dCBTdHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNh
dG9ySWQpCit7CisgICAgU1lOQ19GQUlMX1dJVEhfUFJFREVGSU5FRF9FUlJPUl9BTkRfREVUQUlM
UyhOb3RJbXBsZW1lbnRlZCwgIlRoaXMgbWV0aG9kIGlzIG5vdCB5ZXQgaW1wbGVtZW50ZWQuIik7
Cit9CisKK0luc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gV2ViQXV0b21h
dGlvblNlc3Npb246OnJlbW92ZVZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbChjb25zdCBT
dHJpbmcmIGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9y
SWQsIGNvbnN0IFN0cmluZyYgY3JlZGVudGlhbElkKQoreworICAgIFNZTkNfRkFJTF9XSVRIX1BS
RURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50ZWQsICJUaGlzIG1ldGhvZCBp
cyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCitJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJv
clN0cmluZ09yPHZvaWQ+IFdlYkF1dG9tYXRpb25TZXNzaW9uOjpyZW1vdmVBbGxWaXJ0dWFsQXV0
aGVudGljYXRvckNyZWRlbnRpYWxzKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxl
LCBjb25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCkKK3sKKyAgICBTWU5DX0ZBSUxfV0lUSF9Q
UkVERUZJTkVEX0VSUk9SX0FORF9ERVRBSUxTKE5vdEltcGxlbWVudGVkLCAiVGhpcyBtZXRob2Qg
aXMgbm90IHlldCBpbXBsZW1lbnRlZC4iKTsKK30KKworSW5zcGVjdG9yOjpQcm90b2NvbDo6RXJy
b3JTdHJpbmdPcjx2b2lkPiBXZWJBdXRvbWF0aW9uU2Vzc2lvbjo6c2V0VmlydHVhbEF1dGhlbnRp
Y2F0b3JVc2VyVmVyaWZpZWQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNv
bnN0IFN0cmluZyYgYXV0aGVudGljYXRvcklkLCBib29sIGlzVXNlclZlcmlmaWVkKQoreworICAg
IFNZTkNfRkFJTF9XSVRIX1BSRURFRklORURfRVJST1JfQU5EX0RFVEFJTFMoTm90SW1wbGVtZW50
ZWQsICJUaGlzIG1ldGhvZCBpcyBub3QgeWV0IGltcGxlbWVudGVkLiIpOworfQorCiBib29sIFdl
YkF1dG9tYXRpb25TZXNzaW9uOjpzaG91bGRBbGxvd0dldFVzZXJNZWRpYUZvclBhZ2UoY29uc3Qg
V2ViUGFnZVByb3h5JikgY29uc3QKIHsKICAgICByZXR1cm4gbV9wZXJtaXNzaW9uRm9yR2V0VXNl
ck1lZGlhOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlvbi9X
ZWJBdXRvbWF0aW9uU2Vzc2lvbi5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQXV0b21hdGlv
bi9XZWJBdXRvbWF0aW9uU2Vzc2lvbi5oCmluZGV4IGY3NWRjYWQ1ZTM1ODU0OTM3ZWMwYmNkZTdk
MmQ0NzI4ZmIwYjYyMjEuLjEyYjdmMTkzMjJlYTc3ZjBiNjFhYTRmMDAzMTYyYzMyZWI5NzE5Mjcg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0F1dG9tYXRpb24vV2ViQXV0b21h
dGlvblNlc3Npb24uaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BdXRvbWF0aW9uL1dl
YkF1dG9tYXRpb25TZXNzaW9uLmgKQEAgLTIwNCw2ICsyMDQsMTQgQEAgcHVibGljOgogICAgIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8UmVmPEpTT046OkFycmF5T2Y8SW5zcGVj
dG9yOjpQcm90b2NvbDo6QXV0b21hdGlvbjo6U2Vzc2lvblBlcm1pc3Npb25EYXRhPj4+IGdldFNl
c3Npb25QZXJtaXNzaW9ucygpOwogICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5n
T3I8dm9pZD4gc2V0U2Vzc2lvblBlcm1pc3Npb25zKFJlZjxKU09OOjpBcnJheT4mJik7CiAKKyAg
ICBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmluZ09yPFN0cmluZyAvKiBhdXRoZW50aWNh
dG9ySWQgKi8+IGFkZFZpcnR1YWxBdXRoZW50aWNhdG9yKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdD
b250ZXh0SGFuZGxlLCBSZWY8SlNPTjo6T2JqZWN0PiYmIGF1dGhlbnRpY2F0b3IpOworICAgIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gcmVtb3ZlVmlydHVhbEF1dGhl
bnRpY2F0b3IoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0cmlu
ZyYgYXV0aGVudGljYXRvcklkKTsKKyAgICBJbnNwZWN0b3I6OlByb3RvY29sOjpFcnJvclN0cmlu
Z09yPHZvaWQ+IGFkZFZpcnR1YWxBdXRoZW50aWNhdG9yQ3JlZGVudGlhbChjb25zdCBTdHJpbmcm
IGJyb3dzaW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9ySWQsIFJl
ZjxKU09OOjpPYmplY3Q+JiYgY3JlZGVudGlhbCk7CisgICAgSW5zcGVjdG9yOjpQcm90b2NvbDo6
RXJyb3JTdHJpbmdPcjxSZWY8SlNPTjo6QXJyYXlPZjxJbnNwZWN0b3I6OlByb3RvY29sOjpBdXRv
bWF0aW9uOjpWaXJ0dWFsQXV0aGVudGljYXRvckNyZWRlbnRpYWw+PiAvKiBjcmVkZW50aWFscyAq
Lz4gZ2V0VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyhjb25zdCBTdHJpbmcmIGJyb3dz
aW5nQ29udGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9ySWQpOworICAgIElu
c3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gcmVtb3ZlVmlydHVhbEF1dGhl
bnRpY2F0b3JDcmVkZW50aWFsKGNvbnN0IFN0cmluZyYgYnJvd3NpbmdDb250ZXh0SGFuZGxlLCBj
b25zdCBTdHJpbmcmIGF1dGhlbnRpY2F0b3JJZCwgY29uc3QgU3RyaW5nJiBjcmVkZW50aWFsSWQp
OworICAgIEluc3BlY3Rvcjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gcmVtb3ZlQWxs
VmlydHVhbEF1dGhlbnRpY2F0b3JDcmVkZW50aWFscyhjb25zdCBTdHJpbmcmIGJyb3dzaW5nQ29u
dGV4dEhhbmRsZSwgY29uc3QgU3RyaW5nJiBhdXRoZW50aWNhdG9ySWQpOworICAgIEluc3BlY3Rv
cjo6UHJvdG9jb2w6OkVycm9yU3RyaW5nT3I8dm9pZD4gc2V0VmlydHVhbEF1dGhlbnRpY2F0b3JV
c2VyVmVyaWZpZWQoY29uc3QgU3RyaW5nJiBicm93c2luZ0NvbnRleHRIYW5kbGUsIGNvbnN0IFN0
cmluZyYgYXV0aGVudGljYXRvcklkLCBib29sIGlzVXNlclZlcmlmaWVkKTsKKwogI2lmIFBMQVRG
T1JNKE1BQykKICAgICB2b2lkIGluc3BlY3RCcm93c2luZ0NvbnRleHQoY29uc3QgSW5zcGVjdG9y
OjpQcm90b2NvbDo6QXV0b21hdGlvbjo6QnJvd3NpbmdDb250ZXh0SGFuZGxlJiwgc3RkOjpvcHRp
b25hbDxib29sPiYmIGVuYWJsZUF1dG9DYXB0dXJpbmcsIFJlZjxJbnNwZWN0QnJvd3NpbmdDb250
ZXh0Q2FsbGJhY2s+JiYpOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQXV0aGVudGljYXRvck1hbmFnZXIuaApp
bmRleCBmNzFlMmZkZGU1NTFlMWMzOGRhYjEwZTMzM2IyN2M0YWI3NWExMTQyLi44NjRiMzM3OGIz
NDc2NjVlZTVmNzk0OGE3ZmQ0ZDM2NDE2NTUxOWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9BdXRoZW50aWNhdG9yTWFuYWdlci5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0F1dGhlbnRpY2F0b3JN
YW5hZ2VyLmgKQEAgLTY5LDYgKzY5LDcgQEAgcHVibGljOgogICAgIHZvaWQgY2FuY2VsKCk7IC8v
IENhbGxlZCBmcm9tIHRoZSBwcmVzZW50ZXIuCiAKICAgICB2aXJ0dWFsIGJvb2wgaXNNb2NrKCkg
Y29uc3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2aXJ0dWFsIGJvb2wgaXNWaXJ0dWFsKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KIAogICAgIHZvaWQgZW5hYmxlTW9kZXJuV2ViQXV0aGVudGlj
YXRpb24oKTsKICAgICB2b2lkIGVuYWJsZU5hdGl2ZVN1cHBvcnQoKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbEF1
dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5o
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmZjYzI4YTg1NWNkOWViYjdiZjM1NjQzODYxZmRkZGVjNWY5NTUyM2QKLS0t
IC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbi5oCkBAIC0wLDAgKzEs
NDggQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICog
MS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBj
b3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBm
b2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9y
bSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMg
bGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisg
KiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0
aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVT
UyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAor
ICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQg
U0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFO
WSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisg
KiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQ
Uk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBV
U0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICog
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNF
IE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBU
SElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2lmIEVOQUJMRShXRUJfQVVUSE4p
CisKKyNpbmNsdWRlIDxXZWJDb3JlL0F1dGhlbnRpY2F0b3JUcmFuc3BvcnQuaD4KKyNpbmNsdWRl
IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CisKK3N0cnVjdCBW
aXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24geworICAgIFdURl9NQUtFX1NUUlVDVF9G
QVNUX0FMTE9DQVRFRDsKKyAgICAvLyBGSVhNRTogdXNlIFByb3RvY29sVmVyc2lvbiBoZXJlCisg
ICAgU3RyaW5nIHByb3RvY29sOworICAgIFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JUcmFuc3BvcnQg
dHJhbnNwb3J0OworICAgIGJvb2wgaGFzUmVzaWRlbnRLZXk7CisgICAgYm9vbCBoYXNVc2VyVmVy
aWZpY2F0aW9uOworICAgIGJvb2wgaXNVc2VyQ29uc2VudGluZzsKKyAgICBib29sIGlzVXNlclZl
cmlmaWVkOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUo
V0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vVmlydHVhbC9WaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuY3BwIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsQXV0aGVu
dGljYXRvck1hbmFnZXIuY3BwCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ5MWUyY2FkMDNkODQxNDIwMWFiNzQ2N2Rm
NmY1Y2Q5OTlkZmUzZTgKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5j
cHAKQEAgLTAsMCArMSw2OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAq
IGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICog
QU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElU
WSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVE
LiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJF
IExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVY
RU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9U
IExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBX
SEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVE
SU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKyNp
bmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCIKKworI2lmIEVOQUJMRShXRUJf
QVVUSE4pCisKKyNpbmNsdWRlIDxWaXJ0dWFsU2VydmljZS5oPgorI2luY2x1ZGUgPHd0Zi9VVUlE
Lmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXI6
OlZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcigpCisgICAgOiBBdXRoZW50aWNhdG9yTWFuYWdl
cigpCit7Cit9CisKK1N0cmluZyBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXI6OmNyZWF0ZUF1
dGhlbnRpY2F0b3IoY29uc3QgVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uJiBjb25m
aWcpCit7CisgICAgaWYgKGNvbmZpZy50cmFuc3BvcnQgIT0gV2ViQ29yZTo6QXV0aGVudGljYXRv
clRyYW5zcG9ydDo6SW50ZXJuYWwpCisgICAgICAgIFVOSU1QTEVNRU5URUQoKTsKKyAgICBhdXRv
IGlkID0gY3JlYXRlQ2Fub25pY2FsVVVJRFN0cmluZygpOworICAgIG1fdmlydHVhbEF1dGhlbnRp
Y2F0b3JzLnNldChpZCwgbWFrZVVuaXF1ZVJlZjxWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3Vy
YXRpb24+KGNvbmZpZykpOworCisgICAgcmV0dXJuIGlkOworfQorCitib29sIFZpcnR1YWxBdXRo
ZW50aWNhdG9yTWFuYWdlcjo6cmVtb3ZlQXV0aGVudGljYXRvcihjb25zdCBTdHJpbmcmIGlkKQor
eworICAgIHJldHVybiBtX3ZpcnR1YWxBdXRoZW50aWNhdG9ycy5yZW1vdmUoaWQpOworfQorCitV
bmlxdWVSZWY8QXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U+IFZpcnR1YWxBdXRoZW50aWNh
dG9yTWFuYWdlcjo6Y3JlYXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0
IHRyYW5zcG9ydCwgQXV0aGVudGljYXRvclRyYW5zcG9ydFNlcnZpY2U6Ok9ic2VydmVyJiBvYnNl
cnZlcikgY29uc3QKK3sKKyAgICBWZWN0b3I8VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0
aW9uPiBjb25maWdzOworICAgIGZvciAoYXV0byYgY29uZmlnIDogbV92aXJ0dWFsQXV0aGVudGlj
YXRvcnMudmFsdWVzKCkpIHsKKyAgICAgICAgaWYgKGNvbmZpZy5nZXQoKS50cmFuc3BvcnQgPT0g
dHJhbnNwb3J0KQorICAgICAgICAgICAgY29uZmlncy5hcHBlbmQoY29uZmlnLmdldCgpKTsKKyAg
ICB9CisgICAgcmV0dXJuIFZpcnR1YWxTZXJ2aWNlOjpjcmVhdGVWaXJ0dWFsKHRyYW5zcG9ydCwg
b2JzZXJ2ZXIsIGNvbmZpZ3MpOworfQorCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlm
IC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0
dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42Mjk0NWRjMWY3YjZkNDgwNjEx
NWFkYjU0MjRmMzU5NTUxYzFiNmQyCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsQXV0aGVudGljYXRvck1h
bmFnZXIuaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiQXV0aGVudGljYXRvck1hbmFnZXIuaCIK
KyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCIKKworbmFtZXNw
YWNlIFdlYktpdCB7CisKK2NsYXNzIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlciBmaW5hbCA6
IHB1YmxpYyBBdXRoZW50aWNhdG9yTWFuYWdlciB7CitwdWJsaWM6CisgICAgZXhwbGljaXQgVmly
dHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyKCk7CisKKyAgICBTdHJpbmcgY3JlYXRlQXV0aGVudGlj
YXRvcihjb25zdCBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24mIC8qY29uZmlnLyov
KTsKKyAgICBib29sIHJlbW92ZUF1dGhlbnRpY2F0b3IoY29uc3QgU3RyaW5nJiAvKmF1dGhlbnRp
Y2F0b3JJZCovKTsKKworICAgIGJvb2wgaXNWaXJ0dWFsKCkgY29uc3QgZmluYWwgeyByZXR1cm4g
dHJ1ZTsgfQorCitwcml2YXRlOgorICAgIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0
U2VydmljZT4gY3JlYXRlU2VydmljZShXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJhbnNwb3J0LCBB
dXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZTo6T2JzZXJ2ZXImKSBjb25zdCBmaW5hbDsKKwor
ICAgIEhhc2hNYXA8U3RyaW5nLCBVbmlxdWVSZWY8VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1
cmF0aW9uPj4gbV92aXJ0dWFsQXV0aGVudGljYXRvcnM7Cit9OworCit9IC8vIG5hbWVzcGFjZSBX
ZWJLaXQKKworI2VuZGlmIC8vIEVOQUJMRShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENv
bm5lY3Rpb24uaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1Zp
cnR1YWwvVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmJiNmE1MWU5NjE3NzA5
Y2RjYWI1MDk2YWIzNzY2NzE3NTM3ODBkY2YKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5l
Y3Rpb24uaApAQCAtMCwwICsxLDUyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDIxIEFwcGxl
IEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNl
IGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNh
dGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9u
cworICogYXJlIG1ldDoKKyAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0
IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1
dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyIGluIHRoZQorICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycn
CisgKiBBTkQgQU5ZIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywKKyAqIFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRB
QklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NM
QUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUwor
ICogQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lB
TCwgRVhFTVBMQVJZLCBPUgorICogQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJV
VCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1Ig
U0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICog
SU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJ
VFksIFdIRVRIRVIgSU4KKyAqIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJ
TkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkg
T1VUIE9GIFRIRSBVU0UgT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBU
SEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNp
ZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW5jbHVkZSAiTG9jYWxDb25uZWN0aW9uLmgiCisjaW5j
bHVkZSAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmgiCisjaW5jbHVkZSA8d3Rm
L1dlYWtQdHIuaD4KKworbmFtZXNwYWNlIFdlYktpdCB7CitzdHJ1Y3QgVmlydHVhbEF1dGhlbnRp
Y2F0b3JDb25maWd1cmF0aW9uOworCitjbGFzcyBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uIGZpbmFs
IDogcHVibGljIENhbk1ha2VXZWFrUHRyPFZpcnR1YWxMb2NhbENvbm5lY3Rpb24+LCBwdWJsaWMg
TG9jYWxDb25uZWN0aW9uIHsKK3B1YmxpYzoKKyAgICBleHBsaWNpdCBWaXJ0dWFsTG9jYWxDb25u
ZWN0aW9uKGNvbnN0IFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiYpOworCitwcml2
YXRlOgorICAgIHZvaWQgdmVyaWZ5VXNlcihjb25zdCBTdHJpbmcmLCBXZWJDb3JlOjpDbGllbnRE
YXRhVHlwZSwgU2VjQWNjZXNzQ29udHJvbFJlZiwgV2ViQ29yZTo6VXNlclZlcmlmaWNhdGlvblJl
cXVpcmVtZW50LCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJikgZmluYWw7CisgICAgdm9pZCB2
ZXJpZnlVc2VyKFNlY0FjY2Vzc0NvbnRyb2xSZWYsIExBQ29udGV4dCAqLCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKFVzZXJWZXJpZmljYXRpb24pPiYmKSBmaW5hbDsKKyAgICB2b2lkIGdldEF0dGVz
dGF0aW9uKFNlY0tleVJlZiwgTlNEYXRhICphdXRoRGF0YSwgTlNEYXRhICpoYXNoLCBBdHRlc3Rh
dGlvbkNhbGxiYWNrJiYpIGNvbnN0IGZpbmFsOworICAgIHZvaWQgZmlsdGVyUmVzcG9uc2VzKFZl
Y3RvcjxSZWY8V2ViQ29yZTo6QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mKSBjb25z
dCBmaW5hbDsKKworICAgIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlvbiBtX2NvbmZp
Z3VyYXRpb247Cit9OworCit9IC8vIG5hbWVzcGFjZSBXZWJLaXQKKworI2VuZGlmIC8vIEVOQUJM
RShXRUJfQVVUSE4pCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0gYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1YWxMb2NhbENvbm5l
Y3Rpb24ubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYmJjMWYwYjE5MzVjNjJhNzkyNTZlZjA1ZWMyZjc0NmUwZTMz
NzE1MQotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbQpAQCAtMCwwICsxLDk4
IEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqIDEu
IFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0g
bXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhl
IGRpc3RyaWJ1dGlvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExF
IElOQy4gQU5EIElUUyBDT05UUklCVVRPUlMgYGBBUyBJUycnCisgKiBBTkQgQU5ZIEVYUFJFU1Mg
T1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKKyAq
IFRIRSBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIKKyAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNI
QUxMIEFQUExFIElOQy4gT1IgSVRTIENPTlRSSUJVVE9SUworICogQkUgTElBQkxFIEZPUiBBTlkg
RElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUgorICog
Q09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJP
Q1VSRU1FTlQgT0YKKyAqIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNF
LCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUworICogSU5URVJSVVBUSU9OKSBIT1dFVkVS
IENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4KKyAqIENP
TlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUIChJTkNMVURJTkcgTkVHTElHRU5DRSBP
UiBPVEhFUldJU0UpCisgKiBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YgVEhJ
UyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GCisgKiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VD
SCBEQU1BR0UuCisgKi8KKworI2ltcG9ydCAiY29uZmlnLmgiCisjaW1wb3J0ICJWaXJ0dWFsTG9j
YWxDb25uZWN0aW9uLmgiCisKKyNpZiBFTkFCTEUoV0VCX0FVVEhOKQorCisjaW1wb3J0ICJWaXJ0
dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCIKKyNpbXBvcnQgPEphdmFTY3JpcHRDb3Jl
L0FycmF5QnVmZmVyLmg+CisjaW1wb3J0IDxTZWN1cml0eS9TZWNJdGVtLmg+CisjaW1wb3J0IDxX
ZWJDb3JlL0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZS5oPgorI2ltcG9ydCA8V2ViQ29y
ZS9FeGNlcHRpb25EYXRhLmg+CisjaW1wb3J0IDx3dGYvUmVmLmg+CisjaW1wb3J0IDx3dGYvUnVu
TG9vcC5oPgorI2ltcG9ydCA8d3RmL3NwaS9jb2NvYS9TZWN1cml0eVNQSS5oPgorI2ltcG9ydCA8
d3RmL3RleHQvQmFzZTY0Lmg+CisjaW1wb3J0IDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KKworI2lt
cG9ydCAiTG9jYWxBdXRoZW50aWNhdGlvblNvZnRMaW5rLmgiCisKK25hbWVzcGFjZSBXZWJLaXQg
ewordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK1ZpcnR1YWxMb2NhbENvbm5lY3Rpb246OlZp
cnR1YWxMb2NhbENvbm5lY3Rpb24oY29uc3QgVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0
aW9uJiBjb25maWd1cmF0aW9uKQorICAgIDogbV9jb25maWd1cmF0aW9uKGNvbmZpZ3VyYXRpb24p
Cit7Cit9CisKK3ZvaWQgVmlydHVhbExvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlcihjb25zdCBT
dHJpbmcmLCBDbGllbnREYXRhVHlwZSwgU2VjQWNjZXNzQ29udHJvbFJlZiwgV2ViQ29yZTo6VXNl
clZlcmlmaWNhdGlvblJlcXVpcmVtZW50LCBVc2VyVmVyaWZpY2F0aW9uQ2FsbGJhY2smJiBjYWxs
YmFjaykKK3sKKyAgICAvLyBNb2NrIGFzeW5jIG9wZXJhdGlvbnMuCisgICAgUnVuTG9vcDo6bWFp
bigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjYWxsYmFjayA9IFdU
Rk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7Cisg
ICAgICAgICAgICBjYWxsYmFjayhVc2VyVmVyaWZpY2F0aW9uOjpObywgYWRvcHROUyhbYWxsb2NM
QUNvbnRleHRJbnN0YW5jZSgpIGluaXRdKS5nZXQoKSk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKyAgICAgICAgQVNTRVJUKHdlYWtUaGlzLT5tX2NvbmZpZ3VyYXRpb24udHJhbnNw
b3J0ID09IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKKworICAgICAgICBVc2Vy
VmVyaWZpY2F0aW9uIHVzZXJWZXJpZmljYXRpb24gPSB3ZWFrVGhpcy0+bV9jb25maWd1cmF0aW9u
LmlzVXNlclZlcmlmaWVkID8gVXNlclZlcmlmaWNhdGlvbjo6WWVzIDogVXNlclZlcmlmaWNhdGlv
bjo6Tm87CisKKyAgICAgICAgY2FsbGJhY2sodXNlclZlcmlmaWNhdGlvbiwgYWRvcHROUyhbYWxs
b2NMQUNvbnRleHRJbnN0YW5jZSgpIGluaXRdKS5nZXQoKSk7CisgICAgfSk7Cit9CisKK3ZvaWQg
VmlydHVhbExvY2FsQ29ubmVjdGlvbjo6dmVyaWZ5VXNlcihTZWNBY2Nlc3NDb250cm9sUmVmLCBM
QUNvbnRleHQgKiwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChVc2VyVmVyaWZpY2F0aW9uKT4mJiBj
YWxsYmFjaykKK3sKKyAgICAvLyBNb2NrIGFzeW5jIG9wZXJhdGlvbnMuCisgICAgUnVuTG9vcDo6
bWFpbigpLmRpc3BhdGNoKFt3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9LCBjYWxsYmFjayA9
IFdURk1vdmUoY2FsbGJhY2spXSgpIG11dGFibGUgeworICAgICAgICBpZiAoIXdlYWtUaGlzKSB7
CisgICAgICAgICAgICBjYWxsYmFjayhVc2VyVmVyaWZpY2F0aW9uOjpObyk7CisgICAgICAgICAg
ICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgQVNTRVJUKHdlYWtUaGlzLT5tX2NvbmZpZ3Vy
YXRpb24udHJhbnNwb3J0ID09IEF1dGhlbnRpY2F0b3JUcmFuc3BvcnQ6OkludGVybmFsKTsKKwor
ICAgICAgICBVc2VyVmVyaWZpY2F0aW9uIHVzZXJWZXJpZmljYXRpb24gPSB3ZWFrVGhpcy0+bV9j
b25maWd1cmF0aW9uLmlzVXNlclZlcmlmaWVkID8gVXNlclZlcmlmaWNhdGlvbjo6WWVzIDogVXNl
clZlcmlmaWNhdGlvbjo6Tm87CisKKyAgICAgICAgY2FsbGJhY2sodXNlclZlcmlmaWNhdGlvbik7
CisgICAgfSk7Cit9CisKK3ZvaWQgVmlydHVhbExvY2FsQ29ubmVjdGlvbjo6Z2V0QXR0ZXN0YXRp
b24oU2VjS2V5UmVmLCBOU0RhdGEgKiwgTlNEYXRhICosIEF0dGVzdGF0aW9uQ2FsbGJhY2smJiBj
YWxsYmFjaykgY29uc3QKK3sKKyAgICAvLyBNb2NrIGFzeW5jIG9wZXJhdGlvbnMuCisgICAgUnVu
TG9vcDo6bWFpbigpLmRpc3BhdGNoKFtjYWxsYmFjayA9IFdURk1vdmUoY2FsbGJhY2spXSgpIG11
dGFibGUgeworICAgICAgICBjYWxsYmFjayhOVUxMLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46
QCJXZWJBdXRoZW50aWNhdGlvbiIgY29kZTotMSB1c2VySW5mbzpAeyBOU0xvY2FsaXplZERlc2Ny
aXB0aW9uS2V5OiBAIlRoZSBvcGVyYXRpb24gY291bGRuJ3QgY29tcGxldGUuIiB9XSk7CisgICAg
fSk7Cit9CisKK3ZvaWQgVmlydHVhbExvY2FsQ29ubmVjdGlvbjo6ZmlsdGVyUmVzcG9uc2VzKFZl
Y3RvcjxSZWY8QXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPj4mIHJlc3BvbnNlcykgY29u
c3QKK3sKK30KKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRpZiAvLyBFTkFCTEUoV0VC
X0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5oCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk4
NjhmM2NlODQyNWIyYjlmNjFlZDFmZmI5YjVmMWU2ZmFmNmZiNDUKLS0tIC9kZXYvbnVsbAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9WaXJ0dWFsL1ZpcnR1
YWxTZXJ2aWNlLmgKQEAgLTAsMCArMSw0OCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUg
bXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4gUmVkaXN0
cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmln
aHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1h
dGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKgorICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFORCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMg
SVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCisgKiBQVVJQT1NFIEFSRSBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SIElUUyBDT05UUklCVVRP
UlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQ
RUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GCisgKiBTVUJTVElUVVRFIEdPT0RT
IE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MK
KyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkgT0YgTElB
QklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9S
VCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKQorICogQVJJU0lORyBJTiBBTlkg
V0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRgor
ICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQor
CisjaWYgRU5BQkxFKFdFQl9BVVRITikKKworI2luY2x1ZGUgIkF1dGhlbnRpY2F0b3JUcmFuc3Bv
cnRTZXJ2aWNlLmgiCisjaW5jbHVkZSAiVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9u
LmgiCisKK25hbWVzcGFjZSBXZWJLaXQgeworCitjbGFzcyBWaXJ0dWFsU2VydmljZSA6IHB1Ymxp
YyBBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZSB7CitwdWJsaWM6CisgICAgZXhwbGljaXQg
VmlydHVhbFNlcnZpY2UoT2JzZXJ2ZXImLCBjb25zdCBWZWN0b3I8VmlydHVhbEF1dGhlbnRpY2F0
b3JDb25maWd1cmF0aW9uPiYpOworCisgICAgc3RhdGljIFVuaXF1ZVJlZjxBdXRoZW50aWNhdG9y
VHJhbnNwb3J0U2VydmljZT4gY3JlYXRlVmlydHVhbChXZWJDb3JlOjpBdXRoZW50aWNhdG9yVHJh
bnNwb3J0LCBPYnNlcnZlciYsIGNvbnN0IFZlY3RvcjxWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZp
Z3VyYXRpb24+JiBjb25maWdzKTsKK3ByaXZhdGU6CisgICAgdm9pZCBzdGFydERpc2NvdmVyeUlu
dGVybmFsKCkgZmluYWw7CisKKyAgICBWZWN0b3I8VmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1
cmF0aW9uPiBtX2NvbmZpZ3VyYXRpb25zOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisK
KyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vVmlydHVhbC9WaXJ0dWFsU2VydmljZS5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNl
cnZpY2UubW0KbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZThiMWZiNTNjYjUyODNkYWI0YmY1NGIzZWVjM2NlZTNlNWM1
MTUwOAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1ZpcnR1YWwvVmlydHVhbFNlcnZpY2UubW0KQEAgLTAsMCArMSw2NSBAQAorLyoK
KyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKiAxLiBSZWRpc3Ry
aWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAor
ICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBk
aXNjbGFpbWVyLgorICogMi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNv
bmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgIGRvY3Vt
ZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmli
dXRpb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIEFO
RCBJVFMgQ09OVFJJQlVUT1JTIGBgQVMgSVMnJworICogQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJ
RUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCisgKiBUSEUgSU1Q
TElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJU
SUNVTEFSCisgKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBM
RSBJTkMuIE9SIElUUyBDT05UUklCVVRPUlMKKyAqIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IKKyAqIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GCisgKiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MKKyAqIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOCisgKiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVCAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKQorICogQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRgorICogVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LgorICovCisKKyNpbXBvcnQgImNvbmZpZy5oIgorI2ltcG9ydCAiVmlydHVhbFNlcnZpY2UuaCIK
KworI2lmIEVOQUJMRShXRUJfQVVUSE4pCisKKyNpbXBvcnQgIkxvY2FsQXV0aGVudGljYXRvci5o
IgorI2ltcG9ydCAiVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oIgorI2ltcG9ydCA8d3RmL3RleHQv
V1RGU3RyaW5nLmg+CisKK25hbWVzcGFjZSBXZWJLaXQgeworCitWaXJ0dWFsU2VydmljZTo6Vmly
dHVhbFNlcnZpY2UoT2JzZXJ2ZXImIG9ic2VydmVyLCBjb25zdCBWZWN0b3I8VmlydHVhbEF1dGhl
bnRpY2F0b3JDb25maWd1cmF0aW9uPiYgY29uZmlndXJhdGlvbnMpCisgICAgOiBBdXRoZW50aWNh
dG9yVHJhbnNwb3J0U2VydmljZShvYnNlcnZlciksIG1fY29uZmlndXJhdGlvbnMoY29uZmlndXJh
dGlvbnMpCit7Cit9CisKK1VuaXF1ZVJlZjxBdXRoZW50aWNhdG9yVHJhbnNwb3J0U2VydmljZT4g
VmlydHVhbFNlcnZpY2U6OmNyZWF0ZVZpcnR1YWwoV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5z
cG9ydCB0cmFuc3BvcnQsIE9ic2VydmVyJiBvYnNlcnZlciwgIGNvbnN0IFZlY3RvcjxWaXJ0dWFs
QXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24+JiBjb25maWdzKQoreworICAgIHJldHVybiBtYWtl
VW5pcXVlUmVmPFZpcnR1YWxTZXJ2aWNlPihvYnNlcnZlciwgY29uZmlncyk7Cit9CisKK3ZvaWQg
VmlydHVhbFNlcnZpY2U6OnN0YXJ0RGlzY292ZXJ5SW50ZXJuYWwoKQoreworCisgICAgZm9yIChh
dXRvJiBjb25maWcgOiBtX2NvbmZpZ3VyYXRpb25zKSB7CisgICAgICAgIGlmICghb2JzZXJ2ZXIo
KSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgc3dpdGNoIChjb25maWcudHJhbnNwb3J0
KSB7CisgICAgICAgIGNhc2UgV2ViQ29yZTo6QXV0aGVudGljYXRvclRyYW5zcG9ydDo6SW50ZXJu
YWw6CisgICAgICAgICAgICBvYnNlcnZlcigpLT5hdXRoZW50aWNhdG9yQWRkZWQoTG9jYWxBdXRo
ZW50aWNhdG9yOjpjcmVhdGUobWFrZVVuaXF1ZVJlZjxWaXJ0dWFsTG9jYWxDb25uZWN0aW9uPihj
b25maWcpKSk7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGRlZmF1bHQ6CisgICAg
ICAgICAgICBVTklNUExFTUVOVEVEKCk7CisgICAgICAgIH0KKyAgICB9Cit9CisKK30gLy8gbmFt
ZXNwYWNlIFdlYktpdAorCisjZW5kaWYgLy8gRU5BQkxFKFdFQl9BVVRITikKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNpdGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuY3Bw
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5j
cHAKaW5kZXggM2JkNDhiYjVmMzBlOTNlY2Y4MGQzZjc4M2FkYjJiODM5NzQ5MGIyYS4uYmMyMjM3
OWJhNzY2M2FjYTZiMmQxMTc2NmMxOTU4MDNhN2UwMzA2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5jcHAKQEAg
LTgyLDYgKzgyLDEwIEBACiAjaW5jbHVkZSAiRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaCIKICNl
bmRpZgogCisjaWYgRU5BQkxFKFdFQl9BVVRITikKKyNpbmNsdWRlICJWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXIuaCIKKyNlbmRpZiAvLyBFTkFCTEUoV0VCX0FVVEhOKQorCiBuYW1lc3BhY2Ug
V2ViS2l0IHsKIAogc3RhdGljIGJvb2wgYWxsb3dzV2Vic2l0ZURhdGFSZWNvcmRzRm9yQWxsT3Jp
Z2luczsKQEAgLTE5NDUsNiArMTk0OSwxMyBAQCB2b2lkIFdlYnNpdGVEYXRhU3RvcmU6OnNldE1v
Y2tXZWJBdXRoZW50aWNhdGlvbkNvbmZpZ3VyYXRpb24oV2ViQ29yZTo6TW9ja1dlYkF1dAogICAg
IH0KICAgICBzdGF0aWNfY2FzdDxNb2NrQXV0aGVudGljYXRvck1hbmFnZXIqPigmbV9hdXRoZW50
aWNhdG9yTWFuYWdlciktPnNldFRlc3RDb25maWd1cmF0aW9uKFdURk1vdmUoY29uZmlndXJhdGlv
bikpOwogfQorCitWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXImIFdlYnNpdGVEYXRhU3RvcmU6
OnZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlcigpCit7CisgICAgaWYgKCFtX2F1dGhlbnRpY2F0
b3JNYW5hZ2VyLT5pc1ZpcnR1YWwoKSkKKyAgICAgICAgbV9hdXRoZW50aWNhdG9yTWFuYWdlciA9
IG1ha2VVbmlxdWVSZWY8VmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyPigpOworICAgIHJldHVy
biBzdGF0aWNfY2FzdDxWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXImPihtX2F1dGhlbnRpY2F0
b3JNYW5hZ2VyLmdldCgpKTsKK30KICNlbmRpZgogCiBBUEk6OkhUVFBDb29raWVTdG9yZSYgV2Vi
c2l0ZURhdGFTdG9yZTo6Y29va2llU3RvcmUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2Vic2l0ZURhdGEvV2Vic2l0ZURhdGFTdG9yZS5oCmluZGV4IDE1MDQ2YmU1YjVl
NDBmZjFiNzg1ZWM1NGNiNGI1ZTQxYzBiNWM3MGIuLjYxOTYyODBmNzZkYTEyMDI5OGUyYjdhYjE2
NDA1ZDJmMGJhMjg5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYnNp
dGVEYXRhL1dlYnNpdGVEYXRhU3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJzaXRlRGF0YS9XZWJzaXRlRGF0YVN0b3JlLmgKQEAgLTg3LDYgKzg3LDcgQEAgY2xhc3MgU2Vj
S2V5UHJveHlTdG9yZTsKIGNsYXNzIERldmljZUlkSGFzaFNhbHRTdG9yYWdlOwogY2xhc3MgTmV0
d29ya1Byb2Nlc3NQcm94eTsKIGNsYXNzIFNPQXV0aG9yaXphdGlvbkNvb3JkaW5hdG9yOworY2xh
c3MgVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyOwogY2xhc3MgV2ViUGFnZVByb3h5OwogY2xh
c3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJQcm9jZXNzUHJveHk7CkBAIC0zMDcsNiArMzA4
LDcgQEAgcHVibGljOgogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAgICAgQXV0aGVudGljYXRvck1h
bmFnZXImIGF1dGhlbnRpY2F0b3JNYW5hZ2VyKCkgeyByZXR1cm4gbV9hdXRoZW50aWNhdG9yTWFu
YWdlci5nZXQoKTsgfQogICAgIHZvaWQgc2V0TW9ja1dlYkF1dGhlbnRpY2F0aW9uQ29uZmlndXJh
dGlvbihXZWJDb3JlOjpNb2NrV2ViQXV0aGVudGljYXRpb25Db25maWd1cmF0aW9uJiYpOworICAg
IFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlciYgdmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2Vy
KCk7CiAjZW5kaWYKIAogICAgIGNvbnN0IFdlYnNpdGVEYXRhU3RvcmVDb25maWd1cmF0aW9uJiBj
b25maWd1cmF0aW9uKCkgeyByZXR1cm4gbV9jb25maWd1cmF0aW9uLmdldCgpOyB9CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291
cmNlL1dlYktpdC9XZWJLaXQueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA0YzkwZTcx
MTQxMTk1ZDNlOTQ4ZTc4MzZhYzJkOGMwYzUyNTgyYzUyLi5iNWQ2N2FhODk3NDkwMWI1ZTViZmZj
NjRlM2M1NWEyZjQ1YmQ0ZjllIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYktpdC54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViS2l0Lnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTEwNDksNiArMTA0OSwxMyBAQAogCQk1MUZEMThCNjE2NTFG
QkFEMDBEQkUxQ0UgLyogTmV0d29ya1Jlc291cmNlTG9hZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MUZEMThCNDE2NTFGQkFEMDBEQkUxQ0UgLyog
TmV0d29ya1Jlc291cmNlTG9hZGVyLmggKi87IH07CiAJCTUyNzJENEM5MUU3MzVGMDkwMEVCNDI5
MCAvKiBXS1Byb3RlY3Rpb25TcGFjZU5TLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWls
ZEZpbGU7IGZpbGVSZWYgPSA1MjcyRDRDNzFFNzM1RjA5MDBFQjQyOTAgLyogV0tQcm90ZWN0aW9u
U3BhY2VOUy5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCTUyOEMzN0MxMTk1Q0JCMUEwMEQ4QjlDQyAvKiBXS0JhY2tGb3J3YXJkTGlzdFByaXZhdGUu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFBOUYyODEw
MTk1OEY0NzgwMDhDQUM3MiAvKiBXS0JhY2tGb3J3YXJkTGlzdFByaXZhdGUuaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OworCQk1MkNEQzVDNDI3MzFEQTBE
MDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggaW4gSGVhZGVy
cyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVCRDI3MzFEQTBDMDBB
M0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmggKi87IH07CisJCTUy
Q0RDNUM1MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5tbSBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUJFMjczMURBMEMwMEEzRTNF
QiAvKiBWaXJ0dWFsU2VydmljZS5tbSAqLzsgfTsKKwkJNTJDREM1QzYyNzMxREEwRDAwQTNFM0VC
IC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSA1MkNEQzVCRjI3MzFEQTBDMDBBM0UzRUIgLyogVmly
dHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLzsgfTsKKwkJNTJDREM1QzcyNzMxREEwRDAw
QTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUMwMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0
dWFsTG9jYWxDb25uZWN0aW9uLmggKi87IH07CisJCTUyQ0RDNUM4MjczMURBMEQwMEEzRTNFQiAv
KiBWaXJ0dWFsU2VydmljZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBm
aWxlUmVmID0gNTJDREM1QzEyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNlLmggKi87
IH07CisJCTUyQ0RDNUM5MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9u
Lm1tIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJDREM1
QzIyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxMb2NhbENvbm5lY3Rpb24ubW0gKi87IH07CisJ
CTUyQ0RDNUNBMjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIu
aCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUyQ0RDNUMz
MjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLzsgfTsK
IAkJNTJENUExQjAxQzU3NDk1QTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94
eS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gNTJENUEx
QUExQzU3NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovOyB9
OwogCQk1MkYwNjBFMTE2NTQzMTg1MDBGMzI4MUIgLyogTmV0d29ya0NvbnRlbnRSdWxlTGlzdE1h
bmFnZXJNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gNTJGMDYwREQxNjU0MzE3NTAwRjMyODFCIC8qIE5ldHdvcmtDb250ZW50
UnVsZUxpc3RNYW5hZ2VyTWVzc2FnZVJlY2VpdmVyLmNwcCAqLzsgfTsKIAkJNTMyMTU5NTUxREJB
RTcyOTAwNTRBQTNDIC8qIE5ldHdvcmtTZXNzaW9uQ29jb2EuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDUzMjE1OTUwMURCQUU2RDcwMDU0QUEzQyAvKiBO
ZXR3b3JrU2Vzc2lvbkNvY29hLmggKi87IH07CkBAIC00MDY5LDYgKzQwNzYsMTMgQEAKIAkJNTFG
RDE4QjQxNjUxRkJBRDAwREJFMUNFIC8qIE5ldHdvcmtSZXNvdXJjZUxvYWRlci5oICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBOZXR3b3JrUmVzb3VyY2VMb2FkZXIuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzcxRTczNUYwOTAwRUI0MjkwIC8qIFdLUHJv
dGVjdGlvblNwYWNlTlMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBuYW1lID0gV0tQcm90
ZWN0aW9uU3BhY2VOUy5oOyBwYXRoID0gbWFjL1dLUHJvdGVjdGlvblNwYWNlTlMuaDsgc291cmNl
VHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTI3MkQ0QzgxRTczNUYwOTAwRUI0MjkwIC8qIFdLUHJv
dGVjdGlvblNwYWNlTlMubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IG5hbWUg
PSBXS1Byb3RlY3Rpb25TcGFjZU5TLm1tOyBwYXRoID0gbWFjL1dLUHJvdGVjdGlvblNwYWNlTlMu
bW07IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUJEMjczMURBMEMwMEEzRTNF
QiAvKiBWaXJ0dWFsQXV0aGVudGljYXRvckNvbmZpZ3VyYXRpb24uaCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuYy5oOyBwYXRoID0gVmlydHVhbEF1dGhlbnRpY2F0b3JDb25maWd1cmF0aW9uLmg7IHNv
dXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUJFMjczMURBMEMwMEEzRTNFQiAvKiBW
aXJ0dWFsU2VydmljZS5tbSAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rp
bmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLm9iamNwcDsgcGF0aCA9
IFZpcnR1YWxTZXJ2aWNlLm1tOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQk1MkNEQzVC
RjI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmNwcCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFZpcnR1YWxBdXRoZW50aWNhdG9yTWFu
YWdlci5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUMwMjczMURBMEMw
MEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJl
ZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmMuaDsgcGF0aCA9IFZpcnR1YWxMb2NhbENvbm5lY3Rpb24uaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKKwkJNTJDREM1QzEyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2aWNlLmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFZpcnR1YWxTZXJ2aWNlLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCTUyQ0RDNUMyMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0
dWFsTG9jYWxDb25uZWN0aW9uLm1tICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAub2JqY3BwOyBw
YXRoID0gVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbTsgc291cmNlVHJlZSA9ICI8Z3JvdXA+Ijsg
fTsKKwkJNTJDREM1QzMyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yTWFu
YWdlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQUExQzU3
NDk0RTAwREUzNEEzIC8qIFZpZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5oICovID0ge2lzYSA9
IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0g
c291cmNlY29kZS5jLmg7IHBhdGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJNTJENUExQUIxQzU3NDk0RTAwREUzNEEzIC8qIFZp
ZGVvRnVsbHNjcmVlbk1hbmFnZXJQcm94eS5tZXNzYWdlcy5pbiAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBh
dGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubWVzc2FnZXMuaW47IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCTUyRDVBMUFDMUM1NzQ5NEUwMERFMzRBMyAvKiBWaWRlb0Z1bGxz
Y3JlZW5NYW5hZ2VyUHJveHkubW0gKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5vYmpjcHA7IHBh
dGggPSBWaWRlb0Z1bGxzY3JlZW5NYW5hZ2VyUHJveHkubW07IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC04NzQwLDYgKzg3NTQsMjAgQEAKIAkJCXBhdGggPSBpb3M7CiAJCQlzb3VyY2VU
cmVlID0gIjxncm91cD4iOwogCQl9OworCQk1MkNEQzVCQzI3MzFEQTBDMDBBM0UzRUIgLyogVmly
dHVhbCAqLyA9IHsKKwkJCWlzYSA9IFBCWEdyb3VwOworCQkJY2hpbGRyZW4gPSAoCisJCQkJNTJD
REM1QkQyNzMxREEwQzAwQTNFM0VCIC8qIFZpcnR1YWxBdXRoZW50aWNhdG9yQ29uZmlndXJhdGlv
bi5oICovLAorCQkJCTUyQ0RDNUJGMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsQXV0aGVudGlj
YXRvck1hbmFnZXIuY3BwICovLAorCQkJCTUyQ0RDNUMzMjczMURBMEMwMEEzRTNFQiAvKiBWaXJ0
dWFsQXV0aGVudGljYXRvck1hbmFnZXIuaCAqLywKKwkJCQk1MkNEQzVDMDI3MzFEQTBDMDBBM0Uz
RUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oICovLAorCQkJCTUyQ0RDNUMyMjczMURBMEMw
MEEzRTNFQiAvKiBWaXJ0dWFsTG9jYWxDb25uZWN0aW9uLm1tICovLAorCQkJCTUyQ0RDNUMxMjcz
MURBMEMwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5oICovLAorCQkJCTUyQ0RDNUJFMjczMURB
MEMwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5tbSAqLywKKwkJCSk7CisJCQlwYXRoID0gVmly
dHVhbDsKKwkJCXNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7CisJCX07CiAJCTU1MDY0MDlDMjQwNzE1
QUEwMEFBRTA0NSAvKiBncmFwaGljcyAqLyA9IHsKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hp
bGRyZW4gPSAoCkBAIC04OTM5LDYgKzg5NjcsNyBAQAogCQkJCTU3RENFRDlFMjE0OEY5RDEwMDE2
Qjg0NyAvKiBDb2NvYSAqLywKIAkJCQk1NzU5N0VCRjIxODE4NEIyMDAzN0Y5MjQgLyogZmlkbyAq
LywKIAkJCQk1N0RDRURCRDIxNEM5RkE5MDAxNkI4NDcgLyogTW9jayAqLywKKwkJCQk1MkNEQzVC
QzI3MzFEQTBDMDBBM0UzRUIgLyogVmlydHVhbCAqLywKIAkJCQk1N0RDRURBNDIxNDlFNjRBMDAx
NkI4NDcgLyogQXV0aGVudGljYXRvci5jcHAgKi8sCiAJCQkJNTdEQ0VEOEIyMTQ4NUJENzAwMTZC
ODQ3IC8qIEF1dGhlbnRpY2F0b3IuaCAqLywKIAkJCQk1N0RDRUQ4NTIxNDczNjNBMDAxNkI4NDcg
LyogQXV0aGVudGljYXRvck1hbmFnZXIuY3BwICovLApAQCAtMTIzMzUsNiArMTIzNjQsMTAgQEAK
IAkJCQkyRDgxOUJBMjE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRyeUNvbGxl
Y3Rvck1lc3NhZ2VzLmggaW4gSGVhZGVycyAqLywKIAkJCQkyRDZDRDExOTE4OTA1OEE1MDBFNUE0
QTAgLyogVmlld1NuYXBzaG90U3RvcmUuaCBpbiBIZWFkZXJzICovLAogCQkJCTI2ODQwNTUzMThC
ODZFRDYwMDIyQzM4QiAvKiBWaWV3VXBkYXRlRGlzcGF0Y2hlck1lc3NhZ2VzLmggaW4gSGVhZGVy
cyAqLywKKwkJCQk1MkNEQzVDNDI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0
b3JDb25maWd1cmF0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQk1MkNEQzVDQTI3MzFEQTBEMDBB
M0UzRUIgLyogVmlydHVhbEF1dGhlbnRpY2F0b3JNYW5hZ2VyLmggaW4gSGVhZGVycyAqLywKKwkJ
CQk1MkNEQzVDNzI3MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJNTJDREM1QzgyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1YWxTZXJ2
aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkyNjg0MDU0NDE4Qjg1QTYzMDAyMkMzOEIgLyogVmlz
aWJsZUNvbnRlbnRSZWN0VXBkYXRlSW5mby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMkRENUE3Mjkx
RUJGMDhENTAwOUJBNTk3IC8qIFZpc2libGVXZWJQYWdlQ291bnRlci5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMzE1NUVFMEQyNjczRjRGMDAwODVFNTlBIC8qIFZpc2lvbktpdFNQSS5oIGluIEhlYWRl
cnMgKi8sCkBAIC0xNDM5MCw2ICsxNDQyMyw5IEBACiAJCQkJMkQxQjVENUQxODU4NjlDODAwNkM2
NTk2IC8qIFZpZXdHZXN0dXJlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNl
cyAqLywKIAkJCQkyRDgxOUJBMTE4NjI4MDBFMDAxRjAzRDEgLyogVmlld0dlc3R1cmVHZW9tZXRy
eUNvbGxlY3Rvck1lc3NhZ2VSZWNlaXZlci5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkyNjg0MDU1
MjE4Qjg2RUQ2MDAyMkMzOEIgLyogVmlld1VwZGF0ZURpc3BhdGNoZXJNZXNzYWdlUmVjZWl2ZXIu
Y3BwIGluIFNvdXJjZXMgKi8sCisJCQkJNTJDREM1QzYyNzMxREEwRDAwQTNFM0VCIC8qIFZpcnR1
YWxBdXRoZW50aWNhdG9yTWFuYWdlci5jcHAgaW4gU291cmNlcyAqLywKKwkJCQk1MkNEQzVDOTI3
MzFEQTBEMDBBM0UzRUIgLyogVmlydHVhbExvY2FsQ29ubmVjdGlvbi5tbSBpbiBTb3VyY2VzICov
LAorCQkJCTUyQ0RDNUM1MjczMURBMEQwMEEzRTNFQiAvKiBWaXJ0dWFsU2VydmljZS5tbSBpbiBT
b3VyY2VzICovLAogCQkJCTFBNjAyMjRDMThDMTZCOUYwMEMzRThDOSAvKiBWaXNpdGVkTGlua1N0
b3JlTWVzc2FnZVJlY2VpdmVyLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBOEU3RDNDMThDMTUx
NDkwMDVBNzAyQSAvKiBWaXNpdGVkTGlua1RhYmxlQ29udHJvbGxlck1lc3NhZ2VSZWNlaXZlci5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQk1N0RDRUQ3MDIxNDJFRTY4MDAxNkI4NDcgLyogV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHlNZXNzYWdlUmVjZWl2ZXIuY3BwIGluIFNvdXJjZXMg
Ki8sCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>