<?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>233173</bug_id>
          
          <creation_ts>2021-11-15 22:41:24 -0800</creation_ts>
          <short_desc>PCM: Add capability for click destination to fire triggering event without cross-site requests to the click source</short_desc>
          <delta_ts>2021-11-17 17:08:52 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="John Wilander">wilander</reporter>
          <assigned_to name="John Wilander">wilander</assigned_to>
          <cc>achristensen</cc>
    
    <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>katherine_cheney</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1815364</commentid>
    <comment_count>0</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-15 22:41:24 -0800</bug_when>
    <thetext>We should offer click destination sites a non-JavaScript way to fire triggering events without a requirement to make cross-site requests to source sites. This is referred to as a &quot;same-site pixel API&quot; and has been discussed in W3C Privacy CG: https://github.com/privacycg/private-click-measurement/issues/71. The reason why some merchants want such an &quot;API&quot; is reluctance to deploy new JavaScript on their sites. In some industries it&apos;s even a compliance issue. Legacy &quot;pixels&quot; are however accepted and so a same-site &quot;pixel&quot; can work for them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815365</commentid>
    <comment_count>1</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-15 22:42:23 -0800</bug_when>
    <thetext>&lt;rdar://79426605&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815372</commentid>
    <comment_count>2</comment_count>
      <attachid>444349</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-15 23:34:29 -0800</bug_when>
    <thetext>Created attachment 444349
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815608</commentid>
    <comment_count>3</comment_count>
      <attachid>444422</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-16 12:39:44 -0800</bug_when>
    <thetext>Created attachment 444422
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815615</commentid>
    <comment_count>4</comment_count>
      <attachid>444422</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2021-11-16 13:14:05 -0800</bug_when>
    <thetext>Comment on attachment 444422
Patch

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

&gt; Source/WTF/wtf/URL.cpp:1195
&gt; +    return URLParser::parseURLEncodedForm(url.query());

This decodes percent encoded characters and replaces spaces with &apos;+&apos;.  It would be worth adding some percent-encoded non-ASCII characters in your tests to verify what happens there.

&gt; Source/WTF/wtf/URL.h:253
&gt; +WTF_EXPORT_PRIVATE Vector&lt;KeyValuePair&lt;String, String&gt;&gt; queryParameters(const URL&amp;);

This should probably be Vector&lt;KeyValuePair&lt;String, String&gt;&gt; URL::queryParameters() const

&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:107
&gt; +std::optional&lt;String&gt; PrivateClickMeasurement::parseAttributionRequestQuery(const URL&amp; redirectURL, AttributionTriggerData&amp; attributionTriggerData)

I would make this return an Expected&lt;AttributionTriggerData, String&gt; so you don&apos;t need a default constructed out param.

&gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:109
&gt; +    if (!redirectURL.hasQuery())

I would check if !parameters.size() to make it more straightforward below that parameters.first() will never go out of bounds.

&gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:251
&gt; +    SourceSite sourceSite;

