<?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>222240</bug_id>
          
          <creation_ts>2021-02-20 16:40:28 -0800</creation_ts>
          <short_desc>[WebAuthn] Using WebAuthn within cross-origin iframe elements</short_desc>
          <delta_ts>2022-05-26 14:47:28 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>234180</dependson>
          <blocked>237399</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Mathieu Perreault">mathieu.perreault</reporter>
          <assigned_to name="pascoe@apple.com">pascoe</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>cdumez</cc>
    
    <cc>jiewen_tan</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>loginllama</cc>
    
    <cc>pascoe</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>timcappalli</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>wilander</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1731886</commentid>
    <comment_count>0</comment_count>
    <who name="Mathieu Perreault">mathieu.perreault</who>
    <bug_when>2021-02-20 16:40:28 -0800</bug_when>
    <thetext>As mentioned in the  WebAuthn Level 2 editor&apos;s draft at https://w3c.github.io/webauthn/#sctn-iframe-guidance, functionality to get credentials from a cross-origin iframe should be enabled if the iframe has the allow=&quot;publickey-credentials-get&quot; attribute/value pair. Other browsers implementers have implemented this capability and my group sees a relevant use case for this in our product.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1734246</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-02-27 16:41:13 -0800</bug_when>
    <thetext>&lt;rdar://problem/74830748&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1735342</commentid>
    <comment_count>2</comment_count>
    <who name="login Llama">loginllama</who>
    <bug_when>2021-03-03 10:15:29 -0800</bug_when>
    <thetext>Agreed This is important for Paments and a number of other use-cases.  It should be part of WebAuthn level 2 support.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809698</commentid>
    <comment_count>3</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-28 09:23:20 -0700</bug_when>
    <thetext>WebKit on Cocoa platforms (and possibly other platforms too) block cookies for cross-site resources by default. All other state and storage is partitioned per first-party site. Whatever this support entails must not regress the privacy protections we already have in place. One way of resolving this is to tie it to the Storage Access API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809699</commentid>
    <comment_count>4</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-28 09:24:12 -0700</bug_when>
    <thetext>It would also be good to know if cross-origin but same-site would be sufficient since that is currently not a privacy boundary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809756</commentid>
    <comment_count>5</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-10-28 11:09:34 -0700</bug_when>
    <thetext>I&apos;m curious about what allowing WebAuthn within a cross-origin i-frame might reveal. The dialog messages show what site is requesting the WebAuthn panel. 

For example, if we implement this and site1.com embeds a google.com webauthn login page, the dialog would show &quot;google.com&quot; is asking to login.

I have seen some discussion of the embedded document obtaining information about the state of the embedding page via if certain calls pass/fail (therefore obtaining information about the i-frame&apos;s allow property) here: https://www.w3.org/TR/permissions-policy-1/#privacy-expose-policy . But we already implement several feature policies for camera, fullscreen, microphone, etc in https://github.com/WebKit/WebKit/blob/main/Source/WebCore/html/FeaturePolicy.cpp . I don&apos;t see anything anything special about WebAuthn where we might want to restrict the use further.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809764</commentid>
    <comment_count>6</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-28 11:25:38 -0700</bug_when>
    <thetext>The Storage Access API is the only shipping way to request a cross-site identity and the prompt tells the user that their activity may be tracked by the requesting party if they grant access.

Cross-site WebAuthn would have to convey the same information since as soon as the user is identified, that identity can be shared with the first party website or stored by the third-party in first-party storage.

This is not the same as asking for permission to use device features such as camera. This is about user identity and linking of user identity across websites.

See WebKit&apos;s tracking prevention policy: https://webkit.org/tracking-prevention-policy/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809766</commentid>
    <comment_count>7</comment_count>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2021-10-28 11:46:43 -0700</bug_when>
    <thetext>I don&apos;t see the change being asked for here as providing any special way of of transmitting information between the embedded document and the embedder, even if it&apos;s cross-origin. All the current restrictions on communication between the embedding document and the embedded document would still apply.

The webauthn spec specifies that Web Authentication should be disabled in i-frames with a feature policy to allow it here: https://www.w3.org/TR/webauthn-2/#sctn-iframe-guidance 

If a cross-origin embedded site needs to convey information after authentication, they would still need to use existing mechanisms to do it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1809769</commentid>
    <comment_count>8</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-10-28 11:58:03 -0700</bug_when>
    <thetext>(In reply to j_pascoe@apple.com from comment #7)
&gt; I don&apos;t see the change being asked for here as providing any special way of
&gt; of transmitting information between the embedded document and the embedder,
&gt; even if it&apos;s cross-origin. All the current restrictions on communication
&gt; between the embedding document and the embedded document would still apply.
&gt; 
&gt; The webauthn spec specifies that Web Authentication should be disabled in
&gt; i-frames with a feature policy to allow it here:
&gt; https://www.w3.org/TR/webauthn-2/#sctn-iframe-guidance 
&gt; 
&gt; If a cross-origin embedded site needs to convey information after
&gt; authentication, they would still need to use existing mechanisms to do it.

It&apos;s not about transmitting. It&apos;s about cross-site access to user IDs.

Today, in shipping WebKit, there is no automatic or invisible way to know a user identity in a cross-site iframe unless it has already been established. Such iframes have to call the Storage Access API on a user gesture in their iframe to request access to cookies. The Storage Access API prompt will inform the user that granting access means their activity may be tracked by the requesting party on this first-party website.

Once a cross-site iframe has access to a user identity it can use regular means to share that identity with the first-party, other third-parties, or with itself in the form of a third-party script running in the first-party context. The most common method is postMessage.

The privacy boundary is to make sure cross-site resources cannot identify the user without the user understanding the potential tracking risk involved. Allowing cross-site WebAuthn without informing the user of that risk would create a loophole in how we try to make sure users understand the privacy implications of their choices.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847680</commentid>
    <comment_count>9</comment_count>
      <attachid>453678</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-02 16:44:15 -0800</bug_when>
    <thetext>Created attachment 453678
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847937</commentid>
    <comment_count>10</comment_count>
      <attachid>453752</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-03 09:46:33 -0800</bug_when>
    <thetext>Created attachment 453752
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1847948</commentid>
    <comment_count>11</comment_count>
      <attachid>453754</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-03 10:00:03 -0800</bug_when>
    <thetext>Created attachment 453754
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848023</commentid>
    <comment_count>12</comment_count>
      <attachid>453772</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-03 12:02:44 -0800</bug_when>
    <thetext>Created attachment 453772
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848377</commentid>
    <comment_count>13</comment_count>
      <attachid>453772</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-03-04 12:26:21 -0800</bug_when>
    <thetext>Comment on attachment 453772
Patch

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

I think this is close, but needs a little work before it&apos;s ready to land. r- to adjust the naming and clean up some CredentialContainer:scope implementation.

&gt; Source/WebCore/ChangeLog:11
&gt; +        same-site to cross-origin with consent.

I had to read this sentence a few times. I propose:

&quot;&quot;&quot;
This patch relaxes the requirement to perform a Web Authentication assertion
inside an i-frame with the &quot;publickey-credentials-get&quot; feature policy from
&apos;same-site&apos; to &apos;cross-origin with consent&apos;.
&quot;&quot;&quot;

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:49
&gt; +std::pair&lt;WebAuthn::Scope, std::optional&lt;SecurityOriginData&gt;&gt; CredentialsContainer::scopeAndSingleParent()

Maybe &quot;singleParent&quot; should be called something like &quot;AuthenticationOrigin&quot;, or &quot;RelyingParty&quot;? I think we are authenticating in a frame (which is the relying party) on behalf of the main frame (which is the site seeking to do something based on the authentication succeeding in the frame).

Maybe we should call it  &quot;scopeAndCrossOriginParent&quot;?

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:64
&gt; +            parents.add(origin.data());

Collecting the set of parents really only makes sense if we have a plan to select one over the others due to some criteria. Since we seem only care about the first one we encounter, we should just store one:

if (!origin.isSameOriginAs(document-&gt;securityOrigin())) {
    isSameOrigin = false;
    if (!singleParent)
        singleParent = origin.data();
}

Or maybe:

if (isSameOrigin &amp;&amp; !origin.isSameOriginAs(document-&gt;securityOrigin())) {
    isSameOrigin = false;
    singleParent = origin.data();
}

Or maybe:

if (!singleParent &amp;&amp; !origin.isSameOriginAs(document-&gt;securityOrigin()))
    singleParent = origin.data()

... and get rid of the &apos;isSameOrigin&apos; flag entirely.

And maybe &quot;singleParent&quot; should be called &quot;crossOriginParent&quot;

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.h:62
&gt; +    std::pair&lt;WebAuthn::Scope, std::optional&lt;SecurityOriginData&gt;&gt; scopeAndSingleParent();

It might be worth declaring a typedef for this std::pair-based type, since you use it in a number of places.

&gt; Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp:205
&gt; +        promise.reject(Exception { NotAllowedError, &quot;The origin of the document is not the same as multiple of its ancestors.&quot;_s });

What does &quot;... not the same as multiple of its ancestors&quot; mean here? I think this would be clearer to say:

&gt; Source/WebKit/UIProcess/WebAuthentication/WebAuthenticatorCoordinatorProxy.cpp:87
&gt;                  }

I looks like the indentation of everything inside HAVE(UNIFIED_ASC_AUTH_UI) needs to be fixed (I realize this predates your change, but we should fix it).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848760</commentid>
    <comment_count>14</comment_count>
      <attachid>453986</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-07 08:07:21 -0800</bug_when>
    <thetext>Created attachment 453986
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1848819</commentid>
    <comment_count>15</comment_count>
      <attachid>453986</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-03-07 10:13:59 -0800</bug_when>
    <thetext>Comment on attachment 453986
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849040</commentid>
    <comment_count>16</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-07 17:04:53 -0800</bug_when>
    <thetext>Tools/Scripts/svn-apply failed to apply attachment 453986 to trunk.
Please resolve the conflicts and upload a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849298</commentid>
    <comment_count>17</comment_count>
      <attachid>454129</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-08 09:06:15 -0800</bug_when>
    <thetext>Created attachment 454129
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849301</commentid>
    <comment_count>18</comment_count>
      <attachid>454129</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2022-03-08 09:11:39 -0800</bug_when>
    <thetext>Comment on attachment 454129
Patch for landing

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

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:49
&gt; +ScopeAndCrossOriginParent CredentialsContainer::scopeAndCrossOriginParent()

Can this function be marked const? Doesn&apos;t seem like it should be causing mutations.

&gt; Source/WebCore/Modules/credentialmanagement/CredentialsContainer.cpp:52
&gt; +        return std::make_pair(WebAuthn::Scope::CrossOrigin, std::nullopt);

With C++17, you should be able to use `std::pair { WebAuthn::Scope::CrossOrigin, std::nullopt }`, instead of std::make_pair().

Same comment applies below.

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:185
&gt; +static RetainPtr&lt;ASCCredentialRequestContext&gt; configureRegistrationRequestContext(const PublicKeyCredentialCreationOptions&amp; options, Vector&lt;uint8_t&gt; hash, std::optional&lt;WebCore::GlobalFrameIdentifier&gt; globalFrameID)

We really shouldn&apos;t be passing vectors around by value.

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:250
&gt; +static inline RetainPtr&lt;ASCPublicKeyCredentialAssertionOptions&gt; configureAssertionOptions(const PublicKeyCredentialRequestOptions&amp; options, Vector&lt;uint8_t&gt; hash, ASCPublicKeyCredentialKind kind, const std::optional&lt;SecurityOriginData&gt;&amp; parentOrigin, RetainPtr&lt;NSMutableArray&lt;ASCPublicKeyCredentialDescriptor *&gt;&gt; allowedCredentials, RetainPtr&lt;NSString&gt; userVerification)

We really shouldn&apos;t be passing vectors around by value.

&gt; Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm:269
&gt; +static RetainPtr&lt;ASCCredentialRequestContext&gt; configurationAssertionRequestContext(const PublicKeyCredentialRequestOptions&amp; options, Vector&lt;uint8_t&gt; hash, std::optional&lt;WebCore::MediationRequirement&gt; mediation, std::optional&lt;WebCore::GlobalFrameIdentifier&gt; globalFrameID, std::optional&lt;WebCore::SecurityOriginData&gt;&amp; parentOrigin)

ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849309</commentid>
    <comment_count>19</comment_count>
      <attachid>454132</attachid>
    <who name="pascoe@apple.com">pascoe</who>
    <bug_when>2022-03-08 09:24:00 -0800</bug_when>
    <thetext>Created attachment 454132
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1849451</commentid>
    <comment_count>20</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-03-08 15:53:11 -0800</bug_when>
    <thetext>Committed r291018 (248192@main): &lt;https://commits.webkit.org/248192@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 454132.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1872130</commentid>
    <comment_count>21</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2022-05-26 14:47:28 -0700</bug_when>
    <thetext>This fix shipped with Safari 15.5 (all platforms).</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453678</attachid>
            <date>2022-03-02 16:44:15 -0800</date>
            <delta_ts>2022-03-02 17:21:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222240-20220302164414.patch</filename>
            <type>text/plain</type>
            <size>41326</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMjYwOTJkNDJkNzAz
ODE4M2E1OThjZjU0NzlhNjkwZDNiNTYxNC4uY2RlZDQ0MjA1MTRjMDczMDM2MzkxMzMyYzQ0ZmM5
YjE1ZTA4OWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTAyICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdl
YkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0g
YSBXZWIgQXV0aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1l
IHdpdGggdGhlICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9t
CisgICAgICAgIHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAg
ICAgIFRoZXJlIGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5
IGEgc2luZ2xlIGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUg
dXNlciBpbiB0aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAg
ICAgIHByb21wdCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQu
CisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxt
YW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjpzY29wZUFuZFNpbmdsZVBhcmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRl
bnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlh
bG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xp
ZW50Lmg6CisKIDIwMjItMDMtMDIgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4K
IAogICAgICAgICBBWDogSGFuZGxlIG51bGwgRmlsZUxpc3QgaW4gUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OmZpbGVUZXh0VmFsdWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMTMwNjUwMjM4Y2U2OTU1ZGJmOGI1
YjYxM2VmZTFkNDQ4YzYwNWQ5Li4xOTk4MTcxZWJhYzQyYmU5NmVhZTZkZjdjZGRhYjc5NTI5Y2Fi
NGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAzLTAyICBKIFBhc2NvZSAgPGpf
cGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdlYkF1dGhuIHdp
dGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
NzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0gYSBXZWIgQXV0
aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1lIHdpdGggdGhl
ICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9tCisgICAgICAg
IHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAgICAgIFRoZXJl
IGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xl
IGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUgdXNlciBpbiB0
aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAgICAgIHByb21w
dCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQuIAorCisgICAg
ICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25maWd1cmVBc3Nl
cnRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6Y29uZmlndXJhdGlvbkFzc2VydGlvblJl
cXVlc3RDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmNvbnRleHRGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmg6CisKIDIwMjItMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHRv
IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJvbVBpeGVsQnVmZmVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IDk2MDYwOGNhMTM1ZjhhYzY5NTZmYTljZjIz
ZjIzYTg5NTRlNDhhYzUuLmZjMGYzZmM1ZDRlY2VlODY3ODJlMDYwNWVjMGEzN2RmMjJkYTQyNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCkBAIC00NiwyNyArNDYs
MzMgQEAgQ3JlZGVudGlhbHNDb250YWluZXI6OkNyZWRlbnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8
RG9jdW1lbnQ+JiYgZG9jdW1lbnQpCiB7CiB9CiAKLVdlYkF1dGhuOjpTY29wZSBDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUoKQorc3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRp
b25hbDxTZWN1cml0eU9yaWdpbkRhdGE+PiBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c2NvcGVBbmRT
aW5nbGVQYXJlbnQoKQogewogICAgIGlmICghbV9kb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIFdl
YkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFp
cihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzdGQ6Om51bGxvcHQpOwogCiAgICAgYm9v
bCBpc1NhbWVPcmlnaW4gPSB0cnVlOwogICAgIGJvb2wgaXNTYW1lU2l0ZSA9IHRydWU7CiAgICAg
YXV0byYgb3JpZ2luID0gbV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvJiB1
cmwgPSBtX2RvY3VtZW50LT51cmwoKTsKKyAgICBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4g
cGFyZW50czsKICAgICBmb3IgKGF1dG8qIGRvY3VtZW50ID0gbV9kb2N1bWVudC0+cGFyZW50RG9j
dW1lbnQoKTsgZG9jdW1lbnQ7IGRvY3VtZW50ID0gZG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkp
IHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luRG9tYWluKGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKSAmJiAhYXJlUmVnaXN0cmFibGVEb21haW5zRXF1YWwodXJsLCBkb2N1bWVu
dC0+dXJsKCkpKQogICAgICAgICAgICAgaXNTYW1lU2l0ZSA9IGZhbHNlOwotICAgICAgICBpZiAo
IW9yaWdpbi5pc1NhbWVPcmlnaW5Bcyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkpCisgICAg
ICAgIGlmICghb3JpZ2luLmlzU2FtZU9yaWdpbkFzKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
KSkgewogICAgICAgICAgICAgaXNTYW1lT3JpZ2luID0gZmFsc2U7CisgICAgICAgICAgICBwYXJl
bnRzLmFkZChvcmlnaW4uZGF0YSgpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpc1Nh
bWVPcmlnaW4pCi0gICAgICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW47Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4s
IHN0ZDo6bnVsbG9wdCk7CiAgICAgaWYgKGlzU2FtZVNpdGUpCi0gICAgICAgIHJldHVybiBXZWJB
dXRobjo6U2NvcGU6OlNhbWVTaXRlOwotICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OkNyb3Nz
T3JpZ2luOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoV2ViQXV0aG46OlNjb3BlOjpT
YW1lU2l0ZSwgc3RkOjpudWxsb3B0KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2lu
RGF0YT4gc2luZ2xlUGFyZW50OworICAgIGlmIChwYXJlbnRzLnNpemUoKSA9PSAxKQorICAgICAg
ICBzaW5nbGVQYXJlbnQgPSAqcGFyZW50cy5iZWdpbigpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
cGFpcihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzaW5nbGVQYXJlbnQpOwogfQogCiB2
b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYg
b3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQpAQCAtOTgsNyArMTA0LDcgQEAg
dm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYm
IG9wdGlvbnMsIENyZWRlbnRpYWxQcm8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
ZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuZGlzY292ZXJGcm9t
RXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1vdmUob3B0aW9ucyksIHNjb3BlKCksIFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNv
b3JkaW5hdG9yKCkuZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1v
dmUob3B0aW9ucyksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCksIFdURk1vdmUocHJvbWlzZSkpOwog
fQogCiB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZShjb25zdCBCYXNpY0NyZWRlbnRp
YWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xMzMsNyArMTM5LDcgQEAgdm9p
ZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyYmIG9wdGlvbnMsIENyZWRlbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fZG9j
dW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuY3JlYXRlKCptX2RvY3Vt
ZW50LCBvcHRpb25zLnB1YmxpY0tleS52YWx1ZSgpLCBzY29wZSgpLCBXVEZNb3ZlKG9wdGlvbnMu
c2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5hdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IoKS5jcmVhdGUoKm1fZG9jdW1lbnQsIG9wdGlvbnMucHVibGlj
S2V5LnZhbHVlKCksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCkuZmlyc3QsIFdURk1vdmUob3B0aW9u
cy5zaWduYWwpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRh
aW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFs
bWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDlhNmIx
MmRkYzIyMjk4ZjQ3YzFlMzI5NjJiNmE2Y2YzOWViNWQ5MTIuLjIwMjI3MWJiZTdjY2U1ZjljNTk2
MWQ0NGQyMGQwM2VmYmI2NTkzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVy
LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiAKIHN0cnVjdCBDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOwogc3RydWN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK3N0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIGNsYXNzIENyZWRlbnRpYWxzQ29udGFpbmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8Q3JlZGVudGlhbHNDb250YWluZXI+IHsKIHB1YmxpYzoKQEAgLTU4LDcg
KzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFr
UHRyPERvY3VtZW50PiYmKTsKIAotICAgIFdlYkF1dGhuOjpTY29wZSBzY29wZSgpOworICAgIHN0
ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRh
Pj4gc2NvcGVBbmRTaW5nbGVQYXJlbnQoKTsKIAogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGFkMjBjMGE1ODI0MjhkNzgz
MWU5NGJlNWU4NTA0YjAxZjFmMjAzMWEuLmVmZGEyZThlMzY1MDJkYTM5MTg4NTM2NzdlMzMyMDIx
ZTM4YThjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgUHVibGljS2V5QwogICAgIG1fY2xpZW50LT5tYWtlQ3JlZGVudGlhbCgqZnJh
bWUsIGNhbGxlck9yaWdpbiwgY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZy
b21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBXZWJBdXRobjo6U2NvcGUgc2NvcGUsIENyZWRl
bnRpYWxQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQs
IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBjb25zdCBzdGQ6OnBh
aXI8V2ViQXV0aG46OlNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4+JiBz
Y29wZUFuZFNpbmdsZVBhcmVudCwgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAog
ewogICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDsK
IApAQCAtMTk1LDExICsxOTUsMTYgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRp
c2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICAvLyBU
aGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNj
cmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVjZW1iZXIgMjAxNy4KICAgICAvLyBTdGVwIDEsIDMs
IDEzIGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8gU3RlcCAyLgotICAgIC8vIFRo
aXMgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jc2N0bi1wZXJt
aXNzaW9ucy1wb2xpY3kgZXhjZXB0IG9ubHkgc2FtZS1zaXRlLCBjcm9zcy1vcmlnaW4gaXMgcGVy
bWl0dGVkLgotICAgIGlmIChzY29wZSAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYg
IShzY29wZSA9PSBXZWJBdXRobjo6U2NvcGU6OlNhbWVTaXRlICYmIGlzRmVhdHVyZVBvbGljeUFs
bG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1YmxpY2tl
eUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpO
bykpKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJh
dXRobi0yLyNzY3RuLXBlcm1pc3Npb25zLXBvbGljeQorICAgIGlmIChzY29wZUFuZFNpbmdsZVBh
cmVudC5maXJzdCAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYgIWlzRmVhdHVyZVBv
bGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1
YmxpY2tleUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWls
dXJlOjpObykpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dl
ZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIAorICAgIGlm
IChzY29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3Jp
Z2luICYmICFzY29wZUFuZFNpbmdsZVBhcmVudC5zZWNvbmQpIHsKKyAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9j
dW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIG11bHRpcGxlIG9mIGl0cyBhbmNlc3RvcnMuIl9zIH0p
OworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgLy8gU3RlcCA1LiBTa2lwcGVkIHNpbmNl
IFNlY3VyaXR5T3JpZ2luIGRvZXNuJ3QgaGF2ZSB0aGUgY29uY2VwdCBvZiAib3BhcXVlIG9yaWdp
biIuCiAgICAgLy8gU3RlcCA2LiBUaGUgZWZmZWN0aXZlIGRvbWFpbiBtYXkgYmUgcmVwcmVzZW50
ZWQgaW4gdmFyaW91cyBtYW5uZXJzLCBzdWNoIGFzIGEgZG9tYWluIG9yIGFuIGlwIGFkZHJlc3Mu
CkBAIC0yMzAsNyArMjM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2Nv
dmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICB9CiAKICAg
ICAvLyBTdGVwIDEwLTEyLgotICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBidWlsZENsaWVudERh
dGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmln
aW4sIHNjb3BlKTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0gYnVpbGRDbGllbnREYXRhSnNv
bihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luLCBz
Y29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCk7CiAgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2gg
PSBidWlsZENsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CiAKICAgICAvLyBTdGVw
IDQsIDE0LTE5LgpAQCAtMjU0LDcgKzI1OSw3IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lCiAg
ICAgICAgIHByb21pc2UucmVqZWN0KGV4Y2VwdGlvbi50b0V4Y2VwdGlvbigpKTsKICAgICB9Owog
ICAgIC8vIEFzeW5jIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgYW5kIGhhbmRsZWQgaW4gdGhl
IG1lc3Nlbmdlci4KLSAgICBtX2NsaWVudC0+Z2V0QXNzZXJ0aW9uKCpmcmFtZSwgY2FsbGVyT3Jp
Z2luLCBjbGllbnREYXRhSnNvbkhhc2gsIG9wdGlvbnMsIHJlcXVlc3RPcHRpb25zLm1lZGlhdGlv
biwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY2xpZW50LT5nZXRBc3NlcnRpb24oKmZyYW1l
LCBjYWxsZXJPcmlnaW4sIGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucywgcmVxdWVzdE9wdGlv
bnMubWVkaWF0aW9uLCBzY29wZUFuZFNpbmdsZVBhcmVudCwgV1RGTW92ZShjYWxsYmFjaykpOwog
fQogCiB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
IHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaAppbmRleCA0ZDlhYmE2OGU4ODgzMDUw
ODliZmUxOTMwYzM1MDhjYWRmNTNmZWVkLi5iZGVmZDE5ZjViM2EwNmEzMDcxNzJhMDU2NjJjMjc1
NzRkNWI1ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3Mg
RG9jdW1lbnQ7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsKIHN0
cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7CiBzdHJ1Y3QgQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCkBAIC01OSw3ICs2
MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbXBsZW1lbnQg
c3RhdGljIG1ldGhvZHMgb2YgUHVibGljS2V5Q3JlZGVudGlhbC4KICAgICB2b2lkIGNyZWF0ZShj
b25zdCBEb2N1bWVudCYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
LCBXZWJBdXRobjo6U2NvcGUsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgQ3JlZGVudGlhbFByb21p
c2UmJikgY29uc3Q7Ci0gICAgdm9pZCBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBE
b2N1bWVudCYsIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBXZWJBdXRobjo6U2NvcGUsIENy
ZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OworICAgIHZvaWQgZGlzY292ZXJGcm9tRXh0ZXJuYWxT
b3VyY2UoY29uc3QgRG9jdW1lbnQmLCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgY29uc3Qg
c3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRh
dGE+PiYsIENyZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5
aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExC
b29sZWFuPiYmKSBjb25zdDsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFi
bGUoRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JDbGllbnQuaAppbmRleCAzYmI2NWE4NmI4ZjMzZGNiMzYyNDZiODljZWZkOTZh
ZGIyN2I5M2IxLi44Y2U1NTI3ZTQwNjRmNzdhZjZhZTM1OWMxN2ZmZTdlN2Q2NDA3ZTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29y
ZGluYXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdlYkF1dGhuIHsKK2VudW0gY2xhc3MgU2NvcGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwpAQCAtNDMsNiArNDcsNyBAQCBlbnVt
IGNsYXNzIE1lZGlhdGlvblJlcXVpcmVtZW50IDogdWludDhfdDsKIHN0cnVjdCBBdXRoZW50aWNh
dG9yUmVzcG9uc2VEYXRhOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNl
Y3VyaXR5T3JpZ2luRGF0YTsKIAogdXNpbmcgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhJiYs
IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
JiYpPjsKIHVzaW5nIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPjsKQEAgLTU1LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvckNsaWVudCgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBtYWtlQ3JlZGVudGlhbChjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIGNvbnN0IHN0ZDo6cGFp
cjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBS
ZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc0NvbmRp
dGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJ
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZp
Y2VzQ29yZVNQSS5oCmluZGV4IDQyNDk5MGZhN2JkMTQ3NTIwNTIxMDdmYzNhZDIxODRjODUxZDUz
MjguLjhiZGFkODY3MDNiYzU5YjE2N2RjOWRmNTBjZTllMWFmNTQxOTBlYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXND
b3JlU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVudGlj
YXRpb25TZXJ2aWNlc0NvcmVTUEkuaApAQCAtMTY3LDYgKzE2Nyw4IEBAIHR5cGVkZWYgTlNfRU5V
TShOU1VJbnRlZ2VyLCBBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZCkgewogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PEFTQ1B1YmxpY0tl
eUNyZWRlbnRpYWxEZXNjcmlwdG9yICo+ICphbGxvd2VkQ3JlZGVudGlhbHM7CiAKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmRlc3RpbmF0aW9uU2l0ZUZv
ckNyb3NzU2l0ZUFzc2VydGlvbjsKKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KaW5kZXggZGUxNzRk
M2Y4MjkwN2EzZGU5ZTJjMmU0MDA3ZWVjMDAzY2Q3MWUxZi4uZWEzZDg1MjNlZDk1N2Y3ZjZjNjE5
OTM4MTRjYWU2MzRlMDZlNjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
bW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KQEAgLTIzNiw3ICsyMzYsMjcgQEAg
c3RhdGljIFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJl
Z2lzdHJhdGlvblJlcXVlc3RDb250ZXgKICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQ7CiB9CiAK
LXN0YXRpYyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBjb25maWd1cmF0
aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRleHQoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiBvcHRpb25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uKQorc3RhdGljIGlubGluZSBS
ZXRhaW5QdHI8QVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnM+IGNvbmZpZ3Vy
ZUFzc2VydGlvbk9wdGlvbnMoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiBvcHRpb25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtp
bmQga2luZCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRP
cmlnaW4sIFJldGFpblB0cjxOU011dGFibGVBcnJheTxBU0NQdWJsaWNLZXlDcmVkZW50aWFsRGVz
Y3JpcHRvciAqPj4gYWxsb3dlZENyZWRlbnRpYWxzLCBSZXRhaW5QdHI8TlNTdHJpbmc+IHVzZXJW
ZXJpZmljYXRpb24pCit7CisgICAgYXV0byBhc3NlcnRpb25PcHRpb25zID0gYWRvcHROUyhhbGxv
Y0FTQ1B1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25PcHRpb25zSW5zdGFuY2UoKSk7CisgICAg
aWYgKFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdp
dGhLaW5kOnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNlclZlcmlmaWNh
dGlvblByZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7CisgICAgICAgIGF1dG8gbnNI
YXNoID0gdG9OU0RhdGEoaGFzaCk7CisgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRo
S2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50
aWZpZXI6b3B0aW9ucy5ycElkIGNsaWVudERhdGFIYXNoOm5zSGFzaC5nZXQoKSB1c2VyVmVyaWZp
Y2F0aW9uUHJlZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFs
czphbGxvd2VkQ3JlZGVudGlhbHMuZ2V0KCldOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8g
Y2hhbGxlbmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFsbGVuZ2UpOworICAgICAg
ICBbYXNzZXJ0aW9uT3B0aW9ucyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtp
bmRQbGF0Zm9ybSByZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjaGFsbGVuZ2U6
Y2hhbGxlbmdlLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRp
b24uZ2V0KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Cisg
ICAgfQorICAgIGlmIChvcHRpb25zLmV4dGVuc2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVz
cG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRFeHRlbnNpb25zOildKQorICAgICAgICBbYXNz
ZXJ0aW9uT3B0aW9ucyBzZXRFeHRlbnNpb25zOnRvQVNDRXh0ZW5zaW9ucygqb3B0aW9ucy5leHRl
bnNpb25zKS5nZXQoKV07CisgICAgaWYgKHBhcmVudE9yaWdpbiAmJiBbYXNzZXJ0aW9uT3B0aW9u
cyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3Nz
U2l0ZUFzc2VydGlvbjopXSkKKyAgICAgICAgYXNzZXJ0aW9uT3B0aW9ucy5nZXQoKS5kZXN0aW5h
dGlvblNpdGVGb3JDcm9zc1NpdGVBc3NlcnRpb24gPSBwYXJlbnRPcmlnaW4tPnRvU3RyaW5nKCk7
CisgICAgZWxzZSBpZiAocGFyZW50T3JpZ2luICYmICFbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFzc2Vy
dGlvbjopXSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBhc3NlcnRpb25PcHRp
b25zOworfQorCitzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4g
Y29uZmlndXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KGNvbnN0IFB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1lbnQ+IG1lZGlhdGlvbiwgY29uc3Qg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRPcmlnaW4p
CiB7CiAgICAgQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlcyByZXF1ZXN0VHlwZXMgPSBBU0NDcmVk
ZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tleUFzc2VydGlvbiB8IEFTQ0NyZWRlbnRp
YWxSZXF1ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9uOwogCkBAIC0yNjQsMzIg
KzI4NCwxNiBAQCBzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4g
Y29uZmlndXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZQogICAgICAgICByZXF1ZXN0Q29udGV4
dC5nZXQoKS5yZXF1ZXN0U3R5bGUgPSBBU0NyZWRlbnRpYWxSZXF1ZXN0U3R5bGVBdXRvRmlsbDsK
IAogICAgIGlmIChyZXF1ZXN0VHlwZXMgJiBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9y
bVB1YmxpY0tleUFzc2VydGlvbikgewotICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBh
ZG9wdE5TKGFsbG9jQVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnNJbnN0YW5j
ZSgpKTsKLSAgICAgICAgaWYgKFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3IoaW5pdFdpdGhLaW5kOnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhh
c2g6dXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7Ci0g
ICAgICAgICAgICBhdXRvIG5zSGFzaCA9IHRvTlNEYXRhKGhhc2gpOwotICAgICAgICAgICAgW2Fz
c2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxh
dGZvcm0gcmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2xpZW50RGF0YUhhc2g6
bnNIYXNoLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24u
Z2V0KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAg
ICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGNoYWxsZW5nZSA9IFdlYkNvcmU6OnRvTlNE
YXRhKG9wdGlvbnMuY2hhbGxlbmdlKTsKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGlu
aXRXaXRoS2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0
eUlkZW50aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFsbGVuZ2UuZ2V0KCkgdXNlclZl
cmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVu
dGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfQotICAgICAgICBpZiAo
b3B0aW9ucy5leHRlbnNpb25zICYmIFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3Rv
cjpAc2VsZWN0b3Ioc2V0RXh0ZW5zaW9uczopXSkKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRp
b25zIHNldEV4dGVuc2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4dGVuc2lvbnMpLmdl
dCgpXTsKLQorICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBjb25maWd1cmVBc3NlcnRp
b25PcHRpb25zKG9wdGlvbnMsIGhhc2gsIEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZv
cm0sIHBhcmVudE9yaWdpbiwgYWxsb3dlZENyZWRlbnRpYWxzLCB1c2VyVmVyaWZpY2F0aW9uKTsK
KyAgICAgICAgaWYgKCFhc3NlcnRpb25PcHRpb25zKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsK
ICAgICAgICAgW3JlcXVlc3RDb250ZXh0IHNldFBsYXRmb3JtS2V5Q3JlZGVudGlhbEFzc2VydGlv
bk9wdGlvbnM6YXNzZXJ0aW9uT3B0aW9ucy5nZXQoKV07CiAgICAgfQogCiAgICAgaWYgKHJlcXVl
c3RUeXBlcyAmIEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNz
ZXJ0aW9uKSB7Ci0gICAgICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGFkb3B0TlMoYWxsb2NB
U0NQdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uc0luc3RhbmNlKCkpOwotICAgICAg
ICBpZiAoW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0
V2l0aEtpbmQ6cmVseWluZ1BhcnR5SWRlbnRpZmllcjpjbGllbnREYXRhSGFzaDp1c2VyVmVyaWZp
Y2F0aW9uUHJlZmVyZW5jZTphbGxvd2VkQ3JlZGVudGlhbHM6KV0pIHsKLSAgICAgICAgICAgIGF1
dG8gbnNIYXNoID0gdG9OU0RhdGEoaGFzaCk7Ci0gICAgICAgICAgICBbYXNzZXJ0aW9uT3B0aW9u
cyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSByZWx5
aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjbGllbnREYXRhSGFzaDpuc0hhc2guZ2V0
KCkgdXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxv
d2VkQ3JlZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfSBlbHNl
IHsKLSAgICAgICAgICAgIGF1dG8gY2hhbGxlbmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9u
cy5jaGFsbGVuZ2UpOwotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5k
OkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kU2VjdXJpdHlLZXkgcmVseWluZ1BhcnR5SWRlbnRp
ZmllcjpvcHRpb25zLnJwSWQgY2hhbGxlbmdlOmNoYWxsZW5nZS5nZXQoKSB1c2VyVmVyaWZpY2F0
aW9uUHJlZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczph
bGxvd2VkQ3JlZGVudGlhbHMuZ2V0KCldOwotICAgICAgICB9Ci0gICAgICAgIGlmIChvcHRpb25z
LmV4dGVuc2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxl
Y3RvcihzZXRFeHRlbnNpb25zOildKQotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgc2V0
RXh0ZW5zaW9uczp0b0FTQ0V4dGVuc2lvbnMoKm9wdGlvbnMuZXh0ZW5zaW9ucykuZ2V0KCldOwot
CisgICAgICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGNvbmZpZ3VyZUFzc2VydGlvbk9wdGlv
bnMob3B0aW9ucywgaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSwg
cGFyZW50T3JpZ2luLCBhbGxvd2VkQ3JlZGVudGlhbHMsIHVzZXJWZXJpZmljYXRpb24pOworICAg
ICAgICBpZiAoIWFzc2VydGlvbk9wdGlvbnMpCisgICAgICAgICAgICByZXR1cm4gbmlsOwogICAg
ICAgICBbcmVxdWVzdENvbnRleHQgc2V0U2VjdXJpdHlLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0
aW9uczphc3NlcnRpb25PcHRpb25zLmdldCgpXTsKICAgICB9CiAKQEAgLTMwMiw3ICszMDYsNyBA
QCBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBXZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eTo6Y29udGV4dAogICAgIFdURjo6c3dpdGNoT24ocmVxdWVzdERhdGEu
b3B0aW9ucywgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9w
dGlvbnMpIHsKICAgICAgICAgcmVzdWx0ID0gY29uZmlndXJlUmVnaXN0cmF0aW9uUmVxdWVzdENv
bnRleHQob3B0aW9ucywgcmVxdWVzdERhdGEuaGFzaCk7CiAgICAgfSwgWyZdKGNvbnN0IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucykgewotICAgICAgICByZXN1bHQg
PSBjb25maWd1cmF0aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRleHQob3B0aW9ucywgcmVxdWVzdERh
dGEuaGFzaCwgcmVxdWVzdERhdGEubWVkaWF0aW9uKTsKKyAgICAgICAgcmVzdWx0ID0gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KG9wdGlvbnMsIHJlcXVlc3REYXRhLmhhc2gs
IHJlcXVlc3REYXRhLm1lZGlhdGlvbiwgcmVxdWVzdERhdGEucGFyZW50T3JpZ2luKTsKICAgICB9
KTsKICAgICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRp
b25SZXF1ZXN0RGF0YS5oCmluZGV4IGI4Mzk2NTA0ZTFjOTQzMWQ0YWZlMzA2NzA3YTgwOWRmNDcz
ZWE4ZWEuLmEwYjVmZTgwNTlmZjcyM2JhMWMwNDk1MDdiNjYxY2NiNGI1Mjk5ZjMgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0aW9uUmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKQEAgLTM5LDYgKzM5LDEw
IEBACiAjaW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAK
K25hbWVzcGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKIG5h
bWVzcGFjZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC01OCw2ICs2Miw3IEBA
IHN0cnVjdCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBTdHJpbmcgY2FjaGVk
UGluOyAvLyBPbmx5IHVzZWQgdG8gaW1wcm92ZSBORkMgQ2xpZW50IFBJTiBleHBlcmllbmNlLgog
ICAgIFdlYWtQdHI8QVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiB3ZWFrUGFuZWw7CiAgICAg
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uOwor
ICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBwYXJlbnRPcmln
aW47CiB9OwogCiBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25z
dCBzdGQ6OnZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cywgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4
IGY1OWU5NGE5NTY5ZjVlODE0YzI5ZjNiYmMyZGUxZmVhMzI0Nzg5OTMuLjQ1MTRjYzNlODU1NDI5
YzAyODEzOWIwODRiMDdhZWMxYzlkZDIyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTU4LDEyICs1OCwxMiBAQCBXZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5KCkKIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNy
ZWRlbnRpYWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUlu
Zm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9w
dGlvbnMmJiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBs
ZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZSho
YXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9u
UGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIg
eyBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5m
byksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9w
dCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNo
KSwgV1RGTW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBt
X3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyks
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwg
c3RkOjpudWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCi12b2lkIFdlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1l
SWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVp
cmVtZW50IG1lZGlhdGlvbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21w
bGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlv
biwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdp
biwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUo
b3B0aW9ucyksIG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpV
bmF2YWlsYWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJv
eHkud2ViUGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5n
VXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24gfSwgV1RGTW92ZShoYW5k
bGVyKSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9u
cyksIG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWls
YWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2Vi
UGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24sIHBhcmVudE9yaWdpbiB9LCBXVEZN
b3ZlKGhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eTo6aGFuZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSwgUmVx
dWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKQEAgLTc2LDExICs3NiwyMCBAQCB2b2lk
IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhl
bnRpY2F0aW9uUmVxdWVzdERhdAogI2lmIEhBVkUoVU5JRklFRF9BU0NfQVVUSF9VSSkKICAgICAg
ICAgICAgICAgICBpZiAoIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLmlzTW9jaygpICYmICFhdXRoZW50
aWNhdG9yTWFuYWdlci5pc1ZpcnR1YWwoKSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvIGNv
bnRleHQgPSBjb250ZXh0Rm9yUmVxdWVzdChXVEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgICAgICAg
ICAgICAgaWYgKGNvbnRleHQuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAg
ICAgICAgaGFuZGxlcih7IH0sIChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkwLCBFeGNlcHRpb25E
YXRhIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90
IHRoZSBzYW1lIGFzIGl0cyBhbmNlc3RvcnMuIl9zIH0pOworICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIC8v
IHBlcmZvcm1SZXF1ZXN0IGNhbGxzIG91dCB0byBBU0NBZ2VudCB3aGljaCB3aWxsIHRoZW4gY2Fs
bCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb25X
aXRoQ2hhbGxlbmdlXQogICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBjYWxscyBhdXRoZW50
aWNhdG9yTWFuYWdlci5oYW5kbGVSZXF1ZXN0KC4uKQogICAgICAgICAgICAgICAgICAgICBwZXJm
b3JtUmVxdWVzdChjb250ZXh0LCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBpZiAoZGF0
YS5wYXJlbnRPcmlnaW4pIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50KTAsIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUg
b3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4i
X3MgfSk7CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogI2VuZGlmIC8v
IEhBVkUoVU5JRklFRF9BU0NfQVVUSF9VSSkKIAogICAgICAgICAgICAgYXV0aGVudGljYXRvck1h
bmFnZXIuaGFuZGxlUmVxdWVzdChXVEZNb3ZlKGRhdGEpLCBbaGFuZGxlciA9IFdURk1vdmUoaGFu
ZGxlcildIChzdGQ6OnZhcmlhbnQ8UmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlv
bkRhdGE+JiYgcmVzdWx0KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
LmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDhmODdjMDMwNjhhNDA3YmI2NWI0ZjllMWY2
MTE0ZjRkNzA2ZDM0MWQuLjY3YTIwYmE0MTVkZmYzZDhkM2Q3YzRmMzJmYWEyYThkMTgzYTUzNjgg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
aApAQCAtNzEsNyArNzEsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVjZWl2ZXJzLgogICAgIHZv
aWQgbWFrZUNyZWRlbnRpYWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRh
JiYsIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmJiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21w
bGV0aW9uSGFuZGxlciYmKTsKLSAgICB2b2lkIGdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlk
ZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIFdlYkNvcmU6OkNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQsIGJvb2wgcHJvY2Vzc2luZ1Vz
ZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBnZXRBc3Nl
cnRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZlY3Rvcjx1
aW50OF90PiYmIGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cyYmLCBXZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVt
ZW50LCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4sIGJvb2wgcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9p
ZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21w
bGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFi
bGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
UHJveHkubWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBi
NDAxYmRmNWRhOWY4YWYwODI2ZTM0OGE3YmY3NTNhYjMwMTk0YzFlLi4xZjE5YjI3MzFkZGQwOTQ1
YmZmMDdhZjU3OWY4NGQ1ZDVmYzhmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5t
ZXNzYWdlcy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjcsNyAr
MjcsNyBAQAogbWVzc2FnZXMgLT4gV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkgTm90
UmVmQ291bnRlZCB7CiAKICAgICBNYWtlQ3JlZGVudGlhbChXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rv
cjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0
aW9uT3B0aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVj
dCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNv
cmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpF
eGNlcHRpb25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKLSAgICBHZXRBc3NlcnRpb24oV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJh
bWVJbmZvLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zOjpNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGJv
b2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JSZXNwb25zZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFj
aG1lbnQgYXR0YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9u
KSBBc3luYworICAgIEdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJ
RCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90
PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
IG9wdGlvbnMsIGVudW06dWludDhfdCBXZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6
Ok1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpT
ZWN1cml0eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdpbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBl
bnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1
Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCiAgICAgaXNDb25kaXRp
b25hbE1lZGlhdGlvbkF2YWlsYWJsZSgpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKICAgICBJc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1
bHQpIEFzeW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IuY3BwCmluZGV4IGIxYmEzZTQxM2RiNzMyZjkwNWM2OGZhNzIwNDM0NmQ3ZGE2ODJjZDAuLjMz
YWFjZGM0NjdkYWQzZTQxY2FmNzcwNTE1MjM4OWFhNjk3MzM3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAj
aW5jbHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2Vi
Q29yZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRp
Y2F0b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmg+
CiAKIG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04NCw3
ICs4NSw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjptYWtlQ3JlZGVudGlh
bChjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xl
dG9uKCkuZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5k
V2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6
TWFrZUNyZWRlbnRpYWwoaGFzaCwgb3B0aW9ucywgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBX
VEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6
OmdldEFzc2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgUmVx
dWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKK3ZvaWQgV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0
eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3Jl
ZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRp
YXRpb24sIGNvbnN0IHN0ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2Vj
dXJpdHlPcmlnaW5EYXRhPj4mIHNjb3BlQW5kU2luZ2xlUGFyZW50LCBSZXF1ZXN0Q29tcGxldGlv
bkhhbmRsZXImJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZy
b21Db3JlRnJhbWUoZnJhbWUpOwogICAgIGlmICghd2ViRnJhbWUpCkBAIC05Nyw3ICs5OCwxMSBA
QCB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZy
YW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdAogICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0g
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlv
bk1vZGVybkVuYWJsZWQoKTsKICNlbmRpZgogICAgIGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7
Ci0gICAgICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQo
KSwgd2ViRnJhbWUtPmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBpc1Byb2Nlc3Np
bmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICBtX3dlYlBhZ2Uuc2Vu
ZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eTo6R2V0QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhh
c2gsIG9wdGlvbnMsIG1lZGlhdGlvbiwgc2NvcGVBbmRTaW5nbGVQYXJlbnQuc2Vjb25kLCBpc1By
b2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGlmIChzY29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6
U2NvcGU6OkNyb3NzT3JpZ2luKSB7CisgICAgICAgIGhhbmRsZXIoeyB9LCAoQXV0aGVudGljYXRv
ckF0dGFjaG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmln
aW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9
KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9X
ZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5o
IGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5oCmluZGV4IDI1OWM5ZTU2MmMzOTNiMGU2M2ViYjc4ZTNmNzdjMjc5
ZGE2OTcyZjcuLjBlZDNlNzUyYTcwMzNlZTNiODNlNDBiMzFiNmY2NDQwMzM4YWViZmYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKQEAgLTQxLDcgKzQx
LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JDbGllbnQKICAgICB2b2lkIG1ha2VDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkZy
YW1lJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhf
dD4mLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwg
V2ViQ29yZTo6UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0
QXNzZXJ0aW9uKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlP
cmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVt
ZW50LCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9p
ZCBnZXRBc3NlcnRpb24oY29uc3QgV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpTZWN1
cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgV2ViQ29yZTo6TWVkaWF0aW9uUmVx
dWlyZW1lbnQsIGNvbnN0IHN0ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlv
bkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBpc0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxh
YmxlKFdlYkNvcmU6OlF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBp
c1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoV2ViQ29yZTo6UXVl
cnlDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIHJlc2V0VXNlckdlc3R1cmVS
ZXF1aXJlbWVudCgpIGZpbmFsIHsgbV9yZXF1aXJlVXNlckdlc3R1cmUgPSBmYWxzZTsgfQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IGQ3YWQzNTFkZTJkNWY2MDdiMzQwOThhNTY3ZWY2NDBkZDA3ZTJiZGMuLjlmODg1MjgxNGNj
ZDM1MDNjZDkyOWQ3OTMxYjBkMGY0MTdhNmJmYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAy
Mi0wMy0wMiAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1
dGhuXSBVc2luZyBXZWJBdXRobiB3aXRoaW4gY3Jvc3Mtb3JpZ2luIGlmcmFtZSBlbGVtZW50cwor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMjQwCisg
ICAgICAgIHJkYXI6Ly9wcm9ibGVtLzc0ODMwNzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIHRlc3RzIGFuZCBjcmVhdGUg
bmV3IHRlc3QgZm9yIGNyb3NzLW9yaWdpbiwgbm9uIHNhbWUtc2l0ZSBpLWZyYW1lcy4KKworICAg
ICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmln
aW4uaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWw6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9y
aWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0
b3JzLmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbDogQWRkZWQuCisKIDIw
MjItMDMtMDIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
T3V0bGluZS13aWR0aCB3aXRoIHRyYW5zaXRpb24gZG9uJ3QgYW5pbWF0ZSBjb3JyZWN0bHkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBhNmMxMGJhZDNkNjBlODhmZjEyMjIyY2U1ZTBkMjc4MmQy
OThmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNCBAQAorCisKK1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3Jp
Z2luLCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJl
IHBvbGljeSBjYW4gdXNlIGdldCgpLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jv
c3Mtb3JpZ2luLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNiNWViMjhiMzlmMWI1YzFiYjk1MDkw
YWRkMmZlZjczOGRjMTYwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApA
QCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsg
V2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkPWZhbHNlIF0gLS0+Cis8c2NyaXB0PgorICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGxvY2F0
aW9uPSJodHRwczovLzEyNy4wLjAuMTo5NDQzL1dlYktpdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sIgorPC9zY3JpcHQ+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3Jp
Z2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjNzAyMWQ4MTgxNzAy
NDRkNjI0OGJmMDVlZDZhOGU5OWNjODcxM2YxLi44OGM0MjVjZjQ5MzI2NjdkODdjNjNjMzI3NDZh
MDI0NTM0ZjAzZWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhw
ZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQK
QEAgLTQsNSArNCw1IEBAIFBBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgZG9lc24ndCBzaGFy
ZSB0aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9yCiBQQVNTIFRlc3RzIHRoYXQg
YSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBh
bmNlc3RvcnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJLiAyCiBQQVNTIFRlc3RzIHRoYXQgYSBm
cmFtZSB0aGF0IGlzIHNhbWUtc2l0ZSwgY3Jvc3Mtb3JpZ2luIHdpdGhvdXQgcHVibGlja2V5LWNy
ZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgpLgogUEFTUyBUZXN0
cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBzYW1lLXNpdGUsIGNyb3NzLW9yaWdpbiB3aXRoIHB1Ymxp
Y2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2FuIHVzZSBnZXQoKS4KLVBBU1Mg
VGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlICB3
aXRoIHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2Fubm90IHVzZSBn
ZXQoKS4KK1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHVzaW5nIGFuIGlwIGFkZHJlc3MgdGhhdCBp
cyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMt
Z2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdp
bi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBz
Lmh0bWwKaW5kZXggNTgxNDc1ZTUyMDUwNGQwOGE5YzFmYTZmMjc4MjZjNGUyNTUyOGI2Mi4uNWQz
ZThjMzFmN2VhZTEyYjAxZDI4MjUzZGRlMTc3ZTZhZmQ1ZGNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2lu
LXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0
dHBzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZD10cnVlIF0gLS0+Cis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KICAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+CkBAIC0zNyw5ICszNyw5IEBACiAKICAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4g
ewogICAgICAgICAgICAgcmV0dXJuIHdpdGhDcm9zc09yaWdpbklmcmFtZSgic2FtZXNpdGUtaWZy
YW1lLmh0bWwiLCAicHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCIpLnRoZW4oKG1lc3NhZ2UpID0+
IHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UuZGF0YSwgIlRocm93IE5v
dEFsbG93ZWRFcnJvcjogVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1l
IGFzIGl0cyBhbmNlc3RvcnMuIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNz
YWdlLmRhdGEsICJUaHJvdyBTZWN1cml0eUVycm9yOiBUaGUgZWZmZWN0aXZlIGRvbWFpbiBvZiB0
aGUgZG9jdW1lbnQgaXMgbm90IGEgdmFsaWQgZG9tYWluLiIpOwogICAgICAgICAgICAgfSk7Ci0g
ICAgICAgIH0sICJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBz
YW1lLXNpdGUgIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBj
YW5ub3QgdXNlIGdldCgpLiIpOworICAgICAgICB9LCAiVGVzdHMgdGhhdCBhIGZyYW1lIHVzaW5n
IGFuIGlwIGFkZHJlc3MgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBw
dWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCku
Iik7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVibGljLWtleS1jcmVkZW50aWFsLWNy
b3NzLW9yaWdpbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVz
b3VyY2VzL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42OTVkMjE3OTEzMzViYjE1YzhiZDJkMjc5Mjk0MDU1YjFlOWExYzZmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApAQCAtMCwwICsxLDIyIEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFRlc3Rz
IHRoYXQgYSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiB3aXRoIGZlYXR1cmUgcG9saWN5IGNh
biBhY2Nlc3MgdGhlIEFQSS48L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRp
bHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8u
c3ViLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi91dGlsLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKKyAgICAgICAgICAgIC8vIGxvY2FsaG9zdCBpcyBjcm9zcy1vcmlnaW4gaGVyZS4KKyAgICAg
ICAgICAgIHJldHVybiB3aXRoU2FtZVNpdGVJZnJhbWUoInNhbWVzaXRlLWlmcmFtZS5odG1sIiwg
InB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQiKS50aGVuKChtZXNzYWdlKSA9PiB7CisgICAgICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJQQVNTISIpOworICAgICAgICAg
ICAgfSk7CisgICAgICAgIH0sICJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBjcm9zcy1vcmln
aW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUg
cG9saWN5IGNhbiB1c2UgZ2V0KCkuIik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+
Cg==
</data>
<flag name="commit-queue"
          id="481116"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453752</attachid>
            <date>2022-03-03 09:46:33 -0800</date>
            <delta_ts>2022-03-03 10:17:27 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222240-20220303094633.patch</filename>
            <type>text/plain</type>
            <size>45025</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMjYwOTJkNDJkNzAz
ODE4M2E1OThjZjU0NzlhNjkwZDNiNTYxNC4uY2RlZDQ0MjA1MTRjMDczMDM2MzkxMzMyYzQ0ZmM5
YjE1ZTA4OWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTAyICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdl
YkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0g
YSBXZWIgQXV0aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1l
IHdpdGggdGhlICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9t
CisgICAgICAgIHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAg
ICAgIFRoZXJlIGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5
IGEgc2luZ2xlIGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUg
dXNlciBpbiB0aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAg
ICAgIHByb21wdCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQu
CisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxt
YW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjpzY29wZUFuZFNpbmdsZVBhcmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRl
bnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlh
bG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xp
ZW50Lmg6CisKIDIwMjItMDMtMDIgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4K
IAogICAgICAgICBBWDogSGFuZGxlIG51bGwgRmlsZUxpc3QgaW4gUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OmZpbGVUZXh0VmFsdWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMTMwNjUwMjM4Y2U2OTU1ZGJmOGI1
YjYxM2VmZTFkNDQ4YzYwNWQ5Li4xOTk4MTcxZWJhYzQyYmU5NmVhZTZkZjdjZGRhYjc5NTI5Y2Fi
NGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAzLTAyICBKIFBhc2NvZSAgPGpf
cGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdlYkF1dGhuIHdp
dGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
NzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0gYSBXZWIgQXV0
aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1lIHdpdGggdGhl
ICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9tCisgICAgICAg
IHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAgICAgIFRoZXJl
IGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xl
IGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUgdXNlciBpbiB0
aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAgICAgIHByb21w
dCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQuIAorCisgICAg
ICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25maWd1cmVBc3Nl
cnRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6Y29uZmlndXJhdGlvbkFzc2VydGlvblJl
cXVlc3RDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmNvbnRleHRGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmg6CisKIDIwMjItMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHRv
IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJvbVBpeGVsQnVmZmVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IDk2MDYwOGNhMTM1ZjhhYzY5NTZmYTljZjIz
ZjIzYTg5NTRlNDhhYzUuLmZjMGYzZmM1ZDRlY2VlODY3ODJlMDYwNWVjMGEzN2RmMjJkYTQyNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCkBAIC00NiwyNyArNDYs
MzMgQEAgQ3JlZGVudGlhbHNDb250YWluZXI6OkNyZWRlbnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8
RG9jdW1lbnQ+JiYgZG9jdW1lbnQpCiB7CiB9CiAKLVdlYkF1dGhuOjpTY29wZSBDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUoKQorc3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRp
b25hbDxTZWN1cml0eU9yaWdpbkRhdGE+PiBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c2NvcGVBbmRT
aW5nbGVQYXJlbnQoKQogewogICAgIGlmICghbV9kb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIFdl
YkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFp
cihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzdGQ6Om51bGxvcHQpOwogCiAgICAgYm9v
bCBpc1NhbWVPcmlnaW4gPSB0cnVlOwogICAgIGJvb2wgaXNTYW1lU2l0ZSA9IHRydWU7CiAgICAg
YXV0byYgb3JpZ2luID0gbV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvJiB1
cmwgPSBtX2RvY3VtZW50LT51cmwoKTsKKyAgICBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4g
cGFyZW50czsKICAgICBmb3IgKGF1dG8qIGRvY3VtZW50ID0gbV9kb2N1bWVudC0+cGFyZW50RG9j
dW1lbnQoKTsgZG9jdW1lbnQ7IGRvY3VtZW50ID0gZG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkp
IHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luRG9tYWluKGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKSAmJiAhYXJlUmVnaXN0cmFibGVEb21haW5zRXF1YWwodXJsLCBkb2N1bWVu
dC0+dXJsKCkpKQogICAgICAgICAgICAgaXNTYW1lU2l0ZSA9IGZhbHNlOwotICAgICAgICBpZiAo
IW9yaWdpbi5pc1NhbWVPcmlnaW5Bcyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkpCisgICAg
ICAgIGlmICghb3JpZ2luLmlzU2FtZU9yaWdpbkFzKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
KSkgewogICAgICAgICAgICAgaXNTYW1lT3JpZ2luID0gZmFsc2U7CisgICAgICAgICAgICBwYXJl
bnRzLmFkZChvcmlnaW4uZGF0YSgpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpc1Nh
bWVPcmlnaW4pCi0gICAgICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW47Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4s
IHN0ZDo6bnVsbG9wdCk7CiAgICAgaWYgKGlzU2FtZVNpdGUpCi0gICAgICAgIHJldHVybiBXZWJB
dXRobjo6U2NvcGU6OlNhbWVTaXRlOwotICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OkNyb3Nz
T3JpZ2luOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoV2ViQXV0aG46OlNjb3BlOjpT
YW1lU2l0ZSwgc3RkOjpudWxsb3B0KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2lu
RGF0YT4gc2luZ2xlUGFyZW50OworICAgIGlmIChwYXJlbnRzLnNpemUoKSA9PSAxKQorICAgICAg
ICBzaW5nbGVQYXJlbnQgPSAqcGFyZW50cy5iZWdpbigpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
cGFpcihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzaW5nbGVQYXJlbnQpOwogfQogCiB2
b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYg
b3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQpAQCAtOTgsNyArMTA0LDcgQEAg
dm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYm
IG9wdGlvbnMsIENyZWRlbnRpYWxQcm8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
ZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuZGlzY292ZXJGcm9t
RXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1vdmUob3B0aW9ucyksIHNjb3BlKCksIFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNv
b3JkaW5hdG9yKCkuZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1v
dmUob3B0aW9ucyksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCksIFdURk1vdmUocHJvbWlzZSkpOwog
fQogCiB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZShjb25zdCBCYXNpY0NyZWRlbnRp
YWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xMzMsNyArMTM5LDcgQEAgdm9p
ZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyYmIG9wdGlvbnMsIENyZWRlbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fZG9j
dW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuY3JlYXRlKCptX2RvY3Vt
ZW50LCBvcHRpb25zLnB1YmxpY0tleS52YWx1ZSgpLCBzY29wZSgpLCBXVEZNb3ZlKG9wdGlvbnMu
c2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5hdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IoKS5jcmVhdGUoKm1fZG9jdW1lbnQsIG9wdGlvbnMucHVibGlj
S2V5LnZhbHVlKCksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCkuZmlyc3QsIFdURk1vdmUob3B0aW9u
cy5zaWduYWwpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRh
aW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFs
bWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDlhNmIx
MmRkYzIyMjk4ZjQ3YzFlMzI5NjJiNmE2Y2YzOWViNWQ5MTIuLjIwMjI3MWJiZTdjY2U1ZjljNTk2
MWQ0NGQyMGQwM2VmYmI2NTkzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVy
LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiAKIHN0cnVjdCBDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOwogc3RydWN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK3N0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIGNsYXNzIENyZWRlbnRpYWxzQ29udGFpbmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8Q3JlZGVudGlhbHNDb250YWluZXI+IHsKIHB1YmxpYzoKQEAgLTU4LDcg
KzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFr
UHRyPERvY3VtZW50PiYmKTsKIAotICAgIFdlYkF1dGhuOjpTY29wZSBzY29wZSgpOworICAgIHN0
ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRh
Pj4gc2NvcGVBbmRTaW5nbGVQYXJlbnQoKTsKIAogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGFkMjBjMGE1ODI0MjhkNzgz
MWU5NGJlNWU4NTA0YjAxZjFmMjAzMWEuLmVmZGEyZThlMzY1MDJkYTM5MTg4NTM2NzdlMzMyMDIx
ZTM4YThjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgUHVibGljS2V5QwogICAgIG1fY2xpZW50LT5tYWtlQ3JlZGVudGlhbCgqZnJh
bWUsIGNhbGxlck9yaWdpbiwgY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZy
b21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBXZWJBdXRobjo6U2NvcGUgc2NvcGUsIENyZWRl
bnRpYWxQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQs
IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBjb25zdCBzdGQ6OnBh
aXI8V2ViQXV0aG46OlNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4+JiBz
Y29wZUFuZFNpbmdsZVBhcmVudCwgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAog
ewogICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDsK
IApAQCAtMTk1LDExICsxOTUsMTYgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRp
c2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICAvLyBU
aGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNj
cmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVjZW1iZXIgMjAxNy4KICAgICAvLyBTdGVwIDEsIDMs
IDEzIGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8gU3RlcCAyLgotICAgIC8vIFRo
aXMgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jc2N0bi1wZXJt
aXNzaW9ucy1wb2xpY3kgZXhjZXB0IG9ubHkgc2FtZS1zaXRlLCBjcm9zcy1vcmlnaW4gaXMgcGVy
bWl0dGVkLgotICAgIGlmIChzY29wZSAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYg
IShzY29wZSA9PSBXZWJBdXRobjo6U2NvcGU6OlNhbWVTaXRlICYmIGlzRmVhdHVyZVBvbGljeUFs
bG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1YmxpY2tl
eUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpO
bykpKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJh
dXRobi0yLyNzY3RuLXBlcm1pc3Npb25zLXBvbGljeQorICAgIGlmIChzY29wZUFuZFNpbmdsZVBh
cmVudC5maXJzdCAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYgIWlzRmVhdHVyZVBv
bGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1
YmxpY2tleUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWls
dXJlOjpObykpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dl
ZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIAorICAgIGlm
IChzY29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3Jp
Z2luICYmICFzY29wZUFuZFNpbmdsZVBhcmVudC5zZWNvbmQpIHsKKyAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9j
dW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIG11bHRpcGxlIG9mIGl0cyBhbmNlc3RvcnMuIl9zIH0p
OworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgLy8gU3RlcCA1LiBTa2lwcGVkIHNpbmNl
IFNlY3VyaXR5T3JpZ2luIGRvZXNuJ3QgaGF2ZSB0aGUgY29uY2VwdCBvZiAib3BhcXVlIG9yaWdp
biIuCiAgICAgLy8gU3RlcCA2LiBUaGUgZWZmZWN0aXZlIGRvbWFpbiBtYXkgYmUgcmVwcmVzZW50
ZWQgaW4gdmFyaW91cyBtYW5uZXJzLCBzdWNoIGFzIGEgZG9tYWluIG9yIGFuIGlwIGFkZHJlc3Mu
CkBAIC0yMzAsNyArMjM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2Nv
dmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICB9CiAKICAg
ICAvLyBTdGVwIDEwLTEyLgotICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBidWlsZENsaWVudERh
dGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmln
aW4sIHNjb3BlKTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0gYnVpbGRDbGllbnREYXRhSnNv
bihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luLCBz
Y29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCk7CiAgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2gg
PSBidWlsZENsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CiAKICAgICAvLyBTdGVw
IDQsIDE0LTE5LgpAQCAtMjU0LDcgKzI1OSw3IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lCiAg
ICAgICAgIHByb21pc2UucmVqZWN0KGV4Y2VwdGlvbi50b0V4Y2VwdGlvbigpKTsKICAgICB9Owog
ICAgIC8vIEFzeW5jIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgYW5kIGhhbmRsZWQgaW4gdGhl
IG1lc3Nlbmdlci4KLSAgICBtX2NsaWVudC0+Z2V0QXNzZXJ0aW9uKCpmcmFtZSwgY2FsbGVyT3Jp
Z2luLCBjbGllbnREYXRhSnNvbkhhc2gsIG9wdGlvbnMsIHJlcXVlc3RPcHRpb25zLm1lZGlhdGlv
biwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY2xpZW50LT5nZXRBc3NlcnRpb24oKmZyYW1l
LCBjYWxsZXJPcmlnaW4sIGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucywgcmVxdWVzdE9wdGlv
bnMubWVkaWF0aW9uLCBzY29wZUFuZFNpbmdsZVBhcmVudCwgV1RGTW92ZShjYWxsYmFjaykpOwog
fQogCiB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
IHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaAppbmRleCA0ZDlhYmE2OGU4ODgzMDUw
ODliZmUxOTMwYzM1MDhjYWRmNTNmZWVkLi5iZGVmZDE5ZjViM2EwNmEzMDcxNzJhMDU2NjJjMjc1
NzRkNWI1ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3Mg
RG9jdW1lbnQ7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsKIHN0
cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7CiBzdHJ1Y3QgQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCkBAIC01OSw3ICs2
MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbXBsZW1lbnQg
c3RhdGljIG1ldGhvZHMgb2YgUHVibGljS2V5Q3JlZGVudGlhbC4KICAgICB2b2lkIGNyZWF0ZShj
b25zdCBEb2N1bWVudCYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
LCBXZWJBdXRobjo6U2NvcGUsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgQ3JlZGVudGlhbFByb21p
c2UmJikgY29uc3Q7Ci0gICAgdm9pZCBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBE
b2N1bWVudCYsIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBXZWJBdXRobjo6U2NvcGUsIENy
ZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OworICAgIHZvaWQgZGlzY292ZXJGcm9tRXh0ZXJuYWxT
b3VyY2UoY29uc3QgRG9jdW1lbnQmLCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgY29uc3Qg
c3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRh
dGE+PiYsIENyZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5
aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExC
b29sZWFuPiYmKSBjb25zdDsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFi
bGUoRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JDbGllbnQuaAppbmRleCAzYmI2NWE4NmI4ZjMzZGNiMzYyNDZiODljZWZkOTZh
ZGIyN2I5M2IxLi44Y2U1NTI3ZTQwNjRmNzdhZjZhZTM1OWMxN2ZmZTdlN2Q2NDA3ZTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29y
ZGluYXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdlYkF1dGhuIHsKK2VudW0gY2xhc3MgU2NvcGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwpAQCAtNDMsNiArNDcsNyBAQCBlbnVt
IGNsYXNzIE1lZGlhdGlvblJlcXVpcmVtZW50IDogdWludDhfdDsKIHN0cnVjdCBBdXRoZW50aWNh
dG9yUmVzcG9uc2VEYXRhOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNl
Y3VyaXR5T3JpZ2luRGF0YTsKIAogdXNpbmcgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhJiYs
IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
JiYpPjsKIHVzaW5nIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPjsKQEAgLTU1LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvckNsaWVudCgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBtYWtlQ3JlZGVudGlhbChjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIGNvbnN0IHN0ZDo6cGFp
cjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBS
ZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc0NvbmRp
dGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJ
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZp
Y2VzQ29yZVNQSS5oCmluZGV4IDQyNDk5MGZhN2JkMTQ3NTIwNTIxMDdmYzNhZDIxODRjODUxZDUz
MjguLjhiZGFkODY3MDNiYzU5YjE2N2RjOWRmNTBjZTllMWFmNTQxOTBlYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXND
b3JlU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVudGlj
YXRpb25TZXJ2aWNlc0NvcmVTUEkuaApAQCAtMTY3LDYgKzE2Nyw4IEBAIHR5cGVkZWYgTlNfRU5V
TShOU1VJbnRlZ2VyLCBBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZCkgewogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PEFTQ1B1YmxpY0tl
eUNyZWRlbnRpYWxEZXNjcmlwdG9yICo+ICphbGxvd2VkQ3JlZGVudGlhbHM7CiAKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmRlc3RpbmF0aW9uU2l0ZUZv
ckNyb3NzU2l0ZUFzc2VydGlvbjsKKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KaW5kZXggODkwM2U5NDAzMGZkMjYyMGYzODI5MDdmYTgzYTU3YTZjMWQwNWE1Yi4uNGQ3Yzc2
ZDgzOGViM2UxODI1ZjgzMWE4MDdmN2U0ODVlMTgwOWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KQEAgLTgyMiw3ICs4MjIsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvbgogICAg
ICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9t
YWluIGNvZGU6ZXhjZXB0aW9uLmNvZGUgdXNlckluZm86QHsgTlNMb2NhbGl6ZWREZXNjcmlwdGlv
bktleTogZXhjZXB0aW9uLm1lc3NhZ2UgfV0pOwogICAgICAgICB9KTsKICAgICB9OwotICAgIF9w
YW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwg
bnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBz
dGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVx
dWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRU
b0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3Rk
OjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0
ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApAQCAtODM2LDcg
KzgzNiw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2U+IHdrQXV0aGVudGljYXRvckF0dGVzdGF0aW9uCiAgICAgICAgICAgICBoYW5kbGVyKG5p
bCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpleGNlcHRpb24u
Y29kZSB1c2VySW5mbzpAeyBOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5OiBleGNlcHRpb24ubWVz
c2FnZSB9XSk7CiAgICAgICAgIH0pOwogICAgIH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0
KHsgdmVjdG9yRnJvbU5TRGF0YShjbGllbnREYXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwg
bnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBz
dGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVx
dWVzdCh7IHZlY3RvckZyb21OU0RhdGEoY2xpZW50RGF0YUhhc2gpLCBbX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9u
c10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFp
bGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwgbnVsbHB0
ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogI2Vu
ZGlmCiB9CiAKQEAgLTg4Niw3ICs4ODYsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcAogICAg
ICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9t
YWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86bmlsXSk7CiAgICAgICAgIH0pOwogICAg
IH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0aE9wdGlvbnM6
b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6
VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwg
bnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBfcGFuZWwt
PmhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bCBjb252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0
ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVs
bHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51
bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApA
QCAtOTAwLDcgKzkwMCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwCiAgICAgICAgICAgICBo
YW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpX
S0Vycm9yVW5rbm93biB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgfSk7CiAgICAgfTsKLSAgICBf
cGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwg
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0
aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBT
dHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNo
KSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25z
V2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVl
LCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92
ZShjYWxsYmFjaykpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KaW5kZXggZGUxNzRkM2Y4Mjkw
N2EzZGU5ZTJjMmU0MDA3ZWVjMDAzY2Q3MWUxZi4uZWEzZDg1MjNlZDk1N2Y3ZjZjNjE5OTM4MTRj
YWU2MzRlMDZlNjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KQEAgLTIzNiw3ICsyMzYsMjcgQEAgc3RhdGlj
IFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJlZ2lzdHJh
dGlvblJlcXVlc3RDb250ZXgKICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQ7CiB9CiAKLXN0YXRp
YyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBjb25maWd1cmF0aW9uQXNz
ZXJ0aW9uUmVxdWVzdENvbnRleHQoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zJiBvcHRpb25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uKQorc3RhdGljIGlubGluZSBSZXRhaW5Q
dHI8QVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnM+IGNvbmZpZ3VyZUFzc2Vy
dGlvbk9wdGlvbnMoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRp
b25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmQga2lu
ZCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRPcmlnaW4s
IFJldGFpblB0cjxOU011dGFibGVBcnJheTxBU0NQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ciAqPj4gYWxsb3dlZENyZWRlbnRpYWxzLCBSZXRhaW5QdHI8TlNTdHJpbmc+IHVzZXJWZXJpZmlj
YXRpb24pCit7CisgICAgYXV0byBhc3NlcnRpb25PcHRpb25zID0gYWRvcHROUyhhbGxvY0FTQ1B1
YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25PcHRpb25zSW5zdGFuY2UoKSk7CisgICAgaWYgKFth
c3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhLaW5k
OnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNlclZlcmlmaWNhdGlvblBy
ZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7CisgICAgICAgIGF1dG8gbnNIYXNoID0g
dG9OU0RhdGEoaGFzaCk7CisgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRoS2luZDpB
U0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6
b3B0aW9ucy5ycElkIGNsaWVudERhdGFIYXNoOm5zSGFzaC5nZXQoKSB1c2VyVmVyaWZpY2F0aW9u
UHJlZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxv
d2VkQ3JlZGVudGlhbHMuZ2V0KCldOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gY2hhbGxl
bmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFsbGVuZ2UpOworICAgICAgICBbYXNz
ZXJ0aW9uT3B0aW9ucyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRQbGF0
Zm9ybSByZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjaGFsbGVuZ2U6Y2hhbGxl
bmdlLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0
KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07CisgICAgfQor
ICAgIGlmIChvcHRpb25zLmV4dGVuc2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihzZXRFeHRlbnNpb25zOildKQorICAgICAgICBbYXNzZXJ0aW9u
T3B0aW9ucyBzZXRFeHRlbnNpb25zOnRvQVNDRXh0ZW5zaW9ucygqb3B0aW9ucy5leHRlbnNpb25z
KS5nZXQoKV07CisgICAgaWYgKHBhcmVudE9yaWdpbiAmJiBbYXNzZXJ0aW9uT3B0aW9ucyByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFz
c2VydGlvbjopXSkKKyAgICAgICAgYXNzZXJ0aW9uT3B0aW9ucy5nZXQoKS5kZXN0aW5hdGlvblNp
dGVGb3JDcm9zc1NpdGVBc3NlcnRpb24gPSBwYXJlbnRPcmlnaW4tPnRvU3RyaW5nKCk7CisgICAg
ZWxzZSBpZiAocGFyZW50T3JpZ2luICYmICFbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFzc2VydGlvbjop
XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBhc3NlcnRpb25PcHRpb25zOwor
fQorCitzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1lbnQ+IG1lZGlhdGlvbiwgY29uc3Qgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRPcmlnaW4pCiB7CiAg
ICAgQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlcyByZXF1ZXN0VHlwZXMgPSBBU0NDcmVkZW50aWFs
UmVxdWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tleUFzc2VydGlvbiB8IEFTQ0NyZWRlbnRpYWxSZXF1
ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9uOwogCkBAIC0yNjQsMzIgKzI4NCwx
NiBAQCBzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZQogICAgICAgICByZXF1ZXN0Q29udGV4dC5nZXQo
KS5yZXF1ZXN0U3R5bGUgPSBBU0NyZWRlbnRpYWxSZXF1ZXN0U3R5bGVBdXRvRmlsbDsKIAogICAg
IGlmIChyZXF1ZXN0VHlwZXMgJiBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9ybVB1Ymxp
Y0tleUFzc2VydGlvbikgewotICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBhZG9wdE5T
KGFsbG9jQVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnNJbnN0YW5jZSgpKTsK
LSAgICAgICAgaWYgKFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoaW5pdFdpdGhLaW5kOnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNl
clZlcmlmaWNhdGlvblByZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7Ci0gICAgICAg
ICAgICBhdXRvIG5zSGFzaCA9IHRvTlNEYXRhKGhhc2gpOwotICAgICAgICAgICAgW2Fzc2VydGlv
bk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0g
cmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2xpZW50RGF0YUhhc2g6bnNIYXNo
LmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0KCkg
YWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGNoYWxsZW5nZSA9IFdlYkNvcmU6OnRvTlNEYXRhKG9w
dGlvbnMuY2hhbGxlbmdlKTsKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRo
S2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50
aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFsbGVuZ2UuZ2V0KCkgdXNlclZlcmlmaWNh
dGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVudGlhbHM6
YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3B0aW9u
cy5leHRlbnNpb25zICYmIFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Ioc2V0RXh0ZW5zaW9uczopXSkKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIHNl
dEV4dGVuc2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4dGVuc2lvbnMpLmdldCgpXTsK
LQorICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBjb25maWd1cmVBc3NlcnRpb25PcHRp
b25zKG9wdGlvbnMsIGhhc2gsIEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0sIHBh
cmVudE9yaWdpbiwgYWxsb3dlZENyZWRlbnRpYWxzLCB1c2VyVmVyaWZpY2F0aW9uKTsKKyAgICAg
ICAgaWYgKCFhc3NlcnRpb25PcHRpb25zKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgW3JlcXVlc3RDb250ZXh0IHNldFBsYXRmb3JtS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlv
bnM6YXNzZXJ0aW9uT3B0aW9ucy5nZXQoKV07CiAgICAgfQogCiAgICAgaWYgKHJlcXVlc3RUeXBl
cyAmIEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9u
KSB7Ci0gICAgICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGFkb3B0TlMoYWxsb2NBU0NQdWJs
aWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uc0luc3RhbmNlKCkpOwotICAgICAgICBpZiAo
W2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aEtp
bmQ6cmVseWluZ1BhcnR5SWRlbnRpZmllcjpjbGllbnREYXRhSGFzaDp1c2VyVmVyaWZpY2F0aW9u
UHJlZmVyZW5jZTphbGxvd2VkQ3JlZGVudGlhbHM6KV0pIHsKLSAgICAgICAgICAgIGF1dG8gbnNI
YXNoID0gdG9OU0RhdGEoaGFzaCk7Ci0gICAgICAgICAgICBbYXNzZXJ0aW9uT3B0aW9ucyBpbml0
V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSByZWx5aW5nUGFy
dHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjbGllbnREYXRhSGFzaDpuc0hhc2guZ2V0KCkgdXNl
clZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3Jl
ZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGF1dG8gY2hhbGxlbmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFs
bGVuZ2UpOwotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1
YmxpY0tleUNyZWRlbnRpYWxLaW5kU2VjdXJpdHlLZXkgcmVseWluZ1BhcnR5SWRlbnRpZmllcjpv
cHRpb25zLnJwSWQgY2hhbGxlbmdlOmNoYWxsZW5nZS5nZXQoKSB1c2VyVmVyaWZpY2F0aW9uUHJl
ZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxvd2Vk
Q3JlZGVudGlhbHMuZ2V0KCldOwotICAgICAgICB9Ci0gICAgICAgIGlmIChvcHRpb25zLmV4dGVu
c2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihz
ZXRFeHRlbnNpb25zOildKQotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgc2V0RXh0ZW5z
aW9uczp0b0FTQ0V4dGVuc2lvbnMoKm9wdGlvbnMuZXh0ZW5zaW9ucykuZ2V0KCldOwotCisgICAg
ICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGNvbmZpZ3VyZUFzc2VydGlvbk9wdGlvbnMob3B0
aW9ucywgaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSwgcGFyZW50
T3JpZ2luLCBhbGxvd2VkQ3JlZGVudGlhbHMsIHVzZXJWZXJpZmljYXRpb24pOworICAgICAgICBp
ZiAoIWFzc2VydGlvbk9wdGlvbnMpCisgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICBb
cmVxdWVzdENvbnRleHQgc2V0U2VjdXJpdHlLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uczph
c3NlcnRpb25PcHRpb25zLmdldCgpXTsKICAgICB9CiAKQEAgLTMwMiw3ICszMDYsNyBAQCBSZXRh
aW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eTo6Y29udGV4dAogICAgIFdURjo6c3dpdGNoT24ocmVxdWVzdERhdGEub3B0aW9u
cywgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMp
IHsKICAgICAgICAgcmVzdWx0ID0gY29uZmlndXJlUmVnaXN0cmF0aW9uUmVxdWVzdENvbnRleHQo
b3B0aW9ucywgcmVxdWVzdERhdGEuaGFzaCk7CiAgICAgfSwgWyZdKGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucykgewotICAgICAgICByZXN1bHQgPSBjb25m
aWd1cmF0aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRleHQob3B0aW9ucywgcmVxdWVzdERhdGEuaGFz
aCwgcmVxdWVzdERhdGEubWVkaWF0aW9uKTsKKyAgICAgICAgcmVzdWx0ID0gY29uZmlndXJhdGlv
bkFzc2VydGlvblJlcXVlc3RDb250ZXh0KG9wdGlvbnMsIHJlcXVlc3REYXRhLmhhc2gsIHJlcXVl
c3REYXRhLm1lZGlhdGlvbiwgcmVxdWVzdERhdGEucGFyZW50T3JpZ2luKTsKICAgICB9KTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1
ZXN0RGF0YS5oCmluZGV4IGI4Mzk2NTA0ZTFjOTQzMWQ0YWZlMzA2NzA3YTgwOWRmNDczZWE4ZWEu
LmEwYjVmZTgwNTlmZjcyM2JhMWMwNDk1MDdiNjYxY2NiNGI1Mjk5ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9u
UmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKQEAgLTM5LDYgKzM5LDEwIEBACiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC01OCw2ICs2Miw3IEBAIHN0cnVj
dCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBTdHJpbmcgY2FjaGVkUGluOyAv
LyBPbmx5IHVzZWQgdG8gaW1wcm92ZSBORkMgQ2xpZW50IFBJTiBleHBlcmllbmNlLgogICAgIFdl
YWtQdHI8QVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiB3ZWFrUGFuZWw7CiAgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBwYXJlbnRPcmlnaW47CiB9
OwogCiBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25zdCBzdGQ6
OnZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2Vi
Q29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGY1OWU5
NGE5NTY5ZjVlODE0YzI5ZjNiYmMyZGUxZmVhMzI0Nzg5OTMuLjQ1MTRjYzNlODU1NDI5YzAyODEz
OWIwODRiMDdhZWMxYzlkZDIyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTU4LDEyICs1OCwxMiBAQCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
KCkKIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRp
YWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZl
Y3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
JiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25I
YW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwg
V1RGTW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBX
VEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RG
TW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBh
Z2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpu
dWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCi12b2lkIFdlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50
IG1lZGlhdGlvbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9u
SGFuZGxlciYmIGhhbmRsZXIpCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBm
cmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdpbiwgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRs
ZXIpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9u
cyksIG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWls
YWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2Vi
UGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24gfSwgV1RGTW92ZShoYW5kbGVyKSk7
CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1f
d2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwg
bnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlE
KCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24sIHBhcmVudE9yaWdpbiB9LCBXVEZNb3ZlKGhh
bmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFu
ZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSwgUmVxdWVzdENv
bXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKQEAgLTc2LDExICs3NiwyMCBAQCB2b2lkIFdlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0
aW9uUmVxdWVzdERhdAogI2lmIEhBVkUoVU5JRklFRF9BU0NfQVVUSF9VSSkKICAgICAgICAgICAg
ICAgICBpZiAoIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLmlzTW9jaygpICYmICFhdXRoZW50aWNhdG9y
TWFuYWdlci5pc1ZpcnR1YWwoKSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvIGNvbnRleHQg
PSBjb250ZXh0Rm9yUmVxdWVzdChXVEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGNvbnRleHQuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlcih7IH0sIChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkwLCBFeGNlcHRpb25EYXRhIHsg
Tm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBz
YW1lIGFzIGl0cyBhbmNlc3RvcnMuIl9zIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIC8vIHBlcmZv
cm1SZXF1ZXN0IGNhbGxzIG91dCB0byBBU0NBZ2VudCB3aGljaCB3aWxsIHRoZW4gY2FsbCBbX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbCBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb25XaXRoQ2hh
bGxlbmdlXQogICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBjYWxscyBhdXRoZW50aWNhdG9y
TWFuYWdlci5oYW5kbGVSZXF1ZXN0KC4uKQogICAgICAgICAgICAgICAgICAgICBwZXJmb3JtUmVx
dWVzdChjb250ZXh0LCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBpZiAoZGF0YS5wYXJl
bnRPcmlnaW4pIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JB
dHRhY2htZW50KTAsIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2lu
IG9mIHRoZSBkb2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogI2VuZGlmIC8vIEhBVkUo
VU5JRklFRF9BU0NfQVVUSF9VSSkKIAogICAgICAgICAgICAgYXV0aGVudGljYXRvck1hbmFnZXIu
aGFuZGxlUmVxdWVzdChXVEZNb3ZlKGRhdGEpLCBbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcild
IChzdGQ6OnZhcmlhbnQ8UmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRhdGE+
JiYgcmVzdWx0KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDhmODdjMDMwNjhhNDA3YmI2NWI0ZjllMWY2MTE0ZjRk
NzA2ZDM0MWQuLjY3YTIwYmE0MTVkZmYzZDhkM2Q3YzRmMzJmYWEyYThkMTgzYTUzNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaApAQCAt
NzEsNyArNzEsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVjZWl2ZXJzLgogICAgIHZvaWQgbWFr
ZUNyZWRlbnRpYWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZl
Y3Rvcjx1aW50OF90PiYmIGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmJiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9u
SGFuZGxlciYmKTsKLSAgICB2b2lkIGdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0
dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBnZXRBc3NlcnRpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZlY3Rvcjx1aW50OF90
PiYmIGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBX
ZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4sIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBpc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9u
SGFuZGxlciYmKTsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoUXVl
cnlDb21wbGV0aW9uSGFuZGxlciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNDAxYmRm
NWRhOWY4YWYwODI2ZTM0OGE3YmY3NTNhYjMwMTk0YzFlLi4xZjE5YjI3MzFkZGQwOTQ1YmZmMDdh
ZjU3OWY4NGQ1ZDVmYzhmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjcsNyArMjcsNyBA
QAogbWVzc2FnZXMgLT4gV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291
bnRlZCB7CiAKICAgICBNYWtlQ3JlZGVudGlhbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50
OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJD
b3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1
dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKLSAgICBHZXRBc3NlcnRpb24oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZv
LCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zOjpNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGJvb2wgcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNw
b25zZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQg
YXR0YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKSBBc3lu
YworICAgIEdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiBoYXNo
LCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlv
bnMsIGVudW06dWludDhfdCBXZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlh
dGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdpbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+
IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmlu
dCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCiAgICAgaXNDb25kaXRpb25hbE1l
ZGlhdGlvbkF2YWlsYWJsZSgpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKICAgICBJc1VzZXJWZXJp
ZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpIEFz
eW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3Bw
CmluZGV4IGIxYmEzZTQxM2RiNzMyZjkwNWM2OGZhNzIwNDM0NmQ3ZGE2ODJjZDAuLjMzYWFjZGM0
NjdkYWQzZTQxY2FmNzcwNTE1MjM4OWFhNjk3MzM3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVk
ZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9T
ZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3Iu
aD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmg+CiAKIG5h
bWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04NCw3ICs4NSw3
IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjptYWtlQ3JlZGVudGlhbChjb25z
dCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9uKCku
ZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0aEFz
eW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TWFrZUNy
ZWRlbnRpYWwoaGFzaCwgb3B0aW9ucywgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3Zl
KGhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFz
c2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgUmVxdWVzdENv
bXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKK3ZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdp
biYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24s
IGNvbnN0IHN0ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlP
cmlnaW5EYXRhPj4mIHNjb3BlQW5kU2luZ2xlUGFyZW50LCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXImJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21Db3Jl
RnJhbWUoZnJhbWUpOwogICAgIGlmICghd2ViRnJhbWUpCkBAIC05Nyw3ICs5OCwxMSBAQCB2b2lk
IFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiBm
cmFtZSwgY29uc3QgU2VjdXJpdAogICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVy
bkVuYWJsZWQoKTsKICNlbmRpZgogICAgIGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0gICAg
ICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQoKSwgd2Vi
RnJhbWUtPmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBpc1Byb2Nlc3NpbmdVc2Vy
R2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICBtX3dlYlBhZ2Uuc2VuZFdpdGhB
c3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6R2V0
QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9w
dGlvbnMsIG1lZGlhdGlvbiwgc2NvcGVBbmRTaW5nbGVQYXJlbnQuc2Vjb25kLCBpc1Byb2Nlc3Np
bmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICByZXR1cm47CisgICAg
fQorICAgIGlmIChzY29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6
OkNyb3NzT3JpZ2luKSB7CisgICAgICAgIGhhbmRsZXIoeyB9LCAoQXV0aGVudGljYXRvckF0dGFj
aG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmlnaW4gb2Yg
dGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsKICAg
ICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGIvU291
cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvci5oCmluZGV4IDI1OWM5ZTU2MmMzOTNiMGU2M2ViYjc4ZTNmNzdjMjc5ZGE2OTcy
ZjcuLjBlZDNlNzUyYTcwMzNlZTNiODNlNDBiMzFiNmY2NDQwMzM4YWViZmYgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKQEAgLTQxLDcgKzQxLDcgQEAg
cHVibGljOgogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JDbGllbnQKICAgICB2b2lkIG1ha2VDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwg
Y29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBj
b25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgV2ViQ29y
ZTo6UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0QXNzZXJ0
aW9uKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBX
ZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBnZXRB
c3NlcnRpb24oY29uc3QgV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9y
aWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgV2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1l
bnQsIGNvbnN0IHN0ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29y
ZTo6U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CiAgICAgdm9pZCBpc0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFdl
YkNvcmU6OlF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBpc1VzZXJW
ZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoV2ViQ29yZTo6UXVlcnlDb21w
bGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIHJlc2V0VXNlckdlc3R1cmVSZXF1aXJl
bWVudCgpIGZpbmFsIHsgbV9yZXF1aXJlVXNlckdlc3R1cmUgPSBmYWxzZTsgfQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ3
YWQzNTFkZTJkNWY2MDdiMzQwOThhNTY3ZWY2NDBkZDA3ZTJiZGMuLjlmODg1MjgxNGNjZDM1MDNj
ZDkyOWQ3OTMxYjBkMGY0MTdhNmJmYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMi0wMy0w
MiAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBV
c2luZyBXZWJBdXRobiB3aXRoaW4gY3Jvc3Mtb3JpZ2luIGlmcmFtZSBlbGVtZW50cworICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMjQwCisgICAgICAg
IHJkYXI6Ly9wcm9ibGVtLzc0ODMwNzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIHRlc3RzIGFuZCBjcmVhdGUgbmV3IHRl
c3QgZm9yIGNyb3NzLW9yaWdpbiwgbm9uIHNhbWUtc2l0ZSBpLWZyYW1lcy4KKworICAgICAgICAq
IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0
cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13
aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0
dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMjItMDMt
MDIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgT3V0bGlu
ZS13aWR0aCB3aXRoIHRyYW5zaXRpb24gZG9uJ3QgYW5pbWF0ZSBjb3JyZWN0bHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy1leHBlY3RlZC50
eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjBhNmMxMGJhZDNkNjBlODhmZjEyMjIyY2U1ZTBkMjc4MmQyOThmNwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
NCBAQAorCisKK1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBO
T1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGlj
eSBjYW4gdXNlIGdldCgpLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJh
dXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3Jp
Z2luLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNiNWViMjhiMzlmMWI1YzFiYjk1MDkwYWRkMmZl
ZjczOGRjMTYwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApAQCAtMCww
ICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgV2ViQXV0
aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkPWZhbHNlIF0gLS0+Cis8c2NyaXB0PgorICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGxvY2F0aW9uPSJo
dHRwczovLzEyNy4wLjAuMTo5NDQzL1dlYktpdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVibGljLWtl
eS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sIgorPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
c2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdp
dGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjNzAyMWQ4MTgxNzAyNDRkNjI0
OGJmMDVlZDZhOGU5OWNjODcxM2YxLi44OGM0MjVjZjQ5MzI2NjdkODdjNjNjMzI3NDZhMDI0NTM0
ZjAzZWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQu
dHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQs
NSArNCw1IEBAIFBBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgZG9lc24ndCBzaGFyZSB0aGUg
c2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9yCiBQQVNTIFRlc3RzIHRoYXQgYSBmcmFt
ZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNlc3Rv
cnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJLiAyCiBQQVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0
aGF0IGlzIHNhbWUtc2l0ZSwgY3Jvc3Mtb3JpZ2luIHdpdGhvdXQgcHVibGlja2V5LWNyZWRlbnRp
YWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgpLgogUEFTUyBUZXN0cyB0aGF0
IGEgZnJhbWUgdGhhdCBpcyBzYW1lLXNpdGUsIGNyb3NzLW9yaWdpbiB3aXRoIHB1YmxpY2tleS1j
cmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2FuIHVzZSBnZXQoKS4KLVBBU1MgVGVzdHMg
dGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlICB3aXRoIHB1
YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2Fubm90IHVzZSBnZXQoKS4K
K1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHVzaW5nIGFuIGlwIGFkZHJlc3MgdGhhdCBpcyBjcm9z
cy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IGZl
YXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRo
LWFuY2VzdG9ycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwK
aW5kZXggNTgxNDc1ZTUyMDUwNGQwOGE5YzFmYTZmMjc4MjZjNGUyNTUyOGI2Mi4uNWQzZThjMzFm
N2VhZTEyYjAxZDI4MjUzZGRlMTc3ZTZhZmQ1ZGNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgt
YW5jZXN0b3JzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0
bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZD10cnVlIF0gLS0+Cis8IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5h
YmxlZD1mYWxzZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYt
OCI+CkBAIC0zNyw5ICszNyw5IEBACiAKICAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewogICAg
ICAgICAgICAgcmV0dXJuIHdpdGhDcm9zc09yaWdpbklmcmFtZSgic2FtZXNpdGUtaWZyYW1lLmh0
bWwiLCAicHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCIpLnRoZW4oKG1lc3NhZ2UpID0+IHsKLSAg
ICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UuZGF0YSwgIlRocm93IE5vdEFsbG93
ZWRFcnJvcjogVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRh
dGEsICJUaHJvdyBTZWN1cml0eUVycm9yOiBUaGUgZWZmZWN0aXZlIGRvbWFpbiBvZiB0aGUgZG9j
dW1lbnQgaXMgbm90IGEgdmFsaWQgZG9tYWluLiIpOwogICAgICAgICAgICAgfSk7Ci0gICAgICAg
IH0sICJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNp
dGUgIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3Qg
dXNlIGdldCgpLiIpOworICAgICAgICB9LCAiVGVzdHMgdGhhdCBhIGZyYW1lIHVzaW5nIGFuIGlw
IGFkZHJlc3MgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNr
ZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuIik7CiAg
ICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9y
aWdpbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2Vz
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42OTVkMjE3OTEzMzViYjE1YzhiZDJkMjc5Mjk0MDU1YjFlOWExYzZmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApAQCAtMCwwICsxLDIyIEBACis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9k
ZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+CisgICAgPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFRlc3RzIHRoYXQg
YSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiB3aXRoIGZlYXR1cmUgcG9saWN5IGNhbiBhY2Nl
c3MgdGhlIEFQSS48L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3ViLmpz
Ij48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKKyAg
ICAgICAgICAgIC8vIGxvY2FsaG9zdCBpcyBjcm9zcy1vcmlnaW4gaGVyZS4KKyAgICAgICAgICAg
IHJldHVybiB3aXRoU2FtZVNpdGVJZnJhbWUoInNhbWVzaXRlLWlmcmFtZS5odG1sIiwgInB1Ymxp
Y2tleS1jcmVkZW50aWFscy1nZXQiKS50aGVuKChtZXNzYWdlKSA9PiB7CisgICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJQQVNTISIpOworICAgICAgICAgICAgfSk7
CisgICAgICAgIH0sICJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5P
VCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5
IGNhbiB1c2UgZ2V0KCkuIik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>
<flag name="commit-queue"
          id="481208"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453754</attachid>
            <date>2022-03-03 10:00:03 -0800</date>
            <delta_ts>2022-03-03 11:58:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222240-20220303100003.patch</filename>
            <type>text/plain</type>
            <size>46895</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMjYwOTJkNDJkNzAz
ODE4M2E1OThjZjU0NzlhNjkwZDNiNTYxNC4uY2RlZDQ0MjA1MTRjMDczMDM2MzkxMzMyYzQ0ZmM5
YjE1ZTA4OWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTAyICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdl
YkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0g
YSBXZWIgQXV0aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1l
IHdpdGggdGhlICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9t
CisgICAgICAgIHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAg
ICAgIFRoZXJlIGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5
IGEgc2luZ2xlIGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUg
dXNlciBpbiB0aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAg
ICAgIHByb21wdCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQu
CisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxt
YW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjpzY29wZUFuZFNpbmdsZVBhcmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRl
bnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlh
bG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xp
ZW50Lmg6CisKIDIwMjItMDMtMDIgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4K
IAogICAgICAgICBBWDogSGFuZGxlIG51bGwgRmlsZUxpc3QgaW4gUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OmZpbGVUZXh0VmFsdWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMTMwNjUwMjM4Y2U2OTU1ZGJmOGI1
YjYxM2VmZTFkNDQ4YzYwNWQ5Li4xOTk4MTcxZWJhYzQyYmU5NmVhZTZkZjdjZGRhYjc5NTI5Y2Fi
NGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAzLTAyICBKIFBhc2NvZSAgPGpf
cGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdlYkF1dGhuIHdp
dGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
NzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0gYSBXZWIgQXV0
aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1lIHdpdGggdGhl
ICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9tCisgICAgICAg
IHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAgICAgIFRoZXJl
IGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xl
IGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUgdXNlciBpbiB0
aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAgICAgIHByb21w
dCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQuIAorCisgICAg
ICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25maWd1cmVBc3Nl
cnRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6Y29uZmlndXJhdGlvbkFzc2VydGlvblJl
cXVlc3RDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmNvbnRleHRGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmg6CisKIDIwMjItMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHRv
IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJvbVBpeGVsQnVmZmVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IDk2MDYwOGNhMTM1ZjhhYzY5NTZmYTljZjIz
ZjIzYTg5NTRlNDhhYzUuLmZjMGYzZmM1ZDRlY2VlODY3ODJlMDYwNWVjMGEzN2RmMjJkYTQyNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCkBAIC00NiwyNyArNDYs
MzMgQEAgQ3JlZGVudGlhbHNDb250YWluZXI6OkNyZWRlbnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8
RG9jdW1lbnQ+JiYgZG9jdW1lbnQpCiB7CiB9CiAKLVdlYkF1dGhuOjpTY29wZSBDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUoKQorc3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRp
b25hbDxTZWN1cml0eU9yaWdpbkRhdGE+PiBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c2NvcGVBbmRT
aW5nbGVQYXJlbnQoKQogewogICAgIGlmICghbV9kb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIFdl
YkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFp
cihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzdGQ6Om51bGxvcHQpOwogCiAgICAgYm9v
bCBpc1NhbWVPcmlnaW4gPSB0cnVlOwogICAgIGJvb2wgaXNTYW1lU2l0ZSA9IHRydWU7CiAgICAg
YXV0byYgb3JpZ2luID0gbV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvJiB1
cmwgPSBtX2RvY3VtZW50LT51cmwoKTsKKyAgICBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4g
cGFyZW50czsKICAgICBmb3IgKGF1dG8qIGRvY3VtZW50ID0gbV9kb2N1bWVudC0+cGFyZW50RG9j
dW1lbnQoKTsgZG9jdW1lbnQ7IGRvY3VtZW50ID0gZG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkp
IHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luRG9tYWluKGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKSAmJiAhYXJlUmVnaXN0cmFibGVEb21haW5zRXF1YWwodXJsLCBkb2N1bWVu
dC0+dXJsKCkpKQogICAgICAgICAgICAgaXNTYW1lU2l0ZSA9IGZhbHNlOwotICAgICAgICBpZiAo
IW9yaWdpbi5pc1NhbWVPcmlnaW5Bcyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkpCisgICAg
ICAgIGlmICghb3JpZ2luLmlzU2FtZU9yaWdpbkFzKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
KSkgewogICAgICAgICAgICAgaXNTYW1lT3JpZ2luID0gZmFsc2U7CisgICAgICAgICAgICBwYXJl
bnRzLmFkZChvcmlnaW4uZGF0YSgpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpc1Nh
bWVPcmlnaW4pCi0gICAgICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW47Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4s
IHN0ZDo6bnVsbG9wdCk7CiAgICAgaWYgKGlzU2FtZVNpdGUpCi0gICAgICAgIHJldHVybiBXZWJB
dXRobjo6U2NvcGU6OlNhbWVTaXRlOwotICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OkNyb3Nz
T3JpZ2luOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoV2ViQXV0aG46OlNjb3BlOjpT
YW1lU2l0ZSwgc3RkOjpudWxsb3B0KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2lu
RGF0YT4gc2luZ2xlUGFyZW50OworICAgIGlmIChwYXJlbnRzLnNpemUoKSA9PSAxKQorICAgICAg
ICBzaW5nbGVQYXJlbnQgPSAqcGFyZW50cy5iZWdpbigpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
cGFpcihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzaW5nbGVQYXJlbnQpOwogfQogCiB2
b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYg
b3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQpAQCAtOTgsNyArMTA0LDcgQEAg
dm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYm
IG9wdGlvbnMsIENyZWRlbnRpYWxQcm8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
ZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuZGlzY292ZXJGcm9t
RXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1vdmUob3B0aW9ucyksIHNjb3BlKCksIFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNv
b3JkaW5hdG9yKCkuZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1v
dmUob3B0aW9ucyksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCksIFdURk1vdmUocHJvbWlzZSkpOwog
fQogCiB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZShjb25zdCBCYXNpY0NyZWRlbnRp
YWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xMzMsNyArMTM5LDcgQEAgdm9p
ZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyYmIG9wdGlvbnMsIENyZWRlbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fZG9j
dW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuY3JlYXRlKCptX2RvY3Vt
ZW50LCBvcHRpb25zLnB1YmxpY0tleS52YWx1ZSgpLCBzY29wZSgpLCBXVEZNb3ZlKG9wdGlvbnMu
c2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5hdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IoKS5jcmVhdGUoKm1fZG9jdW1lbnQsIG9wdGlvbnMucHVibGlj
S2V5LnZhbHVlKCksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCkuZmlyc3QsIFdURk1vdmUob3B0aW9u
cy5zaWduYWwpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRh
aW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFs
bWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDlhNmIx
MmRkYzIyMjk4ZjQ3YzFlMzI5NjJiNmE2Y2YzOWViNWQ5MTIuLjIwMjI3MWJiZTdjY2U1ZjljNTk2
MWQ0NGQyMGQwM2VmYmI2NTkzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVy
LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiAKIHN0cnVjdCBDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOwogc3RydWN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK3N0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIGNsYXNzIENyZWRlbnRpYWxzQ29udGFpbmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8Q3JlZGVudGlhbHNDb250YWluZXI+IHsKIHB1YmxpYzoKQEAgLTU4LDcg
KzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFr
UHRyPERvY3VtZW50PiYmKTsKIAotICAgIFdlYkF1dGhuOjpTY29wZSBzY29wZSgpOworICAgIHN0
ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRh
Pj4gc2NvcGVBbmRTaW5nbGVQYXJlbnQoKTsKIAogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGFkMjBjMGE1ODI0MjhkNzgz
MWU5NGJlNWU4NTA0YjAxZjFmMjAzMWEuLmVmZGEyZThlMzY1MDJkYTM5MTg4NTM2NzdlMzMyMDIx
ZTM4YThjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgUHVibGljS2V5QwogICAgIG1fY2xpZW50LT5tYWtlQ3JlZGVudGlhbCgqZnJh
bWUsIGNhbGxlck9yaWdpbiwgY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZy
b21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBXZWJBdXRobjo6U2NvcGUgc2NvcGUsIENyZWRl
bnRpYWxQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQs
IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBjb25zdCBzdGQ6OnBh
aXI8V2ViQXV0aG46OlNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4+JiBz
Y29wZUFuZFNpbmdsZVBhcmVudCwgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAog
ewogICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDsK
IApAQCAtMTk1LDExICsxOTUsMTYgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRp
c2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICAvLyBU
aGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNj
cmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVjZW1iZXIgMjAxNy4KICAgICAvLyBTdGVwIDEsIDMs
IDEzIGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8gU3RlcCAyLgotICAgIC8vIFRo
aXMgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jc2N0bi1wZXJt
aXNzaW9ucy1wb2xpY3kgZXhjZXB0IG9ubHkgc2FtZS1zaXRlLCBjcm9zcy1vcmlnaW4gaXMgcGVy
bWl0dGVkLgotICAgIGlmIChzY29wZSAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYg
IShzY29wZSA9PSBXZWJBdXRobjo6U2NvcGU6OlNhbWVTaXRlICYmIGlzRmVhdHVyZVBvbGljeUFs
bG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1YmxpY2tl
eUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpO
bykpKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJh
dXRobi0yLyNzY3RuLXBlcm1pc3Npb25zLXBvbGljeQorICAgIGlmIChzY29wZUFuZFNpbmdsZVBh
cmVudC5maXJzdCAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYgIWlzRmVhdHVyZVBv
bGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1
YmxpY2tleUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWls
dXJlOjpObykpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dl
ZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIAorICAgIGlm
IChzY29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3Jp
Z2luICYmICFzY29wZUFuZFNpbmdsZVBhcmVudC5zZWNvbmQpIHsKKyAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9j
dW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIG11bHRpcGxlIG9mIGl0cyBhbmNlc3RvcnMuIl9zIH0p
OworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgLy8gU3RlcCA1LiBTa2lwcGVkIHNpbmNl
IFNlY3VyaXR5T3JpZ2luIGRvZXNuJ3QgaGF2ZSB0aGUgY29uY2VwdCBvZiAib3BhcXVlIG9yaWdp
biIuCiAgICAgLy8gU3RlcCA2LiBUaGUgZWZmZWN0aXZlIGRvbWFpbiBtYXkgYmUgcmVwcmVzZW50
ZWQgaW4gdmFyaW91cyBtYW5uZXJzLCBzdWNoIGFzIGEgZG9tYWluIG9yIGFuIGlwIGFkZHJlc3Mu
CkBAIC0yMzAsNyArMjM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2Nv
dmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICB9CiAKICAg
ICAvLyBTdGVwIDEwLTEyLgotICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBidWlsZENsaWVudERh
dGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmln
aW4sIHNjb3BlKTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0gYnVpbGRDbGllbnREYXRhSnNv
bihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luLCBz
Y29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCk7CiAgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2gg
PSBidWlsZENsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CiAKICAgICAvLyBTdGVw
IDQsIDE0LTE5LgpAQCAtMjU0LDcgKzI1OSw3IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lCiAg
ICAgICAgIHByb21pc2UucmVqZWN0KGV4Y2VwdGlvbi50b0V4Y2VwdGlvbigpKTsKICAgICB9Owog
ICAgIC8vIEFzeW5jIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgYW5kIGhhbmRsZWQgaW4gdGhl
IG1lc3Nlbmdlci4KLSAgICBtX2NsaWVudC0+Z2V0QXNzZXJ0aW9uKCpmcmFtZSwgY2FsbGVyT3Jp
Z2luLCBjbGllbnREYXRhSnNvbkhhc2gsIG9wdGlvbnMsIHJlcXVlc3RPcHRpb25zLm1lZGlhdGlv
biwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY2xpZW50LT5nZXRBc3NlcnRpb24oKmZyYW1l
LCBjYWxsZXJPcmlnaW4sIGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucywgcmVxdWVzdE9wdGlv
bnMubWVkaWF0aW9uLCBzY29wZUFuZFNpbmdsZVBhcmVudCwgV1RGTW92ZShjYWxsYmFjaykpOwog
fQogCiB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
IHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaAppbmRleCA0ZDlhYmE2OGU4ODgzMDUw
ODliZmUxOTMwYzM1MDhjYWRmNTNmZWVkLi5iZGVmZDE5ZjViM2EwNmEzMDcxNzJhMDU2NjJjMjc1
NzRkNWI1ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3Mg
RG9jdW1lbnQ7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsKIHN0
cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7CiBzdHJ1Y3QgQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCkBAIC01OSw3ICs2
MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbXBsZW1lbnQg
c3RhdGljIG1ldGhvZHMgb2YgUHVibGljS2V5Q3JlZGVudGlhbC4KICAgICB2b2lkIGNyZWF0ZShj
b25zdCBEb2N1bWVudCYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
LCBXZWJBdXRobjo6U2NvcGUsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgQ3JlZGVudGlhbFByb21p
c2UmJikgY29uc3Q7Ci0gICAgdm9pZCBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBE
b2N1bWVudCYsIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBXZWJBdXRobjo6U2NvcGUsIENy
ZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OworICAgIHZvaWQgZGlzY292ZXJGcm9tRXh0ZXJuYWxT
b3VyY2UoY29uc3QgRG9jdW1lbnQmLCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgY29uc3Qg
c3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRh
dGE+PiYsIENyZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5
aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExC
b29sZWFuPiYmKSBjb25zdDsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFi
bGUoRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JDbGllbnQuaAppbmRleCAzYmI2NWE4NmI4ZjMzZGNiMzYyNDZiODljZWZkOTZh
ZGIyN2I5M2IxLi44Y2U1NTI3ZTQwNjRmNzdhZjZhZTM1OWMxN2ZmZTdlN2Q2NDA3ZTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29y
ZGluYXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdlYkF1dGhuIHsKK2VudW0gY2xhc3MgU2NvcGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwpAQCAtNDMsNiArNDcsNyBAQCBlbnVt
IGNsYXNzIE1lZGlhdGlvblJlcXVpcmVtZW50IDogdWludDhfdDsKIHN0cnVjdCBBdXRoZW50aWNh
dG9yUmVzcG9uc2VEYXRhOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNl
Y3VyaXR5T3JpZ2luRGF0YTsKIAogdXNpbmcgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhJiYs
IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
JiYpPjsKIHVzaW5nIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPjsKQEAgLTU1LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvckNsaWVudCgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBtYWtlQ3JlZGVudGlhbChjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIGNvbnN0IHN0ZDo6cGFp
cjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBS
ZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc0NvbmRp
dGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJ
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZp
Y2VzQ29yZVNQSS5oCmluZGV4IDQyNDk5MGZhN2JkMTQ3NTIwNTIxMDdmYzNhZDIxODRjODUxZDUz
MjguLjhiZGFkODY3MDNiYzU5YjE2N2RjOWRmNTBjZTllMWFmNTQxOTBlYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXND
b3JlU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVudGlj
YXRpb25TZXJ2aWNlc0NvcmVTUEkuaApAQCAtMTY3LDYgKzE2Nyw4IEBAIHR5cGVkZWYgTlNfRU5V
TShOU1VJbnRlZ2VyLCBBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZCkgewogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PEFTQ1B1YmxpY0tl
eUNyZWRlbnRpYWxEZXNjcmlwdG9yICo+ICphbGxvd2VkQ3JlZGVudGlhbHM7CiAKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmRlc3RpbmF0aW9uU2l0ZUZv
ckNyb3NzU2l0ZUFzc2VydGlvbjsKKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KaW5kZXggODkwM2U5NDAzMGZkMjYyMGYzODI5MDdmYTgzYTU3YTZjMWQwNWE1Yi4uNGQ3Yzc2
ZDgzOGViM2UxODI1ZjgzMWE4MDdmN2U0ODVlMTgwOWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KQEAgLTgyMiw3ICs4MjIsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvbgogICAg
ICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9t
YWluIGNvZGU6ZXhjZXB0aW9uLmNvZGUgdXNlckluZm86QHsgTlNMb2NhbGl6ZWREZXNjcmlwdGlv
bktleTogZXhjZXB0aW9uLm1lc3NhZ2UgfV0pOwogICAgICAgICB9KTsKICAgICB9OwotICAgIF9w
YW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwg
bnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBz
dGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVx
dWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRU
b0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3Rk
OjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0
ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApAQCAtODM2LDcg
KzgzNiw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2U+IHdrQXV0aGVudGljYXRvckF0dGVzdGF0aW9uCiAgICAgICAgICAgICBoYW5kbGVyKG5p
bCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpleGNlcHRpb24u
Y29kZSB1c2VySW5mbzpAeyBOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5OiBleGNlcHRpb24ubWVz
c2FnZSB9XSk7CiAgICAgICAgIH0pOwogICAgIH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0
KHsgdmVjdG9yRnJvbU5TRGF0YShjbGllbnREYXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwg
bnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBz
dGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVx
dWVzdCh7IHZlY3RvckZyb21OU0RhdGEoY2xpZW50RGF0YUhhc2gpLCBbX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9u
c10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFp
bGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwgbnVsbHB0
ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogI2Vu
ZGlmCiB9CiAKQEAgLTg4Niw3ICs4ODYsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcAogICAg
ICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9t
YWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86bmlsXSk7CiAgICAgICAgIH0pOwogICAg
IH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0aE9wdGlvbnM6
b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6
VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwg
bnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBfcGFuZWwt
PmhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bCBjb252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0
ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVs
bHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51
bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApA
QCAtOTAwLDcgKzkwMCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwCiAgICAgICAgICAgICBo
YW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpX
S0Vycm9yVW5rbm93biB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgfSk7CiAgICAgfTsKLSAgICBf
cGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwg
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0
aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBT
dHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNo
KSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25z
V2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVl
LCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92
ZShjYWxsYmFjaykpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KaW5kZXggZGUxNzRkM2Y4Mjkw
N2EzZGU5ZTJjMmU0MDA3ZWVjMDAzY2Q3MWUxZi4uZWEzZDg1MjNlZDk1N2Y3ZjZjNjE5OTM4MTRj
YWU2MzRlMDZlNjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KQEAgLTIzNiw3ICsyMzYsMjcgQEAgc3RhdGlj
IFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJlZ2lzdHJh
dGlvblJlcXVlc3RDb250ZXgKICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQ7CiB9CiAKLXN0YXRp
YyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBjb25maWd1cmF0aW9uQXNz
ZXJ0aW9uUmVxdWVzdENvbnRleHQoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zJiBvcHRpb25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uKQorc3RhdGljIGlubGluZSBSZXRhaW5Q
dHI8QVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnM+IGNvbmZpZ3VyZUFzc2Vy
dGlvbk9wdGlvbnMoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRp
b25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmQga2lu
ZCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRPcmlnaW4s
IFJldGFpblB0cjxOU011dGFibGVBcnJheTxBU0NQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ciAqPj4gYWxsb3dlZENyZWRlbnRpYWxzLCBSZXRhaW5QdHI8TlNTdHJpbmc+IHVzZXJWZXJpZmlj
YXRpb24pCit7CisgICAgYXV0byBhc3NlcnRpb25PcHRpb25zID0gYWRvcHROUyhhbGxvY0FTQ1B1
YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25PcHRpb25zSW5zdGFuY2UoKSk7CisgICAgaWYgKFth
c3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhLaW5k
OnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNlclZlcmlmaWNhdGlvblBy
ZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7CisgICAgICAgIGF1dG8gbnNIYXNoID0g
dG9OU0RhdGEoaGFzaCk7CisgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRoS2luZDpB
U0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6
b3B0aW9ucy5ycElkIGNsaWVudERhdGFIYXNoOm5zSGFzaC5nZXQoKSB1c2VyVmVyaWZpY2F0aW9u
UHJlZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxv
d2VkQ3JlZGVudGlhbHMuZ2V0KCldOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gY2hhbGxl
bmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFsbGVuZ2UpOworICAgICAgICBbYXNz
ZXJ0aW9uT3B0aW9ucyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRQbGF0
Zm9ybSByZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjaGFsbGVuZ2U6Y2hhbGxl
bmdlLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0
KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07CisgICAgfQor
ICAgIGlmIChvcHRpb25zLmV4dGVuc2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihzZXRFeHRlbnNpb25zOildKQorICAgICAgICBbYXNzZXJ0aW9u
T3B0aW9ucyBzZXRFeHRlbnNpb25zOnRvQVNDRXh0ZW5zaW9ucygqb3B0aW9ucy5leHRlbnNpb25z
KS5nZXQoKV07CisgICAgaWYgKHBhcmVudE9yaWdpbiAmJiBbYXNzZXJ0aW9uT3B0aW9ucyByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFz
c2VydGlvbjopXSkKKyAgICAgICAgYXNzZXJ0aW9uT3B0aW9ucy5nZXQoKS5kZXN0aW5hdGlvblNp
dGVGb3JDcm9zc1NpdGVBc3NlcnRpb24gPSBwYXJlbnRPcmlnaW4tPnRvU3RyaW5nKCk7CisgICAg
ZWxzZSBpZiAocGFyZW50T3JpZ2luICYmICFbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFzc2VydGlvbjop
XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBhc3NlcnRpb25PcHRpb25zOwor
fQorCitzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1lbnQ+IG1lZGlhdGlvbiwgY29uc3Qgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRPcmlnaW4pCiB7CiAg
ICAgQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlcyByZXF1ZXN0VHlwZXMgPSBBU0NDcmVkZW50aWFs
UmVxdWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tleUFzc2VydGlvbiB8IEFTQ0NyZWRlbnRpYWxSZXF1
ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9uOwogCkBAIC0yNjQsMzIgKzI4NCwx
NiBAQCBzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZQogICAgICAgICByZXF1ZXN0Q29udGV4dC5nZXQo
KS5yZXF1ZXN0U3R5bGUgPSBBU0NyZWRlbnRpYWxSZXF1ZXN0U3R5bGVBdXRvRmlsbDsKIAogICAg
IGlmIChyZXF1ZXN0VHlwZXMgJiBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9ybVB1Ymxp
Y0tleUFzc2VydGlvbikgewotICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBhZG9wdE5T
KGFsbG9jQVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnNJbnN0YW5jZSgpKTsK
LSAgICAgICAgaWYgKFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoaW5pdFdpdGhLaW5kOnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNl
clZlcmlmaWNhdGlvblByZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7Ci0gICAgICAg
ICAgICBhdXRvIG5zSGFzaCA9IHRvTlNEYXRhKGhhc2gpOwotICAgICAgICAgICAgW2Fzc2VydGlv
bk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0g
cmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2xpZW50RGF0YUhhc2g6bnNIYXNo
LmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0KCkg
YWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGNoYWxsZW5nZSA9IFdlYkNvcmU6OnRvTlNEYXRhKG9w
dGlvbnMuY2hhbGxlbmdlKTsKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRo
S2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50
aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFsbGVuZ2UuZ2V0KCkgdXNlclZlcmlmaWNh
dGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVudGlhbHM6
YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3B0aW9u
cy5leHRlbnNpb25zICYmIFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Ioc2V0RXh0ZW5zaW9uczopXSkKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIHNl
dEV4dGVuc2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4dGVuc2lvbnMpLmdldCgpXTsK
LQorICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBjb25maWd1cmVBc3NlcnRpb25PcHRp
b25zKG9wdGlvbnMsIGhhc2gsIEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0sIHBh
cmVudE9yaWdpbiwgYWxsb3dlZENyZWRlbnRpYWxzLCB1c2VyVmVyaWZpY2F0aW9uKTsKKyAgICAg
ICAgaWYgKCFhc3NlcnRpb25PcHRpb25zKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgW3JlcXVlc3RDb250ZXh0IHNldFBsYXRmb3JtS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlv
bnM6YXNzZXJ0aW9uT3B0aW9ucy5nZXQoKV07CiAgICAgfQogCiAgICAgaWYgKHJlcXVlc3RUeXBl
cyAmIEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9u
KSB7Ci0gICAgICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGFkb3B0TlMoYWxsb2NBU0NQdWJs
aWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uc0luc3RhbmNlKCkpOwotICAgICAgICBpZiAo
W2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aEtp
bmQ6cmVseWluZ1BhcnR5SWRlbnRpZmllcjpjbGllbnREYXRhSGFzaDp1c2VyVmVyaWZpY2F0aW9u
UHJlZmVyZW5jZTphbGxvd2VkQ3JlZGVudGlhbHM6KV0pIHsKLSAgICAgICAgICAgIGF1dG8gbnNI
YXNoID0gdG9OU0RhdGEoaGFzaCk7Ci0gICAgICAgICAgICBbYXNzZXJ0aW9uT3B0aW9ucyBpbml0
V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSByZWx5aW5nUGFy
dHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjbGllbnREYXRhSGFzaDpuc0hhc2guZ2V0KCkgdXNl
clZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3Jl
ZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGF1dG8gY2hhbGxlbmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFs
bGVuZ2UpOwotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1
YmxpY0tleUNyZWRlbnRpYWxLaW5kU2VjdXJpdHlLZXkgcmVseWluZ1BhcnR5SWRlbnRpZmllcjpv
cHRpb25zLnJwSWQgY2hhbGxlbmdlOmNoYWxsZW5nZS5nZXQoKSB1c2VyVmVyaWZpY2F0aW9uUHJl
ZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxvd2Vk
Q3JlZGVudGlhbHMuZ2V0KCldOwotICAgICAgICB9Ci0gICAgICAgIGlmIChvcHRpb25zLmV4dGVu
c2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihz
ZXRFeHRlbnNpb25zOildKQotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgc2V0RXh0ZW5z
aW9uczp0b0FTQ0V4dGVuc2lvbnMoKm9wdGlvbnMuZXh0ZW5zaW9ucykuZ2V0KCldOwotCisgICAg
ICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGNvbmZpZ3VyZUFzc2VydGlvbk9wdGlvbnMob3B0
aW9ucywgaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSwgcGFyZW50
T3JpZ2luLCBhbGxvd2VkQ3JlZGVudGlhbHMsIHVzZXJWZXJpZmljYXRpb24pOworICAgICAgICBp
ZiAoIWFzc2VydGlvbk9wdGlvbnMpCisgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICBb
cmVxdWVzdENvbnRleHQgc2V0U2VjdXJpdHlLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uczph
c3NlcnRpb25PcHRpb25zLmdldCgpXTsKICAgICB9CiAKQEAgLTMwMiw3ICszMDYsNyBAQCBSZXRh
aW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eTo6Y29udGV4dAogICAgIFdURjo6c3dpdGNoT24ocmVxdWVzdERhdGEub3B0aW9u
cywgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMp
IHsKICAgICAgICAgcmVzdWx0ID0gY29uZmlndXJlUmVnaXN0cmF0aW9uUmVxdWVzdENvbnRleHQo
b3B0aW9ucywgcmVxdWVzdERhdGEuaGFzaCk7CiAgICAgfSwgWyZdKGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucykgewotICAgICAgICByZXN1bHQgPSBjb25m
aWd1cmF0aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRleHQob3B0aW9ucywgcmVxdWVzdERhdGEuaGFz
aCwgcmVxdWVzdERhdGEubWVkaWF0aW9uKTsKKyAgICAgICAgcmVzdWx0ID0gY29uZmlndXJhdGlv
bkFzc2VydGlvblJlcXVlc3RDb250ZXh0KG9wdGlvbnMsIHJlcXVlc3REYXRhLmhhc2gsIHJlcXVl
c3REYXRhLm1lZGlhdGlvbiwgcmVxdWVzdERhdGEucGFyZW50T3JpZ2luKTsKICAgICB9KTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1
ZXN0RGF0YS5oCmluZGV4IGI4Mzk2NTA0ZTFjOTQzMWQ0YWZlMzA2NzA3YTgwOWRmNDczZWE4ZWEu
LmEwYjVmZTgwNTlmZjcyM2JhMWMwNDk1MDdiNjYxY2NiNGI1Mjk5ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9u
UmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKQEAgLTM5LDYgKzM5LDEwIEBACiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC01OCw2ICs2Miw3IEBAIHN0cnVj
dCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBTdHJpbmcgY2FjaGVkUGluOyAv
LyBPbmx5IHVzZWQgdG8gaW1wcm92ZSBORkMgQ2xpZW50IFBJTiBleHBlcmllbmNlLgogICAgIFdl
YWtQdHI8QVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiB3ZWFrUGFuZWw7CiAgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBwYXJlbnRPcmlnaW47CiB9
OwogCiBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25zdCBzdGQ6
OnZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2Vi
Q29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGY1OWU5
NGE5NTY5ZjVlODE0YzI5ZjNiYmMyZGUxZmVhMzI0Nzg5OTMuLjQ1MTRjYzNlODU1NDI5YzAyODEz
OWIwODRiMDdhZWMxYzlkZDIyNDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTU4LDEyICs1OCwxMiBAQCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
KCkKIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRp
YWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZl
Y3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
JiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25I
YW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwg
V1RGTW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBX
VEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RG
TW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBh
Z2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpu
dWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCi12b2lkIFdlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50
IG1lZGlhdGlvbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9u
SGFuZGxlciYmIGhhbmRsZXIpCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBm
cmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdpbiwgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRs
ZXIpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9u
cyksIG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWls
YWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2Vi
UGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24gfSwgV1RGTW92ZShoYW5kbGVyKSk7
CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1f
d2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwg
bnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlE
KCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24sIHBhcmVudE9yaWdpbiB9LCBXVEZNb3ZlKGhh
bmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFu
ZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSwgUmVxdWVzdENv
bXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKQEAgLTc2LDExICs3NiwyMCBAQCB2b2lkIFdlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0
aW9uUmVxdWVzdERhdAogI2lmIEhBVkUoVU5JRklFRF9BU0NfQVVUSF9VSSkKICAgICAgICAgICAg
ICAgICBpZiAoIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLmlzTW9jaygpICYmICFhdXRoZW50aWNhdG9y
TWFuYWdlci5pc1ZpcnR1YWwoKSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvIGNvbnRleHQg
PSBjb250ZXh0Rm9yUmVxdWVzdChXVEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGNvbnRleHQuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlcih7IH0sIChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkwLCBFeGNlcHRpb25EYXRhIHsg
Tm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBz
YW1lIGFzIGl0cyBhbmNlc3RvcnMuIl9zIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIC8vIHBlcmZv
cm1SZXF1ZXN0IGNhbGxzIG91dCB0byBBU0NBZ2VudCB3aGljaCB3aWxsIHRoZW4gY2FsbCBbX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbCBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb25XaXRoQ2hh
bGxlbmdlXQogICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBjYWxscyBhdXRoZW50aWNhdG9y
TWFuYWdlci5oYW5kbGVSZXF1ZXN0KC4uKQogICAgICAgICAgICAgICAgICAgICBwZXJmb3JtUmVx
dWVzdChjb250ZXh0LCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBpZiAoZGF0YS5wYXJl
bnRPcmlnaW4pIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JB
dHRhY2htZW50KTAsIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2lu
IG9mIHRoZSBkb2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7
CisgICAgICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogI2VuZGlmIC8vIEhBVkUo
VU5JRklFRF9BU0NfQVVUSF9VSSkKIAogICAgICAgICAgICAgYXV0aGVudGljYXRvck1hbmFnZXIu
aGFuZGxlUmVxdWVzdChXVEZNb3ZlKGRhdGEpLCBbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcild
IChzdGQ6OnZhcmlhbnQ8UmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRhdGE+
JiYgcmVzdWx0KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggYi9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JQcm94eS5oCmluZGV4IDhmODdjMDMwNjhhNDA3YmI2NWI0ZjllMWY2MTE0ZjRk
NzA2ZDM0MWQuLjY3YTIwYmE0MTVkZmYzZDhkM2Q3YzRmMzJmYWEyYThkMTgzYTUzNjggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaApAQCAt
NzEsNyArNzEsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVjZWl2ZXJzLgogICAgIHZvaWQgbWFr
ZUNyZWRlbnRpYWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZl
Y3Rvcjx1aW50OF90PiYmIGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmJiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9u
SGFuZGxlciYmKTsKLSAgICB2b2lkIGdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZp
ZXIsIEZyYW1lSW5mb0RhdGEmJiwgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0
dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBnZXRBc3NlcnRpb24o
V2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZlY3Rvcjx1aW50OF90
PiYmIGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBX
ZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4sIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBpc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9u
SGFuZGxlciYmKTsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoUXVl
cnlDb21wbGV0aW9uSGFuZGxlciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
bWVzc2FnZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCBiNDAxYmRm
NWRhOWY4YWYwODI2ZTM0OGE3YmY3NTNhYjMwMTk0YzFlLi4xZjE5YjI3MzFkZGQwOTQ1YmZmMDdh
ZjU3OWY4NGQ1ZDVmYzhmYWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdl
cy5pbgorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjcsNyArMjcsNyBA
QAogbWVzc2FnZXMgLT4gV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291
bnRlZCB7CiAKICAgICBNYWtlQ3JlZGVudGlhbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJh
bWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50
OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJD
b3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1
dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRp
b25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKLSAgICBHZXRBc3NlcnRpb24oV2ViQ29yZTo6RnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZv
LCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyBvcHRpb25zLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zOjpNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGJvb2wgcHJv
Y2Vzc2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNw
b25zZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQg
YXR0YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKSBBc3lu
YworICAgIEdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3Ry
dWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiBoYXNo
LCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlv
bnMsIGVudW06dWludDhfdCBXZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlh
dGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdpbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+
IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmlu
dCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2Vi
Q29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCiAgICAgaXNDb25kaXRpb25hbE1l
ZGlhdGlvbkF2YWlsYWJsZSgpIC0+IChib29sIHJlc3VsdCkgQXN5bmMKICAgICBJc1VzZXJWZXJp
ZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpIEFz
eW5jCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRo
bkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nl
c3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAppbmRleCBlNGI0YjZiMzRjMGJm
MmU1MjE5N2E2ZGZmZTIyM2IxY2U3YjViNWFhLi41MTdjM2JhYzEyZjg3MTM3N2E3M2FlM2QxNTZi
MDNlNzM4ZmIwMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKQEAgLTk2LDEy
ICs5NiwxMiBAQCBib29sIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6ZGlzcGF0Y2hT
eW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lYwogCiB2b2lkIFdlYkF1dGhuQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6bWFrZUNyZWRlbnRpYWwoVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwg
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wgcHJvY2Vz
c2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewot
ICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBudWxs
cHRyLCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwg
c3RkOjpudWxsb3B0LCB7IH0sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxw
dHIsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0
KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVsbHB0ciwgV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9
LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQs
IHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRobkNv
bm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldEFzc2VydGlvbihWZWN0b3I8dWludDhfdD4mJiBoYXNo
LCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBib29sIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsK
LSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVs
bHB0ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIs
IHN0ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxs
cHRyLCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgaGFuZGxlUmVxdWVz
dCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG51bGxwdHIsIFdlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsg
fSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0
LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aG5D
b25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVx
dWVzdERhdGEmJiBkYXRhLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAppbmRleCBiMWJh
M2U0MTNkYjczMmY5MDVjNjhmYTcyMDQzNDZkN2RhNjgyY2QwLi4zM2FhY2RjNDY3ZGFkM2U0MWNh
Zjc3MDUxNTIzODlhYTY5NzMzN2IxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yLmNwcApAQCAtNDYsNiArNDYsNyBAQAogI2luY2x1ZGUgPFdlYkNvcmUv
UnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUgPFdlYkNvcmUvU2VjdXJpdHlPcmln
aW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJlSW5kaWNhdG9yLmg+CisjaW5jbHVk
ZSA8V2ViQ29yZS9XZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50cy5oPgogCiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIHVzaW5nIG5hbWVzcGFjZSBXZWJDb3JlOwpAQCAtODQsNyArODUsNyBAQCB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgRnJhbWUmIGZy
YW1lLCBjb25zdCBTZWN1cgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok1ha2VDcmVkZW50aWFsKGhh
c2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7
CiB9CiAKLXZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29u
c3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRp
b25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIFJlcXVlc3RDb21wbGV0aW9uSGFu
ZGxlciYmIGhhbmRsZXIpCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNz
ZXJ0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyYgb3B0aW9ucywgTWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBjb25zdCBzdGQ6
OnBhaXI8V2ViQXV0aG46OlNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4+
JiBzY29wZUFuZFNpbmdsZVBhcmVudCwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxl
cikKIHsKICAgICBhdXRvKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1l
KTsKICAgICBpZiAoIXdlYkZyYW1lKQpAQCAtOTcsNyArOTgsMTEgQEAgdm9pZCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0
IFNlY3VyaXQKICAgICBib29sIHVzZVdlYkF1dGhuUHJvY2VzcyA9IFJ1bnRpbWVFbmFibGVkRmVh
dHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkKCk7
CiAjZW5kaWYKICAgICBpZiAoIXVzZVdlYkF1dGhuUHJvY2VzcykgewotICAgICAgICBtX3dlYlBh
Z2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eTo6R2V0QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZv
KCksIGhhc2gsIG9wdGlvbnMsIG1lZGlhdGlvbiwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBX
VEZNb3ZlKGhhbmRsZXIpKTsKKyAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBseShN
ZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OkdldEFzc2VydGlvbih3
ZWJGcmFtZS0+ZnJhbWVJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBoYXNoLCBvcHRpb25zLCBtZWRp
YXRpb24sIHNjb3BlQW5kU2luZ2xlUGFyZW50LnNlY29uZCwgaXNQcm9jZXNzaW5nVXNlckdlc3R1
cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAo
c2NvcGVBbmRTaW5nbGVQYXJlbnQuZmlyc3QgPT0gV2ViQXV0aG46OlNjb3BlOjpDcm9zc09yaWdp
bikgeworICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTAsIEV4
Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVu
dCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7CiAgICAgICAgIHJldHVy
bjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3Iu
aAppbmRleCAyNTljOWU1NjJjMzkzYjBlNjNlYmI3OGUzZjc3YzI3OWRhNjk3MmY3Li4wZWQzZTc1
MmE3MDMzZWUzYjgzZTQwYjMxYjZmNjQ0MDMzOGFlYmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCkBAIC00MSw3ICs0MSw3IEBAIHB1YmxpYzoKIHBy
aXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50CiAg
ICAgdm9pZCBtYWtlQ3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNv
cmU6OlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgV2ViQ29y
ZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIFdlYkNvcmU6OlJlcXVlc3RD
b21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKLSAgICB2b2lkIGdldEFzc2VydGlvbihjb25zdCBX
ZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVmVj
dG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnMmLCBXZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudCwgV2ViQ29yZTo6UmVx
dWVzdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKGNv
bnN0IFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBjb25z
dCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBjb25zdCBz
dGQ6OnBhaXI8V2ViQXV0aG46OlNjb3BlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luRGF0YT4+JiwgV2ViQ29yZTo6UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFs
OwogICAgIHZvaWQgaXNDb25kaXRpb25hbE1lZGlhdGlvbkF2YWlsYWJsZShXZWJDb3JlOjpRdWVy
eUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxh
dGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFdlYkNvcmU6OlF1ZXJ5Q29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CiAgICAgdm9pZCByZXNldFVzZXJHZXN0dXJlUmVxdWlyZW1lbnQoKSBmaW5h
bCB7IG1fcmVxdWlyZVVzZXJHZXN0dXJlID0gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkN2FkMzUxZGUyZDVm
NjA3YjM0MDk4YTU2N2VmNjQwZGQwN2UyYmRjLi45Zjg4NTI4MTRjY2QzNTAzY2Q5MjlkNzkzMWIw
ZDBmNDE3YTZiZmE1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDMtMDIgIEogUGFzY29l
ICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gVXNpbmcgV2ViQXV0
aG4gd2l0aGluIGNyb3NzLW9yaWdpbiBpZnJhbWUgZWxlbWVudHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjI0MAorICAgICAgICByZGFyOi8vcHJv
YmxlbS83NDgzMDc0OAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFVwZGF0ZSBleGlzdGluZyB0ZXN0cyBhbmQgY3JlYXRlIG5ldyB0ZXN0IGZvciBjcm9z
cy1vcmlnaW4sIG5vbiBzYW1lLXNpdGUgaS1mcmFtZXMuCisKKyAgICAgICAgKiBodHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3Rv
cnMuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sOgor
ICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWw6IEFkZGVkLgorCiAyMDIyLTAzLTAyICBBbnRvaW5l
IFF1aW50ICA8Z3Jhb3V0c0B3ZWJraXQub3JnPgogCiAgICAgICAgIE91dGxpbmUtd2lkdGggd2l0
aCB0cmFuc2l0aW9uIGRvbid0IGFuaW1hdGUgY29ycmVjdGx5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2lu
Lmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmIwYTZjMTBiYWQzZDYwZTg4ZmYxMjIyMmNlNWUwZDI3ODJkMjk4ZjcKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworCitQ
QVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiwgTk9UIHNhbWUtc2l0
ZSB3aXRoIHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2FuIHVzZSBn
ZXQoKS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjVjYjVlYjI4YjM5ZjFiNWMxYmI5NTA5MGFkZDJmZWY3MzhkYzE2MDIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4IEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBsb2NhdGlvbj0iaHR0cHM6Ly8xMjcu
MC4wLjE6OTQ0My9XZWJLaXQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbCIKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2lu
LXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9y
cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzcwMjFkODE4MTcwMjQ0ZDYyNDhiZjA1ZWQ2YThl
OTljYzg3MTNmMS4uODhjNDI1Y2Y0OTMyNjY3ZDg3YzYzYzMyNzQ2YTAyNDUzNGYwM2VjNiAxMDA2
NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1v
cmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDUgKzQsNSBAQCBQ
QVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2lu
IHdpdGggYWxsIGl0cyBhbmNlc3RvcgogUEFTUyBUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBkb2Vz
bid0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbiB3aXRoIGFsbCBpdHMgYW5jZXN0b3JzIGNvdWxkIG5v
dCBhY2Nlc3MgdGhlIEFQSS4gMgogUEFTUyBUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBzYW1l
LXNpdGUsIGNyb3NzLW9yaWdpbiB3aXRob3V0IHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVh
dHVyZSBwb2xpY3kgY2Fubm90IHVzZSBnZXQoKS4KIFBBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRo
YXQgaXMgc2FtZS1zaXRlLCBjcm9zcy1vcmlnaW4gd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMt
Z2V0IGZlYXR1cmUgcG9saWN5IGNhbiB1c2UgZ2V0KCkuCi1QQVNTIFRlc3RzIHRoYXQgYSBmcmFt
ZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiwgTk9UIHNhbWUtc2l0ZSAgd2l0aCBwdWJsaWNrZXktY3Jl
ZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuCitQQVNTIFRlc3Rz
IHRoYXQgYSBmcmFtZSB1c2luZyBhbiBpcCBhZGRyZXNzIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBO
T1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGlj
eSBjYW5ub3QgdXNlIGdldCgpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sCmluZGV4IDU4MTQ3
NWU1MjA1MDRkMDhhOWMxZmE2ZjI3ODI2YzRlMjU1MjhiNjIuLjVkM2U4YzMxZjdlYWUxMmIwMWQy
ODI1M2RkZTE3N2U2YWZkNWRjYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5o
dHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sCkBAIC0xLDQg
KzEsNCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJBdXRo
ZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ9ZmFsc2Ug
XSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgpAQCAtMzcs
OSArMzcsOSBAQAogCiAgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAgICAgICAgIHJl
dHVybiB3aXRoQ3Jvc3NPcmlnaW5JZnJhbWUoInNhbWVzaXRlLWlmcmFtZS5odG1sIiwgInB1Ymxp
Y2tleS1jcmVkZW50aWFscy1nZXQiKS50aGVuKChtZXNzYWdlKSA9PiB7Ci0gICAgICAgICAgICAg
ICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJUaHJvdyBOb3RBbGxvd2VkRXJyb3I6IFRo
ZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3Jz
LiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZS5kYXRhLCAiVGhyb3cg
U2VjdXJpdHlFcnJvcjogVGhlIGVmZmVjdGl2ZSBkb21haW4gb2YgdGhlIGRvY3VtZW50IGlzIG5v
dCBhIHZhbGlkIGRvbWFpbi4iKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9LCAiVGVzdHMg
dGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlICB3aXRoIHB1
YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2Fubm90IHVzZSBnZXQoKS4i
KTsKKyAgICAgICAgfSwgIlRlc3RzIHRoYXQgYSBmcmFtZSB1c2luZyBhbiBpcCBhZGRyZXNzIHRo
YXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRp
YWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgpLiIpOwogICAgIDwvc2NyaXB0
PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2Vi
YXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk1ZDIxNzkx
MzM1YmIxNWM4YmQyZDI3OTI5NDA1NWIxZTlhMWM2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9wdWJsaWMta2V5LWNyZWRlbnRpYWwt
Y3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+
PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ9
ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgor
ICAgIDx0aXRsZT5XZWIgQXV0aGVudGljYXRpb24gQVBJOiBUZXN0cyB0aGF0IGEgZnJhbWUgdGhh
dCBpcyBjcm9zcy1vcmlnaW4gd2l0aCBmZWF0dXJlIHBvbGljeSBjYW4gYWNjZXNzIHRoZSBBUEku
PC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3NjcmlwdD4K
KyAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3JpcHQ+
CisgICAgPHNjcmlwdCBzcmM9Ii4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4K
KyAgICA8c2NyaXB0PgorICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAgICAv
LyBsb2NhbGhvc3QgaXMgY3Jvc3Mtb3JpZ2luIGhlcmUuCisgICAgICAgICAgICByZXR1cm4gd2l0
aFNhbWVTaXRlSWZyYW1lKCJzYW1lc2l0ZS1pZnJhbWUuaHRtbCIsICJwdWJsaWNrZXktY3JlZGVu
dGlhbHMtZ2V0IikudGhlbigobWVzc2FnZSkgPT4geworICAgICAgICAgICAgICAgIGFzc2VydF9l
cXVhbHMobWVzc2FnZS5kYXRhLCAiUEFTUyEiKTsKKyAgICAgICAgICAgIH0pOworICAgICAgICB9
LCAiVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRl
IHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW4gdXNlIGdl
dCgpLiIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453772</attachid>
            <date>2022-03-03 12:02:44 -0800</date>
            <delta_ts>2022-03-07 08:07:18 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222240-20220303120243.patch</filename>
            <type>text/plain</type>
            <size>46966</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwNzM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNTdmMjYwOTJkNDJkNzAz
ODE4M2E1OThjZjU0NzlhNjkwZDNiNTYxNC4uY2RlZDQ0MjA1MTRjMDczMDM2MzkxMzMyYzQ0ZmM5
YjE1ZTA4OWM4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTAyICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdl
YkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0g
YSBXZWIgQXV0aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1l
IHdpdGggdGhlICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9t
CisgICAgICAgIHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAg
ICAgIFRoZXJlIGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5
IGEgc2luZ2xlIGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUg
dXNlciBpbiB0aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAg
ICAgIHByb21wdCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQu
CisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFs
LWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRpYWxt
YW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjpzY29wZUFuZFNpbmdsZVBhcmVudCk6CisgICAgICAgIChXZWJD
b3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNyZWRl
bnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVudGlh
bG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNvbnN0
KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5o
OgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xp
ZW50Lmg6CisKIDIwMjItMDMtMDIgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4K
IAogICAgICAgICBBWDogSGFuZGxlIG51bGwgRmlsZUxpc3QgaW4gUmVuZGVyRmlsZVVwbG9hZENv
bnRyb2w6OmZpbGVUZXh0VmFsdWUoKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBmMTMwNjUwMjM4Y2U2OTU1ZGJmOGI1
YjYxM2VmZTFkNDQ4YzYwNWQ5Li4xOTk4MTcxZWJhYzQyYmU5NmVhZTZkZjdjZGRhYjc5NTI5Y2Fi
NGIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAzLTAyICBKIFBhc2NvZSAgPGpf
cGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdlYkF1dGhuIHdp
dGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjovL3Byb2JsZW0v
NzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0gYSBXZWIgQXV0
aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1lIHdpdGggdGhl
ICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9tCisgICAgICAg
IHNhbWUtc2l0ZSB0byBjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50LgorCisgICAgICAgIFRoZXJl
IGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xl
IGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUgdXNlciBpbiB0
aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAgICAgIHByb21w
dCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQuIAorCisgICAg
ICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25maWd1cmVBc3Nl
cnRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6Y29uZmlndXJhdGlvbkFzc2VydGlvblJl
cXVlc3RDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmNvbnRleHRGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmg6CisKIDIwMjItMDMtMDIgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgog
CiAgICAgICAgIFJlbmFtZSBNZWRpYVNhbXBsZUFWRk9iakM6OmNyZWF0ZUltYWdlU2FtcGxlIHRv
IE1lZGlhU2FtcGxlQVZGT2JqQzo6Y3JlYXRlRnJvbVBpeGVsQnVmZmVyCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCmluZGV4IDk2MDYwOGNhMTM1ZjhhYzY5NTZmYTljZjIz
ZjIzYTg5NTRlNDhhYzUuLmZjMGYzZmM1ZDRlY2VlODY3ODJlMDYwNWVjMGEzN2RmMjJkYTQyNjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQv
Q3JlZGVudGlhbHNDb250YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3Jl
ZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCkBAIC00NiwyNyArNDYs
MzMgQEAgQ3JlZGVudGlhbHNDb250YWluZXI6OkNyZWRlbnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8
RG9jdW1lbnQ+JiYgZG9jdW1lbnQpCiB7CiB9CiAKLVdlYkF1dGhuOjpTY29wZSBDcmVkZW50aWFs
c0NvbnRhaW5lcjo6c2NvcGUoKQorc3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRp
b25hbDxTZWN1cml0eU9yaWdpbkRhdGE+PiBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c2NvcGVBbmRT
aW5nbGVQYXJlbnQoKQogewogICAgIGlmICghbV9kb2N1bWVudCkKLSAgICAgICAgcmV0dXJuIFdl
YkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW47CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFp
cihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzdGQ6Om51bGxvcHQpOwogCiAgICAgYm9v
bCBpc1NhbWVPcmlnaW4gPSB0cnVlOwogICAgIGJvb2wgaXNTYW1lU2l0ZSA9IHRydWU7CiAgICAg
YXV0byYgb3JpZ2luID0gbV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsKICAgICBhdXRvJiB1
cmwgPSBtX2RvY3VtZW50LT51cmwoKTsKKyAgICBIYXNoU2V0PFNlY3VyaXR5T3JpZ2luRGF0YT4g
cGFyZW50czsKICAgICBmb3IgKGF1dG8qIGRvY3VtZW50ID0gbV9kb2N1bWVudC0+cGFyZW50RG9j
dW1lbnQoKTsgZG9jdW1lbnQ7IGRvY3VtZW50ID0gZG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkp
IHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luRG9tYWluKGRvY3VtZW50LT5zZWN1
cml0eU9yaWdpbigpKSAmJiAhYXJlUmVnaXN0cmFibGVEb21haW5zRXF1YWwodXJsLCBkb2N1bWVu
dC0+dXJsKCkpKQogICAgICAgICAgICAgaXNTYW1lU2l0ZSA9IGZhbHNlOwotICAgICAgICBpZiAo
IW9yaWdpbi5pc1NhbWVPcmlnaW5Bcyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkpCisgICAg
ICAgIGlmICghb3JpZ2luLmlzU2FtZU9yaWdpbkFzKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigp
KSkgewogICAgICAgICAgICAgaXNTYW1lT3JpZ2luID0gZmFsc2U7CisgICAgICAgICAgICBwYXJl
bnRzLmFkZChvcmlnaW4uZGF0YSgpKTsKKyAgICAgICAgfQogICAgIH0KIAogICAgIGlmIChpc1Nh
bWVPcmlnaW4pCi0gICAgICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW47Cisg
ICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4s
IHN0ZDo6bnVsbG9wdCk7CiAgICAgaWYgKGlzU2FtZVNpdGUpCi0gICAgICAgIHJldHVybiBXZWJB
dXRobjo6U2NvcGU6OlNhbWVTaXRlOwotICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OkNyb3Nz
T3JpZ2luOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoV2ViQXV0aG46OlNjb3BlOjpT
YW1lU2l0ZSwgc3RkOjpudWxsb3B0KTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2lu
RGF0YT4gc2luZ2xlUGFyZW50OworICAgIGlmIChwYXJlbnRzLnNpemUoKSA9PSAxKQorICAgICAg
ICBzaW5nbGVQYXJlbnQgPSAqcGFyZW50cy5iZWdpbigpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
cGFpcihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzaW5nbGVQYXJlbnQpOwogfQogCiB2
b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYg
b3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQpAQCAtOTgsNyArMTA0LDcgQEAg
dm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYm
IG9wdGlvbnMsIENyZWRlbnRpYWxQcm8KICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1f
ZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuZGlzY292ZXJGcm9t
RXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1vdmUob3B0aW9ucyksIHNjb3BlKCksIFdU
Rk1vdmUocHJvbWlzZSkpOworICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNv
b3JkaW5hdG9yKCkuZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1v
dmUob3B0aW9ucyksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCksIFdURk1vdmUocHJvbWlzZSkpOwog
fQogCiB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZShjb25zdCBCYXNpY0NyZWRlbnRp
YWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xMzMsNyArMTM5LDcgQEAgdm9p
ZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyYmIG9wdGlvbnMsIENyZWRlbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIG1fZG9j
dW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuY3JlYXRlKCptX2RvY3Vt
ZW50LCBvcHRpb25zLnB1YmxpY0tleS52YWx1ZSgpLCBzY29wZSgpLCBXVEZNb3ZlKG9wdGlvbnMu
c2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5hdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IoKS5jcmVhdGUoKm1fZG9jdW1lbnQsIG9wdGlvbnMucHVibGlj
S2V5LnZhbHVlKCksIHNjb3BlQW5kU2luZ2xlUGFyZW50KCkuZmlyc3QsIFdURk1vdmUob3B0aW9u
cy5zaWduYWwpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRh
aW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhET01Qcm9taXNlRGVmZXJyZWQ8dm9pZD4mJiBwcm9t
aXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFs
bWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oCmluZGV4IDlhNmIx
MmRkYzIyMjk4ZjQ3YzFlMzI5NjJiNmE2Y2YzOWViNWQ5MTIuLjIwMjI3MWJiZTdjY2U1ZjljNTk2
MWQ0NGQyMGQwM2VmYmI2NTkzZjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
Y3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVy
LmgKQEAgLTQyLDYgKzQyLDcgQEAgY2xhc3MgRG9jdW1lbnQ7CiAKIHN0cnVjdCBDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zOwogc3RydWN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK3N0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIGNsYXNzIENyZWRlbnRpYWxzQ29udGFpbmVyIDogcHVi
bGljIFJlZkNvdW50ZWQ8Q3JlZGVudGlhbHNDb250YWluZXI+IHsKIHB1YmxpYzoKQEAgLTU4LDcg
KzU5LDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFr
UHRyPERvY3VtZW50PiYmKTsKIAotICAgIFdlYkF1dGhuOjpTY29wZSBzY29wZSgpOworICAgIHN0
ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRh
Pj4gc2NvcGVBbmRTaW5nbGVQYXJlbnQoKTsKIAogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGFkMjBjMGE1ODI0MjhkNzgz
MWU5NGJlNWU4NTA0YjAxZjFmMjAzMWEuLmVmZGEyZThlMzY1MDJkYTM5MTg4NTM2NzdlMzMyMDIx
ZTM4YThjZDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgUHVibGljS2V5QwogICAgIG1fY2xpZW50LT5tYWtlQ3JlZGVudGlhbCgqZnJh
bWUsIGNhbGxlck9yaWdpbiwgY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZy
b21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBXZWJBdXRobjo6U2NvcGUgc2NvcGUsIENyZWRl
bnRpYWxQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQs
IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBjb25zdCBzdGQ6OnBh
aXI8V2ViQXV0aG46OlNjb3BlLCBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4+JiBz
Y29wZUFuZFNpbmdsZVBhcmVudCwgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAog
ewogICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDsK
IApAQCAtMTk1LDExICsxOTUsMTYgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRp
c2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICAvLyBU
aGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLyNj
cmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVjZW1iZXIgMjAxNy4KICAgICAvLyBTdGVwIDEsIDMs
IDEzIGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAgICAgLy8gU3RlcCAyLgotICAgIC8vIFRo
aXMgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jc2N0bi1wZXJt
aXNzaW9ucy1wb2xpY3kgZXhjZXB0IG9ubHkgc2FtZS1zaXRlLCBjcm9zcy1vcmlnaW4gaXMgcGVy
bWl0dGVkLgotICAgIGlmIChzY29wZSAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYg
IShzY29wZSA9PSBXZWJBdXRobjo6U2NvcGU6OlNhbWVTaXRlICYmIGlzRmVhdHVyZVBvbGljeUFs
bG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1YmxpY2tl
eUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpO
bykpKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJh
dXRobi0yLyNzY3RuLXBlcm1pc3Npb25zLXBvbGljeQorICAgIGlmIChzY29wZUFuZFNpbmdsZVBh
cmVudC5maXJzdCAhPSBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYgIWlzRmVhdHVyZVBv
bGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1
YmxpY2tleUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWls
dXJlOjpObykpIHsKICAgICAgICAgcHJvbWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dl
ZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIl9zIH0pOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIAorICAgIGlm
IChzY29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3Jp
Z2luICYmICFzY29wZUFuZFNpbmdsZVBhcmVudC5zZWNvbmQpIHsKKyAgICAgICAgcHJvbWlzZS5y
ZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9j
dW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIG11bHRpcGxlIG9mIGl0cyBhbmNlc3RvcnMuIl9zIH0p
OworICAgICAgICByZXR1cm47CisgICAgfQogCiAgICAgLy8gU3RlcCA1LiBTa2lwcGVkIHNpbmNl
IFNlY3VyaXR5T3JpZ2luIGRvZXNuJ3QgaGF2ZSB0aGUgY29uY2VwdCBvZiAib3BhcXVlIG9yaWdp
biIuCiAgICAgLy8gU3RlcCA2LiBUaGUgZWZmZWN0aXZlIGRvbWFpbiBtYXkgYmUgcmVwcmVzZW50
ZWQgaW4gdmFyaW91cyBtYW5uZXJzLCBzdWNoIGFzIGEgZG9tYWluIG9yIGFuIGlwIGFkZHJlc3Mu
CkBAIC0yMzAsNyArMjM1LDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2Nv
dmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWUKICAgICB9CiAKICAg
ICAvLyBTdGVwIDEwLTEyLgotICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBidWlsZENsaWVudERh
dGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdlLCBjYWxsZXJPcmln
aW4sIHNjb3BlKTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0gYnVpbGRDbGllbnREYXRhSnNv
bihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwgY2FsbGVyT3JpZ2luLCBz
Y29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCk7CiAgICAgYXV0byBjbGllbnREYXRhSnNvbkhhc2gg
PSBidWlsZENsaWVudERhdGFKc29uSGFzaChjbGllbnREYXRhSnNvbik7CiAKICAgICAvLyBTdGVw
IDQsIDE0LTE5LgpAQCAtMjU0LDcgKzI1OSw3IEBAIHZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lCiAg
ICAgICAgIHByb21pc2UucmVqZWN0KGV4Y2VwdGlvbi50b0V4Y2VwdGlvbigpKTsKICAgICB9Owog
ICAgIC8vIEFzeW5jIG9wZXJhdGlvbnMgYXJlIGRpc3BhdGNoZWQgYW5kIGhhbmRsZWQgaW4gdGhl
IG1lc3Nlbmdlci4KLSAgICBtX2NsaWVudC0+Z2V0QXNzZXJ0aW9uKCpmcmFtZSwgY2FsbGVyT3Jp
Z2luLCBjbGllbnREYXRhSnNvbkhhc2gsIG9wdGlvbnMsIHJlcXVlc3RPcHRpb25zLm1lZGlhdGlv
biwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY2xpZW50LT5nZXRBc3NlcnRpb24oKmZyYW1l
LCBjYWxsZXJPcmlnaW4sIGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucywgcmVxdWVzdE9wdGlv
bnMubWVkaWF0aW9uLCBzY29wZUFuZFNpbmdsZVBhcmVudCwgV1RGTW92ZShjYWxsYmFjaykpOwog
fQogCiB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZv
cm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYm
IHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93
ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaAppbmRleCA0ZDlhYmE2OGU4ODgzMDUw
ODliZmUxOTMwYzM1MDhjYWRmNTNmZWVkLi5iZGVmZDE5ZjViM2EwNmEzMDcxNzJhMDU2NjJjMjc1
NzRkNWI1ZDg2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKQEAgLTQ1LDYgKzQ1LDcgQEAgY2xhc3Mg
RG9jdW1lbnQ7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uczsKIHN0
cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7CiBzdHJ1Y3QgQ3JlZGVudGlh
bFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogdGVtcGxhdGU8
dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJvbWlzZURlZmVycmVkOwogCkBAIC01OSw3ICs2
MCw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbXBsZW1lbnQg
c3RhdGljIG1ldGhvZHMgb2YgUHVibGljS2V5Q3JlZGVudGlhbC4KICAgICB2b2lkIGNyZWF0ZShj
b25zdCBEb2N1bWVudCYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
LCBXZWJBdXRobjo6U2NvcGUsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgQ3JlZGVudGlhbFByb21p
c2UmJikgY29uc3Q7Ci0gICAgdm9pZCBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBE
b2N1bWVudCYsIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBXZWJBdXRobjo6U2NvcGUsIENy
ZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OworICAgIHZvaWQgZGlzY292ZXJGcm9tRXh0ZXJuYWxT
b3VyY2UoY29uc3QgRG9jdW1lbnQmLCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgY29uc3Qg
c3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRh
dGE+PiYsIENyZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5
aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExC
b29sZWFuPiYmKSBjb25zdDsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFi
bGUoRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3JDbGllbnQuaAppbmRleCAzYmI2NWE4NmI4ZjMzZGNiMzYyNDZiODljZWZkOTZh
ZGIyN2I5M2IxLi44Y2U1NTI3ZTQwNjRmNzdhZjZhZTM1OWMxN2ZmZTdlN2Q2NDA3ZTRkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29y
ZGluYXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKQEAgLTMxLDYgKzMxLDEwIEBACiAjaW5jbHVk
ZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQdHIuaD4KIAor
bmFtZXNwYWNlIFdlYkF1dGhuIHsKK2VudW0gY2xhc3MgU2NvcGU7Cit9CisKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwpAQCAtNDMsNiArNDcsNyBAQCBlbnVt
IGNsYXNzIE1lZGlhdGlvblJlcXVpcmVtZW50IDogdWludDhfdDsKIHN0cnVjdCBBdXRoZW50aWNh
dG9yUmVzcG9uc2VEYXRhOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNl
Y3VyaXR5T3JpZ2luRGF0YTsKIAogdXNpbmcgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyID0gQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhJiYs
IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50LCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
JiYpPjsKIHVzaW5nIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9uSGFuZGxlcjx2
b2lkKGJvb2wpPjsKQEAgLTU1LDcgKzYwLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgfkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvckNsaWVudCgpID0gZGVmYXVsdDsKIAogICAgIHZpcnR1YWwgdm9p
ZCBtYWtlQ3JlZGVudGlhbChjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7Ci0gICAgdmlydHVhbCB2b2lk
IGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3Qg
VmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
JiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7
CisgICAgdmlydHVhbCB2b2lkIGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3Vy
aXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIGNvbnN0IHN0ZDo6cGFp
cjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBS
ZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc0NvbmRp
dGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJ
LmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZp
Y2VzQ29yZVNQSS5oCmluZGV4IDQyNDk5MGZhN2JkMTQ3NTIwNTIxMDdmYzNhZDIxODRjODUxZDUz
MjguLjhiZGFkODY3MDNiYzU5YjE2N2RjOWRmNTBjZTllMWFmNTQxOTBlYTIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXND
b3JlU1BJLmgKKysrIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVudGlj
YXRpb25TZXJ2aWNlc0NvcmVTUEkuaApAQCAtMTY3LDYgKzE2Nyw4IEBAIHR5cGVkZWYgTlNfRU5V
TShOU1VJbnRlZ2VyLCBBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZCkgewogCiBAcHJvcGVydHkg
KG5vbmF0b21pYywgbnVsbGFibGUsIHJlYWRvbmx5LCBjb3B5KSBOU0FycmF5PEFTQ1B1YmxpY0tl
eUNyZWRlbnRpYWxEZXNjcmlwdG9yICo+ICphbGxvd2VkQ3JlZGVudGlhbHM7CiAKK0Bwcm9wZXJ0
eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29weSkgTlNTdHJpbmcgKmRlc3RpbmF0aW9uU2l0ZUZv
ckNyb3NzU2l0ZUFzc2VydGlvbjsKKwogQGVuZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwu
bW0KaW5kZXggODkwM2U5NDAzMGZkMjYyMGYzODI5MDdmYTgzYTU3YTZjMWQwNWE1Yi4uNGQ3Yzc2
ZDgzOGViM2UxODI1ZjgzMWE4MDdmN2U0ODVlMTgwOWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9u
UGFuZWwubW0KQEAgLTgyMiw3ICs4MjIsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRp
Y2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvbgogICAg
ICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9t
YWluIGNvZGU6ZXhjZXB0aW9uLmNvZGUgdXNlckluZm86QHsgTlNMb2NhbGl6ZWREZXNjcmlwdGlv
bktleTogZXhjZXB0aW9uLm1lc3NhZ2UgfV0pOwogICAgICAgICB9KTsKICAgICB9OwotICAgIF9w
YW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwg
bnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBz
dGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVx
dWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRU
b0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3Rk
OjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0
ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApAQCAtODM2LDcg
KzgzNiw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVz
cG9uc2U+IHdrQXV0aGVudGljYXRvckF0dGVzdGF0aW9uCiAgICAgICAgICAgICBoYW5kbGVyKG5p
bCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpleGNlcHRpb24u
Y29kZSB1c2VySW5mbzpAeyBOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5OiBleGNlcHRpb24ubWVz
c2FnZSB9XSk7CiAgICAgICAgIH0pOwogICAgIH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0
KHsgdmVjdG9yRnJvbU5TRGF0YShjbGllbnREYXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlv
blBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwg
bnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJs
ZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBz
dGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVx
dWVzdCh7IHZlY3RvckZyb21OU0RhdGEoY2xpZW50RGF0YUhhc2gpLCBbX1dLV2ViQXV0aGVudGlj
YXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9u
c10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFp
bGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwgbnVsbHB0
ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogI2Vu
ZGlmCiB9CiAKQEAgLTg4Niw3ICs4ODYsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRp
Y2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcAogICAg
ICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9t
YWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86bmlsXSk7CiAgICAgICAgIH0pOwogICAg
IH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0aE9wdGlvbnM6
b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6
VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwg
bnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBfcGFuZWwt
PmhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bCBjb252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0
ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVs
bHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51
bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApA
QCAtOTAwLDcgKzkwMCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2Vy
dGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwCiAgICAgICAgICAgICBo
YW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpX
S0Vycm9yVW5rbm93biB1c2VySW5mbzpuaWxdKTsKICAgICAgICAgfSk7CiAgICAgfTsKLSAgICBf
cGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwg
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0
aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBT
dHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAg
ICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNo
KSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25z
V2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25Q
YW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVl
LCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92
ZShjYWxsYmFjaykpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29j
b2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KaW5kZXggZGUxNzRkM2Y4Mjkw
N2EzZGU5ZTJjMmU0MDA3ZWVjMDAzY2Q3MWUxZi4uZWEzZDg1MjNlZDk1N2Y3ZjZjNjE5OTM4MTRj
YWU2MzRlMDZlNjRlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KKysr
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KQEAgLTIzNiw3ICsyMzYsMjcgQEAgc3RhdGlj
IFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJlZ2lzdHJh
dGlvblJlcXVlc3RDb250ZXgKICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQ7CiB9CiAKLXN0YXRp
YyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBjb25maWd1cmF0aW9uQXNz
ZXJ0aW9uUmVxdWVzdENvbnRleHQoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zJiBvcHRpb25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RkOjpvcHRpb25hbDxXZWJDb3Jl
OjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uKQorc3RhdGljIGlubGluZSBSZXRhaW5Q
dHI8QVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnM+IGNvbmZpZ3VyZUFzc2Vy
dGlvbk9wdGlvbnMoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRp
b25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmQga2lu
ZCwgY29uc3Qgc3RkOjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRPcmlnaW4s
IFJldGFpblB0cjxOU011dGFibGVBcnJheTxBU0NQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRv
ciAqPj4gYWxsb3dlZENyZWRlbnRpYWxzLCBSZXRhaW5QdHI8TlNTdHJpbmc+IHVzZXJWZXJpZmlj
YXRpb24pCit7CisgICAgYXV0byBhc3NlcnRpb25PcHRpb25zID0gYWRvcHROUyhhbGxvY0FTQ1B1
YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25PcHRpb25zSW5zdGFuY2UoKSk7CisgICAgaWYgKFth
c3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhLaW5k
OnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNlclZlcmlmaWNhdGlvblBy
ZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7CisgICAgICAgIGF1dG8gbnNIYXNoID0g
dG9OU0RhdGEoaGFzaCk7CisgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRoS2luZDpB
U0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6
b3B0aW9ucy5ycElkIGNsaWVudERhdGFIYXNoOm5zSGFzaC5nZXQoKSB1c2VyVmVyaWZpY2F0aW9u
UHJlZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxv
d2VkQ3JlZGVudGlhbHMuZ2V0KCldOworICAgIH0gZWxzZSB7CisgICAgICAgIGF1dG8gY2hhbGxl
bmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFsbGVuZ2UpOworICAgICAgICBbYXNz
ZXJ0aW9uT3B0aW9ucyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRQbGF0
Zm9ybSByZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjaGFsbGVuZ2U6Y2hhbGxl
bmdlLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0
KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07CisgICAgfQor
ICAgIGlmIChvcHRpb25zLmV4dGVuc2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNU
b1NlbGVjdG9yOkBzZWxlY3RvcihzZXRFeHRlbnNpb25zOildKQorICAgICAgICBbYXNzZXJ0aW9u
T3B0aW9ucyBzZXRFeHRlbnNpb25zOnRvQVNDRXh0ZW5zaW9ucygqb3B0aW9ucy5leHRlbnNpb25z
KS5nZXQoKV07CisgICAgaWYgKHBhcmVudE9yaWdpbiAmJiBbYXNzZXJ0aW9uT3B0aW9ucyByZXNw
b25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFz
c2VydGlvbjopXSkKKyAgICAgICAgYXNzZXJ0aW9uT3B0aW9ucy5nZXQoKS5kZXN0aW5hdGlvblNp
dGVGb3JDcm9zc1NpdGVBc3NlcnRpb24gPSBwYXJlbnRPcmlnaW4tPnRvU3RyaW5nKCk7CisgICAg
ZWxzZSBpZiAocGFyZW50T3JpZ2luICYmICFbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25kc1RvU2Vs
ZWN0b3I6QHNlbGVjdG9yKHNldERlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFzc2VydGlvbjop
XSkKKyAgICAgICAgcmV0dXJuIG5pbDsKKworICAgIHJldHVybiBhc3NlcnRpb25PcHRpb25zOwor
fQorCitzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1lbnQ+IG1lZGlhdGlvbiwgY29uc3Qgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+JiBwYXJlbnRPcmlnaW4pCiB7CiAg
ICAgQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlcyByZXF1ZXN0VHlwZXMgPSBBU0NDcmVkZW50aWFs
UmVxdWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tleUFzc2VydGlvbiB8IEFTQ0NyZWRlbnRpYWxSZXF1
ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9uOwogCkBAIC0yNjQsMzIgKzI4NCwx
NiBAQCBzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZQogICAgICAgICByZXF1ZXN0Q29udGV4dC5nZXQo
KS5yZXF1ZXN0U3R5bGUgPSBBU0NyZWRlbnRpYWxSZXF1ZXN0U3R5bGVBdXRvRmlsbDsKIAogICAg
IGlmIChyZXF1ZXN0VHlwZXMgJiBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9ybVB1Ymxp
Y0tleUFzc2VydGlvbikgewotICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBhZG9wdE5T
KGFsbG9jQVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnNJbnN0YW5jZSgpKTsK
LSAgICAgICAgaWYgKFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3IoaW5pdFdpdGhLaW5kOnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNl
clZlcmlmaWNhdGlvblByZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7Ci0gICAgICAg
ICAgICBhdXRvIG5zSGFzaCA9IHRvTlNEYXRhKGhhc2gpOwotICAgICAgICAgICAgW2Fzc2VydGlv
bk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0g
cmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2xpZW50RGF0YUhhc2g6bnNIYXNo
LmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0KCkg
YWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAgICAgIH0g
ZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGNoYWxsZW5nZSA9IFdlYkNvcmU6OnRvTlNEYXRhKG9w
dGlvbnMuY2hhbGxlbmdlKTsKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRo
S2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50
aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFsbGVuZ2UuZ2V0KCkgdXNlclZlcmlmaWNh
dGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVudGlhbHM6
YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3B0aW9u
cy5leHRlbnNpb25zICYmIFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2Vs
ZWN0b3Ioc2V0RXh0ZW5zaW9uczopXSkKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIHNl
dEV4dGVuc2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4dGVuc2lvbnMpLmdldCgpXTsK
LQorICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBjb25maWd1cmVBc3NlcnRpb25PcHRp
b25zKG9wdGlvbnMsIGhhc2gsIEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0sIHBh
cmVudE9yaWdpbiwgYWxsb3dlZENyZWRlbnRpYWxzLCB1c2VyVmVyaWZpY2F0aW9uKTsKKyAgICAg
ICAgaWYgKCFhc3NlcnRpb25PcHRpb25zKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAg
ICAgW3JlcXVlc3RDb250ZXh0IHNldFBsYXRmb3JtS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlv
bnM6YXNzZXJ0aW9uT3B0aW9ucy5nZXQoKV07CiAgICAgfQogCiAgICAgaWYgKHJlcXVlc3RUeXBl
cyAmIEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9u
KSB7Ci0gICAgICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGFkb3B0TlMoYWxsb2NBU0NQdWJs
aWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uc0luc3RhbmNlKCkpOwotICAgICAgICBpZiAo
W2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aEtp
bmQ6cmVseWluZ1BhcnR5SWRlbnRpZmllcjpjbGllbnREYXRhSGFzaDp1c2VyVmVyaWZpY2F0aW9u
UHJlZmVyZW5jZTphbGxvd2VkQ3JlZGVudGlhbHM6KV0pIHsKLSAgICAgICAgICAgIGF1dG8gbnNI
YXNoID0gdG9OU0RhdGEoaGFzaCk7Ci0gICAgICAgICAgICBbYXNzZXJ0aW9uT3B0aW9ucyBpbml0
V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSByZWx5aW5nUGFy
dHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjbGllbnREYXRhSGFzaDpuc0hhc2guZ2V0KCkgdXNl
clZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3Jl
ZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfSBlbHNlIHsKLSAg
ICAgICAgICAgIGF1dG8gY2hhbGxlbmdlID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFs
bGVuZ2UpOwotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1
YmxpY0tleUNyZWRlbnRpYWxLaW5kU2VjdXJpdHlLZXkgcmVseWluZ1BhcnR5SWRlbnRpZmllcjpv
cHRpb25zLnJwSWQgY2hhbGxlbmdlOmNoYWxsZW5nZS5nZXQoKSB1c2VyVmVyaWZpY2F0aW9uUHJl
ZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxvd2Vk
Q3JlZGVudGlhbHMuZ2V0KCldOwotICAgICAgICB9Ci0gICAgICAgIGlmIChvcHRpb25zLmV4dGVu
c2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihz
ZXRFeHRlbnNpb25zOildKQotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgc2V0RXh0ZW5z
aW9uczp0b0FTQ0V4dGVuc2lvbnMoKm9wdGlvbnMuZXh0ZW5zaW9ucykuZ2V0KCldOwotCisgICAg
ICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9ucyA9IGNvbmZpZ3VyZUFzc2VydGlvbk9wdGlvbnMob3B0
aW9ucywgaGFzaCwgQVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSwgcGFyZW50
T3JpZ2luLCBhbGxvd2VkQ3JlZGVudGlhbHMsIHVzZXJWZXJpZmljYXRpb24pOworICAgICAgICBp
ZiAoIWFzc2VydGlvbk9wdGlvbnMpCisgICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICBb
cmVxdWVzdENvbnRleHQgc2V0U2VjdXJpdHlLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uczph
c3NlcnRpb25PcHRpb25zLmdldCgpXTsKICAgICB9CiAKQEAgLTMwMiw3ICszMDYsNyBAQCBSZXRh
aW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eTo6Y29udGV4dAogICAgIFdURjo6c3dpdGNoT24ocmVxdWVzdERhdGEub3B0aW9u
cywgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMp
IHsKICAgICAgICAgcmVzdWx0ID0gY29uZmlndXJlUmVnaXN0cmF0aW9uUmVxdWVzdENvbnRleHQo
b3B0aW9ucywgcmVxdWVzdERhdGEuaGFzaCk7CiAgICAgfSwgWyZdKGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucykgewotICAgICAgICByZXN1bHQgPSBjb25m
aWd1cmF0aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRleHQob3B0aW9ucywgcmVxdWVzdERhdGEuaGFz
aCwgcmVxdWVzdERhdGEubWVkaWF0aW9uKTsKKyAgICAgICAgcmVzdWx0ID0gY29uZmlndXJhdGlv
bkFzc2VydGlvblJlcXVlc3RDb250ZXh0KG9wdGlvbnMsIHJlcXVlc3REYXRhLmhhc2gsIHJlcXVl
c3REYXRhLm1lZGlhdGlvbiwgcmVxdWVzdERhdGEucGFyZW50T3JpZ2luKTsKICAgICB9KTsKICAg
ICByZXR1cm4gcmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1
ZXN0RGF0YS5oCmluZGV4IGI4Mzk2NTA0ZTFjOTQzMWQ0YWZlMzA2NzA3YTgwOWRmNDczZWE4ZWEu
LmEwYjVmZTgwNTlmZjcyM2JhMWMwNDk1MDdiNjYxY2NiNGI1Mjk5ZjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9u
UmVxdWVzdERhdGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNh
dGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKQEAgLTM5LDYgKzM5LDEwIEBACiAj
aW5jbHVkZSA8d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVz
cGFjZSBXZWJDb3JlIHsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC01OCw2ICs2Miw3IEBAIHN0cnVj
dCBXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBTdHJpbmcgY2FjaGVkUGluOyAv
LyBPbmx5IHVzZWQgdG8gaW1wcm92ZSBORkMgQ2xpZW50IFBJTiBleHBlcmllbmNlLgogICAgIFdl
YWtQdHI8QVBJOjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiB3ZWFrUGFuZWw7CiAgICAgc3RkOjpv
cHRpb25hbDxXZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uOworICAgIHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBwYXJlbnRPcmlnaW47CiB9
OwogCiBXZWJDb3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25zdCBzdGQ6
OnZhcmlhbnQ8V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2Vi
Q29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGY1OWU5
NGE5NTY5ZjVlODE0YzI5ZjNiYmMyZGUxZmVhMzI0Nzg5OTMuLmYyMDZhYjRmNzRkNTRkNmI0MGY5
MGVmZDNjNDNkM2EyMWU3ZGQxOGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKQEAgLTU4LDEyICs1OCwxMiBAQCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
KCkKIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRp
YWwoRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZl
Y3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMm
JiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25I
YW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwg
V1RGTW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dl
YlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBX
VEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RG
TW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1
bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBh
Z2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nl
c3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpu
dWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCi12b2lkIFdlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZy
YW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50
IG1lZGlhdGlvbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9u
SGFuZGxlciYmIGhhbmRsZXIpCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBm
cmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgc3Rk
OjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdpbiwgYm9v
bCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRs
ZXIpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9u
cyksIG1fd2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWls
YWJsZSwgbnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2Vi
UGFnZUlEKCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24gfSwgV1RGTW92ZShoYW5kbGVyKSk7
CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1f
d2ViUGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwg
bnVsbHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlE
KCksIGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFN0cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24sIHBhcmVudE9yaWdpbiB9LCBXVEZNb3ZlKGhh
bmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFu
ZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSwgUmVxdWVzdENv
bXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKQEAgLTc2LDExICs3NiwyMCBAQCB2b2lkIFdlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0
aW9uUmVxdWVzdERhdAogI2lmIEhBVkUoVU5JRklFRF9BU0NfQVVUSF9VSSkKICAgICAgICAgICAg
ICAgICBpZiAoIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLmlzTW9jaygpICYmICFhdXRoZW50aWNhdG9y
TWFuYWdlci5pc1ZpcnR1YWwoKSkgewogICAgICAgICAgICAgICAgICAgICBhdXRvIGNvbnRleHQg
PSBjb250ZXh0Rm9yUmVxdWVzdChXVEZNb3ZlKGRhdGEpKTsKKyAgICAgICAgICAgICAgICAgICAg
aWYgKGNvbnRleHQuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAgICAgICAgICAgICAg
aGFuZGxlcih7IH0sIChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkwLCBFeGNlcHRpb25EYXRhIHsg
Tm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBz
YW1lIGFzIGl0cyBhbmNlc3RvcnMuIl9zIH0pOworICAgICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOworICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgIC8vIHBlcmZv
cm1SZXF1ZXN0IGNhbGxzIG91dCB0byBBU0NBZ2VudCB3aGljaCB3aWxsIHRoZW4gY2FsbCBbX1dL
V2ViQXV0aGVudGljYXRpb25QYW5lbCBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb25XaXRoQ2hh
bGxlbmdlXQogICAgICAgICAgICAgICAgICAgICAvLyB3aGljaCBjYWxscyBhdXRoZW50aWNhdG9y
TWFuYWdlci5oYW5kbGVSZXF1ZXN0KC4uKQogICAgICAgICAgICAgICAgICAgICBwZXJmb3JtUmVx
dWVzdChjb250ZXh0LCBXVEZNb3ZlKGhhbmRsZXIpKTsKICAgICAgICAgICAgICAgICAgICAgcmV0
dXJuOwogICAgICAgICAgICAgICAgIH0KKyNlbHNlCisgICAgICAgICAgICBpZiAoZGF0YS5wYXJl
bnRPcmlnaW4gJiYgIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLmlzTW9jaygpICYmICFhdXRoZW50aWNh
dG9yTWFuYWdlci5pc1ZpcnR1YWwoKSkgeworICAgICAgICAgICAgICAgIGhhbmRsZXIoeyB9LCAo
QXV0aGVudGljYXRvckF0dGFjaG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJv
ciwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5j
ZXN0b3JzLiJfcyB9KTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAj
ZW5kaWYgLy8gSEFWRShVTklGSUVEX0FTQ19BVVRIX1VJKQogCiAgICAgICAgICAgICBhdXRoZW50
aWNhdG9yTWFuYWdlci5oYW5kbGVSZXF1ZXN0KFdURk1vdmUoZGF0YSksIFtoYW5kbGVyID0gV1RG
TW92ZShoYW5kbGVyKV0gKHN0ZDo6dmFyaWFudDxSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiwg
RXhjZXB0aW9uRGF0YT4mJiByZXN1bHQpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmgKaW5kZXggOGY4N2MwMzA2OGE0MDdiYjY1
YjRmOWUxZjYxMTRmNGQ3MDZkMzQxZC4uNjdhMjBiYTQxNWRmZjNkOGQzZDdjNGYzMmZhYTJhOGQx
ODNhNTM2OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5oCkBAIC03MSw3ICs3MSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBSZWNlaXZlcnMu
CiAgICAgdm9pZCBtYWtlQ3JlZGVudGlhbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1l
SW5mb0RhdGEmJiwgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVx
dWVzdENvbXBsZXRpb25IYW5kbGVyJiYpOwotICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKFdlYkNvcmU6
OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0YSYmLCBWZWN0b3I8dWludDhfdD4mJiBoYXNo
LCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgV2ViQ29yZTo6
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOjpNZWRpYXRpb25SZXF1aXJlbWVudCwgYm9vbCBwcm9j
ZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lk
IGdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwg
VmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiYsIFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6TWVkaWF0aW9u
UmVxdWlyZW1lbnQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiwg
Ym9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKTsK
ICAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShR
dWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpOwogICAgIHZvaWQgaXNDb25kaXRpb25hbE1lZGlhdGlv
bkF2YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpOwogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmlu
CmluZGV4IGI0MDFiZGY1ZGE5ZjhhZjA4MjZlMzQ4YTdiZjc1M2FiMzAxOTRjMWUuLjFmMTliMjcz
MWRkZDA5NDViZmYwN2FmNTc5Zjg0ZDVkNWZjOGZhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5Lm1lc3NhZ2VzLmluCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBA
IC0yNyw3ICsyNyw3IEBACiBtZXNzYWdlcyAtPiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eSBOb3RSZWZDb3VudGVkIHsKIAogICAgIE1ha2VDcmVkZW50aWFsKFdlYkNvcmU6OkZyYW1l
SWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5m
bywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSAt
PiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0YSwgZW51bTpp
bnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwgc3RydWN0IFdl
YkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKSBBc3luYwotICAgIEdldEFzc2VydGlvbihX
ZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZv
RGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnMsIGVudW06dWludDhfdCBXZWJD
b3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlh
dGlvbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0
aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNh
dG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBl
eGNlcHRpb24pIEFzeW5jCisgICAgR2V0QXNzZXJ0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmll
ciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgVmVjdG9y
PHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMgb3B0aW9ucywgZW51bTp1aW50OF90IFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdl
YkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4gcGFyZW50T3JpZ2luLCBib29sIHByb2Nlc3NpbmdV
c2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRh
IGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1l
bnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKICAgICBp
c0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwog
ICAgIElzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIC0+IChi
b29sIHJlc3VsdCkgQXN5bmMKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Q
cm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0
L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4
IGU0YjRiNmIzNGMwYmYyZTUyMTk3YTZkZmZlMjIzYjFjZTdiNWI1YWEuLjUxN2MzYmFjMTJmODcx
Mzc3YTczYWUzZDE1NmIwM2U3MzhmYjAyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
QXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291
cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNz
LmNwcApAQCAtOTYsMTIgKzk2LDEyIEBAIGJvb2wgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9j
ZXNzOjpkaXNwYXRjaFN5bmNNZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjCiAKIHZvaWQg
V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjptYWtlQ3JlZGVudGlhbChWZWN0b3I8dWlu
dDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYgb3B0aW9u
cywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIpCiB7Ci0gICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUo
b3B0aW9ucyksIG51bGxwdHIsIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxh
YmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBT
dHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOworICAg
IGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBudWxscHRy
LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3Rk
OjpudWxsb3B0LCB7IH0sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIs
IHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2
b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6Z2V0QXNzZXJ0aW9uKFZlY3Rvcjx1
aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlv
bnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIm
JiBoYW5kbGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3Zl
KG9wdGlvbnMpLCBudWxscHRyLCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWls
YWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwg
U3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAg
ICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVsbHB0
ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0
ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRy
LCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAog
dm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmhhbmRsZVJlcXVlc3QoV2ViQXV0
aGVudGljYXRpb25SZXF1ZXN0RGF0YSYmIGRhdGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQv
V2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3Iu
Y3BwCmluZGV4IGIxYmEzZTQxM2RiNzMyZjkwNWM2OGZhNzIwNDM0NmQ3ZGE2ODJjZDAuLjMzYWFj
ZGM0NjdkYWQzZTQxY2FmNzcwNTE1MjM4OWFhNjk3MzM3YjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5j
bHVkZSA8V2ViQ29yZS9SdW50aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29y
ZS9TZWN1cml0eU9yaWdpbi5oPgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0
b3IuaD4KKyNpbmNsdWRlIDxXZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmg+CiAK
IG5hbWVzcGFjZSBXZWJLaXQgewogdXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CkBAIC04NCw3ICs4
NSw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjptYWtlQ3JlZGVudGlhbChj
b25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyCiAgICAgV2ViUHJvY2Vzczo6c2luZ2xldG9u
KCkuZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNvbm5lY3Rpb24oKS5zZW5kV2l0
aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6TWFr
ZUNyZWRlbnRpYWwoaGFzaCwgb3B0aW9ucywgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZN
b3ZlKGhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6Omdl
dEFzc2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnMmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgUmVxdWVz
dENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKK3ZvaWQgV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9y
aWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVu
dGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRp
b24sIGNvbnN0IHN0ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8U2VjdXJp
dHlPcmlnaW5EYXRhPj4mIHNjb3BlQW5kU2luZ2xlUGFyZW50LCBSZXF1ZXN0Q29tcGxldGlvbkhh
bmRsZXImJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZyYW1lID0gV2ViRnJhbWU6OmZyb21D
b3JlRnJhbWUoZnJhbWUpOwogICAgIGlmICghd2ViRnJhbWUpCkBAIC05Nyw3ICs5OCwxMSBAQCB2
b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1l
JiBmcmFtZSwgY29uc3QgU2VjdXJpdAogICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVu
dGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkVuYWJsZWQoKTsKICNlbmRpZgogICAgIGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0g
ICAgICAgIG1fd2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQoKSwg
d2ViRnJhbWUtPmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBpc1Byb2Nlc3NpbmdV
c2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICBtX3dlYlBhZ2Uuc2VuZFdp
dGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6
R2V0QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gs
IG9wdGlvbnMsIG1lZGlhdGlvbiwgc2NvcGVBbmRTaW5nbGVQYXJlbnQuc2Vjb25kLCBpc1Byb2Nl
c3NpbmdVc2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChzY29wZUFuZFNpbmdsZVBhcmVudC5maXJzdCA9PSBXZWJBdXRobjo6U2Nv
cGU6OkNyb3NzT3JpZ2luKSB7CisgICAgICAgIGhhbmRsZXIoeyB9LCAoQXV0aGVudGljYXRvckF0
dGFjaG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmlnaW4g
b2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsK
ICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvci5oCmluZGV4IDI1OWM5ZTU2MmMzOTNiMGU2M2ViYjc4ZTNmNzdjMjc5ZGE2
OTcyZjcuLjBlZDNlNzUyYTcwMzNlZTNiODNlNDBiMzFiNmY2NDQwMzM4YWViZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKQEAgLTQxLDcgKzQxLDcg
QEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JDbGllbnQKICAgICB2b2lkIG1ha2VDcmVkZW50aWFsKGNvbnN0IFdlYkNvcmU6OkZyYW1l
JiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4m
LCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiwgV2Vi
Q29yZTo6UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwotICAgIHZvaWQgZ2V0QXNz
ZXJ0aW9uKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmln
aW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tl
eUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVtZW50
LCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CisgICAgdm9pZCBn
ZXRBc3NlcnRpb24oY29uc3QgV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0
eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgV2ViQ29yZTo6TWVkaWF0aW9uUmVxdWly
ZW1lbnQsIGNvbnN0IHN0ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0ZDo6b3B0aW9uYWw8V2Vi
Q29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhh
bmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBpc0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxl
KFdlYkNvcmU6OlF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBpc1Vz
ZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoV2ViQ29yZTo6UXVlcnlD
b21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIHJlc2V0VXNlckdlc3R1cmVSZXF1
aXJlbWVudCgpIGZpbmFsIHsgbV9yZXF1aXJlVXNlckdlc3R1cmUgPSBmYWxzZTsgfQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4
IGQ3YWQzNTFkZTJkNWY2MDdiMzQwOThhNTY3ZWY2NDBkZDA3ZTJiZGMuLjlmODg1MjgxNGNjZDM1
MDNjZDkyOWQ3OTMxYjBkMGY0MTdhNmJmYTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5n
ZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAyMi0w
My0wMiAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhu
XSBVc2luZyBXZWJBdXRobiB3aXRoaW4gY3Jvc3Mtb3JpZ2luIGlmcmFtZSBlbGVtZW50cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMjQwCisgICAg
ICAgIHJkYXI6Ly9wcm9ibGVtLzc0ODMwNzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIHRlc3RzIGFuZCBjcmVhdGUgbmV3
IHRlc3QgZm9yIGNyb3NzLW9yaWdpbiwgbm9uIHNhbWUtc2l0ZSBpLWZyYW1lcy4KKworICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4u
aHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdp
bi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3Jz
Lmh0dHBzLmh0bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMjIt
MDMtMDIgIEFudG9pbmUgUXVpbnQgIDxncmFvdXRzQHdlYmtpdC5vcmc+CiAKICAgICAgICAgT3V0
bGluZS13aWR0aCB3aXRoIHRyYW5zaXRpb24gZG9uJ3QgYW5pbWF0ZSBjb3JyZWN0bHkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlh
bC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjBhNmMxMGJhZDNkNjBlODhmZjEyMjIyY2U1ZTBkMjc4MmQyOThm
NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1Ymxp
Yy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsNCBAQAorCisKK1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2lu
LCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBv
bGljeSBjYW4gdXNlIGdldCgpLgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mt
b3JpZ2luLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNiNWViMjhiMzlmMWI1YzFiYjk1MDkwYWRk
MmZlZjczOGRjMTYwMgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApAQCAt
MCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgV2Vi
QXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkPWZhbHNlIF0gLS0+Cis8c2NyaXB0PgorICAgIGlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgfQorICAgIGxvY2F0aW9u
PSJodHRwczovLzEyNy4wLjAuMTo5NDQzL1dlYktpdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sIgorPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2lu
LXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCBjNzAyMWQ4MTgxNzAyNDRk
NjI0OGJmMDVlZDZhOGU5OWNjODcxM2YxLi44OGM0MjVjZjQ5MzI2NjdkODdjNjNjMzI3NDZhMDI0
NTM0ZjAzZWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTQsNSArNCw1IEBAIFBBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgZG9lc24ndCBzaGFyZSB0
aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9yCiBQQVNTIFRlc3RzIHRoYXQgYSBm
cmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNl
c3RvcnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJLiAyCiBQQVNTIFRlc3RzIHRoYXQgYSBmcmFt
ZSB0aGF0IGlzIHNhbWUtc2l0ZSwgY3Jvc3Mtb3JpZ2luIHdpdGhvdXQgcHVibGlja2V5LWNyZWRl
bnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgpLgogUEFTUyBUZXN0cyB0
aGF0IGEgZnJhbWUgdGhhdCBpcyBzYW1lLXNpdGUsIGNyb3NzLW9yaWdpbiB3aXRoIHB1YmxpY2tl
eS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2FuIHVzZSBnZXQoKS4KLVBBU1MgVGVz
dHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlICB3aXRo
IHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2Fubm90IHVzZSBnZXQo
KS4KK1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHVzaW5nIGFuIGlwIGFkZHJlc3MgdGhhdCBpcyBj
cm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0
IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13
aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0
bWwKaW5kZXggNTgxNDc1ZTUyMDUwNGQwOGE5YzFmYTZmMjc4MjZjNGUyNTUyOGI2Mi4uNWQzZThj
MzFmN2VhZTEyYjAxZDI4MjUzZGRlMTc3ZTZhZmQ1ZGNhMyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdp
dGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBz
Lmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZD10cnVlIF0gLS0+Cis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJu
RW5hYmxlZD1mYWxzZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4KICAgICA8bWV0YSBjaGFyc2V0PSJ1
dGYtOCI+CkBAIC0zNyw5ICszNyw5IEBACiAKICAgICAgICAgcHJvbWlzZV90ZXN0KHQgPT4gewog
ICAgICAgICAgICAgcmV0dXJuIHdpdGhDcm9zc09yaWdpbklmcmFtZSgic2FtZXNpdGUtaWZyYW1l
Lmh0bWwiLCAicHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCIpLnRoZW4oKG1lc3NhZ2UpID0+IHsK
LSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3NhZ2UuZGF0YSwgIlRocm93IE5vdEFs
bG93ZWRFcnJvcjogVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFz
IGl0cyBhbmNlc3RvcnMuIik7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdl
LmRhdGEsICJUaHJvdyBTZWN1cml0eUVycm9yOiBUaGUgZWZmZWN0aXZlIGRvbWFpbiBvZiB0aGUg
ZG9jdW1lbnQgaXMgbm90IGEgdmFsaWQgZG9tYWluLiIpOwogICAgICAgICAgICAgfSk7Ci0gICAg
ICAgIH0sICJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1l
LXNpdGUgIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5u
b3QgdXNlIGdldCgpLiIpOworICAgICAgICB9LCAiVGVzdHMgdGhhdCBhIGZyYW1lIHVzaW5nIGFu
IGlwIGFkZHJlc3MgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJs
aWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuIik7
CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3Nz
LW9yaWdpbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3Vy
Y2VzL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi42OTVkMjE3OTEzMzViYjE1YzhiZDJkMjc5Mjk0MDU1YjFlOWExYzZmCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbApAQCAtMCwwICsxLDIyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9u
TW9kZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPldlYiBBdXRoZW50aWNhdGlvbiBBUEk6IFRlc3RzIHRo
YXQgYSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiB3aXRoIGZlYXR1cmUgcG9saWN5IGNhbiBh
Y2Nlc3MgdGhlIEFQSS48L3RpdGxlPgorICAgIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9jb21tb24vdXRpbHMu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL2dldC1ob3N0LWluZm8uc3Vi
LmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi91dGlsLmpzIj48L3NjcmlwdD4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsK
KyAgICAgICAgICAgIC8vIGxvY2FsaG9zdCBpcyBjcm9zcy1vcmlnaW4gaGVyZS4KKyAgICAgICAg
ICAgIHJldHVybiB3aXRoU2FtZVNpdGVJZnJhbWUoInNhbWVzaXRlLWlmcmFtZS5odG1sIiwgInB1
YmxpY2tleS1jcmVkZW50aWFscy1nZXQiKS50aGVuKChtZXNzYWdlKSA9PiB7CisgICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJQQVNTISIpOworICAgICAgICAgICAg
fSk7CisgICAgICAgIH0sICJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBjcm9zcy1vcmlnaW4s
IE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9s
aWN5IGNhbiB1c2UgZ2V0KCkuIik7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>453986</attachid>
            <date>2022-03-07 08:07:21 -0800</date>
            <delta_ts>2022-03-08 09:06:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-222240-20220307080720.patch</filename>
            <type>text/plain</type>
            <size>46970</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwODUzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWY2ZTc0NjA4ZGUyZDJm
MGU3MDNlYzk4MTI0Y2E2OTk0NGJlZjIzNi4uYTU2NjU3NWNlZmZjZjRlNTdlZjc2YzkxYWFmMTFh
OTE3NDBkMDIyOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTA0ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdl
YkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBUaGlzIHBhdGNoIHJlbGF4ZXMgdGhlIHJlcXVpcmVtZW50IHRvIHBlcmZvcm0g
YSBXZWIgQXV0aGVudGljYXRpb24gYXNzZXJ0aW9uCisgICAgICAgIGluc2lkZSBhbiBpLWZyYW1l
IHdpdGggdGhlICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IiBmZWF0dXJlIHBvbGljeSBmcm9t
CisgICAgICAgICdzYW1lLXNpdGUnIHRvICdjcm9zcy1vcmlnaW4gd2l0aCBjb25zZW50Jy4KKwor
ICAgICAgICBUaGVyZSBpcyBhbiBhZGRpdGlvbmFsIHJlcXVpcmVtZW50IHRoYXQgdGhlcmUgaXMg
b25seSBhIHNpbmdsZSBjcm9zcy1vcmlnaW4KKyAgICAgICAgcGFyZW50IHRvIHByZXNlbnQgdG8g
dGhlIHVzZXIgaW4gdGhlIHByb21wdC4gSWYgd2UgY2FuJ3QgZGlzcGxheSB0aGUgdXBkYXRlZAor
ICAgICAgICBwcm9tcHQsIHRoZW4gY3Jvc3Mtb3JpZ2luIGFzc2VydGlvbnMgYXJlIG5vdCBhbGxv
d2VkLgorCisgICAgICAgIFRlc3Q6IGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbAorCisgICAgICAgICogTW9kdWxlcy9jcmVkZW50
aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6c2NvcGVBbmRTaW5nbGVQYXJlbnQpOgorICAgICAgICAo
V2ViQ29yZTo6Q3JlZGVudGlhbHNDb250YWluZXI6OmdldCk6CisgICAgICAgIChXZWJDb3JlOjpD
cmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUpOgorICAgICAgICAoV2ViQ29yZTo6Q3JlZGVu
dGlhbHNDb250YWluZXI6OnNjb3BlKTogRGVsZXRlZC4KKyAgICAgICAgKiBNb2R1bGVzL2NyZWRl
bnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmg6CisgICAgICAgICogTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSBj
b25zdCk6CisgICAgICAgICogTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IuaDoKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ckNsaWVudC5oOgorCiAyMDIyLTAzLTA0ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlA
YXBwbGUuY29tPgogCiAgICAgICAgIGFib3V0OmJsYW5rIGlmcmFtZXMgZG8gbm90IGFsd2F5cyBp
bmhlcml0IHBhcmVudCBDU1AKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIv
U291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggZWFjZWY4MDk3MjhmMzhmNDJmNzBkMTkyNGNk
NmRkYTEwMjdjODlhNC4uMTU3ZTI4NTAzZWIyZWU0N2M1MDFjZTQ3ODA1ZWFiM2FiYTFlZjY0MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAyMi0wMy0wNCAgSiBQYXNjb2UgIDxqX3Bhc2Nv
ZUBhcHBsZS5jb20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBVc2luZyBXZWJBdXRobiB3aXRoaW4g
Y3Jvc3Mtb3JpZ2luIGlmcmFtZSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjIyMjQwCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzc0ODMw
NzQ4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhp
cyBwYXRjaCByZWxheGVzIHRoZSByZXF1aXJlbWVudCB0byBwZXJmb3JtIGEgV2ViIEF1dGhlbnRp
Y2F0aW9uIGFzc2VydGlvbgorICAgICAgICBpbnNpZGUgYW4gaS1mcmFtZSB3aXRoIHRoZSAicHVi
bGlja2V5LWNyZWRlbnRpYWxzLWdldCIgZmVhdHVyZSBwb2xpY3kgZnJvbQorICAgICAgICAnc2Ft
ZS1zaXRlJyB0byAnY3Jvc3Mtb3JpZ2luIHdpdGggY29uc2VudCcuCisKKyAgICAgICAgVGhlcmUg
aXMgYW4gYWRkaXRpb25hbCByZXF1aXJlbWVudCB0aGF0IHRoZXJlIGlzIG9ubHkgYSBzaW5nbGUg
Y3Jvc3Mtb3JpZ2luCisgICAgICAgIHBhcmVudCB0byBwcmVzZW50IHRvIHRoZSB1c2VyIGluIHRo
ZSBwcm9tcHQuIElmIHdlIGNhbid0IGRpc3BsYXkgdGhlIHVwZGF0ZWQKKyAgICAgICAgcHJvbXB0
LCB0aGVuIGNyb3NzLW9yaWdpbiBhc3NlcnRpb25zIGFyZSBub3QgYWxsb3dlZC4gCisKKyAgICAg
ICAgKiBQbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkubW06CisgICAgICAgIChXZWJLaXQ6OmNvbmZpZ3VyZUFzc2Vy
dGlvbk9wdGlvbnMpOgorICAgICAgICAoV2ViS2l0Ojpjb25maWd1cmF0aW9uQXNzZXJ0aW9uUmVx
dWVzdENvbnRleHQpOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eTo6Y29udGV4dEZvclJlcXVlc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmg6CisgICAgICAgICogVUlQ
cm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6
Om1ha2VDcmVkZW50aWFsKToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHk6OmdldEFzc2VydGlvbik6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaDoK
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yUHJveHkubWVzc2FnZXMuaW46CisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlvbik6CisgICAgICAg
ICogV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IuaDoKKwogMjAyMi0wMy0wNCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUu
Y29tPgogCiAgICAgICAgIFtpT1NdIEJvb2tzIEFTU0VSVHMgdXBvbiBvcGVuaW5nIGEgYm9vayB3
aXRoIGEgZGVidWcgYnVpbGQgb2YgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250
YWluZXIuY3BwCmluZGV4IDk2MDYwOGNhMTM1ZjhhYzY5NTZmYTljZjIzZjIzYTg5NTRlNDhhYzUu
LjkxOWFhMDY4NTZjOGFhYTBlYjQyNGZkMDY3YjFhMmY0Yjc5NTE2YzYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250
YWluZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1l
bnQvQ3JlZGVudGlhbHNDb250YWluZXIuY3BwCkBAIC00NiwyNyArNDYsMjcgQEAgQ3JlZGVudGlh
bHNDb250YWluZXI6OkNyZWRlbnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYgZG9j
dW1lbnQpCiB7CiB9CiAKLVdlYkF1dGhuOjpTY29wZSBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c2Nv
cGUoKQorU2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c2Nv
cGVBbmRDcm9zc09yaWdpblBhcmVudCgpCiB7CiAgICAgaWYgKCFtX2RvY3VtZW50KQotICAgICAg
ICByZXR1cm4gV2ViQXV0aG46OlNjb3BlOjpDcm9zc09yaWdpbjsKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bWFrZV9wYWlyKFdlYkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW4sIHN0ZDo6bnVsbG9wdCk7
CiAKLSAgICBib29sIGlzU2FtZU9yaWdpbiA9IHRydWU7CiAgICAgYm9vbCBpc1NhbWVTaXRlID0g
dHJ1ZTsKICAgICBhdXRvJiBvcmlnaW4gPSBtX2RvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpOwog
ICAgIGF1dG8mIHVybCA9IG1fZG9jdW1lbnQtPnVybCgpOworICAgIHN0ZDo6b3B0aW9uYWw8U2Vj
dXJpdHlPcmlnaW5EYXRhPiBjcm9zc09yaWdpblBhcmVudDsKICAgICBmb3IgKGF1dG8qIGRvY3Vt
ZW50ID0gbV9kb2N1bWVudC0+cGFyZW50RG9jdW1lbnQoKTsgZG9jdW1lbnQ7IGRvY3VtZW50ID0g
ZG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCkpIHsKICAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1l
T3JpZ2luRG9tYWluKGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKSAmJiAhYXJlUmVnaXN0cmFi
bGVEb21haW5zRXF1YWwodXJsLCBkb2N1bWVudC0+dXJsKCkpKQogICAgICAgICAgICAgaXNTYW1l
U2l0ZSA9IGZhbHNlOwotICAgICAgICBpZiAoIW9yaWdpbi5pc1NhbWVPcmlnaW5Bcyhkb2N1bWVu
dC0+c2VjdXJpdHlPcmlnaW4oKSkpCi0gICAgICAgICAgICBpc1NhbWVPcmlnaW4gPSBmYWxzZTsK
KyAgICAgICAgaWYgKCFjcm9zc09yaWdpblBhcmVudCAmJiAhb3JpZ2luLmlzU2FtZU9yaWdpbkFz
KGRvY3VtZW50LT5zZWN1cml0eU9yaWdpbigpKSkKKyAgICAgICAgICAgIGNyb3NzT3JpZ2luUGFy
ZW50ID0gb3JpZ2luLmRhdGEoKTsKICAgICB9CiAKLSAgICBpZiAoaXNTYW1lT3JpZ2luKQotICAg
ICAgICByZXR1cm4gV2ViQXV0aG46OlNjb3BlOjpTYW1lT3JpZ2luOworICAgIGlmICghY3Jvc3NP
cmlnaW5QYXJlbnQpCisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihXZWJBdXRobjo6U2Nv
cGU6OlNhbWVPcmlnaW4sIHN0ZDo6bnVsbG9wdCk7CiAgICAgaWYgKGlzU2FtZVNpdGUpCi0gICAg
ICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OlNhbWVTaXRlOwotICAgIHJldHVybiBXZWJBdXRo
bjo6U2NvcGU6OkNyb3NzT3JpZ2luOworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoV2Vi
QXV0aG46OlNjb3BlOjpTYW1lU2l0ZSwgc3RkOjpudWxsb3B0KTsKKyAgICByZXR1cm4gc3RkOjpt
YWtlX3BhaXIoV2ViQXV0aG46OlNjb3BlOjpDcm9zc09yaWdpbiwgY3Jvc3NPcmlnaW5QYXJlbnQp
OwogfQogCiB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zJiYgb3B0aW9ucywgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQpAQCAtOTgsNyAr
OTgsNyBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpnZXQoQ3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zJiYgb3B0aW9ucywgQ3JlZGVudGlhbFBybwogICAgICAgICByZXR1cm47CiAgICAgfQog
Ci0gICAgbV9kb2N1bWVudC0+cGFnZSgpLT5hdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IoKS5kaXNj
b3ZlckZyb21FeHRlcm5hbFNvdXJjZSgqbV9kb2N1bWVudCwgV1RGTW92ZShvcHRpb25zKSwgc2Nv
cGUoKSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9kb2N1bWVudC0+cGFnZSgpLT5hdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3IoKS5kaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZSgqbV9kb2N1bWVu
dCwgV1RGTW92ZShvcHRpb25zKSwgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCgpLCBXVEZNb3Zl
KHByb21pc2UpKTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6c3RvcmUoY29uc3Qg
QmFzaWNDcmVkZW50aWFsJiwgQ3JlZGVudGlhbFByb21pc2UmJiBwcm9taXNlKQpAQCAtMTMzLDcg
KzEzMyw3IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmlzQ3JlYXRlKENyZWRlbnRpYWxD
cmVhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBDcmVkZW50CiAgICAgICAgIHJldHVybjsKICAgICB9
CiAKLSAgICBtX2RvY3VtZW50LT5wYWdlKCktPmF1dGhlbnRpY2F0b3JDb29yZGluYXRvcigpLmNy
ZWF0ZSgqbV9kb2N1bWVudCwgb3B0aW9ucy5wdWJsaWNLZXkudmFsdWUoKSwgc2NvcGUoKSwgV1RG
TW92ZShvcHRpb25zLnNpZ25hbCksIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fZG9jdW1lbnQt
PnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuY3JlYXRlKCptX2RvY3VtZW50LCBv
cHRpb25zLnB1YmxpY0tleS52YWx1ZSgpLCBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50KCkuZmly
c3QsIFdURk1vdmUob3B0aW9ucy5zaWduYWwpLCBXVEZNb3ZlKHByb21pc2UpKTsKIH0KIAogdm9p
ZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6cHJldmVudFNpbGVudEFjY2VzcyhET01Qcm9taXNlRGVm
ZXJyZWQ8dm9pZD4mJiBwcm9taXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5oIGIvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRh
aW5lci5oCmluZGV4IDlhNmIxMmRkYzIyMjk4ZjQ3YzFlMzI5NjJiNmE2Y2YzOWViNWQ5MTIuLmQw
MzdhOTdkYTUzNzNlZTllNjJmNWJhOTFmNTZmZWU2NzExN2U3MzQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWlu
ZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0Ny
ZWRlbnRpYWxzQ29udGFpbmVyLmgKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogcHJpdmF0ZToK
ICAgICBDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFrUHRyPERvY3VtZW50PiYmKTsKIAotICAgIFdl
YkF1dGhuOjpTY29wZSBzY29wZSgpOworICAgIFNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQgc2Nv
cGVBbmRDcm9zc09yaWdpblBhcmVudCgpOwogCiAgICAgV2Vha1B0cjxEb2N1bWVudD4gbV9kb2N1
bWVudDsKIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKaW5kZXggYWQyMGMwYTU4MjQyOGQ3ODMx
ZTk0YmU1ZTg1MDRiMDFmMWYyMDMxYS4uYmM1YmVkZjczNDI5YTBiNTJlZGMwZWQxZDRlNzQ1YTkz
OThmZWU5NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApAQCAtMTg0LDcgKzE4NCw3IEBAIHZv
aWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpjcmVhdGUoY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50LCBjb25zdCBQdWJsaWNLZXlDCiAgICAgbV9jbGllbnQtPm1ha2VDcmVkZW50aWFsKCpmcmFt
ZSwgY2FsbGVyT3JpZ2luLCBjbGllbnREYXRhSnNvbkhhc2gsIG9wdGlvbnMsIFdURk1vdmUoY2Fs
bGJhY2spKTsKIH0KIAotdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJv
bUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwgQ3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiYgcmVxdWVzdE9wdGlvbnMsIFdlYkF1dGhuOjpTY29wZSBzY29wZSwgQ3JlZGVu
dGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAordm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCwg
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgcmVxdWVzdE9wdGlvbnMsIGNvbnN0IFNjb3BlQW5k
Q3Jvc3NPcmlnaW5QYXJlbnQmIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQsIENyZWRlbnRpYWxQ
cm9taXNlJiYgcHJvbWlzZSkgY29uc3QKIHsKICAgICB1c2luZyBuYW1lc3BhY2UgQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9ySW50ZXJuYWw7CiAKQEAgLTE5NSw4ICsxOTUsOCBAQCB2b2lkIEF1dGhl
bnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgRG9j
dW1lbnQmIGRvY3VtZQogICAgIC8vIFRoZSBmb2xsb3dpbmcgaW1wbGVtZW50cyBodHRwczovL3d3
dy53My5vcmcvVFIvd2ViYXV0aG4vI2NyZWF0ZUNyZWRlbnRpYWwgYXMgb2YgNSBEZWNlbWJlciAy
MDE3LgogICAgIC8vIFN0ZXAgMSwgMywgMTMgYXJlIGhhbmRsZWQgYnkgdGhlIGNhbGxlci4KICAg
ICAvLyBTdGVwIDIuCi0gICAgLy8gVGhpcyBpbXBsZW1lbnRzIGh0dHBzOi8vd3d3LnczLm9yZy9U
Ui93ZWJhdXRobi0yLyNzY3RuLXBlcm1pc3Npb25zLXBvbGljeSBleGNlcHQgb25seSBzYW1lLXNp
dGUsIGNyb3NzLW9yaWdpbiBpcyBwZXJtaXR0ZWQuCi0gICAgaWYgKHNjb3BlICE9IFdlYkF1dGhu
OjpTY29wZTo6U2FtZU9yaWdpbiAmJiAhKHNjb3BlID09IFdlYkF1dGhuOjpTY29wZTo6U2FtZVNp
dGUgJiYgaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxPd25lcnMoRmVhdHVy
ZVBvbGljeTo6VHlwZTo6UHVibGlja2V5Q3JlZGVudGlhbHNHZXRSdWxlLCBkb2N1bWVudCwgTG9n
RmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKSkpIHsKKyAgICAvLyBUaGlzIGltcGxlbWVudHMgaHR0
cHM6Ly93d3cudzMub3JnL1RSL3dlYmF1dGhuLTIvI3NjdG4tcGVybWlzc2lvbnMtcG9saWN5Cisg
ICAgaWYgKHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQuZmlyc3QgIT0gV2ViQXV0aG46OlNjb3Bl
OjpTYW1lT3JpZ2luICYmICFpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93
bmVycyhGZWF0dXJlUG9saWN5OjpUeXBlOjpQdWJsaWNrZXlDcmVkZW50aWFsc0dldFJ1bGUsIGRv
Y3VtZW50LCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pKSB7CiAgICAgICAgIHByb21pc2Uu
cmVqZWN0KEV4Y2VwdGlvbiB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmlnaW4gb2YgdGhlIGRv
Y3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsKICAgICAgICAg
cmV0dXJuOwogICAgIH0KQEAgLTIzMCw3ICsyMzAsNyBAQCB2b2lkIEF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZQogICAgIH0KIAogICAgIC8vIFN0ZXAgMTAtMTIuCi0gICAgYXV0byBjbGllbnREYXRhSnNvbiA9
IGJ1aWxkQ2xpZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGU6OkdldCwgb3B0aW9ucy5jaGFsbGVu
Z2UsIGNhbGxlck9yaWdpbiwgc2NvcGUpOworICAgIGF1dG8gY2xpZW50RGF0YUpzb24gPSBidWls
ZENsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxlbmdlLCBj
YWxsZXJPcmlnaW4sIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQuZmlyc3QpOwogICAgIGF1dG8g
Y2xpZW50RGF0YUpzb25IYXNoID0gYnVpbGRDbGllbnREYXRhSnNvbkhhc2goY2xpZW50RGF0YUpz
b24pOwogCiAgICAgLy8gU3RlcCA0LCAxNC0xOS4KQEAgLTI1NCw3ICsyNTQsNyBAQCB2b2lkIEF1
dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3Qg
RG9jdW1lbnQmIGRvY3VtZQogICAgICAgICBwcm9taXNlLnJlamVjdChleGNlcHRpb24udG9FeGNl
cHRpb24oKSk7CiAgICAgfTsKICAgICAvLyBBc3luYyBvcGVyYXRpb25zIGFyZSBkaXNwYXRjaGVk
IGFuZCBoYW5kbGVkIGluIHRoZSBtZXNzZW5nZXIuCi0gICAgbV9jbGllbnQtPmdldEFzc2VydGlv
bigqZnJhbWUsIGNhbGxlck9yaWdpbiwgY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLCByZXF1
ZXN0T3B0aW9ucy5tZWRpYXRpb24sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBtX2NsaWVudC0+
Z2V0QXNzZXJ0aW9uKCpmcmFtZSwgY2FsbGVyT3JpZ2luLCBjbGllbnREYXRhSnNvbkhhc2gsIG9w
dGlvbnMsIHJlcXVlc3RPcHRpb25zLm1lZGlhdGlvbiwgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVu
dCwgV1RGTW92ZShjYWxsYmFjaykpOwogfQogCiB2b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRv
cjo6aXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKERPTVByb21p
c2VEZWZlcnJlZDxJRExCb29sZWFuPiYmIHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIGIv
U291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3Iu
aAppbmRleCA0ZDlhYmE2OGU4ODgzMDUwODliZmUxOTMwYzM1MDhjYWRmNTNmZWVkLi43MDU2MzU2
OGQ5MmFmNWUzN2MwOGZhY2QyNDE5NmJhYzI4NTFjZTE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgK
QEAgLTQ1LDEwICs0NSwxMiBAQCBjbGFzcyBEb2N1bWVudDsKIHN0cnVjdCBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9uczsKIHN0cnVjdCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7CitzdHJ1Y3QgU2VjdXJp
dHlPcmlnaW5EYXRhOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBJRExUeXBlPiBjbGFzcyBET01Qcm9t
aXNlRGVmZXJyZWQ7CiAKIHVzaW5nIENyZWRlbnRpYWxQcm9taXNlID0gRE9NUHJvbWlzZURlZmVy
cmVkPElETE51bGxhYmxlPElETEludGVyZmFjZTxCYXNpY0NyZWRlbnRpYWw+Pj47Cit1c2luZyBT
Y29wZUFuZENyb3NzT3JpZ2luUGFyZW50ID0gc3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3Rk
OjpvcHRpb25hbDxTZWN1cml0eU9yaWdpbkRhdGE+PjsKIAogY2xhc3MgQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yIGZpbmFsIHsKICAgICBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKQEAgLTU5LDcg
KzYxLDcgQEAgcHVibGljOgogCiAgICAgLy8gVGhlIGZvbGxvd2luZyBtZXRob2RzIGltcGxlbWVu
dCBzdGF0aWMgbWV0aG9kcyBvZiBQdWJsaWNLZXlDcmVkZW50aWFsLgogICAgIHZvaWQgY3JlYXRl
KGNvbnN0IERvY3VtZW50JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9u
cyYsIFdlYkF1dGhuOjpTY29wZSwgUmVmUHRyPEFib3J0U2lnbmFsPiYmLCBDcmVkZW50aWFsUHJv
bWlzZSYmKSBjb25zdDsKLSAgICB2b2lkIGRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0
IERvY3VtZW50JiwgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIFdlYkF1dGhuOjpTY29wZSwg
Q3JlZGVudGlhbFByb21pc2UmJikgY29uc3Q7CisgICAgdm9pZCBkaXNjb3ZlckZyb21FeHRlcm5h
bFNvdXJjZShjb25zdCBEb2N1bWVudCYsIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBjb25z
dCBTY29wZUFuZENyb3NzT3JpZ2luUGFyZW50JiwgQ3JlZGVudGlhbFByb21pc2UmJikgY29uc3Q7
CiAgICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUo
RE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYpIGNvbnN0OwogICAgIHZvaWQgaXNDb25k
aXRpb25hbE1lZGlhdGlvbkF2YWlsYWJsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4m
JikgY29uc3Q7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4v
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oCmluZGV4IDNiYjY1YTg2
YjhmMzNkY2IzNjI0NmI4OWNlZmQ5NmFkYjI3YjkzYjEuLjY2NTJlOGUyYTRiZTMyMDg3OWEyNGI5
M2UwMDA3NGIxODJhY2I3NDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQuaApAQCAt
MjcsMTAgKzI3LDE1IEBACiAKICNpZiBFTkFCTEUoV0VCX0FVVEhOKQogCisjaW5jbHVkZSAiQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmgiCiAjaW5jbHVkZSAiRXhjZXB0aW9uRGF0YS5oIgogI2lu
Y2x1ZGUgPHd0Zi9Db21wbGV0aW9uSGFuZGxlci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+
CiAKK25hbWVzcGFjZSBXZWJBdXRobiB7CitlbnVtIGNsYXNzIFNjb3BlOworfQorCiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIGNsYXNzIERlZmVycmVkUHJvbWlzZTsKQEAgLTQzLDYgKzQ4LDcgQEAg
ZW51bSBjbGFzcyBNZWRpYXRpb25SZXF1aXJlbWVudCA6IHVpbnQ4X3Q7CiBzdHJ1Y3QgQXV0aGVu
dGljYXRvclJlc3BvbnNlRGF0YTsKIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK3N0cnVj
dCBTZWN1cml0eU9yaWdpbkRhdGE7CiAKIHVzaW5nIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciA9
IENvbXBsZXRpb25IYW5kbGVyPHZvaWQoV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0
YSYmLCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCwgV2ViQ29yZTo6RXhjZXB0aW9u
RGF0YSYmKT47CiB1c2luZyBRdWVyeUNvbXBsZXRpb25IYW5kbGVyID0gQ29tcGxldGlvbkhhbmRs
ZXI8dm9pZChib29sKT47CkBAIC01NSw3ICs2MSw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIH5B
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQoKSA9IGRlZmF1bHQ7CiAKICAgICB2aXJ0dWFs
IHZvaWQgbWFrZUNyZWRlbnRpYWwoY29uc3QgRnJhbWUmLCBjb25zdCBTZWN1cml0eU9yaWdpbiYs
IGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlv
bk9wdGlvbnMmLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwotICAgIHZpcnR1YWwg
dm9pZCBnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmLCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNv
bnN0IFZlY3Rvcjx1aW50OF90PiYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyYsIE1lZGlhdGlvblJlcXVpcmVtZW50LCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikg
PSAwOworICAgIHZpcnR1YWwgdm9pZCBnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmLCBjb25zdCBT
ZWN1cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYsIGNvbnN0IFB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIE1lZGlhdGlvblJlcXVpcmVtZW50LCBjb25zdCBTY29w
ZUFuZENyb3NzT3JpZ2luUGFyZW50JiwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsK
ICAgICB2aXJ0dWFsIHZvaWQgaXNDb25kaXRpb25hbE1lZGlhdGlvbkF2YWlsYWJsZShRdWVyeUNv
bXBsZXRpb25IYW5kbGVyJiYpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgaXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikg
PSAwOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2NvYS9BdXRo
ZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oIGIvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkv
Q29jb2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaAppbmRleCA0MjQ5OTBmYTdiZDE0
NzUyMDUyMTA3ZmMzYWQyMTg0Yzg1MWQ1MzI4Li44YmRhZDg2NzAzYmM1OWIxNjdkYzlkZjUwY2U5
ZTFhZjU0MTkwZWEyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1BsYXRmb3JtL3NwaS9Db2Nv
YS9BdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvUGxh
dGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmgKQEAgLTE2Nyw2
ICsxNjcsOCBAQCB0eXBlZGVmIE5TX0VOVU0oTlNVSW50ZWdlciwgQVNDUHVibGljS2V5Q3JlZGVu
dGlhbEtpbmQpIHsKIAogQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCByZWFkb25seSwg
Y29weSkgTlNBcnJheTxBU0NQdWJsaWNLZXlDcmVkZW50aWFsRGVzY3JpcHRvciAqPiAqYWxsb3dl
ZENyZWRlbnRpYWxzOwogCitAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIGNvcHkpIE5T
U3RyaW5nICpkZXN0aW5hdGlvblNpdGVGb3JDcm9zc1NpdGVBc3NlcnRpb247CisKIEBlbmQKIAog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbC5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9f
V0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCmluZGV4IDg5MDNlOTQwMzBmZDI2MjBmMzgyOTA3
ZmE4M2E1N2E2YzFkMDVhNWIuLjRkN2M3NmQ4MzhlYjNlMTgyNWY4MzFhODA3ZjdlNDg1ZTE4MDll
ODEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9fV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tCkBAIC04MjIsNyArODIyLDcgQEAgc3Rh
dGljIFJldGFpblB0cjxfV0tBdXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4gd2tBdXRo
ZW50aWNhdG9yQXR0ZXN0YXRpb24KICAgICAgICAgICAgIGhhbmRsZXIobmlsLCBbTlNFcnJvciBl
cnJvcldpdGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOmV4Y2VwdGlvbi5jb2RlIHVzZXJJbmZv
OkB7IE5TTG9jYWxpemVkRGVzY3JpcHRpb25LZXk6IGV4Y2VwdGlvbi5tZXNzYWdlIH1dKTsKICAg
ICAgICAgfSk7CiAgICAgfTsKLSAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhh
c2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRp
b25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRp
b25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0
cnVlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBbX1dLV2ViQXV0
aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRpb25zV2l0aE9wdGlvbnM6
b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6
VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwg
bnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykp
OwogI2VuZGlmCiB9CiAKQEAgLTgzNiw3ICs4MzYsNyBAQCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1
dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlv
bgogICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERvbWFpbjpXS0Vy
cm9yRG9tYWluIGNvZGU6ZXhjZXB0aW9uLmNvZGUgdXNlckluZm86QHsgTlNMb2NhbGl6ZWREZXNj
cmlwdGlvbktleTogZXhjZXB0aW9uLm1lc3NhZ2UgfV0pOwogICAgICAgICB9KTsKICAgICB9Owot
ICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IHZlY3RvckZyb21OU0RhdGEoY2xpZW50RGF0YUhh
c2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3JlYXRpb25PcHRp
b25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRp
b25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0
cnVlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2sp
KTsKKyAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERh
dGFIYXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9u
T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRp
Y2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsg
fSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0s
IFdURk1vdmUoY2FsbGJhY2spKTsKICNlbmRpZgogfQogCkBAIC04ODYsNyArODg2LDcgQEAgc3Rh
dGljIFJldGFpblB0cjxfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+IHdrQXV0aGVu
dGljYXRvckFzc2VydGlvblJlc3AKICAgICAgICAgICAgIGhhbmRsZXIobmlsLCBbTlNFcnJvciBl
cnJvcldpdGhEb21haW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZv
Om5pbF0pOwogICAgICAgICB9KTsKICAgICB9OwotICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7
IFdURk1vdmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVS
ZXF1ZXN0T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxv
cHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3Zl
KGNhbGxiYWNrKSk7CisgICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwg
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0
aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5l
bFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBT
dHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShj
YWxsYmFjaykpOwogI2VuZGlmCiB9CiAKQEAgLTkwMCw3ICs5MDAsNyBAQCBzdGF0aWMgUmV0YWlu
UHRyPF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXNz
ZXJ0aW9uUmVzcAogICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vycm9yIGVycm9yV2l0aERv
bWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24gdXNlckluZm86bmlsXSk7CiAg
ICAgICAgIH0pOwogICAgIH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgdmVjdG9yRnJv
bU5TRGF0YShjbGllbnREYXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZl
cnRUb0NvcmVSZXF1ZXN0T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJL
aXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBz
dGQ6Om51bGxvcHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgdmVjdG9y
RnJvbU5TRGF0YShjbGllbnREYXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNv
bnZlcnRUb0NvcmVSZXF1ZXN0T3B0aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBX
ZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRy
LCBzdGQ6Om51bGxvcHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9w
dCwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKICNlbmRpZgogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9X
ZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5Lm1tCmluZGV4IGRlMTc0ZDNmODI5MDdhM2RlOWUyYzJlNDAwN2VlYzAwM2NkNzFlMWYuLmVh
M2Q4NTIzZWQ5NTdmN2Y2YzYxOTkzODE0Y2FlNjM0ZTA2ZTY0ZWYgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5Lm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tCkBA
IC0yMzYsNyArMjM2LDI3IEBAIHN0YXRpYyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RD
b250ZXh0PiBjb25maWd1cmVSZWdpc3RyYXRpb25SZXF1ZXN0Q29udGV4CiAgICAgcmV0dXJuIHJl
cXVlc3RDb250ZXh0OwogfQogCi1zdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0
Q29udGV4dD4gY29uZmlndXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KGNvbnN0IFB1Ymxp
Y0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhh
c2gsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1lbnQ+IG1lZGlhdGlv
bikKK3N0YXRpYyBpbmxpbmUgUmV0YWluUHRyPEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRp
b25PcHRpb25zPiBjb25maWd1cmVBc3NlcnRpb25PcHRpb25zKGNvbnN0IFB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIEFTQ1B1
YmxpY0tleUNyZWRlbnRpYWxLaW5kIGtpbmQsIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U2VjdXJpdHlP
cmlnaW5EYXRhPiYgcGFyZW50T3JpZ2luLCBSZXRhaW5QdHI8TlNNdXRhYmxlQXJyYXk8QVNDUHVi
bGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgKj4+IGFsbG93ZWRDcmVkZW50aWFscywgUmV0YWlu
UHRyPE5TU3RyaW5nPiB1c2VyVmVyaWZpY2F0aW9uKQoreworICAgIGF1dG8gYXNzZXJ0aW9uT3B0
aW9ucyA9IGFkb3B0TlMoYWxsb2NBU0NQdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9u
c0luc3RhbmNlKCkpOworICAgIGlmIChbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25kc1RvU2VsZWN0
b3I6QHNlbGVjdG9yKGluaXRXaXRoS2luZDpyZWx5aW5nUGFydHlJZGVudGlmaWVyOmNsaWVudERh
dGFIYXNoOnVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOmFsbG93ZWRDcmVkZW50aWFsczopXSkg
eworICAgICAgICBhdXRvIG5zSGFzaCA9IHRvTlNEYXRhKGhhc2gpOworICAgICAgICBbYXNzZXJ0
aW9uT3B0aW9ucyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRQbGF0Zm9y
bSByZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjbGllbnREYXRhSGFzaDpuc0hh
c2guZ2V0KCkgdXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQo
KSBhbGxvd2VkQ3JlZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKKyAgICB9IGVs
c2UgeworICAgICAgICBhdXRvIGNoYWxsZW5nZSA9IFdlYkNvcmU6OnRvTlNEYXRhKG9wdGlvbnMu
Y2hhbGxlbmdlKTsKKyAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1
YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0gcmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRp
b25zLnJwSWQgY2hhbGxlbmdlOmNoYWxsZW5nZS5nZXQoKSB1c2VyVmVyaWZpY2F0aW9uUHJlZmVy
ZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxvd2VkQ3Jl
ZGVudGlhbHMuZ2V0KCldOworICAgIH0KKyAgICBpZiAob3B0aW9ucy5leHRlbnNpb25zICYmIFth
c3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0RXh0ZW5zaW9u
czopXSkKKyAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgc2V0RXh0ZW5zaW9uczp0b0FTQ0V4dGVu
c2lvbnMoKm9wdGlvbnMuZXh0ZW5zaW9ucykuZ2V0KCldOworICAgIGlmIChwYXJlbnRPcmlnaW4g
JiYgW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXREZXN0
aW5hdGlvblNpdGVGb3JDcm9zc1NpdGVBc3NlcnRpb246KV0pCisgICAgICAgIGFzc2VydGlvbk9w
dGlvbnMuZ2V0KCkuZGVzdGluYXRpb25TaXRlRm9yQ3Jvc3NTaXRlQXNzZXJ0aW9uID0gcGFyZW50
T3JpZ2luLT50b1N0cmluZygpOworICAgIGVsc2UgaWYgKHBhcmVudE9yaWdpbiAmJiAhW2Fzc2Vy
dGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXREZXN0aW5hdGlvblNp
dGVGb3JDcm9zc1NpdGVBc3NlcnRpb246KV0pCisgICAgICAgIHJldHVybiBuaWw7CisKKyAgICBy
ZXR1cm4gYXNzZXJ0aW9uT3B0aW9uczsKK30KKworc3RhdGljIFJldGFpblB0cjxBU0NDcmVkZW50
aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyYXRpb25Bc3NlcnRpb25SZXF1ZXN0Q29udGV4dChj
b25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMsIFZlY3Rvcjx1
aW50OF90PiBoYXNoLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVtZW50
PiBtZWRpYXRpb24sIGNvbnN0IHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5E
YXRhPiYgcGFyZW50T3JpZ2luKQogewogICAgIEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZXMgcmVx
dWVzdFR5cGVzID0gQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlUGxhdGZvcm1QdWJsaWNLZXlBc3Nl
cnRpb24gfCBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVTZWN1cml0eUtleVB1YmxpY0tleUFzc2Vy
dGlvbjsKIApAQCAtMjY0LDMyICsyODQsMTYgQEAgc3RhdGljIFJldGFpblB0cjxBU0NDcmVkZW50
aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyYXRpb25Bc3NlcnRpb25SZXF1ZXN0Q29udGUKICAg
ICAgICAgcmVxdWVzdENvbnRleHQuZ2V0KCkucmVxdWVzdFN0eWxlID0gQVNDcmVkZW50aWFsUmVx
dWVzdFN0eWxlQXV0b0ZpbGw7CiAKICAgICBpZiAocmVxdWVzdFR5cGVzICYgQVNDQ3JlZGVudGlh
bFJlcXVlc3RUeXBlUGxhdGZvcm1QdWJsaWNLZXlBc3NlcnRpb24pIHsKLSAgICAgICAgYXV0byBh
c3NlcnRpb25PcHRpb25zID0gYWRvcHROUyhhbGxvY0FTQ1B1YmxpY0tleUNyZWRlbnRpYWxBc3Nl
cnRpb25PcHRpb25zSW5zdGFuY2UoKSk7Ci0gICAgICAgIGlmIChbYXNzZXJ0aW9uT3B0aW9ucyBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKGluaXRXaXRoS2luZDpyZWx5aW5nUGFydHlJZGVu
dGlmaWVyOmNsaWVudERhdGFIYXNoOnVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOmFsbG93ZWRD
cmVkZW50aWFsczopXSkgewotICAgICAgICAgICAgYXV0byBuc0hhc2ggPSB0b05TRGF0YShoYXNo
KTsKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRoS2luZDpBU0NQdWJsaWNL
ZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6b3B0aW9ucy5y
cElkIGNsaWVudERhdGFIYXNoOm5zSGFzaC5nZXQoKSB1c2VyVmVyaWZpY2F0aW9uUHJlZmVyZW5j
ZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxvd2VkQ3JlZGVu
dGlhbHMuZ2V0KCldOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXV0byBjaGFsbGVu
Z2UgPSBXZWJDb3JlOjp0b05TRGF0YShvcHRpb25zLmNoYWxsZW5nZSk7Ci0gICAgICAgICAgICBb
YXNzZXJ0aW9uT3B0aW9ucyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRQ
bGF0Zm9ybSByZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJZCBjaGFsbGVuZ2U6Y2hh
bGxlbmdlLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24u
Z2V0KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAg
ICAgIH0KLSAgICAgICAgaWYgKG9wdGlvbnMuZXh0ZW5zaW9ucyAmJiBbYXNzZXJ0aW9uT3B0aW9u
cyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldEV4dGVuc2lvbnM6KV0pCi0gICAgICAg
ICAgICBbYXNzZXJ0aW9uT3B0aW9ucyBzZXRFeHRlbnNpb25zOnRvQVNDRXh0ZW5zaW9ucygqb3B0
aW9ucy5leHRlbnNpb25zKS5nZXQoKV07Ci0KKyAgICAgICAgYXV0byBhc3NlcnRpb25PcHRpb25z
ID0gY29uZmlndXJlQXNzZXJ0aW9uT3B0aW9ucyhvcHRpb25zLCBoYXNoLCBBU0NQdWJsaWNLZXlD
cmVkZW50aWFsS2luZFBsYXRmb3JtLCBwYXJlbnRPcmlnaW4sIGFsbG93ZWRDcmVkZW50aWFscywg
dXNlclZlcmlmaWNhdGlvbik7CisgICAgICAgIGlmICghYXNzZXJ0aW9uT3B0aW9ucykKKyAgICAg
ICAgICAgIHJldHVybiBuaWw7CiAgICAgICAgIFtyZXF1ZXN0Q29udGV4dCBzZXRQbGF0Zm9ybUtl
eUNyZWRlbnRpYWxBc3NlcnRpb25PcHRpb25zOmFzc2VydGlvbk9wdGlvbnMuZ2V0KCldOwogICAg
IH0KIAogICAgIGlmIChyZXF1ZXN0VHlwZXMgJiBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVTZWN1
cml0eUtleVB1YmxpY0tleUFzc2VydGlvbikgewotICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlv
bnMgPSBhZG9wdE5TKGFsbG9jQVNDUHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnNJ
bnN0YW5jZSgpKTsKLSAgICAgICAgaWYgKFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxl
Y3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhLaW5kOnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50
RGF0YUhhc2g6dXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOild
KSB7Ci0gICAgICAgICAgICBhdXRvIG5zSGFzaCA9IHRvTlNEYXRhKGhhc2gpOwotICAgICAgICAg
ICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxL
aW5kU2VjdXJpdHlLZXkgcmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2xpZW50
RGF0YUhhc2g6bnNIYXNoLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJp
ZmljYXRpb24uZ2V0KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQo
KV07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRvIGNoYWxsZW5nZSA9IFdlYkNv
cmU6OnRvTlNEYXRhKG9wdGlvbnMuY2hhbGxlbmdlKTsKLSAgICAgICAgICAgIFthc3NlcnRpb25P
cHRpb25zIGluaXRXaXRoS2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFNlY3VyaXR5S2V5
IHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFsbGVuZ2Uu
Z2V0KCkgdXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBh
bGxvd2VkQ3JlZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfQot
ICAgICAgICBpZiAob3B0aW9ucy5leHRlbnNpb25zICYmIFthc3NlcnRpb25PcHRpb25zIHJlc3Bv
bmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0RXh0ZW5zaW9uczopXSkKLSAgICAgICAgICAgIFth
c3NlcnRpb25PcHRpb25zIHNldEV4dGVuc2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4
dGVuc2lvbnMpLmdldCgpXTsKLQorICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBjb25m
aWd1cmVBc3NlcnRpb25PcHRpb25zKG9wdGlvbnMsIGhhc2gsIEFTQ1B1YmxpY0tleUNyZWRlbnRp
YWxLaW5kU2VjdXJpdHlLZXksIHBhcmVudE9yaWdpbiwgYWxsb3dlZENyZWRlbnRpYWxzLCB1c2Vy
VmVyaWZpY2F0aW9uKTsKKyAgICAgICAgaWYgKCFhc3NlcnRpb25PcHRpb25zKQorICAgICAgICAg
ICAgcmV0dXJuIG5pbDsKICAgICAgICAgW3JlcXVlc3RDb250ZXh0IHNldFNlY3VyaXR5S2V5Q3Jl
ZGVudGlhbEFzc2VydGlvbk9wdGlvbnM6YXNzZXJ0aW9uT3B0aW9ucy5nZXQoKV07CiAgICAgfQog
CkBAIC0zMDIsNyArMzA2LDcgQEAgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4
dD4gV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmNvbnRleHQKICAgICBXVEY6OnN3
aXRjaE9uKHJlcXVlc3REYXRhLm9wdGlvbnMsIFsmXShjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zJiBvcHRpb25zKSB7CiAgICAgICAgIHJlc3VsdCA9IGNvbmZpZ3VyZVJl
Z2lzdHJhdGlvblJlcXVlc3RDb250ZXh0KG9wdGlvbnMsIHJlcXVlc3REYXRhLmhhc2gpOwogICAg
IH0sIFsmXShjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMp
IHsKLSAgICAgICAgcmVzdWx0ID0gY29uZmlndXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0
KG9wdGlvbnMsIHJlcXVlc3REYXRhLmhhc2gsIHJlcXVlc3REYXRhLm1lZGlhdGlvbik7CisgICAg
ICAgIHJlc3VsdCA9IGNvbmZpZ3VyYXRpb25Bc3NlcnRpb25SZXF1ZXN0Q29udGV4dChvcHRpb25z
LCByZXF1ZXN0RGF0YS5oYXNoLCByZXF1ZXN0RGF0YS5tZWRpYXRpb24sIHJlcXVlc3REYXRhLnBh
cmVudE9yaWdpbik7CiAgICAgfSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
aW9uUmVxdWVzdERhdGEuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEuaAppbmRleCBiODM5NjUwNGUxYzk0MzFk
NGFmZTMwNjcwN2E4MDlkZjQ3M2VhOGVhLi5hMGI1ZmU4MDU5ZmY3MjNiYTFjMDQ5NTA3YjY2MWNj
YjRiNTI5OWYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKKysrIGIvU291cmNlL1dlYktp
dC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0
YS5oCkBAIC0zOSw2ICszOSwxMCBAQAogI2luY2x1ZGUgPHd0Zi9WZWN0b3IuaD4KICNpbmNsdWRl
IDx3dGYvV2Vha1B0ci5oPgogCituYW1lc3BhY2UgV2ViQ29yZSB7CitzdHJ1Y3QgU2VjdXJpdHlP
cmlnaW5EYXRhOworfQorCiBuYW1lc3BhY2UgV2ViS2l0IHsKIAogY2xhc3MgV2ViUGFnZVByb3h5
OwpAQCAtNTgsNiArNjIsNyBAQCBzdHJ1Y3QgV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YSB7
CiAgICAgU3RyaW5nIGNhY2hlZFBpbjsgLy8gT25seSB1c2VkIHRvIGltcHJvdmUgTkZDIENsaWVu
dCBQSU4gZXhwZXJpZW5jZS4KICAgICBXZWFrUHRyPEFQSTo6V2ViQXV0aGVudGljYXRpb25QYW5l
bD4gd2Vha1BhbmVsOwogICAgIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWly
ZW1lbnQ+IG1lZGlhdGlvbjsKKyAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gcGFyZW50T3JpZ2luOwogfTsKIAogV2ViQ29yZTo6Q2xpZW50RGF0YVR5cGUgZ2V0
Q2xpZW50RGF0YVR5cGUoY29uc3Qgc3RkOjp2YXJpYW50PFdlYkNvcmU6OlB1YmxpY0tleUNyZWRl
bnRpYWxDcmVhdGlvbk9wdGlvbnMsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucz4mKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcCBiL1NvdXJjZS9X
ZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5LmNwcAppbmRleCBmNTllOTRhOTU2OWY1ZTgxNGMyOWYzYmJjMmRlMWZlYTMyNDc4
OTkzLi42OWY2MmI2Mzk3NmU4MmZlZGYzZDFkYjQxZGZlZDI5OGM4MjkyOWQzIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCkBAIC01
OCwxMiArNTgsMTIgQEAgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6On5XZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eSgpCiAKIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHk6Om1ha2VDcmVkZW50aWFsKEZyYW1lSWRlbnRpZmllciBmcmFtZUlkLCBGcmFt
ZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlD
cmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgaGFuZGxl
UmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1fd2ViUGFnZVByb3h5
LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgR2xv
YmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlEKCksIGZyYW1lSWQg
fSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBu
dWxscHRyLCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgaGFuZGxlUmVx
dWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1fd2ViUGFnZVByb3h5LCBX
ZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgR2xvYmFs
RnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlEKCksIGZyYW1lSWQgfSwg
V1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxs
cHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0K
IAotdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKEZy
YW1lSWRlbnRpZmllciBmcmFtZUlkLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBWZWN0b3I8
dWludDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRp
b25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQordm9pZCBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Z2V0QXNzZXJ0aW9uKEZyYW1lSWRlbnRpZmllciBm
cmFtZUlkLCBGcmFtZUluZm9EYXRhJiYgZnJhbWVJbmZvLCBWZWN0b3I8dWludDhfdD4mJiBoYXNo
LCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiBvcHRpb25zLCBNZWRpYXRpb25S
ZXF1aXJlbWVudCBtZWRpYXRpb24sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmln
aW5EYXRhPiBwYXJlbnRPcmlnaW4sIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0
Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZN
b3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtX3dlYlBhZ2VQcm94eSwgV2ViQXV0aGVudGlj
YXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2JhbEZyYW1lSWRlbnRp
ZmllciB7IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdURk1vdmUoZnJh
bWVJbmZvKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0ciwgbWVkaWF0
aW9uIH0sIFdURk1vdmUoaGFuZGxlcikpOworICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhh
c2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtX3dlYlBhZ2VQcm94eSwgV2ViQXV0aGVudGljYXRpb25Q
YW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2JhbEZyYW1lSWRlbnRpZmllciB7
IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdURk1vdmUoZnJhbWVJbmZv
KSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0ciwgbWVkaWF0aW9uLCBw
YXJlbnRPcmlnaW4gfSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHk6OmhhbmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1
ZXN0RGF0YSYmIGRhdGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCkBAIC03
NCwxMyArNzQsMjIgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFu
ZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXQKICAgICAgICAgYXV0byYgYXV0
aGVudGljYXRvck1hbmFnZXIgPSBtX3dlYlBhZ2VQcm94eS53ZWJzaXRlRGF0YVN0b3JlKCkuYXV0
aGVudGljYXRvck1hbmFnZXIoKTsKICAgICAgICAgaWYgKHJlc3VsdCkgewogI2lmIEhBVkUoVU5J
RklFRF9BU0NfQVVUSF9VSSkKLSAgICAgICAgICAgICAgICBpZiAoIWF1dGhlbnRpY2F0b3JNYW5h
Z2VyLmlzTW9jaygpICYmICFhdXRoZW50aWNhdG9yTWFuYWdlci5pc1ZpcnR1YWwoKSkgewotICAg
ICAgICAgICAgICAgICAgICBhdXRvIGNvbnRleHQgPSBjb250ZXh0Rm9yUmVxdWVzdChXVEZNb3Zl
KGRhdGEpKTsKLSAgICAgICAgICAgICAgICAgICAgLy8gcGVyZm9ybVJlcXVlc3QgY2FsbHMgb3V0
IHRvIEFTQ0FnZW50IHdoaWNoIHdpbGwgdGhlbiBjYWxsIFtfV0tXZWJBdXRoZW50aWNhdGlvblBh
bmVsIG1ha2VDcmVkZW50aWFsL2dldEFzc2VydGlvbldpdGhDaGFsbGVuZ2VdCi0gICAgICAgICAg
ICAgICAgICAgIC8vIHdoaWNoIGNhbGxzIGF1dGhlbnRpY2F0b3JNYW5hZ2VyLmhhbmRsZVJlcXVl
c3QoLi4pCi0gICAgICAgICAgICAgICAgICAgIHBlcmZvcm1SZXF1ZXN0KGNvbnRleHQsIFdURk1v
dmUoaGFuZGxlcikpOworICAgICAgICAgICAgaWYgKCFhdXRoZW50aWNhdG9yTWFuYWdlci5pc01v
Y2soKSAmJiAhYXV0aGVudGljYXRvck1hbmFnZXIuaXNWaXJ0dWFsKCkpIHsKKyAgICAgICAgICAg
ICAgICBhdXRvIGNvbnRleHQgPSBjb250ZXh0Rm9yUmVxdWVzdChXVEZNb3ZlKGRhdGEpKTsKKyAg
ICAgICAgICAgICAgICBpZiAoY29udGV4dC5nZXQoKSA9PSBudWxscHRyKSB7CisgICAgICAgICAg
ICAgICAgICAgIGhhbmRsZXIoeyB9LCAoQXV0aGVudGljYXRvckF0dGFjaG1lbnQpMCwgRXhjZXB0
aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlz
IG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsKICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuOwogICAgICAgICAgICAgICAgIH0KKyAgICAgICAgICAgICAgICAvLyBwZXJmb3Jt
UmVxdWVzdCBjYWxscyBvdXQgdG8gQVNDQWdlbnQgd2hpY2ggd2lsbCB0aGVuIGNhbGwgW19XS1dl
YkF1dGhlbnRpY2F0aW9uUGFuZWwgbWFrZUNyZWRlbnRpYWwvZ2V0QXNzZXJ0aW9uV2l0aENoYWxs
ZW5nZV0KKyAgICAgICAgICAgICAgICAvLyB3aGljaCBjYWxscyBhdXRoZW50aWNhdG9yTWFuYWdl
ci5oYW5kbGVSZXF1ZXN0KC4uKQorICAgICAgICAgICAgICAgIHBlcmZvcm1SZXF1ZXN0KGNvbnRl
eHQsIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAg
ICAgIH0KKyNlbHNlCisgICAgICAgICAgICBpZiAoZGF0YS5wYXJlbnRPcmlnaW4gJiYgIWF1dGhl
bnRpY2F0b3JNYW5hZ2VyLmlzTW9jaygpICYmICFhdXRoZW50aWNhdG9yTWFuYWdlci5pc1ZpcnR1
YWwoKSkgeworICAgICAgICAgICAgICAgIGhhbmRsZXIoeyB9LCAoQXV0aGVudGljYXRvckF0dGFj
aG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFsbG93ZWRFcnJvciwgIlRoZSBvcmlnaW4gb2Yg
dGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsKKyAg
ICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAgICB9CiAjZW5kaWYgLy8gSEFWRShVTklG
SUVEX0FTQ19BVVRIX1VJKQogCiAgICAgICAgICAgICBhdXRoZW50aWNhdG9yTWFuYWdlci5oYW5k
bGVSZXF1ZXN0KFdURk1vdmUoZGF0YSksIFtoYW5kbGVyID0gV1RGTW92ZShoYW5kbGVyKV0gKHN0
ZDo6dmFyaWFudDxSZWY8QXV0aGVudGljYXRvclJlc3BvbnNlPiwgRXhjZXB0aW9uRGF0YT4mJiBy
ZXN1bHQpIG11dGFibGUgewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaCBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5LmgKaW5kZXggOGY4N2MwMzA2OGE0MDdiYjY1YjRmOWUxZjYxMTRmNGQ3MDZk
MzQxZC4uNjdhMjBiYTQxNWRmZjNkOGQzZDdjNGYzMmZhYTJhOGQxODNhNTM2OCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGlj
YXRvckNvb3JkaW5hdG9yUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oCkBAIC03MSw3
ICs3MSw3IEBAIHByaXZhdGU6CiAKICAgICAvLyBSZWNlaXZlcnMuCiAgICAgdm9pZCBtYWtlQ3Jl
ZGVudGlhbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgVmVjdG9y
PHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0
aW9ucyYmLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5k
bGVyJiYpOwotICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
RnJhbWVJbmZvRGF0YSYmLCBWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBXZWJDb3JlOjpQdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgV2ViQ29yZTo6Q3JlZGVudGlhbFJlcXVlc3RP
cHRpb25zOjpNZWRpYXRpb25SZXF1aXJlbWVudCwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUs
IFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKTsKKyAgICB2b2lkIGdldEFzc2VydGlvbihXZWJD
b3JlOjpGcmFtZUlkZW50aWZpZXIsIEZyYW1lSW5mb0RhdGEmJiwgVmVjdG9yPHVpbnQ4X3Q+JiYg
aGFzaCwgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIFdlYkNv
cmU6OkNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQsIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiwgYm9vbCBwcm9jZXNzaW5nVXNl
ckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKTsKICAgICB2b2lkIGlzVXNlclZl
cmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5k
bGVyJiYpOwogICAgIHZvaWQgaXNDb25kaXRpb25hbE1lZGlhdGlvbkF2YWlsYWJsZShRdWVyeUNv
bXBsZXRpb25IYW5kbGVyJiYpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNz
YWdlcy5pbiBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCmluZGV4IGI0MDFiZGY1ZGE5
ZjhhZjA4MjZlMzQ4YTdiZjc1M2FiMzAxOTRjMWUuLjFmMTliMjczMWRkZDA5NDViZmYwN2FmNTc5
Zjg0ZDVkNWZjOGZhZTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmlu
CisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluCkBAIC0yNyw3ICsyNyw3IEBACiBt
ZXNzYWdlcyAtPiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eSBOb3RSZWZDb3VudGVk
IHsKIAogICAgIE1ha2VDcmVkZW50aWFsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlE
LCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+
IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
IG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6
OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVu
dGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwgc3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRh
dGEgZXhjZXB0aW9uKSBBc3luYwotICAgIEdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50
aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZl
Y3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zIG9wdGlvbnMsIGVudW06dWludDhfdCBXZWJDb3JlOjpDcmVkZW50aWFsUmVx
dWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgYm9vbCBwcm9jZXNz
aW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNl
RGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRh
Y2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pIEFzeW5jCisg
ICAgR2V0QXNzZXJ0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3Qg
V2ViS2l0OjpGcmFtZUluZm9EYXRhIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0
cnVjdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywg
ZW51bTp1aW50OF90IFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6TWVkaWF0aW9u
UmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3Jp
Z2luRGF0YT4gcGFyZW50T3JpZ2luLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0
cnVjdCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdl
YkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3Jl
OjpFeGNlcHRpb25EYXRhIGV4Y2VwdGlvbikgQXN5bmMKICAgICBpc0NvbmRpdGlvbmFsTWVkaWF0
aW9uQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0KSBBc3luYwogICAgIElzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZSgpIC0+IChib29sIHJlc3VsdCkgQXN5bmMK
IH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29u
bmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vzcy9X
ZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCmluZGV4IGU0YjRiNmIzNGMwYmYyZTUy
MTk3YTZkZmZlMjIzYjFjZTdiNWI1YWEuLjUxN2MzYmFjMTJmODcxMzc3YTczYWUzZDE1NmIwM2U3
MzhmYjAyN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1
dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJBdXRo
blByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNwcApAQCAtOTYsMTIgKzk2
LDEyIEBAIGJvb2wgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpkaXNwYXRjaFN5bmNN
ZXNzYWdlKElQQzo6Q29ubmVjdGlvbiYgY29ubmVjCiAKIHZvaWQgV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzOjptYWtlQ3JlZGVudGlhbChWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBQdWJs
aWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5n
VXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAg
aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG51bGxwdHIs
IFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6
Om51bGxvcHQsIHsgfSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0ciwg
c3RkOjpudWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOworICAgIGhhbmRsZVJlcXVlc3QoeyBX
VEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBudWxscHRyLCBXZWJBdXRoZW50aWNhdGlv
blBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHBy
b2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3Rk
OjpudWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdlYkF1dGhuQ29ubmVj
dGlvblRvV2ViUHJvY2Vzczo6Z2V0QXNzZXJ0aW9uKFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1
YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAg
IGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBudWxscHRy
LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3Rk
OjpudWxsb3B0LCB7IH0sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIs
IHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsg
V1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVsbHB0ciwgV2ViQXV0aGVudGljYXRp
b25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCBw
cm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0
ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAogdm9pZCBXZWJBdXRobkNvbm5l
Y3Rpb25Ub1dlYlByb2Nlc3M6OmhhbmRsZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0
RGF0YSYmIGRhdGEsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IDUwOTcyMDdi
YTY0NDJkZGE1MDI4MjliOTAxMzYyNTE4MjBkOGFhZWIuLjBlMTE3YTBlYzYxOTAwZDE1MGFkYjFk
ZTljNjgyMjlhOGU3YWI1NzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3IuY3BwCkBAIC00Niw2ICs0Niw3IEBACiAjaW5jbHVkZSA8V2ViQ29yZS9SdW50
aW1lRW5hYmxlZEZlYXR1cmVzLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9TZWN1cml0eU9yaWdpbi5o
PgogI2luY2x1ZGUgPFdlYkNvcmUvVXNlckdlc3R1cmVJbmRpY2F0b3IuaD4KKyNpbmNsdWRlIDxX
ZWJDb3JlL1dlYkF1dGhlbnRpY2F0aW9uQ29uc3RhbnRzLmg+CiAKICN1bmRlZiBXRUJBVVRITl9S
RUxFQVNFX0xPRwogI2RlZmluZSBQQUdFX0lEIChtX3dlYlBhZ2UuaWRlbnRpZmllcigpLnRvVUlu
dDY0KCkpCkBAIC05Myw3ICs5NCw3IEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
OjptYWtlQ3JlZGVudGlhbChjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNlY3VyCiAgICAgV2Vi
UHJvY2Vzczo6c2luZ2xldG9uKCkuZW5zdXJlV2ViQXV0aG5Qcm9jZXNzQ29ubmVjdGlvbigpLmNv
bm5lY3Rpb24oKS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhuQ29ubmVjdGlv
blRvV2ViUHJvY2Vzczo6TWFrZUNyZWRlbnRpYWwoaGFzaCwgb3B0aW9ucywgaXNQcm9jZXNzaW5n
VXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsKIH0KIAotdm9pZCBXZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0IFNl
Y3VyaXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJsaWNL
ZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50
IG1lZGlhdGlvbiwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKK3ZvaWQgV2Vi
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29uc3QgRnJhbWUmIGZyYW1l
LCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29u
c3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25zLCBNZWRpYXRpb25S
ZXF1aXJlbWVudCBtZWRpYXRpb24sIGNvbnN0IFNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQmIHNj
b3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRs
ZXIpCiB7CiAgICAgYXV0byogd2ViRnJhbWUgPSBXZWJGcmFtZTo6ZnJvbUNvcmVGcmFtZShmcmFt
ZSk7CiAgICAgaWYgKCF3ZWJGcmFtZSkKQEAgLTEwNiw3ICsxMDcsMTEgQEAgdm9pZCBXZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNv
bnN0IFNlY3VyaXQKICAgICBib29sIHVzZVdlYkF1dGhuUHJvY2VzcyA9IFJ1bnRpbWVFbmFibGVk
RmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkud2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVk
KCk7CiAjZW5kaWYKICAgICBpZiAoIXVzZVdlYkF1dGhuUHJvY2VzcykgewotICAgICAgICBtX3dl
YlBhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3NhZ2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eTo6R2V0QXNzZXJ0aW9uKHdlYkZyYW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5p
bmZvKCksIGhhc2gsIG9wdGlvbnMsIG1lZGlhdGlvbiwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUp
LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBs
eShNZXNzYWdlczo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OkdldEFzc2VydGlv
bih3ZWJGcmFtZS0+ZnJhbWVJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBoYXNoLCBvcHRpb25zLCBt
ZWRpYXRpb24sIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQuc2Vjb25kLCBpc1Byb2Nlc3NpbmdV
c2VyR2VzdHVyZSksIFdURk1vdmUoaGFuZGxlcikpOworICAgICAgICByZXR1cm47CisgICAgfQor
ICAgIGlmIChzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LmZpcnN0ID09IFdlYkF1dGhuOjpTY29w
ZTo6Q3Jvc3NPcmlnaW4pIHsKKyAgICAgICAgaGFuZGxlcih7IH0sIChBdXRoZW50aWNhdG9yQXR0
YWNobWVudCkwLCBFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBv
ZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0cyBhbmNlc3RvcnMuIl9zIH0pOwog
ICAgICAgICByZXR1cm47CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmggYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmgKaW5kZXggMjU5YzllNTYyYzM5M2IwZTYzZWJiNzhlM2Y3N2MyNzlkYTY5
NzJmNy4uMGVkM2U3NTJhNzAzM2VlM2I4M2U0MGIzMWI2ZjY0NDAzMzhhZWJmZiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaApAQCAtNDEsNyArNDEsNyBA
QCBwdWJsaWM6CiBwcml2YXRlOgogICAgIC8vIFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvckNsaWVudAogICAgIHZvaWQgbWFrZUNyZWRlbnRpYWwoY29uc3QgV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYs
IGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmLCBXZWJD
b3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7Ci0gICAgdm9pZCBnZXRBc3Nl
cnRpb24oY29uc3QgV2ViQ29yZTo6RnJhbWUmLCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdp
biYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYgaGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgV2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1lbnQs
IFdlYkNvcmU6OlJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKKyAgICB2b2lkIGdl
dEFzc2VydGlvbihjb25zdCBXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5
T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBXZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJl
bWVudCwgY29uc3Qgc3RkOjpwYWlyPFdlYkF1dGhuOjpTY29wZSwgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+PiYsIFdlYkNvcmU6OlJlcXVlc3RDb21wbGV0aW9uSGFu
ZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUo
V2ViQ29yZTo6UXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2b2lkIGlzVXNl
clZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShXZWJDb3JlOjpRdWVyeUNv
bXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgcmVzZXRVc2VyR2VzdHVyZVJlcXVp
cmVtZW50KCkgZmluYWwgeyBtX3JlcXVpcmVVc2VyR2VzdHVyZSA9IGZhbHNlOyB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
NjkwODY4MTFhY2UyOTFhNmE5NjU2ODMyNGViYWNjYWE4NjhlM2IyZS4uN2FlOTg5OGJkNDU1OTQ5
MmE1ZTAzZTE4NjQyZmRhODRhYTIyYzc4ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIyLTAz
LTA0ICBKIFBhc2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5d
IFVzaW5nIFdlYkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAg
ICAgcmRhcjovL3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKworICAgICAgICBVcGRhdGUgZXhpc3RpbmcgdGVzdHMgYW5kIGNyZWF0ZSBuZXcg
dGVzdCBmb3IgY3Jvc3Mtb3JpZ2luLCBub24gc2FtZS1zaXRlIGktZnJhbWVzLgorCisgICAgICAg
ICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5o
dHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2lu
LXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3dwdC93
ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMu
aHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sOiBBZGRlZC4KKwogMjAyMi0w
My0wNCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAg
ICBhYm91dDpibGFuayBpZnJhbWVzIGRvIG5vdCBhbHdheXMgaW5oZXJpdCBwYXJlbnQgQ1NQCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwYTZjMTBiYWQzZDYwZTg4ZmYxMjIyMmNlNWUwZDI3ODJk
Mjk4ZjcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9w
dWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDQgQEAKKworCitQQVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9y
aWdpbiwgTk9UIHNhbWUtc2l0ZSB3aXRoIHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVy
ZSBwb2xpY3kgY2FuIHVzZSBnZXQoKS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNy
b3NzLW9yaWdpbi5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVjYjVlYjI4YjM5ZjFiNWMxYmI5NTA5
MGFkZDJmZWY3MzhkYzE2MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwK
QEAgLTAsMCArMSw4IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBb
IFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgorPHNjcmlwdD4KKyAg
ICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBsb2Nh
dGlvbj0iaHR0cHM6Ly8xMjcuMC4wLjE6OTQ0My9XZWJLaXQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbCIKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9y
aWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzcwMjFkODE4MTcw
MjQ0ZDYyNDhiZjA1ZWQ2YThlOTljYzg3MTNmMS4uODhjNDI1Y2Y0OTMyNjY3ZDg3YzYzYzMyNzQ2
YTAyNDUzNGYwM2VjNiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4
cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC00LDUgKzQsNSBAQCBQQVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hh
cmUgdGhlIHNhbWUgb3JpZ2luIHdpdGggYWxsIGl0cyBhbmNlc3RvcgogUEFTUyBUZXN0cyB0aGF0
IGEgZnJhbWUgdGhhdCBkb2Vzbid0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbiB3aXRoIGFsbCBpdHMg
YW5jZXN0b3JzIGNvdWxkIG5vdCBhY2Nlc3MgdGhlIEFQSS4gMgogUEFTUyBUZXN0cyB0aGF0IGEg
ZnJhbWUgdGhhdCBpcyBzYW1lLXNpdGUsIGNyb3NzLW9yaWdpbiB3aXRob3V0IHB1YmxpY2tleS1j
cmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2Fubm90IHVzZSBnZXQoKS4KIFBBU1MgVGVz
dHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgc2FtZS1zaXRlLCBjcm9zcy1vcmlnaW4gd2l0aCBwdWJs
aWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbiB1c2UgZ2V0KCkuCi1QQVNT
IFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiwgTk9UIHNhbWUtc2l0ZSAg
d2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2Ug
Z2V0KCkuCitQQVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB1c2luZyBhbiBpcCBhZGRyZXNzIHRoYXQg
aXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxz
LWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgpLgogCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmln
aW4td2l0aC1hbmNlc3RvcnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1
dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRw
cy5odG1sCmluZGV4IDU4MTQ3NWU1MjA1MDRkMDhhOWMxZmE2ZjI3ODI2YzRlMjU1MjhiNjIuLjVk
M2U4YzMxZjdlYWUxMmIwMWQyODI1M2RkZTE3N2U2YWZkNWRjYTMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdp
bi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5o
dHRwcy5odG1sCkBAIC0xLDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJBdXRoZW50aWNhdGlvbk1v
ZGVybkVuYWJsZWQ9ZmFsc2UgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgpAQCAtMzcsOSArMzcsOSBAQAogCiAgICAgICAgIHByb21pc2VfdGVzdCh0ID0+
IHsKICAgICAgICAgICAgIHJldHVybiB3aXRoQ3Jvc3NPcmlnaW5JZnJhbWUoInNhbWVzaXRlLWlm
cmFtZS5odG1sIiwgInB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQiKS50aGVuKChtZXNzYWdlKSA9
PiB7Ci0gICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJUaHJvdyBO
b3RBbGxvd2VkRXJyb3I6IFRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2Ft
ZSBhcyBpdHMgYW5jZXN0b3JzLiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVz
c2FnZS5kYXRhLCAiVGhyb3cgU2VjdXJpdHlFcnJvcjogVGhlIGVmZmVjdGl2ZSBkb21haW4gb2Yg
dGhlIGRvY3VtZW50IGlzIG5vdCBhIHZhbGlkIGRvbWFpbi4iKTsKICAgICAgICAgICAgIH0pOwot
ICAgICAgICB9LCAiVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qg
c2FtZS1zaXRlICB3aXRoIHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kg
Y2Fubm90IHVzZSBnZXQoKS4iKTsKKyAgICAgICAgfSwgIlRlc3RzIHRoYXQgYSBmcmFtZSB1c2lu
ZyBhbiBpcCBhZGRyZXNzIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlIHdpdGgg
cHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgp
LiIpOwogICAgIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3JlZGVudGlhbC1j
cm9zcy1vcmlnaW4uaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jl
c291cmNlcy9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uNjk1ZDIxNzkxMzM1YmIxNWM4YmQyZDI3OTI5NDA1NWIxZTlhMWM2ZgotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyMiBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJBdXRoZW50aWNh
dGlvbk1vZGVybkVuYWJsZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5XZWIgQXV0aGVudGljYXRpb24gQVBJOiBUZXN0
cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBjcm9zcy1vcmlnaW4gd2l0aCBmZWF0dXJlIHBvbGljeSBj
YW4gYWNjZXNzIHRoZSBBUEkuPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0
aWxzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZv
LnN1Yi5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4vdXRpbC5qcyI+PC9zY3JpcHQ+
Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8c2NyaXB0PgorICAgICAgICBwcm9taXNlX3Rlc3QodCA9
PiB7CisgICAgICAgICAgICAvLyBsb2NhbGhvc3QgaXMgY3Jvc3Mtb3JpZ2luIGhlcmUuCisgICAg
ICAgICAgICByZXR1cm4gd2l0aFNhbWVTaXRlSWZyYW1lKCJzYW1lc2l0ZS1pZnJhbWUuaHRtbCIs
ICJwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IikudGhlbigobWVzc2FnZSkgPT4geworICAgICAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZS5kYXRhLCAiUEFTUyEiKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICB9LCAiVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3Jp
Z2luLCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJl
IHBvbGljeSBjYW4gdXNlIGdldCgpLiIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
Pgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454129</attachid>
            <date>2022-03-08 09:06:15 -0800</date>
            <delta_ts>2022-03-08 09:23:57 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222240-20220308090614.patch</filename>
            <type>text/plain</type>
            <size>49837</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRiMmIwZGY4MTI1NTk1
OTBhZmQwNDZlYTFkNzg2YThkNjllMjNlMi4uNDdlNGFhYzkxNGUxMjBkZmViYzU4NjlhYzRjYjgz
YWY0ZGNkY2UxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTA4ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdl
YkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVsYXhlcyB0aGUgcmVxdWlyZW1lbnQgdG8gcGVyZm9ybSBh
IFdlYiBBdXRoZW50aWNhdGlvbiBhc3NlcnRpb24KKyAgICAgICAgaW5zaWRlIGFuIGktZnJhbWUg
d2l0aCB0aGUgInB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQiIGZlYXR1cmUgcG9saWN5IGZyb20K
KyAgICAgICAgJ3NhbWUtc2l0ZScgdG8gJ2Nyb3NzLW9yaWdpbiB3aXRoIGNvbnNlbnQnLgorCisg
ICAgICAgIFRoZXJlIGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBv
bmx5IGEgc2luZ2xlIGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0
aGUgdXNlciBpbiB0aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisg
ICAgICAgIHByb21wdCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93
ZWQuCisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRp
YWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpzY29wZUFuZFNpbmdsZVBhcmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50
aWFsc0NvbnRhaW5lcjo6c2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVu
dGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
Q2xpZW50Lmg6CisKIDIwMjItMDMtMDggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bn
bm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gU3luYyBndGstb3ZlcmxheS1zY3JvbGxpbmcgc2V0
dGluZyB0byB3ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZWI5OGY5MTE0MzIzYTlmZWUwOWE5ZDBh
MjQ1ZTM5N2Q3NTBhMmQwLi45MjNlZWEyYTk3ZjNlNjg2NTg2ZjAwYmY3ZTZlMzk5ZmZjMmQ5ZDZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAzLTA4ICBKIFBhc2NvZSAgPGpfcGFz
Y29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdlYkF1dGhuIHdpdGhp
biBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNzQ4
MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmVsYXhlcyB0aGUgcmVxdWlyZW1lbnQgdG8gcGVyZm9ybSBhIFdlYiBBdXRoZW50
aWNhdGlvbiBhc3NlcnRpb24KKyAgICAgICAgaW5zaWRlIGFuIGktZnJhbWUgd2l0aCB0aGUgInB1
YmxpY2tleS1jcmVkZW50aWFscy1nZXQiIGZlYXR1cmUgcG9saWN5IGZyb20KKyAgICAgICAgJ3Nh
bWUtc2l0ZScgdG8gJ2Nyb3NzLW9yaWdpbiB3aXRoIGNvbnNlbnQnLgorCisgICAgICAgIFRoZXJl
IGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xl
IGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUgdXNlciBpbiB0
aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAgICAgIHByb21w
dCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQuIAorCisgICAg
ICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25maWd1cmVBc3Nl
cnRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6Y29uZmlndXJhdGlvbkFzc2VydGlvblJl
cXVlc3RDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmNvbnRleHRGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmg6CisKIDIwMjItMDMtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW5uZWVkZWQgQXN5bmMga2V5d29yZHMgaW4gbWVz
c2FnZXMuaW4gZmlsZXMgYWZ0ZXIgcjI5MDkwMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcAppbmRleCA5NjA2MDhjYTEzNWY4YWM2OTU2ZmE5Y2YyM2YyM2E4OTU0ZTQ4YWM1
Li45MTlhYTA2ODU2YzhhYWEwZWI0MjRmZDA2N2IxYTJmNGI3OTUxNmM2IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2Vt
ZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcApAQCAtNDYsMjcgKzQ2LDI3IEBAIENyZWRlbnRp
YWxzQ29udGFpbmVyOjpDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFrUHRyPERvY3VtZW50PiYmIGRv
Y3VtZW50KQogewogfQogCi1XZWJBdXRobjo6U2NvcGUgQ3JlZGVudGlhbHNDb250YWluZXI6OnNj
b3BlKCkKK1Njb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQgQ3JlZGVudGlhbHNDb250YWluZXI6OnNj
b3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQoKQogewogICAgIGlmICghbV9kb2N1bWVudCkKLSAgICAg
ICAgcmV0dXJuIFdlYkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW47CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfcGFpcihXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzdGQ6Om51bGxvcHQp
OwogCi0gICAgYm9vbCBpc1NhbWVPcmlnaW4gPSB0cnVlOwogICAgIGJvb2wgaXNTYW1lU2l0ZSA9
IHRydWU7CiAgICAgYXV0byYgb3JpZ2luID0gbV9kb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKTsK
ICAgICBhdXRvJiB1cmwgPSBtX2RvY3VtZW50LT51cmwoKTsKKyAgICBzdGQ6Om9wdGlvbmFsPFNl
Y3VyaXR5T3JpZ2luRGF0YT4gY3Jvc3NPcmlnaW5QYXJlbnQ7CiAgICAgZm9yIChhdXRvKiBkb2N1
bWVudCA9IG1fZG9jdW1lbnQtPnBhcmVudERvY3VtZW50KCk7IGRvY3VtZW50OyBkb2N1bWVudCA9
IGRvY3VtZW50LT5wYXJlbnREb2N1bWVudCgpKSB7CiAgICAgICAgIGlmICghb3JpZ2luLmlzU2Ft
ZU9yaWdpbkRvbWFpbihkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkgJiYgIWFyZVJlZ2lzdHJh
YmxlRG9tYWluc0VxdWFsKHVybCwgZG9jdW1lbnQtPnVybCgpKSkKICAgICAgICAgICAgIGlzU2Ft
ZVNpdGUgPSBmYWxzZTsKLSAgICAgICAgaWYgKCFvcmlnaW4uaXNTYW1lT3JpZ2luQXMoZG9jdW1l
bnQtPnNlY3VyaXR5T3JpZ2luKCkpKQotICAgICAgICAgICAgaXNTYW1lT3JpZ2luID0gZmFsc2U7
CisgICAgICAgIGlmICghY3Jvc3NPcmlnaW5QYXJlbnQgJiYgIW9yaWdpbi5pc1NhbWVPcmlnaW5B
cyhkb2N1bWVudC0+c2VjdXJpdHlPcmlnaW4oKSkpCisgICAgICAgICAgICBjcm9zc09yaWdpblBh
cmVudCA9IG9yaWdpbi5kYXRhKCk7CiAgICAgfQogCi0gICAgaWYgKGlzU2FtZU9yaWdpbikKLSAg
ICAgICAgcmV0dXJuIFdlYkF1dGhuOjpTY29wZTo6U2FtZU9yaWdpbjsKKyAgICBpZiAoIWNyb3Nz
T3JpZ2luUGFyZW50KQorICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIoV2ViQXV0aG46OlNj
b3BlOjpTYW1lT3JpZ2luLCBzdGQ6Om51bGxvcHQpOwogICAgIGlmIChpc1NhbWVTaXRlKQotICAg
ICAgICByZXR1cm4gV2ViQXV0aG46OlNjb3BlOjpTYW1lU2l0ZTsKLSAgICByZXR1cm4gV2ViQXV0
aG46OlNjb3BlOjpDcm9zc09yaWdpbjsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKFdl
YkF1dGhuOjpTY29wZTo6U2FtZVNpdGUsIHN0ZDo6bnVsbG9wdCk7CisgICAgcmV0dXJuIHN0ZDo6
bWFrZV9wYWlyKFdlYkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW4sIGNyb3NzT3JpZ2luUGFyZW50
KTsKIH0KIAogdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucyYmIG9wdGlvbnMsIENyZWRlbnRpYWxQcm9taXNlJiYgcHJvbWlzZSkKQEAgLTk4LDcg
Kzk4LDcgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KENyZWRlbnRpYWxSZXF1ZXN0
T3B0aW9ucyYmIG9wdGlvbnMsIENyZWRlbnRpYWxQcm8KICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuZGlz
Y292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1lbnQsIFdURk1vdmUob3B0aW9ucyksIHNj
b3BlKCksIFdURk1vdmUocHJvbWlzZSkpOworICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yKCkuZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoKm1fZG9jdW1l
bnQsIFdURk1vdmUob3B0aW9ucyksIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQoKSwgV1RGTW92
ZShwcm9taXNlKSk7CiB9CiAKIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnN0b3JlKGNvbnN0
IEJhc2ljQ3JlZGVudGlhbCYsIENyZWRlbnRpYWxQcm9taXNlJiYgcHJvbWlzZSkKQEAgLTEzMyw3
ICsxMzMsNyBAQCB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZShDcmVkZW50aWFs
Q3JlYXRpb25PcHRpb25zJiYgb3B0aW9ucywgQ3JlZGVudAogICAgICAgICByZXR1cm47CiAgICAg
fQogCi0gICAgbV9kb2N1bWVudC0+cGFnZSgpLT5hdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IoKS5j
cmVhdGUoKm1fZG9jdW1lbnQsIG9wdGlvbnMucHVibGljS2V5LnZhbHVlKCksIHNjb3BlKCksIFdU
Rk1vdmUob3B0aW9ucy5zaWduYWwpLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX2RvY3VtZW50
LT5wYWdlKCktPmF1dGhlbnRpY2F0b3JDb29yZGluYXRvcigpLmNyZWF0ZSgqbV9kb2N1bWVudCwg
b3B0aW9ucy5wdWJsaWNLZXkudmFsdWUoKSwgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCgpLmZp
cnN0LCBXVEZNb3ZlKG9wdGlvbnMuc2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CiB9CiAKIHZv
aWQgQ3JlZGVudGlhbHNDb250YWluZXI6OnByZXZlbnRTaWxlbnRBY2Nlc3MoRE9NUHJvbWlzZURl
ZmVycmVkPHZvaWQ+JiYgcHJvbWlzZSkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaCBiL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250
YWluZXIuaAppbmRleCA5YTZiMTJkZGMyMjI5OGY0N2MxZTMyOTYyYjZhNmNmMzllYjVkOTEyLi5k
MDM3YTk3ZGE1MzczZWU5ZTYyZjViYTkxZjU2ZmVlNjcxMTdlNzM0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFp
bmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9D
cmVkZW50aWFsc0NvbnRhaW5lci5oCkBAIC01OCw3ICs1OCw3IEBAIHB1YmxpYzoKIHByaXZhdGU6
CiAgICAgQ3JlZGVudGlhbHNDb250YWluZXIoV2Vha1B0cjxEb2N1bWVudD4mJik7CiAKLSAgICBX
ZWJBdXRobjo6U2NvcGUgc2NvcGUoKTsKKyAgICBTY29wZUFuZENyb3NzT3JpZ2luUGFyZW50IHNj
b3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQoKTsKIAogICAgIFdlYWtQdHI8RG9jdW1lbnQ+IG1fZG9j
dW1lbnQ7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9B
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCmluZGV4IGFkMjBjMGE1ODI0MjhkNzgz
MWU5NGJlNWU4NTA0YjAxZjFmMjAzMWEuLmJjNWJlZGY3MzQyOWEwYjUyZWRjMGVkMWQ0ZTc0NWE5
Mzk4ZmVlOTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0
aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKQEAgLTE4NCw3ICsxODQsNyBAQCB2
b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Y3JlYXRlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWVudCwgY29uc3QgUHVibGljS2V5QwogICAgIG1fY2xpZW50LT5tYWtlQ3JlZGVudGlhbCgqZnJh
bWUsIGNhbGxlck9yaWdpbiwgY2xpZW50RGF0YUpzb25IYXNoLCBvcHRpb25zLCBXVEZNb3ZlKGNh
bGxiYWNrKSk7CiB9CiAKLXZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZy
b21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQsIENyZWRlbnRpYWxSZXF1
ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBXZWJBdXRobjo6U2NvcGUgc2NvcGUsIENyZWRl
bnRpYWxQcm9taXNlJiYgcHJvbWlzZSkgY29uc3QKK3ZvaWQgQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQs
IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmIHJlcXVlc3RPcHRpb25zLCBjb25zdCBTY29wZUFu
ZENyb3NzT3JpZ2luUGFyZW50JiBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LCBDcmVkZW50aWFs
UHJvbWlzZSYmIHByb21pc2UpIGNvbnN0CiB7CiAgICAgdXNpbmcgbmFtZXNwYWNlIEF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvckludGVybmFsOwogCkBAIC0xOTUsOCArMTk1LDggQEAgdm9pZCBBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERv
Y3VtZW50JiBkb2N1bWUKICAgICAvLyBUaGUgZm9sbG93aW5nIGltcGxlbWVudHMgaHR0cHM6Ly93
d3cudzMub3JnL1RSL3dlYmF1dGhuLyNjcmVhdGVDcmVkZW50aWFsIGFzIG9mIDUgRGVjZW1iZXIg
MjAxNy4KICAgICAvLyBTdGVwIDEsIDMsIDEzIGFyZSBoYW5kbGVkIGJ5IHRoZSBjYWxsZXIuCiAg
ICAgLy8gU3RlcCAyLgotICAgIC8vIFRoaXMgaW1wbGVtZW50cyBodHRwczovL3d3dy53My5vcmcv
VFIvd2ViYXV0aG4tMi8jc2N0bi1wZXJtaXNzaW9ucy1wb2xpY3kgZXhjZXB0IG9ubHkgc2FtZS1z
aXRlLCBjcm9zcy1vcmlnaW4gaXMgcGVybWl0dGVkLgotICAgIGlmIChzY29wZSAhPSBXZWJBdXRo
bjo6U2NvcGU6OlNhbWVPcmlnaW4gJiYgIShzY29wZSA9PSBXZWJBdXRobjo6U2NvcGU6OlNhbWVT
aXRlICYmIGlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5kQWxsT3duZXJzKEZlYXR1
cmVQb2xpY3k6OlR5cGU6OlB1YmxpY2tleUNyZWRlbnRpYWxzR2V0UnVsZSwgZG9jdW1lbnQsIExv
Z0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObykpKSB7CisgICAgLy8gVGhpcyBpbXBsZW1lbnRzIGh0
dHBzOi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi0yLyNzY3RuLXBlcm1pc3Npb25zLXBvbGljeQor
ICAgIGlmIChzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LmZpcnN0ICE9IFdlYkF1dGhuOjpTY29w
ZTo6U2FtZU9yaWdpbiAmJiAhaXNGZWF0dXJlUG9saWN5QWxsb3dlZEJ5RG9jdW1lbnRBbmRBbGxP
d25lcnMoRmVhdHVyZVBvbGljeTo6VHlwZTo6UHVibGlja2V5Q3JlZGVudGlhbHNHZXRSdWxlLCBk
b2N1bWVudCwgTG9nRmVhdHVyZVBvbGljeUZhaWx1cmU6Ok5vKSkgewogICAgICAgICBwcm9taXNl
LnJlamVjdChFeGNlcHRpb24geyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2luIG9mIHRoZSBk
b2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CkBAIC0yMzAsNyArMjMwLDcgQEAgdm9pZCBBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiBkb2N1
bWUKICAgICB9CiAKICAgICAvLyBTdGVwIDEwLTEyLgotICAgIGF1dG8gY2xpZW50RGF0YUpzb24g
PSBidWlsZENsaWVudERhdGFKc29uKENsaWVudERhdGFUeXBlOjpHZXQsIG9wdGlvbnMuY2hhbGxl
bmdlLCBjYWxsZXJPcmlnaW4sIHNjb3BlKTsKKyAgICBhdXRvIGNsaWVudERhdGFKc29uID0gYnVp
bGRDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNoYWxsZW5nZSwg
Y2FsbGVyT3JpZ2luLCBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LmZpcnN0KTsKICAgICBhdXRv
IGNsaWVudERhdGFKc29uSGFzaCA9IGJ1aWxkQ2xpZW50RGF0YUpzb25IYXNoKGNsaWVudERhdGFK
c29uKTsKIAogICAgIC8vIFN0ZXAgNCwgMTQtMTkuCkBAIC0yNTQsNyArMjU0LDcgQEAgdm9pZCBB
dXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKGNvbnN0
IERvY3VtZW50JiBkb2N1bWUKICAgICAgICAgcHJvbWlzZS5yZWplY3QoZXhjZXB0aW9uLnRvRXhj
ZXB0aW9uKCkpOwogICAgIH07CiAgICAgLy8gQXN5bmMgb3BlcmF0aW9ucyBhcmUgZGlzcGF0Y2hl
ZCBhbmQgaGFuZGxlZCBpbiB0aGUgbWVzc2VuZ2VyLgotICAgIG1fY2xpZW50LT5nZXRBc3NlcnRp
b24oKmZyYW1lLCBjYWxsZXJPcmlnaW4sIGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucywgcmVx
dWVzdE9wdGlvbnMubWVkaWF0aW9uLCBXVEZNb3ZlKGNhbGxiYWNrKSk7CisgICAgbV9jbGllbnQt
PmdldEFzc2VydGlvbigqZnJhbWUsIGNhbGxlck9yaWdpbiwgY2xpZW50RGF0YUpzb25IYXNoLCBv
cHRpb25zLCByZXF1ZXN0T3B0aW9ucy5tZWRpYXRpb24sIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJl
bnQsIFdURk1vdmUoY2FsbGJhY2spKTsKIH0KIAogdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3I6OmlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShET01Qcm9t
aXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJiBwcm9taXNlKSBjb25zdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
LmgKaW5kZXggNGQ5YWJhNjhlODg4MzA1MDg5YmZlMTkzMGMzNTA4Y2FkZjUzZmVlZC4uNzA1NjM1
NjhkOTJhZjVlMzdjMDhmYWNkMjQxOTZiYWMyODUxY2UxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5o
CkBAIC00NSwxMCArNDUsMTIgQEAgY2xhc3MgRG9jdW1lbnQ7CiBzdHJ1Y3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9uczsKIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVz
dE9wdGlvbnM7CiBzdHJ1Y3QgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOworc3RydWN0IFNlY3Vy
aXR5T3JpZ2luRGF0YTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgSURMVHlwZT4gY2xhc3MgRE9NUHJv
bWlzZURlZmVycmVkOwogCiB1c2luZyBDcmVkZW50aWFsUHJvbWlzZSA9IERPTVByb21pc2VEZWZl
cnJlZDxJRExOdWxsYWJsZTxJRExJbnRlcmZhY2U8QmFzaWNDcmVkZW50aWFsPj4+OwordXNpbmcg
U2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCA9IHN0ZDo6cGFpcjxXZWJBdXRobjo6U2NvcGUsIHN0
ZDo6b3B0aW9uYWw8U2VjdXJpdHlPcmlnaW5EYXRhPj47CiAKIGNsYXNzIEF1dGhlbnRpY2F0b3JD
b29yZGluYXRvciBmaW5hbCB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CkBAIC01OSw3
ICs2MSw3IEBAIHB1YmxpYzoKIAogICAgIC8vIFRoZSBmb2xsb3dpbmcgbWV0aG9kcyBpbXBsZW1l
bnQgc3RhdGljIG1ldGhvZHMgb2YgUHVibGljS2V5Q3JlZGVudGlhbC4KICAgICB2b2lkIGNyZWF0
ZShjb25zdCBEb2N1bWVudCYsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMmLCBXZWJBdXRobjo6U2NvcGUsIFJlZlB0cjxBYm9ydFNpZ25hbD4mJiwgQ3JlZGVudGlhbFBy
b21pc2UmJikgY29uc3Q7Ci0gICAgdm9pZCBkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25z
dCBEb2N1bWVudCYsIENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBXZWJBdXRobjo6U2NvcGUs
IENyZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0OworICAgIHZvaWQgZGlzY292ZXJGcm9tRXh0ZXJu
YWxTb3VyY2UoY29uc3QgRG9jdW1lbnQmLCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgY29u
c3QgU2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCYsIENyZWRlbnRpYWxQcm9taXNlJiYpIGNvbnN0
OwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxl
KERPTVByb21pc2VEZWZlcnJlZDxJRExCb29sZWFuPiYmKSBjb25zdDsKICAgICB2b2lkIGlzQ29u
ZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoRE9NUHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+
JiYpIGNvbnN0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQuaAppbmRleCAzYmI2NWE4
NmI4ZjMzZGNiMzYyNDZiODljZWZkOTZhZGIyN2I5M2IxLi42NjUyZThlMmE0YmUzMjA4NzlhMjRi
OTNlMDAwNzRiMTgyYWNiNzQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKQEAg
LTI3LDEwICsyNywxNSBAQAogCiAjaWYgRU5BQkxFKFdFQl9BVVRITikKIAorI2luY2x1ZGUgIkF1
dGhlbnRpY2F0b3JDb29yZGluYXRvci5oIgogI2luY2x1ZGUgIkV4Y2VwdGlvbkRhdGEuaCIKICNp
bmNsdWRlIDx3dGYvQ29tcGxldGlvbkhhbmRsZXIuaD4KICNpbmNsdWRlIDx3dGYvV2Vha1B0ci5o
PgogCituYW1lc3BhY2UgV2ViQXV0aG4geworZW51bSBjbGFzcyBTY29wZTsKK30KKwogbmFtZXNw
YWNlIFdlYkNvcmUgewogCiBjbGFzcyBEZWZlcnJlZFByb21pc2U7CkBAIC00Myw2ICs0OCw3IEBA
IGVudW0gY2xhc3MgTWVkaWF0aW9uUmVxdWlyZW1lbnQgOiB1aW50OF90Owogc3RydWN0IEF1dGhl
bnRpY2F0b3JSZXNwb25zZURhdGE7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9u
T3B0aW9uczsKIHN0cnVjdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM7CitzdHJ1
Y3QgU2VjdXJpdHlPcmlnaW5EYXRhOwogCiB1c2luZyBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXIg
PSBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURh
dGEmJiwgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQsIFdlYkNvcmU6OkV4Y2VwdGlv
bkRhdGEmJik+OwogdXNpbmcgUXVlcnlDb21wbGV0aW9uSGFuZGxlciA9IENvbXBsZXRpb25IYW5k
bGVyPHZvaWQoYm9vbCk+OwpAQCAtNTUsNyArNjEsNyBAQCBwdWJsaWM6CiAgICAgdmlydHVhbCB+
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50KCkgPSBkZWZhdWx0OwogCiAgICAgdmlydHVh
bCB2b2lkIG1ha2VDcmVkZW50aWFsKGNvbnN0IEZyYW1lJiwgY29uc3QgU2VjdXJpdHlPcmlnaW4m
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRp
b25PcHRpb25zJiwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpID0gMDsKLSAgICB2aXJ0dWFs
IHZvaWQgZ2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiwgY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBj
b25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmLCBNZWRpYXRpb25SZXF1aXJlbWVudCwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYp
ID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQgZ2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiwgY29uc3Qg
U2VjdXJpdHlPcmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBQdWJsaWNLZXlD
cmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmLCBNZWRpYXRpb25SZXF1aXJlbWVudCwgY29uc3QgU2Nv
cGVBbmRDcm9zc09yaWdpblBhcmVudCYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoUXVlcnlD
b21wbGV0aW9uSGFuZGxlciYmKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIGlzVXNlclZlcmlmeWlu
Z1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWlsYWJsZShRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYp
ID0gMDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0
aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaCBiL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmgKaW5kZXggZjNjODBlYjIwY2U4
N2U2NmYzMzQyNmQ5OTRiMTI3ZjNiNDk2NDlkZC4uZTAyNzZmYzcxMWIxYTlhODJhMzc4NTkxMmQ1
NTY0ZjAyOTM4MjU1NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9QbGF0Zm9ybS9zcGkvQ29j
b2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1Bs
YXRmb3JtL3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oCkBAIC0xNjcs
NiArMTY3LDggQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIEFTQ1B1YmxpY0tleUNyZWRl
bnRpYWxLaW5kKSB7CiAKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgcmVhZG9ubHks
IGNvcHkpIE5TQXJyYXk8QVNDUHVibGljS2V5Q3JlZGVudGlhbERlc2NyaXB0b3IgKj4gKmFsbG93
ZWRDcmVkZW50aWFsczsKIAorQHByb3BlcnR5IChub25hdG9taWMsIG51bGxhYmxlLCBjb3B5KSBO
U1N0cmluZyAqZGVzdGluYXRpb25TaXRlRm9yQ3Jvc3NTaXRlQXNzZXJ0aW9uOworCiBAZW5kCiAK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
X1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQppbmRleCA4OTAzZTk0MDMwZmQyNjIwZjM4Mjkw
N2ZhODNhNTdhNmMxZDA1YTViLi40ZDdjNzZkODM4ZWIzZTE4MjVmODMxYTgwN2Y3ZTQ4NWUxODA5
ZTgxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvX1dLV2Vi
QXV0aGVudGljYXRpb25QYW5lbC5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkv
Q29jb2EvX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbC5tbQpAQCAtODIyLDcgKzgyMiw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHdrQXV0
aGVudGljYXRvckF0dGVzdGF0aW9uCiAgICAgICAgICAgICBoYW5kbGVyKG5pbCwgW05TRXJyb3Ig
ZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpleGNlcHRpb24uY29kZSB1c2VySW5m
bzpAeyBOU0xvY2FsaXplZERlc2NyaXB0aW9uS2V5OiBleGNlcHRpb24ubWVzc2FnZSB9XSk7CiAg
ICAgICAgIH0pOwogICAgIH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZSho
YXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0
aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwg
dHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CisgICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgW19XS1dlYkF1
dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0aW9uc1dpdGhPcHRpb25z
Om9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6
OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwgdHJ1ZSwgU3RyaW5nKCks
IG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoY2FsbGJhY2sp
KTsKICNlbmRpZgogfQogCkBAIC04MzYsNyArODM2LDcgQEAgc3RhdGljIFJldGFpblB0cjxfV0tB
dXRoZW50aWNhdG9yQXR0ZXN0YXRpb25SZXNwb25zZT4gd2tBdXRoZW50aWNhdG9yQXR0ZXN0YXRp
b24KICAgICAgICAgICAgIGhhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhEb21haW46V0tF
cnJvckRvbWFpbiBjb2RlOmV4Y2VwdGlvbi5jb2RlIHVzZXJJbmZvOkB7IE5TTG9jYWxpemVkRGVz
Y3JpcHRpb25LZXk6IGV4Y2VwdGlvbi5tZXNzYWdlIH1dKTsKICAgICAgICAgfSk7CiAgICAgfTsK
LSAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFI
YXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRvQ29yZUNyZWF0aW9uT3B0
aW9uc1dpdGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwg
dHJ1ZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNr
KSk7CisgICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgdmVjdG9yRnJvbU5TRGF0YShjbGllbnRE
YXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlv
bk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50
aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7
IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9
LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApAQCAtODg2LDcgKzg4Niw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiB3a0F1dGhl
bnRpY2F0b3JBc3NlcnRpb25SZXNwCiAgICAgICAgICAgICBoYW5kbGVyKG5pbCwgW05TRXJyb3Ig
ZXJyb3JXaXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vycm9yVW5rbm93biB1c2VySW5m
bzpuaWxdKTsKICAgICAgICAgfSk7CiAgICAgfTsKLSAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3Qo
eyBXVEZNb3ZlKGhhc2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3Jl
UmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0OjpXZWJB
dXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxs
b3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92
ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCks
IFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVSZXF1ZXN0T3B0aW9uc1dp
dGhPcHRpb25zOm9wdGlvbnNdLCBudWxscHRyLCBXZWJLaXQ6OldlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwgdHJ1ZSwg
U3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUo
Y2FsbGJhY2spKTsKICNlbmRpZgogfQogCkBAIC05MDAsNyArOTAwLDcgQEAgc3RhdGljIFJldGFp
blB0cjxfV0tBdXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcG9uc2U+IHdrQXV0aGVudGljYXRvckFz
c2VydGlvblJlc3AKICAgICAgICAgICAgIGhhbmRsZXIobmlsLCBbTlNFcnJvciBlcnJvcldpdGhE
b21haW46V0tFcnJvckRvbWFpbiBjb2RlOldLRXJyb3JVbmtub3duIHVzZXJJbmZvOm5pbF0pOwog
ICAgICAgICB9KTsKICAgICB9OwotICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IHZlY3RvckZy
b21OU0RhdGEoY2xpZW50RGF0YUhhc2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252
ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2Vi
S2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwg
c3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQg
fSwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IHZlY3Rv
ckZyb21OU0RhdGEoY2xpZW50RGF0YUhhc2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBj
b252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwg
V2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0
ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxv
cHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2Ev
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQ
cm94eS5tbQppbmRleCA2ZDljMDhkMTA1OGY4YjlhNTMzZWU5Yzc5MjE1NTM0YTk3NTQ3ZGUzLi42
YWE5MmVhNzY2NWI5ZTQyYjZlYTNlYjRmNTgxZTdmNGI5YTI2NTc1IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3JQcm94eS5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9Db2NvYS9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tbQpA
QCAtMTcyLDcgKzE3MiwxNyBAQCBzdGF0aWMgaW5saW5lIFJldGFpblB0cjxBU0NXZWJBdXRoZW50
aWNhdGlvbkV4dGVuc2lvbnNDbGllbnRJbnB1dHM+IHRvQVNDRXh0ZW5zaQogICAgIHJldHVybiBu
aWw7CiB9CiAKLXN0YXRpYyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBj
b25maWd1cmVSZWdpc3RyYXRpb25SZXF1ZXN0Q29udGV4dChjb25zdCBQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCkKK3N0YXRp
YyBpbmxpbmUgdm9pZCBzZXRHbG9iYWxGcmFtZUlERm9yQ29udGV4dChSZXRhaW5QdHI8QVNDQ3Jl
ZGVudGlhbFJlcXVlc3RDb250ZXh0PiByZXF1ZXN0Q29udGV4dCwgc3RkOjpvcHRpb25hbDxXZWJD
b3JlOjpHbG9iYWxGcmFtZUlkZW50aWZpZXI+IGdsb2JhbEZyYW1lSUQpCit7CisgICAgaWYgKGds
b2JhbEZyYW1lSUQgJiYgW3JlcXVlc3RDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc2V0R2xvYmFsRnJhbWVJRDopXSkgeworICAgICAgICBhdXRvIGFzY0dsb2JhbEZyYW1lSUQg
PSBhZG9wdE5TKFthbGxvY0FTQ0dsb2JhbEZyYW1lSWRlbnRpZmllckluc3RhbmNlKCkgaW5pdF0p
OworICAgICAgICBhc2NHbG9iYWxGcmFtZUlELmdldCgpLndlYkZyYW1lSUQgPSBbTlNOdW1iZXIg
bnVtYmVyV2l0aFVuc2lnbmVkTG9uZzpnbG9iYWxGcmFtZUlELT5mcmFtZUlELnRvVUludDY0KCld
OworICAgICAgICBhc2NHbG9iYWxGcmFtZUlELmdldCgpLndlYlBhZ2VJRCA9IFtOU051bWJlciBu
dW1iZXJXaXRoVW5zaWduZWRMb25nOmdsb2JhbEZyYW1lSUQtPnBhZ2VJRC50b1VJbnQ2NCgpXTsK
KyAgICAgICAgcmVxdWVzdENvbnRleHQuZ2V0KCkuZ2xvYmFsRnJhbWVJRCA9IGFzY0dsb2JhbEZy
YW1lSUQuZ2V0KCk7CisgICAgfQorfQorCitzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxS
ZXF1ZXN0Q29udGV4dD4gY29uZmlndXJlUmVnaXN0cmF0aW9uUmVxdWVzdENvbnRleHQoY29uc3Qg
UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4
X3Q+IGhhc2gsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBn
bG9iYWxGcmFtZUlEKQogewogICAgIEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZXMgcmVxdWVzdFR5
cGVzID0gQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlUGxhdGZvcm1QdWJsaWNLZXlSZWdpc3RyYXRp
b24gfCBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVTZWN1cml0eUtleVB1YmxpY0tleVJlZ2lzdHJh
dGlvbjsKIApAQCAtMTkzLDYgKzIwMyw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlh
bFJlcXVlc3RDb250ZXh0PiBjb25maWd1cmVSZWdpc3RyYXRpb25SZXF1ZXN0Q29udGV4CiAKICAg
ICBhdXRvIHJlcXVlc3RDb250ZXh0ID0gYWRvcHROUyhbYWxsb2NBU0NDcmVkZW50aWFsUmVxdWVz
dENvbnRleHRJbnN0YW5jZSgpIGluaXRXaXRoUmVxdWVzdFR5cGVzOnJlcXVlc3RUeXBlc10pOwog
ICAgIFtyZXF1ZXN0Q29udGV4dCBzZXRSZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnAu
aWRdOworICAgIHNldEdsb2JhbEZyYW1lSURGb3JDb250ZXh0KHJlcXVlc3RDb250ZXh0LCBnbG9i
YWxGcmFtZUlEKTsKIAogICAgIGF1dG8gY3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyA9IGFkb3B0
TlMoW2FsbG9jQVNDUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9uc0luc3RhbmNlKCkg
aW5pdF0pOwogCkBAIC0yMzYsNyArMjQ3LDI2IEBAIHN0YXRpYyBSZXRhaW5QdHI8QVNDQ3JlZGVu
dGlhbFJlcXVlc3RDb250ZXh0PiBjb25maWd1cmVSZWdpc3RyYXRpb25SZXF1ZXN0Q29udGV4CiAg
ICAgcmV0dXJuIHJlcXVlc3RDb250ZXh0OwogfQogCi1zdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRl
bnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmlndXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0
KGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgVmVjdG9y
PHVpbnQ4X3Q+IGhhc2gsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1l
bnQ+IG1lZGlhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpHbG9iYWxGcmFtZUlkZW50aWZp
ZXI+IGdsb2JhbEZyYW1lSUQpCitzdGF0aWMgaW5saW5lIFJldGFpblB0cjxBU0NQdWJsaWNLZXlD
cmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9ucz4gY29uZmlndXJlQXNzZXJ0aW9uT3B0aW9ucyhjb25z
dCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMsIFZlY3Rvcjx1aW50
OF90PiBoYXNoLCBBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZCBraW5kLCBjb25zdCBzdGQ6Om9w
dGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHBhcmVudE9yaWdpbiwgUmV0YWluUHRyPE5TTXV0
YWJsZUFycmF5PEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yICo+PiBhbGxvd2VkQ3Jl
ZGVudGlhbHMsIFJldGFpblB0cjxOU1N0cmluZz4gdXNlclZlcmlmaWNhdGlvbikKK3sKKyAgICBh
dXRvIGFzc2VydGlvbk9wdGlvbnMgPSBhZG9wdE5TKGFsbG9jQVNDUHVibGljS2V5Q3JlZGVudGlh
bEFzc2VydGlvbk9wdGlvbnNJbnN0YW5jZSgpKTsKKyAgICBpZiAoW2Fzc2VydGlvbk9wdGlvbnMg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aEtpbmQ6cmVseWluZ1BhcnR5SWRl
bnRpZmllcjpjbGllbnREYXRhSGFzaDp1c2VyVmVyaWZpY2F0aW9uUHJlZmVyZW5jZTphbGxvd2Vk
Q3JlZGVudGlhbHM6KV0pIHsKKyAgICAgICAgYXV0byBuc0hhc2ggPSB0b05TRGF0YShoYXNoKTsK
KyAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRl
bnRpYWxLaW5kUGxhdGZvcm0gcmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2xp
ZW50RGF0YUhhc2g6bnNIYXNoLmdldCgpIHVzZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJW
ZXJpZmljYXRpb24uZ2V0KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5n
ZXQoKV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBjaGFsbGVuZ2UgPSBXZWJDb3JlOjp0
b05TRGF0YShvcHRpb25zLmNoYWxsZW5nZSk7CisgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGlu
aXRXaXRoS2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0
eUlkZW50aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFsbGVuZ2UuZ2V0KCkgdXNlclZl
cmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVu
dGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKKyAgICB9CisgICAgaWYgKG9wdGlvbnMu
ZXh0ZW5zaW9ucyAmJiBbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHNldEV4dGVuc2lvbnM6KV0pCisgICAgICAgIFthc3NlcnRpb25PcHRpb25zIHNldEV4dGVu
c2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4dGVuc2lvbnMpLmdldCgpXTsKKyAgICBp
ZiAocGFyZW50T3JpZ2luICYmIFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpA
c2VsZWN0b3Ioc2V0RGVzdGluYXRpb25TaXRlRm9yQ3Jvc3NTaXRlQXNzZXJ0aW9uOildKQorICAg
ICAgICBhc3NlcnRpb25PcHRpb25zLmdldCgpLmRlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFz
c2VydGlvbiA9IHBhcmVudE9yaWdpbi0+dG9TdHJpbmcoKTsKKyAgICBlbHNlIGlmIChwYXJlbnRP
cmlnaW4gJiYgIVthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
c2V0RGVzdGluYXRpb25TaXRlRm9yQ3Jvc3NTaXRlQXNzZXJ0aW9uOildKQorICAgICAgICByZXR1
cm4gbmlsOworICAgIHJldHVybiBhc3NlcnRpb25PcHRpb25zOworfQorCitzdGF0aWMgUmV0YWlu
UHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmlndXJhdGlvbkFzc2VydGlvblJl
cXVlc3RDb250ZXh0KGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0
aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6TWVkaWF0
aW9uUmVxdWlyZW1lbnQ+IG1lZGlhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpHbG9iYWxG
cmFtZUlkZW50aWZpZXI+IGdsb2JhbEZyYW1lSUQsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2Vj
dXJpdHlPcmlnaW5EYXRhPiYgcGFyZW50T3JpZ2luKQogewogICAgIEFTQ0NyZWRlbnRpYWxSZXF1
ZXN0VHlwZXMgcmVxdWVzdFR5cGVzID0gQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlUGxhdGZvcm1Q
dWJsaWNLZXlBc3NlcnRpb24gfCBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVTZWN1cml0eUtleVB1
YmxpY0tleUFzc2VydGlvbjsKIApAQCAtMjYyLDQwICsyOTIsMTkgQEAgc3RhdGljIFJldGFpblB0
cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyYXRpb25Bc3NlcnRpb25SZXF1
ZXN0Q29udGUKICAgICBbcmVxdWVzdENvbnRleHQgc2V0UmVseWluZ1BhcnR5SWRlbnRpZmllcjpv
cHRpb25zLnJwSWRdOwogICAgIGlmIChtZWRpYXRpb24gPT0gTWVkaWF0aW9uUmVxdWlyZW1lbnQ6
OkNvbmRpdGlvbmFsICYmIFtyZXF1ZXN0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKHNldFJlcXVlc3RTdHlsZTopXSkKICAgICAgICAgcmVxdWVzdENvbnRleHQuZ2V0KCkucmVx
dWVzdFN0eWxlID0gQVNDcmVkZW50aWFsUmVxdWVzdFN0eWxlQXV0b0ZpbGw7Ci0gICAgaWYgKGds
b2JhbEZyYW1lSUQgJiYgW3JlcXVlc3RDb250ZXh0IHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0
b3Ioc2V0R2xvYmFsRnJhbWVJRDopXSkgewotICAgICAgICBhdXRvIGFzY0dsb2JhbEZyYW1lSUQg
PSBhZG9wdE5TKFthbGxvY0FTQ0dsb2JhbEZyYW1lSWRlbnRpZmllckluc3RhbmNlKCkgaW5pdF0p
OwotICAgICAgICBhc2NHbG9iYWxGcmFtZUlELmdldCgpLndlYkZyYW1lSUQgPSBbTlNOdW1iZXIg
bnVtYmVyV2l0aFVuc2lnbmVkTG9uZzpnbG9iYWxGcmFtZUlELT5mcmFtZUlELnRvVUludDY0KCld
OwotICAgICAgICBhc2NHbG9iYWxGcmFtZUlELmdldCgpLndlYlBhZ2VJRCA9IFtOU051bWJlciBu
dW1iZXJXaXRoVW5zaWduZWRMb25nOmdsb2JhbEZyYW1lSUQtPnBhZ2VJRC50b1VJbnQ2NCgpXTsK
LSAgICAgICAgcmVxdWVzdENvbnRleHQuZ2V0KCkuZ2xvYmFsRnJhbWVJRCA9IGFzY0dsb2JhbEZy
YW1lSUQuZ2V0KCk7Ci0gICAgfQorICAgIHNldEdsb2JhbEZyYW1lSURGb3JDb250ZXh0KHJlcXVl
c3RDb250ZXh0LCBnbG9iYWxGcmFtZUlEKTsKIAogICAgIGlmIChyZXF1ZXN0VHlwZXMgJiBBU0ND
cmVkZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tleUFzc2VydGlvbikgewotICAgICAg
ICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBhZG9wdE5TKGFsbG9jQVNDUHVibGljS2V5Q3JlZGVu
dGlhbEFzc2VydGlvbk9wdGlvbnNJbnN0YW5jZSgpKTsKLSAgICAgICAgaWYgKFthc3NlcnRpb25P
cHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhLaW5kOnJlbHlpbmdQ
YXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6
YWxsb3dlZENyZWRlbnRpYWxzOildKSB7Ci0gICAgICAgICAgICBhdXRvIG5zSGFzaCA9IHRvTlNE
YXRhKGhhc2gpOwotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFT
Q1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0gcmVseWluZ1BhcnR5SWRlbnRpZmllcjpv
cHRpb25zLnJwSWQgY2xpZW50RGF0YUhhc2g6bnNIYXNoLmdldCgpIHVzZXJWZXJpZmljYXRpb25Q
cmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFsbG93
ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBhdXRv
IGNoYWxsZW5nZSA9IFdlYkNvcmU6OnRvTlNEYXRhKG9wdGlvbnMuY2hhbGxlbmdlKTsKLSAgICAg
ICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRoS2luZDpBU0NQdWJsaWNLZXlDcmVkZW50
aWFsS2luZFBsYXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxs
ZW5nZTpjaGFsbGVuZ2UuZ2V0KCkgdXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlm
aWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgp
XTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3B0aW9ucy5leHRlbnNpb25zICYmIFthc3NlcnRp
b25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0RXh0ZW5zaW9uczopXSkK
LSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIHNldEV4dGVuc2lvbnM6dG9BU0NFeHRlbnNp
b25zKCpvcHRpb25zLmV4dGVuc2lvbnMpLmdldCgpXTsKLQorICAgICAgICBhdXRvIGFzc2VydGlv
bk9wdGlvbnMgPSBjb25maWd1cmVBc3NlcnRpb25PcHRpb25zKG9wdGlvbnMsIGhhc2gsIEFTQ1B1
YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0sIHBhcmVudE9yaWdpbiwgYWxsb3dlZENyZWRl
bnRpYWxzLCB1c2VyVmVyaWZpY2F0aW9uKTsKKyAgICAgICAgaWYgKCFhc3NlcnRpb25PcHRpb25z
KQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAgW3JlcXVlc3RDb250ZXh0IHNldFBs
YXRmb3JtS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnM6YXNzZXJ0aW9uT3B0aW9ucy5nZXQo
KV07CiAgICAgfQogCiAgICAgaWYgKHJlcXVlc3RUeXBlcyAmIEFTQ0NyZWRlbnRpYWxSZXF1ZXN0
VHlwZVNlY3VyaXR5S2V5UHVibGljS2V5QXNzZXJ0aW9uKSB7Ci0gICAgICAgIGF1dG8gYXNzZXJ0
aW9uT3B0aW9ucyA9IGFkb3B0TlMoYWxsb2NBU0NQdWJsaWNLZXlDcmVkZW50aWFsQXNzZXJ0aW9u
T3B0aW9uc0luc3RhbmNlKCkpOwotICAgICAgICBpZiAoW2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9u
ZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aEtpbmQ6cmVseWluZ1BhcnR5SWRlbnRpZmll
cjpjbGllbnREYXRhSGFzaDp1c2VyVmVyaWZpY2F0aW9uUHJlZmVyZW5jZTphbGxvd2VkQ3JlZGVu
dGlhbHM6KV0pIHsKLSAgICAgICAgICAgIGF1dG8gbnNIYXNoID0gdG9OU0RhdGEoaGFzaCk7Ci0g
ICAgICAgICAgICBbYXNzZXJ0aW9uT3B0aW9ucyBpbml0V2l0aEtpbmQ6QVNDUHVibGljS2V5Q3Jl
ZGVudGlhbEtpbmRTZWN1cml0eUtleSByZWx5aW5nUGFydHlJZGVudGlmaWVyOm9wdGlvbnMucnBJ
ZCBjbGllbnREYXRhSGFzaDpuc0hhc2guZ2V0KCkgdXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6
dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVudGlhbHM6YWxsb3dlZENyZWRlbnRp
YWxzLmdldCgpXTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIGF1dG8gY2hhbGxlbmdl
ID0gV2ViQ29yZTo6dG9OU0RhdGEob3B0aW9ucy5jaGFsbGVuZ2UpOwotICAgICAgICAgICAgW2Fz
c2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kU2Vj
dXJpdHlLZXkgcmVseWluZ1BhcnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2hhbGxlbmdlOmNo
YWxsZW5nZS5nZXQoKSB1c2VyVmVyaWZpY2F0aW9uUHJlZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9u
LmdldCgpIGFsbG93ZWRDcmVkZW50aWFsczphbGxvd2VkQ3JlZGVudGlhbHMuZ2V0KCldOwotICAg
ICAgICB9Ci0gICAgICAgIGlmIChvcHRpb25zLmV4dGVuc2lvbnMgJiYgW2Fzc2VydGlvbk9wdGlv
bnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRFeHRlbnNpb25zOildKQotICAgICAg
ICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgc2V0RXh0ZW5zaW9uczp0b0FTQ0V4dGVuc2lvbnMoKm9w
dGlvbnMuZXh0ZW5zaW9ucykuZ2V0KCldOwotCisgICAgICAgIGF1dG8gYXNzZXJ0aW9uT3B0aW9u
cyA9IGNvbmZpZ3VyZUFzc2VydGlvbk9wdGlvbnMob3B0aW9ucywgaGFzaCwgQVNDUHVibGljS2V5
Q3JlZGVudGlhbEtpbmRTZWN1cml0eUtleSwgcGFyZW50T3JpZ2luLCBhbGxvd2VkQ3JlZGVudGlh
bHMsIHVzZXJWZXJpZmljYXRpb24pOworICAgICAgICBpZiAoIWFzc2VydGlvbk9wdGlvbnMpCisg
ICAgICAgICAgICByZXR1cm4gbmlsOwogICAgICAgICBbcmVxdWVzdENvbnRleHQgc2V0U2VjdXJp
dHlLZXlDcmVkZW50aWFsQXNzZXJ0aW9uT3B0aW9uczphc3NlcnRpb25PcHRpb25zLmdldCgpXTsK
ICAgICB9CiAKQEAgLTMwNiw5ICszMTUsOSBAQCBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVl
c3RDb250ZXh0PiBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6Y29udGV4dAogewog
ICAgIFJldGFpblB0cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IHJlc3VsdDsKICAgICBX
VEY6OnN3aXRjaE9uKHJlcXVlc3REYXRhLm9wdGlvbnMsIFsmXShjb25zdCBQdWJsaWNLZXlDcmVk
ZW50aWFsQ3JlYXRpb25PcHRpb25zJiBvcHRpb25zKSB7Ci0gICAgICAgIHJlc3VsdCA9IGNvbmZp
Z3VyZVJlZ2lzdHJhdGlvblJlcXVlc3RDb250ZXh0KG9wdGlvbnMsIHJlcXVlc3REYXRhLmhhc2gp
OworICAgICAgICByZXN1bHQgPSBjb25maWd1cmVSZWdpc3RyYXRpb25SZXF1ZXN0Q29udGV4dChv
cHRpb25zLCByZXF1ZXN0RGF0YS5oYXNoLCByZXF1ZXN0RGF0YS5nbG9iYWxGcmFtZUlEKTsKICAg
ICB9LCBbJl0oY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRpb25z
KSB7Ci0gICAgICAgIHJlc3VsdCA9IGNvbmZpZ3VyYXRpb25Bc3NlcnRpb25SZXF1ZXN0Q29udGV4
dChvcHRpb25zLCByZXF1ZXN0RGF0YS5oYXNoLCByZXF1ZXN0RGF0YS5tZWRpYXRpb24sIHJlcXVl
c3REYXRhLmdsb2JhbEZyYW1lSUQpOworICAgICAgICByZXN1bHQgPSBjb25maWd1cmF0aW9uQXNz
ZXJ0aW9uUmVxdWVzdENvbnRleHQob3B0aW9ucywgcmVxdWVzdERhdGEuaGFzaCwgcmVxdWVzdERh
dGEubWVkaWF0aW9uLCByZXF1ZXN0RGF0YS5nbG9iYWxGcmFtZUlELCByZXF1ZXN0RGF0YS5wYXJl
bnRPcmlnaW4pOwogICAgIH0pOwogICAgIHJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdGlv
blJlcXVlc3REYXRhLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlv
bi9XZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKaW5kZXggOThiNmVkMDlhYjZkODhhMzQ5
YmI3Zjk2OGZmZGFmMDgyODhhMDM0NS4uMGExZDQ1OTE2YTM5NGI0ZjhmYTAyYjZkOGM3N2U1MDk2
OTI0Nzc1YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGlj
YXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEu
aApAQCAtMzksNiArMzksMTAgQEAKICNpbmNsdWRlIDx3dGYvVmVjdG9yLmg+CiAjaW5jbHVkZSA8
d3RmL1dlYWtQdHIuaD4KIAorbmFtZXNwYWNlIFdlYkNvcmUgeworc3RydWN0IFNlY3VyaXR5T3Jp
Z2luRGF0YTsKK30KKwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNzIFdlYlBhZ2VQcm94eTsK
QEAgLTU4LDYgKzYyLDcgQEAgc3RydWN0IFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEgewog
ICAgIFN0cmluZyBjYWNoZWRQaW47IC8vIE9ubHkgdXNlZCB0byBpbXByb3ZlIE5GQyBDbGllbnQg
UElOIGV4cGVyaWVuY2UuCiAgICAgV2Vha1B0cjxBUEk6OldlYkF1dGhlbnRpY2F0aW9uUGFuZWw+
IHdlYWtQYW5lbDsKICAgICBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVt
ZW50PiBtZWRpYXRpb247CisgICAgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdp
bkRhdGE+IHBhcmVudE9yaWdpbjsKIH07CiAKIFdlYkNvcmU6OkNsaWVudERhdGFUeXBlIGdldENs
aWVudERhdGFUeXBlKGNvbnN0IHN0ZDo6dmFyaWFudDxXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnM+Jik7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50
aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3JQcm94eS5jcHAKaW5kZXggZjU5ZTk0YTk1NjlmNWU4MTRjMjlmM2JiYzJkZTFmZWEzMjQ3ODk5
My4uNjlmNjJiNjM5NzZlODJmZWRmM2QxZGI0MWRmZWQyOThjODI5MjlkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcApAQCAtNTgs
MTIgKzU4LDEyIEBAIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Ojp+V2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHkoKQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5OjptYWtlQ3JlZGVudGlhbChGcmFtZUlkZW50aWZpZXIgZnJhbWVJZCwgRnJhbWVJ
bmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0
dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewotICAgIGhhbmRsZVJl
cXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtX3dlYlBhZ2VQcm94eSwg
V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2Jh
bEZyYW1lSWRlbnRpZmllciB7IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0s
IFdURk1vdmUoZnJhbWVJbmZvKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVs
bHB0ciwgc3RkOjpudWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOworICAgIGhhbmRsZVJlcXVl
c3QoeyBXVEZNb3ZlKGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBtX3dlYlBhZ2VQcm94eSwgV2Vi
QXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIEdsb2JhbEZy
YW1lSWRlbnRpZmllciB7IG1fd2ViUGFnZVByb3h5LndlYlBhZ2VJRCgpLCBmcmFtZUlkIH0sIFdU
Rk1vdmUoZnJhbWVJbmZvKSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0
ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAK
LXZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbihGcmFt
ZUlkZW50aWZpZXIgZnJhbWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVp
bnQ4X3Q+JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9u
cywgTWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBib29sIHByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKK3ZvaWQgV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmdldEFzc2VydGlvbihGcmFtZUlkZW50aWZpZXIgZnJh
bWVJZCwgRnJhbWVJbmZvRGF0YSYmIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwg
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgTWVkaWF0aW9uUmVx
dWlyZW1lbnQgbWVkaWF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2lu
RGF0YT4gcGFyZW50T3JpZ2luLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENv
bXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92
ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0
aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZp
ZXIgeyBtX3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1l
SW5mbyksIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIG1lZGlhdGlv
biB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNo
KSwgV1RGTW92ZShvcHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFu
ZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBt
X3dlYlBhZ2VQcm94eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyks
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIG1lZGlhdGlvbiwgcGFy
ZW50T3JpZ2luIH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVz
dERhdGEmJiBkYXRhLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQpAQCAtNzQs
MTMgKzc0LDIyIEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OmhhbmRs
ZVJlcXVlc3QoV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0CiAgICAgICAgIGF1dG8mIGF1dGhl
bnRpY2F0b3JNYW5hZ2VyID0gbV93ZWJQYWdlUHJveHkud2Vic2l0ZURhdGFTdG9yZSgpLmF1dGhl
bnRpY2F0b3JNYW5hZ2VyKCk7CiAgICAgICAgIGlmIChyZXN1bHQpIHsKICNpZiBIQVZFKFVOSUZJ
RURfQVNDX0FVVEhfVUkpCi0gICAgICAgICAgICAgICAgaWYgKCFhdXRoZW50aWNhdG9yTWFuYWdl
ci5pc01vY2soKSAmJiAhYXV0aGVudGljYXRvck1hbmFnZXIuaXNWaXJ0dWFsKCkpIHsKLSAgICAg
ICAgICAgICAgICAgICAgYXV0byBjb250ZXh0ID0gY29udGV4dEZvclJlcXVlc3QoV1RGTW92ZShk
YXRhKSk7Ci0gICAgICAgICAgICAgICAgICAgIC8vIHBlcmZvcm1SZXF1ZXN0IGNhbGxzIG91dCB0
byBBU0NBZ2VudCB3aGljaCB3aWxsIHRoZW4gY2FsbCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5l
bCBtYWtlQ3JlZGVudGlhbC9nZXRBc3NlcnRpb25XaXRoQ2hhbGxlbmdlXQotICAgICAgICAgICAg
ICAgICAgICAvLyB3aGljaCBjYWxscyBhdXRoZW50aWNhdG9yTWFuYWdlci5oYW5kbGVSZXF1ZXN0
KC4uKQotICAgICAgICAgICAgICAgICAgICBwZXJmb3JtUmVxdWVzdChjb250ZXh0LCBXVEZNb3Zl
KGhhbmRsZXIpKTsKKyAgICAgICAgICAgIGlmICghYXV0aGVudGljYXRvck1hbmFnZXIuaXNNb2Nr
KCkgJiYgIWF1dGhlbnRpY2F0b3JNYW5hZ2VyLmlzVmlydHVhbCgpKSB7CisgICAgICAgICAgICAg
ICAgYXV0byBjb250ZXh0ID0gY29udGV4dEZvclJlcXVlc3QoV1RGTW92ZShkYXRhKSk7CisgICAg
ICAgICAgICAgICAgaWYgKGNvbnRleHQuZ2V0KCkgPT0gbnVsbHB0cikgeworICAgICAgICAgICAg
ICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JBdHRhY2htZW50KTAsIEV4Y2VwdGlv
bkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2luIG9mIHRoZSBkb2N1bWVudCBpcyBu
b3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7CiAgICAgICAgICAgICAgICAgICAg
IHJldHVybjsKICAgICAgICAgICAgICAgICB9CisgICAgICAgICAgICAgICAgLy8gcGVyZm9ybVJl
cXVlc3QgY2FsbHMgb3V0IHRvIEFTQ0FnZW50IHdoaWNoIHdpbGwgdGhlbiBjYWxsIFtfV0tXZWJB
dXRoZW50aWNhdGlvblBhbmVsIG1ha2VDcmVkZW50aWFsL2dldEFzc2VydGlvbldpdGhDaGFsbGVu
Z2VdCisgICAgICAgICAgICAgICAgLy8gd2hpY2ggY2FsbHMgYXV0aGVudGljYXRvck1hbmFnZXIu
aGFuZGxlUmVxdWVzdCguLikKKyAgICAgICAgICAgICAgICBwZXJmb3JtUmVxdWVzdChjb250ZXh0
LCBXVEZNb3ZlKGhhbmRsZXIpKTsKKyAgICAgICAgICAgICAgICByZXR1cm47CisgICAgICAgICAg
ICB9CisjZWxzZQorICAgICAgICAgICAgaWYgKGRhdGEucGFyZW50T3JpZ2luICYmICFhdXRoZW50
aWNhdG9yTWFuYWdlci5pc01vY2soKSAmJiAhYXV0aGVudGljYXRvck1hbmFnZXIuaXNWaXJ0dWFs
KCkpIHsKKyAgICAgICAgICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JBdHRhY2ht
ZW50KTAsIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2luIG9mIHRo
ZSBkb2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7CisgICAg
ICAgICAgICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQogI2VuZGlmIC8vIEhBVkUoVU5JRklF
RF9BU0NfQVVUSF9VSSkKIAogICAgICAgICAgICAgYXV0aGVudGljYXRvck1hbmFnZXIuaGFuZGxl
UmVxdWVzdChXVEZNb3ZlKGRhdGEpLCBbaGFuZGxlciA9IFdURk1vdmUoaGFuZGxlcildIChzdGQ6
OnZhcmlhbnQ8UmVmPEF1dGhlbnRpY2F0b3JSZXNwb25zZT4sIEV4Y2VwdGlvbkRhdGE+JiYgcmVz
dWx0KSBtdXRhYmxlIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1
dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmggYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3JQcm94eS5oCmluZGV4IDhmODdjMDMwNjhhNDA3YmI2NWI0ZjllMWY2MTE0ZjRkNzA2ZDM0
MWQuLjY3YTIwYmE0MTVkZmYzZDhkM2Q3YzRmMzJmYWEyYThkMTgzYTUzNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5LmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaApAQCAtNzEsNyAr
NzEsNyBAQCBwcml2YXRlOgogCiAgICAgLy8gUmVjZWl2ZXJzLgogICAgIHZvaWQgbWFrZUNyZWRl
bnRpYWwoV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZlY3Rvcjx1
aW50OF90PiYmIGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlv
bnMmJiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
ciYmKTsKLSAgICB2b2lkIGdldEFzc2VydGlvbihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIsIEZy
YW1lSW5mb0RhdGEmJiwgVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgV2ViQ29yZTo6UHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYsIFdlYkNvcmU6OkNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBS
ZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CisgICAgdm9pZCBnZXRBc3NlcnRpb24oV2ViQ29y
ZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZlY3Rvcjx1aW50OF90PiYmIGhh
c2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBXZWJDb3Jl
OjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBzdGQ6Om9w
dGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4sIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBpc1VzZXJWZXJp
ZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxl
ciYmKTsKICAgICB2b2lkIGlzQ29uZGl0aW9uYWxNZWRpYXRpb25BdmFpbGFibGUoUXVlcnlDb21w
bGV0aW9uSGFuZGxlciYmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgppbmRleCA1MzQ3NzQ3OTAyMDkx
M2EzMmY2ZTg5YmYyY2NmN2RmNmZmZDAzYjU2Li5kM2ZhNjVkNTE4YzFhOTk2Nzc1OTUyMWUwNzdl
NmFiODIzNGQzNDczIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgor
KysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5tZXNzYWdlcy5pbgpAQCAtMjcsNyArMjcsNyBAQAogbWVz
c2FnZXMgLT4gV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkgTm90UmVmQ291bnRlZCB7
CiAKICAgICBNYWtlQ3JlZGVudGlhbChXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwg
c3RydWN0IFdlYktpdDo6RnJhbWVJbmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiBo
YXNoLCBzdHJ1Y3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyBv
cHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpB
dXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRp
Y2F0b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRh
IGV4Y2VwdGlvbikKLSAgICBHZXRBc3NlcnRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZy
YW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBWZWN0b3I8dWlu
dDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyBvcHRpb25zLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q3JlZGVudGlhbFJlcXVlc3RPcHRp
b25zOjpNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIGJvb2wgcHJvY2Vzc2luZ1VzZXJH
ZXN0dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0
YSwgZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwg
c3RydWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQorICAgIEdldEFzc2VydGlv
bihXZWJDb3JlOjpGcmFtZUlkZW50aWZpZXIgZnJhbWVJRCwgc3RydWN0IFdlYktpdDo6RnJhbWVJ
bmZvRGF0YSBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiBoYXNoLCBzdHJ1Y3QgV2ViQ29yZTo6
UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zIG9wdGlvbnMsIGVudW06dWludDhfdCBX
ZWJDb3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50IG1l
ZGlhdGlvbiwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHBhcmVu
dE9yaWdpbiwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6
QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBlbnVtOmludCBXZWJDb3JlOjpBdXRoZW50
aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0
YSBleGNlcHRpb24pCiAgICAgaXNDb25kaXRpb25hbE1lZGlhdGlvbkF2YWlsYWJsZSgpIC0+IChi
b29sIHJlc3VsdCkKICAgICBJc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFp
bGFibGUoKSAtPiAoYm9vbCByZXN1bHQpCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzLmNw
cAppbmRleCBlNGI0YjZiMzRjMGJmMmU1MjE5N2E2ZGZmZTIyM2IxY2U3YjViNWFhLi41MTdjM2Jh
YzEyZjg3MTM3N2E3M2FlM2QxNTZiMDNlNzM4ZmIwMjdlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1dlYkF1dGhuUHJvY2Vzcy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCisr
KyBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhuQ29ubmVjdGlvblRvV2Vi
UHJvY2Vzcy5jcHAKQEAgLTk2LDEyICs5NiwxMiBAQCBib29sIFdlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6ZGlzcGF0Y2hTeW5jTWVzc2FnZShJUEM6OkNvbm5lY3Rpb24mIGNvbm5lYwog
CiB2b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRvV2ViUHJvY2Vzczo6bWFrZUNyZWRlbnRpYWwoVmVj
dG9yPHVpbnQ4X3Q+JiYgaGFzaCwgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYm
IG9wdGlvbnMsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBSZXF1ZXN0Q29tcGxldGlvbkhh
bmRsZXImJiBoYW5kbGVyKQogewotICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhhc2gpLCBX
VEZNb3ZlKG9wdGlvbnMpLCBudWxscHRyLCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpV
bmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIp
KTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwg
bnVsbHB0ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxw
dHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBu
dWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsK
IH0KIAogdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmdldEFzc2VydGlvbihW
ZWN0b3I8dWludDhfdD4mJiBoYXNoLCBQdWJsaWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMm
JiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25I
YW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwg
V1RGTW92ZShvcHRpb25zKSwgbnVsbHB0ciwgV2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6
VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVy
KSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyks
IG51bGxwdHIsIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxs
cHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwg
bnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7
CiB9CiAKIHZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQcm9jZXNzOjpoYW5kbGVSZXF1ZXN0
KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERhdGEmJiBkYXRhLCBSZXF1ZXN0Q29tcGxldGlvbkhh
bmRsZXImJiBoYW5kbGVyKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yLmNwcAppbmRleCA1MDk3MjA3YmE2NDQyZGRhNTAyODI5YjkwMTM2MjUxODIwZDhhYWVi
Li4wZTExN2EwZWM2MTkwMGQxNTBhZGIxZGU5YzY4MjI5YThlN2FiNTcwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcApAQCAtNDYsNiArNDYsNyBA
QAogI2luY2x1ZGUgPFdlYkNvcmUvUnVudGltZUVuYWJsZWRGZWF0dXJlcy5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvU2VjdXJpdHlPcmlnaW4uaD4KICNpbmNsdWRlIDxXZWJDb3JlL1VzZXJHZXN0dXJl
SW5kaWNhdG9yLmg+CisjaW5jbHVkZSA8V2ViQ29yZS9XZWJBdXRoZW50aWNhdGlvbkNvbnN0YW50
cy5oPgogCiAjdW5kZWYgV0VCQVVUSE5fUkVMRUFTRV9MT0cKICNkZWZpbmUgUEFHRV9JRCAobV93
ZWJQYWdlLmlkZW50aWZpZXIoKS50b1VJbnQ2NCgpKQpAQCAtOTMsNyArOTQsNyBAQCB2b2lkIFdl
YkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6bWFrZUNyZWRlbnRpYWwoY29uc3QgRnJhbWUmIGZy
YW1lLCBjb25zdCBTZWN1cgogICAgIFdlYlByb2Nlc3M6OnNpbmdsZXRvbigpLmVuc3VyZVdlYkF1
dGhuUHJvY2Vzc0Nvbm5lY3Rpb24oKS5jb25uZWN0aW9uKCkuc2VuZFdpdGhBc3luY1JlcGx5KE1l
c3NhZ2VzOjpXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6Ok1ha2VDcmVkZW50aWFsKGhh
c2gsIG9wdGlvbnMsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7
CiB9CiAKLXZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24oY29u
c3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50
OF90PiYgaGFzaCwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRp
b25zLCBNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIFJlcXVlc3RDb21wbGV0aW9uSGFu
ZGxlciYmIGhhbmRsZXIpCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6Z2V0QXNz
ZXJ0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdHlPcmlnaW4mLCBjb25zdCBW
ZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0
aW9ucyYgb3B0aW9ucywgTWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0aW9uLCBjb25zdCBTY29w
ZUFuZENyb3NzT3JpZ2luUGFyZW50JiBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50LCBSZXF1ZXN0
Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQogewogICAgIGF1dG8qIHdlYkZyYW1lID0gV2Vi
RnJhbWU6OmZyb21Db3JlRnJhbWUoZnJhbWUpOwogICAgIGlmICghd2ViRnJhbWUpCkBAIC0xMDYs
NyArMTA3LDExIEBAIHZvaWQgV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRp
b24oY29uc3QgRnJhbWUmIGZyYW1lLCBjb25zdCBTZWN1cml0CiAgICAgYm9vbCB1c2VXZWJBdXRo
blByb2Nlc3MgPSBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkF1
dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZCgpOwogI2VuZGlmCiAgICAgaWYgKCF1c2VXZWJBdXRo
blByb2Nlc3MpIHsKLSAgICAgICAgbV93ZWJQYWdlLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdl
czo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHk6OkdldEFzc2VydGlvbih3ZWJGcmFt
ZS0+ZnJhbWVJRCgpLCB3ZWJGcmFtZS0+aW5mbygpLCBoYXNoLCBvcHRpb25zLCBtZWRpYXRpb24s
IGlzUHJvY2Vzc2luZ1VzZXJHZXN0dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgICAgIG1f
d2ViUGFnZS5zZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQoKSwgd2ViRnJhbWUt
PmluZm8oKSwgaGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBzY29wZUFuZENyb3NzT3JpZ2luUGFy
ZW50LnNlY29uZCwgaXNQcm9jZXNzaW5nVXNlckdlc3R1cmUpLCBXVEZNb3ZlKGhhbmRsZXIpKTsK
KyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc2NvcGVBbmRDcm9zc09yaWdpblBhcmVu
dC5maXJzdCA9PSBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luKSB7CisgICAgICAgIGhhbmRs
ZXIoeyB9LCAoQXV0aGVudGljYXRvckF0dGFjaG1lbnQpMCwgRXhjZXB0aW9uRGF0YSB7IE5vdEFs
bG93ZWRFcnJvciwgIlRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBh
cyBpdHMgYW5jZXN0b3JzLiJfcyB9KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhl
bnRpY2F0b3JDb29yZGluYXRvci5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCmluZGV4IDI1OWM5ZTU2MmMz
OTNiMGU2M2ViYjc4ZTNmNzdjMjc5ZGE2OTcyZjcuLjBlZDNlNzUyYTcwMzNlZTNiODNlNDBiMzFi
NmY2NDQwMzM4YWViZmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJB
dXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yLmgKQEAgLTQxLDcgKzQxLDcgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICAvLyBXZWJD
b3JlOjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQKICAgICB2b2lkIG1ha2VDcmVkZW50
aWFsKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsQ3JlYXRpb25PcHRpb25zJiwgV2ViQ29yZTo6UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYp
IGZpbmFsOwotICAgIHZvaWQgZ2V0QXNzZXJ0aW9uKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgY29u
c3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gs
IGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNv
cmU6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBXZWJDb3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRs
ZXImJikgZmluYWw7CisgICAgdm9pZCBnZXRBc3NlcnRpb24oY29uc3QgV2ViQ29yZTo6RnJhbWUm
LCBjb25zdCBXZWJDb3JlOjpTZWN1cml0eU9yaWdpbiYsIGNvbnN0IFZlY3Rvcjx1aW50OF90PiYg
aGFzaCwgY29uc3QgV2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwg
V2ViQ29yZTo6TWVkaWF0aW9uUmVxdWlyZW1lbnQsIGNvbnN0IHN0ZDo6cGFpcjxXZWJBdXRobjo6
U2NvcGUsIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPj4mLCBXZWJD
b3JlOjpSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCBpc0NvbmRp
dGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFdlYkNvcmU6OlF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIm
JikgZmluYWw7CiAgICAgdm9pZCBpc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JB
dmFpbGFibGUoV2ViQ29yZTo6UXVlcnlDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKICAgICB2
b2lkIHJlc2V0VXNlckdlc3R1cmVSZXF1aXJlbWVudCgpIGZpbmFsIHsgbV9yZXF1aXJlVXNlckdl
c3R1cmUgPSBmYWxzZTsgfQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDFmMDk2MjgzZDA5OTYyZGNhZjgyNTVlNGQ4ZjliNWFl
Njc0OWZmNzMuLjg0NTVkZWUxZmIxZGM0OTQ0ZjVlOWQwODhiZGRjY2YxMWIyNzFlOGIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxOSBAQAorMjAyMi0wMy0wOCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5j
b20+CisKKyAgICAgICAgW1dlYkF1dGhuXSBVc2luZyBXZWJBdXRobiB3aXRoaW4gY3Jvc3Mtb3Jp
Z2luIGlmcmFtZSBlbGVtZW50cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjIyMjQwCisgICAgICAgIHJkYXI6Ly9wcm9ibGVtLzc0ODMwNzQ4CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICBVcGRhdGUgZXhpc3Rp
bmcgdGVzdHMgYW5kIGNyZWF0ZSBuZXcgdGVzdCBmb3IgY3Jvc3Mtb3JpZ2luLCBub24gc2FtZS1z
aXRlIGktZnJhbWVzLgorCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4u
aHR0cHMuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtl
eS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4
dDoKKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2Ft
ZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3dwdC93
ZWJhdXRobi9yZXNvdXJjZXMvcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRw
cy5odG1sOiBBZGRlZC4KKwogMjAyMi0wMy0wOCAgSiBQYXNjb2UgIDxqX3Bhc2NvZUBhcHBsZS5j
b20+CiAKICAgICAgICAgWyBpT1MgXSAyWCBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNy
ZWRlbnRpYWwtY3JlYXRlLWZhaWx1cmUtbG9jYWwgKGxheW91dC10ZXN0cykgYXJlIGNvbnN0YW50
IHRleHQgZmFpbHVyZXMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhu
L3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3Nz
LW9yaWdpbi5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBhNmMxMGJhZDNkNjBlODhm
ZjEyMjIyY2U1ZTBkMjc4MmQyOThmNwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCisKK1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1l
IHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRl
bnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW4gdXNlIGdldCgpLgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mt
b3JpZ2luLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWNiNWVi
MjhiMzlmMWI1YzFiYjk1MDkwYWRkMmZlZjczOGRjMTYwMgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1v
cmlnaW4uaHR0cHMuaHRtbApAQCAtMCwwICsxLDggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgV2ViQXV0aGVudGljYXRpb25Nb2Rlcm5FbmFibGVkPWZhbHNlIF0g
LS0+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgfQorICAgIGxvY2F0aW9uPSJodHRwczovLzEyNy4wLjAuMTo5NDQzL1dlYktpdC93ZWJh
dXRobi9yZXNvdXJjZXMvcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5o
dG1sIgorPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRo
bi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1j
cmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dApp
bmRleCBjNzAyMWQ4MTgxNzAyNDRkNjI0OGJmMDVlZDZhOGU5OWNjODcxM2YxLi44OGM0MjVjZjQ5
MzI2NjdkODdjNjNjMzI3NDZhMDI0NTM0ZjAzZWM2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1h
bmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dl
YmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTQsNSArNCw1IEBAIFBBU1MgVGVzdHMgdGhhdCBhIGZyYW1l
IHRoYXQgZG9lc24ndCBzaGFyZSB0aGUgc2FtZSBvcmlnaW4gd2l0aCBhbGwgaXRzIGFuY2VzdG9y
CiBQQVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3Jp
Z2luIHdpdGggYWxsIGl0cyBhbmNlc3RvcnMgY291bGQgbm90IGFjY2VzcyB0aGUgQVBJLiAyCiBQ
QVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGlzIHNhbWUtc2l0ZSwgY3Jvc3Mtb3JpZ2luIHdp
dGhvdXQgcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNl
IGdldCgpLgogUEFTUyBUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBzYW1lLXNpdGUsIGNyb3Nz
LW9yaWdpbiB3aXRoIHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2Fu
IHVzZSBnZXQoKS4KLVBBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2lu
LCBOT1Qgc2FtZS1zaXRlICB3aXRoIHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBw
b2xpY3kgY2Fubm90IHVzZSBnZXQoKS4KK1BBU1MgVGVzdHMgdGhhdCBhIGZyYW1lIHVzaW5nIGFu
IGlwIGFkZHJlc3MgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJs
aWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuCiAK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdp
dGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKaW5kZXggNTgxNDc1ZTUyMDUwNGQwOGE5YzFmYTZmMjc4
MjZjNGUyNTUyOGI2Mi4uNWQzZThjMzFmN2VhZTEyYjAxZDI4MjUzZGRlMTc3ZTZhZmQ1ZGNhMyAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2lu
LXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0bWwKQEAgLTEsNCArMSw0IEBACi08IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxl
ZD10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdl
YkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgogPGh0bWw+CiA8aGVhZD4K
ICAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CkBAIC0zNyw5ICszNyw5IEBACiAKICAgICAgICAg
cHJvbWlzZV90ZXN0KHQgPT4gewogICAgICAgICAgICAgcmV0dXJuIHdpdGhDcm9zc09yaWdpbklm
cmFtZSgic2FtZXNpdGUtaWZyYW1lLmh0bWwiLCAicHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCIp
LnRoZW4oKG1lc3NhZ2UpID0+IHsKLSAgICAgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKG1lc3Nh
Z2UuZGF0YSwgIlRocm93IE5vdEFsbG93ZWRFcnJvcjogVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1l
bnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0cyBhbmNlc3RvcnMuIik7CisgICAgICAgICAgICAgICAg
YXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJUaHJvdyBTZWN1cml0eUVycm9yOiBUaGUgZWZm
ZWN0aXZlIGRvbWFpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IGEgdmFsaWQgZG9tYWluLiIpOwog
ICAgICAgICAgICAgfSk7Ci0gICAgICAgIH0sICJUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBj
cm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdl
dCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgpLiIpOworICAgICAgICB9LCAiVGVzdHMg
dGhhdCBhIGZyYW1lIHVzaW5nIGFuIGlwIGFkZHJlc3MgdGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5P
VCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5
IGNhbm5vdCB1c2UgZ2V0KCkuIik7CiAgICAgPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9yZXNvdXJjZXMvcHVibGlj
LWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmln
aW4uaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42OTVkMjE3OTEzMzViYjE1YzhiZDJkMjc5Mjk0MDU1
YjFlOWExYzZmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0
aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRt
bApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIFdlYkF1dGhlbnRpY2F0aW9uTW9kZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPldlYiBBdXRoZW50
aWNhdGlvbiBBUEk6IFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiB3aXRo
IGZlYXR1cmUgcG9saWN5IGNhbiBhY2Nlc3MgdGhlIEFQSS48L3RpdGxlPgorICAgIDxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNy
Yz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlw
dCBzcmM9Ii9jb21tb24vdXRpbHMuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29t
bW9uL2dldC1ob3N0LWluZm8uc3ViLmpzIj48L3NjcmlwdD4KKyAgICA8c2NyaXB0IHNyYz0iLi91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzY3JpcHQ+CisgICAgICAg
IHByb21pc2VfdGVzdCh0ID0+IHsKKyAgICAgICAgICAgIC8vIGxvY2FsaG9zdCBpcyBjcm9zcy1v
cmlnaW4gaGVyZS4KKyAgICAgICAgICAgIHJldHVybiB3aXRoU2FtZVNpdGVJZnJhbWUoInNhbWVz
aXRlLWlmcmFtZS5odG1sIiwgInB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQiKS50aGVuKChtZXNz
YWdlKSA9PiB7CisgICAgICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJQ
QVNTISIpOworICAgICAgICAgICAgfSk7CisgICAgICAgIH0sICJUZXN0cyB0aGF0IGEgZnJhbWUg
dGhhdCBpcyBjcm9zcy1vcmlnaW4sIE5PVCBzYW1lLXNpdGUgd2l0aCBwdWJsaWNrZXktY3JlZGVu
dGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbiB1c2UgZ2V0KCkuIik7CisgICAgPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>454132</attachid>
            <date>2022-03-08 09:24:00 -0800</date>
            <delta_ts>2022-03-08 15:53:14 -0800</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-222240-20220308092359.patch</filename>
            <type>text/plain</type>
            <size>49862</size>
            <attacher name="pascoe@apple.com">pascoe</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkwOTkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMGRiMmIwZGY4MTI1NTk1
OTBhZmQwNDZlYTFkNzg2YThkNjllMjNlMi4uNDdlNGFhYzkxNGUxMjBkZmViYzU4NjlhYzRjYjgz
YWY0ZGNkY2UxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMyIEBACisyMDIyLTAzLTA4ICBKIFBh
c2NvZSAgPGpfcGFzY29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdl
YkF1dGhuIHdpdGhpbiBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjov
L3Byb2JsZW0vNzQ4MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgor
CisgICAgICAgIFRoaXMgcGF0Y2ggcmVsYXhlcyB0aGUgcmVxdWlyZW1lbnQgdG8gcGVyZm9ybSBh
IFdlYiBBdXRoZW50aWNhdGlvbiBhc3NlcnRpb24KKyAgICAgICAgaW5zaWRlIGFuIGktZnJhbWUg
d2l0aCB0aGUgInB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQiIGZlYXR1cmUgcG9saWN5IGZyb20K
KyAgICAgICAgJ3NhbWUtc2l0ZScgdG8gJ2Nyb3NzLW9yaWdpbiB3aXRoIGNvbnNlbnQnLgorCisg
ICAgICAgIFRoZXJlIGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBv
bmx5IGEgc2luZ2xlIGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0
aGUgdXNlciBpbiB0aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisg
ICAgICAgIHByb21wdCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93
ZWQuCisKKyAgICAgICAgVGVzdDogaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50
aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sCisKKyAgICAgICAgKiBNb2R1bGVzL2NyZWRlbnRp
YWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNyZWRlbnRpYWxzQ29udGFpbmVyOjpzY29wZUFuZFNpbmdsZVBhcmVudCk6CisgICAgICAgIChX
ZWJDb3JlOjpDcmVkZW50aWFsc0NvbnRhaW5lcjo6Z2V0KToKKyAgICAgICAgKFdlYkNvcmU6OkNy
ZWRlbnRpYWxzQ29udGFpbmVyOjppc0NyZWF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDcmVkZW50
aWFsc0NvbnRhaW5lcjo6c2NvcGUpOiBEZWxldGVkLgorICAgICAgICAqIE1vZHVsZXMvY3JlZGVu
dGlhbG1hbmFnZW1lbnQvQ3JlZGVudGlhbHNDb250YWluZXIuaDoKKyAgICAgICAgKiBNb2R1bGVz
L3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlIGNv
bnN0KToKKyAgICAgICAgKiBNb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRv
ci5oOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
Q2xpZW50Lmg6CisKIDIwMjItMDMtMDggIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bn
bm9tZS5vcmc+CiAKICAgICAgICAgW0dUS10gU3luYyBndGstb3ZlcmxheS1zY3JvbGxpbmcgc2V0
dGluZyB0byB3ZWIgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cg
Yi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCBlZWI5OGY5MTE0MzIzYTlmZWUwOWE5ZDBh
MjQ1ZTM5N2Q3NTBhMmQwLi45MjNlZWEyYTk3ZjNlNjg2NTg2ZjAwYmY3ZTZlMzk5ZmZjMmQ5ZDZh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM1IEBACisyMDIyLTAzLTA4ICBKIFBhc2NvZSAgPGpfcGFz
Y29lQGFwcGxlLmNvbT4KKworICAgICAgICBbV2ViQXV0aG5dIFVzaW5nIFdlYkF1dGhuIHdpdGhp
biBjcm9zcy1vcmlnaW4gaWZyYW1lIGVsZW1lbnRzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjIyNDAKKyAgICAgICAgcmRhcjovL3Byb2JsZW0vNzQ4
MzA3NDgKKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAgIFRo
aXMgcGF0Y2ggcmVsYXhlcyB0aGUgcmVxdWlyZW1lbnQgdG8gcGVyZm9ybSBhIFdlYiBBdXRoZW50
aWNhdGlvbiBhc3NlcnRpb24KKyAgICAgICAgaW5zaWRlIGFuIGktZnJhbWUgd2l0aCB0aGUgInB1
YmxpY2tleS1jcmVkZW50aWFscy1nZXQiIGZlYXR1cmUgcG9saWN5IGZyb20KKyAgICAgICAgJ3Nh
bWUtc2l0ZScgdG8gJ2Nyb3NzLW9yaWdpbiB3aXRoIGNvbnNlbnQnLgorCisgICAgICAgIFRoZXJl
IGlzIGFuIGFkZGl0aW9uYWwgcmVxdWlyZW1lbnQgdGhhdCB0aGVyZSBpcyBvbmx5IGEgc2luZ2xl
IGNyb3NzLW9yaWdpbgorICAgICAgICBwYXJlbnQgdG8gcHJlc2VudCB0byB0aGUgdXNlciBpbiB0
aGUgcHJvbXB0LiBJZiB3ZSBjYW4ndCBkaXNwbGF5IHRoZSB1cGRhdGVkCisgICAgICAgIHByb21w
dCwgdGhlbiBjcm9zcy1vcmlnaW4gYXNzZXJ0aW9ucyBhcmUgbm90IGFsbG93ZWQuIAorCisgICAg
ICAgICogUGxhdGZvcm0vc3BpL0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0NvY29hL1dlYkF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvclByb3h5Lm1tOgorICAgICAgICAoV2ViS2l0Ojpjb25maWd1cmVBc3Nl
cnRpb25PcHRpb25zKToKKyAgICAgICAgKFdlYktpdDo6Y29uZmlndXJhdGlvbkFzc2VydGlvblJl
cXVlc3RDb250ZXh0KToKKyAgICAgICAgKFdlYktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHk6OmNvbnRleHRGb3JSZXF1ZXN0KToKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94
eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5
OjptYWtlQ3JlZGVudGlhbCk6CisgICAgICAgIChXZWJLaXQ6OldlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5OjpnZXRBc3NlcnRpb24pOgorICAgICAgICAoV2ViS2l0OjpXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVzdCk6CisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lmg6
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JD
b29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluOgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQXV0
aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpnZXRBc3NlcnRpb24pOgorICAgICAg
ICAqIFdlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yLmg6CisKIDIwMjItMDMtMDggIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Vi
a2l0Lm9yZz4KIAogICAgICAgICBSZW1vdmUgdW5uZWVkZWQgQXN5bmMga2V5d29yZHMgaW4gbWVz
c2FnZXMuaW4gZmlsZXMgYWZ0ZXIgcjI5MDkwMwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
TW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5lci5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcAppbmRleCA5NjA2MDhjYTEzNWY4YWM2OTU2ZmE5Y2YyM2YyM2E4OTU0ZTQ4YWM1
Li43M2Y2OTcxZDIwZmZhNDVkOWIwOTY3ZTRkOTQ4MjAzMDk2ZDNmNTk0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29u
dGFpbmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2Vt
ZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmNwcApAQCAtNDYsMjcgKzQ2LDI3IEBAIENyZWRlbnRp
YWxzQ29udGFpbmVyOjpDcmVkZW50aWFsc0NvbnRhaW5lcihXZWFrUHRyPERvY3VtZW50PiYmIGRv
Y3VtZW50KQogewogfQogCi1XZWJBdXRobjo6U2NvcGUgQ3JlZGVudGlhbHNDb250YWluZXI6OnNj
b3BlKCkKK1Njb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQgQ3JlZGVudGlhbHNDb250YWluZXI6OnNj
b3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQoKSBjb25zdAogewogICAgIGlmICghbV9kb2N1bWVudCkK
LSAgICAgICAgcmV0dXJuIFdlYkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW47CisgICAgICAgIHJl
dHVybiBzdGQ6OnBhaXIgeyBXZWJBdXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luLCBzdGQ6Om51bGxv
cHQgfTsKIAotICAgIGJvb2wgaXNTYW1lT3JpZ2luID0gdHJ1ZTsKICAgICBib29sIGlzU2FtZVNp
dGUgPSB0cnVlOwogICAgIGF1dG8mIG9yaWdpbiA9IG1fZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2lu
KCk7CiAgICAgYXV0byYgdXJsID0gbV9kb2N1bWVudC0+dXJsKCk7CisgICAgc3RkOjpvcHRpb25h
bDxTZWN1cml0eU9yaWdpbkRhdGE+IGNyb3NzT3JpZ2luUGFyZW50OwogICAgIGZvciAoYXV0byog
ZG9jdW1lbnQgPSBtX2RvY3VtZW50LT5wYXJlbnREb2N1bWVudCgpOyBkb2N1bWVudDsgZG9jdW1l
bnQgPSBkb2N1bWVudC0+cGFyZW50RG9jdW1lbnQoKSkgewogICAgICAgICBpZiAoIW9yaWdpbi5p
c1NhbWVPcmlnaW5Eb21haW4oZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpICYmICFhcmVSZWdp
c3RyYWJsZURvbWFpbnNFcXVhbCh1cmwsIGRvY3VtZW50LT51cmwoKSkpCiAgICAgICAgICAgICBp
c1NhbWVTaXRlID0gZmFsc2U7Ci0gICAgICAgIGlmICghb3JpZ2luLmlzU2FtZU9yaWdpbkFzKGRv
Y3VtZW50LT5zZWN1cml0eU9yaWdpbigpKSkKLSAgICAgICAgICAgIGlzU2FtZU9yaWdpbiA9IGZh
bHNlOworICAgICAgICBpZiAoIWNyb3NzT3JpZ2luUGFyZW50ICYmICFvcmlnaW4uaXNTYW1lT3Jp
Z2luQXMoZG9jdW1lbnQtPnNlY3VyaXR5T3JpZ2luKCkpKQorICAgICAgICAgICAgY3Jvc3NPcmln
aW5QYXJlbnQgPSBvcmlnaW4uZGF0YSgpOwogICAgIH0KIAotICAgIGlmIChpc1NhbWVPcmlnaW4p
Ci0gICAgICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OlNhbWVPcmlnaW47CisgICAgaWYgKCFj
cm9zc09yaWdpblBhcmVudCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6cGFpciB7IFdlYkF1dGhuOjpT
Y29wZTo6U2FtZU9yaWdpbiwgc3RkOjpudWxsb3B0IH07CiAgICAgaWYgKGlzU2FtZVNpdGUpCi0g
ICAgICAgIHJldHVybiBXZWJBdXRobjo6U2NvcGU6OlNhbWVTaXRlOwotICAgIHJldHVybiBXZWJB
dXRobjo6U2NvcGU6OkNyb3NzT3JpZ2luOworICAgICAgICByZXR1cm4gc3RkOjpwYWlyIHsgV2Vi
QXV0aG46OlNjb3BlOjpTYW1lU2l0ZSwgc3RkOjpudWxsb3B0IH07CisgICAgcmV0dXJuIHN0ZDo6
cGFpciB7IFdlYkF1dGhuOjpTY29wZTo6Q3Jvc3NPcmlnaW4sIGNyb3NzT3JpZ2luUGFyZW50IH07
CiB9CiAKIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmdldChDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmJiBvcHRpb25zLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCkBAIC05OCw3ICs5
OCw3IEBAIHZvaWQgQ3JlZGVudGlhbHNDb250YWluZXI6OmdldChDcmVkZW50aWFsUmVxdWVzdE9w
dGlvbnMmJiBvcHRpb25zLCBDcmVkZW50aWFsUHJvCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
LSAgICBtX2RvY3VtZW50LT5wYWdlKCktPmF1dGhlbnRpY2F0b3JDb29yZGluYXRvcigpLmRpc2Nv
dmVyRnJvbUV4dGVybmFsU291cmNlKCptX2RvY3VtZW50LCBXVEZNb3ZlKG9wdGlvbnMpLCBzY29w
ZSgpLCBXVEZNb3ZlKHByb21pc2UpKTsKKyAgICBtX2RvY3VtZW50LT5wYWdlKCktPmF1dGhlbnRp
Y2F0b3JDb29yZGluYXRvcigpLmRpc2NvdmVyRnJvbUV4dGVybmFsU291cmNlKCptX2RvY3VtZW50
LCBXVEZNb3ZlKG9wdGlvbnMpLCBzY29wZUFuZENyb3NzT3JpZ2luUGFyZW50KCksIFdURk1vdmUo
cHJvbWlzZSkpOwogfQogCiB2b2lkIENyZWRlbnRpYWxzQ29udGFpbmVyOjpzdG9yZShjb25zdCBC
YXNpY0NyZWRlbnRpYWwmLCBDcmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpCkBAIC0xMzMsNyAr
MTMzLDcgQEAgdm9pZCBDcmVkZW50aWFsc0NvbnRhaW5lcjo6aXNDcmVhdGUoQ3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyYmIG9wdGlvbnMsIENyZWRlbnQKICAgICAgICAgcmV0dXJuOwogICAgIH0K
IAotICAgIG1fZG9jdW1lbnQtPnBhZ2UoKS0+YXV0aGVudGljYXRvckNvb3JkaW5hdG9yKCkuY3Jl
YXRlKCptX2RvY3VtZW50LCBvcHRpb25zLnB1YmxpY0tleS52YWx1ZSgpLCBzY29wZSgpLCBXVEZN
b3ZlKG9wdGlvbnMuc2lnbmFsKSwgV1RGTW92ZShwcm9taXNlKSk7CisgICAgbV9kb2N1bWVudC0+
cGFnZSgpLT5hdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IoKS5jcmVhdGUoKm1fZG9jdW1lbnQsIG9w
dGlvbnMucHVibGljS2V5LnZhbHVlKCksIHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQoKS5maXJz
dCwgV1RGTW92ZShvcHRpb25zLnNpZ25hbCksIFdURk1vdmUocHJvbWlzZSkpOwogfQogCiB2b2lk
IENyZWRlbnRpYWxzQ29udGFpbmVyOjpwcmV2ZW50U2lsZW50QWNjZXNzKERPTVByb21pc2VEZWZl
cnJlZDx2b2lkPiYmIHByb21pc2UpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9N
b2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFpbmVyLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL2NyZWRlbnRpYWxtYW5hZ2VtZW50L0NyZWRlbnRpYWxzQ29udGFp
bmVyLmgKaW5kZXggOWE2YjEyZGRjMjIyOThmNDdjMWUzMjk2MmI2YTZjZjM5ZWI1ZDkxMi4uZTMx
NzFiNTAxNzQwYTI4MTZiYjNhMTBkOWZkMDQ3YWVkOWY2NjcwOCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy9jcmVkZW50aWFsbWFuYWdlbWVudC9DcmVkZW50aWFsc0NvbnRhaW5l
ci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvY3JlZGVudGlhbG1hbmFnZW1lbnQvQ3Jl
ZGVudGlhbHNDb250YWluZXIuaApAQCAtNTgsNyArNTgsNyBAQCBwdWJsaWM6CiBwcml2YXRlOgog
ICAgIENyZWRlbnRpYWxzQ29udGFpbmVyKFdlYWtQdHI8RG9jdW1lbnQ+JiYpOwogCi0gICAgV2Vi
QXV0aG46OlNjb3BlIHNjb3BlKCk7CisgICAgU2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCBzY29w
ZUFuZENyb3NzT3JpZ2luUGFyZW50KCkgY29uc3Q7CiAKICAgICBXZWFrUHRyPERvY3VtZW50PiBt
X2RvY3VtZW50OwogfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0
aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmNwcAppbmRleCBhZDIwYzBhNTgyNDI4
ZDc4MzFlOTRiZTVlODUwNGIwMWYxZjIwMzFhLi5iYzViZWRmNzM0MjlhMGI1MmVkYzBlZDFkNGU3
NDVhOTM5OGZlZTk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhu
L0F1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuY3BwCkBAIC0xODQsNyArMTg0LDcg
QEAgdm9pZCBBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6OmNyZWF0ZShjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQsIGNvbnN0IFB1YmxpY0tleUMKICAgICBtX2NsaWVudC0+bWFrZUNyZWRlbnRpYWwo
KmZyYW1lLCBjYWxsZXJPcmlnaW4sIGNsaWVudERhdGFKc29uSGFzaCwgb3B0aW9ucywgV1RGTW92
ZShjYWxsYmFjaykpOwogfQogCi12b2lkIEF1dGhlbnRpY2F0b3JDb29yZGluYXRvcjo6ZGlzY292
ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50LCBDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMmJiByZXF1ZXN0T3B0aW9ucywgV2ViQXV0aG46OlNjb3BlIHNjb3BlLCBD
cmVkZW50aWFsUHJvbWlzZSYmIHByb21pc2UpIGNvbnN0Cit2b2lkIEF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6ZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2UoY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50LCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiByZXF1ZXN0T3B0aW9ucywgY29uc3QgU2Nv
cGVBbmRDcm9zc09yaWdpblBhcmVudCYgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCwgQ3JlZGVu
dGlhbFByb21pc2UmJiBwcm9taXNlKSBjb25zdAogewogICAgIHVzaW5nIG5hbWVzcGFjZSBBdXRo
ZW50aWNhdG9yQ29vcmRpbmF0b3JJbnRlcm5hbDsKIApAQCAtMTk1LDggKzE5NSw4IEBAIHZvaWQg
QXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25z
dCBEb2N1bWVudCYgZG9jdW1lCiAgICAgLy8gVGhlIGZvbGxvd2luZyBpbXBsZW1lbnRzIGh0dHBz
Oi8vd3d3LnczLm9yZy9UUi93ZWJhdXRobi8jY3JlYXRlQ3JlZGVudGlhbCBhcyBvZiA1IERlY2Vt
YmVyIDIwMTcuCiAgICAgLy8gU3RlcCAxLCAzLCAxMyBhcmUgaGFuZGxlZCBieSB0aGUgY2FsbGVy
LgogICAgIC8vIFN0ZXAgMi4KLSAgICAvLyBUaGlzIGltcGxlbWVudHMgaHR0cHM6Ly93d3cudzMu
b3JnL1RSL3dlYmF1dGhuLTIvI3NjdG4tcGVybWlzc2lvbnMtcG9saWN5IGV4Y2VwdCBvbmx5IHNh
bWUtc2l0ZSwgY3Jvc3Mtb3JpZ2luIGlzIHBlcm1pdHRlZC4KLSAgICBpZiAoc2NvcGUgIT0gV2Vi
QXV0aG46OlNjb3BlOjpTYW1lT3JpZ2luICYmICEoc2NvcGUgPT0gV2ViQXV0aG46OlNjb3BlOjpT
YW1lU2l0ZSAmJiBpc0ZlYXR1cmVQb2xpY3lBbGxvd2VkQnlEb2N1bWVudEFuZEFsbE93bmVycyhG
ZWF0dXJlUG9saWN5OjpUeXBlOjpQdWJsaWNrZXlDcmVkZW50aWFsc0dldFJ1bGUsIGRvY3VtZW50
LCBMb2dGZWF0dXJlUG9saWN5RmFpbHVyZTo6Tm8pKSkgeworICAgIC8vIFRoaXMgaW1wbGVtZW50
cyBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXV0aG4tMi8jc2N0bi1wZXJtaXNzaW9ucy1wb2xp
Y3kKKyAgICBpZiAoc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudC5maXJzdCAhPSBXZWJBdXRobjo6
U2NvcGU6OlNhbWVPcmlnaW4gJiYgIWlzRmVhdHVyZVBvbGljeUFsbG93ZWRCeURvY3VtZW50QW5k
QWxsT3duZXJzKEZlYXR1cmVQb2xpY3k6OlR5cGU6OlB1YmxpY2tleUNyZWRlbnRpYWxzR2V0UnVs
ZSwgZG9jdW1lbnQsIExvZ0ZlYXR1cmVQb2xpY3lGYWlsdXJlOjpObykpIHsKICAgICAgICAgcHJv
bWlzZS5yZWplY3QoRXhjZXB0aW9uIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0
aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0cyBhbmNlc3RvcnMuIl9zIH0pOwogICAg
ICAgICByZXR1cm47CiAgICAgfQpAQCAtMjMwLDcgKzIzMCw3IEBAIHZvaWQgQXV0aGVudGljYXRv
ckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShjb25zdCBEb2N1bWVudCYg
ZG9jdW1lCiAgICAgfQogCiAgICAgLy8gU3RlcCAxMC0xMi4KLSAgICBhdXRvIGNsaWVudERhdGFK
c29uID0gYnVpbGRDbGllbnREYXRhSnNvbihDbGllbnREYXRhVHlwZTo6R2V0LCBvcHRpb25zLmNo
YWxsZW5nZSwgY2FsbGVyT3JpZ2luLCBzY29wZSk7CisgICAgYXV0byBjbGllbnREYXRhSnNvbiA9
IGJ1aWxkQ2xpZW50RGF0YUpzb24oQ2xpZW50RGF0YVR5cGU6OkdldCwgb3B0aW9ucy5jaGFsbGVu
Z2UsIGNhbGxlck9yaWdpbiwgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudC5maXJzdCk7CiAgICAg
YXV0byBjbGllbnREYXRhSnNvbkhhc2ggPSBidWlsZENsaWVudERhdGFKc29uSGFzaChjbGllbnRE
YXRhSnNvbik7CiAKICAgICAvLyBTdGVwIDQsIDE0LTE5LgpAQCAtMjU0LDcgKzI1NCw3IEBAIHZv
aWQgQXV0aGVudGljYXRvckNvb3JkaW5hdG9yOjpkaXNjb3ZlckZyb21FeHRlcm5hbFNvdXJjZShj
b25zdCBEb2N1bWVudCYgZG9jdW1lCiAgICAgICAgIHByb21pc2UucmVqZWN0KGV4Y2VwdGlvbi50
b0V4Y2VwdGlvbigpKTsKICAgICB9OwogICAgIC8vIEFzeW5jIG9wZXJhdGlvbnMgYXJlIGRpc3Bh
dGNoZWQgYW5kIGhhbmRsZWQgaW4gdGhlIG1lc3Nlbmdlci4KLSAgICBtX2NsaWVudC0+Z2V0QXNz
ZXJ0aW9uKCpmcmFtZSwgY2FsbGVyT3JpZ2luLCBjbGllbnREYXRhSnNvbkhhc2gsIG9wdGlvbnMs
IHJlcXVlc3RPcHRpb25zLm1lZGlhdGlvbiwgV1RGTW92ZShjYWxsYmFjaykpOworICAgIG1fY2xp
ZW50LT5nZXRBc3NlcnRpb24oKmZyYW1lLCBjYWxsZXJPcmlnaW4sIGNsaWVudERhdGFKc29uSGFz
aCwgb3B0aW9ucywgcmVxdWVzdE9wdGlvbnMubWVkaWF0aW9uLCBzY29wZUFuZENyb3NzT3JpZ2lu
UGFyZW50LCBXVEZNb3ZlKGNhbGxiYWNrKSk7CiB9CiAKIHZvaWQgQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yOjppc1VzZXJWZXJpZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoRE9N
UHJvbWlzZURlZmVycmVkPElETEJvb2xlYW4+JiYgcHJvbWlzZSkgY29uc3QKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9y
LmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGlu
YXRvci5oCmluZGV4IDRkOWFiYTY4ZTg4ODMwNTA4OWJmZTE5MzBjMzUwOGNhZGY1M2ZlZWQuLjcw
NTYzNTY4ZDkyYWY1ZTM3YzA4ZmFjZDI0MTk2YmFjMjg1MWNlMTUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0
b3IuaApAQCAtNDUsMTAgKzQ1LDEyIEBAIGNsYXNzIERvY3VtZW50Owogc3RydWN0IFB1YmxpY0tl
eUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJl
cXVlc3RPcHRpb25zOwogc3RydWN0IENyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczsKK3N0cnVjdCBT
ZWN1cml0eU9yaWdpbkRhdGE7CiAKIHRlbXBsYXRlPHR5cGVuYW1lIElETFR5cGU+IGNsYXNzIERP
TVByb21pc2VEZWZlcnJlZDsKIAogdXNpbmcgQ3JlZGVudGlhbFByb21pc2UgPSBET01Qcm9taXNl
RGVmZXJyZWQ8SURMTnVsbGFibGU8SURMSW50ZXJmYWNlPEJhc2ljQ3JlZGVudGlhbD4+PjsKK3Vz
aW5nIFNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQgPSBzdGQ6OnBhaXI8V2ViQXV0aG46OlNjb3Bl
LCBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4+OwogCiBjbGFzcyBBdXRoZW50aWNh
dG9yQ29vcmRpbmF0b3IgZmluYWwgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAt
NTksNyArNjEsNyBAQCBwdWJsaWM6CiAKICAgICAvLyBUaGUgZm9sbG93aW5nIG1ldGhvZHMgaW1w
bGVtZW50IHN0YXRpYyBtZXRob2RzIG9mIFB1YmxpY0tleUNyZWRlbnRpYWwuCiAgICAgdm9pZCBj
cmVhdGUoY29uc3QgRG9jdW1lbnQmLCBjb25zdCBQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25P
cHRpb25zJiwgV2ViQXV0aG46OlNjb3BlLCBSZWZQdHI8QWJvcnRTaWduYWw+JiYsIENyZWRlbnRp
YWxQcm9taXNlJiYpIGNvbnN0OwotICAgIHZvaWQgZGlzY292ZXJGcm9tRXh0ZXJuYWxTb3VyY2Uo
Y29uc3QgRG9jdW1lbnQmLCBDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmJiwgV2ViQXV0aG46OlNj
b3BlLCBDcmVkZW50aWFsUHJvbWlzZSYmKSBjb25zdDsKKyAgICB2b2lkIGRpc2NvdmVyRnJvbUV4
dGVybmFsU291cmNlKGNvbnN0IERvY3VtZW50JiwgQ3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYs
IGNvbnN0IFNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQmLCBDcmVkZW50aWFsUHJvbWlzZSYmKSBj
b25zdDsKICAgICB2b2lkIGlzVXNlclZlcmlmeWluZ1BsYXRmb3JtQXV0aGVudGljYXRvckF2YWls
YWJsZShET01Qcm9taXNlRGVmZXJyZWQ8SURMQm9vbGVhbj4mJikgY29uc3Q7CiAgICAgdm9pZCBp
c0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKERPTVByb21pc2VEZWZlcnJlZDxJRExCb29s
ZWFuPiYmKSBjb25zdDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQuaCBiL1NvdXJjZS9XZWJDb3JlL01v
ZHVsZXMvd2ViYXV0aG4vQXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xpZW50LmgKaW5kZXggM2Ji
NjVhODZiOGYzM2RjYjM2MjQ2Yjg5Y2VmZDk2YWRiMjdiOTNiMS4uNjY1MmU4ZTJhNGJlMzIwODc5
YTI0YjkzZTAwMDc0YjE4MmFjYjc0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdXRobi9BdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JDbGllbnQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1dGhuL0F1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudC5o
CkBAIC0yNywxMCArMjcsMTUgQEAKIAogI2lmIEVOQUJMRShXRUJfQVVUSE4pCiAKKyNpbmNsdWRl
ICJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCIKICNpbmNsdWRlICJFeGNlcHRpb25EYXRhLmgi
CiAjaW5jbHVkZSA8d3RmL0NvbXBsZXRpb25IYW5kbGVyLmg+CiAjaW5jbHVkZSA8d3RmL1dlYWtQ
dHIuaD4KIAorbmFtZXNwYWNlIFdlYkF1dGhuIHsKK2VudW0gY2xhc3MgU2NvcGU7Cit9CisKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAogY2xhc3MgRGVmZXJyZWRQcm9taXNlOwpAQCAtNDMsNiArNDgs
NyBAQCBlbnVtIGNsYXNzIE1lZGlhdGlvblJlcXVpcmVtZW50IDogdWludDhfdDsKIHN0cnVjdCBB
dXRoZW50aWNhdG9yUmVzcG9uc2VEYXRhOwogc3RydWN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVh
dGlvbk9wdGlvbnM7CiBzdHJ1Y3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOwor
c3RydWN0IFNlY3VyaXR5T3JpZ2luRGF0YTsKIAogdXNpbmcgUmVxdWVzdENvbXBsZXRpb25IYW5k
bGVyID0gQ29tcGxldGlvbkhhbmRsZXI8dm9pZChXZWJDb3JlOjpBdXRoZW50aWNhdG9yUmVzcG9u
c2VEYXRhJiYsIFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JBdHRhY2htZW50LCBXZWJDb3JlOjpFeGNl
cHRpb25EYXRhJiYpPjsKIHVzaW5nIFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXIgPSBDb21wbGV0aW9u
SGFuZGxlcjx2b2lkKGJvb2wpPjsKQEAgLTU1LDcgKzYxLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgfkF1dGhlbnRpY2F0b3JDb29yZGluYXRvckNsaWVudCgpID0gZGVmYXVsdDsKIAogICAgIHZp
cnR1YWwgdm9pZCBtYWtlQ3JlZGVudGlhbChjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3Jp
Z2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENy
ZWF0aW9uT3B0aW9ucyYsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSA9IDA7Ci0gICAgdmly
dHVhbCB2b2lkIGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNvbnN0IFNlY3VyaXR5T3JpZ2lu
JiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVl
c3RPcHRpb25zJiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxl
ciYmKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIGdldEFzc2VydGlvbihjb25zdCBGcmFtZSYsIGNv
bnN0IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3QgUHVibGlj
S2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiwgTWVkaWF0aW9uUmVxdWlyZW1lbnQsIGNvbnN0
IFNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQmLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJikg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc0NvbmRpdGlvbmFsTWVkaWF0aW9uQXZhaWxhYmxlKFF1
ZXJ5Q29tcGxldGlvbkhhbmRsZXImJikgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBpc1VzZXJWZXJp
ZnlpbmdQbGF0Zm9ybUF1dGhlbnRpY2F0b3JBdmFpbGFibGUoUXVlcnlDb21wbGV0aW9uSGFuZGxl
ciYmKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3BpL0NvY29h
L0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmggYi9Tb3VyY2UvV2ViS2l0L1BsYXRmb3Jt
L3NwaS9Db2NvYS9BdXRoZW50aWNhdGlvblNlcnZpY2VzQ29yZVNQSS5oCmluZGV4IGYzYzgwZWIy
MGNlODdlNjZmMzM0MjZkOTk0YjEyN2YzYjQ5NjQ5ZGQuLmUwMjc2ZmM3MTFiMWE5YTgyYTM3ODU5
MTJkNTU2NGYwMjkzODI1NTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvUGxhdGZvcm0vc3Bp
L0NvY29hL0F1dGhlbnRpY2F0aW9uU2VydmljZXNDb3JlU1BJLmgKKysrIGIvU291cmNlL1dlYktp
dC9QbGF0Zm9ybS9zcGkvQ29jb2EvQXV0aGVudGljYXRpb25TZXJ2aWNlc0NvcmVTUEkuaApAQCAt
MTY3LDYgKzE2Nyw4IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBBU0NQdWJsaWNLZXlD
cmVkZW50aWFsS2luZCkgewogCiBAcHJvcGVydHkgKG5vbmF0b21pYywgbnVsbGFibGUsIHJlYWRv
bmx5LCBjb3B5KSBOU0FycmF5PEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlwdG9yICo+ICph
bGxvd2VkQ3JlZGVudGlhbHM7CiAKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBudWxsYWJsZSwgY29w
eSkgTlNTdHJpbmcgKmRlc3RpbmF0aW9uU2l0ZUZvckNyb3NzU2l0ZUFzc2VydGlvbjsKKwogQGVu
ZAogCiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9fV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsLm1tIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KaW5kZXggODkwM2U5NDAzMGZkMjYyMGYz
ODI5MDdmYTgzYTU3YTZjMWQwNWE1Yi4uNGQ3Yzc2ZDgzOGViM2UxODI1ZjgzMWE4MDdmN2U0ODVl
MTgwOWU4MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL19X
S1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
QVBJL0NvY29hL19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwubW0KQEAgLTgyMiw3ICs4MjIsNyBA
QCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvblJlc3BvbnNlPiB3
a0F1dGhlbnRpY2F0b3JBdHRlc3RhdGlvbgogICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vy
cm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6ZXhjZXB0aW9uLmNvZGUgdXNl
ckluZm86QHsgTlNMb2NhbGl6ZWREZXNjcmlwdGlvbktleTogZXhjZXB0aW9uLm1lc3NhZ2UgfV0p
OwogICAgICAgICB9KTsKICAgICB9OwotICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1v
dmUoaGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlv
bk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50
aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7
IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxs
YmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFtfV0tX
ZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlvbk9wdGlvbnNXaXRoT3B0
aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVz
dWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRydWUsIFN0cmlu
ZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGNhbGxi
YWNrKSk7CiAjZW5kaWYKIH0KIApAQCAtODM2LDcgKzgzNiw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8
X1dLQXV0aGVudGljYXRvckF0dGVzdGF0aW9uUmVzcG9uc2U+IHdrQXV0aGVudGljYXRvckF0dGVz
dGF0aW9uCiAgICAgICAgICAgICBoYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JXaXRoRG9tYWlu
OldLRXJyb3JEb21haW4gY29kZTpleGNlcHRpb24uY29kZSB1c2VySW5mbzpAeyBOU0xvY2FsaXpl
ZERlc2NyaXB0aW9uS2V5OiBleGNlcHRpb24ubWVzc2FnZSB9XSk7CiAgICAgICAgIH0pOwogICAg
IH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1ZXN0KHsgdmVjdG9yRnJvbU5TRGF0YShjbGllbnRE
YXRhSGFzaCksIFtfV0tXZWJBdXRoZW50aWNhdGlvblBhbmVsIGNvbnZlcnRUb0NvcmVDcmVhdGlv
bk9wdGlvbnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50
aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7
IH0sIHRydWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxs
YmFjaykpOworICAgIF9wYW5lbC0+aGFuZGxlUmVxdWVzdCh7IHZlY3RvckZyb21OU0RhdGEoY2xp
ZW50RGF0YUhhc2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlQ3Jl
YXRpb25PcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6V2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9w
dCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxv
cHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogI2VuZGlmCiB9CiAKQEAgLTg4Niw3ICs4ODYsNyBA
QCBzdGF0aWMgUmV0YWluUHRyPF9XS0F1dGhlbnRpY2F0b3JBc3NlcnRpb25SZXNwb25zZT4gd2tB
dXRoZW50aWNhdG9yQXNzZXJ0aW9uUmVzcAogICAgICAgICAgICAgaGFuZGxlcihuaWwsIFtOU0Vy
cm9yIGVycm9yV2l0aERvbWFpbjpXS0Vycm9yRG9tYWluIGNvZGU6V0tFcnJvclVua25vd24gdXNl
ckluZm86bmlsXSk7CiAgICAgICAgIH0pOwogICAgIH07Ci0gICAgX3BhbmVsLT5oYW5kbGVSZXF1
ZXN0KHsgV1RGTW92ZShoYXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgY29udmVydFRv
Q29yZVJlcXVlc3RPcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIsIFdlYktpdDo6
V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6
bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0IH0sIFdU
Rk1vdmUoY2FsbGJhY2spKTsKKyAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyBXVEZNb3ZlKGhh
c2gpLCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBjb252ZXJ0VG9Db3JlUmVxdWVzdE9wdGlv
bnNXaXRoT3B0aW9uczpvcHRpb25zXSwgbnVsbHB0ciwgV2ViS2l0OjpXZWJBdXRoZW50aWNhdGlv
blBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHRy
dWUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHN0ZDo6bnVsbG9wdCB9LCBXVEZN
b3ZlKGNhbGxiYWNrKSk7CiAjZW5kaWYKIH0KIApAQCAtOTAwLDcgKzkwMCw3IEBAIHN0YXRpYyBS
ZXRhaW5QdHI8X1dLQXV0aGVudGljYXRvckFzc2VydGlvblJlc3BvbnNlPiB3a0F1dGhlbnRpY2F0
b3JBc3NlcnRpb25SZXNwCiAgICAgICAgICAgICBoYW5kbGVyKG5pbCwgW05TRXJyb3IgZXJyb3JX
aXRoRG9tYWluOldLRXJyb3JEb21haW4gY29kZTpXS0Vycm9yVW5rbm93biB1c2VySW5mbzpuaWxd
KTsKICAgICAgICAgfSk7CiAgICAgfTsKLSAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2ZWN0
b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwg
Y29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxwdHIs
IFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxw
dHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxs
b3B0IH0sIFdURk1vdmUoY2FsbGJhY2spKTsKKyAgICBfcGFuZWwtPmhhbmRsZVJlcXVlc3QoeyB2
ZWN0b3JGcm9tTlNEYXRhKGNsaWVudERhdGFIYXNoKSwgW19XS1dlYkF1dGhlbnRpY2F0aW9uUGFu
ZWwgY29udmVydFRvQ29yZVJlcXVlc3RPcHRpb25zV2l0aE9wdGlvbnM6b3B0aW9uc10sIG51bGxw
dHIsIFdlYktpdDo6V2ViQXV0aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51
bGxwdHIsIHN0ZDo6bnVsbG9wdCwgeyB9LCB0cnVlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpu
dWxsb3B0LCBzdGQ6Om51bGxvcHQgfSwgV1RGTW92ZShjYWxsYmFjaykpOwogI2VuZGlmCiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL0Nv
Y29hL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5Lm1tIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkubW0KaW5kZXggNmQ5YzA4ZDEwNThmOGI5YTUzM2VlOWM3OTIxNTUzNGE5NzU0N2Rl
My4uYTZkYmJiZGU2NzZiOTI2M2UwOTc3NDVhNGViNDhmMjU5YWQ1MWJlNyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVu
dGljYXRvckNvb3JkaW5hdG9yUHJveHkubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vQ29jb2EvV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHku
bW0KQEAgLTE3Miw3ICsxNzIsMTcgQEAgc3RhdGljIGlubGluZSBSZXRhaW5QdHI8QVNDV2ViQXV0
aGVudGljYXRpb25FeHRlbnNpb25zQ2xpZW50SW5wdXRzPiB0b0FTQ0V4dGVuc2kKICAgICByZXR1
cm4gbmlsOwogfQogCi1zdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4
dD4gY29uZmlndXJlUmVnaXN0cmF0aW9uUmVxdWVzdENvbnRleHQoY29uc3QgUHVibGljS2V5Q3Jl
ZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gpCitz
dGF0aWMgaW5saW5lIHZvaWQgc2V0R2xvYmFsRnJhbWVJREZvckNvbnRleHQoUmV0YWluUHRyPEFT
Q0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gcmVxdWVzdENvbnRleHQsIHN0ZDo6b3B0aW9uYWw8
V2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBnbG9iYWxGcmFtZUlEKQoreworICAgIGlm
IChnbG9iYWxGcmFtZUlEICYmIFtyZXF1ZXN0Q29udGV4dCByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHNldEdsb2JhbEZyYW1lSUQ6KV0pIHsKKyAgICAgICAgYXV0byBhc2NHbG9iYWxGcmFt
ZUlEID0gYWRvcHROUyhbYWxsb2NBU0NHbG9iYWxGcmFtZUlkZW50aWZpZXJJbnN0YW5jZSgpIGlu
aXRdKTsKKyAgICAgICAgYXNjR2xvYmFsRnJhbWVJRC5nZXQoKS53ZWJGcmFtZUlEID0gW05TTnVt
YmVyIG51bWJlcldpdGhVbnNpZ25lZExvbmc6Z2xvYmFsRnJhbWVJRC0+ZnJhbWVJRC50b1VJbnQ2
NCgpXTsKKyAgICAgICAgYXNjR2xvYmFsRnJhbWVJRC5nZXQoKS53ZWJQYWdlSUQgPSBbTlNOdW1i
ZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZzpnbG9iYWxGcmFtZUlELT5wYWdlSUQudG9VSW50NjQo
KV07CisgICAgICAgIHJlcXVlc3RDb250ZXh0LmdldCgpLmdsb2JhbEZyYW1lSUQgPSBhc2NHbG9i
YWxGcmFtZUlELmdldCgpOworICAgIH0KK30KKworc3RhdGljIFJldGFpblB0cjxBU0NDcmVkZW50
aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJlZ2lzdHJhdGlvblJlcXVlc3RDb250ZXh0KGNv
bnN0IFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmIG9wdGlvbnMsIGNvbnN0IFZl
Y3Rvcjx1aW50OF90PiYgaGFzaCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpHbG9iYWxGcmFtZUlk
ZW50aWZpZXI+IGdsb2JhbEZyYW1lSUQpCiB7CiAgICAgQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBl
cyByZXF1ZXN0VHlwZXMgPSBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVQbGF0Zm9ybVB1YmxpY0tl
eVJlZ2lzdHJhdGlvbiB8IEFTQ0NyZWRlbnRpYWxSZXF1ZXN0VHlwZVNlY3VyaXR5S2V5UHVibGlj
S2V5UmVnaXN0cmF0aW9uOwogCkBAIC0xOTMsNiArMjAzLDcgQEAgc3RhdGljIFJldGFpblB0cjxB
U0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJlZ2lzdHJhdGlvblJlcXVlc3RD
b250ZXgKIAogICAgIGF1dG8gcmVxdWVzdENvbnRleHQgPSBhZG9wdE5TKFthbGxvY0FTQ0NyZWRl
bnRpYWxSZXF1ZXN0Q29udGV4dEluc3RhbmNlKCkgaW5pdFdpdGhSZXF1ZXN0VHlwZXM6cmVxdWVz
dFR5cGVzXSk7CiAgICAgW3JlcXVlc3RDb250ZXh0IHNldFJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6
b3B0aW9ucy5ycC5pZF07CisgICAgc2V0R2xvYmFsRnJhbWVJREZvckNvbnRleHQocmVxdWVzdENv
bnRleHQsIGdsb2JhbEZyYW1lSUQpOwogCiAgICAgYXV0byBjcmVkZW50aWFsQ3JlYXRpb25PcHRp
b25zID0gYWRvcHROUyhbYWxsb2NBU0NQdWJsaWNLZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25z
SW5zdGFuY2UoKSBpbml0XSk7CiAKQEAgLTIzNiw3ICsyNDcsMjYgQEAgc3RhdGljIFJldGFpblB0
cjxBU0NDcmVkZW50aWFsUmVxdWVzdENvbnRleHQ+IGNvbmZpZ3VyZVJlZ2lzdHJhdGlvblJlcXVl
c3RDb250ZXgKICAgICByZXR1cm4gcmVxdWVzdENvbnRleHQ7CiB9CiAKLXN0YXRpYyBSZXRhaW5Q
dHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBjb25maWd1cmF0aW9uQXNzZXJ0aW9uUmVx
dWVzdENvbnRleHQoY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiBvcHRp
b25zLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpNZWRpYXRp
b25SZXF1aXJlbWVudD4gbWVkaWF0aW9uLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6Okdsb2JhbEZy
YW1lSWRlbnRpZmllcj4gZ2xvYmFsRnJhbWVJRCkKK3N0YXRpYyBpbmxpbmUgUmV0YWluUHRyPEFT
Q1B1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25PcHRpb25zPiBjb25maWd1cmVBc3NlcnRpb25P
cHRpb25zKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywg
Y29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZCBr
aW5kLCBjb25zdCBzdGQ6Om9wdGlvbmFsPFNlY3VyaXR5T3JpZ2luRGF0YT4mIHBhcmVudE9yaWdp
biwgUmV0YWluUHRyPE5TTXV0YWJsZUFycmF5PEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxEZXNjcmlw
dG9yICo+PiBhbGxvd2VkQ3JlZGVudGlhbHMsIFJldGFpblB0cjxOU1N0cmluZz4gdXNlclZlcmlm
aWNhdGlvbikKK3sKKyAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBhZG9wdE5TKGFsbG9jQVND
UHVibGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnNJbnN0YW5jZSgpKTsKKyAgICBpZiAo
W2Fzc2VydGlvbk9wdGlvbnMgcmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3Rvcihpbml0V2l0aEtp
bmQ6cmVseWluZ1BhcnR5SWRlbnRpZmllcjpjbGllbnREYXRhSGFzaDp1c2VyVmVyaWZpY2F0aW9u
UHJlZmVyZW5jZTphbGxvd2VkQ3JlZGVudGlhbHM6KV0pIHsKKyAgICAgICAgYXV0byBuc0hhc2gg
PSB0b05TRGF0YShoYXNoKTsKKyAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5pdFdpdGhLaW5k
OkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kUGxhdGZvcm0gcmVseWluZ1BhcnR5SWRlbnRpZmll
cjpvcHRpb25zLnJwSWQgY2xpZW50RGF0YUhhc2g6bnNIYXNoLmdldCgpIHVzZXJWZXJpZmljYXRp
b25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0KCkgYWxsb3dlZENyZWRlbnRpYWxzOmFs
bG93ZWRDcmVkZW50aWFscy5nZXQoKV07CisgICAgfSBlbHNlIHsKKyAgICAgICAgYXV0byBjaGFs
bGVuZ2UgPSBXZWJDb3JlOjp0b05TRGF0YShvcHRpb25zLmNoYWxsZW5nZSk7CisgICAgICAgIFth
c3NlcnRpb25PcHRpb25zIGluaXRXaXRoS2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBs
YXRmb3JtIHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFs
bGVuZ2UuZ2V0KCkgdXNlclZlcmlmaWNhdGlvblByZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5n
ZXQoKSBhbGxvd2VkQ3JlZGVudGlhbHM6YWxsb3dlZENyZWRlbnRpYWxzLmdldCgpXTsKKyAgICB9
CisgICAgaWYgKG9wdGlvbnMuZXh0ZW5zaW9ucyAmJiBbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25k
c1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldEV4dGVuc2lvbnM6KV0pCisgICAgICAgIFthc3NlcnRp
b25PcHRpb25zIHNldEV4dGVuc2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4dGVuc2lv
bnMpLmdldCgpXTsKKyAgICBpZiAocGFyZW50T3JpZ2luICYmIFthc3NlcnRpb25PcHRpb25zIHJl
c3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Ioc2V0RGVzdGluYXRpb25TaXRlRm9yQ3Jvc3NTaXRl
QXNzZXJ0aW9uOildKQorICAgICAgICBhc3NlcnRpb25PcHRpb25zLmdldCgpLmRlc3RpbmF0aW9u
U2l0ZUZvckNyb3NzU2l0ZUFzc2VydGlvbiA9IHBhcmVudE9yaWdpbi0+dG9TdHJpbmcoKTsKKyAg
ICBlbHNlIGlmIChwYXJlbnRPcmlnaW4gJiYgIVthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9T
ZWxlY3RvcjpAc2VsZWN0b3Ioc2V0RGVzdGluYXRpb25TaXRlRm9yQ3Jvc3NTaXRlQXNzZXJ0aW9u
OildKQorICAgICAgICByZXR1cm4gbmlsOworICAgIHJldHVybiBhc3NlcnRpb25PcHRpb25zOwor
fQorCitzdGF0aWMgUmV0YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gY29uZmln
dXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KGNvbnN0IFB1YmxpY0tleUNyZWRlbnRpYWxS
ZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBzdGQ6
Om9wdGlvbmFsPFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVtZW50PiBtZWRpYXRpb24sIHN0ZDo6
b3B0aW9uYWw8V2ViQ29yZTo6R2xvYmFsRnJhbWVJZGVudGlmaWVyPiBnbG9iYWxGcmFtZUlELCBz
dGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luRGF0YT4mIHBhcmVudE9yaWdpbikK
IHsKICAgICBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVzIHJlcXVlc3RUeXBlcyA9IEFTQ0NyZWRl
bnRpYWxSZXF1ZXN0VHlwZVBsYXRmb3JtUHVibGljS2V5QXNzZXJ0aW9uIHwgQVNDQ3JlZGVudGlh
bFJlcXVlc3RUeXBlU2VjdXJpdHlLZXlQdWJsaWNLZXlBc3NlcnRpb247CiAKQEAgLTI2Miw0MCAr
MjkyLDE5IEBAIHN0YXRpYyBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVlc3RDb250ZXh0PiBj
b25maWd1cmF0aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRlCiAgICAgW3JlcXVlc3RDb250ZXh0IHNl
dFJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6b3B0aW9ucy5ycElkXTsKICAgICBpZiAobWVkaWF0aW9u
ID09IE1lZGlhdGlvblJlcXVpcmVtZW50OjpDb25kaXRpb25hbCAmJiBbcmVxdWVzdENvbnRleHQg
cmVzcG9uZHNUb1NlbGVjdG9yOkBzZWxlY3RvcihzZXRSZXF1ZXN0U3R5bGU6KV0pCiAgICAgICAg
IHJlcXVlc3RDb250ZXh0LmdldCgpLnJlcXVlc3RTdHlsZSA9IEFTQ3JlZGVudGlhbFJlcXVlc3RT
dHlsZUF1dG9GaWxsOwotICAgIGlmIChnbG9iYWxGcmFtZUlEICYmIFtyZXF1ZXN0Q29udGV4dCBy
ZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVjdG9yKHNldEdsb2JhbEZyYW1lSUQ6KV0pIHsKLSAgICAg
ICAgYXV0byBhc2NHbG9iYWxGcmFtZUlEID0gYWRvcHROUyhbYWxsb2NBU0NHbG9iYWxGcmFtZUlk
ZW50aWZpZXJJbnN0YW5jZSgpIGluaXRdKTsKLSAgICAgICAgYXNjR2xvYmFsRnJhbWVJRC5nZXQo
KS53ZWJGcmFtZUlEID0gW05TTnVtYmVyIG51bWJlcldpdGhVbnNpZ25lZExvbmc6Z2xvYmFsRnJh
bWVJRC0+ZnJhbWVJRC50b1VJbnQ2NCgpXTsKLSAgICAgICAgYXNjR2xvYmFsRnJhbWVJRC5nZXQo
KS53ZWJQYWdlSUQgPSBbTlNOdW1iZXIgbnVtYmVyV2l0aFVuc2lnbmVkTG9uZzpnbG9iYWxGcmFt
ZUlELT5wYWdlSUQudG9VSW50NjQoKV07Ci0gICAgICAgIHJlcXVlc3RDb250ZXh0LmdldCgpLmds
b2JhbEZyYW1lSUQgPSBhc2NHbG9iYWxGcmFtZUlELmdldCgpOwotICAgIH0KKyAgICBzZXRHbG9i
YWxGcmFtZUlERm9yQ29udGV4dChyZXF1ZXN0Q29udGV4dCwgZ2xvYmFsRnJhbWVJRCk7CiAKICAg
ICBpZiAocmVxdWVzdFR5cGVzICYgQVNDQ3JlZGVudGlhbFJlcXVlc3RUeXBlUGxhdGZvcm1QdWJs
aWNLZXlBc3NlcnRpb24pIHsKLSAgICAgICAgYXV0byBhc3NlcnRpb25PcHRpb25zID0gYWRvcHRO
UyhhbGxvY0FTQ1B1YmxpY0tleUNyZWRlbnRpYWxBc3NlcnRpb25PcHRpb25zSW5zdGFuY2UoKSk7
Ci0gICAgICAgIGlmIChbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25kc1RvU2VsZWN0b3I6QHNlbGVj
dG9yKGluaXRXaXRoS2luZDpyZWx5aW5nUGFydHlJZGVudGlmaWVyOmNsaWVudERhdGFIYXNoOnVz
ZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOmFsbG93ZWRDcmVkZW50aWFsczopXSkgewotICAgICAg
ICAgICAgYXV0byBuc0hhc2ggPSB0b05TRGF0YShoYXNoKTsKLSAgICAgICAgICAgIFthc3NlcnRp
b25PcHRpb25zIGluaXRXaXRoS2luZDpBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3Jt
IHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6b3B0aW9ucy5ycElkIGNsaWVudERhdGFIYXNoOm5zSGFz
aC5nZXQoKSB1c2VyVmVyaWZpY2F0aW9uUHJlZmVyZW5jZTp1c2VyVmVyaWZpY2F0aW9uLmdldCgp
IGFsbG93ZWRDcmVkZW50aWFsczphbGxvd2VkQ3JlZGVudGlhbHMuZ2V0KCldOwotICAgICAgICB9
IGVsc2UgewotICAgICAgICAgICAgYXV0byBjaGFsbGVuZ2UgPSBXZWJDb3JlOjp0b05TRGF0YShv
cHRpb25zLmNoYWxsZW5nZSk7Ci0gICAgICAgICAgICBbYXNzZXJ0aW9uT3B0aW9ucyBpbml0V2l0
aEtpbmQ6QVNDUHVibGljS2V5Q3JlZGVudGlhbEtpbmRQbGF0Zm9ybSByZWx5aW5nUGFydHlJZGVu
dGlmaWVyOm9wdGlvbnMucnBJZCBjaGFsbGVuZ2U6Y2hhbGxlbmdlLmdldCgpIHVzZXJWZXJpZmlj
YXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0KCkgYWxsb3dlZENyZWRlbnRpYWxz
OmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG9wdGlv
bnMuZXh0ZW5zaW9ucyAmJiBbYXNzZXJ0aW9uT3B0aW9ucyByZXNwb25kc1RvU2VsZWN0b3I6QHNl
bGVjdG9yKHNldEV4dGVuc2lvbnM6KV0pCi0gICAgICAgICAgICBbYXNzZXJ0aW9uT3B0aW9ucyBz
ZXRFeHRlbnNpb25zOnRvQVNDRXh0ZW5zaW9ucygqb3B0aW9ucy5leHRlbnNpb25zKS5nZXQoKV07
Ci0KKyAgICAgICAgYXV0byBhc3NlcnRpb25PcHRpb25zID0gY29uZmlndXJlQXNzZXJ0aW9uT3B0
aW9ucyhvcHRpb25zLCBoYXNoLCBBU0NQdWJsaWNLZXlDcmVkZW50aWFsS2luZFBsYXRmb3JtLCBw
YXJlbnRPcmlnaW4sIGFsbG93ZWRDcmVkZW50aWFscywgdXNlclZlcmlmaWNhdGlvbik7CisgICAg
ICAgIGlmICghYXNzZXJ0aW9uT3B0aW9ucykKKyAgICAgICAgICAgIHJldHVybiBuaWw7CiAgICAg
ICAgIFtyZXF1ZXN0Q29udGV4dCBzZXRQbGF0Zm9ybUtleUNyZWRlbnRpYWxBc3NlcnRpb25PcHRp
b25zOmFzc2VydGlvbk9wdGlvbnMuZ2V0KCldOwogICAgIH0KIAogICAgIGlmIChyZXF1ZXN0VHlw
ZXMgJiBBU0NDcmVkZW50aWFsUmVxdWVzdFR5cGVTZWN1cml0eUtleVB1YmxpY0tleUFzc2VydGlv
bikgewotICAgICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBhZG9wdE5TKGFsbG9jQVNDUHVi
bGljS2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnNJbnN0YW5jZSgpKTsKLSAgICAgICAgaWYg
KFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3IoaW5pdFdpdGhL
aW5kOnJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6Y2xpZW50RGF0YUhhc2g6dXNlclZlcmlmaWNhdGlv
blByZWZlcmVuY2U6YWxsb3dlZENyZWRlbnRpYWxzOildKSB7Ci0gICAgICAgICAgICBhdXRvIG5z
SGFzaCA9IHRvTlNEYXRhKGhhc2gpOwotICAgICAgICAgICAgW2Fzc2VydGlvbk9wdGlvbnMgaW5p
dFdpdGhLaW5kOkFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kU2VjdXJpdHlLZXkgcmVseWluZ1Bh
cnR5SWRlbnRpZmllcjpvcHRpb25zLnJwSWQgY2xpZW50RGF0YUhhc2g6bnNIYXNoLmdldCgpIHVz
ZXJWZXJpZmljYXRpb25QcmVmZXJlbmNlOnVzZXJWZXJpZmljYXRpb24uZ2V0KCkgYWxsb3dlZENy
ZWRlbnRpYWxzOmFsbG93ZWRDcmVkZW50aWFscy5nZXQoKV07Ci0gICAgICAgIH0gZWxzZSB7Ci0g
ICAgICAgICAgICBhdXRvIGNoYWxsZW5nZSA9IFdlYkNvcmU6OnRvTlNEYXRhKG9wdGlvbnMuY2hh
bGxlbmdlKTsKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIGluaXRXaXRoS2luZDpBU0NQ
dWJsaWNLZXlDcmVkZW50aWFsS2luZFNlY3VyaXR5S2V5IHJlbHlpbmdQYXJ0eUlkZW50aWZpZXI6
b3B0aW9ucy5ycElkIGNoYWxsZW5nZTpjaGFsbGVuZ2UuZ2V0KCkgdXNlclZlcmlmaWNhdGlvblBy
ZWZlcmVuY2U6dXNlclZlcmlmaWNhdGlvbi5nZXQoKSBhbGxvd2VkQ3JlZGVudGlhbHM6YWxsb3dl
ZENyZWRlbnRpYWxzLmdldCgpXTsKLSAgICAgICAgfQotICAgICAgICBpZiAob3B0aW9ucy5leHRl
bnNpb25zICYmIFthc3NlcnRpb25PcHRpb25zIHJlc3BvbmRzVG9TZWxlY3RvcjpAc2VsZWN0b3Io
c2V0RXh0ZW5zaW9uczopXSkKLSAgICAgICAgICAgIFthc3NlcnRpb25PcHRpb25zIHNldEV4dGVu
c2lvbnM6dG9BU0NFeHRlbnNpb25zKCpvcHRpb25zLmV4dGVuc2lvbnMpLmdldCgpXTsKLQorICAg
ICAgICBhdXRvIGFzc2VydGlvbk9wdGlvbnMgPSBjb25maWd1cmVBc3NlcnRpb25PcHRpb25zKG9w
dGlvbnMsIGhhc2gsIEFTQ1B1YmxpY0tleUNyZWRlbnRpYWxLaW5kU2VjdXJpdHlLZXksIHBhcmVu
dE9yaWdpbiwgYWxsb3dlZENyZWRlbnRpYWxzLCB1c2VyVmVyaWZpY2F0aW9uKTsKKyAgICAgICAg
aWYgKCFhc3NlcnRpb25PcHRpb25zKQorICAgICAgICAgICAgcmV0dXJuIG5pbDsKICAgICAgICAg
W3JlcXVlc3RDb250ZXh0IHNldFNlY3VyaXR5S2V5Q3JlZGVudGlhbEFzc2VydGlvbk9wdGlvbnM6
YXNzZXJ0aW9uT3B0aW9ucy5nZXQoKV07CiAgICAgfQogCkBAIC0zMDYsOSArMzE1LDkgQEAgUmV0
YWluUHRyPEFTQ0NyZWRlbnRpYWxSZXF1ZXN0Q29udGV4dD4gV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHk6OmNvbnRleHQKIHsKICAgICBSZXRhaW5QdHI8QVNDQ3JlZGVudGlhbFJlcXVl
c3RDb250ZXh0PiByZXN1bHQ7CiAgICAgV1RGOjpzd2l0Y2hPbihyZXF1ZXN0RGF0YS5vcHRpb25z
LCBbJl0oY29uc3QgUHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYgb3B0aW9ucykg
ewotICAgICAgICByZXN1bHQgPSBjb25maWd1cmVSZWdpc3RyYXRpb25SZXF1ZXN0Q29udGV4dChv
cHRpb25zLCByZXF1ZXN0RGF0YS5oYXNoKTsKKyAgICAgICAgcmVzdWx0ID0gY29uZmlndXJlUmVn
aXN0cmF0aW9uUmVxdWVzdENvbnRleHQob3B0aW9ucywgcmVxdWVzdERhdGEuaGFzaCwgcmVxdWVz
dERhdGEuZ2xvYmFsRnJhbWVJRCk7CiAgICAgfSwgWyZdKGNvbnN0IFB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucykgewotICAgICAgICByZXN1bHQgPSBjb25maWd1cmF0
aW9uQXNzZXJ0aW9uUmVxdWVzdENvbnRleHQob3B0aW9ucywgcmVxdWVzdERhdGEuaGFzaCwgcmVx
dWVzdERhdGEubWVkaWF0aW9uLCByZXF1ZXN0RGF0YS5nbG9iYWxGcmFtZUlEKTsKKyAgICAgICAg
cmVzdWx0ID0gY29uZmlndXJhdGlvbkFzc2VydGlvblJlcXVlc3RDb250ZXh0KG9wdGlvbnMsIHJl
cXVlc3REYXRhLmhhc2gsIHJlcXVlc3REYXRhLm1lZGlhdGlvbiwgcmVxdWVzdERhdGEuZ2xvYmFs
RnJhbWVJRCwgcmVxdWVzdERhdGEucGFyZW50T3JpZ2luKTsKICAgICB9KTsKICAgICByZXR1cm4g
cmVzdWx0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVu
dGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5oIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRpb25SZXF1ZXN0RGF0YS5o
CmluZGV4IDk4YjZlZDA5YWI2ZDg4YTM0OWJiN2Y5NjhmZmRhZjA4Mjg4YTAzNDUuLjBhMWQ0NTkx
NmEzOTRiNGY4ZmEwMmI2ZDhjNzdlNTA5NjkyNDc3NWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0aW9uUmVxdWVzdERh
dGEuaAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJB
dXRoZW50aWNhdGlvblJlcXVlc3REYXRhLmgKQEAgLTM5LDYgKzM5LDEwIEBACiAjaW5jbHVkZSA8
d3RmL1ZlY3Rvci5oPgogI2luY2x1ZGUgPHd0Zi9XZWFrUHRyLmg+CiAKK25hbWVzcGFjZSBXZWJD
b3JlIHsKK3N0cnVjdCBTZWN1cml0eU9yaWdpbkRhdGE7Cit9CisKIG5hbWVzcGFjZSBXZWJLaXQg
ewogCiBjbGFzcyBXZWJQYWdlUHJveHk7CkBAIC01OCw2ICs2Miw3IEBAIHN0cnVjdCBXZWJBdXRo
ZW50aWNhdGlvblJlcXVlc3REYXRhIHsKICAgICBTdHJpbmcgY2FjaGVkUGluOyAvLyBPbmx5IHVz
ZWQgdG8gaW1wcm92ZSBORkMgQ2xpZW50IFBJTiBleHBlcmllbmNlLgogICAgIFdlYWtQdHI8QVBJ
OjpXZWJBdXRoZW50aWNhdGlvblBhbmVsPiB3ZWFrUGFuZWw7CiAgICAgc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudD4gbWVkaWF0aW9uOworICAgIHN0ZDo6b3B0aW9u
YWw8V2ViQ29yZTo6U2VjdXJpdHlPcmlnaW5EYXRhPiBwYXJlbnRPcmlnaW47CiB9OwogCiBXZWJD
b3JlOjpDbGllbnREYXRhVHlwZSBnZXRDbGllbnREYXRhVHlwZShjb25zdCBzdGQ6OnZhcmlhbnQ8
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucywgV2ViQ29yZTo6UHVi
bGljS2V5Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zPiYpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5h
dG9yUHJveHkuY3BwIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24v
V2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuY3BwCmluZGV4IGY1OWU5NGE5NTY5ZjVl
ODE0YzI5ZjNiYmMyZGUxZmVhMzI0Nzg5OTMuLjY5ZjYyYjYzOTc2ZTgyZmVkZjNkMWRiNDFkZmVk
Mjk4YzgyOTI5ZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eS5jcHAKQEAgLTU4LDEyICs1OCwxMiBAQCBXZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eTo6fldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5KCkKIAogdm9p
ZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6bWFrZUNyZWRlbnRpYWwoRnJhbWVJ
ZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50
OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiBvcHRpb25z
LCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYg
aGFuZGxlcikKIHsKLSAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShv
cHRpb25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVu
YXZhaWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBhZ2VQcm94
eS53ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nlc3NpbmdV
c2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCB9LCBXVEZNb3ZlKGhh
bmRsZXIpKTsKKyAgICBoYW5kbGVSZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRp
b25zKSwgbV93ZWJQYWdlUHJveHksIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZh
aWxhYmxlLCBudWxscHRyLCBHbG9iYWxGcmFtZUlkZW50aWZpZXIgeyBtX3dlYlBhZ2VQcm94eS53
ZWJQYWdlSUQoKSwgZnJhbWVJZCB9LCBXVEZNb3ZlKGZyYW1lSW5mbyksIHByb2Nlc3NpbmdVc2Vy
R2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxsb3B0IH0s
IFdURk1vdmUoaGFuZGxlcikpOwogfQogCi12b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRv
clByb3h5OjpnZXRBc3NlcnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0Rh
dGEmJiBmcmFtZUluZm8sIFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRp
YWxSZXF1ZXN0T3B0aW9ucyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlv
biwgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYm
IGhhbmRsZXIpCit2b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclByb3h5OjpnZXRBc3Nl
cnRpb24oRnJhbWVJZGVudGlmaWVyIGZyYW1lSWQsIEZyYW1lSW5mb0RhdGEmJiBmcmFtZUluZm8s
IFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cyYmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVtZW50IG1lZGlhdGlvbiwgc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRhdGE+IHBhcmVudE9yaWdpbiwgYm9vbCBwcm9jZXNz
aW5nVXNlckdlc3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0g
ICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1fd2Vi
UGFnZVByb3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVs
bHB0ciwgR2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlEKCks
IGZyYW1lSWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0
cmluZygpLCBudWxscHRyLCBtZWRpYXRpb24gfSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgaGFu
ZGxlUmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG1fd2ViUGFnZVBy
b3h5LCBXZWJBdXRoZW50aWNhdGlvblBhbmVsUmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwg
R2xvYmFsRnJhbWVJZGVudGlmaWVyIHsgbV93ZWJQYWdlUHJveHkud2ViUGFnZUlEKCksIGZyYW1l
SWQgfSwgV1RGTW92ZShmcmFtZUluZm8pLCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygp
LCBudWxscHRyLCBtZWRpYXRpb24sIHBhcmVudE9yaWdpbiB9LCBXVEZNb3ZlKGhhbmRsZXIpKTsK
IH0KIAogdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6aGFuZGxlUmVxdWVz
dChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYgZGF0YSwgUmVxdWVzdENvbXBsZXRpb25I
YW5kbGVyJiYgaGFuZGxlcikKQEAgLTc0LDEzICs3NCwyMiBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5OjpoYW5kbGVSZXF1ZXN0KFdlYkF1dGhlbnRpY2F0aW9uUmVxdWVz
dERhdAogICAgICAgICBhdXRvJiBhdXRoZW50aWNhdG9yTWFuYWdlciA9IG1fd2ViUGFnZVByb3h5
LndlYnNpdGVEYXRhU3RvcmUoKS5hdXRoZW50aWNhdG9yTWFuYWdlcigpOwogICAgICAgICBpZiAo
cmVzdWx0KSB7CiAjaWYgSEFWRShVTklGSUVEX0FTQ19BVVRIX1VJKQotICAgICAgICAgICAgICAg
IGlmICghYXV0aGVudGljYXRvck1hbmFnZXIuaXNNb2NrKCkgJiYgIWF1dGhlbnRpY2F0b3JNYW5h
Z2VyLmlzVmlydHVhbCgpKSB7Ci0gICAgICAgICAgICAgICAgICAgIGF1dG8gY29udGV4dCA9IGNv
bnRleHRGb3JSZXF1ZXN0KFdURk1vdmUoZGF0YSkpOwotICAgICAgICAgICAgICAgICAgICAvLyBw
ZXJmb3JtUmVxdWVzdCBjYWxscyBvdXQgdG8gQVNDQWdlbnQgd2hpY2ggd2lsbCB0aGVuIGNhbGwg
W19XS1dlYkF1dGhlbnRpY2F0aW9uUGFuZWwgbWFrZUNyZWRlbnRpYWwvZ2V0QXNzZXJ0aW9uV2l0
aENoYWxsZW5nZV0KLSAgICAgICAgICAgICAgICAgICAgLy8gd2hpY2ggY2FsbHMgYXV0aGVudGlj
YXRvck1hbmFnZXIuaGFuZGxlUmVxdWVzdCguLikKLSAgICAgICAgICAgICAgICAgICAgcGVyZm9y
bVJlcXVlc3QoY29udGV4dCwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgICAgICAgICBpZiAoIWF1
dGhlbnRpY2F0b3JNYW5hZ2VyLmlzTW9jaygpICYmICFhdXRoZW50aWNhdG9yTWFuYWdlci5pc1Zp
cnR1YWwoKSkgeworICAgICAgICAgICAgICAgIGF1dG8gY29udGV4dCA9IGNvbnRleHRGb3JSZXF1
ZXN0KFdURk1vdmUoZGF0YSkpOworICAgICAgICAgICAgICAgIGlmIChjb250ZXh0LmdldCgpID09
IG51bGxwdHIpIHsKKyAgICAgICAgICAgICAgICAgICAgaGFuZGxlcih7IH0sIChBdXRoZW50aWNh
dG9yQXR0YWNobWVudCkwLCBFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dlZEVycm9yLCAiVGhlIG9y
aWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0cyBhbmNlc3RvcnMuIl9z
IH0pOwogICAgICAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAgICAgICAgfQorICAg
ICAgICAgICAgICAgIC8vIHBlcmZvcm1SZXF1ZXN0IGNhbGxzIG91dCB0byBBU0NBZ2VudCB3aGlj
aCB3aWxsIHRoZW4gY2FsbCBbX1dLV2ViQXV0aGVudGljYXRpb25QYW5lbCBtYWtlQ3JlZGVudGlh
bC9nZXRBc3NlcnRpb25XaXRoQ2hhbGxlbmdlXQorICAgICAgICAgICAgICAgIC8vIHdoaWNoIGNh
bGxzIGF1dGhlbnRpY2F0b3JNYW5hZ2VyLmhhbmRsZVJlcXVlc3QoLi4pCisgICAgICAgICAgICAg
ICAgcGVyZm9ybVJlcXVlc3QoY29udGV4dCwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgICAgICAg
ICAgICAgcmV0dXJuOworICAgICAgICAgICAgfQorI2Vsc2UKKyAgICAgICAgICAgIGlmIChkYXRh
LnBhcmVudE9yaWdpbiAmJiAhYXV0aGVudGljYXRvck1hbmFnZXIuaXNNb2NrKCkgJiYgIWF1dGhl
bnRpY2F0b3JNYW5hZ2VyLmlzVmlydHVhbCgpKSB7CisgICAgICAgICAgICAgICAgaGFuZGxlcih7
IH0sIChBdXRoZW50aWNhdG9yQXR0YWNobWVudCkwLCBFeGNlcHRpb25EYXRhIHsgTm90QWxsb3dl
ZEVycm9yLCAiVGhlIG9yaWdpbiBvZiB0aGUgZG9jdW1lbnQgaXMgbm90IHRoZSBzYW1lIGFzIGl0
cyBhbmNlc3RvcnMuIl9zIH0pOworICAgICAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICAg
IH0KICNlbmRpZiAvLyBIQVZFKFVOSUZJRURfQVNDX0FVVEhfVUkpCiAKICAgICAgICAgICAgIGF1
dGhlbnRpY2F0b3JNYW5hZ2VyLmhhbmRsZVJlcXVlc3QoV1RGTW92ZShkYXRhKSwgW2hhbmRsZXIg
PSBXVEZNb3ZlKGhhbmRsZXIpXSAoc3RkOjp2YXJpYW50PFJlZjxBdXRoZW50aWNhdG9yUmVzcG9u
c2U+LCBFeGNlcHRpb25EYXRhPiYmIHJlc3VsdCkgbXV0YWJsZSB7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29v
cmRpbmF0b3JQcm94eS5oIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRp
b24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkuaAppbmRleCA4Zjg3YzAzMDY4YTQw
N2JiNjViNGY5ZTFmNjExNGY0ZDcwNmQzNDFkLi42N2EyMGJhNDE1ZGZmM2Q4ZDNkN2M0ZjMyZmFh
MmE4ZDE4M2E1MzY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9XZWJBdXRo
ZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eS5oCisrKyBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvclByb3h5LmgKQEAgLTcxLDcgKzcxLDcgQEAgcHJpdmF0ZToKIAogICAgIC8vIFJlY2Vp
dmVycy4KICAgICB2b2lkIG1ha2VDcmVkZW50aWFsKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwg
RnJhbWVJbmZvRGF0YSYmLCBWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBXZWJDb3JlOjpQdWJsaWNL
ZXlDcmVkZW50aWFsQ3JlYXRpb25PcHRpb25zJiYsIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0dXJl
LCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJik7Ci0gICAgdm9pZCBnZXRBc3NlcnRpb24oV2Vi
Q29yZTo6RnJhbWVJZGVudGlmaWVyLCBGcmFtZUluZm9EYXRhJiYsIFZlY3Rvcjx1aW50OF90PiYm
IGhhc2gsIFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYmLCBXZWJD
b3JlOjpDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnM6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBib29s
IHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpOworICAg
IHZvaWQgZ2V0QXNzZXJ0aW9uKFdlYkNvcmU6OkZyYW1lSWRlbnRpZmllciwgRnJhbWVJbmZvRGF0
YSYmLCBWZWN0b3I8dWludDhfdD4mJiBoYXNoLCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50aWFs
UmVxdWVzdE9wdGlvbnMmJiwgV2ViQ29yZTo6Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zOjpNZWRp
YXRpb25SZXF1aXJlbWVudCwgc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpTZWN1cml0eU9yaWdpbkRh
dGE+LCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVy
JiYpOwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxh
YmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJik7CiAgICAgdm9pZCBpc0NvbmRpdGlvbmFsTWVk
aWF0aW9uQXZhaWxhYmxlKFF1ZXJ5Q29tcGxldGlvbkhhbmRsZXImJik7CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvclByb3h5Lm1lc3NhZ2VzLmluIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3Mv
V2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2Fn
ZXMuaW4KaW5kZXggNTM0Nzc0NzkwMjA5MTNhMzJmNmU4OWJmMmNjZjdkZjZmZmQwM2I1Ni4uZDNm
YTY1ZDUxOGMxYTk5Njc3NTk1MjFlMDc3ZTZhYjgyMzRkMzQ3MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3Jk
aW5hdG9yUHJveHkubWVzc2FnZXMuaW4KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvV2Vi
QXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNvb3JkaW5hdG9yUHJveHkubWVzc2FnZXMu
aW4KQEAgLTI3LDcgKzI3LDcgQEAKIG1lc3NhZ2VzIC0+IFdlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvclByb3h5IE5vdFJlZkNvdW50ZWQgewogCiAgICAgTWFrZUNyZWRlbnRpYWwoV2ViQ29yZTo6
RnJhbWVJZGVudGlmaWVyIGZyYW1lSUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJh
bWVJbmZvLCBWZWN0b3I8dWludDhfdD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdlc3R1
cmUpIC0+IChzdHJ1Y3QgV2ViQ29yZTo6QXV0aGVudGljYXRvclJlc3BvbnNlRGF0YSBkYXRhLCBl
bnVtOmludCBXZWJDb3JlOjpBdXRoZW50aWNhdG9yQXR0YWNobWVudCBhdHRhY2htZW50LCBzdHJ1
Y3QgV2ViQ29yZTo6RXhjZXB0aW9uRGF0YSBleGNlcHRpb24pCi0gICAgR2V0QXNzZXJ0aW9uKFdl
YkNvcmU6OkZyYW1lSWRlbnRpZmllciBmcmFtZUlELCBzdHJ1Y3QgV2ViS2l0OjpGcmFtZUluZm9E
YXRhIGZyYW1lSW5mbywgVmVjdG9yPHVpbnQ4X3Q+IGhhc2gsIHN0cnVjdCBXZWJDb3JlOjpQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMgb3B0aW9ucywgZW51bTp1aW50OF90IFdlYkNv
cmU6OkNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9uczo6TWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0
aW9uLCBib29sIHByb2Nlc3NpbmdVc2VyR2VzdHVyZSkgLT4gKHN0cnVjdCBXZWJDb3JlOjpBdXRo
ZW50aWNhdG9yUmVzcG9uc2VEYXRhIGRhdGEsIGVudW06aW50IFdlYkNvcmU6OkF1dGhlbnRpY2F0
b3JBdHRhY2htZW50IGF0dGFjaG1lbnQsIHN0cnVjdCBXZWJDb3JlOjpFeGNlcHRpb25EYXRhIGV4
Y2VwdGlvbikKKyAgICBHZXRBc3NlcnRpb24oV2ViQ29yZTo6RnJhbWVJZGVudGlmaWVyIGZyYW1l
SUQsIHN0cnVjdCBXZWJLaXQ6OkZyYW1lSW5mb0RhdGEgZnJhbWVJbmZvLCBWZWN0b3I8dWludDhf
dD4gaGFzaCwgc3RydWN0IFdlYkNvcmU6OlB1YmxpY0tleUNyZWRlbnRpYWxSZXF1ZXN0T3B0aW9u
cyBvcHRpb25zLCBlbnVtOnVpbnQ4X3QgV2ViQ29yZTo6Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25z
OjpNZWRpYXRpb25SZXF1aXJlbWVudCBtZWRpYXRpb24sIHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6
U2VjdXJpdHlPcmlnaW5EYXRhPiBwYXJlbnRPcmlnaW4sIGJvb2wgcHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKSAtPiAoc3RydWN0IFdlYkNvcmU6OkF1dGhlbnRpY2F0b3JSZXNwb25zZURhdGEgZGF0YSwg
ZW51bTppbnQgV2ViQ29yZTo6QXV0aGVudGljYXRvckF0dGFjaG1lbnQgYXR0YWNobWVudCwgc3Ry
dWN0IFdlYkNvcmU6OkV4Y2VwdGlvbkRhdGEgZXhjZXB0aW9uKQogICAgIGlzQ29uZGl0aW9uYWxN
ZWRpYXRpb25BdmFpbGFibGUoKSAtPiAoYm9vbCByZXN1bHQpCiAgICAgSXNVc2VyVmVyaWZ5aW5n
UGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKCkgLT4gKGJvb2wgcmVzdWx0KQogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25uZWN0aW9u
VG9XZWJQcm9jZXNzLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViQXV0aG5Qcm9jZXNzL1dlYkF1dGhu
Q29ubmVjdGlvblRvV2ViUHJvY2Vzcy5jcHAKaW5kZXggZTRiNGI2YjM0YzBiZjJlNTIxOTdhNmRm
ZmUyMjNiMWNlN2I1YjVhYS4uNTE3YzNiYWMxMmY4NzEzNzdhNzNhZTNkMTU2YjAzZTczOGZiMDI3
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJBdXRoblByb2Nlc3MvV2ViQXV0aG5Db25u
ZWN0aW9uVG9XZWJQcm9jZXNzLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYkF1dGhuUHJvY2Vz
cy9XZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3MuY3BwCkBAIC05NiwxMiArOTYsMTIgQEAg
Ym9vbCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlByb2Nlc3M6OmRpc3BhdGNoU3luY01lc3NhZ2Uo
SVBDOjpDb25uZWN0aW9uJiBjb25uZWMKIAogdm9pZCBXZWJBdXRobkNvbm5lY3Rpb25Ub1dlYlBy
b2Nlc3M6Om1ha2VDcmVkZW50aWFsKFZlY3Rvcjx1aW50OF90PiYmIGhhc2gsIFB1YmxpY0tleUNy
ZWRlbnRpYWxDcmVhdGlvbk9wdGlvbnMmJiBvcHRpb25zLCBib29sIHByb2Nlc3NpbmdVc2VyR2Vz
dHVyZSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsKLSAgICBoYW5kbGVS
ZXF1ZXN0KHsgV1RGTW92ZShoYXNoKSwgV1RGTW92ZShvcHRpb25zKSwgbnVsbHB0ciwgV2ViQXV0
aGVudGljYXRpb25QYW5lbFJlc3VsdDo6VW5hdmFpbGFibGUsIG51bGxwdHIsIHN0ZDo6bnVsbG9w
dCwgeyB9LCBwcm9jZXNzaW5nVXNlckdlc3R1cmUsIFN0cmluZygpLCBudWxscHRyLCBzdGQ6Om51
bGxvcHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgaGFuZGxlUmVxdWVzdCh7IFdURk1vdmUo
aGFzaCksIFdURk1vdmUob3B0aW9ucyksIG51bGxwdHIsIFdlYkF1dGhlbnRpY2F0aW9uUGFuZWxS
ZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxvcHQsIHsgfSwgcHJvY2Vzc2lu
Z1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCBzdGQ6Om51bGxv
cHQgfSwgV1RGTW92ZShoYW5kbGVyKSk7CiB9CiAKIHZvaWQgV2ViQXV0aG5Db25uZWN0aW9uVG9X
ZWJQcm9jZXNzOjpnZXRBc3NlcnRpb24oVmVjdG9yPHVpbnQ4X3Q+JiYgaGFzaCwgUHVibGljS2V5
Q3JlZGVudGlhbFJlcXVlc3RPcHRpb25zJiYgb3B0aW9ucywgYm9vbCBwcm9jZXNzaW5nVXNlckdl
c3R1cmUsIFJlcXVlc3RDb21wbGV0aW9uSGFuZGxlciYmIGhhbmRsZXIpCiB7Ci0gICAgaGFuZGxl
UmVxdWVzdCh7IFdURk1vdmUoaGFzaCksIFdURk1vdmUob3B0aW9ucyksIG51bGxwdHIsIFdlYkF1
dGhlbnRpY2F0aW9uUGFuZWxSZXN1bHQ6OlVuYXZhaWxhYmxlLCBudWxscHRyLCBzdGQ6Om51bGxv
cHQsIHsgfSwgcHJvY2Vzc2luZ1VzZXJHZXN0dXJlLCBTdHJpbmcoKSwgbnVsbHB0ciwgc3RkOjpu
dWxsb3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOworICAgIGhhbmRsZVJlcXVlc3QoeyBXVEZNb3Zl
KGhhc2gpLCBXVEZNb3ZlKG9wdGlvbnMpLCBudWxscHRyLCBXZWJBdXRoZW50aWNhdGlvblBhbmVs
UmVzdWx0OjpVbmF2YWlsYWJsZSwgbnVsbHB0ciwgc3RkOjpudWxsb3B0LCB7IH0sIHByb2Nlc3Np
bmdVc2VyR2VzdHVyZSwgU3RyaW5nKCksIG51bGxwdHIsIHN0ZDo6bnVsbG9wdCwgc3RkOjpudWxs
b3B0IH0sIFdURk1vdmUoaGFuZGxlcikpOwogfQogCiB2b2lkIFdlYkF1dGhuQ29ubmVjdGlvblRv
V2ViUHJvY2Vzczo6aGFuZGxlUmVxdWVzdChXZWJBdXRoZW50aWNhdGlvblJlcXVlc3REYXRhJiYg
ZGF0YSwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9y
Q29vcmRpbmF0b3IuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKaW5kZXggNTA5NzIwN2JhNjQ0MmRk
YTUwMjgyOWI5MDEzNjI1MTgyMGQ4YWFlYi4uMGUxMTdhMGVjNjE5MDBkMTUwYWRiMWRlOWM2ODIy
OWE4ZTdhYjU3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhl
bnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5jcHAKKysrIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGlu
YXRvci5jcHAKQEAgLTQ2LDYgKzQ2LDcgQEAKICNpbmNsdWRlIDxXZWJDb3JlL1J1bnRpbWVFbmFi
bGVkRmVhdHVyZXMuaD4KICNpbmNsdWRlIDxXZWJDb3JlL1NlY3VyaXR5T3JpZ2luLmg+CiAjaW5j
bHVkZSA8V2ViQ29yZS9Vc2VyR2VzdHVyZUluZGljYXRvci5oPgorI2luY2x1ZGUgPFdlYkNvcmUv
V2ViQXV0aGVudGljYXRpb25Db25zdGFudHMuaD4KIAogI3VuZGVmIFdFQkFVVEhOX1JFTEVBU0Vf
TE9HCiAjZGVmaW5lIFBBR0VfSUQgKG1fd2ViUGFnZS5pZGVudGlmaWVyKCkudG9VSW50NjQoKSkK
QEAgLTkzLDcgKzk0LDcgQEAgdm9pZCBXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3I6Om1ha2VD
cmVkZW50aWFsKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXIKICAgICBXZWJQcm9jZXNz
OjpzaW5nbGV0b24oKS5lbnN1cmVXZWJBdXRoblByb2Nlc3NDb25uZWN0aW9uKCkuY29ubmVjdGlv
bigpLnNlbmRXaXRoQXN5bmNSZXBseShNZXNzYWdlczo6V2ViQXV0aG5Db25uZWN0aW9uVG9XZWJQ
cm9jZXNzOjpNYWtlQ3JlZGVudGlhbChoYXNoLCBvcHRpb25zLCBpc1Byb2Nlc3NpbmdVc2VyR2Vz
dHVyZSksIFdURk1vdmUoaGFuZGxlcikpOwogfQogCi12b2lkIFdlYkF1dGhlbnRpY2F0b3JDb29y
ZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2VjdXJpdHlP
cmlnaW4mLCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFB1YmxpY0tleUNyZWRl
bnRpYWxSZXF1ZXN0T3B0aW9ucyYgb3B0aW9ucywgTWVkaWF0aW9uUmVxdWlyZW1lbnQgbWVkaWF0
aW9uLCBSZXF1ZXN0Q29tcGxldGlvbkhhbmRsZXImJiBoYW5kbGVyKQordm9pZCBXZWJBdXRoZW50
aWNhdG9yQ29vcmRpbmF0b3I6OmdldEFzc2VydGlvbihjb25zdCBGcmFtZSYgZnJhbWUsIGNvbnN0
IFNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBQdWJs
aWNLZXlDcmVkZW50aWFsUmVxdWVzdE9wdGlvbnMmIG9wdGlvbnMsIE1lZGlhdGlvblJlcXVpcmVt
ZW50IG1lZGlhdGlvbiwgY29uc3QgU2NvcGVBbmRDcm9zc09yaWdpblBhcmVudCYgc2NvcGVBbmRD
cm9zc09yaWdpblBhcmVudCwgUmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYgaGFuZGxlcikKIHsK
ICAgICBhdXRvKiB3ZWJGcmFtZSA9IFdlYkZyYW1lOjpmcm9tQ29yZUZyYW1lKGZyYW1lKTsKICAg
ICBpZiAoIXdlYkZyYW1lKQpAQCAtMTA2LDcgKzEwNywxMSBAQCB2b2lkIFdlYkF1dGhlbnRpY2F0
b3JDb29yZGluYXRvcjo6Z2V0QXNzZXJ0aW9uKGNvbnN0IEZyYW1lJiBmcmFtZSwgY29uc3QgU2Vj
dXJpdAogICAgIGJvb2wgdXNlV2ViQXV0aG5Qcm9jZXNzID0gUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS53ZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQoKTsKICNl
bmRpZgogICAgIGlmICghdXNlV2ViQXV0aG5Qcm9jZXNzKSB7Ci0gICAgICAgIG1fd2ViUGFnZS5z
ZW5kV2l0aEFzeW5jUmVwbHkoTWVzc2FnZXM6OldlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvclBy
b3h5OjpHZXRBc3NlcnRpb24od2ViRnJhbWUtPmZyYW1lSUQoKSwgd2ViRnJhbWUtPmluZm8oKSwg
aGFzaCwgb3B0aW9ucywgbWVkaWF0aW9uLCBpc1Byb2Nlc3NpbmdVc2VyR2VzdHVyZSksIFdURk1v
dmUoaGFuZGxlcikpOworICAgICAgICBtX3dlYlBhZ2Uuc2VuZFdpdGhBc3luY1JlcGx5KE1lc3Nh
Z2VzOjpXZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3JQcm94eTo6R2V0QXNzZXJ0aW9uKHdlYkZy
YW1lLT5mcmFtZUlEKCksIHdlYkZyYW1lLT5pbmZvKCksIGhhc2gsIG9wdGlvbnMsIG1lZGlhdGlv
biwgc2NvcGVBbmRDcm9zc09yaWdpblBhcmVudC5zZWNvbmQsIGlzUHJvY2Vzc2luZ1VzZXJHZXN0
dXJlKSwgV1RGTW92ZShoYW5kbGVyKSk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYg
KHNjb3BlQW5kQ3Jvc3NPcmlnaW5QYXJlbnQuZmlyc3QgPT0gV2ViQXV0aG46OlNjb3BlOjpDcm9z
c09yaWdpbikgeworICAgICAgICBoYW5kbGVyKHsgfSwgKEF1dGhlbnRpY2F0b3JBdHRhY2htZW50
KTAsIEV4Y2VwdGlvbkRhdGEgeyBOb3RBbGxvd2VkRXJyb3IsICJUaGUgb3JpZ2luIG9mIHRoZSBk
b2N1bWVudCBpcyBub3QgdGhlIHNhbWUgYXMgaXRzIGFuY2VzdG9ycy4iX3MgfSk7CiAgICAgICAg
IHJldHVybjsKICAgICB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRpbmF0b3IuaCBiL1NvdXJjZS9X
ZWJLaXQvV2ViUHJvY2Vzcy9XZWJBdXRoZW50aWNhdGlvbi9XZWJBdXRoZW50aWNhdG9yQ29vcmRp
bmF0b3IuaAppbmRleCAyNTljOWU1NjJjMzkzYjBlNjNlYmI3OGUzZjc3YzI3OWRhNjk3MmY3Li4w
ZWQzZTc1MmE3MDMzZWUzYjgzZTQwYjMxYjZmNjQ0MDMzOGFlYmZmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViQXV0aGVudGljYXRpb24vV2ViQXV0aGVudGljYXRvckNv
b3JkaW5hdG9yLmgKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYkF1dGhlbnRpY2F0
aW9uL1dlYkF1dGhlbnRpY2F0b3JDb29yZGluYXRvci5oCkBAIC00MSw3ICs0MSw3IEBAIHB1Ymxp
YzoKIHByaXZhdGU6CiAgICAgLy8gV2ViQ29yZTo6QXV0aGVudGljYXRvckNvb3JkaW5hdG9yQ2xp
ZW50CiAgICAgdm9pZCBtYWtlQ3JlZGVudGlhbChjb25zdCBXZWJDb3JlOjpGcmFtZSYsIGNvbnN0
IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgY29uc3QgVmVjdG9yPHVpbnQ4X3Q+JiwgY29uc3Qg
V2ViQ29yZTo6UHVibGljS2V5Q3JlZGVudGlhbENyZWF0aW9uT3B0aW9ucyYsIFdlYkNvcmU6OlJl
cXVlc3RDb21wbGV0aW9uSGFuZGxlciYmKSBmaW5hbDsKLSAgICB2b2lkIGdldEFzc2VydGlvbihj
b25zdCBXZWJDb3JlOjpGcmFtZSYsIGNvbnN0IFdlYkNvcmU6OlNlY3VyaXR5T3JpZ2luJiwgY29u
c3QgVmVjdG9yPHVpbnQ4X3Q+JiBoYXNoLCBjb25zdCBXZWJDb3JlOjpQdWJsaWNLZXlDcmVkZW50
aWFsUmVxdWVzdE9wdGlvbnMmLCBXZWJDb3JlOjpNZWRpYXRpb25SZXF1aXJlbWVudCwgV2ViQ29y
ZTo6UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOworICAgIHZvaWQgZ2V0QXNzZXJ0
aW9uKGNvbnN0IFdlYkNvcmU6OkZyYW1lJiwgY29uc3QgV2ViQ29yZTo6U2VjdXJpdHlPcmlnaW4m
LCBjb25zdCBWZWN0b3I8dWludDhfdD4mIGhhc2gsIGNvbnN0IFdlYkNvcmU6OlB1YmxpY0tleUNy
ZWRlbnRpYWxSZXF1ZXN0T3B0aW9ucyYsIFdlYkNvcmU6Ok1lZGlhdGlvblJlcXVpcmVtZW50LCBj
b25zdCBzdGQ6OnBhaXI8V2ViQXV0aG46OlNjb3BlLCBzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlNl
Y3VyaXR5T3JpZ2luRGF0YT4+JiwgV2ViQ29yZTo6UmVxdWVzdENvbXBsZXRpb25IYW5kbGVyJiYp
IGZpbmFsOwogICAgIHZvaWQgaXNDb25kaXRpb25hbE1lZGlhdGlvbkF2YWlsYWJsZShXZWJDb3Jl
OjpRdWVyeUNvbXBsZXRpb25IYW5kbGVyJiYpIGZpbmFsOwogICAgIHZvaWQgaXNVc2VyVmVyaWZ5
aW5nUGxhdGZvcm1BdXRoZW50aWNhdG9yQXZhaWxhYmxlKFdlYkNvcmU6OlF1ZXJ5Q29tcGxldGlv
bkhhbmRsZXImJikgZmluYWw7CiAgICAgdm9pZCByZXNldFVzZXJHZXN0dXJlUmVxdWlyZW1lbnQo
KSBmaW5hbCB7IG1fcmVxdWlyZVVzZXJHZXN0dXJlID0gZmFsc2U7IH0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAxZjA5NjI4
M2QwOTk2MmRjYWY4MjU1ZTRkOGY5YjVhZTY3NDlmZjczLi44NDU1ZGVlMWZiMWRjNDk0NGY1ZTlk
MDg4YmRkY2NmMTFiMjcxZThiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTkgQEAKKzIwMjItMDMtMDggIEog
UGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgorCisgICAgICAgIFtXZWJBdXRobl0gVXNpbmcg
V2ViQXV0aG4gd2l0aGluIGNyb3NzLW9yaWdpbiBpZnJhbWUgZWxlbWVudHMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyMjI0MAorICAgICAgICByZGFy
Oi8vcHJvYmxlbS83NDgzMDc0OAorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0u
CisKKyAgICAgICAgVXBkYXRlIGV4aXN0aW5nIHRlc3RzIGFuZCBjcmVhdGUgbmV3IHRlc3QgZm9y
IGNyb3NzLW9yaWdpbiwgbm9uIHNhbWUtc2l0ZSBpLWZyYW1lcy4KKworICAgICAgICAqIGh0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5
LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0
dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFu
Y2VzdG9ycy5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4v
cHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLmh0
bWw6CisgICAgICAgICogaHR0cC93cHQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3Jl
ZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbDogQWRkZWQuCisKIDIwMjItMDMtMDggIEog
UGFzY29lICA8al9wYXNjb2VAYXBwbGUuY29tPgogCiAgICAgICAgIFsgaU9TIF0gMlggaHR0cC93
cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyZWF0ZS1mYWlsdXJlLWxvY2FsIChs
YXlvdXQtdGVzdHMpIGFyZSBjb25zdGFudCB0ZXh0IGZhaWx1cmVzCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3Jp
Z2luLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1
YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIwYTZjMTBiYWQzZDYwZTg4ZmYxMjIyMmNlNWUwZDI3ODJkMjk4ZjcKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRl
bnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKwor
CitQQVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiwgTk9UIHNhbWUt
c2l0ZSB3aXRoIHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2FuIHVz
ZSBnZXQoKS4KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVi
bGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLWNyb3NzLW9yaWdpbi5odHRw
cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjVjYjVlYjI4YjM5ZjFiNWMxYmI5NTA5MGFkZDJmZWY3MzhkYzE2
MDIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJs
aWMta2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTAsMCArMSw4IEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIFdlYkF1dGhlbnRpY2F0
aW9uTW9kZXJuRW5hYmxlZD1mYWxzZSBdIC0tPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRl
c3RSdW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIH0KKyAgICBsb2NhdGlvbj0iaHR0cHM6Ly8x
MjcuMC4wLjE6OTQ0My9XZWJLaXQvd2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3JlZGVu
dGlhbC1jcm9zcy1vcmlnaW4uaHR0cHMuaHRtbCIKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVkZW50aWFsLXNhbWUtb3Jp
Z2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAv
d3B0L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2Vz
dG9ycy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggYzcwMjFkODE4MTcwMjQ0ZDYyNDhiZjA1ZWQ2
YThlOTljYzg3MTNmMS4uODhjNDI1Y2Y0OTMyNjY3ZDg3YzYzYzMyNzQ2YTAyNDUzNGYwM2VjNiAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvd2ViYXV0aG4vcHVibGljLWtleS1jcmVk
ZW50aWFsLXNhbWUtb3JpZ2luLXdpdGgtYW5jZXN0b3JzLmh0dHBzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3dwdC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2Ft
ZS1vcmlnaW4td2l0aC1hbmNlc3RvcnMuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDUgKzQsNSBA
QCBQQVNTIFRlc3RzIHRoYXQgYSBmcmFtZSB0aGF0IGRvZXNuJ3Qgc2hhcmUgdGhlIHNhbWUgb3Jp
Z2luIHdpdGggYWxsIGl0cyBhbmNlc3RvcgogUEFTUyBUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBk
b2Vzbid0IHNoYXJlIHRoZSBzYW1lIG9yaWdpbiB3aXRoIGFsbCBpdHMgYW5jZXN0b3JzIGNvdWxk
IG5vdCBhY2Nlc3MgdGhlIEFQSS4gMgogUEFTUyBUZXN0cyB0aGF0IGEgZnJhbWUgdGhhdCBpcyBz
YW1lLXNpdGUsIGNyb3NzLW9yaWdpbiB3aXRob3V0IHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQg
ZmVhdHVyZSBwb2xpY3kgY2Fubm90IHVzZSBnZXQoKS4KIFBBU1MgVGVzdHMgdGhhdCBhIGZyYW1l
IHRoYXQgaXMgc2FtZS1zaXRlLCBjcm9zcy1vcmlnaW4gd2l0aCBwdWJsaWNrZXktY3JlZGVudGlh
bHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbiB1c2UgZ2V0KCkuCi1QQVNTIFRlc3RzIHRoYXQgYSBm
cmFtZSB0aGF0IGlzIGNyb3NzLW9yaWdpbiwgTk9UIHNhbWUtc2l0ZSAgd2l0aCBwdWJsaWNrZXkt
Y3JlZGVudGlhbHMtZ2V0IGZlYXR1cmUgcG9saWN5IGNhbm5vdCB1c2UgZ2V0KCkuCitQQVNTIFRl
c3RzIHRoYXQgYSBmcmFtZSB1c2luZyBhbiBpcCBhZGRyZXNzIHRoYXQgaXMgY3Jvc3Mtb3JpZ2lu
LCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBv
bGljeSBjYW5ub3QgdXNlIGdldCgpLgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dw
dC93ZWJhdXRobi9wdWJsaWMta2V5LWNyZWRlbnRpYWwtc2FtZS1vcmlnaW4td2l0aC1hbmNlc3Rv
cnMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1rZXkt
Y3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sCmluZGV4IDU4
MTQ3NWU1MjA1MDRkMDhhOWMxZmE2ZjI3ODI2YzRlMjU1MjhiNjIuLjVkM2U4YzMxZjdlYWUxMmIw
MWQyODI1M2RkZTE3N2U2YWZkNWRjYTMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2h0dHAvd3B0
L3dlYmF1dGhuL3B1YmxpYy1rZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9y
cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3B1YmxpYy1r
ZXktY3JlZGVudGlhbC1zYW1lLW9yaWdpbi13aXRoLWFuY2VzdG9ycy5odHRwcy5odG1sCkBAIC0x
LDQgKzEsNCBAQAotPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJB
dXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+PCEt
LSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJsZWQ9ZmFs
c2UgXSAtLT4KIDxodG1sPgogPGhlYWQ+CiAgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgpAQCAt
MzcsOSArMzcsOSBAQAogCiAgICAgICAgIHByb21pc2VfdGVzdCh0ID0+IHsKICAgICAgICAgICAg
IHJldHVybiB3aXRoQ3Jvc3NPcmlnaW5JZnJhbWUoInNhbWVzaXRlLWlmcmFtZS5odG1sIiwgInB1
YmxpY2tleS1jcmVkZW50aWFscy1nZXQiKS50aGVuKChtZXNzYWdlKSA9PiB7Ci0gICAgICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhtZXNzYWdlLmRhdGEsICJUaHJvdyBOb3RBbGxvd2VkRXJyb3I6
IFRoZSBvcmlnaW4gb2YgdGhlIGRvY3VtZW50IGlzIG5vdCB0aGUgc2FtZSBhcyBpdHMgYW5jZXN0
b3JzLiIpOworICAgICAgICAgICAgICAgIGFzc2VydF9lcXVhbHMobWVzc2FnZS5kYXRhLCAiVGhy
b3cgU2VjdXJpdHlFcnJvcjogVGhlIGVmZmVjdGl2ZSBkb21haW4gb2YgdGhlIGRvY3VtZW50IGlz
IG5vdCBhIHZhbGlkIGRvbWFpbi4iKTsKICAgICAgICAgICAgIH0pOwotICAgICAgICB9LCAiVGVz
dHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlICB3aXRo
IHB1YmxpY2tleS1jcmVkZW50aWFscy1nZXQgZmVhdHVyZSBwb2xpY3kgY2Fubm90IHVzZSBnZXQo
KS4iKTsKKyAgICAgICAgfSwgIlRlc3RzIHRoYXQgYSBmcmFtZSB1c2luZyBhbiBpcCBhZGRyZXNz
IHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1zaXRlIHdpdGggcHVibGlja2V5LWNyZWRl
bnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW5ub3QgdXNlIGdldCgpLiIpOwogICAgIDwvc2Ny
aXB0PgogPC9ib2R5PgogPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
d2ViYXV0aG4vcmVzb3VyY2VzL3B1YmxpYy1rZXktY3JlZGVudGlhbC1jcm9zcy1vcmlnaW4uaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9wdWJsaWMt
a2V5LWNyZWRlbnRpYWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjk1ZDIx
NzkxMzM1YmIxNWM4YmQyZDI3OTI5NDA1NWIxZTlhMWM2ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvd3B0L3dlYmF1dGhuL3Jlc291cmNlcy9wdWJsaWMta2V5LWNyZWRlbnRp
YWwtY3Jvc3Mtb3JpZ2luLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBXZWJBdXRoZW50aWNhdGlvbk1vZGVybkVuYWJs
ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgi
PgorICAgIDx0aXRsZT5XZWIgQXV0aGVudGljYXRpb24gQVBJOiBUZXN0cyB0aGF0IGEgZnJhbWUg
dGhhdCBpcyBjcm9zcy1vcmlnaW4gd2l0aCBmZWF0dXJlIHBvbGljeSBjYW4gYWNjZXNzIHRoZSBB
UEkuPC90aXRsZT4KKyAgICA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+
PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSIvY29tbW9uL3V0aWxzLmpzIj48L3Njcmlw
dD4KKyAgICA8c2NyaXB0IHNyYz0iL2NvbW1vbi9nZXQtaG9zdC1pbmZvLnN1Yi5qcyI+PC9zY3Jp
cHQ+CisgICAgPHNjcmlwdCBzcmM9Ii4vdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9k
eT4KKyAgICA8c2NyaXB0PgorICAgICAgICBwcm9taXNlX3Rlc3QodCA9PiB7CisgICAgICAgICAg
ICAvLyBsb2NhbGhvc3QgaXMgY3Jvc3Mtb3JpZ2luIGhlcmUuCisgICAgICAgICAgICByZXR1cm4g
d2l0aFNhbWVTaXRlSWZyYW1lKCJzYW1lc2l0ZS1pZnJhbWUuaHRtbCIsICJwdWJsaWNrZXktY3Jl
ZGVudGlhbHMtZ2V0IikudGhlbigobWVzc2FnZSkgPT4geworICAgICAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMobWVzc2FnZS5kYXRhLCAiUEFTUyEiKTsKKyAgICAgICAgICAgIH0pOworICAgICAg
ICB9LCAiVGVzdHMgdGhhdCBhIGZyYW1lIHRoYXQgaXMgY3Jvc3Mtb3JpZ2luLCBOT1Qgc2FtZS1z
aXRlIHdpdGggcHVibGlja2V5LWNyZWRlbnRpYWxzLWdldCBmZWF0dXJlIHBvbGljeSBjYW4gdXNl
IGdldCgpLiIpOworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
      

    </bug>

</bugzilla>