It isn&apos;t necessary to add a default constructor to SourceSite.  Could you just change the RegistrableDomain in the lines below, then still make a SourceSite with a RegistrableDomain?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815620</commentid>
    <comment_count>5</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-16 13:24:59 -0800</bug_when>
    <thetext>(In reply to Alex Christensen from comment #4)
&gt; Comment on attachment 444422 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=444422&amp;action=review
&gt; 
&gt; &gt; Source/WTF/wtf/URL.cpp:1195
&gt; &gt; +    return URLParser::parseURLEncodedForm(url.query());
&gt; 
&gt; This decodes percent encoded characters and replaces spaces with &apos;+&apos;.  It
&gt; would be worth adding some percent-encoded non-ASCII characters in your
&gt; tests to verify what happens there.

I&apos;m looking for exact key matches. Are you suggesting negative tests or for the value which then gets turned into a URL?

&gt; &gt; Source/WTF/wtf/URL.h:253
&gt; &gt; +WTF_EXPORT_PRIVATE Vector&lt;KeyValuePair&lt;String, String&gt;&gt; queryParameters(const URL&amp;);
&gt; 
&gt; This should probably be Vector&lt;KeyValuePair&lt;String, String&gt;&gt;
&gt; URL::queryParameters() const

It&apos;s a free function. I believe Darin wanted us to make these as such. See removeQueryParameters().

&gt; &gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:107
&gt; &gt; +std::optional&lt;String&gt; PrivateClickMeasurement::parseAttributionRequestQuery(const URL&amp; redirectURL, AttributionTriggerData&amp; attributionTriggerData)
&gt; 
&gt; I would make this return an Expected&lt;AttributionTriggerData, String&gt; so you
&gt; don&apos;t need a default constructed out param.

It used to be called further down in PrivateClickMeasurement::parseAttributionRequest() at which point I had the AttributionTriggerData object. But I would have to return an AttributionTriggerData object from PrivateClickMeasurement::parseAttributionRequestQuery even if there was no query string, as long as there was no error.

&gt; &gt; Source/WebCore/loader/PrivateClickMeasurement.cpp:109
&gt; &gt; +    if (!redirectURL.hasQuery())
&gt; 
&gt; I would check if !parameters.size() to make it more straightforward below
&gt; that parameters.first() will never go out of bounds.

I&apos;ll add that.

&gt; &gt; Source/WebKit/NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementManager.cpp:251
&gt; &gt; +    SourceSite sourceSite;
&gt; 
&gt; It isn&apos;t necessary to add a default constructor to SourceSite.  Could you
&gt; just change the RegistrableDomain in the lines below, then still make a
&gt; SourceSite with a RegistrableDomain?

I&apos;ll have a look.

Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815753</commentid>
    <comment_count>6</comment_count>
      <attachid>444460</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-16 17:55:22 -0800</bug_when>
    <thetext>Created attachment 444460
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1815756</commentid>
    <comment_count>7</comment_count>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-16 17:57:14 -0800</bug_when>
    <thetext>Nothing done about the URLParser::parseURLEncodedForm(url.query()) testing bit. Are you suggesting URL API tests there? It feels like a more narrow function name could be good too, to signal to users what the decoding looks like. I could also skip adding this function and use URLParser::parseURLEncodedForm(url.query()) directly in the patch&apos;s code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816022</commentid>
    <comment_count>8</comment_count>
      <attachid>444460</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-17 11:17:47 -0800</bug_when>
    <thetext>Comment on attachment 444460
Patch

The WK1 test failure is unrelated.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816198</commentid>
    <comment_count>9</comment_count>
      <attachid>444460</attachid>
    <who name="John Wilander">wilander</who>
    <bug_when>2021-11-17 16:34:40 -0800</bug_when>
    <thetext>Comment on attachment 444460
Patch

Thank you, Alex!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1816229</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-11-17 17:08:48 -0800</bug_when>
    <thetext>Committed r285967 (244367@main): &lt;https://commits.webkit.org/244367@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 444460.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444349</attachid>
            <date>2021-11-15 23:34:29 -0800</date>
            <delta_ts>2021-11-16 12:39:41 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233173-20211115233429.patch</filename>
            <type>text/plain</type>
            <size>52473</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZkNDhhMjBkMDQyMDczZTkwNzc4NDk1
ZWNlNDQzYWJkYTdkYzQwOWUuLmE5MzljZDQzOThhNjM4MTY4MmU0ZmI5NGNlOGFlNzgyMWE2NzMw
OWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTUgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0eSBmb3IgY2xpY2sg
ZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQgY3Jvc3Mtc2l0ZSBy
ZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83OTQyNjYwNT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9VUkwu
Y3BwOgorICAgICAgICAoV1RGOjpxdWVyeVBhcmFtZXRlcnMpOgorICAgICAgICAgICAgTmV3IGNv
bnZlbmllbmNlIGdldHRlci4KKyAgICAgICAgKiB3dGYvVVJMLmg6CisKIDIwMjEtMTEtMTUgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbm90aGVyIDxtb2Rl
bD4gYmFja2VuZCBiYWNrZWQgYnkgU2NlbmVLaXQgdG8gcHJvdmUgb3V0IE1vZGVsUGxheWVyIGlu
ZnJhc3RydWN0dXJlIGEgYml0IG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMDJmOTMxZGNhMjAzYzA1MTk0
MGIzYmQ5YzYzMDJiNGU3YzgxMzY2Li4zMWQxNjFiYmNlMjhkMjc0OWMzNzZiYTc2NDA3M2EyMjM1
MGNmNDExIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTcgQEAKKzIwMjEtMTEtMTUgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0
eSBmb3IgY2xpY2sgZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQg
Y3Jvc3Mtc2l0ZSByZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83
OTQyNjYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGVuYWJsZXMgY2xpY2sgZGVzdGluYXRpb24gc2l0ZXMgYSBub24tSmF2YVNj
cmlwdCB3YXkgdG8gZmlyZSB0cmlnZ2VyaW5nCisgICAgICAgIGV2ZW50cyB3aXRob3V0IGEgcmVx
dWlyZW1lbnQgdG8gbWFrZSBjcm9zcy1zaXRlIHJlcXVlc3RzIHRvIHNvdXJjZSBzaXRlcy4gVGhp
cyBpcworICAgICAgICByZWZlcnJlZCB0byBhcyBhICJzYW1lLXNpdGUgcGl4ZWwgQVBJIiBhbmQg
aGFzIGJlZW4gZGlzY3Vzc2VkIGluIFczQyBQcml2YWN5IENHOgorICAgICAgICBodHRwczovL2dp
dGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvaXNzdWVzLzcxCisK
KyAgICAgICAgVGhlIHJlYXNvbiB3aHkgc29tZSBtZXJjaGFudHMgd2FudCBzdWNoIGFuICJBUEki
IGlzIHJlbHVjdGFuY2UgdG8gZGVwbG95IG5ldworICAgICAgICBKYXZhU2NyaXB0IG9uIHRoZWly
IHNpdGVzLiBJbiBzb21lIGluZHVzdHJpZXMgaXQncyBldmVuIGEgY29tcGxpYW5jZSBpc3N1ZS4g
TGVnYWN5CisgICAgICAgICJwaXhlbHMiIGFyZSBob3dldmVyIGFjY2VwdGVkIGFuZCBzbyBhIHNh
bWUtc2l0ZSAicGl4ZWwiIGNhbiB3b3JrIGZvciB0aGVtLgorCisgICAgICAgIFRlc3Q6IGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJp
YnV0aW9uLXNvdXJjZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sCisKKyAgICAgICAgKiBo
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JF
bGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICAgICBUaGlzIGNoYW5nZSBpcyBiZWNhdXNl
IG9mIGNsYXJpZmljYXRpb24gaW4gbmFtaW5nOgorICAgICAgICAgICAgLSBhdHRyaWJ1dGlvblJl
cG9ydFNvdXJjZVVSTCB0byBhdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMCisgICAgICAg
ICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VVbmxpbmthYmxlVG9rZW46Omlzb2xhdGVk
Q29weSBjb25zdCk6CisgICAgICAgICAgICBGaXhlZCByZXR1cm4gdmFsdWUgZm9yIG5vbi1Db2Nv
YSBwbGF0Zm9ybXMuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3RRdWVyeSk6CisgICAgICAgICAgICBOZXcgZnVuY3Rpb24g
dGhhdCBwYXJzZXMgb3V0IHF1ZXJ5IHN0cmluZyBwYXJhbWV0ZXJzLgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KToKKyAg
ICAgICAgICAgIE5vdyBjYWxscyB0aGUgbmV3IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJz
ZUF0dHJpYnV0aW9uUmVxdWVzdFF1ZXJ5KCkKKyAgICAgICAgICAgIHdoaWNoIGhhbmRsZXMgZGF0
YSBjb21pbmcgaW4gaW4gcXVlcnkgcGFyYW1ldGVycywgaW4gdGhpcyBjYXNlCisgICAgICAgICAg
ICB0aGUgbmV3IHBhcmFtZXRlciAiYXR0cmlidXRpb25Tb3VyY2UuIgorICAgICAgICAoV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VV
UkwgY29uc3QpOgorICAgICAgICAgICAgTmV3IG5hbWUuCisgICAgICAgIChXZWJDb3JlOjpQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJM
IGNvbnN0KToKKyAgICAgICAgICAgIE5ldyBuYW1lLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0SlNPTiBjb25zdCk6CisgICAgICAg
ICAgICBOb3cgdXNlcyB0aGUgY29uc3RhbnQgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRWZXJzaW9u
LgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRva2VuU2lnbmF0
dXJlSlNPTiBjb25zdCk6CisgICAgICAgICAgICBOb3cgdXNlcyB0aGUgY29uc3RhbnQgcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRWZXJzaW9uLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMIGNvbnN0KTogRGVsZXRlZC4K
KyAgICAgICAgICAgIFJlbmFtZWQgYXR0cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVSTC4KKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9y
dEF0dHJpYnV0ZU9uVVJMIGNvbnN0KTogRGVsZXRlZC4KKyAgICAgICAgICAgIFJlbmFtZWQgYXR0
cmlidXRpb25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMLgorICAgICAgICAqIGxvYWRlci9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC5oOgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OnNvdXJjZVNlY3JldFRva2VuIGNvbnN0KToKKyAgICAgICAgICAgIE5ldyBuYW1l
LgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
VHJpZ2dlckRhdGE6OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6ZGVjb2RlKToKKyAgICAgICAg
ICAgIEVuY29kaW5nIGFuZCBkZWNvZGluZyBvZiB0aGUgbmV3IGZpZWxkIHNvdXJjZVJlZ2lzdHJh
YmxlRG9tYWluLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnNv
dXJjZVVubGlua2FibGVUb2tlbiBjb25zdCk6IERlbGV0ZWQuCisgICAgICAgICAgICBSZW5hbWVk
IHNvdXJjZVNlY3JldFRva2VuLgorICAgICAgICAgICAgTm90ZSB0aGF0IGl0IHdhcyBhbHdheXMg
dGhlIHNlY3JldCB0b2tlbiB1c2VkLCBqdXN0IGJhZCByZW5hbWluZyBlYXJsaWVyLgorCiAyMDIx
LTExLTE1ICBTYW0gV2VpbmlnICA8d2VpbmlnQGFwcGxlLmNvbT4KIAogICAgICAgICBBZGQgYW5v
dGhlciA8bW9kZWw+IGJhY2tlbmQgYmFja2VkIGJ5IFNjZW5lS2l0IHRvIHByb3ZlIG91dCBNb2Rl
bFBsYXllciBpbmZyYXN0cnVjdHVyZSBhIGJpdCBtb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcwMzg0MWNmMjM3
ZmZhM2RjN2JkYjlmMzFjYjQ4NWM2ODUzZmE4MDQuLmUzMTg3ZTUzYjI2YThmMGRjM2Y2NjYyNzk2
ZTBiM2NhNjIyMTExZTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBi
L1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDQgQEAKKzIwMjEtMTEtMTUgIEpv
aG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2Fw
YWJpbGl0eSBmb3IgY2xpY2sgZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdp
dGhvdXQgY3Jvc3Mtc2l0ZSByZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJk
YXI6Ly83OTQyNjYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBUaGlzIHBhdGNoIGVuYWJsZXMgY2xpY2sgZGVzdGluYXRpb24gc2l0ZXMgYSBub24t
SmF2YVNjcmlwdCB3YXkgdG8gZmlyZSB0cmlnZ2VyaW5nCisgICAgICAgIGV2ZW50cyB3aXRob3V0
IGEgcmVxdWlyZW1lbnQgdG8gbWFrZSBjcm9zcy1zaXRlIHJlcXVlc3RzIHRvIHNvdXJjZSBzaXRl
cy4gVGhpcyBpcworICAgICAgICByZWZlcnJlZCB0byBhcyBhICJzYW1lLXNpdGUgcGl4ZWwgQVBJ
IiBhbmQgaGFzIGJlZW4gZGlzY3Vzc2VkIGluIFczQyBQcml2YWN5IENHOgorICAgICAgICBodHRw
czovL2dpdGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvaXNzdWVz
LzcxCisKKyAgICAgICAgVGhlIHJlYXNvbiB3aHkgc29tZSBtZXJjaGFudHMgd2FudCBzdWNoIGFu
ICJBUEkiIGlzIHJlbHVjdGFuY2UgdG8gZGVwbG95IG5ldworICAgICAgICBKYXZhU2NyaXB0IG9u
IHRoZWlyIHNpdGVzLiBJbiBzb21lIGluZHVzdHJpZXMgaXQncyBldmVuIGEgY29tcGxpYW5jZSBp
c3N1ZS4gTGVnYWN5CisgICAgICAgICJwaXhlbHMiIGFyZSBob3dldmVyIGFjY2VwdGVkIGFuZCBz
byBhIHNhbWUtc2l0ZSAicGl4ZWwiIGNhbiB3b3JrIGZvciB0aGVtLgorCisgICAgICAgICogTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnREYXRhYmFzZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6RGF0YWJhc2U6Omluc2VydFBy
aXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgICAgIFRoZXNlIGNoYW5nZXMgYXJlIGp1
c3QgYSBjb3JyZWN0aW9uIG9mIGEgZnVuY3Rpb24gbmFtZToKKyAgICAgICAgICAgIC0gc291cmNl
VW5saW5rYWJsZVRva2VuKCkgdG8gc291cmNlU2VjcmV0VG9rZW4oKQorICAgICAgICAgICAgTm90
ZSB0aGF0IGl0IHdhcyBhbHdheXMgdGhlIHNlY3JldCB0b2tlbiB1c2VkLCBqdXN0IGJhZCByZW5h
bWluZyBlYXJsaWVyLgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHA6CisgICAgICAgIChXZWJL
aXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmlidXRpb24pOgor
ICAgICAgICAgICAgTm93IGNoZWNrcyBpZiB0aGUgaW5jb21pbmcgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEKKyAgICAgICAgICAgIGNhcnJp
ZXMgYSBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbi4gSWYgc28sIGl0IGFjY2VwdHMgdGhhdCBkb21h
aW4gYXMgdGhlIHNvdXJjZSBzaXRlCisgICAgICAgICAgICBmb3IgYXR0cmlidXRpb24gaWYgdGhl
IHRyaWdnZXJpbmcgZXZlbnQgd2FzIHNhbWUtc2l0ZSBhcyB0aGUgZmlyc3QtcGFydHkuCisgICAg
ICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6YXR0cmlidXRlKToK
KyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29u
dmVyc2lvblJlcXVlc3QpOgorICAgICAgICAgICAgVGhlc2UgY2hhbmdlcyBhcmUganVzdCBhIGNv
cnJlY3Rpb24gb2YgYSBmdW5jdGlvbiBuYW1lOgorICAgICAgICAgICAgLSBzb3VyY2VVbmxpbmth
YmxlVG9rZW4oKSB0byBzb3VyY2VTZWNyZXRUb2tlbigpCisgICAgICAgICAgICBOb3RlIHRoYXQg
aXQgd2FzIGFsd2F5cyB0aGUgc2VjcmV0IHRva2VuIHVzZWQsIGp1c3QgYmFkIHJlbmFtaW5nIGVh
cmxpZXIuCisgICAgICAgIChXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
ZmlyZUNvbnZlcnNpb25SZXF1ZXN0SW1wbCk6CisgICAgICAgICAgICBUaGVzZSBjaGFuZ2VzIGFy
ZSBiZWNhdXNlIG9mIGNsYXJpZmljYXRpb24gaW4gbmFtaW5nOgorICAgICAgICAgICAgLSBhdHRy
aWJ1dGlvblJlcG9ydFNvdXJjZVVSTCB0byBhdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJM
CisgICAgICAgICAgICAtIGF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwgdG8gYXR0cmli
dXRpb25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMCisgICAgICAgICogTmV0d29ya1Byb2Nlc3Mv
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmg6
CisgICAgICAgICogTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlBDTTo6U3RvcmU6
OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KToKKyAgICAgICAgKiBOZXR3b3JrUHJv
Y2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3Jl
Lmg6CisKIDIwMjEtMTEtMTUgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3Jn
PgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHJldmVydGluZyByMjg1ODEyLgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dURi93dGYvVVJMLmNwcCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAKaW5kZXggMjZm
MGU5M2VkZmUxNGVhMzUxZjYxNDhhZmExNjkxOWJhMGI2MzJmYi4uNDQ4ZGRlZTIxNjBlZjE4Y2E1
ZTA2NjEzOTBlNTk4ZDUzYmM1NGQyYSAxMDA2NDQKLS0tIGEvU291cmNlL1dURi93dGYvVVJMLmNw
cAorKysgYi9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCkBAIC0xMTkwLDYgKzExOTAsMTEgQEAgYm9v
bCBVUkw6Omhvc3RJc0lQQWRkcmVzcyhTdHJpbmdWaWV3IGhvc3QpCiAKICNlbmRpZgogCitWZWN0
b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gcXVlcnlQYXJhbWV0ZXJzKGNvbnN0IFVS
TCYgdXJsKQoreworICAgIHJldHVybiBVUkxQYXJzZXI6OnBhcnNlVVJMRW5jb2RlZEZvcm0odXJs
LnF1ZXJ5KCkpOworfQorCiBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmluZywgU3RyaW5nPj4gZGlm
ZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKGNvbnN0IFVSTCYgZmlyc3RVUkwsIGNvbnN0IFVSTCYgc2Vj
b25kVVJMKQogewogICAgIGF1dG8gZmlyc3RRdWVyeVBhcmFtZXRlcnMgPSBVUkxQYXJzZXI6OnBh
cnNlVVJMRW5jb2RlZEZvcm0oZmlyc3RVUkwucXVlcnkoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V1RGL3d0Zi9VUkwuaCBiL1NvdXJjZS9XVEYvd3RmL1VSTC5oCmluZGV4IGNlYTRiN2E3NTQyYmQ2
MWRmN2JkNTg1NzcwMDgzMGM4MTkxZjlhYjEuLmI0YmFhZDE4ZTNlNzFhNDdjNGVmZDdlY2U1MTNj
MTEzYzkwYjk4OWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvd3RmL1VSTC5oCisrKyBiL1NvdXJj
ZS9XVEYvd3RmL1VSTC5oCkBAIC0yNTAsNiArMjUwLDcgQEAgYm9vbCBvcGVyYXRvciE9KGNvbnN0
IFN0cmluZyYsIGNvbnN0IFVSTCYpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgZXF1YWxJZ25v
cmluZ0ZyYWdtZW50SWRlbnRpZmllcihjb25zdCBVUkwmLCBjb25zdCBVUkwmKTsKIFdURl9FWFBP
UlRfUFJJVkFURSBib29sIHByb3RvY29sSG9zdEFuZFBvcnRBcmVFcXVhbChjb25zdCBVUkwmLCBj
b25zdCBVUkwmKTsKIFdURl9FWFBPUlRfUFJJVkFURSBWZWN0b3I8S2V5VmFsdWVQYWlyPFN0cmlu
ZywgU3RyaW5nPj4gZGlmZmVyaW5nUXVlcnlQYXJhbWV0ZXJzKGNvbnN0IFVSTCYsIGNvbnN0IFVS
TCYpOworV1RGX0VYUE9SVF9QUklWQVRFIFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJp
bmc+PiBxdWVyeVBhcmFtZXRlcnMoY29uc3QgVVJMJik7CiBXVEZfRVhQT1JUX1BSSVZBVEUgYm9v
bCBpc0VxdWFsSWdub3JpbmdRdWVyeUFuZEZyYWdtZW50cyhjb25zdCBVUkwmLCBjb25zdCBVUkwm
KTsKIFdURl9FWFBPUlRfUFJJVkFURSB2b2lkIHJlbW92ZVF1ZXJ5UGFyYW1ldGVycyhVUkwmLCBj
b25zdCBIYXNoU2V0PFN0cmluZz4mKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MQW5jaG9yRWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JF
bGVtZW50LmNwcAppbmRleCBhNmMwMTlkNTZmYjNmMDY1NTcxYmI5YmI2NWYwOTBjYWFlMDlhNjQ2
Li45NjliM2FkZTYxZThjNzc3MmQ4OWEwNmIxMmQ3MDI3MzA5YzA5ZDE3IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcApAQCAtNTM0LDcgKzUzNCw3IEBAIHZvaWQg
SFRNTEFuY2hvckVsZW1lbnQ6OmhhbmRsZUNsaWNrKEV2ZW50JiBldmVudCkKICAgICBhdXRvIHBy
aXZhdGVDbGlja01lYXN1cmVtZW50ID0gcGFyc2VQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOwog
ICAgIC8vIEEgbWF0Y2hpbmcgdHJpZ2dlcmluZyBldmVudCBuZWVkcyB0byBoYXBwZW4gYmVmb3Jl
IGFuIGF0dHJpYnV0aW9uIHJlcG9ydCBjYW4gYmUgc2VudC4KICAgICAvLyBUaHVzLCBVUkxzIHNo
b3VsZCBiZSBlbXB0eSBmb3Igbm93LgotICAgIEFTU0VSVCghcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQgfHwgKHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5hdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVS
TCgpLmlzTnVsbCgpICYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5hdHRyaWJ1dGlvblJlcG9y
dEF0dHJpYnV0ZU9uVVJMKCkuaXNOdWxsKCkpKTsKKyAgICBBU1NFUlQoIXByaXZhdGVDbGlja01l
YXN1cmVtZW50IHx8IChwcml2YXRlQ2xpY2tNZWFzdXJlbWVudC0+YXR0cmlidXRpb25SZXBvcnRD
bGlja1NvdXJjZVVSTCgpLmlzTnVsbCgpICYmIHByaXZhdGVDbGlja01lYXN1cmVtZW50LT5hdHRy
aWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKS5pc051bGwoKSkpOwogICAgIAogICAg
IGZyYW1lLT5sb2FkZXIoKS5jaGFuZ2VMb2NhdGlvbihjb21wbGV0ZWRVUkwsIGVmZmVjdGl2ZVRh
cmdldCwgJmV2ZW50LCByZWZlcnJlclBvbGljeSwgZG9jdW1lbnQoKS5zaG91bGRPcGVuRXh0ZXJu
YWxVUkxzUG9saWN5VG9Qcm9wYWdhdGUoKSwgbmV3RnJhbWVPcGVuZXJQb2xpY3ksIGRvd25sb2Fk
QXR0cmlidXRlLCBzeXN0ZW1QcmV2aWV3SW5mbywgV1RGTW92ZShwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudCkpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50LmNwcAppbmRleCA2OTRmM2I4MWIyOTUxN2QzYWJjMDljYjJkMjhiNDQxOTFmNmQ0YmIz
Li4xMjFhOWQyODEzNmFiZWI4MzI2NWMwYzRlNDY4NGQ1YzAyNmM5N2QwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTQ0LDYg
KzQ0LDcgQEAgc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRUb2tlblB1
YmxpY0tleVBhdGhbXSA9ICIvLndlbGwta25vd24vcHIKIHN0YXRpYyBjb25zdCBjaGFyIHByaXZh
dGVDbGlja01lYXN1cmVtZW50UmVwb3J0QXR0cmlidXRpb25QYXRoW10gPSAiLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvcmVwb3J0LWF0dHJpYnV0aW9uLyI7CiBjb25zdCBz
aXplX3QgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhUGF0aFNl
Z21lbnRTaXplID0gMjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFByaW9y
aXR5UGF0aFNlZ21lbnRTaXplID0gMjsKK2NvbnN0IHVpbnQ4X3QgcHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRWZXJzaW9uID0gMjsKIAogY29uc3QgU2Vjb25kcyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6bWF4QWdlKCkKIHsKQEAgLTgwLDYgKzgxLDggQEAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZVVubGlua2FibGVUb2tlbiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlVW4K
ICAgICAgICAgYmxpbmRlciwKICAgICAgICAgd2FpdGluZ1Rva2VuLAogICAgICAgICByZWFkeVRv
a2VuLAorI2Vsc2UKKyAgICAgICAgIiIsICIiLCAiIiwKICNlbmRpZgogICAgICAgICB2YWx1ZUJh
c2U2NFVSTC5pc29sYXRlZENvcHkoKQogICAgIH07CkBAIC0xMDMsMTUgKzEwNiw0NCBAQCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6aXNvbGF0ZWRDb3B5
KCkgY29uc3QKICAgICByZXR1cm4gY29weTsKIH0KIAorc3RkOjpvcHRpb25hbDxTdHJpbmc+IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdFF1ZXJ5KGNvbnN0
IFVSTCYgcmVkaXJlY3RVUkwsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmIGF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEpCit7CisgICAgaWYgKCFyZWRpcmVjdFVSTC5oYXNRdWVyeSgpKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgYXV0byBwYXJhbWV0ZXJzID0gcXVlcnlQYXJhbWV0
ZXJzKHJlZGlyZWN0VVJMKTsKKyAgICBpZiAocGFyYW1ldGVycy5zaXplKCkgPiAxKQorICAgICAg
ICByZXR1cm4gIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3Qg
YWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcXVlcnkgc3RyaW5nIGNvbnRhaW5lZCB1bnN1cHBv
cnRlZCBwYXJhbWV0ZXJzLiJfczsKKworICAgIGF1dG8gcGFyYW1ldGVyID0gcGFyYW1ldGVycy5m
aXJzdCgpOworICAgIGlmIChwYXJhbWV0ZXIua2V5ID09ICJhdHRyaWJ1dGlvblNvdXJjZSIpIHsK
KyAgICAgICAgaWYgKHBhcmFtZXRlci52YWx1ZS5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1
cm4gIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0
ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgYXR0cmlidXRpb25Tb3VyY2UgcXVlcnkgcGFyYW1ldGVyIGhh
ZCBubyB2YWx1ZS4iX3M7CisKKyAgICAgICAgYXV0byBhdHRyaWJ1dGlvblNvdXJjZVVSTCA9IFVS
TChVUkwoKSwgcGFyYW1ldGVyLnZhbHVlKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1dGlvblNvdXJj
ZVVSTC5pc1ZhbGlkKCkpCisgICAgICAgICAgICByZXR1cm4gIltQcml2YXRlIENsaWNrIE1lYXN1
cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgYXR0
cmlidXRpb25Tb3VyY2UgcXVlcnkgcGFyYW1ldGVyIHdhcyBub3QgYSB2YWxpZCBVUkwuIl9zOwor
CisgICAgICAgIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuc291cmNlUmVnaXN0cmFibGVEb21haW4g
PSBSZWdpc3RyYWJsZURvbWFpbiB7IGF0dHJpYnV0aW9uU291cmNlVVJMIH07CisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfQorCisgICAgcmV0dXJuICJbUHJpdmF0ZSBDbGljayBN
ZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCBk
aWQgbm90IGNvbnRhaW4gYW4gYXR0cmlidXRpb25Tb3VyY2UgcXVlcnkgcGFyYW1ldGVyLiJfczsK
K30KKwogRXhwZWN0ZWQ8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEsIFN0cmluZz4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25S
ZXF1ZXN0KGNvbnN0IFVSTCYgcmVkaXJlY3RVUkwpCiB7CiAgICAgYXV0byBwYXRoID0gU3RyaW5n
VmlldyhyZWRpcmVjdFVSTC5zdHJpbmcoKSkuc3Vic3RyaW5nKHJlZGlyZWN0VVJMLnBhdGhTdGFy
dCgpLCByZWRpcmVjdFVSTC5wYXRoRW5kKCkgLSByZWRpcmVjdFVSTC5wYXRoU3RhcnQoKSk7CiAg
ICAgaWYgKHBhdGguaXNFbXB0eSgpIHx8ICFwYXRoLnN0YXJ0c1dpdGgocHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUcmlnZ2VyQXR0cmlidXRpb25QYXRoKSkKICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKG51bGxTdHJpbmcoKSk7CiAKLSAgICBpZiAoIXJlZGlyZWN0VVJMLnByb3RvY29sSXMo
Imh0dHBzIikgfHwgcmVkaXJlY3RVUkwuaGFzQ3JlZGVudGlhbHMoKSB8fCByZWRpcmVjdFVSTC5o
YXNRdWVyeSgpIHx8IHJlZGlyZWN0VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQotICAgICAg
ICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252
ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgbm90
IEhUVFBTIG9yIHRoZSBVUkwgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdXNlcm5hbWUsIHBhc3N3
b3JkLCBxdWVyeSBzdHJpbmcsIGFuZCBmcmFnbWVudC4iX3MpOworICAgIGlmICghcmVkaXJlY3RV
UkwucHJvdG9jb2xJcygiaHR0cHMiKSB8fCByZWRpcmVjdFVSTC5oYXNDcmVkZW50aWFscygpIHx8
IHJlZGlyZWN0VVJMLmhhc0ZyYWdtZW50SWRlbnRpZmllcigpKQorICAgICAgICByZXR1cm4gbWFr
ZVVuZXhwZWN0ZWQoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBu
b3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgVVJMJ3MgcHJvdG9jb2wgaXMgbm90IEhUVFBTIG9yIHRo
ZSBVUkwgY29udGFpbnMgb25lIG9yIG1vcmUgb2YgdXNlcm5hbWUsIHBhc3N3b3JkLCBhbmQgZnJh
Z21lbnQuIl9zKTsKIAorICAgIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgYXR0cmlidXRpb25Ucmln
Z2VyRGF0YTsKKyAgICBhdXRvIGVycm9yTWVzc2FnZSA9IHBhcnNlQXR0cmlidXRpb25SZXF1ZXN0
UXVlcnkocmVkaXJlY3RVUkwsIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpOworICAgIGlmIChlcnJv
ck1lc3NhZ2UpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgqZXJyb3JNZXNzYWdlKTsK
IAogICAgIGF1dG8gcHJlZml4TGVuZ3RoID0gc2l6ZW9mKHByaXZhdGVDbGlja01lYXN1cmVtZW50
VHJpZ2dlckF0dHJpYnV0aW9uUGF0aCkgLSAxOwogICAgIGlmIChwYXRoLmxlbmd0aCgpID09IHBy
ZWZpeExlbmd0aCArIHByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UcmlnZ2VyRGF0
YVBhdGhTZWdtZW50U2l6ZSkgewpAQCAtMTE5LDcgKzE1MSw5IEBAIEV4cGVjdGVkPFByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IFByaXZhdGVD
bGlja01lCiAgICAgICAgIGlmICghYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCB8fCAqYXR0
cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCA+IEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVu
dHJvcHkpCiAgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQobWFrZVN0cmluZygiW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNh
dXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVy
IHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAiX3MsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6
Ok1heEVudHJvcHksICIuIl9zKSk7CiAKLSAgICAgICAgcmV0dXJuIEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEgeyBzdGF0aWNfY2FzdDx1aW50OF90PigqYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2
NCksIFByaW9yaXR5IHsgMCB9IH07CisgICAgICAgIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuZGF0
YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCphdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0KTsK
KyAgICAgICAgYXR0cmlidXRpb25UcmlnZ2VyRGF0YS5wcmlvcml0eSA9IDA7CisgICAgICAgIHJl
dHVybiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIH0KICAgICAKICAgICBpZiAocGF0aC5s
ZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0
aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgKyAxICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRQcmlvcml0eVBhdGhTZWdtZW50U2l6ZSkgewpAQCAtMTMxLDcgKzE2NSw5IEBAIEV4cGVjdGVk
PFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+
IFByaXZhdGVDbGlja01lCiAgICAgICAgIGlmICghYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCB8
fCAqYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCA+IFByaW9yaXR5OjpNYXhFbnRyb3B5KQogICAg
ICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgcHJp
b3JpdHkgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVyIHRoYW4gdGhlIGFsbG93ZWQg
bWF4aW11bSBvZiAiX3MsIFByaW9yaXR5OjpNYXhFbnRyb3B5LCAiLiJfcykpOwogCi0gICAgICAg
IHJldHVybiBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oKmF0
dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQpLCBQcmlvcml0eSB7IHN0YXRpY19jYXN0PHVpbnQ4
X3Q+KCphdHRyaWJ1dGlvblByaW9yaXR5VUludDY0KSB9IH07CisgICAgICAgIGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEuZGF0YSA9IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCphdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhVUludDY0KTsKKyAgICAgICAgYXR0cmlidXRpb25UcmlnZ2VyRGF0YS5wcmlvcml0eSA9
IHN0YXRpY19jYXN0PHVpbnQ4X3Q+KCphdHRyaWJ1dGlvblByaW9yaXR5VUludDY0KTsKKyAgICAg
ICAgcmV0dXJuIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7CiAgICAgfQogCiAgICAgcmV0dXJuIG1h
a2VVbmV4cGVjdGVkKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMg
bm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCBwYXRoIGNvbnRhaW5lZCB1bnJlY29nbml6ZWQg
cGFydHMuIl9zKTsKQEAgLTE4OSw3ICsyMjUsNyBAQCBzdGF0aWMgVVJMIGF0dHJpYnV0aW9uUmVw
b3J0VVJMKGNvbnN0IFJlZ2lzdHJhYmxlRG9tYWluJiBkb21haW4pCiAgICAgcmV0dXJuIG1ha2VW
YWxpZFVSTChkb21haW4sIHByaXZhdGVDbGlja01lYXN1cmVtZW50UmVwb3J0QXR0cmlidXRpb25Q
YXRoKTsKIH0KIAotVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9y
dFNvdXJjZVVSTCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0
aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKSBjb25zdAogewogICAgIGlmICghaXNWYWxpZCgpKQog
ICAgICAgICByZXR1cm4gVVJMKCk7CkBAIC0xOTcsNyArMjMzLDcgQEAgVVJMIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTCgpIGNvbnN0CiAgICAgcmV0
dXJuIGF0dHJpYnV0aW9uUmVwb3J0VVJMKG1fc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbik7
CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRBdHRy
aWJ1dGVPblVSTCgpIGNvbnN0CitVUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0
aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVSTCgpIGNvbnN0CiB7CiAgICAgaWYgKCFpc1ZhbGlk
KCkpCiAgICAgICAgIHJldHVybiBVUkwoKTsKQEAgLTIxNiw3ICsyNTIsNyBAQCBSZWY8SlNPTjo6
T2JqZWN0PiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRKU09OKCkg
Y29uc3QKICAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJzb3VyY2VfaWQiX3MsIG1fc291
cmNlSUQuaWQpOwogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygiYXR0cmlidXRlZF9vbl9z
aXRlIl9zLCBtX2Rlc3RpbmF0aW9uU2l0ZS5yZWdpc3RyYWJsZURvbWFpbi5zdHJpbmcoKSk7CiAg
ICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigidHJpZ2dlcl9kYXRhIl9zLCBtX2F0dHJpYnV0
aW9uVHJpZ2dlckRhdGEtPmRhdGEpOwotICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZl
cnNpb24iX3MsIDIpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInZlcnNpb24iX3Ms
IHByaXZhdGVDbGlja01lYXN1cmVtZW50VmVyc2lvbik7CiAKICAgICAvLyBUaGlzIHRva2VuIGhh
cyBiZWVuIGtlcHQgc2VjcmV0IHRoaXMgZmFyIGFuZCBjYW5ub3QgYmUgbGlua2VkIHRvIHRoZSB1
bmxpbmthYmxlIHRva2VuLgogICAgIGlmIChtX3NvdXJjZVNlY3JldFRva2VuKSB7CkBAIC0yNzQs
NyArMzEwLDcgQEAgUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnRv
a2VuU2lnbmF0dXJlSlNPTigpIGNvbnN0CiAgICAgcmVwb3J0RGV0YWlscy0+c2V0U3RyaW5nKCJz
b3VyY2Vfbm9uY2UiX3MsIG1fZXBoZW1lcmFsU291cmNlTm9uY2UtPm5vbmNlKTsKICAgICAvLyBU
aGlzIHRva2VuIGNhbiBub3QgYmUgbGlua2VkIHRvIHRoZSBzZWNyZXQgdG9rZW4uCiAgICAgcmVw
b3J0RGV0YWlscy0+c2V0U3RyaW5nKCJzb3VyY2VfdW5saW5rYWJsZV90b2tlbiJfcywgbV9zb3Vy
Y2VVbmxpbmthYmxlVG9rZW4udmFsdWVCYXNlNjRVUkwpOwotICAgIHJlcG9ydERldGFpbHMtPnNl
dEludGVnZXIoInZlcnNpb24iX3MsIDIpOworICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIo
InZlcnNpb24iX3MsIHByaXZhdGVDbGlja01lYXN1cmVtZW50VmVyc2lvbik7CiAgICAgcmV0dXJu
IHJlcG9ydERldGFpbHM7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50LmgKaW5kZXggNzU5Y2Y3YzZhZTc3YmJmZjE0OWVhOTNhMTBmZTJjNmIy
MDJmYWEyZS4uY2E4YzVhZWE5OTE4YjFmODMzMmFkYzkxMzU2NDEyZjQwMzhjYTJhMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKKysr
IGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmgKQEAgLTY3
LDYgKzY3LDcgQEAgcHVibGljOgogICAgIH07CiAKICAgICBzdHJ1Y3QgU291cmNlU2l0ZSB7Cisg
ICAgICAgIFNvdXJjZVNpdGUoKSA9IGRlZmF1bHQ7CiAgICAgICAgIGV4cGxpY2l0IFNvdXJjZVNp
dGUoY29uc3QgVVJMJiB1cmwpCiAgICAgICAgICAgICA6IHJlZ2lzdHJhYmxlRG9tYWluIHsgdXJs
IH0KICAgICAgICAgewpAQCAtMTcyLDcgKzE3Myw4IEBAIHB1YmxpYzoKICAgICAgICAgc3RhdGlj
IGNvbnN0ZXhwciB1aW50OF90IE1heEVudHJvcHkgPSAxNTsKIAogICAgICAgICBlbnVtIGNsYXNz
IFdhc1NlbnQgOiBib29sIHsgTm8sIFllcyB9OwotICAgICAgICAKKworICAgICAgICBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhKCkgPSBkZWZhdWx0OwogICAgICAgICBBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhKHVpbnQ4X3QgZGF0YSwgUHJpb3JpdHkgcHJpb3JpdHksIFdhc1NlbnQgd2FzU2VudCA9IFdh
c1NlbnQ6Ok5vKQogICAgICAgICAgICAgOiBkYXRhIHsgZGF0YSB9CiAgICAgICAgICAgICAsIHBy
aW9yaXR5IHsgcHJpb3JpdHkudmFsdWUgfQpAQCAtMTg4LDYgKzE5MCw3IEBAIHB1YmxpYzoKICAg
ICAgICAgdWludDhfdCBkYXRhIHsgMCB9OwogICAgICAgICBQcmlvcml0eVZhbHVlIHByaW9yaXR5
OwogICAgICAgICBXYXNTZW50IHdhc1NlbnQgPSBXYXNTZW50OjpObzsKKyAgICAgICAgc3RkOjpv
cHRpb25hbDxSZWdpc3RyYWJsZURvbWFpbj4gc291cmNlUmVnaXN0cmFibGVEb21haW47CiAKICAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OwogICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBkZWNvZGUoRGVjb2RlciYpOwpAQCAtMzE3LDggKzMyMCw4
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCBzdGF0aWMgRXhwZWN0ZWQ8QXR0cmlidXRp
b25UcmlnZ2VyRGF0YSwgU3RyaW5nPiBwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdChjb25zdCBVUkwm
IHJlZGlyZWN0VVJMKTsKICAgICBXRUJDT1JFX0VYUE9SVCBBdHRyaWJ1dGlvblNlY29uZHNVbnRp
bFNlbmREYXRhIGF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhJiYsIElzUnVubmluZ0xheW91dFRlc3QpOwogICAgIFdFQkNPUkVfRVhQT1JUIGJv
b2wgaGFzSGlnaGVyUHJpb3JpdHlUaGFuKGNvbnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50Jikg
Y29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIGF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJM
KCkgY29uc3Q7Ci0gICAgV0VCQ09SRV9FWFBPUlQgVVJMIGF0dHJpYnV0aW9uUmVwb3J0QXR0cmli
dXRlT25VUkwoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXR0cmlidXRpb25SZXBv
cnRDbGlja1NvdXJjZVVSTCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBhdHRyaWJ1
dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9S
VCBSZWY8SlNPTjo6T2JqZWN0PiBhdHRyaWJ1dGlvblJlcG9ydEpTT04oKSBjb25zdDsKICAgICBj
b25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VTaXRl
OyB9OwogICAgIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNp
dGUoKSBjb25zdCB7IHJldHVybiBtX2Rlc3RpbmF0aW9uU2l0ZTsgfTsKQEAgLTM3MSw3ICszNzQs
NyBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQgc2V0U291cmNlVW5saW5rYWJsZVRva2Vu
VmFsdWUoY29uc3QgU3RyaW5nJiB2YWx1ZSkgeyBtX3NvdXJjZVVubGlua2FibGVUb2tlbi52YWx1
ZUJhc2U2NFVSTCA9IHZhbHVlOyB9Ci0gICAgY29uc3Qgc3RkOjpvcHRpb25hbDxTb3VyY2VTZWNy
ZXRUb2tlbj4mIHNvdXJjZVVubGlua2FibGVUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNl
U2VjcmV0VG9rZW47IH0KKyAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFNvdXJjZVNlY3JldFRva2Vu
PiYgc291cmNlU2VjcmV0VG9rZW4oKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVNlY3JldFRva2Vu
OyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRTb3VyY2VTZWNyZXRUb2tlbihTb3VyY2VT
ZWNyZXRUb2tlbiYmKTsKIAogICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2Rl
KEVuY29kZXImKSBjb25zdDsKQEAgLTM4MCw2ICszODMsNyBAQCBwdWJsaWM6CiAgICAgV0VCQ09S
RV9FWFBPUlQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CiAK
IHByaXZhdGU6CisgICAgc3RhdGljIHN0ZDo6b3B0aW9uYWw8U3RyaW5nPiBwYXJzZUF0dHJpYnV0
aW9uUmVxdWVzdFF1ZXJ5KGNvbnN0IFVSTCYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmKTsKICAg
ICBib29sIGlzVmFsaWQoKSBjb25zdDsKIAogICAgIFNvdXJjZUlEIG1fc291cmNlSUQ7CkBAIC01
MDUsNyArNTA5LDcgQEAgc3RkOjpvcHRpb25hbDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6RXBo
ZW1lcmFsU291cmNlTm9uY2U+IFByaXZhdGVDbGlja01lYXN1cmUKIHRlbXBsYXRlPGNsYXNzIEVu
Y29kZXI+CiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKIHsKLSAgICBlbmNvZGVyIDw8IGRh
dGEgPDwgcHJpb3JpdHkgPDwgd2FzU2VudDsKKyAgICBlbmNvZGVyIDw8IGRhdGEgPDwgcHJpb3Jp
dHkgPDwgd2FzU2VudCA8PCBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKIH0KIAogdGVtcGxhdGU8
Y2xhc3MgRGVjb2Rlcj4KQEAgLTUyNiw3ICs1MzAsMTQgQEAgc3RkOjpvcHRpb25hbDxQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gUHJpdmF0ZUNsaWNrTWVh
c3UKICAgICBpZiAoIXdhc1NlbnQpCiAgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiAgICAg
Ci0gICAgcmV0dXJuIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgeyBXVEZNb3ZlKCpkYXRhKSwgUHJp
b3JpdHkgeyAqcHJpb3JpdHkgfSwgKndhc1NlbnQgfTsKKyAgICBzdGQ6Om9wdGlvbmFsPHN0ZDo6
b3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+PiBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKKyAg
ICBkZWNvZGVyID4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOworICAgIGlmICghc291cmNlUmVn
aXN0cmFibGVEb21haW4pCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgCisgICAg
QXR0cmlidXRpb25UcmlnZ2VyRGF0YSBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgV1RGTW92ZSgq
ZGF0YSksIFByaW9yaXR5IHsgKnByaW9yaXR5IH0sICp3YXNTZW50IH07CisgICAgYXR0cmlidXRp
b25UcmlnZ2VyRGF0YS5zb3VyY2VSZWdpc3RyYWJsZURvbWFpbiA9IFdURk1vdmUoKnNvdXJjZVJl
Z2lzdHJhYmxlRG9tYWluKTsKKyAgICByZXR1cm4gYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKIH0K
IAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dERhdGFiYXNlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAKaW5kZXggNGEz
MTFiY2Y4ZWNlYjE4YmRhZmMyYjBiYmI0MDYwZGQ5MTU0ZTg1Ny4uYmNhN2Y1MTkzNGM4ZjYzMjIz
MGIyNzE0MTE5YmIyZTY3M2NmYTVmOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERh
dGFiYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3BwCkBAIC0xNzUs
NyArMTc1LDcgQEAgdm9pZCBEYXRhYmFzZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQo
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgIGlmICghc291cmNlSUQgfHwg
IWF0dHJpYnV0aW9uRGVzdGluYXRpb25JRCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYXV0byYg
c291cmNlVW5saW5rYWJsZVRva2VuID0gYXR0cmlidXRpb24uc291cmNlVW5saW5rYWJsZVRva2Vu
KCk7CisgICAgYXV0byYgc291cmNlU2VjcmV0VG9rZW4gPSBhdHRyaWJ1dGlvbi5zb3VyY2VTZWNy
ZXRUb2tlbigpOwogICAgIGlmIChhdHRyaWJ1dGlvblR5cGUgPT0gUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRBdHRyaWJ1dGlvblR5cGU6OkF0dHJpYnV0ZWQpIHsKICAgICAgICAgYXV0byBhdHRyaWJ1
dGlvblRyaWdnZXJEYXRhID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25UcmlnZ2VyRGF0YSgpID8g
YXR0cmlidXRpb24uYXR0cmlidXRpb25UcmlnZ2VyRGF0YSgpLnZhbHVlKCkuZGF0YSA6IC0xOwog
ICAgICAgICBhdXRvIHByaW9yaXR5ID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25UcmlnZ2VyRGF0
YSgpID8gYXR0cmlidXRpb24uYXR0cmlidXRpb25UcmlnZ2VyRGF0YSgpLnZhbHVlKCkucHJpb3Jp
dHkgOiAtMTsKQEAgLTE5NCw5ICsxOTQsOSBAQCB2b2lkIERhdGFiYXNlOjppbnNlcnRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAgICAg
ICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRJbnQoNSwgcHJpb3JpdHkpICE9IFNRTElURV9PSwog
ICAgICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kRG91YmxlKDYsIGF0dHJpYnV0aW9uLnRpbWVP
ZkFkQ2xpY2soKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZhbHVlKCkpICE9IFNRTElURV9PSwogICAg
ICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kRG91YmxlKDcsIHNvdXJjZUVhcmxpZXN0VGltZVRv
U2VuZCkgIT0gU1FMSVRFX09LCi0gICAgICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDgs
IHNvdXJjZVVubGlua2FibGVUb2tlbiA/IHNvdXJjZVVubGlua2FibGVUb2tlbi0+dG9rZW5CYXNl
NjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgICAgIHx8IHN0YXRl
bWVudC0+YmluZFRleHQoOSwgc291cmNlVW5saW5rYWJsZVRva2VuID8gc291cmNlVW5saW5rYWJs
ZVRva2VuLT5zaWduYXR1cmVCYXNlNjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sK
LSAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoMTAsIHNvdXJjZVVubGlua2FibGVU
b2tlbiA/IHNvdXJjZVVubGlua2FibGVUb2tlbi0+a2V5SURCYXNlNjRVUkwgOiBlbXB0eVN0cmlu
ZygpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoOCwg
c291cmNlU2VjcmV0VG9rZW4gPyBzb3VyY2VTZWNyZXRUb2tlbi0+dG9rZW5CYXNlNjRVUkwgOiBl
bXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+Ymlu
ZFRleHQoOSwgc291cmNlU2VjcmV0VG9rZW4gPyBzb3VyY2VTZWNyZXRUb2tlbi0+c2lnbmF0dXJl
QmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBz
dGF0ZW1lbnQtPmJpbmRUZXh0KDEwLCBzb3VyY2VTZWNyZXRUb2tlbiA/IHNvdXJjZVNlY3JldFRv
a2VuLT5rZXlJREJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkpICE9IFNRTElURV9PSwogICAgICAg
ICAgICAgfHwgc3RhdGVtZW50LT5iaW5kRG91YmxlKDExLCBkZXN0aW5hdGlvbkVhcmxpZXN0VGlt
ZVRvU2VuZCkgIT0gU1FMSVRFX09LCiAgICAgICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0
KDEyLCBhdHRyaWJ1dGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkpICE9IFNRTElURV9P
SwogICAgICAgICAgICAgfHwgc3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKQEAg
LTIxNCw5ICsyMTQsOSBAQCB2b2lkIERhdGFiYXNlOjppbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAgICAgICAgIHx8IHN0YXRl
bWVudC0+YmluZEludCgyLCAqYXR0cmlidXRpb25EZXN0aW5hdGlvbklEKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kSW50KDMsIGF0dHJpYnV0aW9uLnNvdXJjZUlEKCku
aWQpICE9IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmREb3VibGUoNCwgYXR0
cmlidXRpb24udGltZU9mQWRDbGljaygpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkgIT0g
U1FMSVRFX09LCi0gICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoNSwgc291cmNlVW5saW5r
YWJsZVRva2VuID8gc291cmNlVW5saW5rYWJsZVRva2VuLT50b2tlbkJhc2U2NFVSTCA6IGVtcHR5
U3RyaW5nKCkpICE9IFNRTElURV9PSwotICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDYs
IHNvdXJjZVVubGlua2FibGVUb2tlbiA/IHNvdXJjZVVubGlua2FibGVUb2tlbi0+c2lnbmF0dXJl
QmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IHN0YXRl
bWVudC0+YmluZFRleHQoNywgc291cmNlVW5saW5rYWJsZVRva2VuID8gc291cmNlVW5saW5rYWJs
ZVRva2VuLT5rZXlJREJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkpICE9IFNRTElURV9PSworICAg
ICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDUsIHNvdXJjZVNlY3JldFRva2VuID8gc291cmNl
U2VjcmV0VG9rZW4tPnRva2VuQmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09L
CisgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoNiwgc291cmNlU2VjcmV0VG9rZW4gPyBz
b3VyY2VTZWNyZXRUb2tlbi0+c2lnbmF0dXJlQmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0g
U1FMSVRFX09LCisgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoNywgc291cmNlU2VjcmV0
VG9rZW4gPyBzb3VyY2VTZWNyZXRUb2tlbi0+a2V5SURCYXNlNjRVUkwgOiBlbXB0eVN0cmluZygp
KSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCg4LCBhdHRyaWJ1
dGlvbi5zb3VyY2VBcHBsaWNhdGlvbkJ1bmRsZUlEKCkpICE9IFNRTElURV9PSwogICAgICAgICB8
fCBzdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewogICAgICAgICBSRUxFQVNFX0xP
R19FUlJPUihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgIiVwIC0gRGF0YWJhc2U6Omluc2VydFBy
aXZhdGVDbGlja01lYXN1cmVtZW50IGluc2VydFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1
cmVtZW50UXVlcnksIGVycm9yIG1lc3NhZ2U6ICUiIFBSSVZBVEVfTE9HX1NUUklORywgdGhpcywg
bV9kYXRhYmFzZS5sYXN0RXJyb3JNc2coKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAKaW5kZXggNjk1
MTk3NDNjY2ZmZmZhZDMxNGMwMTVkZDdlMDNjN2JkNmYyYjNiNC4uZmNjOTdmMGM2ZGY1NGQzYjIy
MTgzZmZkODQ3NjZiMTRjYjY3NjE4NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1h
bmFnZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcApAQCAtMjQ4LDE0
ICsyNDgsMjIgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmhhbmRsZUF0
dHJpYnV0aW9uKEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJgogICAgICAgICByZXR1cm47CiAgICAg
fQogCisgICAgU291cmNlU2l0ZSBzb3VyY2VTaXRlOwogICAgIGlmIChyZWRpcmVjdERvbWFpbi5t
YXRjaGVzKGZpcnN0UGFydHlVUkwpKSB7Ci0gICAgICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25z
b2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gVHJpZ2dlcmluZyBldmVudCB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJl
cXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSBmaXJz
dC1wYXJ0eS4iX3MpOworICAgICAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuc291cmNl
UmVnaXN0cmFibGVEb21haW4pIHsKKyAgICAgICAgICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25z
b2xlTWVzc2FnZShNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gVHJpZ2dlcmluZyBldmVudCB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgaXQgd2FzIHJl
cXVlc3RlZCBpbiBhbiBIVFRQIHJlZGlyZWN0IHRoYXQgaXMgc2FtZS1zaXRlIGFzIHRoZSAgIGZp
cnN0LXBhcnR5IGFuZCBubyBhdHRyaWJ1dGlvblNvdXJjZSBxdWVyeSBwYXJhbWV0ZXIgd2FzIHBy
b3ZpZGVkLiJfcyk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgc291
cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbiA9ICphdHRyaWJ1dGlvblRyaWdnZXJEYXRhLnNvdXJj
ZVJlZ2lzdHJhYmxlRG9tYWluOworICAgIH0gZWxzZSBpZiAoYXR0cmlidXRpb25UcmlnZ2VyRGF0
YS5zb3VyY2VSZWdpc3RyYWJsZURvbWFpbikgeworICAgICAgICBtX2NsaWVudC0+YnJvYWRjYXN0
Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiW1ByaXZhdGUgQ2xpY2sgTWVh
c3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIGl0IHdh
cyByZXF1ZXN0ZWQgaW4gYW4gSFRUUCByZWRpcmVjdCB0aGF0IGlzIGNyb3NzLXNpdGUgZnJvbSB0
aGUgZmlyc3QtcGFydHkgYnV0IGFuIGF0dHJpYnV0aW9uU291cmNlIHF1ZXJ5IHBhcmFtZXRlciB3
YXMgc3RpbGwgcHJvdmlkZWQuIl9zKTsKICAgICAgICAgcmV0dXJuOwotICAgIH0KKyAgICB9IGVs
c2UKKyAgICAgICAgc291cmNlU2l0ZS5yZWdpc3RyYWJsZURvbWFpbiA9IFdURk1vdmUocmVkaXJl
Y3REb21haW4pOwogCiAgICAgbV9jbGllbnQtPmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3Nh
Z2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZl
bnQgYWNjZXB0ZWQuIl9zKTsKIAotICAgIGF0dHJpYnV0ZShTb3VyY2VTaXRlIHsgV1RGTW92ZShy
ZWRpcmVjdERvbWFpbikgfSwgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBmaXJzdFBhcnR5
VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIG1fcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPyAqbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFwcEJ1bmRsZUlERm9yVGVzdGluZyA6IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7Cisg
ICAgYXR0cmlidXRlKFdURk1vdmUoc291cmNlU2l0ZSksIEF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlIHsgZmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBt
X3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID8gKm1fcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgOiBhcHBsaWNhdGlvbkJ1bmRs
ZUlkZW50aWZpZXIpOwogfQogCiB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6
c3RhcnRUaW1lckltbWVkaWF0ZWx5Rm9yVGVzdGluZygpCkBAIC0yNzYsMTIgKzI4NCwxMiBAQCB2
b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6c3RhcnRUaW1lcihTZWNvbmRzIHNl
Y29uZHMpCiAgICAgbV9maXJlUGVuZGluZ0F0dHJpYnV0aW9uUmVxdWVzdHNUaW1lci5zdGFydE9u
ZVNob3Qoc2Vjb25kcyk7CiB9CiAKLXZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjphdHRyaWJ1dGUoY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgQXR0cmlidXRp
b25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgQXR0cmlidXRpb25UcmlnZ2VyRGF0
YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQordm9pZCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0ZShTb3VyY2VTaXRlJiYgc291cmNlU2l0ZSwgQXR0cmli
dXRpb25EZXN0aW5hdGlvblNpdGUmJiBkZXN0aW5hdGlvblNpdGUsIEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikKIHsKICAgICBpZiAoIWZlYXR1
cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHN0b3JlKCkuYXR0cmlidXRlUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQoc291cmNlU2l0ZSwgZGVzdGluYXRpb25TaXRlLCBhcHBsaWNh
dGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIG1f
aXNSdW5uaW5nVGVzdCA/IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5p
bmdMYXlvdXRUZXN0OjpZZXMgOiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNS
dW5uaW5nTGF5b3V0VGVzdDo6Tm8sIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9
XSAoYXV0byBhdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhLCBhdXRvIGRlYnVnSW5mbykg
eworICAgIHN0b3JlKCkuYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV1RGTW92ZShz
b3VyY2VTaXRlKSwgV1RGTW92ZShkZXN0aW5hdGlvblNpdGUpLCBhcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXIsIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIG1faXNSdW5uaW5nVGVz
dCA/IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0
OjpZZXMgOiBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNSdW5uaW5nTGF5b3V0
VGVzdDo6Tm8sIFt0aGlzLCB3ZWFrVGhpcyA9IFdlYWtQdHIgeyAqdGhpcyB9XSAoYXV0byBhdHRy
aWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhLCBhdXRvIGRlYnVnSW5mbykgewogICAgICAgICBp
ZiAoIXdlYWtUaGlzKQogICAgICAgICAgICAgcmV0dXJuOwogICAgICAgICAKQEAgLTMxOSw3ICsz
MjcsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYQogICAgIGlmICghZmVhdHVyZUVuYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgaWYgKCFhdHRyaWJ1dGlvbi5zb3VyY2VVbmxpbmth
YmxlVG9rZW4oKSkgeworICAgIGlmICghYXR0cmlidXRpb24uc291cmNlU2VjcmV0VG9rZW4oKSkg
ewogICAgICAgICBmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKGF0dHJpYnV0aW9uLCBhdHRyaWJ1
dGlvblJlcG9ydEVuZHBvaW50KTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KQEAgLTMzOSw3ICsz
NDcsNyBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZlcnNp
b25SZXF1ZXN0KGNvbnN0IFByaXZhdGVDbGlja01lYQogICAgICAgICBhdXRvIHB1YmxpY0tleURh
dGFIYXNoID0gY3J5cHRvLT5jb21wdXRlSGFzaCgpOwogCiAgICAgICAgIGF1dG8ga2V5SUQgPSBi
YXNlNjRVUkxFbmNvZGVUb1N0cmluZyhwdWJsaWNLZXlEYXRhSGFzaC5kYXRhKCksIHB1YmxpY0tl
eURhdGFIYXNoLnNpemUoKSk7Ci0gICAgICAgIGlmIChrZXlJRCAhPSBhdHRyaWJ1dGlvbi5zb3Vy
Y2VVbmxpbmthYmxlVG9rZW4oKS0+a2V5SURCYXNlNjRVUkwpCisgICAgICAgIGlmIChrZXlJRCAh
PSBhdHRyaWJ1dGlvbi5zb3VyY2VTZWNyZXRUb2tlbigpLT5rZXlJREJhc2U2NFVSTCkKICAgICAg
ICAgICAgIHJldHVybjsKIAogICAgICAgICBmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKGF0dHJp
YnV0aW9uLCBhdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKQEAgLTM1MSwxMCArMzU5LDEwIEBA
IHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVl
c3RJbXBsKGNvbnN0IFByaXZhdGVDbGljCiAgICAgVVJMIGF0dHJpYnV0aW9uVVJMOwogICAgIHN3
aXRjaCAoYXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCkgewogICAgIGNhc2UgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQ6OlNvdXJjZToKLSAgICAgICAg
YXR0cmlidXRpb25VUkwgPSBtX2F0dHJpYnV0aW9uUmVwb3J0VGVzdENvbmZpZyA/IG1fYXR0cmli
dXRpb25SZXBvcnRUZXN0Q29uZmlnLT5hdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTCA6IGF0dHJp
YnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCk7CisgICAgICAgIGF0dHJpYnV0aW9u
VVJMID0gbV9hdHRyaWJ1dGlvblJlcG9ydFRlc3RDb25maWcgPyBtX2F0dHJpYnV0aW9uUmVwb3J0
VGVzdENvbmZpZy0+YXR0cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVSTCA6IGF0dHJpYnV0aW9u
LmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKTsKICAgICAgICAgYnJlYWs7CiAgICAg
Y2FzZSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludDo6
RGVzdGluYXRpb246Ci0gICAgICAgIGF0dHJpYnV0aW9uVVJMID0gbV9hdHRyaWJ1dGlvblJlcG9y
dFRlc3RDb25maWcgPyBtX2F0dHJpYnV0aW9uUmVwb3J0VGVzdENvbmZpZy0+YXR0cmlidXRpb25S
ZXBvcnRBdHRyaWJ1dGVPblVSTCA6IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0QXR0cmli
dXRlT25VUkwoKTsKKyAgICAgICAgYXR0cmlidXRpb25VUkwgPSBtX2F0dHJpYnV0aW9uUmVwb3J0
VGVzdENvbmZpZyA/IG1fYXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmlnLT5hdHRyaWJ1dGlvblJl
cG9ydENsaWNrRGVzdGluYXRpb25VUkwgOiBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENs
aWNrRGVzdGluYXRpb25VUkwoKTsKICAgICB9CiAKICAgICBpZiAoYXR0cmlidXRpb25VUkwuaXNF
bXB0eSgpIHx8ICFhdHRyaWJ1dGlvblVSTC5pc1ZhbGlkKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50TWFuYWdlci5oIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaAppbmRl
eCA2MDIzNjdhN2I0OThjYzhhZjM1NzJjYTRkZGM4YWQwMWM2ZDYzYmMwLi5jNjczYWY4NDg4MzJm
ZDFiN2MwOWIyOTBlYTk3ZTExM2MwMmEyNTYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05l
dHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlci5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmgKQEAgLTc2LDcg
Kzc2LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGdldFNpZ25lZFVubGlua2FibGVUb2tlbihQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudCYmKTsKICAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01lYXN1
cmVtZW50KFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFByaXZhdGVDbGlja01lYXN1cmVtZW50
QXR0cmlidXRpb25UeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwogICAgIHZvaWQg
Y2xlYXJTZW50QXR0cmlidXRpb24oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwotICAgIHZvaWQgYXR0
cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0
ZSYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyJik7CisgICAgdm9pZCBhdHRyaWJ1dGUoU291cmNlU2l0ZSYmLCBBdHRyaWJ1dGlvbkRl
c3RpbmF0aW9uU2l0ZSYmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IEFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciYpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0KGNv
bnN0IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwogICAgIHZvaWQgZmlyZUNvbnZlcnNpb25SZXF1ZXN0
SW1wbChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYsIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKICAgICB2b2lkIGNsZWFyRXhwaXJlZCgp
OwpAQCAtOTQsOCArOTQsOCBAQCBwcml2YXRlOgogICAgIFVuaXF1ZVJlZjxQQ006OkNsaWVudD4g
bV9jbGllbnQ7CiAKICAgICBzdHJ1Y3QgQXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmlnIHsKLSAg
ICAgICAgVVJMIGF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMOwotICAgICAgICBVUkwgYXR0cmli
dXRpb25SZXBvcnRBdHRyaWJ1dGVPblVSTDsKKyAgICAgICAgVVJMIGF0dHJpYnV0aW9uUmVwb3J0
Q2xpY2tTb3VyY2VVUkw7CisgICAgICAgIFVSTCBhdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGlu
YXRpb25VUkw7CiAgICAgfTsKIAogICAgIHN0ZDo6b3B0aW9uYWw8QXR0cmlidXRpb25SZXBvcnRU
ZXN0Q29uZmlnPiBtX2F0dHJpYnV0aW9uUmVwb3J0VGVzdENvbmZpZzsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3Bw
CmluZGV4IGMxY2VkOTI2MWJlMjI3ODA0MjFjNjVhYTMwYzNlN2Y3NDkzZGIyZjkuLmFiNTA5NDA4
MTcyNDRkNzI5MWIxOTgxODQzNmU1ZDUxODJlYTQ5NjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRTdG9yZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcApAQCAt
OTQsNyArOTQsNyBAQCB2b2lkIFN0b3JlOjptYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JUZXN0aW5nKCkKICAgICB9KTsKIH0KIAotdm9pZCBTdG9y
ZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVz
dGluYXRpb25TaXRlLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0
aW9uQnVuZGxlSWRlbnRpZmllciwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNSdW5uaW5nTGF5b3V0VGVzdCBpc1J1bm5pbmdUZXN0
LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVn
SW5mbyYmKT4mJiBjb21wbGV0aW9uSGFuZGxlcikKK3ZvaWQgU3RvcmU6OmF0dHJpYnV0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VTaXRlJiYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiYgZGVzdGluYXRpb25TaXRlLCBj
b25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRp
ZmllciwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6SXNSdW5uaW5nTGF5b3V0VGVzdCBpc1J1bm5pbmdUZXN0LCBDb21wbGV0aW9uSGFu
ZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJiBjb21w
bGV0aW9uSGFuZGxlcikKIHsKICAgICBwb3N0VGFzayhbdGhpcywgcHJvdGVjdGVkVGhpcyA9IFJl
ZiB7ICp0aGlzIH0sIHNvdXJjZVNpdGUgPSBzb3VyY2VTaXRlLmlzb2xhdGVkQ29weSgpLCBkZXN0
aW5hdGlvblNpdGUgPSBkZXN0aW5hdGlvblNpdGUuaXNvbGF0ZWRDb3B5KCksIGFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciA9IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllci5pc29sYXRlZENv
cHkoKSwgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSksIGlzUnVubmluZ1Rlc3QsIGNvbXBsZXRpb25IYW5kbGVyID0gV1RGTW92ZShjb21wbGV0
aW9uSGFuZGxlcildICgpIG11dGFibGUgewogICAgICAgICBpZiAoIW1fZGF0YWJhc2UpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0b3JlLmgKaW5kZXggYTlkY2Y1ZDc0MmQ1NmI4YmMzMmM1MjRhYmRhOTRhZWZhOWYzN2Q5Zi4u
N2FjNWMxYmZmYjdiMjM3Y2FjZjhmZmYwNzExMjMzYjBkYzRiMWIyYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFN0b3JlLmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vz
cy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmgK
QEAgLTUzLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyB2b2lkIHByb2Nlc3NEaWRSZXN1
bWUoKTsKIAogICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgV2ViS2l0OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsKLSAgICB2b2lk
IGF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgY29uc3QgQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OklzUnVubmluZ0xheW91dFRlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25h
bDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50
aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmKTsKKyAgICB2b2lkIGF0dHJpYnV0ZVByaXZh
dGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpTb3VyY2VTaXRlJiYsIGNvbnN0IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpB
dHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXImLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YSYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNSdW5uaW5nTGF5
b3V0VGVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYm
LCBEZWJ1Z0luZm8mJik+JiYpOwogCiAgICAgdm9pZCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFRv
U3RyaW5nRm9yVGVzdGluZyhDb21wbGV0aW9uSGFuZGxlcjx2b2lkKFN0cmluZyk+JiYpIGNvbnN0
OwogICAgIHZvaWQgbWFya0FsbFVuYXR0cmlidXRlZFByaXZhdGVDbGlja01lYXN1cmVtZW50QXNF
eHBpcmVkRm9yVGVzdGluZygpOwpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMv
Q2hhbmdlTG9nCmluZGV4IGRhNGI1YWE2Y2M0MjFkMWJhYzQ3ODY0NjgwZWE1ZDAyMjZjZjhlODYu
LmM0MDMyNDQ5MTg5YzRlNGYzNTk2MTI1YTU2MjQzZTkwMzQ3NTQyZDUgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxOSBAQAorMjAy
MS0xMS0xNSAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQ
Q006IEFkZCBjYXBhYmlsaXR5IGZvciBjbGljayBkZXN0aW5hdGlvbiB0byBmaXJlIHRyaWdnZXJp
bmcgZXZlbnQgd2l0aG91dCBjcm9zcy1zaXRlIHJlcXVlc3RzIHRvIHRoZSBjbGljayBzb3VyY2UK
KyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzMzE3Mwor
ICAgICAgICA8cmRhcjovLzc5NDI2NjA1PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFRoZXNlIGNoYW5nZXMgYXJlIGp1c3QgYSBjb3JyZWN0aW9uIG9m
IGEgZnVuY3Rpb24gbmFtZToKKyAgICAgICAgc291cmNlVW5saW5rYWJsZVRva2VuKCkgdG8gc291
cmNlU2VjcmV0VG9rZW4oKQorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3Jl
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFRlc3RXZWJLaXRBUEk6OlRF
U1QpOgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudENvY29hLm1tOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6
CisKIDIwMjEtMTEtMTUgIE1pY2hhZWwgQ2F0YW56YXJvICA8bWNhdGFuemFyb0Bnbm9tZS5vcmc+
CiAKICAgICAgICAgTWFrZSB2YWxncmluZCB3b3JrIHByb3Blcmx5IHdpdGhvdXQgZXh0cmEgZW52
aXJvbm1lbnQgdmFyaWFibGVzCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAppbmRleCAwY2RlMjBk
N2VjZjU4OWViZTNhOWIwODAzYzE3YmYyOWVlMWEyMTI4Li43MTRhZmNhYjRjNWVkN2Y2ODcyMDhj
ZTJlNzIzNGE5MWFjN2U4OWMzIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKQEAgLTQ3LDkg
KzQ3LDkgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgV2VsbEtub3duVVJMcykKICAg
ICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpTb3VyY2VJRChtaW42Qml0VmFsdWUpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRpb25EZXN0aW5hdGlvblNpdGUgeyBleGFtcGxlVVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlm
aWVyIiwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5vIH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5k
R2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhKG1pbjZCaXRWYWx1ZSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9y
aXR5KG1pbjZCaXRWYWx1ZSkpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNS
dW5uaW5nTGF5b3V0VGVzdDo6Tm8pOwogCi0gICAgYXV0byBhdHRyaWJ1dGlvblNvdXJjZVVSTCA9
IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCk7CisgICAgYXV0byBhdHRy
aWJ1dGlvblNvdXJjZVVSTCA9IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3Vy
Y2VVUkwoKTsKICAgICBBU1NFUlRfRVEoYXR0cmlidXRpb25Tb3VyY2VVUkwuc3RyaW5nKCksICJo
dHRwczovL3dlYmtpdC5vcmcvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9y
ZXBvcnQtYXR0cmlidXRpb24vIik7Ci0gICAgYXV0byBhdHRyaWJ1dGlvbkF0dHJpYnV0ZU9uVVJM
ID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRBdHRyaWJ1dGVPblVSTCgpOworICAgIGF1
dG8gYXR0cmlidXRpb25BdHRyaWJ1dGVPblVSTCA9IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVw
b3J0Q2xpY2tEZXN0aW5hdGlvblVSTCgpOwogICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvbkF0dHJp
YnV0ZU9uVVJMLnN0cmluZygpLCAiaHR0cHM6Ly9leGFtcGxlLmNvbS8ud2VsbC1rbm93bi9wcml2
YXRlLWNsaWNrLW1lYXN1cmVtZW50L3JlcG9ydC1hdHRyaWJ1dGlvbi8iKTsKIH0KIApAQCAtMTM3
LDggKzEzNyw4IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRTb3VyY2VI
b3N0KQogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJ
RDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgZW1w
dHlVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlIHsgZXhhbXBsZVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRpZmllciIsIFdhbGxUaW1lOjpu
b3coKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRXBoZW1l
cmFsOjpObyB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRv
U2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9weSwg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjpQcmlvcml0eTo6TWF4RW50cm9weSkpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6SXNSdW5uaW5nTGF5b3V0VGVzdDo6Tm8pOwogCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRp
b24uYXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVF9U
UlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwoKS5pc0VtcHR5
KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tT
b3VyY2VVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJp
YnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVSTCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRFU1Qo
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWREZXN0aW5hdGlvbkhvc3QpCkBAIC0xNDYs
OCArMTQ2LDggQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZERlc3RpbmF0
aW9uSG9zdCkKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlSUQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSB7
IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5h
dGlvblNpdGUgeyBlbXB0eVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRpZmllciIsIFdhbGxUaW1l
Ojpub3coKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRXBo
ZW1lcmFsOjpObyB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGlt
ZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9w
eSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpQcmlvcml0eTo6TWF4RW50cm9weSkpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6SXNSdW5uaW5nTGF5b3V0VGVzdDo6Tm8pOwogCi0gICAgQVNTRVJUX1RSVUUoYXR0cmli
dXRpb24uYXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKS5pc0VtcHR5KCkpOwotICAgIEFTU0VS
VF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwoKS5pc0Vt
cHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xp
Y2tTb3VyY2VVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0
dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVSTCgpLmlzRW1wdHkoKSk7CiB9CiAKIFRF
U1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpCkBAIC0x
NTUsOCArMTU1LDggQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgQXR0cmlidXRpb25U
cmlnZ2VyRGF0YSkKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7IFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlSUQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0
ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0
aW5hdGlvblNpdGUgeyBleGFtcGxlVVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlmaWVyIiwgV2Fs
bFRpbWU6Om5vdygpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25FcGhlbWVyYWw6Ok5vIH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGll
c3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhKChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4
RW50cm9weSArIDEpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5OjpNYXhFbnRyb3B5KSksIFdlYkNvcmU6OlByaXZhdGVD
bGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0OjpObyk7CiAKLSAgICBBU1NFUlRf
VFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTCgpLmlzRW1wdHkoKSk7
Ci0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRBdHRyaWJ1dGVP
blVSTCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRp
b25SZXBvcnRDbGlja1NvdXJjZVVSTCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0
cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMKCkuaXNFbXB0eSgp
KTsKIH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFByaW9yaXR5KQpA
QCAtMTY0LDE2ICsxNjQsMTYgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxp
ZFByaW9yaXR5KQogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpT
b3VyY2VJRDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
IHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIiLCBXYWxs
VGltZTo6bm93KCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
bkVwaGVtZXJhbDo6Tm8gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVz
dFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1heEVu
dHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkgKyAxKSksIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0OjpObyk7CiAKLSAgICBBU1NFUlRfVFJV
RShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTCgpLmlzRW1wdHkoKSk7Ci0g
ICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRBdHRyaWJ1dGVPblVS
TCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25S
ZXBvcnRDbGlja1NvdXJjZVVSTCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0cmli
dXRpb24uYXR0cmlidXRpb25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMKCkuaXNFbXB0eSgpKTsK
IH0KIAogVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZE1pc3NpbmdDb252ZXJz
aW9uKQogewogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3Vy
Y2VJRDo6TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsg
d2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0
aW9uU2l0ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIiLCBXYWxsVGlt
ZTo6bm93KCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkVw
aGVtZXJhbDo6Tm8gfTsKIAotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9u
UmVwb3J0U291cmNlVVJMKCkuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlv
bi5hdHRyaWJ1dGlvblJlcG9ydEF0dHJpYnV0ZU9uVVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NF
UlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMKCkuaXNF
bXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENs
aWNrRGVzdGluYXRpb25VUkwoKS5pc0VtcHR5KCkpOwogICAgIEFTU0VSVF9GQUxTRShhdHRyaWJ1
dGlvbi50aW1lc1RvU2VuZCgpLnNvdXJjZUVhcmxpZXN0VGltZVRvU2VuZCAmJiBhdHRyaWJ1dGlv
bi50aW1lc1RvU2VuZCgpLmRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9TZW5kKTsKIH0KIApkaWZm
IC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50Q29jb2EubW0gYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNv
cmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQppbmRleCAzYWQzZjVlOWQw
ZjBkNzYxOGIzOGZkZWU1YjE4NDUyYzFkNWNlNjNiLi4wN2I1NjJlMWFmNjI5NDY2NDA2OGJjOWZi
M2MwMjY3YWQ1YzU0MGMwIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbQorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRD
b2NvYS5tbQpAQCAtOTQsNyArOTQsNyBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBW
YWxpZEJsaW5kZWRTZWNyZXQpCiAgICAgLy8gQ29udGludWUgdGhlIHRlc3QuCiAgICAgZXJyb3JN
ZXNzYWdlID0gcGNtLmNhbGN1bGF0ZUFuZFVwZGF0ZVNvdXJjZVNlY3JldFRva2VuKGJhc2U2NFVS
TEVuY29kZVRvU3RyaW5nKFtibGluZGVkU2lnbmF0dXJlIGJ5dGVzXSwgW2JsaW5kZWRTaWduYXR1
cmUgbGVuZ3RoXSkpOwogICAgIEVYUEVDVF9GQUxTRShlcnJvck1lc3NhZ2UpOwotICAgIGF1dG8m
IHBlcnNpc3RlbnRUb2tlbiA9IHBjbS5zb3VyY2VVbmxpbmthYmxlVG9rZW4oKTsKKyAgICBhdXRv
JiBwZXJzaXN0ZW50VG9rZW4gPSBwY20uc291cmNlU2VjcmV0VG9rZW4oKTsKICAgICBFWFBFQ1Rf
VFJVRShwZXJzaXN0ZW50VG9rZW4pOwogICAgIEVYUEVDVF9GQUxTRShwZXJzaXN0ZW50VG9rZW4t
PnRva2VuQmFzZTY0VVJMLmlzRW1wdHkoKSk7CiAgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRU
b2tlbi0+a2V5SURCYXNlNjRVUkwuaXNFbXB0eSgpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBkNDVkMDIwMjA0ZGQyODlk
NmM5YjM2MzFlZGQ4NzFmNWNlYmYxN2JiLi41YzMyYTRhNTNjZWE3YWMwMmVlMTViMzc4NTI5ZmNm
MjllZjQ0MDI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTUgQEAKKzIwMjEtMTEtMTUgIEpvaG4gV2lsYW5k
ZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0eSBm
b3IgY2xpY2sgZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQgY3Jv
c3Mtc2l0ZSByZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83OTQy
NjYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9D
b252ZXJzaW9uV2l0aEF0dHJpYnV0aW9uU291cmNlLnB5OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3RyaWdnZXJpbmctZXZlbnQtd2l0aC1hdHRy
aWJ1dGlvbi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVwYWxpdmUtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3RyaWdnZXJp
bmctZXZlbnQtd2l0aC1hdHRyaWJ1dGlvbi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVwYWxpdmUu
aHRtbDogQWRkZWQuCisKIDIwMjEtMTEtMTUgIFRpbSBOZ3V5ZW4gIDxudGltQGFwcGxlLmNvbT4K
IAogICAgICAgICBSZW1vdmUgcmVkdW5kYW50IFsgUGFzcyBdIGZyb20gVGVzdEV4cGVjdGF0aW9u
cwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25XaXRoQXR0cmlidXRpb25Tb3VyY2Uu
cHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbldpdGhBdHRyaWJ1dGlvblNvdXJjZS5weQpuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lOGE5ZTFiZjEyOTJkMmY0ZjA3ZmRmNGFjM2Q4NGViMDFmZDBhN2MyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25XaXRoQXR0cmlidXRpb25Tb3VyY2UucHkKQEAg
LTAsMCArMSwyOSBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworCitpbXBvcnQgb3MKK2ltcG9y
dCBzeXMKK2ltcG9ydCB0aW1lCitmcm9tIHVybGxpYi5wYXJzZSBpbXBvcnQgcGFyc2VfcXMKKwor
cXVlcnkgPSBwYXJzZV9xcyhvcy5lbnZpcm9uLmdldCgnUVVFUllfU1RSSU5HJywgJycpLCBrZWVw
X2JsYW5rX3ZhbHVlcz1UcnVlKQorZGVsYXlfbXMgPSBxdWVyeS5nZXQoJ2RlbGF5X21zJywgW05v
bmVdKVswXQorY29udmVyc2lvbl9kYXRhID0gcXVlcnkuZ2V0KCdjb252ZXJzaW9uRGF0YScsIFtO
b25lXSlbMF0KK3ByaW9yaXR5ID0gcXVlcnkuZ2V0KCdwcmlvcml0eScsIFtOb25lXSlbMF0KKwor
aWYgZGVsYXlfbXMgaXMgbm90IE5vbmU6CisgICAgdGltZS5zbGVlcChpbnQoZGVsYXlfbXMpICog
MC4wMDEpCisKK3N5cy5zdGRvdXQud3JpdGUoCisgICAgJ3N0YXR1czogMzAyXHJcbicKKyAgICAn
Q2FjaGUtQ29udHJvbDogbm8tY2FjaGUsIG5vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGVcclxuJwor
ICAgICdBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW46ICpcclxuJworICAgICdBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1NZXRob2RzOiBHRVRcclxuJworICAgICdDb250ZW50LVR5cGU6IHRleHQvaHRt
bFxyXG4nCispCisKK2lmIGNvbnZlcnNpb25fZGF0YSBpcyBub3QgTm9uZSBhbmQgcHJpb3JpdHkg
aXMgbm90IE5vbmU6CisgICAgc3lzLnN0ZG91dC53cml0ZSgnTG9jYXRpb246IC8ud2VsbC1rbm93
bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L3RyaWdnZXItYXR0cmlidXRpb24ve30ve30/YXR0
cmlidXRpb25Tb3VyY2U9aHR0cHM6Ly8xMjcuMC4wLjFcclxuJy5mb3JtYXQoY29udmVyc2lvbl9k
YXRhLCBwcmlvcml0eSkpCitlbGlmIGNvbnZlcnNpb25fZGF0YSBpcyBub3QgTm9uZToKKyAgICBz
eXMuc3Rkb3V0LndyaXRlKCdMb2NhdGlvbjogLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQvdHJpZ2dlci1hdHRyaWJ1dGlvbi97fT9hdHRyaWJ1dGlvblNvdXJjZT1odHRwczov
LzEyNy4wLjAuMVxyXG4nLmZvcm1hdChjb252ZXJzaW9uX2RhdGEpKQorCitzeXMuc3Rkb3V0Lndy
aXRlKCdcclxuJykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJpYnV0aW9uLXNvdXJjZS10
aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3RyaWdnZXJpbmctZXZlbnQtd2l0aC1hdHRyaWJ1
dGlvbi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVwYWxpdmUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmU4YmVmYzM0NTIxNjlkMzU4NjJkZjZiMDkzMjUzNGMyMTZjNWI5MzQKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Ry
aWdnZXJpbmctZXZlbnQtd2l0aC1hdHRyaWJ1dGlvbi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVw
YWxpdmUtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTUgQEAKK0NPTlNPTEUgTUVTU0FHRTogW1By
aXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNh
dXNlIHRoZSBjb252ZXJzaW9uIGRhdGEgY291bGQgbm90IGJlIHBhcnNlZCBvciB3YXMgaGlnaGVy
IHRoYW4gdGhlIGFsbG93ZWQgbWF4aW11bSBvZiAxNS4KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2lu
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1B
bGxvdy1PcmlnaW4uIFN0YXR1cyBjb2RlOiA0MDQKK0NPTlNPTEUgTUVTU0FHRTogRmV0Y2ggQVBJ
IGNhbm5vdCBsb2FkIGh0dHBzOi8vbG9jYWxob3N0Ojg0NDMvLndlbGwta25vd24vcHJpdmF0ZS1j
bGljay1tZWFzdXJlbWVudC90cmlnZ2VyLWF0dHJpYnV0aW9uL0R1bW15P2F0dHJpYnV0aW9uU291
cmNlPWh0dHBzOi8vMTI3LjAuMC4xIGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0
cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVhc3VyZW1lbnQgYXR0cmlidXRpb24gd2l0
aCBzYW1lLXNpdGUgdHJpZ2dlcmluZyBldmVudCByZXF1ZXN0LgorCisKK0F0dHJpYnV0ZWQgUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudHM6CitXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dCAxCitTb3VyY2Ugc2l0ZTogMTI3LjAuMC4xCitBdHRyaWJ1dGUgb24gc2l0ZTogbG9jYWxob3N0
CitTb3VyY2UgSUQ6IDMKK0F0dHJpYnV0aW9uIHRyaWdnZXIgZGF0YTogMTIKK0F0dHJpYnV0aW9u
IHByaW9yaXR5OiAwCitBdHRyaWJ1dGlvbiBlYXJsaWVzdCB0aW1lIHRvIHNlbmQ6IFdpdGhpbiAy
NC00OCBob3VycworQXBwbGljYXRpb24gYnVuZGxlIGlkZW50aWZpZXI6IGNvbS5hcHBsZS5XZWJL
aXQuV2ViS2l0VGVzdFJ1bm5lcgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9w
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC90cmlnZ2VyaW5nLWV2ZW50LXdpdGgtYXR0cmlidXRpb24t
c291cmNlLXRocm91Z2gtZmV0Y2gta2VlcGFsaXZlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3RyaWdnZXJpbmctZXZlbnQtd2l0aC1hdHRyaWJ1
dGlvbi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVwYWxpdmUuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMTc5
ZDZhNzY0OTg2YTVkNTBmNDU2OTRiYzM2YWM0MzQ4ODUxMDNhCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC90cmlnZ2VyaW5n
LWV2ZW50LXdpdGgtYXR0cmlidXRpb24tc291cmNlLXRocm91Z2gtZmV0Y2gta2VlcGFsaXZlLmh0
bWwKQEAgLTAsMCArMSw1NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAg
IDxtZXRhIGNoYXJzZXQ9IlVURi04Ij4KKyAgICA8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL3VpLWhlbHBlci5qcyI+PC9zY3JpcHQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0icnVuVGVzdCgpIj4KKzxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0cyB0cmlnZ2VyaW5nIG9mIHByaXZhdGUgY2xpY2sgbWVh
c3VyZW1lbnQgYXR0cmlidXRpb24gd2l0aCBzYW1lLXNpdGUgdHJpZ2dlcmluZyBldmVudCByZXF1
ZXN0LjwvZGl2PgorPGEgaWQ9InRhcmdldExpbmsiIGhyZWY9Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC90cmlnZ2VyaW5nLWV2ZW50LXdpdGgtYXR0cmlidXRp
b24tc291cmNlLXRocm91Z2gtZmV0Y2gta2VlcGFsaXZlLmh0bWw/c3RlcFR3byIgYXR0cmlidXRp
b25zb3VyY2VpZD0zIGF0dHJpYnV0aW9uZGVzdGluYXRpb249Imh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCI+TGluazwvYT48YnI+Cis8ZGl2IGlkPSJvdXRwdXQiPjwvZGl2PgorPHNjcmlwdD4KKyAgICBw
cmVwYXJlVGVzdCgpOworCisgICAgZnVuY3Rpb24gYWN0aXZhdGVFbGVtZW50KGVsZW1lbnRJRCkg
eworICAgICAgICB2YXIgZWxlbWVudCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGVsZW1lbnRJ
RCk7CisgICAgICAgIHZhciBjZW50ZXJYID0gZWxlbWVudC5vZmZzZXRMZWZ0ICsgZWxlbWVudC5v
ZmZzZXRXaWR0aCAvIDI7CisgICAgICAgIHZhciBjZW50ZXJZID0gZWxlbWVudC5vZmZzZXRUb3Ag
KyBlbGVtZW50Lm9mZnNldEhlaWdodCAvIDI7CisgICAgICAgIFVJSGVscGVyLmFjdGl2YXRlQXQo
Y2VudGVyWCwgY2VudGVyWSkudGhlbigKKyAgICAgICAgICAgIGZ1bmN0aW9uICgpIHsKKyAgICAg
ICAgICAgIH0sCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoIm91dHB1dCIpLmlubmVyVGV4dCA9ICJGQUlMIFByb21pc2Ug
cmVqZWN0ZWQuIjsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFuZEZpbmlzaCgpOworICAgICAg
ICAgICAgfQorICAgICAgICApOworICAgIH0KKworICAgIGZ1bmN0aW9uIHRyaWdnZXJGZXRjaChj
b252ZXJzaW9uRGF0YSkgeworICAgICAgICByZXR1cm4gZmV0Y2goImh0dHBzOi8vbG9jYWxob3N0
Ojg0NDMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJz
aW9uV2l0aEF0dHJpYnV0aW9uU291cmNlLnB5P2NvbnZlcnNpb25EYXRhPSIrIGNvbnZlcnNpb25E
YXRhICsgIiZkZWxheV9tcz0xMDAiLCB7IGtlZXBhbGl2ZTogdHJ1ZSB9KTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAod2luZG93LmxvY2F0aW9uLnNlYXJj
aCA9PT0gIj9zdGVwVHdvIikgeworICAgICAgICAgICAgLy8gU3RhcnQgcHJpdmF0ZSBjbGljayBh
dHRyaWJ1dGlvbiBmZXRjaCBidXQgbmF2aWdhdGUgYXdheSBiZWZvcmUgdGhlIGZldGNoIHJlZGly
ZWN0aW9uIGhhcHBlbnMuCisgICAgICAgICAgICB0cmlnZ2VyRmV0Y2goMTIpOworICAgICAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJpYnV0aW9uLXNvdXJj
ZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sP3N0ZXBUaHJlZSI7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKyAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09
ICI/c3RlcFRocmVlIikgeworICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGFyZ2V0TGluayIpKTsKKyAgICAgICAgICAgIC8vIERv
IGFuIGludmFsaWQgcHJpdmF0ZSBjbGljayBhdHRyaWJ1dGlvbiBmZXRjaCB0byBlbnN1cmUgdGhl
IHByZXZpb3VzIGNvcnJlY3QgY2xpY2sgYXR0cmlidXRpb24gZmV0Y2ggd2lsbCBiZSBmaW5pc2hl
ZC4KKyAgICAgICAgICAgIHRyaWdnZXJGZXRjaCgiRHVtbXkiKS5jYXRjaCgoKSA9PiB7CisgICAg
ICAgICAgICAgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLmR1bXBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCgpOworICAgICAgICAgICAgICAg
IHRlYXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9KTsKKyAgICAgICAgICAgIHJldHVy
bjsKKyAgICAgICAgfQorICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444422</attachid>
            <date>2021-11-16 12:39:44 -0800</date>
            <delta_ts>2021-11-16 17:55:19 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233173-20211116123943.patch</filename>
            <type>text/plain</type>
            <size>52148</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZkNDhhMjBkMDQyMDczZTkwNzc4NDk1
ZWNlNDQzYWJkYTdkYzQwOWUuLmIzOTI5ZDk1MmZjNTcyNjE2OWI5ZThkNDQ5NzYzMGZlZjhjMTlj
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTYgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0eSBmb3IgY2xpY2sg
ZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQgY3Jvc3Mtc2l0ZSBy
ZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83OTQyNjYwNT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9VUkwu
Y3BwOgorICAgICAgICAoV1RGOjpxdWVyeVBhcmFtZXRlcnMpOgorICAgICAgICAgICAgTmV3IGNv
bnZlbmllbmNlIGdldHRlci4KKyAgICAgICAgKiB3dGYvVVJMLmg6CisKIDIwMjEtMTEtMTUgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbm90aGVyIDxtb2Rl
bD4gYmFja2VuZCBiYWNrZWQgYnkgU2NlbmVLaXQgdG8gcHJvdmUgb3V0IE1vZGVsUGxheWVyIGlu
ZnJhc3RydWN0dXJlIGEgYml0IG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMDJmOTMxZGNhMjAzYzA1MTk0
MGIzYmQ5YzYzMDJiNGU3YzgxMzY2Li44N2M3MzhkMDI5YzFkM2I3NDYyMjY5MDZhZTY3YmNlOWQw
YjYzYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTEtMTYgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0
eSBmb3IgY2xpY2sgZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQg
Y3Jvc3Mtc2l0ZSByZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83
OTQyNjYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGVuYWJsZXMgY2xpY2sgZGVzdGluYXRpb24gc2l0ZXMgYSBub24tSmF2YVNj
cmlwdCB3YXkgdG8gZmlyZSB0cmlnZ2VyaW5nCisgICAgICAgIGV2ZW50cyB3aXRob3V0IGEgcmVx
dWlyZW1lbnQgdG8gbWFrZSBjcm9zcy1zaXRlIHJlcXVlc3RzIHRvIHNvdXJjZSBzaXRlcy4gVGhp
cyBpcworICAgICAgICByZWZlcnJlZCB0byBhcyBhICJzYW1lLXNpdGUgcGl4ZWwgQVBJIiBhbmQg
aGFzIGJlZW4gZGlzY3Vzc2VkIGluIFczQyBQcml2YWN5IENHOgorICAgICAgICBodHRwczovL2dp
dGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvaXNzdWVzLzcxCisK
KyAgICAgICAgVGhlIHJlYXNvbiB3aHkgc29tZSBtZXJjaGFudHMgd2FudCBzdWNoIGFuICJBUEki
IGlzIHJlbHVjdGFuY2UgdG8gZGVwbG95IG5ldworICAgICAgICBKYXZhU2NyaXB0IG9uIHRoZWly
IHNpdGVzLiBJbiBzb21lIGluZHVzdHJpZXMgaXQncyBldmVuIGEgY29tcGxpYW5jZSBpc3N1ZS4g
TGVnYWN5CisgICAgICAgICJwaXhlbHMiIGFyZSBob3dldmVyIGFjY2VwdGVkIGFuZCBzbyBhIHNh
bWUtc2l0ZSAicGl4ZWwiIGNhbiB3b3JrIGZvciB0aGVtLgorCisgICAgICAgIFRlc3Q6IGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJp
YnV0aW9uLXNvdXJjZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sCisKKyAgICAgICAgKiBo
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JF
bGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICAgICBUaGlzIGNoYW5nZSBpcyBiZWNhdXNl
IG9mIGNsYXJpZmljYXRpb24gaW4gbmFtaW5nOgorICAgICAgICAgICAgLSBhdHRyaWJ1dGlvblJl
cG9ydFNvdXJjZVVSTCB0byBhdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMCisgICAgICAg
ICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdFF1ZXJ5KToK
KyAgICAgICAgICAgIE5ldyBmdW5jdGlvbiB0aGF0IHBhcnNlcyBvdXQgcXVlcnkgc3RyaW5nIHBh
cmFtZXRlcnMuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VBdHRyaWJ1dGlvblJlcXVlc3QpOgorICAgICAgICAgICAgTm93IGNhbGxzIHRoZSBuZXcgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0UXVlcnkoKQorICAg
ICAgICAgICAgd2hpY2ggaGFuZGxlcyBkYXRhIGNvbWluZyBpbiBpbiBxdWVyeSBwYXJhbWV0ZXJz
LCBpbiB0aGlzIGNhc2UKKyAgICAgICAgICAgIHRoZSBuZXcgcGFyYW1ldGVyICJhdHRyaWJ1dGlv
blNvdXJjZS4iCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0
cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVSTCBjb25zdCk6CisgICAgICAgICAgICBOZXcgbmFt
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlv
blJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwgY29uc3QpOgorICAgICAgICAgICAgTmV3IG5hbWUu
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25S
ZXBvcnRKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5vdyB1c2VzIHRoZSBjb25zdGFudCBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24uCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6dG9rZW5TaWduYXR1cmVKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5v
dyB1c2VzIHRoZSBjb25zdGFudCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24uCisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRT
b3VyY2VVUkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBhdHRyaWJ1dGlv
blJlcG9ydENsaWNrU291cmNlVVJMLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAgICAgUmVuYW1lZCBhdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25V
UkwuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlU2VjcmV0VG9rZW4gY29u
c3QpOgorICAgICAgICAgICAgTmV3IG5hbWUuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAgICAgRW5jb2RpbmcgYW5kIGRlY29kaW5nIG9mIHRo
ZSBuZXcgZmllbGQgc291cmNlUmVnaXN0cmFibGVEb21haW4uCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlVW5saW5rYWJsZVRva2VuIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgICAgIFJlbmFtZWQgc291cmNlU2VjcmV0VG9rZW4uCisgICAgICAgICAg
ICBOb3RlIHRoYXQgaXQgd2FzIGFsd2F5cyB0aGUgc2VjcmV0IHRva2VuIHVzZWQsIGp1c3QgYmFk
IHJlbmFtaW5nIGVhcmxpZXIuCisKIDIwMjEtMTEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBhbm90aGVyIDxtb2RlbD4gYmFja2VuZCBiYWNrZWQgYnkg
U2NlbmVLaXQgdG8gcHJvdmUgb3V0IE1vZGVsUGxheWVyIGluZnJhc3RydWN0dXJlIGEgYml0IG1v
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNzAzODQxY2YyMzdmZmEzZGM3YmRiOWYzMWNiNDg1YzY4NTNmYTgwNC4u
Y2QwNTViYjY0NjAxNmVhNGZjNWMwNWIwMWNiYWNjMTM0Y2I5NWEyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQ006IEFkZCBjYXBhYmlsaXR5IGZvciBjbGljayBkZXN0aW5hdGlvbiB0
byBmaXJlIHRyaWdnZXJpbmcgZXZlbnQgd2l0aG91dCBjcm9zcy1zaXRlIHJlcXVlc3RzIHRvIHRo
ZSBjbGljayBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzE3MworICAgICAgICA8cmRhcjovLzc5NDI2NjA1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyBjbGlj
ayBkZXN0aW5hdGlvbiBzaXRlcyBhIG5vbi1KYXZhU2NyaXB0IHdheSB0byBmaXJlIHRyaWdnZXJp
bmcKKyAgICAgICAgZXZlbnRzIHdpdGhvdXQgYSByZXF1aXJlbWVudCB0byBtYWtlIGNyb3NzLXNp
dGUgcmVxdWVzdHMgdG8gc291cmNlIHNpdGVzLiBUaGlzIGlzCisgICAgICAgIHJlZmVycmVkIHRv
IGFzIGEgInNhbWUtc2l0ZSBwaXhlbCBBUEkiIGFuZCBoYXMgYmVlbiBkaXNjdXNzZWQgaW4gVzND
IFByaXZhY3kgQ0c6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC9pc3N1ZXMvNzEKKworICAgICAgICBUaGUgcmVhc29uIHdoeSBz
b21lIG1lcmNoYW50cyB3YW50IHN1Y2ggYW4gIkFQSSIgaXMgcmVsdWN0YW5jZSB0byBkZXBsb3kg
bmV3CisgICAgICAgIEphdmFTY3JpcHQgb24gdGhlaXIgc2l0ZXMuIEluIHNvbWUgaW5kdXN0cmll
cyBpdCdzIGV2ZW4gYSBjb21wbGlhbmNlIGlzc3VlLiBMZWdhY3kKKyAgICAgICAgInBpeGVscyIg
YXJlIGhvd2V2ZXIgYWNjZXB0ZWQgYW5kIHNvIGEgc2FtZS1zaXRlICJwaXhlbCIgY2FuIHdvcmsg
Zm9yIHRoZW0uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjpEYXRhYmFzZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAg
ICAgICAgVGhlc2UgY2hhbmdlcyBhcmUganVzdCBhIGNvcnJlY3Rpb24gb2YgYSBmdW5jdGlvbiBu
YW1lOgorICAgICAgICAgICAgLSBzb3VyY2VVbmxpbmthYmxlVG9rZW4oKSB0byBzb3VyY2VTZWNy
ZXRUb2tlbigpCisgICAgICAgICAgICBOb3RlIHRoYXQgaXQgd2FzIGFsd2F5cyB0aGUgc2VjcmV0
IHRva2VuIHVzZWQsIGp1c3QgYmFkIHJlbmFtaW5nIGVhcmxpZXIuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgICAgICBOb3cgY2hlY2tzIGlmIHRoZSBp
bmNvbWluZyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YQorICAgICAgICAgICAgY2FycmllcyBhIHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluLiBJ
ZiBzbywgaXQgYWNjZXB0cyB0aGF0IGRvbWFpbiBhcyB0aGUgc291cmNlIHNpdGUKKyAgICAgICAg
ICAgIGZvciBhdHRyaWJ1dGlvbiBpZiB0aGUgdHJpZ2dlcmluZyBldmVudCB3YXMgc2FtZS1zaXRl
IGFzIHRoZSBmaXJzdC1wYXJ0eS4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdCk6CisgICAgICAgICAgICBU
aGVzZSBjaGFuZ2VzIGFyZSBqdXN0IGEgY29ycmVjdGlvbiBvZiBhIGZ1bmN0aW9uIG5hbWU6Cisg
ICAgICAgICAgICAtIHNvdXJjZVVubGlua2FibGVUb2tlbigpIHRvIHNvdXJjZVNlY3JldFRva2Vu
KCkKKyAgICAgICAgICAgIE5vdGUgdGhhdCBpdCB3YXMgYWx3YXlzIHRoZSBzZWNyZXQgdG9rZW4g
dXNlZCwganVzdCBiYWQgcmVuYW1pbmcgZWFybGllci4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKToKKyAg
ICAgICAgICAgIFRoZXNlIGNoYW5nZXMgYXJlIGJlY2F1c2Ugb2YgY2xhcmlmaWNhdGlvbiBpbiBu
YW1pbmc6CisgICAgICAgICAgICAtIGF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMIHRvIGF0dHJp
YnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwKKyAgICAgICAgICAgIC0gYXR0cmlidXRpb25SZXBv
cnRBdHRyaWJ1dGVPblVSTCB0byBhdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UENNOjpTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaDoKKwogMjAyMS0xMS0xNSAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0
aW5nIHIyODU4MTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwIGIvU291cmNl
L1dURi93dGYvVVJMLmNwcAppbmRleCAyNmYwZTkzZWRmZTE0ZWEzNTFmNjE0OGFmYTE2OTE5YmEw
YjYzMmZiLi40NDhkZGVlMjE2MGVmMThjYTVlMDY2MTM5MGU1OThkNTNiYzU0ZDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAK
QEAgLTExOTAsNiArMTE5MCwxMSBAQCBib29sIFVSTDo6aG9zdElzSVBBZGRyZXNzKFN0cmluZ1Zp
ZXcgaG9zdCkKIAogI2VuZGlmCiAKK1ZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiBxdWVyeVBhcmFtZXRlcnMoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFVSTFBhcnNl
cjo6cGFyc2VVUkxFbmNvZGVkRm9ybSh1cmwucXVlcnkoKSk7Cit9CisKIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiBkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMoY29uc3QgVVJM
JiBmaXJzdFVSTCwgY29uc3QgVVJMJiBzZWNvbmRVUkwpCiB7CiAgICAgYXV0byBmaXJzdFF1ZXJ5
UGFyYW1ldGVycyA9IFVSTFBhcnNlcjo6cGFyc2VVUkxFbmNvZGVkRm9ybShmaXJzdFVSTC5xdWVy
eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VSTC5oIGIvU291cmNlL1dURi93dGYv
VVJMLmgKaW5kZXggY2VhNGI3YTc1NDJiZDYxZGY3YmQ1ODU3NzAwODMwYzgxOTFmOWFiMS4uYjRi
YWFkMThlM2U3MWE0N2M0ZWZkN2VjZTUxM2MxMTNjOTBiOTg5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvVVJMLmgKKysrIGIvU291cmNlL1dURi93dGYvVVJMLmgKQEAgLTI1MCw2ICsyNTAs
NyBAQCBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiwgY29uc3QgVVJMJik7CiBXVEZfRVhQ
T1JUX1BSSVZBVEUgYm9vbCBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgcHJvdG9jb2xIb3N0QW5k
UG9ydEFyZUVxdWFsKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwogV1RGX0VYUE9SVF9QUklWQVRF
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiBkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnMoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CitXVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHF1ZXJ5UGFyYW1ldGVycyhjb25zdCBVUkwm
KTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzRXF1YWxJZ25vcmluZ1F1ZXJ5QW5kRnJhZ21l
bnRzKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVt
b3ZlUXVlcnlQYXJhbWV0ZXJzKFVSTCYsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IGE2YzAxOWQ1NmZiM2Yw
NjU1NzFiYjliYjY1ZjA5MGNhYWUwOWE2NDYuLjk2OWIzYWRlNjFlOGM3NzcyZDg5YTA2YjEyZDcw
MjczMDljMDlkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
CkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2so
RXZlbnQmIGV2ZW50KQogICAgIGF1dG8gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwYXJzZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAgLy8gQSBtYXRjaGluZyB0cmlnZ2VyaW5nIGV2
ZW50IG5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgYW4gYXR0cmlidXRpb24gcmVwb3J0IGNhbiBiZSBz
ZW50LgogICAgIC8vIFRodXMsIFVSTHMgc2hvdWxkIGJlIGVtcHR5IGZvciBub3cuCi0gICAgQVNT
RVJUKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB8fCAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQt
PmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCkuaXNOdWxsKCkgJiYgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwoKS5pc051bGwoKSkpOwor
ICAgIEFTU0VSVCghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgfHwgKHByaXZhdGVDbGlja01lYXN1
cmVtZW50LT5hdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMKCkuaXNOdWxsKCkgJiYgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVS
TCgpLmlzTnVsbCgpKSk7CiAgICAgCiAgICAgZnJhbWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9u
KGNvbXBsZXRlZFVSTCwgZWZmZWN0aXZlVGFyZ2V0LCAmZXZlbnQsIHJlZmVycmVyUG9saWN5LCBk
b2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpLCBuZXdG
cmFtZU9wZW5lclBvbGljeSwgZG93bmxvYWRBdHRyaWJ1dGUsIHN5c3RlbVByZXZpZXdJbmZvLCBX
VEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDY5NGYzYjgxYjI5NTE3
ZDNhYmMwOWNiMmQyOGI0NDE5MWY2ZDRiYjMuLjU2NGFjY2MyMzg5Mjk2NzJkMDg5M2RhNmQ0NWFh
ZjM0OTBhNzI1Y2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcApAQCAtNDQsNiArNDQsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5UGF0aFtdID0gIi8ud2VsbC1rbm93bi9w
cgogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXBvcnRBdHRyaWJ1
dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBv
cnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwogY29uc3Qgc2l6ZV90IHBy
aXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAyOworY29uc3Qg
dWludDhfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24gPSAyOwogCiBjb25zdCBTZWNv
bmRzIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXhBZ2UoKQogewpAQCAtMTAzLDE1ICsxMDQs
NDQgQEAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omlz
b2xhdGVkQ29weSgpIGNvbnN0CiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKK3N0ZDo6b3B0aW9uYWw8
U3RyaW5nPiBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFyc2VBdHRyaWJ1dGlvblJlcXVlc3RR
dWVyeShjb25zdCBVUkwmIHJlZGlyZWN0VVJMLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiBhdHRy
aWJ1dGlvblRyaWdnZXJEYXRhKQoreworICAgIGlmICghcmVkaXJlY3RVUkwuaGFzUXVlcnkoKSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIGF1dG8gcGFyYW1ldGVycyA9IHF1
ZXJ5UGFyYW1ldGVycyhyZWRpcmVjdFVSTCk7CisgICAgaWYgKHBhcmFtZXRlcnMuc2l6ZSgpID4g
MSkKKyAgICAgICAgcmV0dXJuICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lv
biB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHF1ZXJ5IHN0cmluZyBjb250YWlu
ZWQgdW5zdXBwb3J0ZWQgcGFyYW1ldGVycy4iX3M7CisKKyAgICBhdXRvIHBhcmFtZXRlciA9IHBh
cmFtZXRlcnMuZmlyc3QoKTsKKyAgICBpZiAocGFyYW1ldGVyLmtleSA9PSAiYXR0cmlidXRpb25T
b3VyY2UiKSB7CisgICAgICAgIGlmIChwYXJhbWV0ZXIudmFsdWUuaXNFbXB0eSgpKQorICAgICAg
ICAgICAgcmV0dXJuICJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMg
bm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIGF0dHJpYnV0aW9uU291cmNlIHF1ZXJ5IHBh
cmFtZXRlciBoYWQgbm8gdmFsdWUuIl9zOworCisgICAgICAgIGF1dG8gYXR0cmlidXRpb25Tb3Vy
Y2VVUkwgPSBVUkwoVVJMKCksIHBhcmFtZXRlci52YWx1ZSk7CisgICAgICAgIGlmICghYXR0cmli
dXRpb25Tb3VyY2VVUkwuaXNWYWxpZCgpKQorICAgICAgICAgICAgcmV0dXJuICJbUHJpdmF0ZSBD
bGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhl
IFVSTCdzIGF0dHJpYnV0aW9uU291cmNlIHF1ZXJ5IHBhcmFtZXRlciB3YXMgbm90IGEgdmFsaWQg
VVJMLiJfczsKKworICAgICAgICBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLnNvdXJjZVJlZ2lzdHJh
YmxlRG9tYWluID0gUmVnaXN0cmFibGVEb21haW4geyBhdHRyaWJ1dGlvblNvdXJjZVVSTCB9Owor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH0KKworICAgIHJldHVybiAiW1ByaXZh
dGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IHRoZSBVUkwgZGlkIG5vdCBjb250YWluIGFuIGF0dHJpYnV0aW9uU291cmNlIHF1ZXJ5IHBhcmFt
ZXRlci4iX3M7Cit9CisKIEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0
dHJpYnV0aW9uUmVxdWVzdChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQogewogICAgIGF1dG8gcGF0
aCA9IFN0cmluZ1ZpZXcocmVkaXJlY3RVUkwuc3RyaW5nKCkpLnN1YnN0cmluZyhyZWRpcmVjdFVS
TC5wYXRoU3RhcnQoKSwgcmVkaXJlY3RVUkwucGF0aEVuZCgpIC0gcmVkaXJlY3RVUkwucGF0aFN0
YXJ0KCkpOwogICAgIGlmIChwYXRoLmlzRW1wdHkoKSB8fCAhcGF0aC5zdGFydHNXaXRoKHByaXZh
dGVDbGlja01lYXN1cmVtZW50VHJpZ2dlckF0dHJpYnV0aW9uUGF0aCkpCiAgICAgICAgIHJldHVy
biBtYWtlVW5leHBlY3RlZChudWxsU3RyaW5nKCkpOwogCi0gICAgaWYgKCFyZWRpcmVjdFVSTC5w
cm90b2NvbElzKCJodHRwcyIpIHx8IHJlZGlyZWN0VVJMLmhhc0NyZWRlbnRpYWxzKCkgfHwgcmVk
aXJlY3RVUkwuaGFzUXVlcnkoKSB8fCByZWRpcmVjdFVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIo
KSkKLSAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3Rv
Y29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJu
YW1lLCBwYXNzd29yZCwgcXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQuIl9zKTsKKyAgICBpZiAo
IXJlZGlyZWN0VVJMLnByb3RvY29sSXMoImh0dHBzIikgfHwgcmVkaXJlY3RVUkwuaGFzQ3JlZGVu
dGlhbHMoKSB8fCByZWRpcmVjdFVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAg
cmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVy
c2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBI
VFRQUyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29y
ZCwgYW5kIGZyYWdtZW50LiJfcyk7CiAKKyAgICBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIGF0dHJp
YnV0aW9uVHJpZ2dlckRhdGE7CisgICAgYXV0byBlcnJvck1lc3NhZ2UgPSBwYXJzZUF0dHJpYnV0
aW9uUmVxdWVzdFF1ZXJ5KHJlZGlyZWN0VVJMLCBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKTsKKyAg
ICBpZiAoZXJyb3JNZXNzYWdlKQorICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoKmVycm9y
TWVzc2FnZSk7CiAKICAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihwcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudFRyaWdnZXJBdHRyaWJ1dGlvblBhdGgpIC0gMTsKICAgICBpZiAocGF0aC5sZW5n
dGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUpIHsKQEAgLTExOSw3ICsxNDksOSBAQCBFeHBlY3Rl
ZDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgU3RyaW5n
PiBQcml2YXRlQ2xpY2tNZQogICAgICAgICBpZiAoIWF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50
NjQgfHwgKmF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQgPiBBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhOjpNYXhFbnRyb3B5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKG1ha2VT
dHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNj
ZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Ig
d2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBBdHRyaWJ1dGlvblRy
aWdnZXJEYXRhOjpNYXhFbnRyb3B5LCAiLiJfcykpOwogCi0gICAgICAgIHJldHVybiBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oKmF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGFVSW50NjQpLCBQcmlvcml0eSB7IDAgfSB9OworICAgICAgICBhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhLmRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90PigqYXR0cmlidXRpb25UcmlnZ2VyRGF0
YVVJbnQ2NCk7CisgICAgICAgIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEucHJpb3JpdHkgPSAwOwor
ICAgICAgICByZXR1cm4gYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICB9CiAgICAgCiAgICAg
aWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhUGF0aFNlZ21lbnRTaXplICsgMSArIHByaXZhdGVDbGlj
a01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpIHsKQEAgLTEzMSw3ICsxNjMsOSBA
QCBFeHBlY3RlZDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0
YSwgU3RyaW5nPiBQcml2YXRlQ2xpY2tNZQogICAgICAgICBpZiAoIWF0dHJpYnV0aW9uUHJpb3Jp
dHlVSW50NjQgfHwgKmF0dHJpYnV0aW9uUHJpb3JpdHlVSW50NjQgPiBQcmlvcml0eTo6TWF4RW50
cm9weSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtlU3RyaW5nKCJbUHJp
dmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1
c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRo
ZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBQcmlvcml0eTo6TWF4RW50cm9weSwgIi4iX3MpKTsK
IAotICAgICAgICByZXR1cm4gQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7IHN0YXRpY19jYXN0PHVp
bnQ4X3Q+KCphdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0KSwgUHJpb3JpdHkgeyBzdGF0aWNf
Y2FzdDx1aW50OF90PigqYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCkgfSB9OworICAgICAgICBh
dHRyaWJ1dGlvblRyaWdnZXJEYXRhLmRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90PigqYXR0cmli
dXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCk7CisgICAgICAgIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEu
cHJpb3JpdHkgPSBzdGF0aWNfY2FzdDx1aW50OF90PigqYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2
NCk7CisgICAgICAgIHJldHVybiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogICAgIH0KIAogICAg
IHJldHVybiBtYWtlVW5leHBlY3RlZCgiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRdIENvbnZl
cnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBjb250YWluZWQgdW5y
ZWNvZ25pemVkIHBhcnRzLiJfcyk7CkBAIC0xODksNyArMjIzLDcgQEAgc3RhdGljIFVSTCBhdHRy
aWJ1dGlvblJlcG9ydFVSTChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9tYWluKQogICAgIHJl
dHVybiBtYWtlVmFsaWRVUkwoZG9tYWluLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFJlcG9ydEF0
dHJpYnV0aW9uUGF0aCk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmli
dXRpb25SZXBvcnRTb3VyY2VVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjphdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMKCkgY29uc3QKIHsKICAgICBpZiAoIWlz
VmFsaWQoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOwpAQCAtMTk3LDcgKzIzMSw3IEBAIFVSTCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKSBjb25z
dAogICAgIHJldHVybiBhdHRyaWJ1dGlvblJlcG9ydFVSTChtX3NvdXJjZVNpdGUucmVnaXN0cmFi
bGVEb21haW4pOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9u
UmVwb3J0QXR0cmlidXRlT25VUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlja01lYXN1cmVtZW50
OjphdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKSBjb25zdAogewogICAgIGlm
ICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7CkBAIC0yMTYsNyArMjUwLDcgQEAg
UmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVw
b3J0SlNPTigpIGNvbnN0CiAgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdlcigic291cmNlX2lk
Il9zLCBtX3NvdXJjZUlELmlkKTsKICAgICByZXBvcnREZXRhaWxzLT5zZXRTdHJpbmcoImF0dHJp
YnV0ZWRfb25fc2l0ZSJfcywgbV9kZXN0aW5hdGlvblNpdGUucmVnaXN0cmFibGVEb21haW4uc3Ry
aW5nKCkpOwogICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInRyaWdnZXJfZGF0YSJfcywg
bV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5kYXRhKTsKLSAgICByZXBvcnREZXRhaWxzLT5zZXRJ
bnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKKyAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJ2
ZXJzaW9uIl9zLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24pOwogCiAgICAgLy8gVGhp
cyB0b2tlbiBoYXMgYmVlbiBrZXB0IHNlY3JldCB0aGlzIGZhciBhbmQgY2Fubm90IGJlIGxpbmtl
ZCB0byB0aGUgdW5saW5rYWJsZSB0b2tlbi4KICAgICBpZiAobV9zb3VyY2VTZWNyZXRUb2tlbikg
ewpAQCAtMjc0LDcgKzMwOCw3IEBAIFJlZjxKU09OOjpPYmplY3Q+IFByaXZhdGVDbGlja01lYXN1
cmVtZW50Ojp0b2tlblNpZ25hdHVyZUpTT04oKSBjb25zdAogICAgIHJlcG9ydERldGFpbHMtPnNl
dFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5vbmNlLT5ub25jZSk7
CiAgICAgLy8gVGhpcyB0b2tlbiBjYW4gbm90IGJlIGxpbmtlZCB0byB0aGUgc2VjcmV0IHRva2Vu
LgogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX3VubGlua2FibGVfdG9rZW4i
X3MsIG1fc291cmNlVW5saW5rYWJsZVRva2VuLnZhbHVlQmFzZTY0VVJMKTsKLSAgICByZXBvcnRE
ZXRhaWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKKyAgICByZXBvcnREZXRhaWxzLT5z
ZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24pOwog
ICAgIHJldHVybiByZXBvcnREZXRhaWxzOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRl
ci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmluZGV4IDc1OWNmN2M2YWU3N2JiZmYxNDllYTkz
YTEwZmUyYzZiMjAyZmFhMmUuLmNhOGM1YWVhOTkxOGIxZjgzMzJhZGM5MTM1NjQxMmY0MDM4Y2Ey
YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC5oCkBAIC02Nyw2ICs2Nyw3IEBAIHB1YmxpYzoKICAgICB9OwogCiAgICAgc3RydWN0IFNvdXJj
ZVNpdGUgeworICAgICAgICBTb3VyY2VTaXRlKCkgPSBkZWZhdWx0OwogICAgICAgICBleHBsaWNp
dCBTb3VyY2VTaXRlKGNvbnN0IFVSTCYgdXJsKQogICAgICAgICAgICAgOiByZWdpc3RyYWJsZURv
bWFpbiB7IHVybCB9CiAgICAgICAgIHsKQEAgLTE3Miw3ICsxNzMsOCBAQCBwdWJsaWM6CiAgICAg
ICAgIHN0YXRpYyBjb25zdGV4cHIgdWludDhfdCBNYXhFbnRyb3B5ID0gMTU7CiAKICAgICAgICAg
ZW51bSBjbGFzcyBXYXNTZW50IDogYm9vbCB7IE5vLCBZZXMgfTsKLSAgICAgICAgCisKKyAgICAg
ICAgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSgpID0gZGVmYXVsdDsKICAgICAgICAgQXR0cmlidXRp
b25UcmlnZ2VyRGF0YSh1aW50OF90IGRhdGEsIFByaW9yaXR5IHByaW9yaXR5LCBXYXNTZW50IHdh
c1NlbnQgPSBXYXNTZW50OjpObykKICAgICAgICAgICAgIDogZGF0YSB7IGRhdGEgfQogICAgICAg
ICAgICAgLCBwcmlvcml0eSB7IHByaW9yaXR5LnZhbHVlIH0KQEAgLTE4OCw2ICsxOTAsNyBAQCBw
dWJsaWM6CiAgICAgICAgIHVpbnQ4X3QgZGF0YSB7IDAgfTsKICAgICAgICAgUHJpb3JpdHlWYWx1
ZSBwcmlvcml0eTsKICAgICAgICAgV2FzU2VudCB3YXNTZW50ID0gV2FzU2VudDo6Tm87CisgICAg
ICAgIHN0ZDo6b3B0aW9uYWw8UmVnaXN0cmFibGVEb21haW4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9t
YWluOwogCiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29k
ZXImKSBjb25zdDsKICAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6
b3B0aW9uYWw8QXR0cmlidXRpb25UcmlnZ2VyRGF0YT4gZGVjb2RlKERlY29kZXImKTsKQEAgLTMx
Nyw4ICszMjAsOCBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9FWFBPUlQgc3RhdGljIEV4cGVjdGVk
PEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFN0cmluZz4gcGFyc2VBdHRyaWJ1dGlvblJlcXVlc3Qo
Y29uc3QgVVJMJiByZWRpcmVjdFVSTCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgQXR0cmlidXRpb25T
ZWNvbmRzVW50aWxTZW5kRGF0YSBhdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1NlbmQoQXR0
cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBJc1J1bm5pbmdMYXlvdXRUZXN0KTsKICAgICBXRUJDT1JF
X0VYUE9SVCBib29sIGhhc0hpZ2hlclByaW9yaXR5VGhhbihjb25zdCBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCYpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBhdHRyaWJ1dGlvblJlcG9y
dFNvdXJjZVVSTCgpIGNvbnN0OwotICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBhdHRyaWJ1dGlvblJl
cG9ydEF0dHJpYnV0ZU9uVVJMKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVVJMIGF0dHJp
YnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKSBjb25zdDsKKyAgICBXRUJDT1JFX0VYUE9SVCBV
UkwgYXR0cmlidXRpb25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMKCkgY29uc3Q7CiAgICAgV0VC
Q09SRV9FWFBPUlQgUmVmPEpTT046Ok9iamVjdD4gYXR0cmlidXRpb25SZXBvcnRKU09OKCkgY29u
c3Q7CiAgICAgY29uc3QgU291cmNlU2l0ZSYgc291cmNlU2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1f
c291cmNlU2l0ZTsgfTsKICAgICBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYgZGVz
dGluYXRpb25TaXRlKCkgY29uc3QgeyByZXR1cm4gbV9kZXN0aW5hdGlvblNpdGU7IH07CkBAIC0z
NzEsNyArMzc0LDcgQEAgcHVibGljOgogI2VuZGlmCiAKICAgICB2b2lkIHNldFNvdXJjZVVubGlu
a2FibGVUb2tlblZhbHVlKGNvbnN0IFN0cmluZyYgdmFsdWUpIHsgbV9zb3VyY2VVbmxpbmthYmxl
VG9rZW4udmFsdWVCYXNlNjRVUkwgPSB2YWx1ZTsgfQotICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8
U291cmNlU2VjcmV0VG9rZW4+JiBzb3VyY2VVbmxpbmthYmxlVG9rZW4oKSBjb25zdCB7IHJldHVy
biBtX3NvdXJjZVNlY3JldFRva2VuOyB9CisgICAgY29uc3Qgc3RkOjpvcHRpb25hbDxTb3VyY2VT
ZWNyZXRUb2tlbj4mIHNvdXJjZVNlY3JldFRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9zb3VyY2VT
ZWNyZXRUb2tlbjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIHZvaWQgc2V0U291cmNlU2VjcmV0VG9r
ZW4oU291cmNlU2VjcmV0VG9rZW4mJik7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CkBAIC0zODAsNiArMzgzLDcgQEAgcHVibGljOgog
ICAgIFdFQkNPUkVfRVhQT1JUIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGlzb2xhdGVkQ29weSgp
IGNvbnN0OwogCiBwcml2YXRlOgorICAgIHN0YXRpYyBzdGQ6Om9wdGlvbmFsPFN0cmluZz4gcGFy
c2VBdHRyaWJ1dGlvblJlcXVlc3RRdWVyeShjb25zdCBVUkwmLCBBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhJik7CiAgICAgYm9vbCBpc1ZhbGlkKCkgY29uc3Q7CiAKICAgICBTb3VyY2VJRCBtX3NvdXJj
ZUlEOwpAQCAtNTA1LDcgKzUwOSw3IEBAIHN0ZDo6b3B0aW9uYWw8UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OkVwaGVtZXJhbFNvdXJjZU5vbmNlPiBQcml2YXRlQ2xpY2tNZWFzdXJlCiB0ZW1wbGF0
ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YTo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5j
b2RlciA8PCBkYXRhIDw8IHByaW9yaXR5IDw8IHdhc1NlbnQ7CisgICAgZW5jb2RlciA8PCBkYXRh
IDw8IHByaW9yaXR5IDw8IHdhc1NlbnQgPDwgc291cmNlUmVnaXN0cmFibGVEb21haW47CiB9CiAK
IHRlbXBsYXRlPGNsYXNzIERlY29kZXI+CkBAIC01MjYsNyArNTMwLDE0IEBAIHN0ZDo6b3B0aW9u
YWw8UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IFByaXZh
dGVDbGlja01lYXN1CiAgICAgaWYgKCF3YXNTZW50KQogICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OwogICAgIAotICAgIHJldHVybiBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgV1RGTW92ZSgq
ZGF0YSksIFByaW9yaXR5IHsgKnByaW9yaXR5IH0sICp3YXNTZW50IH07CisgICAgc3RkOjpvcHRp
b25hbDxzdGQ6Om9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPj4gc291cmNlUmVnaXN0cmFibGVE
b21haW47CisgICAgZGVjb2RlciA+PiBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKKyAgICBpZiAo
IXNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIAorICAgIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7
IFdURk1vdmUoKmRhdGEpLCBQcmlvcml0eSB7ICpwcmlvcml0eSB9LCAqd2FzU2VudCB9OworICAg
IGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuc291cmNlUmVnaXN0cmFibGVEb21haW4gPSBXVEZNb3Zl
KCpzb3VyY2VSZWdpc3RyYWJsZURvbWFpbik7CisgICAgcmV0dXJuIGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnREYXRhYmFzZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJhc2UuY3Bw
CmluZGV4IDRhMzExYmNmOGVjZWIxOGJkYWZjMmIwYmJiNDA2MGRkOTE1NGU4NTcuLmJjYTdmNTE5
MzRjOGY2MzIyMzBiMjcxNDExOWJiMmU2NzNjZmE1ZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnREYXRhYmFzZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNw
cApAQCAtMTc1LDcgKzE3NSw3IEBAIHZvaWQgRGF0YWJhc2U6Omluc2VydFByaXZhdGVDbGlja01l
YXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICAgICBpZiAoIXNv
dXJjZUlEIHx8ICFhdHRyaWJ1dGlvbkRlc3RpbmF0aW9uSUQpCiAgICAgICAgIHJldHVybjsKIAot
ICAgIGF1dG8mIHNvdXJjZVVubGlua2FibGVUb2tlbiA9IGF0dHJpYnV0aW9uLnNvdXJjZVVubGlu
a2FibGVUb2tlbigpOworICAgIGF1dG8mIHNvdXJjZVNlY3JldFRva2VuID0gYXR0cmlidXRpb24u
c291cmNlU2VjcmV0VG9rZW4oKTsKICAgICBpZiAoYXR0cmlidXRpb25UeXBlID09IFByaXZhdGVD
bGlja01lYXN1cmVtZW50QXR0cmlidXRpb25UeXBlOjpBdHRyaWJ1dGVkKSB7CiAgICAgICAgIGF1
dG8gYXR0cmlidXRpb25UcmlnZ2VyRGF0YSA9IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEoKSA/IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKS52YWx1ZSgpLmRh
dGEgOiAtMTsKICAgICAgICAgYXV0byBwcmlvcml0eSA9IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEoKSA/IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKS52YWx1
ZSgpLnByaW9yaXR5IDogLTE7CkBAIC0xOTQsOSArMTk0LDkgQEAgdm9pZCBEYXRhYmFzZTo6aW5z
ZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQmJgogICAgICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kSW50KDUsIHByaW9yaXR5KSAhPSBT
UUxJVEVfT0sKICAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZERvdWJsZSg2LCBhdHRyaWJ1
dGlvbi50aW1lT2ZBZENsaWNrKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJ
VEVfT0sKICAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZERvdWJsZSg3LCBzb3VyY2VFYXJs
aWVzdFRpbWVUb1NlbmQpICE9IFNRTElURV9PSwotICAgICAgICAgICAgfHwgc3RhdGVtZW50LT5i
aW5kVGV4dCg4LCBzb3VyY2VVbmxpbmthYmxlVG9rZW4gPyBzb3VyY2VVbmxpbmthYmxlVG9rZW4t
PnRva2VuQmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgICAg
ICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDksIHNvdXJjZVVubGlua2FibGVUb2tlbiA/IHNvdXJj
ZVVubGlua2FibGVUb2tlbi0+c2lnbmF0dXJlQmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0g
U1FMSVRFX09LCi0gICAgICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDEwLCBzb3VyY2VV
bmxpbmthYmxlVG9rZW4gPyBzb3VyY2VVbmxpbmthYmxlVG9rZW4tPmtleUlEQmFzZTY0VVJMIDog
ZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0ZW1lbnQtPmJp
bmRUZXh0KDgsIHNvdXJjZVNlY3JldFRva2VuID8gc291cmNlU2VjcmV0VG9rZW4tPnRva2VuQmFz
ZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCisgICAgICAgICAgICB8fCBzdGF0
ZW1lbnQtPmJpbmRUZXh0KDksIHNvdXJjZVNlY3JldFRva2VuID8gc291cmNlU2VjcmV0VG9rZW4t
PnNpZ25hdHVyZUJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkpICE9IFNRTElURV9PSworICAgICAg
ICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCgxMCwgc291cmNlU2VjcmV0VG9rZW4gPyBzb3Vy
Y2VTZWNyZXRUb2tlbi0+a2V5SURCYXNlNjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVf
T0sKICAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZERvdWJsZSgxMSwgZGVzdGluYXRpb25F
YXJsaWVzdFRpbWVUb1NlbmQpICE9IFNRTElURV9PSwogICAgICAgICAgICAgfHwgc3RhdGVtZW50
LT5iaW5kVGV4dCgxMiwgYXR0cmlidXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpKSAh
PSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9E
T05FKSB7CkBAIC0yMTQsOSArMjE0LDkgQEAgdm9pZCBEYXRhYmFzZTo6aW5zZXJ0UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJgogICAgICAg
ICB8fCBzdGF0ZW1lbnQtPmJpbmRJbnQoMiwgKmF0dHJpYnV0aW9uRGVzdGluYXRpb25JRCkgIT0g
U1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZEludCgzLCBhdHRyaWJ1dGlvbi5z
b3VyY2VJRCgpLmlkKSAhPSBTUUxJVEVfT0sKICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kRG91
YmxlKDQsIGF0dHJpYnV0aW9uLnRpbWVPZkFkQ2xpY2soKS5zZWNvbmRzU2luY2VFcG9jaCgpLnZh
bHVlKCkpICE9IFNRTElURV9PSwotICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDUsIHNv
dXJjZVVubGlua2FibGVUb2tlbiA/IHNvdXJjZVVubGlua2FibGVUb2tlbi0+dG9rZW5CYXNlNjRV
UkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgc3RhdGVtZW50LT5i
aW5kVGV4dCg2LCBzb3VyY2VVbmxpbmthYmxlVG9rZW4gPyBzb3VyY2VVbmxpbmthYmxlVG9rZW4t
PnNpZ25hdHVyZUJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkpICE9IFNRTElURV9PSwotICAgICAg
ICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDcsIHNvdXJjZVVubGlua2FibGVUb2tlbiA/IHNvdXJj
ZVVubGlua2FibGVUb2tlbi0+a2V5SURCYXNlNjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCg1LCBzb3VyY2VTZWNyZXRUb2tl
biA/IHNvdXJjZVNlY3JldFRva2VuLT50b2tlbkJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkpICE9
IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDYsIHNvdXJjZVNlY3Jl
dFRva2VuID8gc291cmNlU2VjcmV0VG9rZW4tPnNpZ25hdHVyZUJhc2U2NFVSTCA6IGVtcHR5U3Ry
aW5nKCkpICE9IFNRTElURV9PSworICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDcsIHNv
dXJjZVNlY3JldFRva2VuID8gc291cmNlU2VjcmV0VG9rZW4tPmtleUlEQmFzZTY0VVJMIDogZW1w
dHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQo
OCwgYXR0cmlidXRpb24uc291cmNlQXBwbGljYXRpb25CdW5kbGVJRCgpKSAhPSBTUUxJVEVfT0sK
ICAgICAgICAgfHwgc3RhdGVtZW50LT5zdGVwKCkgIT0gU1FMSVRFX0RPTkUpIHsKICAgICAgICAg
UkVMRUFTRV9MT0dfRVJST1IoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsICIlcCAtIERhdGFiYXNl
OjppbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBpbnNlcnRVbmF0dHJpYnV0ZWRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudFF1ZXJ5LCBlcnJvciBtZXNzYWdlOiAlIiBQUklWQVRFX0xPR19TVFJJ
TkcsIHRoaXMsIG1fZGF0YWJhc2UubGFzdEVycm9yTXNnKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3Bw
CmluZGV4IDY5NTE5NzQzY2NmZmZmYWQzMTRjMDE1ZGQ3ZTAzYzdiZDZmMmIzYjQuLmZjYzk3ZjBj
NmRmNTRkM2IyMjE4M2ZmZDg0NzY2YjE0Y2I2NzYxODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRNYW5hZ2VyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1By
aXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5jcHAK
QEAgLTI0OCwxNCArMjQ4LDIyIEBAIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
OjpoYW5kbGVBdHRyaWJ1dGlvbihBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYKICAgICAgICAgcmV0
dXJuOwogICAgIH0KIAorICAgIFNvdXJjZVNpdGUgc291cmNlU2l0ZTsKICAgICBpZiAocmVkaXJl
Y3REb21haW4ubWF0Y2hlcyhmaXJzdFBhcnR5VVJMKSkgewotICAgICAgICBtX2NsaWVudC0+YnJv
YWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4gSFRUUCByZWRpcmVjdCB0aGF0IGlzIHNhbWUtc2l0ZSBh
cyB0aGUgZmlyc3QtcGFydHkuIl9zKTsKKyAgICAgICAgaWYgKCFhdHRyaWJ1dGlvblRyaWdnZXJE
YXRhLnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluKSB7CisgICAgICAgICAgICBtX2NsaWVudC0+YnJv
YWRjYXN0Q29uc29sZU1lc3NhZ2UoTWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNl
IGl0IHdhcyByZXF1ZXN0ZWQgaW4gYW4gSFRUUCByZWRpcmVjdCB0aGF0IGlzIHNhbWUtc2l0ZSBh
cyB0aGUgICBmaXJzdC1wYXJ0eSBhbmQgbm8gYXR0cmlidXRpb25Tb3VyY2UgcXVlcnkgcGFyYW1l
dGVyIHdhcyBwcm92aWRlZC4iX3MpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9Cisg
ICAgICAgIHNvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4gPSAqYXR0cmlidXRpb25UcmlnZ2Vy
RGF0YS5zb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKKyAgICB9IGVsc2UgaWYgKGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEuc291cmNlUmVnaXN0cmFibGVEb21haW4pIHsKKyAgICAgICAgbV9jbGllbnQt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIltQcml2YXRl
IENsaWNrIE1lYXN1cmVtZW50XSBUcmlnZ2VyaW5nIGV2ZW50IHdhcyBub3QgYWNjZXB0ZWQgYmVj
YXVzZSBpdCB3YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBjcm9zcy1z
aXRlIGZyb20gdGhlIGZpcnN0LXBhcnR5IGJ1dCBhbiBhdHRyaWJ1dGlvblNvdXJjZSBxdWVyeSBw
YXJhbWV0ZXIgd2FzIHN0aWxsIHByb3ZpZGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKLSAgICB9
CisgICAgfSBlbHNlCisgICAgICAgIHNvdXJjZVNpdGUucmVnaXN0cmFibGVEb21haW4gPSBXVEZN
b3ZlKHJlZGlyZWN0RG9tYWluKTsKIAogICAgIG1fY2xpZW50LT5icm9hZGNhc3RDb25zb2xlTWVz
c2FnZShNZXNzYWdlTGV2ZWw6OkxvZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBUcmln
Z2VyaW5nIGV2ZW50IGFjY2VwdGVkLiJfcyk7CiAKLSAgICBhdHRyaWJ1dGUoU291cmNlU2l0ZSB7
IFdURk1vdmUocmVkaXJlY3REb21haW4pIH0sIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsg
Zmlyc3RQYXJ0eVVSTCB9LCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBtX3ByaXZh
dGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nID8gKm1fcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgOiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50
aWZpZXIpOworICAgIGF0dHJpYnV0ZShXVEZNb3ZlKHNvdXJjZVNpdGUpLCBBdHRyaWJ1dGlvbkRl
c3RpbmF0aW9uU2l0ZSB7IGZpcnN0UGFydHlVUkwgfSwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhKSwgbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA/
ICptX3ByaXZhdGVDbGlja01lYXN1cmVtZW50QXBwQnVuZGxlSURGb3JUZXN0aW5nIDogYXBwbGlj
YXRpb25CdW5kbGVJZGVudGlmaWVyKTsKIH0KIAogdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dE1hbmFnZXI6OnN0YXJ0VGltZXJJbW1lZGlhdGVseUZvclRlc3RpbmcoKQpAQCAtMjc2LDEyICsy
ODQsMTIgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OnN0YXJ0VGltZXIo
U2Vjb25kcyBzZWNvbmRzKQogICAgIG1fZmlyZVBlbmRpbmdBdHRyaWJ1dGlvblJlcXVlc3RzVGlt
ZXIuc3RhcnRPbmVTaG90KHNlY29uZHMpOwogfQogCi12b2lkIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50TWFuYWdlcjo6YXR0cmlidXRlKGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUsIGNvbnN0
IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNpdGUsIEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEmJiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBjb25zdCBBcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXImIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcikKK3ZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUoU291cmNlU2l0ZSYmIHNvdXJjZVNp
dGUsIEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiYgZGVzdGluYXRpb25TaXRlLCBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgQXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCiB7CiAgICAg
aWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAgICByZXR1cm47CiAKLSAgICBzdG9yZSgpLmF0
dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KHNvdXJjZVNpdGUsIGRlc3RpbmF0aW9uU2l0
ZSwgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEpLCBtX2lzUnVubmluZ1Rlc3QgPyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6SXNSdW5uaW5nTGF5b3V0VGVzdDo6WWVzIDogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRy
IHsgKnRoaXMgfV0gKGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBk
ZWJ1Z0luZm8pIHsKKyAgICBzdG9yZSgpLmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50
KFdURk1vdmUoc291cmNlU2l0ZSksIFdURk1vdmUoZGVzdGluYXRpb25TaXRlKSwgYXBwbGljYXRp
b25CdW5kbGVJZGVudGlmaWVyLCBXVEZNb3ZlKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEpLCBtX2lz
UnVubmluZ1Rlc3QgPyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNSdW5uaW5n
TGF5b3V0VGVzdDo6WWVzIDogV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVu
bmluZ0xheW91dFRlc3Q6Ok5vLCBbdGhpcywgd2Vha1RoaXMgPSBXZWFrUHRyIHsgKnRoaXMgfV0g
KGF1dG8gYXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YSwgYXV0byBkZWJ1Z0luZm8pIHsK
ICAgICAgICAgaWYgKCF3ZWFrVGhpcykKICAgICAgICAgICAgIHJldHVybjsKICAgICAgICAgCkBA
IC0zMTksNyArMzI3LDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZp
cmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWEKICAgICBpZiAoIWZlYXR1
cmVFbmFibGVkKCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGlmICghYXR0cmlidXRpb24uc291
cmNlVW5saW5rYWJsZVRva2VuKCkpIHsKKyAgICBpZiAoIWF0dHJpYnV0aW9uLnNvdXJjZVNlY3Jl
dFRva2VuKCkpIHsKICAgICAgICAgZmlyZUNvbnZlcnNpb25SZXF1ZXN0SW1wbChhdHRyaWJ1dGlv
biwgYXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CkBA
IC0zMzksNyArMzQ3LDcgQEAgdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZp
cmVDb252ZXJzaW9uUmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWEKICAgICAgICAgYXV0byBw
dWJsaWNLZXlEYXRhSGFzaCA9IGNyeXB0by0+Y29tcHV0ZUhhc2goKTsKIAogICAgICAgICBhdXRv
IGtleUlEID0gYmFzZTY0VVJMRW5jb2RlVG9TdHJpbmcocHVibGljS2V5RGF0YUhhc2guZGF0YSgp
LCBwdWJsaWNLZXlEYXRhSGFzaC5zaXplKCkpOwotICAgICAgICBpZiAoa2V5SUQgIT0gYXR0cmli
dXRpb24uc291cmNlVW5saW5rYWJsZVRva2VuKCktPmtleUlEQmFzZTY0VVJMKQorICAgICAgICBp
ZiAoa2V5SUQgIT0gYXR0cmlidXRpb24uc291cmNlU2VjcmV0VG9rZW4oKS0+a2V5SURCYXNlNjRV
UkwpCiAgICAgICAgICAgICByZXR1cm47CiAKICAgICAgICAgZmlyZUNvbnZlcnNpb25SZXF1ZXN0
SW1wbChhdHRyaWJ1dGlvbiwgYXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCk7CkBAIC0zNTEsMTAg
KzM1OSwxMCBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6ZmlyZUNvbnZl
cnNpb25SZXF1ZXN0SW1wbChjb25zdCBQcml2YXRlQ2xpYwogICAgIFVSTCBhdHRyaWJ1dGlvblVS
TDsKICAgICBzd2l0Y2ggKGF0dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpIHsKICAgICBjYXNlIFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50OjpTb3VyY2U6
Ci0gICAgICAgIGF0dHJpYnV0aW9uVVJMID0gbV9hdHRyaWJ1dGlvblJlcG9ydFRlc3RDb25maWcg
PyBtX2F0dHJpYnV0aW9uUmVwb3J0VGVzdENvbmZpZy0+YXR0cmlidXRpb25SZXBvcnRTb3VyY2VV
UkwgOiBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTCgpOworICAgICAgICBh
dHRyaWJ1dGlvblVSTCA9IG1fYXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmlnID8gbV9hdHRyaWJ1
dGlvblJlcG9ydFRlc3RDb25maWctPmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwgOiBh
dHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMKCk7CiAgICAgICAgIGJy
ZWFrOwogICAgIGNhc2UgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uUmVwb3J0
RW5kcG9pbnQ6OkRlc3RpbmF0aW9uOgotICAgICAgICBhdHRyaWJ1dGlvblVSTCA9IG1fYXR0cmli
dXRpb25SZXBvcnRUZXN0Q29uZmlnID8gbV9hdHRyaWJ1dGlvblJlcG9ydFRlc3RDb25maWctPmF0
dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwgOiBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJl
cG9ydEF0dHJpYnV0ZU9uVVJMKCk7CisgICAgICAgIGF0dHJpYnV0aW9uVVJMID0gbV9hdHRyaWJ1
dGlvblJlcG9ydFRlc3RDb25maWcgPyBtX2F0dHJpYnV0aW9uUmVwb3J0VGVzdENvbmZpZy0+YXR0
cmlidXRpb25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMIDogYXR0cmlidXRpb24uYXR0cmlidXRp
b25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMKCk7CiAgICAgfQogCiAgICAgaWYgKGF0dHJpYnV0
aW9uVVJMLmlzRW1wdHkoKSB8fCAhYXR0cmlidXRpb25VUkwuaXNWYWxpZCgpKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyLmgKaW5kZXggNjAyMzY3YTdiNDk4Y2M4YWYzNTcyY2E0ZGRjOGFkMDFjNmQ2M2JjMC4uYzY3
M2FmODQ4ODMyZmQxYjdjMDliMjkwZWE5N2UxMTNjMDJhMjU2MyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudE1hbmFnZXIuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5o
CkBAIC03Niw3ICs3Niw3IEBAIHByaXZhdGU6CiAgICAgdm9pZCBnZXRTaWduZWRVbmxpbmthYmxl
VG9rZW4oUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmJik7CiAgICAgdm9pZCBpbnNlcnRQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudEF0dHJpYnV0aW9uVHlwZSwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZCgpPiYmKTsK
ICAgICB2b2lkIGNsZWFyU2VudEF0dHJpYnV0aW9uKFByaXZhdGVDbGlja01lYXN1cmVtZW50JiYs
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKLSAg
ICB2b2lkIGF0dHJpYnV0ZShjb25zdCBTb3VyY2VTaXRlJiwgY29uc3QgQXR0cmlidXRpb25EZXN0
aW5hdGlvblNpdGUmLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIGNvbnN0IEFwcGxpY2F0aW9u
QnVuZGxlSWRlbnRpZmllciYpOworICAgIHZvaWQgYXR0cmlidXRlKFNvdXJjZVNpdGUmJiwgQXR0
cmlidXRpb25EZXN0aW5hdGlvblNpdGUmJiwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmLCBjb25z
dCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsKICAgICB2b2lkIGZpcmVDb252ZXJzaW9u
UmVxdWVzdChjb25zdCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYsIFByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50KTsKICAgICB2b2lkIGZpcmVDb252ZXJz
aW9uUmVxdWVzdEltcGwoY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQmLCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCk7CiAgICAgdm9pZCBjbGVh
ckV4cGlyZWQoKTsKQEAgLTk0LDggKzk0LDggQEAgcHJpdmF0ZToKICAgICBVbmlxdWVSZWY8UENN
OjpDbGllbnQ+IG1fY2xpZW50OwogCiAgICAgc3RydWN0IEF0dHJpYnV0aW9uUmVwb3J0VGVzdENv
bmZpZyB7Ci0gICAgICAgIFVSTCBhdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTDsKLSAgICAgICAg
VVJMIGF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkw7CisgICAgICAgIFVSTCBhdHRyaWJ1
dGlvblJlcG9ydENsaWNrU291cmNlVVJMOworICAgICAgICBVUkwgYXR0cmlidXRpb25SZXBvcnRD
bGlja0Rlc3RpbmF0aW9uVVJMOwogICAgIH07CiAKICAgICBzdGQ6Om9wdGlvbmFsPEF0dHJpYnV0
aW9uUmVwb3J0VGVzdENvbmZpZz4gbV9hdHRyaWJ1dGlvblJlcG9ydFRlc3RDb25maWc7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVt
ZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3
b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFN0b3JlLmNwcAppbmRleCBjMWNlZDkyNjFiZTIyNzgwNDIxYzY1YWEzMGMzZTdmNzQ5M2RiMmY5
Li5hYjUwOTQwODE3MjQ0ZDcyOTFiMTk4MTg0MzZlNWQ1MTgyZWE0OTY0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZh
dGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1By
b2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9y
ZS5jcHAKQEAgLTk0LDcgKzk0LDcgQEAgdm9pZCBTdG9yZTo6bWFya0FsbFVuYXR0cmlidXRlZFBy
aXZhdGVDbGlja01lYXN1cmVtZW50QXNFeHBpcmVkRm9yVGVzdGluZygpCiAgICAgfSk7CiB9CiAK
LXZvaWQgU3RvcmU6OmF0dHJpYnV0ZVByaXZhdGVDbGlja01lYXN1cmVtZW50KGNvbnN0IFdlYkNv
cmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25z
dCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlv
blNpdGUmIGRlc3RpbmF0aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVy
JiBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3QgaXNS
dW5uaW5nVGVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRh
PiYmLCBEZWJ1Z0luZm8mJik+JiYgY29tcGxldGlvbkhhbmRsZXIpCit2b2lkIFN0b3JlOjphdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlU2l0ZSYmIHNvdXJjZVNpdGUsIGNvbnN0IFdlYkNvcmU6OlByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYmIGRlc3RpbmF0
aW9uU2l0ZSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBsaWNhdGlvbkJ1
bmRsZUlkZW50aWZpZXIsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhJiYgYXR0cmlidXRpb25UcmlnZ2VyRGF0YSwgV2ViQ29yZTo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3QgaXNSdW5uaW5nVGVzdCwgQ29t
cGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRhPiYmLCBEZWJ1Z0luZm8m
Jik+JiYgY29tcGxldGlvbkhhbmRsZXIpCiB7CiAgICAgcG9zdFRhc2soW3RoaXMsIHByb3RlY3Rl
ZFRoaXMgPSBSZWYgeyAqdGhpcyB9LCBzb3VyY2VTaXRlID0gc291cmNlU2l0ZS5pc29sYXRlZENv
cHkoKSwgZGVzdGluYXRpb25TaXRlID0gZGVzdGluYXRpb25TaXRlLmlzb2xhdGVkQ29weSgpLCBh
cHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIgPSBhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIu
aXNvbGF0ZWRDb3B5KCksIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgPSBXVEZNb3ZlKGF0dHJpYnV0
aW9uVHJpZ2dlckRhdGEpLCBpc1J1bm5pbmdUZXN0LCBjb21wbGV0aW9uSGFuZGxlciA9IFdURk1v
dmUoY29tcGxldGlvbkhhbmRsZXIpXSAoKSBtdXRhYmxlIHsKICAgICAgICAgaWYgKCFtX2RhdGFi
YXNlKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaCBiL1NvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRTdG9yZS5oCmluZGV4IGE5ZGNmNWQ3NDJkNTZiOGJjMzJjNTI0YWJkYTk0YWVm
YTlmMzdkOWYuLjdhYzVjMWJmZmI3YjIzN2NhY2Y4ZmZmMDcxMTIzM2IwZGM0YjFiMmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRTdG9yZS5oCkBAIC01Myw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgdm9pZCBwcm9j
ZXNzRGlkUmVzdW1lKCk7CiAKICAgICB2b2lkIGluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYsIFdlYktpdDo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnRBdHRyaWJ1dGlvblR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7
Ci0gICAgdm9pZCBhdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlU2l0ZSYsIGNvbnN0IFdlYkNvcmU6OlBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSYsIGNvbnN0
IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1
cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYsIFdlYkNvcmU6OlByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0LCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0
ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
U2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5mbyYmKT4mJik7CisgICAgdm9pZCBhdHRy
aWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlU2l0ZSYmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmJiwgY29uc3QgQXBwbGljYXRpb25C
dW5kbGVJZGVudGlmaWVyJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEmJiwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Oklz
UnVubmluZ0xheW91dFRlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxT
ZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmKTsKIAogICAgIHZvaWQgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnRUb1N0cmluZ0ZvclRlc3RpbmcoQ29tcGxldGlvbkhhbmRsZXI8dm9pZChTdHJpbmcp
PiYmKSBjb25zdDsKICAgICB2b2lkIG1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFzRXhwaXJlZEZvclRlc3RpbmcoKTsKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxv
ZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCBkYTRiNWFhNmNjNDIxZDFiYWM0Nzg2NDY4MGVhNWQw
MjI2Y2Y4ZTg2Li45MTQzY2JjZmNjMjE2OTUwNGVmYjU0YzBjZDcwMGI0YzMzOTVlNjM5IDEwMDY0
NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTkgQEAKKzIwMjEtMTEtMTYgIEpvaG4gV2lsYW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisK
KyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0eSBmb3IgY2xpY2sgZGVzdGluYXRpb24gdG8gZmly
ZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQgY3Jvc3Mtc2l0ZSByZXF1ZXN0cyB0byB0aGUgY2xp
Y2sgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83OTQyNjYwNT4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGVzZSBjaGFuZ2VzIGFyZSBqdXN0IGEgY29y
cmVjdGlvbiBvZiBhIGZ1bmN0aW9uIG5hbWU6CisgICAgICAgIHNvdXJjZVVubGlua2FibGVUb2tl
bigpIHRvIHNvdXJjZVNlY3JldFRva2VuKCkKKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHA6CisgICAgICAgIChUZXN0V2Vi
S2l0QVBJOjpURVNUKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29j
b2EvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRDb2NvYS5tbToKKyAgICAgICAgKFRlc3RXZWJLaXRB
UEk6OlRFU1QpOgorCiAyMDIxLTExLTE1ICBNaWNoYWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9A
Z25vbWUub3JnPgogCiAgICAgICAgIE1ha2UgdmFsZ3JpbmQgd29yayBwcm9wZXJseSB3aXRob3V0
IGV4dHJhIGVudmlyb25tZW50IHZhcmlhYmxlcwpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcCBiL1Rvb2xzL1Rl
c3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKaW5k
ZXggMGNkZTIwZDdlY2Y1ODllYmUzYTliMDgwM2MxN2JmMjllZTFhMjEyOC4uNzE0YWZjYWI0YzVl
ZDdmNjg3MjA4Y2UyZTcyMzRhOTFhYzdlODljMyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3Bw
CkBAIC00Nyw5ICs0Nyw5IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFdlbGxLbm93
blVSTHMpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQobWluNkJpdFZhbHVlKSwgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZXhhbXBsZVVSTCB9LCAidGVzdC5idW5k
bGUuaWRlbnRpZmllciIsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyB9OwogICAgIGF0dHJpYnV0aW9uLmF0
dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25UcmlnZ2VyRGF0YShtaW42Qml0VmFsdWUsIFByaXZhdGVDbGlja01lYXN1cmVt
ZW50OjpQcmlvcml0eShtaW42Qml0VmFsdWUpKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIAotICAgIGF1dG8gYXR0cmlidXRpb25T
b3VyY2VVUkwgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTCgpOworICAg
IGF1dG8gYXR0cmlidXRpb25Tb3VyY2VVUkwgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9y
dENsaWNrU291cmNlVVJMKCk7CiAgICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uU291cmNlVVJMLnN0
cmluZygpLCAiaHR0cHM6Ly93ZWJraXQub3JnLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2stbWVh
c3VyZW1lbnQvcmVwb3J0LWF0dHJpYnV0aW9uLyIpOwotICAgIGF1dG8gYXR0cmlidXRpb25BdHRy
aWJ1dGVPblVSTCA9IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwo
KTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uQXR0cmlidXRlT25VUkwgPSBhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKTsKICAgICBBU1NFUlRfRVEoYXR0cmli
dXRpb25BdHRyaWJ1dGVPblVSTC5zdHJpbmcoKSwgImh0dHBzOi8vZXhhbXBsZS5jb20vLndlbGwt
a25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBvcnQtYXR0cmlidXRpb24vIik7CiB9
CiAKQEAgLTEzNyw4ICsxMzcsOCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZh
bGlkU291cmNlSG9zdCkKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB7
IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6U291cmNlSUQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNl
U2l0ZSB7IGVtcHR5VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRl
c3RpbmF0aW9uU2l0ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIiLCBX
YWxsVGltZTo6bm93KCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1
dGlvbkVwaGVtZXJhbDo6Tm8gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJs
aWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6Ok1h
eEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkpKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIAotICAgIEFTU0VSVF9UUlVF
KGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCkuaXNFbXB0eSgpKTsKLSAg
ICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEF0dHJpYnV0ZU9uVVJM
KCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJl
cG9ydENsaWNrU291cmNlVVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1
dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKS5pc0VtcHR5KCkpOwog
fQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkRGVzdGluYXRpb25Ib3N0
KQpAQCAtMTQ2LDggKzE0Niw4IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFs
aWREZXN0aW5hdGlvbkhvc3QpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRp
b24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZUlEOjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0
aW9uRGVzdGluYXRpb25TaXRlIHsgZW1wdHlVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIi
LCBXYWxsVGltZTo6bm93KCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRy
aWJ1dGlvbkVwaGVtZXJhbDo6Tm8gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRF
YXJsaWVzdFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJp
Z2dlckRhdGEoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6
Ok1heEVudHJvcHksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkpKSwgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIAotICAgIEFTU0VSVF9U
UlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCkuaXNFbXB0eSgpKTsK
LSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEF0dHJpYnV0ZU9u
VVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlv
blJlcG9ydENsaWNrU291cmNlVVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKS5pc0VtcHR5KCkp
OwogfQogCiBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhKQpAQCAtMTU1LDggKzE1NSw4IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEpCiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmli
dXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uRGVzdGluYXRpb25TaXRlIHsgZXhhbXBsZVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRp
ZmllciIsIFdhbGxUaW1lOjpub3coKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpObyB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFu
ZEdldEVhcmxpZXN0VGltZVRvU2VuZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YSgoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGE6Ok1heEVudHJvcHkgKyAxKSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5
KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eTo6TWF4RW50cm9weSkpLCBXZWJDb3Jl
OjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNSdW5uaW5nTGF5b3V0VGVzdDo6Tm8pOwogCi0g
ICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKS5p
c0VtcHR5KCkpOwotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0
QXR0cmlidXRlT25VUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9u
LmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VS
VF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVSTCgp
LmlzRW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRQ
cmlvcml0eSkKQEAgLTE2NCwxNiArMTY0LDE2IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQsIEludmFsaWRQcmlvcml0eSkKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1
dGlvbiB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlSUQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
U291cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmli
dXRpb25EZXN0aW5hdGlvblNpdGUgeyBleGFtcGxlVVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlm
aWVyIiwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5vIH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5k
R2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
blRyaWdnZXJEYXRhKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJE
YXRhOjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5OjpNYXhFbnRyb3B5ICsgMSkpLCBXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNSdW5uaW5nTGF5b3V0VGVzdDo6Tm8pOwogCi0gICAg
QVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKS5pc0Vt
cHR5KCkpOwotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0QXR0
cmlidXRlT25VUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0
dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9U
UlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVSTCgpLmlz
RW1wdHkoKSk7CiB9CiAKIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIEludmFsaWRNaXNz
aW5nQ29udmVyc2lvbikKIHsKICAgICBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBhdHRyaWJ1dGlv
biB7IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRChQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlSUQ6Ok1heEVudHJvcHkpLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6U291
cmNlU2l0ZSB7IHdlYktpdFVSTCB9LCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25EZXN0aW5hdGlvblNpdGUgeyBleGFtcGxlVVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlmaWVy
IiwgV2FsbFRpbWU6Om5vdygpLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0
cmlidXRpb25FcGhlbWVyYWw6Ok5vIH07CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5h
dHRyaWJ1dGlvblJlcG9ydFNvdXJjZVVSTCgpLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUX1RSVUUo
YXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRBdHRyaWJ1dGVPblVSTCgpLmlzRW1wdHkoKSk7
CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRDbGlja1NvdXJj
ZVVSTCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRp
b25SZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMKCkuaXNFbXB0eSgpKTsKICAgICBBU1NFUlRfRkFM
U0UoYXR0cmlidXRpb24udGltZXNUb1NlbmQoKS5zb3VyY2VFYXJsaWVzdFRpbWVUb1NlbmQgJiYg
YXR0cmlidXRpb24udGltZXNUb1NlbmQoKS5kZXN0aW5hdGlvbkVhcmxpZXN0VGltZVRvU2VuZCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9U
ZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KaW5kZXgg
M2FkM2Y1ZTlkMGYwZDc2MThiMzhmZGVlNWIxODQ1MmMxZDVjZTYzYi4uMDdiNTYyZTFhZjYyOTQ2
NjQwNjhiYzlmYjNjMDI2N2FkNWM1NDBjMCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQ
SS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Q29jb2EubW0KKysr
IGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50Q29jb2EubW0KQEAgLTk0LDcgKzk0LDcgQEAgVEVTVChQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudCwgVmFsaWRCbGluZGVkU2VjcmV0KQogICAgIC8vIENvbnRpbnVlIHRoZSB0ZXN0Lgog
ICAgIGVycm9yTWVzc2FnZSA9IHBjbS5jYWxjdWxhdGVBbmRVcGRhdGVTb3VyY2VTZWNyZXRUb2tl
bihiYXNlNjRVUkxFbmNvZGVUb1N0cmluZyhbYmxpbmRlZFNpZ25hdHVyZSBieXRlc10sIFtibGlu
ZGVkU2lnbmF0dXJlIGxlbmd0aF0pKTsKICAgICBFWFBFQ1RfRkFMU0UoZXJyb3JNZXNzYWdlKTsK
LSAgICBhdXRvJiBwZXJzaXN0ZW50VG9rZW4gPSBwY20uc291cmNlVW5saW5rYWJsZVRva2VuKCk7
CisgICAgYXV0byYgcGVyc2lzdGVudFRva2VuID0gcGNtLnNvdXJjZVNlY3JldFRva2VuKCk7CiAg
ICAgRVhQRUNUX1RSVUUocGVyc2lzdGVudFRva2VuKTsKICAgICBFWFBFQ1RfRkFMU0UocGVyc2lz
dGVudFRva2VuLT50b2tlbkJhc2U2NFVSTC5pc0VtcHR5KCkpOwogICAgIEVYUEVDVF9GQUxTRShw
ZXJzaXN0ZW50VG9rZW4tPmtleUlEQmFzZTY0VVJMLmlzRW1wdHkoKSk7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZDQ1ZDAy
MDIwNGRkMjg5ZDZjOWIzNjMxZWRkODcxZjVjZWJmMTdiYi4uNGJmNjhjZGI5OTFiYmU1OTE0YzAx
YmM1MjUxZWZkZDkwMjg3ZDYyMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIxLTExLTE2ICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogQWRkIGNh
cGFiaWxpdHkgZm9yIGNsaWNrIGRlc3RpbmF0aW9uIHRvIGZpcmUgdHJpZ2dlcmluZyBldmVudCB3
aXRob3V0IGNyb3NzLXNpdGUgcmVxdWVzdHMgdG8gdGhlIGNsaWNrIHNvdXJjZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTczCisgICAgICAgIDxy
ZGFyOi8vNzk0MjY2MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiBodHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9y
ZWRpcmVjdFRvQ29udmVyc2lvbldpdGhBdHRyaWJ1dGlvblNvdXJjZS5weTogQWRkZWQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC90cmlnZ2VyaW5nLWV2ZW50
LXdpdGgtYXR0cmlidXRpb24tc291cmNlLXRocm91Z2gtZmV0Y2gta2VlcGFsaXZlLWV4cGVjdGVk
LnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dC90cmlnZ2VyaW5nLWV2ZW50LXdpdGgtYXR0cmlidXRpb24tc291cmNlLXRocm91Z2gtZmV0Y2gt
a2VlcGFsaXZlLmh0bWw6IEFkZGVkLgorCiAyMDIxLTExLTE1ICBUaW0gTmd1eWVuICA8bnRpbUBh
cHBsZS5jb20+CiAKICAgICAgICAgUmVtb3ZlIHJlZHVuZGFudCBbIFBhc3MgXSBmcm9tIFRlc3RF
eHBlY3RhdGlvbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uV2l0aEF0dHJpYnV0
aW9uU291cmNlLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25XaXRoQXR0cmlidXRpb25Tb3VyY2Uu
cHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZThhOWUxYmYxMjkyZDJmNGYwN2ZkZjRhYzNkODRlYjAxZmQwYTdjMgot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvcmVzb3VyY2VzL3JlZGlyZWN0VG9Db252ZXJzaW9uV2l0aEF0dHJpYnV0aW9uU291
cmNlLnB5CkBAIC0wLDAgKzEsMjkgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0
IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdGltZQorZnJvbSB1cmxsaWIucGFyc2UgaW1wb3J0IHBh
cnNlX3FzCisKK3F1ZXJ5ID0gcGFyc2VfcXMob3MuZW52aXJvbi5nZXQoJ1FVRVJZX1NUUklORycs
ICcnKSwga2VlcF9ibGFua192YWx1ZXM9VHJ1ZSkKK2RlbGF5X21zID0gcXVlcnkuZ2V0KCdkZWxh
eV9tcycsIFtOb25lXSlbMF0KK2NvbnZlcnNpb25fZGF0YSA9IHF1ZXJ5LmdldCgnY29udmVyc2lv
bkRhdGEnLCBbTm9uZV0pWzBdCitwcmlvcml0eSA9IHF1ZXJ5LmdldCgncHJpb3JpdHknLCBbTm9u
ZV0pWzBdCisKK2lmIGRlbGF5X21zIGlzIG5vdCBOb25lOgorICAgIHRpbWUuc2xlZXAoaW50KGRl
bGF5X21zKSAqIDAuMDAxKQorCitzeXMuc3Rkb3V0LndyaXRlKAorICAgICdzdGF0dXM6IDMwMlxy
XG4nCisgICAgJ0NhY2hlLUNvbnRyb2w6IG5vLWNhY2hlLCBuby1zdG9yZSwgbXVzdC1yZXZhbGlk
YXRlXHJcbicKKyAgICAnQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luOiAqXHJcbicKKyAgICAn
QWNjZXNzLUNvbnRyb2wtQWxsb3ctTWV0aG9kczogR0VUXHJcbicKKyAgICAnQ29udGVudC1UeXBl
OiB0ZXh0L2h0bWxcclxuJworKQorCitpZiBjb252ZXJzaW9uX2RhdGEgaXMgbm90IE5vbmUgYW5k
IHByaW9yaXR5IGlzIG5vdCBOb25lOgorICAgIHN5cy5zdGRvdXQud3JpdGUoJ0xvY2F0aW9uOiAv
LndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC90cmlnZ2VyLWF0dHJpYnV0aW9u
L3t9L3t9P2F0dHJpYnV0aW9uU291cmNlPWh0dHBzOi8vMTI3LjAuMC4xXHJcbicuZm9ybWF0KGNv
bnZlcnNpb25fZGF0YSwgcHJpb3JpdHkpKQorZWxpZiBjb252ZXJzaW9uX2RhdGEgaXMgbm90IE5v
bmU6CisgICAgc3lzLnN0ZG91dC53cml0ZSgnTG9jYXRpb246IC8ud2VsbC1rbm93bi9wcml2YXRl
LWNsaWNrLW1lYXN1cmVtZW50L3RyaWdnZXItYXR0cmlidXRpb24ve30/YXR0cmlidXRpb25Tb3Vy
Y2U9aHR0cHM6Ly8xMjcuMC4wLjFcclxuJy5mb3JtYXQoY29udmVyc2lvbl9kYXRhKSkKKworc3lz
LnN0ZG91dC53cml0ZSgnXHJcbicpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3RyaWdnZXJpbmctZXZlbnQtd2l0aC1hdHRyaWJ1dGlv
bi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVwYWxpdmUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC90cmlnZ2VyaW5nLWV2ZW50LXdp
dGgtYXR0cmlidXRpb24tc291cmNlLXRocm91Z2gtZmV0Y2gta2VlcGFsaXZlLWV4cGVjdGVkLnR4
dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi41YTlmZDNhYmM4MWE5ZmNlODE1NjRmMjI3YWU3Mjk3YzkyMzQwYjMxCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC90cmlnZ2VyaW5nLWV2ZW50LXdpdGgtYXR0cmlidXRpb24tc291cmNlLXRocm91Z2gt
ZmV0Y2gta2VlcGFsaXZlLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE1IEBACitDT05TT0xFIE1F
U1NBR0U6IFtQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNj
ZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Ig
d2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgMTUuCitDT05TT0xFIE1FU1NB
R0U6IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLiBTdGF0dXMgY29kZTogNDA0CitDT05TT0xFIE1FU1NBR0U6
IEZldGNoIEFQSSBjYW5ub3QgbG9hZCBodHRwczovL2xvY2FsaG9zdDo4NDQzLy53ZWxsLWtub3du
L3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvdHJpZ2dlci1hdHRyaWJ1dGlvbi9EdW1teT9hdHRy
aWJ1dGlvblNvdXJjZT1odHRwczovLzEyNy4wLjAuMSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hl
Y2tzLgorVGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0dHJp
YnV0aW9uIHdpdGggc2FtZS1zaXRlIHRyaWdnZXJpbmcgZXZlbnQgcmVxdWVzdC4KKworCitBdHRy
aWJ1dGVkIFByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRzOgorV2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQgMQorU291cmNlIHNpdGU6IDEyNy4wLjAuMQorQXR0cmlidXRlIG9uIHNpdGU6
IGxvY2FsaG9zdAorU291cmNlIElEOiAzCitBdHRyaWJ1dGlvbiB0cmlnZ2VyIGRhdGE6IDEyCitB
dHRyaWJ1dGlvbiBwcmlvcml0eTogMAorQXR0cmlidXRpb24gZWFybGllc3QgdGltZSB0byBzZW5k
OiBXaXRoaW4gMjQtNDggaG91cnMKK0FwcGxpY2F0aW9uIGJ1bmRsZSBpZGVudGlmaWVyOiB0ZXN0
QnVuZGxlSUQKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJpYnV0aW9uLXNvdXJjZS10aHJv
dWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC90cmlnZ2VyaW5nLWV2ZW50LXdpdGgtYXR0cmlidXRpb24tc291cmNl
LXRocm91Z2gtZmV0Y2gta2VlcGFsaXZlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTE0NDg3NTc1YzdhMDFk
YjM2NTMyNzNjMWU2ODg0ZGM0ZTg4YmQ1OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRo
LWF0dHJpYnV0aW9uLXNvdXJjZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sCkBAIC0wLDAg
KzEsNTUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFy
c2V0PSJVVEYtOCI+CisgICAgPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy91aS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InJ1blRlc3QoKSI+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+VGVzdHMgdHJpZ2dlcmluZyBvZiBwcml2YXRlIGNsaWNrIG1lYXN1cmVtZW50IGF0
dHJpYnV0aW9uIHdpdGggc2FtZS1zaXRlIHRyaWdnZXJpbmcgZXZlbnQgcmVxdWVzdC48L2Rpdj4K
KzxhIGlkPSJ0YXJnZXRMaW5rIiBocmVmPSJodHRwOi8vbG9jYWxob3N0OjgwMDAvcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJpYnV0aW9uLXNvdXJjZS10
aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sP3N0ZXBUd28iIGF0dHJpYnV0aW9uc291cmNlaWQ9
MyBhdHRyaWJ1dGlvbmRlc3RpbmF0aW9uPSJodHRwOi8vbG9jYWxob3N0OjgwMDAiPkxpbms8L2E+
PGJyPgorPGRpdiBpZD0ib3V0cHV0Ij48L2Rpdj4KKzxzY3JpcHQ+CisgICAgcHJlcGFyZVRlc3Qo
KTsKKworICAgIGZ1bmN0aW9uIGFjdGl2YXRlRWxlbWVudChlbGVtZW50SUQpIHsKKyAgICAgICAg
dmFyIGVsZW1lbnQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChlbGVtZW50SUQpOworICAgICAg
ICB2YXIgY2VudGVyWCA9IGVsZW1lbnQub2Zmc2V0TGVmdCArIGVsZW1lbnQub2Zmc2V0V2lkdGgg
LyAyOworICAgICAgICB2YXIgY2VudGVyWSA9IGVsZW1lbnQub2Zmc2V0VG9wICsgZWxlbWVudC5v
ZmZzZXRIZWlnaHQgLyAyOworICAgICAgICBVSUhlbHBlci5hY3RpdmF0ZUF0KGNlbnRlclgsIGNl
bnRlclkpLnRoZW4oCisgICAgICAgICAgICBmdW5jdGlvbiAoKSB7CisgICAgICAgICAgICB9LAor
ICAgICAgICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJvdXRwdXQiKS5pbm5lclRleHQgPSAiRkFJTCBQcm9taXNlIHJlamVjdGVkLiI7
CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiB0cmlnZ2VyRmV0Y2goY29udmVyc2lvbkRh
dGEpIHsKKyAgICAgICAgcmV0dXJuIGZldGNoKCJodHRwczovL2xvY2FsaG9zdDo4NDQzL3ByaXZh
dGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbldpdGhBdHRy
aWJ1dGlvblNvdXJjZS5weT9jb252ZXJzaW9uRGF0YT0iKyBjb252ZXJzaW9uRGF0YSArICImZGVs
YXlfbXM9MTAwIiwgeyBrZWVwYWxpdmU6IHRydWUgfSk7CisgICAgfQorCisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2ggPT09ICI/c3Rl
cFR3byIpIHsKKyAgICAgICAgICAgIC8vIFN0YXJ0IHByaXZhdGUgY2xpY2sgYXR0cmlidXRpb24g
ZmV0Y2ggYnV0IG5hdmlnYXRlIGF3YXkgYmVmb3JlIHRoZSBmZXRjaCByZWRpcmVjdGlvbiBoYXBw
ZW5zLgorICAgICAgICAgICAgdHJpZ2dlckZldGNoKDEyKTsKKyAgICAgICAgICAgIGRvY3VtZW50
LmxvY2F0aW9uLmhyZWYgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1
cmVtZW50L3RyaWdnZXJpbmctZXZlbnQtd2l0aC1hdHRyaWJ1dGlvbi1zb3VyY2UtdGhyb3VnaC1m
ZXRjaC1rZWVwYWxpdmUuaHRtbD9zdGVwVGhyZWUiOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisgICAgICAgIGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUaHJl
ZSIpIHsKKyAgICAgICAgICAgIGRvY3VtZW50LmJvZHkucmVtb3ZlQ2hpbGQoZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRhcmdldExpbmsiKSk7CisgICAgICAgICAgICAvLyBEbyBhbiBpbnZhbGlk
IHByaXZhdGUgY2xpY2sgYXR0cmlidXRpb24gZmV0Y2ggdG8gZW5zdXJlIHRoZSBwcmV2aW91cyBj
b3JyZWN0IGNsaWNrIGF0dHJpYnV0aW9uIGZldGNoIHdpbGwgYmUgZmluaXNoZWQuCisgICAgICAg
ICAgICB0cmlnZ2VyRmV0Y2goIkR1bW15IikuY2F0Y2goKCkgPT4geworICAgICAgICAgICAgICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5k
dW1wUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoKTsKKyAgICAgICAgICAgICAgICB0ZWFyRG93bkFu
ZEZpbmlzaCgpOworICAgICAgICAgICAgfSk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAg
IH0KKyAgICAgICAgdGVzdFJ1bm5lci5zZXRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRs
ZUlERm9yVGVzdGluZygidGVzdEJ1bmRsZUlEIik7CisgICAgICAgIGFjdGl2YXRlRWxlbWVudCgi
dGFyZ2V0TGluayIpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>444460</attachid>
            <date>2021-11-16 17:55:22 -0800</date>
            <delta_ts>2021-11-17 17:08:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-233173-20211116175521.patch</filename>
            <type>text/plain</type>
            <size>52527</size>
            <attacher name="John Wilander">wilander</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg1ODUwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCmluZGV4IDZkNDhhMjBkMDQyMDczZTkwNzc4NDk1
ZWNlNDQzYWJkYTdkYzQwOWUuLmIzOTI5ZDk1MmZjNTcyNjE2OWI5ZThkNDQ5NzYzMGZlZjhjMTlj
N2EgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XVEYvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XVEYvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjEtMTEtMTYgIEpvaG4gV2lsYW5kZXIgIDx3aWxh
bmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0eSBmb3IgY2xpY2sg
ZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQgY3Jvc3Mtc2l0ZSBy
ZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83OTQyNjYwNT4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHd0Zi9VUkwu
Y3BwOgorICAgICAgICAoV1RGOjpxdWVyeVBhcmFtZXRlcnMpOgorICAgICAgICAgICAgTmV3IGNv
bnZlbmllbmNlIGdldHRlci4KKyAgICAgICAgKiB3dGYvVVJMLmg6CisKIDIwMjEtMTEtMTUgIFNh
bSBXZWluaWcgIDx3ZWluaWdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBhbm90aGVyIDxtb2Rl
bD4gYmFja2VuZCBiYWNrZWQgYnkgU2NlbmVLaXQgdG8gcHJvdmUgb3V0IE1vZGVsUGxheWVyIGlu
ZnJhc3RydWN0dXJlIGEgYml0IG1vcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMDJmOTMxZGNhMjAzYzA1MTk0
MGIzYmQ5YzYzMDJiNGU3YzgxMzY2Li44N2M3MzhkMDI5YzFkM2I3NDYyMjY5MDZhZTY3YmNlOWQw
YjYzYWQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNl
L1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMTEtMTYgIEpvaG4gV2ls
YW5kZXIgIDx3aWxhbmRlckBhcHBsZS5jb20+CisKKyAgICAgICAgUENNOiBBZGQgY2FwYWJpbGl0
eSBmb3IgY2xpY2sgZGVzdGluYXRpb24gdG8gZmlyZSB0cmlnZ2VyaW5nIGV2ZW50IHdpdGhvdXQg
Y3Jvc3Mtc2l0ZSByZXF1ZXN0cyB0byB0aGUgY2xpY2sgc291cmNlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzMxNzMKKyAgICAgICAgPHJkYXI6Ly83
OTQyNjYwNT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBUaGlzIHBhdGNoIGVuYWJsZXMgY2xpY2sgZGVzdGluYXRpb24gc2l0ZXMgYSBub24tSmF2YVNj
cmlwdCB3YXkgdG8gZmlyZSB0cmlnZ2VyaW5nCisgICAgICAgIGV2ZW50cyB3aXRob3V0IGEgcmVx
dWlyZW1lbnQgdG8gbWFrZSBjcm9zcy1zaXRlIHJlcXVlc3RzIHRvIHNvdXJjZSBzaXRlcy4gVGhp
cyBpcworICAgICAgICByZWZlcnJlZCB0byBhcyBhICJzYW1lLXNpdGUgcGl4ZWwgQVBJIiBhbmQg
aGFzIGJlZW4gZGlzY3Vzc2VkIGluIFczQyBQcml2YWN5IENHOgorICAgICAgICBodHRwczovL2dp
dGh1Yi5jb20vcHJpdmFjeWNnL3ByaXZhdGUtY2xpY2stbWVhc3VyZW1lbnQvaXNzdWVzLzcxCisK
KyAgICAgICAgVGhlIHJlYXNvbiB3aHkgc29tZSBtZXJjaGFudHMgd2FudCBzdWNoIGFuICJBUEki
IGlzIHJlbHVjdGFuY2UgdG8gZGVwbG95IG5ldworICAgICAgICBKYXZhU2NyaXB0IG9uIHRoZWly
IHNpdGVzLiBJbiBzb21lIGluZHVzdHJpZXMgaXQncyBldmVuIGEgY29tcGxpYW5jZSBpc3N1ZS4g
TGVnYWN5CisgICAgICAgICJwaXhlbHMiIGFyZSBob3dldmVyIGFjY2VwdGVkIGFuZCBzbyBhIHNh
bWUtc2l0ZSAicGl4ZWwiIGNhbiB3b3JrIGZvciB0aGVtLgorCisgICAgICAgIFRlc3Q6IGh0dHAv
dGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJp
YnV0aW9uLXNvdXJjZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sCisKKyAgICAgICAgKiBo
dG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxBbmNob3JF
bGVtZW50OjpoYW5kbGVDbGljayk6CisgICAgICAgICAgICBUaGlzIGNoYW5nZSBpcyBiZWNhdXNl
IG9mIGNsYXJpZmljYXRpb24gaW4gbmFtaW5nOgorICAgICAgICAgICAgLSBhdHRyaWJ1dGlvblJl
cG9ydFNvdXJjZVVSTCB0byBhdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMCisgICAgICAg
ICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdFF1ZXJ5KToK
KyAgICAgICAgICAgIE5ldyBmdW5jdGlvbiB0aGF0IHBhcnNlcyBvdXQgcXVlcnkgc3RyaW5nIHBh
cmFtZXRlcnMuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6cGFy
c2VBdHRyaWJ1dGlvblJlcXVlc3QpOgorICAgICAgICAgICAgTm93IGNhbGxzIHRoZSBuZXcgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OnBhcnNlQXR0cmlidXRpb25SZXF1ZXN0UXVlcnkoKQorICAg
ICAgICAgICAgd2hpY2ggaGFuZGxlcyBkYXRhIGNvbWluZyBpbiBpbiBxdWVyeSBwYXJhbWV0ZXJz
LCBpbiB0aGlzIGNhc2UKKyAgICAgICAgICAgIHRoZSBuZXcgcGFyYW1ldGVyICJhdHRyaWJ1dGlv
blNvdXJjZS4iCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0
cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVSTCBjb25zdCk6CisgICAgICAgICAgICBOZXcgbmFt
ZS4KKyAgICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjphdHRyaWJ1dGlv
blJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwgY29uc3QpOgorICAgICAgICAgICAgTmV3IG5hbWUu
CisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25S
ZXBvcnRKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5vdyB1c2VzIHRoZSBjb25zdGFudCBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24uCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6dG9rZW5TaWduYXR1cmVKU09OIGNvbnN0KToKKyAgICAgICAgICAgIE5v
dyB1c2VzIHRoZSBjb25zdGFudCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24uCisgICAg
ICAgIChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRT
b3VyY2VVUkwgY29uc3QpOiBEZWxldGVkLgorICAgICAgICAgICAgUmVuYW1lZCBhdHRyaWJ1dGlv
blJlcG9ydENsaWNrU291cmNlVVJMLgorICAgICAgICAoV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwgY29uc3QpOiBEZWxldGVk
LgorICAgICAgICAgICAgUmVuYW1lZCBhdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25V
UkwuCisgICAgICAgICogbG9hZGVyL1ByaXZhdGVDbGlja01lYXN1cmVtZW50Lmg6CisgICAgICAg
IChXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlU2VjcmV0VG9rZW4gY29u
c3QpOgorICAgICAgICAgICAgTmV3IG5hbWUuCisgICAgICAgIChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6ZW5jb2RlIGNvbnN0KToKKyAg
ICAgICAgKFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdn
ZXJEYXRhOjpkZWNvZGUpOgorICAgICAgICAgICAgRW5jb2RpbmcgYW5kIGRlY29kaW5nIG9mIHRo
ZSBuZXcgZmllbGQgc291cmNlUmVnaXN0cmFibGVEb21haW4uCisgICAgICAgIChXZWJDb3JlOjpQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6c291cmNlVW5saW5rYWJsZVRva2VuIGNvbnN0KTogRGVs
ZXRlZC4KKyAgICAgICAgICAgIFJlbmFtZWQgc291cmNlU2VjcmV0VG9rZW4uCisgICAgICAgICAg
ICBOb3RlIHRoYXQgaXQgd2FzIGFsd2F5cyB0aGUgc2VjcmV0IHRva2VuIHVzZWQsIGp1c3QgYmFk
IHJlbmFtaW5nIGVhcmxpZXIuCisKIDIwMjEtMTEtMTUgIFNhbSBXZWluaWcgIDx3ZWluaWdAYXBw
bGUuY29tPgogCiAgICAgICAgIEFkZCBhbm90aGVyIDxtb2RlbD4gYmFja2VuZCBiYWNrZWQgYnkg
U2NlbmVLaXQgdG8gcHJvdmUgb3V0IE1vZGVsUGxheWVyIGluZnJhc3RydWN0dXJlIGEgYml0IG1v
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9D
aGFuZ2VMb2cKaW5kZXggNzAzODQxY2YyMzdmZmEzZGM3YmRiOWYzMWNiNDg1YzY4NTNmYTgwNC4u
Y2QwNTViYjY0NjAxNmVhNGZjNWMwNWIwMWNiYWNjMTM0Y2I5NWEyMSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEs
MyArMSw0NCBAQAorMjAyMS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFuZGVyQGFwcGxlLmNv
bT4KKworICAgICAgICBQQ006IEFkZCBjYXBhYmlsaXR5IGZvciBjbGljayBkZXN0aW5hdGlvbiB0
byBmaXJlIHRyaWdnZXJpbmcgZXZlbnQgd2l0aG91dCBjcm9zcy1zaXRlIHJlcXVlc3RzIHRvIHRo
ZSBjbGljayBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMzE3MworICAgICAgICA8cmRhcjovLzc5NDI2NjA1PgorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgcGF0Y2ggZW5hYmxlcyBjbGlj
ayBkZXN0aW5hdGlvbiBzaXRlcyBhIG5vbi1KYXZhU2NyaXB0IHdheSB0byBmaXJlIHRyaWdnZXJp
bmcKKyAgICAgICAgZXZlbnRzIHdpdGhvdXQgYSByZXF1aXJlbWVudCB0byBtYWtlIGNyb3NzLXNp
dGUgcmVxdWVzdHMgdG8gc291cmNlIHNpdGVzLiBUaGlzIGlzCisgICAgICAgIHJlZmVycmVkIHRv
IGFzIGEgInNhbWUtc2l0ZSBwaXhlbCBBUEkiIGFuZCBoYXMgYmVlbiBkaXNjdXNzZWQgaW4gVzND
IFByaXZhY3kgQ0c6CisgICAgICAgIGh0dHBzOi8vZ2l0aHViLmNvbS9wcml2YWN5Y2cvcHJpdmF0
ZS1jbGljay1tZWFzdXJlbWVudC9pc3N1ZXMvNzEKKworICAgICAgICBUaGUgcmVhc29uIHdoeSBz
b21lIG1lcmNoYW50cyB3YW50IHN1Y2ggYW4gIkFQSSIgaXMgcmVsdWN0YW5jZSB0byBkZXBsb3kg
bmV3CisgICAgICAgIEphdmFTY3JpcHQgb24gdGhlaXIgc2l0ZXMuIEluIHNvbWUgaW5kdXN0cmll
cyBpdCdzIGV2ZW4gYSBjb21wbGlhbmNlIGlzc3VlLiBMZWdhY3kKKyAgICAgICAgInBpeGVscyIg
YXJlIGhvd2V2ZXIgYWNjZXB0ZWQgYW5kIHNvIGEgc2FtZS1zaXRlICJwaXhlbCIgY2FuIHdvcmsg
Zm9yIHRoZW0uCisKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcDoKKyAgICAgICAgKFdlYktp
dDo6UENNOjpEYXRhYmFzZTo6aW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQpOgorICAgICAg
ICAgICAgVGhlc2UgY2hhbmdlcyBhcmUganVzdCBhIGNvcnJlY3Rpb24gb2YgYSBmdW5jdGlvbiBu
YW1lOgorICAgICAgICAgICAgLSBzb3VyY2VVbmxpbmthYmxlVG9rZW4oKSB0byBzb3VyY2VTZWNy
ZXRUb2tlbigpCisgICAgICAgICAgICBOb3RlIHRoYXQgaXQgd2FzIGFsd2F5cyB0aGUgc2VjcmV0
IHRva2VuIHVzZWQsIGp1c3QgYmFkIHJlbmFtaW5nIGVhcmxpZXIuCisgICAgICAgICogTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5h
Z2VyOjpoYW5kbGVBdHRyaWJ1dGlvbik6CisgICAgICAgICAgICBOb3cgY2hlY2tzIGlmIHRoZSBp
bmNvbWluZyBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25Ucmln
Z2VyRGF0YQorICAgICAgICAgICAgY2FycmllcyBhIHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluLiBJ
ZiBzbywgaXQgYWNjZXB0cyB0aGF0IGRvbWFpbiBhcyB0aGUgc291cmNlIHNpdGUKKyAgICAgICAg
ICAgIGZvciBhdHRyaWJ1dGlvbiBpZiB0aGUgdHJpZ2dlcmluZyBldmVudCB3YXMgc2FtZS1zaXRl
IGFzIHRoZSBmaXJzdC1wYXJ0eS4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRNYW5hZ2VyOjphdHRyaWJ1dGUpOgorICAgICAgICAoV2ViS2l0OjpQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdCk6CisgICAgICAgICAgICBU
aGVzZSBjaGFuZ2VzIGFyZSBqdXN0IGEgY29ycmVjdGlvbiBvZiBhIGZ1bmN0aW9uIG5hbWU6Cisg
ICAgICAgICAgICAtIHNvdXJjZVVubGlua2FibGVUb2tlbigpIHRvIHNvdXJjZVNlY3JldFRva2Vu
KCkKKyAgICAgICAgICAgIE5vdGUgdGhhdCBpdCB3YXMgYWx3YXlzIHRoZSBzZWNyZXQgdG9rZW4g
dXNlZCwganVzdCBiYWQgcmVuYW1pbmcgZWFybGllci4KKyAgICAgICAgKFdlYktpdDo6UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKToKKyAg
ICAgICAgICAgIFRoZXNlIGNoYW5nZXMgYXJlIGJlY2F1c2Ugb2YgY2xhcmlmaWNhdGlvbiBpbiBu
YW1pbmc6CisgICAgICAgICAgICAtIGF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMIHRvIGF0dHJp
YnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwKKyAgICAgICAgICAgIC0gYXR0cmlidXRpb25SZXBv
cnRBdHRyaWJ1dGVPblVSTCB0byBhdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwK
KyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaDoKKyAgICAgICAgKiBOZXR3b3JrUHJvY2Vzcy9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6UENNOjpTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQpOgorICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1By
aXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaDoKKwogMjAyMS0xMS0xNSAgQ29tbWl0IFF1ZXVl
ICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0
aW5nIHIyODU4MTIuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwIGIvU291cmNl
L1dURi93dGYvVVJMLmNwcAppbmRleCAyNmYwZTkzZWRmZTE0ZWEzNTFmNjE0OGFmYTE2OTE5YmEw
YjYzMmZiLi40NDhkZGVlMjE2MGVmMThjYTVlMDY2MTM5MGU1OThkNTNiYzU0ZDJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV1RGL3d0Zi9VUkwuY3BwCisrKyBiL1NvdXJjZS9XVEYvd3RmL1VSTC5jcHAK
QEAgLTExOTAsNiArMTE5MCwxMSBAQCBib29sIFVSTDo6aG9zdElzSVBBZGRyZXNzKFN0cmluZ1Zp
ZXcgaG9zdCkKIAogI2VuZGlmCiAKK1ZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+
PiBxdWVyeVBhcmFtZXRlcnMoY29uc3QgVVJMJiB1cmwpCit7CisgICAgcmV0dXJuIFVSTFBhcnNl
cjo6cGFyc2VVUkxFbmNvZGVkRm9ybSh1cmwucXVlcnkoKSk7Cit9CisKIFZlY3RvcjxLZXlWYWx1
ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiBkaWZmZXJpbmdRdWVyeVBhcmFtZXRlcnMoY29uc3QgVVJM
JiBmaXJzdFVSTCwgY29uc3QgVVJMJiBzZWNvbmRVUkwpCiB7CiAgICAgYXV0byBmaXJzdFF1ZXJ5
UGFyYW1ldGVycyA9IFVSTFBhcnNlcjo6cGFyc2VVUkxFbmNvZGVkRm9ybShmaXJzdFVSTC5xdWVy
eSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XVEYvd3RmL1VSTC5oIGIvU291cmNlL1dURi93dGYv
VVJMLmgKaW5kZXggY2VhNGI3YTc1NDJiZDYxZGY3YmQ1ODU3NzAwODMwYzgxOTFmOWFiMS4uYjRi
YWFkMThlM2U3MWE0N2M0ZWZkN2VjZTUxM2MxMTNjOTBiOTg5ZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dURi93dGYvVVJMLmgKKysrIGIvU291cmNlL1dURi93dGYvVVJMLmgKQEAgLTI1MCw2ICsyNTAs
NyBAQCBib29sIG9wZXJhdG9yIT0oY29uc3QgU3RyaW5nJiwgY29uc3QgVVJMJik7CiBXVEZfRVhQ
T1JUX1BSSVZBVEUgYm9vbCBlcXVhbElnbm9yaW5nRnJhZ21lbnRJZGVudGlmaWVyKGNvbnN0IFVS
TCYsIGNvbnN0IFVSTCYpOwogV1RGX0VYUE9SVF9QUklWQVRFIGJvb2wgcHJvdG9jb2xIb3N0QW5k
UG9ydEFyZUVxdWFsKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwogV1RGX0VYUE9SVF9QUklWQVRF
IFZlY3RvcjxLZXlWYWx1ZVBhaXI8U3RyaW5nLCBTdHJpbmc+PiBkaWZmZXJpbmdRdWVyeVBhcmFt
ZXRlcnMoY29uc3QgVVJMJiwgY29uc3QgVVJMJik7CitXVEZfRVhQT1JUX1BSSVZBVEUgVmVjdG9y
PEtleVZhbHVlUGFpcjxTdHJpbmcsIFN0cmluZz4+IHF1ZXJ5UGFyYW1ldGVycyhjb25zdCBVUkwm
KTsKIFdURl9FWFBPUlRfUFJJVkFURSBib29sIGlzRXF1YWxJZ25vcmluZ1F1ZXJ5QW5kRnJhZ21l
bnRzKGNvbnN0IFVSTCYsIGNvbnN0IFVSTCYpOwogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgcmVt
b3ZlUXVlcnlQYXJhbWV0ZXJzKFVSTCYsIGNvbnN0IEhhc2hTZXQ8U3RyaW5nPiYpOwogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxBbmNob3JFbGVtZW50LmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3BwCmluZGV4IGE2YzAxOWQ1NmZiM2Yw
NjU1NzFiYjliYjY1ZjA5MGNhYWUwOWE2NDYuLjk2OWIzYWRlNjFlOGM3NzcyZDg5YTA2YjEyZDcw
MjczMDljMDlkMTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVs
ZW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEFuY2hvckVsZW1lbnQuY3Bw
CkBAIC01MzQsNyArNTM0LDcgQEAgdm9pZCBIVE1MQW5jaG9yRWxlbWVudDo6aGFuZGxlQ2xpY2so
RXZlbnQmIGV2ZW50KQogICAgIGF1dG8gcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgPSBwYXJzZVBy
aXZhdGVDbGlja01lYXN1cmVtZW50KCk7CiAgICAgLy8gQSBtYXRjaGluZyB0cmlnZ2VyaW5nIGV2
ZW50IG5lZWRzIHRvIGhhcHBlbiBiZWZvcmUgYW4gYXR0cmlidXRpb24gcmVwb3J0IGNhbiBiZSBz
ZW50LgogICAgIC8vIFRodXMsIFVSTHMgc2hvdWxkIGJlIGVtcHR5IGZvciBub3cuCi0gICAgQVNT
RVJUKCFwcml2YXRlQ2xpY2tNZWFzdXJlbWVudCB8fCAocHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQt
PmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCkuaXNOdWxsKCkgJiYgcHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwoKS5pc051bGwoKSkpOwor
ICAgIEFTU0VSVCghcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgfHwgKHByaXZhdGVDbGlja01lYXN1
cmVtZW50LT5hdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMKCkuaXNOdWxsKCkgJiYgcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQtPmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVS
TCgpLmlzTnVsbCgpKSk7CiAgICAgCiAgICAgZnJhbWUtPmxvYWRlcigpLmNoYW5nZUxvY2F0aW9u
KGNvbXBsZXRlZFVSTCwgZWZmZWN0aXZlVGFyZ2V0LCAmZXZlbnQsIHJlZmVycmVyUG9saWN5LCBk
b2N1bWVudCgpLnNob3VsZE9wZW5FeHRlcm5hbFVSTHNQb2xpY3lUb1Byb3BhZ2F0ZSgpLCBuZXdG
cmFtZU9wZW5lclBvbGljeSwgZG93bmxvYWRBdHRyaWJ1dGUsIHN5c3RlbVByZXZpZXdJbmZvLCBX
VEZNb3ZlKHByaXZhdGVDbGlja01lYXN1cmVtZW50KSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDY5NGYzYjgxYjI5NTE3
ZDNhYmMwOWNiMmQyOGI0NDE5MWY2ZDRiYjMuLmI5MmFhMDI0M2NkZDFiYTZjNjMxNWQwNzA1N2U0
ZWFjZmI4OGVlYmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL1ByaXZhdGVDbGlj
a01lYXN1cmVtZW50LmNwcApAQCAtNDQsNiArNDQsNyBAQCBzdGF0aWMgY29uc3QgY2hhciBwcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFRva2VuUHVibGljS2V5UGF0aFtdID0gIi8ud2VsbC1rbm93bi9w
cgogc3RhdGljIGNvbnN0IGNoYXIgcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRSZXBvcnRBdHRyaWJ1
dGlvblBhdGhbXSA9ICIvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC9yZXBv
cnQtYXR0cmlidXRpb24vIjsKIGNvbnN0IHNpemVfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudEF0
dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUgPSAyOwogY29uc3Qgc2l6ZV90IHBy
aXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUgPSAyOworY29uc3Qg
dWludDhfdCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24gPSAyOwogCiBjb25zdCBTZWNv
bmRzIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjptYXhBZ2UoKQogewpAQCAtMTAzLDE1ICsxMDQs
NDggQEAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6Omlz
b2xhdGVkQ29weSgpIGNvbnN0CiAgICAgcmV0dXJuIGNvcHk7CiB9CiAKK0V4cGVjdGVkPFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdFF1ZXJ5KGNvbnN0IFVS
TCYgcmVkaXJlY3RVUkwpCit7CisgICAgaWYgKCFyZWRpcmVjdFVSTC5oYXNRdWVyeSgpKQorICAg
ICAgICByZXR1cm4gQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7IH07CisKKyAgICBhdXRvIHBhcmFt
ZXRlcnMgPSBxdWVyeVBhcmFtZXRlcnMocmVkaXJlY3RVUkwpOworICAgIGlmICghcGFyYW1ldGVy
cy5zaXplKCkpCisgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiW1ByaXZhdGUgQ2xpY2sg
TWVhc3VyZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwg
aGFkIGEgcXVlcnkgc3RyaW5nIGJ1dCBpdCBkaWRuJ3QgY29udGFpbiBzdXBwb3J0ZWQgcGFyYW1l
dGVycy4iX3MpOworCisgICAgaWYgKHBhcmFtZXRlcnMuc2l6ZSgpID4gMSkKKyAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lv
biB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHF1ZXJ5IHN0cmluZyBjb250YWlu
ZWQgdW5zdXBwb3J0ZWQgcGFyYW1ldGVycy4iX3MpOworCisgICAgYXV0byBwYXJhbWV0ZXIgPSBw
YXJhbWV0ZXJzLmZpcnN0KCk7CisgICAgaWYgKHBhcmFtZXRlci5rZXkgPT0gImF0dHJpYnV0aW9u
U291cmNlIikgeworICAgICAgICBpZiAocGFyYW1ldGVyLnZhbHVlLmlzRW1wdHkoKSkKKyAgICAg
ICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiW1ByaXZhdGUgQ2xpY2sgTWVhc3VyZW1lbnRd
IENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwncyBhdHRyaWJ1dGlv
blNvdXJjZSBxdWVyeSBwYXJhbWV0ZXIgaGFkIG5vIHZhbHVlLiJfcyk7CisKKyAgICAgICAgYXV0
byBhdHRyaWJ1dGlvblNvdXJjZVVSTCA9IFVSTChVUkwoKSwgcGFyYW1ldGVyLnZhbHVlKTsKKyAg
ICAgICAgaWYgKCFhdHRyaWJ1dGlvblNvdXJjZVVSTC5pc1ZhbGlkKCkgfHwgKGF0dHJpYnV0aW9u
U291cmNlVVJMLmhhc1BhdGgoKSAmJiBhdHRyaWJ1dGlvblNvdXJjZVVSTC5wYXRoKCkubGVuZ3Ro
KCkgPiAxKSB8fCBhdHRyaWJ1dGlvblNvdXJjZVVSTC5oYXNDcmVkZW50aWFscygpIHx8IGF0dHJp
YnV0aW9uU291cmNlVVJMLmhhc1F1ZXJ5KCkgfHwgYXR0cmlidXRpb25Tb3VyY2VVUkwuaGFzRnJh
Z21lbnRJZGVudGlmaWVyKCkpCisgICAgICAgICAgICByZXR1cm4gbWFrZVVuZXhwZWN0ZWQoIltQ
cml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9uIHdhcyBub3QgYWNjZXB0ZWQgYmVj
YXVzZSB0aGUgVVJMJ3MgYXR0cmlidXRpb25Tb3VyY2UgcXVlcnkgcGFyYW1ldGVyIHdhcyBub3Qg
YSB2YWxpZCBVUkwgb3Igd2FzIGEgVVJMIHdpdGggYSBwYXRoLCBjcmVkZW50aWFscywgcXVlcnkg
c3RyaW5nLCBvciBmcmFnbWVudC4iX3MpOworCisgICAgICAgIEF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEgYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKKyAgICAgICAgYXR0cmlidXRpb25UcmlnZ2VyRGF0
YS5zb3VyY2VSZWdpc3RyYWJsZURvbWFpbiA9IFJlZ2lzdHJhYmxlRG9tYWluIHsgYXR0cmlidXRp
b25Tb3VyY2VVUkwgfTsKKyAgICAgICAgcmV0dXJuIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGE7Cisg
ICAgfQorCisgICAgcmV0dXJuIG1ha2VVbmV4cGVjdGVkKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJl
bWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCBkaWQgbm90
IGNvbnRhaW4gYW4gYXR0cmlidXRpb25Tb3VyY2UgcXVlcnkgcGFyYW1ldGVyLiJfcyk7Cit9CisK
IEV4cGVjdGVkPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRh
LCBTdHJpbmc+IFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpwYXJzZUF0dHJpYnV0aW9uUmVxdWVz
dChjb25zdCBVUkwmIHJlZGlyZWN0VVJMKQogewogICAgIGF1dG8gcGF0aCA9IFN0cmluZ1ZpZXco
cmVkaXJlY3RVUkwuc3RyaW5nKCkpLnN1YnN0cmluZyhyZWRpcmVjdFVSTC5wYXRoU3RhcnQoKSwg
cmVkaXJlY3RVUkwucGF0aEVuZCgpIC0gcmVkaXJlY3RVUkwucGF0aFN0YXJ0KCkpOwogICAgIGlm
IChwYXRoLmlzRW1wdHkoKSB8fCAhcGF0aC5zdGFydHNXaXRoKHByaXZhdGVDbGlja01lYXN1cmVt
ZW50VHJpZ2dlckF0dHJpYnV0aW9uUGF0aCkpCiAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3Rl
ZChudWxsU3RyaW5nKCkpOwogCi0gICAgaWYgKCFyZWRpcmVjdFVSTC5wcm90b2NvbElzKCJodHRw
cyIpIHx8IHJlZGlyZWN0VVJMLmhhc0NyZWRlbnRpYWxzKCkgfHwgcmVkaXJlY3RVUkwuaGFzUXVl
cnkoKSB8fCByZWRpcmVjdFVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKLSAgICAgICAgcmV0
dXJuIG1ha2VVbmV4cGVjdGVkKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lv
biB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQ
UyBvciB0aGUgVVJMIGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwg
cXVlcnkgc3RyaW5nLCBhbmQgZnJhZ21lbnQuIl9zKTsKKyAgICBpZiAoIXJlZGlyZWN0VVJMLnBy
b3RvY29sSXMoImh0dHBzIikgfHwgcmVkaXJlY3RVUkwuaGFzQ3JlZGVudGlhbHMoKSB8fCByZWRp
cmVjdFVSTC5oYXNGcmFnbWVudElkZW50aWZpZXIoKSkKKyAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIFVSTCdzIHByb3RvY29sIGlzIG5vdCBIVFRQUyBvciB0aGUgVVJM
IGNvbnRhaW5zIG9uZSBvciBtb3JlIG9mIHVzZXJuYW1lLCBwYXNzd29yZCwgYW5kIGZyYWdtZW50
LiJfcyk7CiAKKyAgICBhdXRvIHJlc3VsdCA9IHBhcnNlQXR0cmlidXRpb25SZXF1ZXN0UXVlcnko
cmVkaXJlY3RVUkwpOworICAgIGlmICghcmVzdWx0ICYmICFyZXN1bHQuZXJyb3IoKS5pc0VtcHR5
KCkpCisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgYXV0byBhdHRyaWJ1dGlvblRyaWdnZXJE
YXRhID0gcmVzdWx0LnZhbHVlKCk7CiAKICAgICBhdXRvIHByZWZpeExlbmd0aCA9IHNpemVvZihw
cml2YXRlQ2xpY2tNZWFzdXJlbWVudFRyaWdnZXJBdHRyaWJ1dGlvblBhdGgpIC0gMTsKICAgICBp
ZiAocGF0aC5sZW5ndGgoKSA9PSBwcmVmaXhMZW5ndGggKyBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uVHJpZ2dlckRhdGFQYXRoU2VnbWVudFNpemUpIHsKQEAgLTExOSw3ICsxNTMs
OSBAQCBFeHBlY3RlZDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2Vy
RGF0YSwgU3RyaW5nPiBQcml2YXRlQ2xpY2tNZQogICAgICAgICBpZiAoIWF0dHJpYnV0aW9uVHJp
Z2dlckRhdGFVSW50NjQgfHwgKmF0dHJpYnV0aW9uVHJpZ2dlckRhdGFVSW50NjQgPiBBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5KQogICAgICAgICAgICAgcmV0dXJuIG1ha2VVbmV4
cGVjdGVkKG1ha2VTdHJpbmcoIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBDb252ZXJzaW9u
IHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSB0aGUgY29udmVyc2lvbiBkYXRhIGNvdWxkIG5vdCBi
ZSBwYXJzZWQgb3Igd2FzIGhpZ2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBB
dHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5LCAiLiJfcykpOwogCi0gICAgICAgIHJl
dHVybiBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhIHsgc3RhdGljX2Nhc3Q8dWludDhfdD4oKmF0dHJp
YnV0aW9uVHJpZ2dlckRhdGFVSW50NjQpLCBQcmlvcml0eSB7IDAgfSB9OworICAgICAgICBhdHRy
aWJ1dGlvblRyaWdnZXJEYXRhLmRhdGEgPSBzdGF0aWNfY2FzdDx1aW50OF90PigqYXR0cmlidXRp
b25UcmlnZ2VyRGF0YVVJbnQ2NCk7CisgICAgICAgIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEucHJp
b3JpdHkgPSAwOworICAgICAgICByZXR1cm4gYXR0cmlidXRpb25UcmlnZ2VyRGF0YTsKICAgICB9
CiAgICAgCiAgICAgaWYgKHBhdGgubGVuZ3RoKCkgPT0gcHJlZml4TGVuZ3RoICsgcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlvblRyaWdnZXJEYXRhUGF0aFNlZ21lbnRTaXplICsgMSAr
IHByaXZhdGVDbGlja01lYXN1cmVtZW50UHJpb3JpdHlQYXRoU2VnbWVudFNpemUpIHsKQEAgLTEz
MSw3ICsxNjcsOSBAQCBFeHBlY3RlZDxQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25UcmlnZ2VyRGF0YSwgU3RyaW5nPiBQcml2YXRlQ2xpY2tNZQogICAgICAgICBpZiAoIWF0dHJp
YnV0aW9uUHJpb3JpdHlVSW50NjQgfHwgKmF0dHJpYnV0aW9uUHJpb3JpdHlVSW50NjQgPiBQcmlv
cml0eTo6TWF4RW50cm9weSkKICAgICAgICAgICAgIHJldHVybiBtYWtlVW5leHBlY3RlZChtYWtl
U3RyaW5nKCJbUHJpdmF0ZSBDbGljayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFj
Y2VwdGVkIGJlY2F1c2UgdGhlIHByaW9yaXR5IGNvdWxkIG5vdCBiZSBwYXJzZWQgb3Igd2FzIGhp
Z2hlciB0aGFuIHRoZSBhbGxvd2VkIG1heGltdW0gb2YgIl9zLCBQcmlvcml0eTo6TWF4RW50cm9w
eSwgIi4iX3MpKTsKIAotICAgICAgICByZXR1cm4gQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7IHN0
YXRpY19jYXN0PHVpbnQ4X3Q+KCphdHRyaWJ1dGlvblRyaWdnZXJEYXRhVUludDY0KSwgUHJpb3Jp
dHkgeyBzdGF0aWNfY2FzdDx1aW50OF90PigqYXR0cmlidXRpb25Qcmlvcml0eVVJbnQ2NCkgfSB9
OworICAgICAgICBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhLmRhdGEgPSBzdGF0aWNfY2FzdDx1aW50
OF90PigqYXR0cmlidXRpb25UcmlnZ2VyRGF0YVVJbnQ2NCk7CisgICAgICAgIGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEucHJpb3JpdHkgPSBzdGF0aWNfY2FzdDx1aW50OF90PigqYXR0cmlidXRpb25Q
cmlvcml0eVVJbnQ2NCk7CisgICAgICAgIHJldHVybiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwog
ICAgIH0KIAogICAgIHJldHVybiBtYWtlVW5leHBlY3RlZCgiW1ByaXZhdGUgQ2xpY2sgTWVhc3Vy
ZW1lbnRdIENvbnZlcnNpb24gd2FzIG5vdCBhY2NlcHRlZCBiZWNhdXNlIHRoZSBVUkwgcGF0aCBj
b250YWluZWQgdW5yZWNvZ25pemVkIHBhcnRzLiJfcyk7CkBAIC0xODksNyArMjI3LDcgQEAgc3Rh
dGljIFVSTCBhdHRyaWJ1dGlvblJlcG9ydFVSTChjb25zdCBSZWdpc3RyYWJsZURvbWFpbiYgZG9t
YWluKQogICAgIHJldHVybiBtYWtlVmFsaWRVUkwoZG9tYWluLCBwcml2YXRlQ2xpY2tNZWFzdXJl
bWVudFJlcG9ydEF0dHJpYnV0aW9uUGF0aCk7CiB9CiAKLVVSTCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6YXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMKCkgY29uc3QKIHsK
ICAgICBpZiAoIWlzVmFsaWQoKSkKICAgICAgICAgcmV0dXJuIFVSTCgpOwpAQCAtMTk3LDcgKzIz
NSw3IEBAIFVSTCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6YXR0cmlidXRpb25SZXBvcnRTb3Vy
Y2VVUkwoKSBjb25zdAogICAgIHJldHVybiBhdHRyaWJ1dGlvblJlcG9ydFVSTChtX3NvdXJjZVNp
dGUucmVnaXN0cmFibGVEb21haW4pOwogfQogCi1VUkwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6
OmF0dHJpYnV0aW9uUmVwb3J0QXR0cmlidXRlT25VUkwoKSBjb25zdAorVVJMIFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjphdHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKSBjb25z
dAogewogICAgIGlmICghaXNWYWxpZCgpKQogICAgICAgICByZXR1cm4gVVJMKCk7CkBAIC0yMTYs
NyArMjU0LDcgQEAgUmVmPEpTT046Ok9iamVjdD4gUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OmF0
dHJpYnV0aW9uUmVwb3J0SlNPTigpIGNvbnN0CiAgICAgcmVwb3J0RGV0YWlscy0+c2V0SW50ZWdl
cigic291cmNlX2lkIl9zLCBtX3NvdXJjZUlELmlkKTsKICAgICByZXBvcnREZXRhaWxzLT5zZXRT
dHJpbmcoImF0dHJpYnV0ZWRfb25fc2l0ZSJfcywgbV9kZXN0aW5hdGlvblNpdGUucmVnaXN0cmFi
bGVEb21haW4uc3RyaW5nKCkpOwogICAgIHJlcG9ydERldGFpbHMtPnNldEludGVnZXIoInRyaWdn
ZXJfZGF0YSJfcywgbV9hdHRyaWJ1dGlvblRyaWdnZXJEYXRhLT5kYXRhKTsKLSAgICByZXBvcnRE
ZXRhaWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKKyAgICByZXBvcnREZXRhaWxzLT5z
ZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVudFZlcnNpb24pOwog
CiAgICAgLy8gVGhpcyB0b2tlbiBoYXMgYmVlbiBrZXB0IHNlY3JldCB0aGlzIGZhciBhbmQgY2Fu
bm90IGJlIGxpbmtlZCB0byB0aGUgdW5saW5rYWJsZSB0b2tlbi4KICAgICBpZiAobV9zb3VyY2VT
ZWNyZXRUb2tlbikgewpAQCAtMjc0LDcgKzMxMiw3IEBAIFJlZjxKU09OOjpPYmplY3Q+IFByaXZh
dGVDbGlja01lYXN1cmVtZW50Ojp0b2tlblNpZ25hdHVyZUpTT04oKSBjb25zdAogICAgIHJlcG9y
dERldGFpbHMtPnNldFN0cmluZygic291cmNlX25vbmNlIl9zLCBtX2VwaGVtZXJhbFNvdXJjZU5v
bmNlLT5ub25jZSk7CiAgICAgLy8gVGhpcyB0b2tlbiBjYW4gbm90IGJlIGxpbmtlZCB0byB0aGUg
c2VjcmV0IHRva2VuLgogICAgIHJlcG9ydERldGFpbHMtPnNldFN0cmluZygic291cmNlX3VubGlu
a2FibGVfdG9rZW4iX3MsIG1fc291cmNlVW5saW5rYWJsZVRva2VuLnZhbHVlQmFzZTY0VVJMKTsK
LSAgICByZXBvcnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCAyKTsKKyAgICByZXBv
cnREZXRhaWxzLT5zZXRJbnRlZ2VyKCJ2ZXJzaW9uIl9zLCBwcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dFZlcnNpb24pOwogICAgIHJldHVybiByZXBvcnREZXRhaWxzOwogfQogCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuaCBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC5oCmluZGV4IDc1OWNmN2M2YWU3
N2JiZmYxNDllYTkzYTEwZmUyYzZiMjAyZmFhMmUuLmZjYzNlOWJlNjE3MDA2ODRmMWM0Y2Q5ZTUz
NDcwZTAxMGI3OWJjMTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRl
Q2xpY2tNZWFzdXJlbWVudC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Qcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudC5oCkBAIC0xNzIsNyArMTcyLDggQEAgcHVibGljOgogICAgICAgICBzdGF0
aWMgY29uc3RleHByIHVpbnQ4X3QgTWF4RW50cm9weSA9IDE1OwogCiAgICAgICAgIGVudW0gY2xh
c3MgV2FzU2VudCA6IGJvb2wgeyBObywgWWVzIH07Ci0gICAgICAgIAorCisgICAgICAgIEF0dHJp
YnV0aW9uVHJpZ2dlckRhdGEoKSA9IGRlZmF1bHQ7CiAgICAgICAgIEF0dHJpYnV0aW9uVHJpZ2dl
ckRhdGEodWludDhfdCBkYXRhLCBQcmlvcml0eSBwcmlvcml0eSwgV2FzU2VudCB3YXNTZW50ID0g
V2FzU2VudDo6Tm8pCiAgICAgICAgICAgICA6IGRhdGEgeyBkYXRhIH0KICAgICAgICAgICAgICwg
cHJpb3JpdHkgeyBwcmlvcml0eS52YWx1ZSB9CkBAIC0xODgsNiArMTg5LDcgQEAgcHVibGljOgog
ICAgICAgICB1aW50OF90IGRhdGEgeyAwIH07CiAgICAgICAgIFByaW9yaXR5VmFsdWUgcHJpb3Jp
dHk7CiAgICAgICAgIFdhc1NlbnQgd2FzU2VudCA9IFdhc1NlbnQ6Ok5vOworICAgICAgICBzdGQ6
Om9wdGlvbmFsPFJlZ2lzdHJhYmxlRG9tYWluPiBzb3VyY2VSZWdpc3RyYWJsZURvbWFpbjsKIAog
ICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVyJikgY29u
c3Q7CiAgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9wdGlvbmFs
PEF0dHJpYnV0aW9uVHJpZ2dlckRhdGE+IGRlY29kZShEZWNvZGVyJik7CkBAIC0zMTcsOCArMzE5
LDggQEAgcHVibGljOgogICAgIFdFQkNPUkVfRVhQT1JUIHN0YXRpYyBFeHBlY3RlZDxBdHRyaWJ1
dGlvblRyaWdnZXJEYXRhLCBTdHJpbmc+IHBhcnNlQXR0cmlidXRpb25SZXF1ZXN0KGNvbnN0IFVS
TCYgcmVkaXJlY3RVUkwpOwogICAgIFdFQkNPUkVfRVhQT1JUIEF0dHJpYnV0aW9uU2Vjb25kc1Vu
dGlsU2VuZERhdGEgYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKEF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEmJiwgSXNSdW5uaW5nTGF5b3V0VGVzdCk7CiAgICAgV0VCQ09SRV9FWFBPUlQg
Ym9vbCBoYXNIaWdoZXJQcmlvcml0eVRoYW4oY29uc3QgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQm
KSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXR0cmlidXRpb25SZXBvcnRTb3VyY2VV
UkwoKSBjb25zdDsKLSAgICBXRUJDT1JFX0VYUE9SVCBVUkwgYXR0cmlidXRpb25SZXBvcnRBdHRy
aWJ1dGVPblVSTCgpIGNvbnN0OworICAgIFdFQkNPUkVfRVhQT1JUIFVSTCBhdHRyaWJ1dGlvblJl
cG9ydENsaWNrU291cmNlVVJMKCkgY29uc3Q7CisgICAgV0VCQ09SRV9FWFBPUlQgVVJMIGF0dHJp
YnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVSTCgpIGNvbnN0OwogICAgIFdFQkNPUkVfRVhQ
T1JUIFJlZjxKU09OOjpPYmplY3Q+IGF0dHJpYnV0aW9uUmVwb3J0SlNPTigpIGNvbnN0OwogICAg
IGNvbnN0IFNvdXJjZVNpdGUmIHNvdXJjZVNpdGUoKSBjb25zdCB7IHJldHVybiBtX3NvdXJjZVNp
dGU7IH07CiAgICAgY29uc3QgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmIGRlc3RpbmF0aW9u
U2l0ZSgpIGNvbnN0IHsgcmV0dXJuIG1fZGVzdGluYXRpb25TaXRlOyB9OwpAQCAtMzcxLDcgKzM3
Myw3IEBAIHB1YmxpYzoKICNlbmRpZgogCiAgICAgdm9pZCBzZXRTb3VyY2VVbmxpbmthYmxlVG9r
ZW5WYWx1ZShjb25zdCBTdHJpbmcmIHZhbHVlKSB7IG1fc291cmNlVW5saW5rYWJsZVRva2VuLnZh
bHVlQmFzZTY0VVJMID0gdmFsdWU7IH0KLSAgICBjb25zdCBzdGQ6Om9wdGlvbmFsPFNvdXJjZVNl
Y3JldFRva2VuPiYgc291cmNlVW5saW5rYWJsZVRva2VuKCkgY29uc3QgeyByZXR1cm4gbV9zb3Vy
Y2VTZWNyZXRUb2tlbjsgfQorICAgIGNvbnN0IHN0ZDo6b3B0aW9uYWw8U291cmNlU2VjcmV0VG9r
ZW4+JiBzb3VyY2VTZWNyZXRUb2tlbigpIGNvbnN0IHsgcmV0dXJuIG1fc291cmNlU2VjcmV0VG9r
ZW47IH0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNvdXJjZVNlY3JldFRva2VuKFNvdXJj
ZVNlY3JldFRva2VuJiYpOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNv
ZGUoRW5jb2RlciYpIGNvbnN0OwpAQCAtMzgwLDYgKzM4Miw3IEBAIHB1YmxpYzoKICAgICBXRUJD
T1JFX0VYUE9SVCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCBpc29sYXRlZENvcHkoKSBjb25zdDsK
IAogcHJpdmF0ZToKKyAgICBzdGF0aWMgRXhwZWN0ZWQ8QXR0cmlidXRpb25UcmlnZ2VyRGF0YSwg
U3RyaW5nPiBwYXJzZUF0dHJpYnV0aW9uUmVxdWVzdFF1ZXJ5KGNvbnN0IFVSTCYpOwogICAgIGJv
b2wgaXNWYWxpZCgpIGNvbnN0OwogCiAgICAgU291cmNlSUQgbV9zb3VyY2VJRDsKQEAgLTUwNSw3
ICs1MDgsNyBAQCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpFcGhlbWVy
YWxTb3VyY2VOb25jZT4gUHJpdmF0ZUNsaWNrTWVhc3VyZQogdGVtcGxhdGU8Y2xhc3MgRW5jb2Rl
cj4KIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGE6
OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgZGF0YSA8
PCBwcmlvcml0eSA8PCB3YXNTZW50OworICAgIGVuY29kZXIgPDwgZGF0YSA8PCBwcmlvcml0eSA8
PCB3YXNTZW50IDw8IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOwogfQogCiB0ZW1wbGF0ZTxjbGFz
cyBEZWNvZGVyPgpAQCAtNTI2LDcgKzUyOSwxNCBAQCBzdGQ6Om9wdGlvbmFsPFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhPiBQcml2YXRlQ2xpY2tNZWFzdQog
ICAgIGlmICghd2FzU2VudCkKICAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKICAgICAKLSAg
ICByZXR1cm4gQXR0cmlidXRpb25UcmlnZ2VyRGF0YSB7IFdURk1vdmUoKmRhdGEpLCBQcmlvcml0
eSB7ICpwcmlvcml0eSB9LCAqd2FzU2VudCB9OworICAgIHN0ZDo6b3B0aW9uYWw8c3RkOjpvcHRp
b25hbDxSZWdpc3RyYWJsZURvbWFpbj4+IHNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluOworICAgIGRl
Y29kZXIgPj4gc291cmNlUmVnaXN0cmFibGVEb21haW47CisgICAgaWYgKCFzb3VyY2VSZWdpc3Ry
YWJsZURvbWFpbikKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICAKKyAgICBBdHRy
aWJ1dGlvblRyaWdnZXJEYXRhIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEgeyBXVEZNb3ZlKCpkYXRh
KSwgUHJpb3JpdHkgeyAqcHJpb3JpdHkgfSwgKndhc1NlbnQgfTsKKyAgICBhdHRyaWJ1dGlvblRy
aWdnZXJEYXRhLnNvdXJjZVJlZ2lzdHJhYmxlRG9tYWluID0gV1RGTW92ZSgqc291cmNlUmVnaXN0
cmFibGVEb21haW4pOworICAgIHJldHVybiBhdHRyaWJ1dGlvblRyaWdnZXJEYXRhOwogfQogCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQ
cm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0
YWJhc2UuY3BwIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudERhdGFiYXNlLmNwcAppbmRleCA0YTMxMWJj
ZjhlY2ViMThiZGFmYzJiMGJiYjQwNjBkZDkxNTRlODU3Li5iY2E3ZjUxOTM0YzhmNjMyMjMwYjI3
MTQxMTliYjJlNjczY2ZhNWY5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50RGF0YWJh
c2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnREYXRhYmFzZS5jcHAKQEAgLTE3NSw3ICsx
NzUsNyBAQCB2b2lkIERhdGFiYXNlOjppbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmCiAgICAgaWYgKCFzb3VyY2VJRCB8fCAhYXR0
cmlidXRpb25EZXN0aW5hdGlvbklEKQogICAgICAgICByZXR1cm47CiAKLSAgICBhdXRvJiBzb3Vy
Y2VVbmxpbmthYmxlVG9rZW4gPSBhdHRyaWJ1dGlvbi5zb3VyY2VVbmxpbmthYmxlVG9rZW4oKTsK
KyAgICBhdXRvJiBzb3VyY2VTZWNyZXRUb2tlbiA9IGF0dHJpYnV0aW9uLnNvdXJjZVNlY3JldFRv
a2VuKCk7CiAgICAgaWYgKGF0dHJpYnV0aW9uVHlwZSA9PSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEF0dHJpYnV0aW9uVHlwZTo6QXR0cmlidXRlZCkgewogICAgICAgICBhdXRvIGF0dHJpYnV0aW9u
VHJpZ2dlckRhdGEgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkgPyBhdHRy
aWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkudmFsdWUoKS5kYXRhIDogLTE7CiAgICAg
ICAgIGF1dG8gcHJpb3JpdHkgPSBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkg
PyBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblRyaWdnZXJEYXRhKCkudmFsdWUoKS5wcmlvcml0eSA6
IC0xOwpAQCAtMTk0LDkgKzE5NCw5IEBAIHZvaWQgRGF0YWJhc2U6Omluc2VydFByaXZhdGVDbGlj
a01lYXN1cmVtZW50KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICAgICAgICAg
ICAgIHx8IHN0YXRlbWVudC0+YmluZEludCg1LCBwcmlvcml0eSkgIT0gU1FMSVRFX09LCiAgICAg
ICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmREb3VibGUoNiwgYXR0cmlidXRpb24udGltZU9mQWRD
bGljaygpLnNlY29uZHNTaW5jZUVwb2NoKCkudmFsdWUoKSkgIT0gU1FMSVRFX09LCiAgICAgICAg
ICAgICB8fCBzdGF0ZW1lbnQtPmJpbmREb3VibGUoNywgc291cmNlRWFybGllc3RUaW1lVG9TZW5k
KSAhPSBTUUxJVEVfT0sKLSAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoOCwgc291
cmNlVW5saW5rYWJsZVRva2VuID8gc291cmNlVW5saW5rYWJsZVRva2VuLT50b2tlbkJhc2U2NFVS
TCA6IGVtcHR5U3RyaW5nKCkpICE9IFNRTElURV9PSwotICAgICAgICAgICAgfHwgc3RhdGVtZW50
LT5iaW5kVGV4dCg5LCBzb3VyY2VVbmxpbmthYmxlVG9rZW4gPyBzb3VyY2VVbmxpbmthYmxlVG9r
ZW4tPnNpZ25hdHVyZUJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkpICE9IFNRTElURV9PSwotICAg
ICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCgxMCwgc291cmNlVW5saW5rYWJsZVRva2Vu
ID8gc291cmNlVW5saW5rYWJsZVRva2VuLT5rZXlJREJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkp
ICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCg4LCBzb3Vy
Y2VTZWNyZXRUb2tlbiA/IHNvdXJjZVNlY3JldFRva2VuLT50b2tlbkJhc2U2NFVSTCA6IGVtcHR5
U3RyaW5nKCkpICE9IFNRTElURV9PSworICAgICAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4
dCg5LCBzb3VyY2VTZWNyZXRUb2tlbiA/IHNvdXJjZVNlY3JldFRva2VuLT5zaWduYXR1cmVCYXNl
NjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sKKyAgICAgICAgICAgIHx8IHN0YXRl
bWVudC0+YmluZFRleHQoMTAsIHNvdXJjZVNlY3JldFRva2VuID8gc291cmNlU2VjcmV0VG9rZW4t
PmtleUlEQmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgICAg
ICB8fCBzdGF0ZW1lbnQtPmJpbmREb3VibGUoMTEsIGRlc3RpbmF0aW9uRWFybGllc3RUaW1lVG9T
ZW5kKSAhPSBTUUxJVEVfT0sKICAgICAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoMTIs
IGF0dHJpYnV0aW9uLnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSkgIT0gU1FMSVRFX09LCiAg
ICAgICAgICAgICB8fCBzdGF0ZW1lbnQtPnN0ZXAoKSAhPSBTUUxJVEVfRE9ORSkgewpAQCAtMjE0
LDkgKzIxNCw5IEBAIHZvaWQgRGF0YWJhc2U6Omluc2VydFByaXZhdGVDbGlja01lYXN1cmVtZW50
KFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50JiYKICAgICAgICAgfHwgc3RhdGVtZW50
LT5iaW5kSW50KDIsICphdHRyaWJ1dGlvbkRlc3RpbmF0aW9uSUQpICE9IFNRTElURV9PSwogICAg
ICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRJbnQoMywgYXR0cmlidXRpb24uc291cmNlSUQoKS5pZCkg
IT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0YXRlbWVudC0+YmluZERvdWJsZSg0LCBhdHRyaWJ1
dGlvbi50aW1lT2ZBZENsaWNrKCkuc2Vjb25kc1NpbmNlRXBvY2goKS52YWx1ZSgpKSAhPSBTUUxJ
VEVfT0sKLSAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCg1LCBzb3VyY2VVbmxpbmthYmxl
VG9rZW4gPyBzb3VyY2VVbmxpbmthYmxlVG9rZW4tPnRva2VuQmFzZTY0VVJMIDogZW1wdHlTdHJp
bmcoKSkgIT0gU1FMSVRFX09LCi0gICAgICAgIHx8IHN0YXRlbWVudC0+YmluZFRleHQoNiwgc291
cmNlVW5saW5rYWJsZVRva2VuID8gc291cmNlVW5saW5rYWJsZVRva2VuLT5zaWduYXR1cmVCYXNl
NjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sKLSAgICAgICAgfHwgc3RhdGVtZW50
LT5iaW5kVGV4dCg3LCBzb3VyY2VVbmxpbmthYmxlVG9rZW4gPyBzb3VyY2VVbmxpbmthYmxlVG9r
ZW4tPmtleUlEQmFzZTY0VVJMIDogZW1wdHlTdHJpbmcoKSkgIT0gU1FMSVRFX09LCisgICAgICAg
IHx8IHN0YXRlbWVudC0+YmluZFRleHQoNSwgc291cmNlU2VjcmV0VG9rZW4gPyBzb3VyY2VTZWNy
ZXRUb2tlbi0+dG9rZW5CYXNlNjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJVEVfT0sKKyAg
ICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCg2LCBzb3VyY2VTZWNyZXRUb2tlbiA/IHNvdXJj
ZVNlY3JldFRva2VuLT5zaWduYXR1cmVCYXNlNjRVUkwgOiBlbXB0eVN0cmluZygpKSAhPSBTUUxJ
VEVfT0sKKyAgICAgICAgfHwgc3RhdGVtZW50LT5iaW5kVGV4dCg3LCBzb3VyY2VTZWNyZXRUb2tl
biA/IHNvdXJjZVNlY3JldFRva2VuLT5rZXlJREJhc2U2NFVSTCA6IGVtcHR5U3RyaW5nKCkpICE9
IFNRTElURV9PSwogICAgICAgICB8fCBzdGF0ZW1lbnQtPmJpbmRUZXh0KDgsIGF0dHJpYnV0aW9u
LnNvdXJjZUFwcGxpY2F0aW9uQnVuZGxlSUQoKSkgIT0gU1FMSVRFX09LCiAgICAgICAgIHx8IHN0
YXRlbWVudC0+c3RlcCgpICE9IFNRTElURV9ET05FKSB7CiAgICAgICAgIFJFTEVBU0VfTE9HX0VS
Uk9SKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCAiJXAgLSBEYXRhYmFzZTo6aW5zZXJ0UHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQgaW5zZXJ0VW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRRdWVyeSwgZXJyb3IgbWVzc2FnZTogJSIgUFJJVkFURV9MT0dfU1RSSU5HLCB0aGlzLCBtX2Rh
dGFiYXNlLmxhc3RFcnJvck1zZygpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0d29y
a1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRN
YW5hZ2VyLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyLmNwcAppbmRleCA2OTUxOTc0
M2NjZmZmZmFkMzE0YzAxNWRkN2UwM2M3YmQ2ZjJiM2I0Li5kZmRlN2M4MzQxNGJmOWMyZTFkODkx
NGYxZjZhZjk2NDMxM2EzNjNlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9j
ZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdl
ci5jcHAKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuY3BwCkBAIC0yNDgsMTQgKzI0
OCwyMiBAQCB2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlcjo6aGFuZGxlQXR0cmli
dXRpb24oQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmCiAgICAgICAgIHJldHVybjsKICAgICB9CiAK
KyAgICBSZWdpc3RyYWJsZURvbWFpbiBzb3VyY2VEb21haW47CiAgICAgaWYgKHJlZGlyZWN0RG9t
YWluLm1hdGNoZXMoZmlyc3RQYXJ0eVVSTCkpIHsKLSAgICAgICAgbV9jbGllbnQtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIltQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50XSBUcmlnZ2VyaW5nIGV2ZW50IHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3
YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhl
IGZpcnN0LXBhcnR5LiJfcyk7CisgICAgICAgIGlmICghYXR0cmlidXRpb25UcmlnZ2VyRGF0YS5z
b3VyY2VSZWdpc3RyYWJsZURvbWFpbikgeworICAgICAgICAgICAgbV9jbGllbnQtPmJyb2FkY2Fz
dENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIltQcml2YXRlIENsaWNrIE1l
YXN1cmVtZW50XSBUcmlnZ2VyaW5nIGV2ZW50IHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3
YXMgcmVxdWVzdGVkIGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBzYW1lLXNpdGUgYXMgdGhl
ICAgZmlyc3QtcGFydHkgYW5kIG5vIGF0dHJpYnV0aW9uU291cmNlIHF1ZXJ5IHBhcmFtZXRlciB3
YXMgcHJvdmlkZWQuIl9zKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAg
ICBzb3VyY2VEb21haW4gPSAqYXR0cmlidXRpb25UcmlnZ2VyRGF0YS5zb3VyY2VSZWdpc3RyYWJs
ZURvbWFpbjsKKyAgICB9IGVsc2UgaWYgKGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEuc291cmNlUmVn
aXN0cmFibGVEb21haW4pIHsKKyAgICAgICAgbV9jbGllbnQtPmJyb2FkY2FzdENvbnNvbGVNZXNz
YWdlKE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIltQcml2YXRlIENsaWNrIE1lYXN1cmVtZW50XSBU
cmlnZ2VyaW5nIGV2ZW50IHdhcyBub3QgYWNjZXB0ZWQgYmVjYXVzZSBpdCB3YXMgcmVxdWVzdGVk
IGluIGFuIEhUVFAgcmVkaXJlY3QgdGhhdCBpcyBjcm9zcy1zaXRlIGZyb20gdGhlIGZpcnN0LXBh
cnR5IGJ1dCBhbiBhdHRyaWJ1dGlvblNvdXJjZSBxdWVyeSBwYXJhbWV0ZXIgd2FzIHN0aWxsIHBy
b3ZpZGVkLiJfcyk7CiAgICAgICAgIHJldHVybjsKLSAgICB9CisgICAgfSBlbHNlCisgICAgICAg
IHNvdXJjZURvbWFpbiA9IFdURk1vdmUocmVkaXJlY3REb21haW4pOwogCiAgICAgbV9jbGllbnQt
PmJyb2FkY2FzdENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VMZXZlbDo6TG9nLCAiW1ByaXZhdGUgQ2xp
Y2sgTWVhc3VyZW1lbnRdIFRyaWdnZXJpbmcgZXZlbnQgYWNjZXB0ZWQuIl9zKTsKIAotICAgIGF0
dHJpYnV0ZShTb3VyY2VTaXRlIHsgV1RGTW92ZShyZWRpcmVjdERvbWFpbikgfSwgQXR0cmlidXRp
b25EZXN0aW5hdGlvblNpdGUgeyBmaXJzdFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25U
cmlnZ2VyRGF0YSksIG1fcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3Rp
bmcgPyAqbV9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA6IGFw
cGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllcik7CisgICAgYXR0cmlidXRlKFNvdXJjZVNpdGUgeyBX
VEZNb3ZlKHNvdXJjZURvbWFpbikgfSwgQXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBmaXJz
dFBhcnR5VVJMIH0sIFdURk1vdmUoYXR0cmlidXRpb25UcmlnZ2VyRGF0YSksIG1fcHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcgPyAqbV9wcml2YXRlQ2xpY2tNZWFz
dXJlbWVudEFwcEJ1bmRsZUlERm9yVGVzdGluZyA6IGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmll
cik7CiB9CiAKIHZvaWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVy
SW1tZWRpYXRlbHlGb3JUZXN0aW5nKCkKQEAgLTI3NiwxMiArMjg0LDEyIEBAIHZvaWQgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpzdGFydFRpbWVyKFNlY29uZHMgc2Vjb25kcykKICAg
ICBtX2ZpcmVQZW5kaW5nQXR0cmlidXRpb25SZXF1ZXN0c1RpbWVyLnN0YXJ0T25lU2hvdChzZWNv
bmRzKTsKIH0KIAotdm9pZCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmF0dHJpYnV0
ZShjb25zdCBTb3VyY2VTaXRlJiBzb3VyY2VTaXRlLCBjb25zdCBBdHRyaWJ1dGlvbkRlc3RpbmF0
aW9uU2l0ZSYgZGVzdGluYXRpb25TaXRlLCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYgYXR0cmli
dXRpb25UcmlnZ2VyRGF0YSwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyJiBhcHBs
aWNhdGlvbkJ1bmRsZUlkZW50aWZpZXIpCit2b2lkIFByaXZhdGVDbGlja01lYXN1cmVtZW50TWFu
YWdlcjo6YXR0cmlidXRlKFNvdXJjZVNpdGUmJiBzb3VyY2VTaXRlLCBBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSYmIGRlc3RpbmF0aW9uU2l0ZSwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYg
YXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyKQogewogICAgIGlmICghZmVhdHVyZUVuYWJsZWQo
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgc3RvcmUoKS5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudChzb3VyY2VTaXRlLCBkZXN0aW5hdGlvblNpdGUsIGFwcGxpY2F0aW9uQnVuZGxl
SWRlbnRpZmllciwgV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgbV9pc1J1bm5pbmdU
ZXN0ID8gV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRl
c3Q6OlllcyA6IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlv
dXRUZXN0OjpObywgW3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChhdXRvIGF0
dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGEsIGF1dG8gZGVidWdJbmZvKSB7CisgICAgc3Rv
cmUoKS5hdHRyaWJ1dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXVEZNb3ZlKHNvdXJjZVNpdGUp
LCBXVEZNb3ZlKGRlc3RpbmF0aW9uU2l0ZSksIGFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciwg
V1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgbV9pc1J1bm5pbmdUZXN0ID8gV2ViQ29y
ZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6OlllcyA6IFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0OjpObywg
W3RoaXMsIHdlYWtUaGlzID0gV2Vha1B0ciB7ICp0aGlzIH1dIChhdXRvIGF0dHJpYnV0aW9uU2Vj
b25kc1VudGlsU2VuZERhdGEsIGF1dG8gZGVidWdJbmZvKSB7CiAgICAgICAgIGlmICghd2Vha1Ro
aXMpCiAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgIApAQCAtMzE5LDcgKzMyNyw3IEBAIHZv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3Qo
Y29uc3QgUHJpdmF0ZUNsaWNrTWVhCiAgICAgaWYgKCFmZWF0dXJlRW5hYmxlZCgpKQogICAgICAg
ICByZXR1cm47CiAKLSAgICBpZiAoIWF0dHJpYnV0aW9uLnNvdXJjZVVubGlua2FibGVUb2tlbigp
KSB7CisgICAgaWYgKCFhdHRyaWJ1dGlvbi5zb3VyY2VTZWNyZXRUb2tlbigpKSB7CiAgICAgICAg
IGZpcmVDb252ZXJzaW9uUmVxdWVzdEltcGwoYXR0cmlidXRpb24sIGF0dHJpYnV0aW9uUmVwb3J0
RW5kcG9pbnQpOwogICAgICAgICByZXR1cm47CiAgICAgfQpAQCAtMzM5LDcgKzM0Nyw3IEBAIHZv
aWQgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2VyOjpmaXJlQ29udmVyc2lvblJlcXVlc3Qo
Y29uc3QgUHJpdmF0ZUNsaWNrTWVhCiAgICAgICAgIGF1dG8gcHVibGljS2V5RGF0YUhhc2ggPSBj
cnlwdG8tPmNvbXB1dGVIYXNoKCk7CiAKICAgICAgICAgYXV0byBrZXlJRCA9IGJhc2U2NFVSTEVu
Y29kZVRvU3RyaW5nKHB1YmxpY0tleURhdGFIYXNoLmRhdGEoKSwgcHVibGljS2V5RGF0YUhhc2gu
c2l6ZSgpKTsKLSAgICAgICAgaWYgKGtleUlEICE9IGF0dHJpYnV0aW9uLnNvdXJjZVVubGlua2Fi
bGVUb2tlbigpLT5rZXlJREJhc2U2NFVSTCkKKyAgICAgICAgaWYgKGtleUlEICE9IGF0dHJpYnV0
aW9uLnNvdXJjZVNlY3JldFRva2VuKCktPmtleUlEQmFzZTY0VVJMKQogICAgICAgICAgICAgcmV0
dXJuOwogCiAgICAgICAgIGZpcmVDb252ZXJzaW9uUmVxdWVzdEltcGwoYXR0cmlidXRpb24sIGF0
dHJpYnV0aW9uUmVwb3J0RW5kcG9pbnQpOwpAQCAtMzUxLDEwICszNTksMTAgQEAgdm9pZCBQcml2
YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXI6OmZpcmVDb252ZXJzaW9uUmVxdWVzdEltcGwoY29u
c3QgUHJpdmF0ZUNsaWMKICAgICBVUkwgYXR0cmlidXRpb25VUkw7CiAgICAgc3dpdGNoIChhdHRy
aWJ1dGlvblJlcG9ydEVuZHBvaW50KSB7CiAgICAgY2FzZSBQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludDo6U291cmNlOgotICAgICAgICBhdHRyaWJ1dGlv
blVSTCA9IG1fYXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmlnID8gbV9hdHRyaWJ1dGlvblJlcG9y
dFRlc3RDb25maWctPmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMIDogYXR0cmlidXRpb24uYXR0
cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKTsKKyAgICAgICAgYXR0cmlidXRpb25VUkwgPSBtX2F0
dHJpYnV0aW9uUmVwb3J0VGVzdENvbmZpZyA/IG1fYXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmln
LT5hdHRyaWJ1dGlvblJlcG9ydENsaWNrU291cmNlVVJMIDogYXR0cmlidXRpb24uYXR0cmlidXRp
b25SZXBvcnRDbGlja1NvdXJjZVVSTCgpOwogICAgICAgICBicmVhazsKICAgICBjYXNlIFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblJlcG9ydEVuZHBvaW50OjpEZXN0aW5hdGlv
bjoKLSAgICAgICAgYXR0cmlidXRpb25VUkwgPSBtX2F0dHJpYnV0aW9uUmVwb3J0VGVzdENvbmZp
ZyA/IG1fYXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmlnLT5hdHRyaWJ1dGlvblJlcG9ydEF0dHJp
YnV0ZU9uVVJMIDogYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRBdHRyaWJ1dGVPblVSTCgp
OworICAgICAgICBhdHRyaWJ1dGlvblVSTCA9IG1fYXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmln
ID8gbV9hdHRyaWJ1dGlvblJlcG9ydFRlc3RDb25maWctPmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tE
ZXN0aW5hdGlvblVSTCA6IGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5h
dGlvblVSTCgpOwogICAgIH0KIAogICAgIGlmIChhdHRyaWJ1dGlvblVSTC5pc0VtcHR5KCkgfHwg
IWF0dHJpYnV0aW9uVVJMLmlzVmFsaWQoKSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvTmV0
d29ya1Byb2Nlc3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnRNYW5hZ2VyLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50TWFuYWdlci5oCmluZGV4IDYwMjM2N2E3
YjQ5OGNjOGFmMzU3MmNhNGRkYzhhZDAxYzZkNjNiYzAuLmM2NzNhZjg0ODgzMmZkMWI3YzA5YjI5
MGVhOTdlMTEzYzAyYTI1NjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRNYW5hZ2Vy
LmgKKysrIGIvU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudE1hbmFnZXIuaApAQCAtNzYsNyArNzYsNyBAQCBw
cml2YXRlOgogICAgIHZvaWQgZ2V0U2lnbmVkVW5saW5rYWJsZVRva2VuKFByaXZhdGVDbGlja01l
YXN1cmVtZW50JiYpOwogICAgIHZvaWQgaW5zZXJ0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQmJiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBdHRyaWJ1dGlv
blR5cGUsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQoKT4mJik7CiAgICAgdm9pZCBjbGVhclNlbnRB
dHRyaWJ1dGlvbihQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCYmLCBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25SZXBvcnRFbmRwb2ludCk7Ci0gICAgdm9pZCBhdHRyaWJ1dGUoY29u
c3QgU291cmNlU2l0ZSYsIGNvbnN0IEF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiwgQXR0cmli
dXRpb25UcmlnZ2VyRGF0YSYmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZpZXImKTsK
KyAgICB2b2lkIGF0dHJpYnV0ZShTb3VyY2VTaXRlJiYsIEF0dHJpYnV0aW9uRGVzdGluYXRpb25T
aXRlJiYsIEF0dHJpYnV0aW9uVHJpZ2dlckRhdGEmJiwgY29uc3QgQXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyJik7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3QoY29uc3QgUHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQmLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25S
ZXBvcnRFbmRwb2ludCk7CiAgICAgdm9pZCBmaXJlQ29udmVyc2lvblJlcXVlc3RJbXBsKGNvbnN0
IFByaXZhdGVDbGlja01lYXN1cmVtZW50JiwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJp
YnV0aW9uUmVwb3J0RW5kcG9pbnQpOwogICAgIHZvaWQgY2xlYXJFeHBpcmVkKCk7CkBAIC05NCw4
ICs5NCw4IEBAIHByaXZhdGU6CiAgICAgVW5pcXVlUmVmPFBDTTo6Q2xpZW50PiBtX2NsaWVudDsK
IAogICAgIHN0cnVjdCBBdHRyaWJ1dGlvblJlcG9ydFRlc3RDb25maWcgewotICAgICAgICBVUkwg
YXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkw7Ci0gICAgICAgIFVSTCBhdHRyaWJ1dGlvblJlcG9y
dEF0dHJpYnV0ZU9uVVJMOworICAgICAgICBVUkwgYXR0cmlidXRpb25SZXBvcnRDbGlja1NvdXJj
ZVVSTDsKKyAgICAgICAgVVJMIGF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5hdGlvblVSTDsK
ICAgICB9OwogCiAgICAgc3RkOjpvcHRpb25hbDxBdHRyaWJ1dGlvblJlcG9ydFRlc3RDb25maWc+
IG1fYXR0cmlidXRpb25SZXBvcnRUZXN0Q29uZmlnOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFz
dXJlbWVudFN0b3JlLmNwcCBiL1NvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nlc3MvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRTdG9yZS5jcHAKaW5kZXggYzFj
ZWQ5MjYxYmUyMjc4MDQyMWM2NWFhMzBjM2U3Zjc0OTNkYjJmOS4uYWI1MDk0MDgxNzI0NGQ3Mjkx
YjE5ODE4NDM2ZTVkNTE4MmVhNDk2NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9OZXR3b3Jr
UHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudFN0
b3JlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01l
YXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuY3BwCkBAIC05NCw3ICs5NCw3
IEBAIHZvaWQgU3RvcmU6Om1hcmtBbGxVbmF0dHJpYnV0ZWRQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dEFzRXhwaXJlZEZvclRlc3RpbmcoKQogICAgIH0pOwogfQogCi12b2lkIFN0b3JlOjphdHRyaWJ1
dGVQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlU2l0ZSYgc291cmNlU2l0ZSwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlJiBkZXN0aW5hdGlvblNp
dGUsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJ
ZGVudGlmaWVyLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YSYmIGF0dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFdlYkNvcmU6OlByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0IGlzUnVubmluZ1Rlc3QsIENvbXBsZXRp
b25IYW5kbGVyPHZvaWQoc3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6QXR0cmlidXRpb25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYm
IGNvbXBsZXRpb25IYW5kbGVyKQordm9pZCBTdG9yZTo6YXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNp
dGUmJiBzb3VyY2VTaXRlLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6
QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmJiBkZXN0aW5hdGlvblNpdGUsIGNvbnN0IEFwcGxp
Y2F0aW9uQnVuZGxlSWRlbnRpZmllciYgYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YSYmIGF0
dHJpYnV0aW9uVHJpZ2dlckRhdGEsIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJ
c1J1bm5pbmdMYXlvdXRUZXN0IGlzUnVubmluZ1Rlc3QsIENvbXBsZXRpb25IYW5kbGVyPHZvaWQo
c3RkOjpvcHRpb25hbDxXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRp
b25TZWNvbmRzVW50aWxTZW5kRGF0YT4mJiwgRGVidWdJbmZvJiYpPiYmIGNvbXBsZXRpb25IYW5k
bGVyKQogewogICAgIHBvc3RUYXNrKFt0aGlzLCBwcm90ZWN0ZWRUaGlzID0gUmVmIHsgKnRoaXMg
fSwgc291cmNlU2l0ZSA9IHNvdXJjZVNpdGUuaXNvbGF0ZWRDb3B5KCksIGRlc3RpbmF0aW9uU2l0
ZSA9IGRlc3RpbmF0aW9uU2l0ZS5pc29sYXRlZENvcHkoKSwgYXBwbGljYXRpb25CdW5kbGVJZGVu
dGlmaWVyID0gYXBwbGljYXRpb25CdW5kbGVJZGVudGlmaWVyLmlzb2xhdGVkQ29weSgpLCBhdHRy
aWJ1dGlvblRyaWdnZXJEYXRhID0gV1RGTW92ZShhdHRyaWJ1dGlvblRyaWdnZXJEYXRhKSwgaXNS
dW5uaW5nVGVzdCwgY29tcGxldGlvbkhhbmRsZXIgPSBXVEZNb3ZlKGNvbXBsZXRpb25IYW5kbGVy
KV0gKCkgbXV0YWJsZSB7CiAgICAgICAgIGlmICghbV9kYXRhYmFzZSkgewpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9Qcml2
YXRlQ2xpY2tNZWFzdXJlbWVudFN0b3JlLmggYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNz
L1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaApp
bmRleCBhOWRjZjVkNzQyZDU2YjhiYzMyYzUyNGFiZGE5NGFlZmE5ZjM3ZDlmLi43YWM1YzFiZmZi
N2IyMzdjYWNmOGZmZjA3MTEyMzNiMGRjNGIxYjJiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVDbGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1
cmVtZW50U3RvcmUuaAorKysgYi9Tb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL1ByaXZhdGVD
bGlja01lYXN1cmVtZW50L1ByaXZhdGVDbGlja01lYXN1cmVtZW50U3RvcmUuaApAQCAtNTMsNyAr
NTMsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIHZvaWQgcHJvY2Vzc0RpZFJlc3VtZSgpOwogCiAg
ICAgdm9pZCBpbnNlcnRQcml2YXRlQ2xpY2tNZWFzdXJlbWVudChXZWJDb3JlOjpQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCYmLCBXZWJLaXQ6OlByaXZhdGVDbGlja01lYXN1cmVtZW50QXR0cmlidXRp
b25UeXBlLCBDb21wbGV0aW9uSGFuZGxlcjx2b2lkKCk+JiYpOwotICAgIHZvaWQgYXR0cmlidXRl
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OlNvdXJjZVNpdGUmLCBjb25zdCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVu
dDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUmLCBjb25zdCBBcHBsaWNhdGlvbkJ1bmRsZUlk
ZW50aWZpZXImLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25U
cmlnZ2VyRGF0YSYmLCBXZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6SXNSdW5uaW5n
TGF5b3V0VGVzdCwgQ29tcGxldGlvbkhhbmRsZXI8dm9pZChzdGQ6Om9wdGlvbmFsPFdlYkNvcmU6
OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblNlY29uZHNVbnRpbFNlbmREYXRh
PiYmLCBEZWJ1Z0luZm8mJik+JiYpOworICAgIHZvaWQgYXR0cmlidXRlUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQoY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNp
dGUmJiwgY29uc3QgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9u
RGVzdGluYXRpb25TaXRlJiYsIGNvbnN0IEFwcGxpY2F0aW9uQnVuZGxlSWRlbnRpZmllciYsIFdl
YkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhJiYs
IFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlvdXRUZXN0LCBD
b21wbGV0aW9uSGFuZGxlcjx2b2lkKHN0ZDo6b3B0aW9uYWw8V2ViQ29yZTo6UHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uU2Vjb25kc1VudGlsU2VuZERhdGE+JiYsIERlYnVnSW5m
byYmKT4mJik7CiAKICAgICB2b2lkIHByaXZhdGVDbGlja01lYXN1cmVtZW50VG9TdHJpbmdGb3JU
ZXN0aW5nKENvbXBsZXRpb25IYW5kbGVyPHZvaWQoU3RyaW5nKT4mJikgY29uc3Q7CiAgICAgdm9p
ZCBtYXJrQWxsVW5hdHRyaWJ1dGVkUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBc0V4cGlyZWRGb3JU
ZXN0aW5nKCk7CmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggZGE0YjVhYTZjYzQyMWQxYmFjNDc4NjQ2ODBlYTVkMDIyNmNmOGU4Ni4uOTE0M2NiY2Zj
YzIxNjk1MDRlZmI1NGMwY2Q3MDBiNGMzMzk1ZTYzOSAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE5IEBACisyMDIxLTExLTE2ICBK
b2huIFdpbGFuZGVyICA8d2lsYW5kZXJAYXBwbGUuY29tPgorCisgICAgICAgIFBDTTogQWRkIGNh
cGFiaWxpdHkgZm9yIGNsaWNrIGRlc3RpbmF0aW9uIHRvIGZpcmUgdHJpZ2dlcmluZyBldmVudCB3
aXRob3V0IGNyb3NzLXNpdGUgcmVxdWVzdHMgdG8gdGhlIGNsaWNrIHNvdXJjZQorICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjMzMTczCisgICAgICAgIDxy
ZGFyOi8vNzk0MjY2MDU+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgVGhlc2UgY2hhbmdlcyBhcmUganVzdCBhIGNvcnJlY3Rpb24gb2YgYSBmdW5jdGlv
biBuYW1lOgorICAgICAgICBzb3VyY2VVbmxpbmthYmxlVG9rZW4oKSB0byBzb3VyY2VTZWNyZXRU
b2tlbigpCisKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvUHJpdmF0ZUNs
aWNrTWVhc3VyZW1lbnQuY3BwOgorICAgICAgICAoVGVzdFdlYktpdEFQSTo6VEVTVCk6CisgICAg
ICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJDb3JlL2NvY29hL1ByaXZhdGVDbGlja01lYXN1
cmVtZW50Q29jb2EubW06CisgICAgICAgIChUZXN0V2ViS2l0QVBJOjpURVNUKToKKwogMjAyMS0x
MS0xNSAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJvQGdub21lLm9yZz4KIAogICAgICAg
ICBNYWtlIHZhbGdyaW5kIHdvcmsgcHJvcGVybHkgd2l0aG91dCBleHRyYSBlbnZpcm9ubWVudCB2
YXJpYWJsZXMKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dl
YkNvcmUvUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQuY3BwCmluZGV4IDBjZGUyMGQ3ZWNmNTg5ZWJl
M2E5YjA4MDNjMTdiZjI5ZWUxYTIxMjguLjcxNGFmY2FiNGM1ZWQ3ZjY4NzIwOGNlMmU3MjM0YTkx
YWM3ZTg5YzMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0
cy9XZWJDb3JlL1ByaXZhdGVDbGlja01lYXN1cmVtZW50LmNwcApAQCAtNDcsOSArNDcsOSBAQCBU
RVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBXZWxsS25vd25VUkxzKQogICAgIFByaXZhdGVD
bGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNv
dXJjZUlEKG1pbjZCaXRWYWx1ZSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRl
IHsgd2ViS2l0VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3Rp
bmF0aW9uU2l0ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIiLCBXYWxs
VGltZTo6bm93KCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlv
bkVwaGVtZXJhbDo6Tm8gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVz
dFRpbWVUb1NlbmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRh
dGEobWluNkJpdFZhbHVlLCBQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkobWluNkJp
dFZhbHVlKSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5pbmdMYXlv
dXRUZXN0OjpObyk7CiAKLSAgICBhdXRvIGF0dHJpYnV0aW9uU291cmNlVVJMID0gYXR0cmlidXRp
b24uYXR0cmlidXRpb25SZXBvcnRTb3VyY2VVUkwoKTsKKyAgICBhdXRvIGF0dHJpYnV0aW9uU291
cmNlVVJMID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVSTCgpOwog
ICAgIEFTU0VSVF9FUShhdHRyaWJ1dGlvblNvdXJjZVVSTC5zdHJpbmcoKSwgImh0dHBzOi8vd2Vi
a2l0Lm9yZy8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1cmVtZW50L3JlcG9ydC1hdHRy
aWJ1dGlvbi8iKTsKLSAgICBhdXRvIGF0dHJpYnV0aW9uQXR0cmlidXRlT25VUkwgPSBhdHRyaWJ1
dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEF0dHJpYnV0ZU9uVVJMKCk7CisgICAgYXV0byBhdHRyaWJ1
dGlvbkF0dHJpYnV0ZU9uVVJMID0gYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRDbGlja0Rl
c3RpbmF0aW9uVVJMKCk7CiAgICAgQVNTRVJUX0VRKGF0dHJpYnV0aW9uQXR0cmlidXRlT25VUkwu
c3RyaW5nKCksICJodHRwczovL2V4YW1wbGUuY29tLy53ZWxsLWtub3duL3ByaXZhdGUtY2xpY2st
bWVhc3VyZW1lbnQvcmVwb3J0LWF0dHJpYnV0aW9uLyIpOwogfQogCkBAIC0xMzcsOCArMTM3LDgg
QEAgVEVTVChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudCwgSW52YWxpZFNvdXJjZUhvc3QpCiAgICAg
UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhFbnRy
b3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyBlbXB0eVVSTCB9LCBQ
cml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25EZXN0aW5hdGlvblNpdGUgeyBleGFt
cGxlVVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlmaWVyIiwgV2FsbFRpbWU6Om5vdygpLCBXZWJD
b3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5vIH07
CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlja01l
YXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5LCBQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5
OjpNYXhFbnRyb3B5KSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1bm5p
bmdMYXlvdXRUZXN0OjpObyk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1
dGlvblJlcG9ydFNvdXJjZVVSTCgpLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUX1RSVUUoYXR0cmli
dXRpb24uYXR0cmlidXRpb25SZXBvcnRBdHRyaWJ1dGVPblVSTCgpLmlzRW1wdHkoKSk7CisgICAg
QVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVSTCgp
LmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBv
cnRDbGlja0Rlc3RpbmF0aW9uVVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRlQ2xp
Y2tNZWFzdXJlbWVudCwgSW52YWxpZERlc3RpbmF0aW9uSG9zdCkKQEAgLTE0Niw4ICsxNDYsOCBA
QCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkRGVzdGluYXRpb25Ib3N0KQog
ICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNrTWVh
c3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6TWF4
RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0VVJM
IH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0ZSB7
IGVtcHR5VVJMIH0sICJ0ZXN0LmJ1bmRsZS5pZGVudGlmaWVyIiwgV2FsbFRpbWU6Om5vdygpLCBX
ZWJDb3JlOjpQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25FcGhlbWVyYWw6Ok5v
IH07CiAgICAgYXR0cmlidXRpb24uYXR0cmlidXRlQW5kR2V0RWFybGllc3RUaW1lVG9TZW5kKFBy
aXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhKFByaXZhdGVDbGlj
a01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5LCBQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6UHJpb3JpdHkoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9y
aXR5OjpNYXhFbnRyb3B5KSksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpJc1J1
bm5pbmdMYXlvdXRUZXN0OjpObyk7CiAKLSAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGlvblJlcG9ydFNvdXJjZVVSTCgpLmlzRW1wdHkoKSk7Ci0gICAgQVNTRVJUX1RSVUUoYXR0
cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRBdHRyaWJ1dGVPblVSTCgpLmlzRW1wdHkoKSk7Cisg
ICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRDbGlja1NvdXJjZVVS
TCgpLmlzRW1wdHkoKSk7CisgICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25S
ZXBvcnRDbGlja0Rlc3RpbmF0aW9uVVJMKCkuaXNFbXB0eSgpKTsKIH0KIAogVEVTVChQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudCwgQXR0cmlidXRpb25UcmlnZ2VyRGF0YSkKQEAgLTE1NSw4ICsxNTUs
OCBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBBdHRyaWJ1dGlvblRyaWdnZXJEYXRh
KQogICAgIFByaXZhdGVDbGlja01lYXN1cmVtZW50IGF0dHJpYnV0aW9uIHsgUHJpdmF0ZUNsaWNr
TWVhc3VyZW1lbnQ6OlNvdXJjZUlEKFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VJRDo6
TWF4RW50cm9weSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpTb3VyY2VTaXRlIHsgd2ViS2l0
VVJMIH0sIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkRlc3RpbmF0aW9uU2l0
ZSB7IGV4YW1wbGVVUkwgfSwgInRlc3QuYnVuZGxlLmlkZW50aWZpZXIiLCBXYWxsVGltZTo6bm93
KCksIFdlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvbkVwaGVtZXJh
bDo6Tm8gfTsKICAgICBhdHRyaWJ1dGlvbi5hdHRyaWJ1dGVBbmRHZXRFYXJsaWVzdFRpbWVUb1Nl
bmQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uVHJpZ2dlckRhdGEoKFByaXZh
dGVDbGlja01lYXN1cmVtZW50OjpBdHRyaWJ1dGlvblRyaWdnZXJEYXRhOjpNYXhFbnRyb3B5ICsg
MSksIFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQcmlvcml0eShQcml2YXRlQ2xpY2tNZWFzdXJl
bWVudDo6UHJpb3JpdHk6Ok1heEVudHJvcHkpKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIAotICAgIEFTU0VSVF9UUlVFKGF0dHJp
YnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCkuaXNFbXB0eSgpKTsKLSAgICBBU1NF
UlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEF0dHJpYnV0ZU9uVVJMKCkuaXNF
bXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENs
aWNrU291cmNlVVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5h
dHRyaWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKS5pc0VtcHR5KCkpOwogfQogCiBU
RVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkUHJpb3JpdHkpCkBAIC0xNjQsMTYg
KzE2NCwxNiBAQCBURVNUKFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkUHJpb3JpdHkp
CiAgICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tN
ZWFzdXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpN
YXhFbnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRV
UkwgfSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRl
IHsgZXhhbXBsZVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRpZmllciIsIFdhbGxUaW1lOjpub3co
KSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRXBoZW1lcmFs
OjpObyB9OwogICAgIGF0dHJpYnV0aW9uLmF0dHJpYnV0ZUFuZEdldEVhcmxpZXN0VGltZVRvU2Vu
ZChQcml2YXRlQ2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YShQcml2YXRl
Q2xpY2tNZWFzdXJlbWVudDo6QXR0cmlidXRpb25UcmlnZ2VyRGF0YTo6TWF4RW50cm9weSwgUHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlByaW9yaXR5KFByaXZhdGVDbGlja01lYXN1cmVtZW50OjpQ
cmlvcml0eTo6TWF4RW50cm9weSArIDEpKSwgV2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1l
bnQ6OklzUnVubmluZ0xheW91dFRlc3Q6Ok5vKTsKIAotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0
aW9uLmF0dHJpYnV0aW9uUmVwb3J0U291cmNlVVJMKCkuaXNFbXB0eSgpKTsKLSAgICBBU1NFUlRf
VFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydEF0dHJpYnV0ZU9uVVJMKCkuaXNFbXB0
eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRyaWJ1dGlvblJlcG9ydENsaWNr
U291cmNlVVJMKCkuaXNFbXB0eSgpKTsKKyAgICBBU1NFUlRfVFJVRShhdHRyaWJ1dGlvbi5hdHRy
aWJ1dGlvblJlcG9ydENsaWNrRGVzdGluYXRpb25VUkwoKS5pc0VtcHR5KCkpOwogfQogCiBURVNU
KFByaXZhdGVDbGlja01lYXN1cmVtZW50LCBJbnZhbGlkTWlzc2luZ0NvbnZlcnNpb24pCiB7CiAg
ICAgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQgYXR0cmlidXRpb24geyBQcml2YXRlQ2xpY2tNZWFz
dXJlbWVudDo6U291cmNlSUQoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZUlEOjpNYXhF
bnRyb3B5KSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OlNvdXJjZVNpdGUgeyB3ZWJLaXRVUkwg
fSwgUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRGVzdGluYXRpb25TaXRlIHsg
ZXhhbXBsZVVSTCB9LCAidGVzdC5idW5kbGUuaWRlbnRpZmllciIsIFdhbGxUaW1lOjpub3coKSwg
V2ViQ29yZTo6UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQ6OkF0dHJpYnV0aW9uRXBoZW1lcmFsOjpO
byB9OwogCi0gICAgQVNTRVJUX1RSVUUoYXR0cmlidXRpb24uYXR0cmlidXRpb25SZXBvcnRTb3Vy
Y2VVUkwoKS5pc0VtcHR5KCkpOwotICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0
aW9uUmVwb3J0QXR0cmlidXRlT25VUkwoKS5pc0VtcHR5KCkpOworICAgIEFTU0VSVF9UUlVFKGF0
dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tTb3VyY2VVUkwoKS5pc0VtcHR5KCkpOwor
ICAgIEFTU0VSVF9UUlVFKGF0dHJpYnV0aW9uLmF0dHJpYnV0aW9uUmVwb3J0Q2xpY2tEZXN0aW5h
dGlvblVSTCgpLmlzRW1wdHkoKSk7CiAgICAgQVNTRVJUX0ZBTFNFKGF0dHJpYnV0aW9uLnRpbWVz
VG9TZW5kKCkuc291cmNlRWFybGllc3RUaW1lVG9TZW5kICYmIGF0dHJpYnV0aW9uLnRpbWVzVG9T
ZW5kKCkuZGVzdGluYXRpb25FYXJsaWVzdFRpbWVUb1NlbmQpOwogfQogCmRpZmYgLS1naXQgYS9U
b29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYkNvcmUvY29jb2EvUHJpdmF0ZUNsaWNrTWVhc3Vy
ZW1lbnRDb2NvYS5tbSBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Q
cml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCmluZGV4IDNhZDNmNWU5ZDBmMGQ3NjE4YjM4
ZmRlZTViMTg0NTJjMWQ1Y2U2M2IuLjA3YjU2MmUxYWY2Mjk0NjY0MDY4YmM5ZmIzYzAyNjdhZDVj
NTQwYzAgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViQ29yZS9jb2Nv
YS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViQ29yZS9jb2NvYS9Qcml2YXRlQ2xpY2tNZWFzdXJlbWVudENvY29hLm1tCkBA
IC05NCw3ICs5NCw3IEBAIFRFU1QoUHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQsIFZhbGlkQmxpbmRl
ZFNlY3JldCkKICAgICAvLyBDb250aW51ZSB0aGUgdGVzdC4KICAgICBlcnJvck1lc3NhZ2UgPSBw
Y20uY2FsY3VsYXRlQW5kVXBkYXRlU291cmNlU2VjcmV0VG9rZW4oYmFzZTY0VVJMRW5jb2RlVG9T
dHJpbmcoW2JsaW5kZWRTaWduYXR1cmUgYnl0ZXNdLCBbYmxpbmRlZFNpZ25hdHVyZSBsZW5ndGhd
KSk7CiAgICAgRVhQRUNUX0ZBTFNFKGVycm9yTWVzc2FnZSk7Ci0gICAgYXV0byYgcGVyc2lzdGVu
dFRva2VuID0gcGNtLnNvdXJjZVVubGlua2FibGVUb2tlbigpOworICAgIGF1dG8mIHBlcnNpc3Rl
bnRUb2tlbiA9IHBjbS5zb3VyY2VTZWNyZXRUb2tlbigpOwogICAgIEVYUEVDVF9UUlVFKHBlcnNp
c3RlbnRUb2tlbik7CiAgICAgRVhQRUNUX0ZBTFNFKHBlcnNpc3RlbnRUb2tlbi0+dG9rZW5CYXNl
NjRVUkwuaXNFbXB0eSgpKTsKICAgICBFWFBFQ1RfRkFMU0UocGVyc2lzdGVudFRva2VuLT5rZXlJ
REJhc2U2NFVSTC5pc0VtcHR5KCkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGQ0NWQwMjAyMDRkZDI4OWQ2YzliMzYzMWVk
ZDg3MWY1Y2ViZjE3YmIuLjRiZjY4Y2RiOTkxYmJlNTkxNGMwMWJjNTI1MWVmZGQ5MDI4N2Q2MjIg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxNSBAQAorMjAyMS0xMS0xNiAgSm9obiBXaWxhbmRlciAgPHdpbGFu
ZGVyQGFwcGxlLmNvbT4KKworICAgICAgICBQQ006IEFkZCBjYXBhYmlsaXR5IGZvciBjbGljayBk
ZXN0aW5hdGlvbiB0byBmaXJlIHRyaWdnZXJpbmcgZXZlbnQgd2l0aG91dCBjcm9zcy1zaXRlIHJl
cXVlc3RzIHRvIHRoZSBjbGljayBzb3VyY2UKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIzMzE3MworICAgICAgICA8cmRhcjovLzc5NDI2NjA1PgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9yZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25X
aXRoQXR0cmlidXRpb25Tb3VyY2UucHk6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvcHJp
dmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJpYnV0aW9uLXNv
dXJjZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13
aXRoLWF0dHJpYnV0aW9uLXNvdXJjZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS5odG1sOiBBZGRl
ZC4KKwogMjAyMS0xMS0xNSAgVGltIE5ndXllbiAgPG50aW1AYXBwbGUuY29tPgogCiAgICAgICAg
IFJlbW92ZSByZWR1bmRhbnQgWyBQYXNzIF0gZnJvbSBUZXN0RXhwZWN0YXRpb25zCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291
cmNlcy9yZWRpcmVjdFRvQ29udmVyc2lvbldpdGhBdHRyaWJ1dGlvblNvdXJjZS5weSBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvcmVzb3VyY2VzL3JlZGly
ZWN0VG9Db252ZXJzaW9uV2l0aEF0dHJpYnV0aW9uU291cmNlLnB5Cm5ldyBmaWxlIG1vZGUgMTAw
NzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmU4YTll
MWJmMTI5MmQyZjRmMDdmZGY0YWMzZDg0ZWIwMWZkMGE3YzIKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3Jlc291cmNlcy9y
ZWRpcmVjdFRvQ29udmVyc2lvbldpdGhBdHRyaWJ1dGlvblNvdXJjZS5weQpAQCAtMCwwICsxLDI5
IEBACisjIS91c3IvYmluL2VudiBweXRob24zCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworaW1w
b3J0IHRpbWUKK2Zyb20gdXJsbGliLnBhcnNlIGltcG9ydCBwYXJzZV9xcworCitxdWVyeSA9IHBh
cnNlX3FzKG9zLmVudmlyb24uZ2V0KCdRVUVSWV9TVFJJTkcnLCAnJyksIGtlZXBfYmxhbmtfdmFs
dWVzPVRydWUpCitkZWxheV9tcyA9IHF1ZXJ5LmdldCgnZGVsYXlfbXMnLCBbTm9uZV0pWzBdCitj
b252ZXJzaW9uX2RhdGEgPSBxdWVyeS5nZXQoJ2NvbnZlcnNpb25EYXRhJywgW05vbmVdKVswXQor
cHJpb3JpdHkgPSBxdWVyeS5nZXQoJ3ByaW9yaXR5JywgW05vbmVdKVswXQorCitpZiBkZWxheV9t
cyBpcyBub3QgTm9uZToKKyAgICB0aW1lLnNsZWVwKGludChkZWxheV9tcykgKiAwLjAwMSkKKwor
c3lzLnN0ZG91dC53cml0ZSgKKyAgICAnc3RhdHVzOiAzMDJcclxuJworICAgICdDYWNoZS1Db250
cm9sOiBuby1jYWNoZSwgbm8tc3RvcmUsIG11c3QtcmV2YWxpZGF0ZVxyXG4nCisgICAgJ0FjY2Vz
cy1Db250cm9sLUFsbG93LU9yaWdpbjogKlxyXG4nCisgICAgJ0FjY2Vzcy1Db250cm9sLUFsbG93
LU1ldGhvZHM6IEdFVFxyXG4nCisgICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcbicKKykK
KworaWYgY29udmVyc2lvbl9kYXRhIGlzIG5vdCBOb25lIGFuZCBwcmlvcml0eSBpcyBub3QgTm9u
ZToKKyAgICBzeXMuc3Rkb3V0LndyaXRlKCdMb2NhdGlvbjogLy53ZWxsLWtub3duL3ByaXZhdGUt
Y2xpY2stbWVhc3VyZW1lbnQvdHJpZ2dlci1hdHRyaWJ1dGlvbi97fS97fT9hdHRyaWJ1dGlvblNv
dXJjZT1odHRwczovLzEyNy4wLjAuMVxyXG4nLmZvcm1hdChjb252ZXJzaW9uX2RhdGEsIHByaW9y
aXR5KSkKK2VsaWYgY29udmVyc2lvbl9kYXRhIGlzIG5vdCBOb25lOgorICAgIHN5cy5zdGRvdXQu
d3JpdGUoJ0xvY2F0aW9uOiAvLndlbGwta25vd24vcHJpdmF0ZS1jbGljay1tZWFzdXJlbWVudC90
cmlnZ2VyLWF0dHJpYnV0aW9uL3t9P2F0dHJpYnV0aW9uU291cmNlPWh0dHBzOi8vMTI3LjAuMC4x
XHJcbicuZm9ybWF0KGNvbnZlcnNpb25fZGF0YSkpCisKK3N5cy5zdGRvdXQud3JpdGUoJ1xyXG4n
KQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9wcml2YXRlQ2xpY2tNZWFzdXJl
bWVudC90cmlnZ2VyaW5nLWV2ZW50LXdpdGgtYXR0cmlidXRpb24tc291cmNlLXRocm91Z2gtZmV0
Y2gta2VlcGFsaXZlLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0
ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1ldmVudC13aXRoLWF0dHJpYnV0aW9uLXNvdXJj
ZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWE5ZmQz
YWJjODFhOWZjZTgxNTY0ZjIyN2FlNzI5N2M5MjM0MGIzMQotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJpZ2dlcmluZy1l
dmVudC13aXRoLWF0dHJpYnV0aW9uLXNvdXJjZS10aHJvdWdoLWZldGNoLWtlZXBhbGl2ZS1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxNSBAQAorQ09OU09MRSBNRVNTQUdFOiBbUHJpdmF0ZSBDbGlj
ayBNZWFzdXJlbWVudF0gQ29udmVyc2lvbiB3YXMgbm90IGFjY2VwdGVkIGJlY2F1c2UgdGhlIGNv
bnZlcnNpb24gZGF0YSBjb3VsZCBub3QgYmUgcGFyc2VkIG9yIHdhcyBoaWdoZXIgdGhhbiB0aGUg
YWxsb3dlZCBtYXhpbXVtIG9mIDE1LgorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovL2xv
Y2FsaG9zdDo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdp
bi4gU3RhdHVzIGNvZGU6IDQwNAorQ09OU09MRSBNRVNTQUdFOiBGZXRjaCBBUEkgY2Fubm90IGxv
YWQgaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My8ud2VsbC1rbm93bi9wcml2YXRlLWNsaWNrLW1lYXN1
cmVtZW50L3RyaWdnZXItYXR0cmlidXRpb24vRHVtbXk/YXR0cmlidXRpb25Tb3VyY2U9aHR0cHM6
Ly8xMjcuMC4wLjEgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIHRyaWdnZXJp
bmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB3aXRoIHNhbWUtc2l0
ZSB0cmlnZ2VyaW5nIGV2ZW50IHJlcXVlc3QuCisKKworQXR0cmlidXRlZCBQcml2YXRlIENsaWNr
IE1lYXN1cmVtZW50czoKK1dlYkNvcmU6OlByaXZhdGVDbGlja01lYXN1cmVtZW50IDEKK1NvdXJj
ZSBzaXRlOiAxMjcuMC4wLjEKK0F0dHJpYnV0ZSBvbiBzaXRlOiBsb2NhbGhvc3QKK1NvdXJjZSBJ
RDogMworQXR0cmlidXRpb24gdHJpZ2dlciBkYXRhOiAxMgorQXR0cmlidXRpb24gcHJpb3JpdHk6
IDAKK0F0dHJpYnV0aW9uIGVhcmxpZXN0IHRpbWUgdG8gc2VuZDogV2l0aGluIDI0LTQ4IGhvdXJz
CitBcHBsaWNhdGlvbiBidW5kbGUgaWRlbnRpZmllcjogdGVzdEJ1bmRsZUlECmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3RyaWdnZXJp
bmctZXZlbnQtd2l0aC1hdHRyaWJ1dGlvbi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVwYWxpdmUu
aHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvcHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnQvdHJp
Z2dlcmluZy1ldmVudC13aXRoLWF0dHJpYnV0aW9uLXNvdXJjZS10aHJvdWdoLWZldGNoLWtlZXBh
bGl2ZS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUxNDQ4NzU3NWM3YTAxZGIzNjUzMjczYzFlNjg4NGRjNGU4
OGJkNTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ByaXZhdGVD
bGlja01lYXN1cmVtZW50L3RyaWdnZXJpbmctZXZlbnQtd2l0aC1hdHRyaWJ1dGlvbi1zb3VyY2Ut
dGhyb3VnaC1mZXRjaC1rZWVwYWxpdmUuaHRtbApAQCAtMCwwICsxLDU1IEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0iVVRGLTgiPgorICAgIDxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvdWktaGVscGVyLmpzIj48L3NjcmlwdD4KKyAg
ICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJv
ZHkgb25sb2FkPSJydW5UZXN0KCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3RzIHRyaWdn
ZXJpbmcgb2YgcHJpdmF0ZSBjbGljayBtZWFzdXJlbWVudCBhdHRyaWJ1dGlvbiB3aXRoIHNhbWUt
c2l0ZSB0cmlnZ2VyaW5nIGV2ZW50IHJlcXVlc3QuPC9kaXY+Cis8YSBpZD0idGFyZ2V0TGluayIg
aHJlZj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ByaXZhdGVDbGlja01lYXN1cmVtZW50L3RyaWdn
ZXJpbmctZXZlbnQtd2l0aC1hdHRyaWJ1dGlvbi1zb3VyY2UtdGhyb3VnaC1mZXRjaC1rZWVwYWxp
dmUuaHRtbD9zdGVwVHdvIiBhdHRyaWJ1dGlvbnNvdXJjZWlkPTMgYXR0cmlidXRpb25kZXN0aW5h
dGlvbj0iaHR0cDovL2xvY2FsaG9zdDo4MDAwIj5MaW5rPC9hPjxicj4KKzxkaXYgaWQ9Im91dHB1
dCI+PC9kaXY+Cis8c2NyaXB0PgorICAgIHByZXBhcmVUZXN0KCk7CisKKyAgICBmdW5jdGlvbiBh
Y3RpdmF0ZUVsZW1lbnQoZWxlbWVudElEKSB7CisgICAgICAgIHZhciBlbGVtZW50ID0gZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoZWxlbWVudElEKTsKKyAgICAgICAgdmFyIGNlbnRlclggPSBlbGVt
ZW50Lm9mZnNldExlZnQgKyBlbGVtZW50Lm9mZnNldFdpZHRoIC8gMjsKKyAgICAgICAgdmFyIGNl
bnRlclkgPSBlbGVtZW50Lm9mZnNldFRvcCArIGVsZW1lbnQub2Zmc2V0SGVpZ2h0IC8gMjsKKyAg
ICAgICAgVUlIZWxwZXIuYWN0aXZhdGVBdChjZW50ZXJYLCBjZW50ZXJZKS50aGVuKAorICAgICAg
ICAgICAgZnVuY3Rpb24gKCkgeworICAgICAgICAgICAgfSwKKyAgICAgICAgICAgIGZ1bmN0aW9u
ICgpIHsKKyAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgib3V0cHV0Iiku
aW5uZXJUZXh0ID0gIkZBSUwgUHJvbWlzZSByZWplY3RlZC4iOworICAgICAgICAgICAgICAgIHRl
YXJEb3duQW5kRmluaXNoKCk7CisgICAgICAgICAgICB9CisgICAgICAgICk7CisgICAgfQorCisg
ICAgZnVuY3Rpb24gdHJpZ2dlckZldGNoKGNvbnZlcnNpb25EYXRhKSB7CisgICAgICAgIHJldHVy
biBmZXRjaCgiaHR0cHM6Ly9sb2NhbGhvc3Q6ODQ0My9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC9y
ZXNvdXJjZXMvcmVkaXJlY3RUb0NvbnZlcnNpb25XaXRoQXR0cmlidXRpb25Tb3VyY2UucHk/Y29u
dmVyc2lvbkRhdGE9IisgY29udmVyc2lvbkRhdGEgKyAiJmRlbGF5X21zPTEwMCIsIHsga2VlcGFs
aXZlOiB0cnVlIH0pOworICAgIH0KKworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAg
IGlmICh3aW5kb3cubG9jYXRpb24uc2VhcmNoID09PSAiP3N0ZXBUd28iKSB7CisgICAgICAgICAg
ICAvLyBTdGFydCBwcml2YXRlIGNsaWNrIGF0dHJpYnV0aW9uIGZldGNoIGJ1dCBuYXZpZ2F0ZSBh
d2F5IGJlZm9yZSB0aGUgZmV0Y2ggcmVkaXJlY3Rpb24gaGFwcGVucy4KKyAgICAgICAgICAgIHRy
aWdnZXJGZXRjaCgxMik7CisgICAgICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC9wcml2YXRlQ2xpY2tNZWFzdXJlbWVudC90cmlnZ2VyaW5nLWV2
ZW50LXdpdGgtYXR0cmlidXRpb24tc291cmNlLXRocm91Z2gtZmV0Y2gta2VlcGFsaXZlLmh0bWw/
c3RlcFRocmVlIjsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgfQorICAgICAgICBpZiAo
d2luZG93LmxvY2F0aW9uLnNlYXJjaCA9PT0gIj9zdGVwVGhyZWUiKSB7CisgICAgICAgICAgICBk
b2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0YXJnZXRM
aW5rIikpOworICAgICAgICAgICAgLy8gRG8gYW4gaW52YWxpZCBwcml2YXRlIGNsaWNrIGF0dHJp
YnV0aW9uIGZldGNoIHRvIGVuc3VyZSB0aGUgcHJldmlvdXMgY29ycmVjdCBjbGljayBhdHRyaWJ1
dGlvbiBmZXRjaCB3aWxsIGJlIGZpbmlzaGVkLgorICAgICAgICAgICAgdHJpZ2dlckZldGNoKCJE
dW1teSIpLmNhdGNoKCgpID0+IHsKKyAgICAgICAgICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCisgICAgICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIuZHVtcFByaXZhdGVDbGlja01lYXN1
cmVtZW50KCk7CisgICAgICAgICAgICAgICAgdGVhckRvd25BbmRGaW5pc2goKTsKKyAgICAgICAg
ICAgIH0pOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisgICAgICAgIHRlc3RSdW5u
ZXIuc2V0UHJpdmF0ZUNsaWNrTWVhc3VyZW1lbnRBcHBCdW5kbGVJREZvclRlc3RpbmcoInRlc3RC
dW5kbGVJRCIpOworICAgICAgICBhY3RpdmF0ZUVsZW1lbnQoInRhcmdldExpbmsiKTsKKyAgICB9
Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>