<?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>225894</bug_id>
          
          <creation_ts>2021-05-17 16:16:46 -0700</creation_ts>
          <short_desc>Window should behave like a legacy platform object without indexed setter</short_desc>
          <delta_ts>2021-06-07 18:10:35 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>DOM</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://github.com/web-platform-tests/wpt/pull/29234</see_also>
          <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="Alexey Shvayka">ashvayka</reporter>
          <assigned_to name="Alexey Shvayka">ashvayka</assigned_to>
          <cc>benjamin</cc>
    
    <cc>cdumez</cc>
    
    <cc>clopez</cc>
    
    <cc>cmarcelo</cc>
    
    <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>hi</cc>
    
    <cc>keith_miller</cc>
    
    <cc>mark.lam</cc>
    
    <cc>mkwst</cc>
    
    <cc>msaboff</cc>
    
    <cc>saam</cc>
    
    <cc>sam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1760930</commentid>
    <comment_count>0</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-17 16:16:46 -0700</bug_when>
    <thetext>Window should behave like a legacy platform object without indexed setter</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1760935</commentid>
    <comment_count>1</comment_count>
      <attachid>428887</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-17 16:21:53 -0700</bug_when>
    <thetext>Created attachment 428887
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761596</commentid>
    <comment_count>2</comment_count>
      <attachid>429066</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-19 10:37:45 -0700</bug_when>
    <thetext>Created attachment 429066
Patch

Adjust tests and improve coverage, remove slot.disableCaching(), and add UINT_MAX checks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1761597</commentid>
    <comment_count>3</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2021-05-19 10:38:25 -0700</bug_when>
    <thetext>This patch modifies the imported WPT tests. Please ensure that any changes on the tests (not coming from a WPT import) are exported to WPT. Please see https://trac.webkit.org/wiki/WPTExportProcess</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1763310</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-05-24 16:17:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/78424257&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765078</commentid>
    <comment_count>5</comment_count>
      <attachid>430091</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-29 07:17:52 -0700</bug_when>
    <thetext>Created attachment 430091
Patch

Guard new behavior with isFullWebBrowser(), add a console warning, and simplify getOwnPropertySlotByIndex().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765083</commentid>
    <comment_count>6</comment_count>
      <attachid>430094</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-29 07:44:46 -0700</bug_when>
    <thetext>Created attachment 430094
Patch

Remove MacApplication::isMiniBrowser().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765093</commentid>
    <comment_count>7</comment_count>
      <attachid>430094</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 10:01:44 -0700</bug_when>
    <thetext>Comment on attachment 430094
Patch

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

&gt; Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:39
&gt; +WTF_EXPORT_PRIVATE bool isRunningTest(const String&amp; bundleID);

We used to have a way to detect we were running tests and we dropped it because we didn’t think it was a good idea to have test specific behavior.

&gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:100
&gt; +inline static bool isFullWebBrowser()

Why? Why would the behavior be different in web browsers than apps?

If we are worried about compatibility, a linked on after check would be more appropriate.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765095</commentid>
    <comment_count>8</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-05-29 10:51:58 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #7)
&gt; &gt; Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:39
&gt; &gt; +WTF_EXPORT_PRIVATE bool isRunningTest(const String&amp; bundleID);
&gt; 
&gt; We used to have a way to detect we were running tests and we dropped it
&gt; because we didn’t think it was a good idea to have test specific behavior.

Yeah, this isn&apos;t perfect; is there a way to import isFullWebBrowser() of Shared/Cocoa/DefaultWebBrowserChecks.mm rather than exposing isRunningTest() on WTF and calling it directly?

&gt; &gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:100
&gt; &gt; +inline static bool isFullWebBrowser()
&gt; 
&gt; Why? Why would the behavior be different in web browsers than apps?
&gt; 
&gt; If we are worried about compatibility

I think we are: apps may either add expando indices to WindowProxy directly, or more likely read / write indexed properties of sloppy function&apos;s |this| value, which accidentally happens to be a WindowProxy. We had the current behavior for a long time + &quot;length&quot; is [Replaceable].

Maybe I&apos;m being too cautious and there is enough metrics to ship this change without isFullWebBrowser()?

&gt; a linked on after check would be more appropriate.

Could you please expand on this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1765100</commentid>
    <comment_count>9</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2021-05-29 12:03:56 -0700</bug_when>
    <thetext>(In reply to Alexey Shvayka from comment #8)
&gt; (In reply to Chris Dumez from comment #7)
&gt; &gt; &gt; Source/WTF/wtf/cocoa/RuntimeApplicationChecksCocoa.h:39
&gt; &gt; &gt; +WTF_EXPORT_PRIVATE bool isRunningTest(const String&amp; bundleID);
&gt; &gt; 
&gt; &gt; We used to have a way to detect we were running tests and we dropped it
&gt; &gt; because we didn’t think it was a good idea to have test specific behavior.
&gt; 
&gt; Yeah, this isn&apos;t perfect; is there a way to import isFullWebBrowser() of
&gt; Shared/Cocoa/DefaultWebBrowserChecks.mm rather than exposing isRunningTest()
&gt; on WTF and calling it directly?
&gt; 
&gt; &gt; &gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:100
&gt; &gt; &gt; +inline static bool isFullWebBrowser()
&gt; &gt; 
&gt; &gt; Why? Why would the behavior be different in web browsers than apps?
&gt; &gt; 
&gt; &gt; If we are worried about compatibility
&gt; 
&gt; I think we are: apps may either add expando indices to WindowProxy directly,
&gt; or more likely read / write indexed properties of sloppy function&apos;s |this|
&gt; value, which accidentally happens to be a WindowProxy. We had the current
&gt; behavior for a long time + &quot;length&quot; is [Replaceable].
&gt; 
&gt; Maybe I&apos;m being too cautious and there is enough metrics to ship this change
&gt; without isFullWebBrowser()?
&gt; 
&gt; &gt; a linked on after check would be more appropriate.
&gt; 
&gt; Could you please expand on this?

I am on a phone now but please Greg for isLinkedOnAfter(). Basically we use this to gate new behaviors on new SDKs. Mitigates compatibility issues with apps.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766133</commentid>
    <comment_count>10</comment_count>
      <attachid>430397</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-06-02 13:40:32 -0700</bug_when>
    <thetext>Created attachment 430397
Patch

Use allowsLegacyExpandoIndexedProperties() and release scope before calling Base::putByIndex().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766134</commentid>
    <comment_count>11</comment_count>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-06-02 13:41:04 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #9)
&gt; I am on a phone now but please Greg for isLinkedOnAfter(). Basically we use
&gt; this to gate new behaviors on new SDKs. Mitigates compatibility issues with apps.

Works like a charm, with built-in support for test runners. Thanks Chris!
A thought: with similar approach to JSC API we could slowly fix a few quirks, cleaning up JSC built-ins and possibly making userland API code more sensible.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1766939</commentid>
    <comment_count>12</comment_count>
      <attachid>430397</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-06-04 14:38:40 -0700</bug_when>
    <thetext>Comment on attachment 430397
Patch

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

&gt; Source/WebCore/bindings/js/JSDOMWindowCustom.cpp:105
&gt; +#if PLATFORM(COCOA)
&gt; +    static bool linkedWithNewSDK = linkedOnOrAfter(SDKVersion::FirstWithoutExpandoIndexedPropertiesOnWindow);
&gt; +#else
&gt; +    static bool linkedWithNewSDK = true;
&gt; +#endif
&gt; +    return !linkedWithNewSDK;

This function needs a why comment in the COCOA half. What is it about older clients that makes us want to keep allowing these? I think it’s pretty easy to explain: It’s hard to prove that older iOS and macOS apps don’t accidentally depend on this behavior, so we keep it for them. I think that on further reflection we might later decide to narrow the legacy quirk to be iOS-only: may not be needed for macOS, watchOS, or tvOS.

Aside from that, I’d write it more like this for better clarity:

#if PLATFORM(COCOA)
    static bool requiresQuirk = !linkedOnOrAfter(SDKVersion::FirstWithoutExpandoIndexedPropertiesOnWindow);
    return requiresQuirk;
#else
    return false;
#endif

Your variable name might vary. I like adding value through the naming, going a little beyond variable name just repeating what the function call says.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767494</commentid>
    <comment_count>13</comment_count>
      <attachid>430764</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-06-07 11:29:39 -0700</bug_when>
    <thetext>Created attachment 430764
Patch for landing

Tweak allowsLegacyExpandoIndexedProperties() per Darin&apos;s suggestion and add a comment to the Cocoa half.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767611</commentid>
    <comment_count>14</comment_count>
      <attachid>430764</attachid>
    <who name="Alexey Shvayka">ashvayka</who>
    <bug_when>2021-06-07 17:35:42 -0700</bug_when>
    <thetext>Comment on attachment 430764
Patch for landing

(In reply to Darin Adler from comment #12)

Thank you for review!

&gt; Your variable name might vary. I like adding value through the naming, going
&gt; a little beyond variable name just repeating what the function call says.

&quot;requiresQuirk&quot; seems to be a nice name that doesn&apos;t duplicate &quot;allowsLegacyExpandoIndexedProperties&quot; nor &quot;linkedOnOrAfter&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1767620</commentid>
    <comment_count>15</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-07 18:10:31 -0700</bug_when>
    <thetext>Committed r278585 (238575@main): &lt;https://commits.webkit.org/238575@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 430764.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>428887</attachid>
            <date>2021-05-17 16:21:53 -0700</date>
            <delta_ts>2021-05-19 10:37:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225894-20210518022151.patch</filename>
            <type>text/plain</type>
            <size>15281</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NTQwKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTE3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvVHlwZUVycm9yLmg6CisgICAgICAgIChKU0M6OnR5
cGVFcnJvcik6CisKIDIwMjEtMDUtMTQgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBEcm9wIEZpbGVTeXN0ZW06OmZpbGVNZXRhZGF0YSgpIC8gZmlsZU1ldGFkYXRh
Rm9sbG93aW5nU3ltbGlua3MoKQpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZUVycm9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUv
VHlwZUVycm9yLmgJKHJldmlzaW9uIDI3NzU0MCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL1R5cGVFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw4IEBACiAKIG5h
bWVzcGFjZSBKU0MgewogCi1pbmxpbmUgYm9vbCB0eXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGds
b2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGJvb2wgdGhyb3dFeGNlcHRpb24sIEFTQ0lJ
TGl0ZXJhbCBtZXNzYWdlKQordGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4KK2lubGluZSBib29s
IHR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29w
ZSwgYm9vbCB0aHJvd0V4Y2VwdGlvbiwgTWVzc2FnZSBtZXNzYWdlKQogewogICAgIGlmICh0aHJv
d0V4Y2VwdGlvbikKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwg
bWVzc2FnZSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzc1NDApCisrKyBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwzNCBAQAorMjAyMS0wNS0x
NyAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgV2lu
ZG93IHNob3VsZCBiZWhhdmUgbGlrZSBhIGxlZ2FjeSBwbGF0Zm9ybSBvYmplY3Qgd2l0aG91dCBp
bmRleGVkIHNldHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjI1ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhbGlnbnMgV2luZG93UHJveHkncyBbW0RlZmluZU93blByb3BlcnR5
XV0gYW5kIFtbRGVsZXRlXV0gbWV0aG9kcyB3aXRoIHRoZQorICAgICAgICBzcGVjIFsxXVsyXSwg
ZW5zdXJpbmcgVHlwZUVycm9yIGlzIHRocm93biBvbmx5IGlmIG5lY2Vzc2FyeSBhbmQgYGRlbGV0
ZWAgaXMgbm90IGNhY2hlZC4KKworICAgICAgICBBcyBmb3IgW1tTZXRdXSwgY3VycmVudCBzcGVj
IFszXSBzZWVtcyB0byBhbGxvdyBpbnZva2luZyBzZXR0ZXJzIGluIHByb3RvdHlwZSBjaGFpbi4K
KyAgICAgICAgSG93ZXZlciwgQmxpbmsgYW5kIEdlY2tvIGltcGxlbWVudCBzdHJpY3RlciBzZW1h
bnRpY3MgYnkgZmFpbGluZyBlYXJseSBpbnN0ZWFkIG9mCisgICAgICAgIHRyYXZlcnNpbmcgcHJv
dG90eXBlIGNoYWluLiBUaGlzIGNoYW5nZSBhbGlnbnMgV2ViS2l0IHdpdGggdGhlbSByYXRoZXIg
dGhhbiB0aGUgc3BlYy4KKworICAgICAgICBbMV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvd2luZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWRlZmluZW93bnByb3Bl
cnR5IChzdGVwIDIuMSkKKyAgICAgICAgWzJdIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcv
bXVsdGlwYWdlL3dpbmRvdy1vYmplY3QuaHRtbCN3aW5kb3dwcm94eS1kZWxldGUgKHN0ZXAgMi4x
KQorICAgICAgICBbM10gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2lu
ZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LXNldCAoc3RlcCAzKQorCisgICAgICAgIFRlc3Rz
OiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRv
dy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy5odG1sCisgICAgICAgICAgICAgICBp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1v
YmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QuaHRtbAorCisgICAgICAgICog
YmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjptYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiBi
aW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmg6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6
OnB1dCk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0QnlJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVydHkpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5QnlJbmRleCk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvdzo6ZGVmaW5lT3duUHJvcGVydHkpOgorCiAyMDIxLTA1LTE1ICBBbGFu
IEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBbTEZDXSBNb3ZlIEJsb2NrTWFy
Z2luQ29sbGFwc2UgdG8gaXRzIG93biBjbGFzcwpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAJKHJldmlzaW9uIDI3
NzU0MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxp
bmcuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yODAsNiArMjgwLDExIEBAIFN0cmluZyBtYWtlVGhp
c1R5cGVFcnJvck1lc3NhZ2UoY29uc3QgY2gKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ2FuIG9u
bHkgY2FsbCAiLCBpbnRlcmZhY2VOYW1lLCAnLicsIGZ1bmN0aW9uTmFtZSwgIiBvbiBpbnN0YW5j
ZXMgb2YgIiwgaW50ZXJmYWNlTmFtZSk7CiB9CiAKK1N0cmluZyBtYWtlVW5zdXBwb3J0ZWRJbmRl
eGVkU2V0dGVyRXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpCit7CisgICAg
cmV0dXJuIG1ha2VTdHJpbmcoIkZhaWxlZCB0byBzZXQgYW4gaW5kZXhlZCBwcm9wZXJ0eSBvbiAi
LCBpbnRlcmZhY2VOYW1lLCAiOiBJbmRleGVkIHByb3BlcnR5IHNldHRlciBpcyBub3Qgc3VwcG9y
dGVkLiIpOworfQorCiBFbmNvZGVkSlNWYWx1ZSB0aHJvd1RoaXNUeXBlRXJyb3IoSlNDOjpKU0ds
b2JhbE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwg
Y29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQogewog
ICAgIHJldHVybiB0aHJvd1R5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgbWFr
ZVRoaXNUeXBlRXJyb3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGZ1bmN0aW9uTmFtZSkpOwpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFu
ZGxpbmcuaAkocmV2aXNpb24gMjc3NTQwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01FeGNlcHRpb25IYW5kbGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBA
IFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3cKIEpTQzo6RW5jb2RlZEpT
VmFsdWUgdGhyb3dDb25zdHJ1Y3RvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHRVbmF2YWlsYWJsZUVy
cm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlRocm93U2NvcGUmLCBjb25zdCBjaGFyKiBp
bnRlcmZhY2VOYW1lKTsKIAogU3RyaW5nIG1ha2VUaGlzVHlwZUVycm9yTWVzc2FnZShjb25zdCBj
aGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lKTsKK1N0cmluZyBt
YWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIGludGVy
ZmFjZU5hbWUpOwogCiBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93VGhp
c1R5cGVFcnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAko
cmV2aXNpb24gMjc3NTQwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5k
b3dDdXN0b20uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNjEsMTAgKzI2MSwxMyBAQCBib29sIEpT
RE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsCiAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgfQogCisgICAgaWYgKHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKKyAgICAgICAg
cmV0dXJuIHR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmlj
dE1vZGUoKSwgbWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNldHRlckVycm9yTWVzc2FnZSgiV2luZG93
IikpOworCiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpwdXQodGhpc09iamVj
dCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOwogfQog
Ci1ib29sIEpTRE9NV2luZG93OjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxPYmpl
Y3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBi
b29sIHNob3VsZFRocm93KQorYm9vbCBKU0RPTVdpbmRvdzo6cHV0QnlJbmRleChKU0NlbGwqIGNl
bGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCwgSlNWYWx1
ZSwgYm9vbCBzaG91bGRUaHJvdykKIHsKICAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0
LT52bSgpOwogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihjZWxs
KTsKQEAgLTI3NiwyNSArMjc5LDMxIEBAIGJvb2wgSlNET01XaW5kb3c6OnB1dEJ5SW5kZXgoSlND
ZWxsKiBjZWwKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIH0KICAgICAKLSAgICByZXR1cm4g
QmFzZTo6cHV0QnlJbmRleCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbmRleCwg
dmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gdHlwZUVycm9yKGxleGljYWxHbG9iYWxP
YmplY3QsIHNjb3BlLCBzaG91bGRUaHJvdywgbWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNldHRlckVy
cm9yTWVzc2FnZSgiV2luZG93IikpOwogfQogCiBib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9w
ZXJ0eShKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBEZWxldGVQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgSlNET01XaW5kb3cqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihjZWxsKTsK
KyAgICBhdXRvJiB3aW5kb3cgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCk7CiAgICAgLy8gT25seSBh
bGxvdyBkZWxldGluZyBwcm9wZXJ0aWVzIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4uCi0g
ICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3JhcHBlZCgpLCBUaHJvd1NlY3VyaXR5RXJy
b3IpKQorICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2lu
ZG93KGxleGljYWxHbG9iYWxPYmplY3QsIHdpbmRvdywgVGhyb3dTZWN1cml0eUVycm9yKSkKICAg
ICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChPcHRpb25hbDx1aW50MzJfdD4gaW5kZXggPSBw
YXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgc2xvdC5kaXNhYmxlQ2FjaGluZygp
OworICAgICAgICByZXR1cm4gaW5kZXgudmFsdWUoKSA+PSB3aW5kb3cubGVuZ3RoKCk7CisgICAg
fQogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xv
YmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93Ojpk
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNh
bEdsb2JhbE9iamVjdCwgdW5zaWduZWQgcHJvcGVydHlOYW1lKQogewogICAgIEpTRE9NV2luZG93
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRE9NV2luZG93Kj4oY2VsbCk7CisgICAgYXV0byYgd2lu
ZG93ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpOwogICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpbmcg
cHJvcGVydGllcyBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgotICAgIGlmICghQmluZGlu
Z1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmpl
Y3QsIHRoaXNPYmplY3QtPndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9yKSkKKyAgICBpZiAo
IUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xv
YmFsT2JqZWN0LCB3aW5kb3csIFRocm93U2VjdXJpdHlFcnJvcikpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3Qs
IGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIHByb3BlcnR5
TmFtZSA+PSB3aW5kb3cubGVuZ3RoKCk7CiB9CiAKIHZvaWQgSlNET01XaW5kb3c6OmFuYWx5emVI
ZWFwKEpTQ2VsbCogY2VsbCwgSGVhcEFuYWx5emVyJiBhbmFseXplcikKQEAgLTM4NSwxMiArMzk0
LDE4IEBAIHZvaWQgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoSlMKIAogYm9vbCBK
U0RPTVdpbmRvdzo6ZGVmaW5lT3duUHJvcGVydHkoSlNDOjpKU09iamVjdCogb2JqZWN0LCBKU0M6
OkpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlByb3BlcnR5TmFtZSBw
cm9wZXJ0eU5hbWUsIGNvbnN0IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBi
b29sIHNob3VsZFRocm93KQogeworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZt
KCk7CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgSlNE
T01XaW5kb3cqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwogICAg
IC8vIE9ubHkgYWxsb3cgZGVmaW5pbmcgcHJvcGVydGllcyBpbiB0aGlzIHdheSBieSBmcmFtZXMg
aW4gdGhlIHNhbWUgb3JpZ2luLCBhcyBpdCBhbGxvd3Mgc2V0dGVycyB0byBiZSBpbnRyb2R1Y2Vk
LgogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93
KGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QtPndyYXBwZWQoKSwgVGhyb3dTZWN1cml0
eUVycm9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChwYXJzZUluZGV4KHByb3Bl
cnR5TmFtZSkpCisgICAgICAgIHJldHVybiB0eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwg
c2NvcGUsIHNob3VsZFRocm93LCBtYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNz
YWdlKCJXaW5kb3ciKSk7CisgICAgc2NvcGUucmVsZWFzZSgpOwogCi0gICAgYXV0byYgYnVpbHRp
bk5hbWVzID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPihsZXhpY2FsR2xvYmFsT2JqZWN0
LT52bSgpLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKTsKKyAgICBhdXRvJiBidWlsdGluTmFt
ZXMgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGlu
TmFtZXMoKTsKICAgICBpZiAocHJvcGVydHlOYW1lID09IGJ1aWx0aW5OYW1lcy5kb2N1bWVudFB1
YmxpY05hbWUoKSB8fCBwcm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVzLndpbmRvd1B1YmxpY05h
bWUoKSkKICAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSh0aGlzT2Jq
ZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3Vs
ZFRocm93KTsKIApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NTQwKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMjEtMDUtMTcgIEFsZXhl
eSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFdpbmRvdyBzaG91
bGQgYmVoYXZlIGxpa2UgYSBsZWdhY3kgcGxhdGZvcm0gb2JqZWN0IHdpdGhvdXQgaW5kZXhlZCBz
ZXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NTg5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9kb20vV2luZG93L29ycGhhbmVkLWZyYW1lLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGZh
c3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1z
dGlsbC13cml0YWJsZS1ldmFsLmh0bWw6CisKIDIwMjEtMDUtMTUgIEFudHRpIEtvaXZpc3RvICA8
YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIERvbid0IGFsbG93IDp2aXNpdGVkIGxpbmsgc3R5
bGUgaW4gc3VidHJlZXMgdGhhdCB1c2UgbWl4LWJsZW5kLW1vZGUKSW5kZXg6IExheW91dFRlc3Rz
L2Zhc3QvZG9tL1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3MuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3JwaGFuZWQtZnJhbWUtYWNjZXNzLmh0bWwJ
KHJldmlzaW9uIDI3NzU0MCkKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcnBoYW5l
ZC1mcmFtZS1hY2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgLy8gc2NoZWR1bGUgdG8gcnVuIGFmdGVyIHRo
ZSBmcmFtZSBpcyBudWxsCiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW4udGVzdCB8
fCAncHJvcGVydHk6IEZBSUwgLi4uICcpKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW5bMjBdIHx8ICdhcnJheTogRkFJTCAuLi4g
JykpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKHdpblsyMF0gPT09IHVuZGVmaW5lZCA/ICdhcnJheTogUEFTUyAuLi4gJyA6ICdhcnJh
eTogRkFJTCAuLi4gJykpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHdpbi5Db21tZW50ID8gJ2NvbnN0cnVjdG9yOiBQQVNTIC4uLi4g
JyA6ICdjb25zdHJ1Y3RvcjogRkFJTCAuLi4gJykpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFw
cGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpbi5wb3N0TWVzc2FnZSA/ICdvcGVy
YXRpb246IFBBU1MuJyA6ICdvcGVyYXRpb246IEZBSUwuJykpOwogICAgICAgICBpZiAod2luZG93
LnRlc3RSdW5uZXIpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNo
ZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3Jp
dGFibGUtZXZhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3NzU0MCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1l
eHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBAIE9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogCiBQQVNTICgpID0+IGZvbyBpcyAyCi1QQVNT
ICgpID0+IGdsb2JhbFRoaXNbMF0gaXMgMgorUEFTUyAoKSA9PiBnbG9iYWxUaGlzWzBdIGlzIHVu
ZGVmaW5lZAogUEFTUyBpZnJhbWVDb250ZW50V2luZG93LmZvbyBpcyAyCi1QQVNTIGlmcmFtZUNv
bnRlbnRXaW5kb3dbMF0gaXMgMgorUEFTUyBpZnJhbWVDb250ZW50V2luZG93WzBdIGlzIHVuZGVm
aW5lZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxs
LXdyaXRhYmxlLWV2YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1l
cy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRtbAkocmV2aXNp
b24gMjc3NTQwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdp
bmRvdy1zdGlsbC13cml0YWJsZS1ldmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDEwICsx
NSwxMCBAQAogICAgICAgICBmb28rKzsKICAgICAgICAgZ2xvYmFsVGhpc1swXSsrOwogICAgICAg
ICBzaG91bGRCZSgoKSA9PiBmb28sICIyIik7Ci0gICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2Jh
bFRoaXNbMF0sICIyIik7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0sICJ1
bmRlZmluZWQiKTsKICAgICBgKTsKICAgICBzaG91bGRCZSgiaWZyYW1lQ29udGVudFdpbmRvdy5m
b28iLCAiMiIpOwotICAgIHNob3VsZEJlKCJpZnJhbWVDb250ZW50V2luZG93WzBdIiwgIjIiKTsK
KyAgICBzaG91bGRCZSgiaWZyYW1lQ29udGVudFdpbmRvd1swXSIsICJ1bmRlZmluZWQiKTsKIDwv
c2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NjEyKQorKysgTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDIxLTA1LTE3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNv
bT4KKworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3Jt
IG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ct
b2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0LWV4cGVjdGVkLnR4dDoKKwog
MjAyMS0wNS0xNiAgQ2FtZXJvbiBNY0Nvcm1hY2sgIDxoZXljYW1AYXBwbGUuY29tPgogCiAgICAg
ICAgIE1ha2UgTWF0aE1MIFdQVHMgd2FpdCBmb3IgYWxsIGZvbnQgbG9hZHMKSW5kZXg6IExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUt
d2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI3NzU0MCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5k
b3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3
ICsxLDcgQEAKIAogUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qg
KG5vbi1zdHJpY3QgbW9kZSkKIFBBU1MgRW5zdXJlIGluZGV4ZWQgcHJvcGVydGllcyBoYXZlIHRo
ZSBjb3JyZWN0IGNvbmZpZ3VyYXRpb24KLUZBSUwgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3
aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpIDEgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rp
b24gIigpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIDAsIHsgdmFsdWU6ICJiYXIi
IH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93
IG9iamVjdCAobm9uLXN0cmljdCBtb2RlKSAyIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIo
KSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAxLCB7IHZhbHVlOiAiYmFyIiB9KSIg
ZGlkIG5vdCB0aHJvdworUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmpl
Y3QgKG5vbi1zdHJpY3QgbW9kZSkgMQorUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdp
bmRvdyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkgMgogUEFTUyBJbmRleGVkIHByb3BlcnRpZXMg
b2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkgMwogCkluZGV4OiBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdp
bmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0
aWVzLXN0cmljdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3NzU0MCkKKysrIExheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93
LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTEsMTAgKzEsNiBAQAogCiBQQVNTIEluZGV4ZWQgcHJvcGVydGllcyBv
ZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1vZGUpCi1GQUlMIEluZGV4ZWQgcHJvcGVydGll
cyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1vZGUpIDEgYXNzZXJ0X3Rocm93c19qczog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICB3aW5kb3dbMF0gPSAiZm9vIjsKLSAgfSIgZGlk
IG5vdCB0aHJvdwotRkFJTCBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qg
KHN0cmljdCBtb2RlKSAyIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
Ci0gICAgd2luZG93WzFdID0gImZvbyI7Ci0gIH0iIGRpZCBub3QgdGhyb3cKK1BBU1MgSW5kZXhl
ZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9kZSkgMQorUEFTUyBJ
bmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKHN0cmljdCBtb2RlKSAyCiBQ
QVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1vZGUp
IDMKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>429066</attachid>
            <date>2021-05-19 10:37:45 -0700</date>
            <delta_ts>2021-05-29 07:17:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225894-20210519203744.patch</filename>
            <type>text/plain</type>
            <size>27697</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc3NzI4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTE5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvVHlwZUVycm9yLmg6CisgICAgICAgIChKU0M6OnR5
cGVFcnJvcik6CisKIDIwMjEtMDUtMTkgIE1hcmsgTGFtICA8bWFyay5sYW1AYXBwbGUuY29tPgog
CiAgICAgICAgIFNwZWVkIHVwIGRlYnVnIHZhbGlkYXRpb24gaW4gQ2FjaGVhYmxlSWRlbnRpZmll
cjo6Y3JlYXRlRnJvbUlkZW50aWZpZXJPd25lZEJ5Q29kZUJsb2NrKCkuCkluZGV4OiBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlRXJyb3IuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlRXJyb3IuaAkocmV2aXNpb24gMjc3NzI4KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUVycm9yLmgJKHdvcmtpbmcgY29weSkK
QEAgLTMwLDcgKzMwLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWlubGluZSBib29sIHR5cGVF
cnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgYm9v
bCB0aHJvd0V4Y2VwdGlvbiwgQVNDSUlMaXRlcmFsIG1lc3NhZ2UpCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBNZXNzYWdlPgoraW5saW5lIGJvb2wgdHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBib29sIHRocm93RXhjZXB0aW9uLCBNZXNzYWdlIG1l
c3NhZ2UpCiB7CiAgICAgaWYgKHRocm93RXhjZXB0aW9uKQogICAgICAgICB0aHJvd1R5cGVFcnJv
cihnbG9iYWxPYmplY3QsIHNjb3BlLCBtZXNzYWdlKTsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9u
IDI3NzcyOCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAt
MSwzICsxLDQ0IEBACisyMDIxLTA1LTE5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdt
YWlsLmNvbT4KKworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBs
YXRmb3JtIG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyBtYWpvciBpbnRl
cm9wIGlzc3VlIGJ5IGRpc2FsbG93aW5nIGluZGV4ZWQgZXhwYW5kbyBwcm9wZXJ0aWVzIG9uCisg
ICAgICAgIFdpbmRvd1Byb3h5LCByYWlzaW5nIFR5cGVFcnJvciBvbmx5IGlmIG5lZWRlZCwgd2hp
Y2ggYWxpZ25zIFdlYktpdCB3aXRoIEJsaW5rIGFuZCBHZWNrby4KKworICAgICAgICBXaGlsZSBb
W0RlZmluZU93blByb3BlcnR5XV0gWzFdIGFuZCBbW0RlbGV0ZV1dIFsyXSBtZXRob2RzIG9mIFdp
bmRvd1Byb3h5IGFyZSBpbXBsZW1lbnRlZAorICAgICAgICBwcmVjaXNlbHkgcGVyIHNwZWMsIGN1
cnJlbnQgW1tTZXRdXSBbM10gYWxnb3JpdGhtIHNlZW1zIHRvIGFsbG93IGludm9raW5nIHNldHRl
cnMgZnJvbQorICAgICAgICB0aGUgcHJvdG90eXBlIGNoYWluLiBCbGluayBhbmQgR2Vja28gaW1w
bGVtZW50IHN0cmljdGVyIHNlbWFudGljcyBieSBmYWlsaW5nIGVhcmx5IHJhdGhlcgorICAgICAg
ICB0aGFuIHRyYXZlcnNpbmcgdGhlIHByb3RvdHlwZSBjaGFpbiwgYXMgZG9lcyB0aGlzIHBhdGNo
LgorCisgICAgICAgIFNpbmNlIHVubGlrZSBwdXRCeUluZGV4KCksIGRlbGV0ZVByb3BlcnR5QnlJ
bmRleCgpIG1pZ2h0IGJlIGludm9rZWQgd2l0aCBVSU5UX01BWCwgd2hpY2ggaXMKKyAgICAgICAg
bm90IGFuIGluZGV4IFs0XSwgdGhpcyBjaGFuZ2UgYWRkcyBpc0luZGV4KCkgY2hlY2tzIHRvIGJv
dGggbWV0aG9kcyBmb3IgY29uc2lzdGVuY3kuCisgICAgICAgIEluIGZ1dHVyZSwgSlNDIHdpbGwg
YmUgZml4ZWQgdG8gcmVtb3ZlIFVJTlRfTUFYIGNoZWNrcyBmcm9tIGFsbCBpbmRleGVkIG92ZXJy
aWRlcy4KKworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Q6OmRpc2FibGVDYWNoaW5nKCkgaXMg
bm90IGNhbGxlZCBiZWNhdXNlIGluZGV4ZWQgZGVsZXRlcyBhcmUgbm90IGN1cnJlbnRseQorICAg
ICAgICByZXBhdGNoZWQsIGFuZCBvbmNlIHRoZXkgYXJlLCBjYWNoZWFiaWxpdHkgc2hvdWxkIGJl
IGluZmVycmVkIGZyb20gYWRkZWQgdHlwZSBpbmZvIGZsYWdzLgorCisgICAgICAgIFsxXSBodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwjd2lu
ZG93cHJveHktZGVmaW5lb3ducHJvcGVydHkgKHN0ZXAgMi4xKQorICAgICAgICBbMl0gaHR0cHM6
Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93LW9iamVjdC5odG1sI3dpbmRv
d3Byb3h5LWRlbGV0ZSAoc3RlcCAyLjEpCisgICAgICAgIFszXSBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwjd2luZG93cHJveHktc2V0IChz
dGVwIDMpCisgICAgICAgIFs0XSBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jYXJyYXktaW5kZXgK
KworICAgICAgICBUZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jy
b3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRl
LW5vLWNhY2hlLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9w
ZXJ0aWVzLmh0bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0
aWVzLXN0cmljdC5odG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1ha2VVbnN1cHBvcnRlZEluZGV4ZWRTZXR0
ZXJFcnJvck1lc3NhZ2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFu
ZGxpbmcuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpT
RE9NV2luZG93OjpwdXRCeUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93Ojpk
ZWxldGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGVsZXRlUHJv
cGVydHlCeUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWZpbmVPd25Q
cm9wZXJ0eSk6CisKIDIwMjEtMDUtMTkgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBbSGFyZGVuaW5nXSBDQVJpbmdCdWZmZXIgc2hvdWxkIHZhbGlkYXRlIHRoZSBz
dG9yYWdlIHNpemUgYmVmb3JlIGFkb3B0aW5nIGl0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcAkocmV2aXNpb24g
Mjc3NzI4KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5k
bGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw2ICsyODAsMTEgQEAgU3RyaW5nIG1ha2VU
aGlzVHlwZUVycm9yTWVzc2FnZShjb25zdCBjaAogICAgIHJldHVybiBtYWtlU3RyaW5nKCJDYW4g
b25seSBjYWxsICIsIGludGVyZmFjZU5hbWUsICcuJywgZnVuY3Rpb25OYW1lLCAiIG9uIGluc3Rh
bmNlcyBvZiAiLCBpbnRlcmZhY2VOYW1lKTsKIH0KIAorU3RyaW5nIG1ha2VVbnN1cHBvcnRlZElu
ZGV4ZWRTZXR0ZXJFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSkKK3sKKyAg
ICByZXR1cm4gbWFrZVN0cmluZygiRmFpbGVkIHRvIHNldCBhbiBpbmRleGVkIHByb3BlcnR5IG9u
ICIsIGludGVyZmFjZU5hbWUsICI6IEluZGV4ZWQgcHJvcGVydHkgc2V0dGVyIGlzIG5vdCBzdXBw
b3J0ZWQuIik7Cit9CisKIEVuY29kZWRKU1ZhbHVlIHRocm93VGhpc1R5cGVFcnJvcihKU0M6OkpT
R2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlRocm93U2NvcGUmIHNjb3Bl
LCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpCiB7
CiAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBt
YWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNlTmFtZSwgZnVuY3Rpb25OYW1lKSk7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5oCShyZXZpc2lvbiAyNzc3MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgJKHdvcmtpbmcgY29weSkKQEAgLTU1LDYgKzU1LDcg
QEAgV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvdwogSlNDOjpFbmNvZGVk
SlNWYWx1ZSB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhlY3V0aW9uQ29udGV4dFVuYXZhaWxhYmxl
RXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYsIGNvbnN0IGNoYXIq
IGludGVyZmFjZU5hbWUpOwogCiBTdHJpbmcgbWFrZVRoaXNUeXBlRXJyb3JNZXNzYWdlKGNvbnN0
IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGF0dHJpYnV0ZU5hbWUpOworU3RyaW5n
IG1ha2VVbnN1cHBvcnRlZEluZGV4ZWRTZXR0ZXJFcnJvck1lc3NhZ2UoY29uc3QgY2hhciogaW50
ZXJmYWNlTmFtZSk7CiAKIFdFQkNPUkVfRVhQT1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dU
aGlzVHlwZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3QmLCBKU0M6OlRocm93U2NvcGUmLCBjb25z
dCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFyKiBmdW5jdGlvbk5hbWUpOwogCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
CShyZXZpc2lvbiAyNzc3MjgpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4NSw2ICsyODUsOCBAQCBib29sIEpT
RE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAocGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKQorICAgICAgICByZXR1
cm4gdHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBzbG90LmlzU3RyaWN0TW9k
ZSgpLCBtYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKCJXaW5kb3ciKSk7
CiAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpwdXQodGhpc09iamVjdCwgbGV4
aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOwogfQogCkBAIC0z
MDAsMjQgKzMwMiwzMiBAQCBib29sIEpTRE9NV2luZG93OjpwdXRCeUluZGV4KEpTQ2VsbCogY2Vs
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCisgICAgaWYgKExJS0VMWShpc0lu
ZGV4KGluZGV4KSkpCisgICAgICAgIHJldHVybiB0eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVj
dCwgc2NvcGUsIHNob3VsZFRocm93LCBtYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JN
ZXNzYWdlKCJXaW5kb3ciKSk7CiAgICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgodGhpc09iamVj
dCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAK
IGJvb2wgSlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgSlNHbG9iYWxP
YmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIERl
bGV0ZVByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU0RPTVdpbmRvdyo+KGNlbGwpOworICAgIGF1dG8mIHdpbmRvdyA9IHRoaXNPYmpl
Y3QtPndyYXBwZWQoKTsKICAgICAvLyBPbmx5IGFsbG93IGRlbGV0aW5nIHByb3BlcnRpZXMgYnkg
ZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KLSAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hv
dWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0
LT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcikpCisgICAgaWYgKCFCaW5kaW5nU2VjdXJp
dHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgd2lu
ZG93LCBUaHJvd1NlY3VyaXR5RXJyb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYg
KE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKKyAg
ICAgICAgcmV0dXJuIGluZGV4LnZhbHVlKCkgPj0gd2luZG93Lmxlbmd0aCgpOwogICAgIHJldHVy
biBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0
eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVj
dCwgdW5zaWduZWQgcHJvcGVydHlOYW1lKQogewogICAgIEpTRE9NV2luZG93KiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTRE9NV2luZG93Kj4oY2VsbCk7CisgICAgYXV0byYgd2luZG93ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpOwogICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpbmcgcHJvcGVydGllcyBi
eSBmcmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgotICAgIGlmICghQmluZGluZ1NlY3VyaXR5Ojpz
aG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9yKSkKKyAgICBpZiAoIUJpbmRpbmdTZWN1
cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LCB3
aW5kb3csIFRocm93U2VjdXJpdHlFcnJvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAoTElLRUxZKGlzSW5kZXgocHJvcGVydHlOYW1lKSkpCisgICAgICAgIHJldHVybiBwcm9wZXJ0
eU5hbWUgPj0gd2luZG93Lmxlbmd0aCgpOwogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0
eUJ5SW5kZXgodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsK
IH0KIApAQCAtNDA5LDEyICs0MTksMTggQEAgdm9pZCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhKUwogCiBib29sIEpTRE9NV2luZG93OjpkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkpT
T2JqZWN0KiBvYmplY3QsIEpTQzo6SlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgSlNDOjpQcm9wZXJ0eURlc2Ny
aXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCiB7CisgICAgVk0mIHZtID0gbGV4
aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKKyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRSh2bSk7CisKICAgICBKU0RPTVdpbmRvdyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0RPTVdp
bmRvdyo+KG9iamVjdCk7CiAgICAgLy8gT25seSBhbGxvdyBkZWZpbmluZyBwcm9wZXJ0aWVzIGlu
IHRoaXMgd2F5IGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmlnaW4sIGFzIGl0IGFsbG93cyBzZXR0
ZXJzIHRvIGJlIGludHJvZHVjZWQuCiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3Jh
cHBlZCgpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkKKyAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgc2hvdWxkVGhyb3csIG1ha2VVbnN1cHBvcnRlZElu
ZGV4ZWRTZXR0ZXJFcnJvck1lc3NhZ2UoIldpbmRvdyIpKTsKKyAgICBzY29wZS5yZWxlYXNlKCk7
CiAKLSAgICBhdXRvJiBidWlsdGluTmFtZXMgPSBzdGF0aWNfY2FzdDxKU1ZNQ2xpZW50RGF0YSo+
KGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCkuY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpOwor
ICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4odm0u
Y2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpOwogICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gYnVp
bHRpbk5hbWVzLmRvY3VtZW50UHVibGljTmFtZSgpIHx8IHByb3BlcnR5TmFtZSA9PSBidWlsdGlu
TmFtZXMud2luZG93UHVibGljTmFtZSgpKQogICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmlu
ZU93blByb3BlcnR5KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFt
ZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogCkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzc3Mjgp
CisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBA
QAorMjAyMS0wNS0xOSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisK
KyAgICAgICAgV2luZG93IHNob3VsZCBiZWhhdmUgbGlrZSBhIGxlZ2FjeSBwbGF0Zm9ybSBvYmpl
Y3Qgd2l0aG91dCBpbmRleGVkIHNldHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvb3JwaGFuZWQtZnJhbWUtYWNjZXNz
Lmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGls
bC13cml0YWJsZS1ldmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2ZyYW1lcy9pZnJh
bWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRtbDoKKyAgICAgICAgKiBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1kZWxldGUtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlm
cmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbDoKKyAgICAgICAgKiBqcy9kb20vZGZnLWVuc3VyZS1h
cnJheS1zdG9yYWdlLW9uLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL2lu
ZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpz
L2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVuc3VyZS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy5qczoK
KyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUtbm9uLWFycmF5LWFycmF5
LXN0b3JhZ2Utb24td2luZG93LmpzOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvaW5k
ZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5qczoKKwogMjAyMS0wNS0xOSAgSmVyIE5vYmxl
ICA8amVyLm5vYmxlQGFwcGxlLmNvbT4KIAogICAgICAgICBbTWFjXSBNU0UtYmFzZWQgdmlkZW8g
cGF1c2VzIHdoZW4gcHV0IGluIGJhY2tncm91bmQ7IFBpUCBjb250ZXh0IG1lbnUgZGlzYWJsZWQK
SW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3Mu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3JwaGFuZWQt
ZnJhbWUtYWNjZXNzLmh0bWwJKHJldmlzaW9uIDI3NzcyOCkKKysrIExheW91dFRlc3RzL2Zhc3Qv
ZG9tL1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
MTcsNyArMTcsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiAgICAgLy8gc2NoZWR1
bGUgdG8gcnVuIGFmdGVyIHRoZSBmcmFtZSBpcyBudWxsCiAgICAgc2V0VGltZW91dChmdW5jdGlv
bigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZSh3aW4udGVzdCB8fCAncHJvcGVydHk6IEZBSUwgLi4uICcpKTsKLSAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW5bMjBdIHx8
ICdhcnJheTogRkFJTCAuLi4gJykpOworICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpblsyMF0gPT09IHVuZGVmaW5lZCA/ICdhcnJheTog
UEFTUyAuLi4gJyA6ICdhcnJheTogRkFJTCAuLi4gJykpOwogICAgICAgICBkb2N1bWVudC5ib2R5
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpbi5Db21tZW50ID8gJ2NvbnN0
cnVjdG9yOiBQQVNTIC4uLi4gJyA6ICdjb25zdHJ1Y3RvcjogRkFJTCAuLi4gJykpOwogICAgICAg
ICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpbi5w
b3N0TWVzc2FnZSA/ICdvcGVyYXRpb246IFBBU1MuJyA6ICdvcGVyYXRpb246IEZBSUwuJykpOwog
ICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2Zy
YW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hl
ZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3Nzcy
OCkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3Rp
bGwtd3JpdGFibGUtZXZhbC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5
IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogCiBQQVNTICgp
ID0+IGZvbyBpcyAyCi1QQVNTICgpID0+IGdsb2JhbFRoaXNbMF0gaXMgMgorUEFTUyAoKSA9PiBn
bG9iYWxUaGlzWzBdIGlzIHVuZGVmaW5lZAogUEFTUyBpZnJhbWVDb250ZW50V2luZG93LmZvbyBp
cyAyCi1QQVNTIGlmcmFtZUNvbnRlbnRXaW5kb3dbMF0gaXMgMgorUEFTUyBpZnJhbWVDb250ZW50
V2luZG93WzBdIGlzIHVuZGVmaW5lZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0
YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxl
LWV2YWwuaHRtbAkocmV2aXNpb24gMjc3NzI4KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
aWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGlsbC13cml0YWJsZS1ldmFsLmh0bWwJKHdvcmtpbmcg
Y29weSkKQEAgLTE1LDEwICsxNSwxMCBAQAogICAgICAgICBmb28rKzsKICAgICAgICAgZ2xvYmFs
VGhpc1swXSsrOwogICAgICAgICBzaG91bGRCZSgoKSA9PiBmb28sICIyIik7Ci0gICAgICAgIHNo
b3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0sICIyIik7CisgICAgICAgIHNob3VsZEJlKCgpID0+
IGdsb2JhbFRoaXNbMF0sICJ1bmRlZmluZWQiKTsKICAgICBgKTsKICAgICBzaG91bGRCZSgiaWZy
YW1lQ29udGVudFdpbmRvdy5mb28iLCAiMiIpOwotICAgIHNob3VsZEJlKCJpZnJhbWVDb250ZW50
V2luZG93WzBdIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiaWZyYW1lQ29udGVudFdpbmRvd1swXSIs
ICJ1bmRlZmluZWQiKTsKIDwvc2NyaXB0PgogPC9ib2R5PgogPC9odG1sPgpcIE5vIG5ld2xpbmUg
YXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jv
c3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjc3NzI4KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5
KQpAQCAtMjIsNyArMjIsNyBAQCBGcmFtZTogJzwhLS1mcmFtZTEtLT4nCiAtLS0tLSB0ZXN0cyBm
b3IgZGVsZXRpbmcgdGhlIHByb3BlcnRpZXMgb2Ygd2luZG93LCB3aW5kb3cuaGlzdG9yeSwgYW5k
IHdpbmRvdy5sb2NhdGlvbiBjcm9zcy1kb21haW4gLS0tLS0KIAogUEFTUzogd2luZG93LmV4aXN0
aW5nUHJvcGVydHkgc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQgaXMuCi1QQVNTOiB3aW5kb3db
MV0gc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQgaXMuCitQQVNTOiB3aW5kb3dbMV0gc2hvdWxk
IGJlICd1bmRlZmluZWQnIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5oaXN0b3J5LmV4aXN0aW5nUHJv
cGVydHkgc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuaGlzdG9y
eVsxXSBzaG91bGQgYmUgJ3Rlc3QgdmFsdWUnIGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5sb2NhdGlv
bi5leGlzdGluZ1Byb3BlcnR5IHNob3VsZCBiZSAndGVzdCB2YWx1ZScgYW5kIGlzLgpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZy
YW1lLWZvci1kZWxldGUtdGVzdC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZGVsZXRlLXRl
c3QuaHRtbAkocmV2aXNpb24gMjc3NzI4KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAgICAgICAgICAgICBsb2coIlxuLS0tLS0g
dGVzdHMgZm9yIGRlbGV0aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHdpbmRvdywgd2luZG93Lmhpc3Rv
cnksIGFuZCB3aW5kb3cubG9jYXRpb24gY3Jvc3MtZG9tYWluIC0tLS0tXG4iKTsKIAogICAgICAg
ICAgICAgc2hvdWxkQmUoIndpbmRvdy5leGlzdGluZ1Byb3BlcnR5IiwgIid0ZXN0IHZhbHVlJyIp
OwotICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvd1sxXSIsICIndGVzdCB2YWx1ZSciKTsKKyAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3dbMV0iLCAidW5kZWZpbmVkIik7CiAgICAgICAgICAg
ICBzaG91bGRCZSgid2luZG93Lmhpc3RvcnkuZXhpc3RpbmdQcm9wZXJ0eSIsICIndGVzdCB2YWx1
ZSciKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cuaGlzdG9yeVsxXSIsICIndGVzdCB2
YWx1ZSciKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cubG9jYXRpb24uZXhpc3RpbmdQ
cm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwkocmV2aXNpb24gMjc3NzI4KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDIxLTA1LTE5ICBBbGV4ZXkg
U2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBXaW5kb3cgc2hvdWxk
IGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0
dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4
OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1p
bmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisg
ICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmpl
Y3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUtbm8tY2FjaGUuaHRtbDogQWRkZWQu
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1v
YmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93
LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRl
eGVkLXByb3BlcnRpZXMtc3RyaWN0Lmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGll
cy5odG1sOgorCiAyMDIxLTA1LTE5ICBSb2IgQnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTk2NApJbmRl
eDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5v
LWNhY2hlLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2lu
ZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUtbm8tY2FjaGUtZXhwZWN0ZWQudHh0CShub25l
eGlzdGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVz
LWRlbGV0ZS1uby1jYWNoZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw0
IEBACisKK1BBU1MgQWJzZW5jZSBvZiBpbmRleCAnMCcgaXMgbm90IGNhY2hlZAorUEFTUyBQcmVz
ZW5jZSBvZiBpbmRleCAnMCcgaXMgbm90IGNhY2hlZAorCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmpl
Y3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUtbm8tY2FjaGUuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxl
dGUtbm8tY2FjaGUuaHRtbAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2lu
ZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUtbm8tY2FjaGUuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtMCwwICsxLDMxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8dGl0bGU+RGVsZXRpb24gb2YgV2luZG93UHJveHkncyBpbmRleGVkIHByb3BlcnRpZXMgaXMg
bm90IGNhY2hlZDwvdGl0bGU+Cis8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dpbmRvdy1vYmplY3QuaHRtbCN3aW5kb3dwcm94eS1k
ZWxldGUiPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0
PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0
PgorPGRpdiBpZD1sb2c+PC9kaXY+Cis8c2NyaXB0PgorY29uc3QgaWZyYW1lID0gZG9jdW1lbnQu
Y3JlYXRlRWxlbWVudCgiaWZyYW1lIik7CitpZnJhbWUuc3JjZG9jID0gIiI7CisKK3Rlc3QoKCkg
PT4geworICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5sZW5ndGgsIDApOworICBmb3IgKGxldCBpID0g
MDsgaSA8IDFlNTsgaSsrKSB7CisgICAgYXNzZXJ0X3RydWUoZGVsZXRlIHdpbmRvd1swXSk7Cisg
IH0KKworICBkb2N1bWVudC5ib2R5LmFwcGVuZChpZnJhbWUpOworICBhc3NlcnRfZmFsc2UoZGVs
ZXRlIHdpbmRvd1swXSk7Cit9LCAiQWJzZW5jZSBvZiBpbmRleCAnMCcgaXMgbm90IGNhY2hlZCIp
OworCit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3cubGVuZ3RoLCAxKTsKKyAg
Zm9yIChsZXQgaSA9IDA7IGkgPCAxZTU7IGkrKykgeworICAgIGFzc2VydF9mYWxzZShkZWxldGUg
d2luZG93WzBdKTsKKyAgfQorCisgIGlmcmFtZS5yZW1vdmUoKTsKKyAgYXNzZXJ0X3RydWUoZGVs
ZXRlIHdpbmRvd1swXSk7Cit9LCAiUHJlc2VuY2Ugb2YgaW5kZXggJzAnIGlzIG5vdCBjYWNoZWQi
KTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXBy
b3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93
aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc3NzI4KQor
KysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDcgKzEsOSBAQAogCiBQQVNTIEluZGV4ZWQgcHJvcGVy
dGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBtb2RlKQogUEFTUyBFbnN1cmUg
aW5kZXhlZCBwcm9wZXJ0aWVzIGhhdmUgdGhlIGNvcnJlY3QgY29uZmlndXJhdGlvbgotRkFJTCBJ
bmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkg
MSBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5
KHdpbmRvdywgMCwgeyB2YWx1ZTogImJhciIgfSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgSW5kZXhl
ZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpIDIgYXNz
ZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5k
b3csIDEsIHsgdmFsdWU6ICJiYXIiIH0pIiBkaWQgbm90IHRocm93CitQQVNTIEluZGV4ZWQgcHJv
cGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBtb2RlKSAxCitQQVNTIElu
ZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBtb2RlKSAy
CitQQVNTIEJvcmRlcmxpbmUgbnVtZXJpYyBrZXk6IDIgKiogMzIgLSAyIGlzIGFuIGluZGV4CitQ
QVNTIEJvcmRlcmxpbmUgbnVtZXJpYyBrZXk6IDIgKiogMzIgLSAxIGlzIG5vdCBhbiBpbmRleAog
UEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJpY3Qg
bW9kZSkgMwogCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVy
dGllcy1zdHJpY3QtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVj
dC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDI3NzcyOCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVz
LXN0cmljdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsMTAgKzEsOCBAQAogCiBQ
QVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1vZGUp
Ci1GQUlMIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1v
ZGUpIDEgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICB3aW5k
b3dbMF0gPSAiZm9vIjsKLSAgfSIgZGlkIG5vdCB0aHJvdwotRkFJTCBJbmRleGVkIHByb3BlcnRp
ZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKHN0cmljdCBtb2RlKSAyIGFzc2VydF90aHJvd3NfanM6
IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7Ci0gICAgd2luZG93WzFdID0gImZvbyI7Ci0gIH0iIGRp
ZCBub3QgdGhyb3cKK1BBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0
IChzdHJpY3QgbW9kZSkgMQorUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBv
YmplY3QgKHN0cmljdCBtb2RlKSAyCitQQVNTIEJvcmRlcmxpbmUgbnVtZXJpYyBrZXk6IDIgKiog
MzIgLSAyIGlzIGFuIGluZGV4IChzdHJpY3QgbW9kZSkKK1BBU1MgQm9yZGVybGluZSBudW1lcmlj
IGtleTogMiAqKiAzMiAtIDEgaXMgbm90IGFuIGluZGV4IChzdHJpY3QgbW9kZSkKIFBBU1MgSW5k
ZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9kZSkgMwogCklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3Qu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJv
cGVydGllcy1zdHJpY3QuaHRtbAkocmV2aXNpb24gMjc3NzI4KQorKysgTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2Jq
ZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0Lmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQ0LDYgKzQ0LDI5IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiB9KTsKIHRlc3QoZnVuY3Rpb24o
KSB7CiAgICJ1c2Ugc3RyaWN0IjsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+
IHsgd2luZG93WzQyOTQ5NjcyOTRdID0gMTsgfSk7CisgIGFzc2VydF9mYWxzZShSZWZsZWN0LnNl
dCh3aW5kb3csIDQyOTQ5NjcyOTQsIDIpKTsKKyAgYXNzZXJ0X2ZhbHNlKFJlZmxlY3QuZGVmaW5l
UHJvcGVydHkod2luZG93LCA0Mjk0OTY3Mjk0LCB7IHZhbHVlOiAzIH0pKTsKKyAgYXNzZXJ0X3Ro
cm93c19qcyhUeXBlRXJyb3IsICgpID0+IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIDQy
OTQ5NjcyOTQsIHsgZ2V0OiAoKSA9PiA0IH0pKTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5
NDk2NzI5NF0sIHVuZGVmaW5lZCk7CisgIGFzc2VydF9mYWxzZSg0Mjk0OTY3Mjk0IGluIHdpbmRv
dyk7CisgIGFzc2VydF90cnVlKGRlbGV0ZSB3aW5kb3dbNDI5NDk2NzI5NF0pOworfSwgIkJvcmRl
cmxpbmUgbnVtZXJpYyBrZXk6IDIgKiogMzIgLSAyIGlzIGFuIGluZGV4IChzdHJpY3QgbW9kZSki
KTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICJ1c2Ugc3RyaWN0IjsKKyAgd2luZG93WzQyOTQ5Njcy
OTVdID0gMTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDEpOworICBhc3Nl
cnRfdHJ1ZShSZWZsZWN0LnNldCh3aW5kb3csIDQyOTQ5NjcyOTUsIDIpKTsKKyAgYXNzZXJ0X2Vx
dWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDIpOworICBhc3NlcnRfdHJ1ZShSZWZsZWN0LmRlZmlu
ZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NSwgeyB2YWx1ZTogMyB9KSk7CisgIGFzc2VydF9l
cXVhbHMod2luZG93WzQyOTQ5NjcyOTVdLCAzKTsKKyAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdp
bmRvdywgNDI5NDk2NzI5NSwgeyBnZXQ6ICgpID0+IDQgfSk7CisgIGFzc2VydF9lcXVhbHMod2lu
ZG93WzQyOTQ5NjcyOTVdLCA0KTsKKyAgYXNzZXJ0X3RydWUoZGVsZXRlIHdpbmRvd1s0Mjk0OTY3
Mjk1XSk7CisgIGFzc2VydF9mYWxzZSg0Mjk0OTY3Mjk1IGluIHdpbmRvdyk7Cit9LCAiQm9yZGVy
bGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDEgaXMgbm90IGFuIGluZGV4IChzdHJpY3QgbW9k
ZSkiKTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgICJ1c2Ugc3RyaWN0IjsKICAgdmFyIHByb3RvID0g
V2luZG93LnByb3RvdHlwZTsKICAgWy0xLCAwLCAxXS5mb3JFYWNoKGZ1bmN0aW9uKGlkeCkgewog
ICAgIGFzc2VydF9mYWxzZShpZHggaW4gcHJvdG8sIGlkeCArICIgaW4gcHJvdG8iKTsKSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vy
cy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMuaHRt
bAkocmV2aXNpb24gMjc3NzI4KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVk
LXByb3BlcnRpZXMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDIsNiArNDIsMjcgQEAgdGVzdChm
dW5jdGlvbigpIHsKICAgYXNzZXJ0X2VxdWFscyhkZWxldGUgd2luZG93WzFdLCB0cnVlKTsKIH0p
OwogdGVzdChmdW5jdGlvbigpIHsKKyAgd2luZG93WzQyOTQ5NjcyOTRdID0gMTsKKyAgYXNzZXJ0
X2ZhbHNlKFJlZmxlY3Quc2V0KHdpbmRvdywgNDI5NDk2NzI5NCwgMikpOworICBhc3NlcnRfZmFs
c2UoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIDQyOTQ5NjcyOTQsIHsgdmFsdWU6IDMg
fSkpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gT2JqZWN0LmRlZmluZVBy
b3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NCwgeyBnZXQ6ICgpID0+IDQgfSkpOworICBhc3NlcnRf
ZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk0XSwgdW5kZWZpbmVkKTsKKyAgYXNzZXJ0X2ZhbHNlKDQy
OTQ5NjcyOTQgaW4gd2luZG93KTsKKyAgYXNzZXJ0X3RydWUoZGVsZXRlIHdpbmRvd1s0Mjk0OTY3
Mjk0XSk7Cit9LCAiQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDIgaXMgYW4gaW5k
ZXgiKTsKK3Rlc3QoZnVuY3Rpb24oKSB7CisgIHdpbmRvd1s0Mjk0OTY3Mjk1XSA9IDE7CisgIGFz
c2VydF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTVdLCAxKTsKKyAgYXNzZXJ0X3RydWUoUmVmbGVj
dC5zZXQod2luZG93LCA0Mjk0OTY3Mjk1LCAyKSk7CisgIGFzc2VydF9lcXVhbHMod2luZG93WzQy
OTQ5NjcyOTVdLCAyKTsKKyAgYXNzZXJ0X3RydWUoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5k
b3csIDQyOTQ5NjcyOTUsIHsgdmFsdWU6IDMgfSkpOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0
Mjk0OTY3Mjk1XSwgMyk7CisgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIDQyOTQ5Njcy
OTUsIHsgZ2V0OiAoKSA9PiA0IH0pOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1
XSwgNCk7CisgIGFzc2VydF90cnVlKGRlbGV0ZSB3aW5kb3dbNDI5NDk2NzI5NV0pOworICBhc3Nl
cnRfZmFsc2UoNDI5NDk2NzI5NSBpbiB3aW5kb3cpOworfSwgIkJvcmRlcmxpbmUgbnVtZXJpYyBr
ZXk6IDIgKiogMzIgLSAxIGlzIG5vdCBhbiBpbmRleCIpOwordGVzdChmdW5jdGlvbigpIHsKICAg
dmFyIHByb3RvID0gV2luZG93LnByb3RvdHlwZTsKICAgWy0xLCAwLCAxXS5mb3JFYWNoKGZ1bmN0
aW9uKGlkeCkgewogICAgIGFzc2VydF9mYWxzZShpZHggaW4gcHJvdG8sIGlkeCArICIgaW4gcHJv
dG8iKTsKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Ut
b24td2luZG93LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20v
ZGZnLWVuc3VyZS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDI3NzcyOCkKKysrIExheW91dFRlc3RzL2pzL2RvbS9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Ut
b24td2luZG93LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDcgQEAgVGVz
dHMgdGhhdCBwYXNzaW5nIHRoZSBnbG9iYWwgb2JqZWN0IHRvIAogT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgogCiAKLVBBU1MgZm9vKHcpIGlzIDEKK1BBU1MgZm9vKHcpIGlzIE5hTgogUEFTUyBz
dWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9kb20vaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2Jh
bC1vYmplY3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzc3MjgpCisrKyBMYXlvdXRUZXN0cy9q
cy9kb20vaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTMsNyArMyw4IEBAIFRlc3RzIHRoYXQgY3JlYXRpbmcgYW4gaW5kZXhlZCBz
ZXR0ZXIgb24KIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIHRoaW5neSBpcyAi
Zm9vIgorUEFTUyB0aGlzLl9fZGVmaW5lU2V0dGVyX18oNDIsIGZ1bmN0aW9uKCkge30pIHRocmV3
IGV4Y2VwdGlvbiBUeXBlRXJyb3I6IEZhaWxlZCB0byBzZXQgYW4gaW5kZXhlZCBwcm9wZXJ0eSBv
biBXaW5kb3c6IEluZGV4ZWQgcHJvcGVydHkgc2V0dGVyIGlzIG5vdCBzdXBwb3J0ZWQuLgorUEFT
UyB0aGlzWzQyXSBpcyB1bmRlZmluZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
IAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9k
ZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVuc3VyZS1hcnJheS1zdG9yYWdlLW9uLXdp
bmRvdy5qcwkocmV2aXNpb24gMjc3NzI4KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10
ZXN0cy9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzCSh3b3JraW5nIGNvcHkp
CkBAIC0yMyw0ICsyMyw0IEBAIHdoaWxlICghZGZnQ29tcGlsZWQoe2Y6Zm9vLCBjb21waWxlczoy
fSkKIHZhciB3ID0gdGhpczsKIHdbMF0gPSAxOwogdy5sZW5ndGggPSAxOwotc2hvdWxkQmUoImZv
byh3KSIsICIxIik7CitzaG91bGRCZSgiZm9vKHcpIiwgIk5hTiIpOwpJbmRleDogTGF5b3V0VGVz
dHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kZmctZW5zdXJlLW5vbi1hcnJheS1hcnJheS1zdG9yYWdl
LW9uLXdpbmRvdy5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2RmZy1lbnN1cmUtbm9uLWFycmF5LWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzCShyZXZp
c2lvbiAyNzc3MjgpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1
cmUtbm9uLWFycmF5LWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzCSh3b3JraW5nIGNvcHkpCkBA
IC01MSwxMCArNTEsOCBAQCBmb3IgKHZhciBpID0gMDsgaSA8IDEwMDA7IGkgPSBkZmdJbmNyZW1l
CiB2YXIgdyA9IHRoaXM7CiB3WzBdID0gMTsKIHcubGVuZ3RoID0gMTsKLXZhciB0aGluZ3kgPSBm
YWxzZTsKLXcuX19kZWZpbmVTZXR0ZXJfXygxLCBmdW5jdGlvbih2YWx1ZSkgeyB0aGluZ3kgPSB2
YWx1ZTsgfSk7Ci1zaG91bGRCZSgiZm9vKHcpIiwgIjEiKTsKLXNob3VsZEJlKCJ0aGluZ3kiLCAi
ZmFsc2UiKTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJ3Ll9fZGVmaW5lU2V0dGVyX18oMSwgZnVu
Y3Rpb24oKSB7fSkiLCAiVHlwZUVycm9yIik7CitzaG91bGRCZSgiZm9vKHcpIiwgIk5hTiIpOwog
CiAvLyBBdCB0aGlzIHBvaW50IHdlIGNoZWNrIHRvIG1ha2Ugc3VyZSB0aGF0IGJhciBkb2Vzbid0
IGVuZCB1cCBlaXRoZXIgY3JlYXRpbmcgYXJyYXkgc3RvcmFnZSBmb3IKIC8vIHRoZSB3aW5kb3cg
cHJveHksIG9yIGVxdWFsbHkgYmFkbHksIHN0b3JpbmcgdG8gdGhlIGFscmVhZHkgY3JlYXRlZCBh
cnJheSBzdG9yYWdlIG9uIHRoZSBwcm94eQpAQCAtNjIsOCArNjAsNyBAQCBzaG91bGRCZSgidGhp
bmd5IiwgImZhbHNlIik7CiAvLyB0aGluZ3ksIHRvIGRldGVjdCB0aGF0IGZvciBpbmRleCAxIHdl
IGZhbGwgdGhyb3VnaCB0aGUgcHJveHkgdG8gdGhlIHJlYWwgd2luZG93IG9iamVjdC4KIGJhcih3
KTsKIAotc2hvdWxkQmUoInRoaW5neSIsICI0MiIpOwotc2hvdWxkQmUoImZvbyh3KSIsICIxIik7
CiB3Lmxlbmd0aCA9IDI7Ci1zaG91bGRCZSgiZm9vKHcpIiwgIjAvMCIpOworc2hvdWxkQmUoIndb
MV0iLCAiIik7CitzaG91bGRCZSgiZm9vKHcpIiwgIk5hTiIpOwogCkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QuanMK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9pbmRleGVkLXNl
dHRlci1vbi1nbG9iYWwtb2JqZWN0LmpzCShyZXZpc2lvbiAyNzc3MjgpCisrKyBMYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QuanMJ
KHdvcmtpbmcgY29weSkKQEAgLTIsMTMgKzIsOSBAQCBkZXNjcmlwdGlvbigKICJUZXN0cyB0aGF0
IGNyZWF0aW5nIGFuIGluZGV4ZWQgc2V0dGVyIG9uIHRoZSBnbG9iYWwgb2JqZWN0IGRvZXNuJ3Qg
YnJlYWsgdGhpbmdzLiIKICk7CiAKLXZhciB0aGluZ3k7Ci0KLXRoaXMuX19kZWZpbmVTZXR0ZXJf
Xyg0MiwgZnVuY3Rpb24odmFsdWUpIHsKLSAgICB0aGluZ3kgPSB2YWx1ZTsKLX0pOworc2hvdWxk
VGhyb3dFcnJvck5hbWUoInRoaXMuX19kZWZpbmVTZXR0ZXJfXyg0MiwgZnVuY3Rpb24oKSB7fSki
LCAiVHlwZUVycm9yIik7CiAKIHRoaXNbNDJdID0gImZvbyI7CiAKLXNob3VsZEJlKCJ0aGluZ3ki
LCAiXCJmb29cIiIpOworc2hvdWxkQmUoInRoaXNbNDJdIiwgInVuZGVmaW5lZCIpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430091</attachid>
            <date>2021-05-29 07:17:52 -0700</date>
            <delta_ts>2021-05-29 07:48:24 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225894-20210529171750.patch</filename>
            <type>text/plain</type>
            <size>36086</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvVHlwZUVycm9yLmg6CisgICAgICAgIChKU0M6OnR5
cGVFcnJvcik6CisKIDIwMjEtMDUtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBTdG9wIHVzaW5nIFVuY2hlY2tlZExvY2sgaW4gV1RGOjpNZXRhQWxsb2NhdG9y
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlRXJyb3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlRXJyb3IuaAkocmV2aXNp
b24gMjc4MjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUVycm9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWlu
bGluZSBib29sIHR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Nj
b3BlJiBzY29wZSwgYm9vbCB0aHJvd0V4Y2VwdGlvbiwgQVNDSUlMaXRlcmFsIG1lc3NhZ2UpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdlPgoraW5saW5lIGJvb2wgdHlwZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBib29sIHRocm93RXhjZXB0
aW9uLCBNZXNzYWdlIG1lc3NhZ2UpCiB7CiAgICAgaWYgKHRocm93RXhjZXB0aW9uKQogICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBtZXNzYWdlKTsKSW5kZXg6IFNv
dXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNzgyMzMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5
IHBsYXRmb3JtIG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGlzUnVubmluZ1Rlc3QoKSB0byBX
VEYgc28gaXQgY2FuIGJlIHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHd0Zi9jb2NvYS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHA6CisgICAgICAgIChXVEY6OmlzUnVubmlu
Z1Rlc3QpOgorICAgICAgICAqIHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2Nv
YS5oOgorCiAyMDIxLTA1LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgU3RvcCB1c2luZyBVbmNoZWNrZWRMb2NrIGluIFdURjo6TWV0YUFsbG9jYXRvcgpJbmRl
eDogU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLmNwcAkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNlL1dURi93dGYvY29jb2Ev
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdURiB7CiAKQEAgLTQ5LDQgKzUwLDkgQEAgdWludDMyX3QgYXBwbGljYXRpb25TREtWZXJz
aW9uKCkKICAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOwogfQogCiti
b29sIGlzUnVubmluZ1Rlc3QoY29uc3QgU3RyaW5nJiBidW5kbGVJRCkKK3sKKyAgICByZXR1cm4g
YnVuZGxlSUQgPT0gImNvbS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSSJfcyB8fCBidW5kbGVJ
RCA9PSAiY29tLmFwcGxlLldlYktpdC5XZWJLaXRUZXN0UnVubmVyIl9zIHx8IGJ1bmRsZUlEID09
ICJvcmcud2Via2l0LldlYktpdFRlc3RSdW5uZXJBcHAiX3M7Cit9CisKIH0KSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
aAkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzQ29jb2EuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCArMzYsMTAgQEAgbmFt
ZXNwYWNlIFdURiB7CiAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIGhvb2tlZCB1cCB0byBnaXZlIHlv
dSB0aGUgcmlnaHQgYW5zd2VyLgogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0QXBwbGljYXRp
b25TREtWZXJzaW9uKHVpbnQzMl90KTsKIFdURl9FWFBPUlRfUFJJVkFURSB1aW50MzJfdCBhcHBs
aWNhdGlvblNES1ZlcnNpb24oKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGlzUnVubmluZ1Rl
c3QoY29uc3QgU3RyaW5nJiBidW5kbGVJRCk7CiAKIH0KIAogdXNpbmcgV1RGOjpzZXRBcHBsaWNh
dGlvblNES1ZlcnNpb247CiB1c2luZyBXVEY6OmFwcGxpY2F0aW9uU0RLVmVyc2lvbjsKK3VzaW5n
IFdURjo6aXNSdW5uaW5nVGVzdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODIzMykKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyBtYWpvciBpbnRlcm9wIGlzc3VlIGJ5
IGRpc2FsbG93aW5nIGV4cGFuZG8gaW5kZXhlZCBwcm9wZXJ0aWVzIG9uCisgICAgICAgIFdpbmRv
d1Byb3h5LCByYWlzaW5nIFR5cGVFcnJvciBvbmx5IGlmIG5lZWRlZCwgd2hpY2ggYWxpZ25zIFdl
YktpdCB3aXRoIEJsaW5rIGFuZCBHZWNrby4KKworICAgICAgICBXaGlsZSBbW0RlZmluZU93blBy
b3BlcnR5XV0gWzFdIGFuZCBbW0RlbGV0ZV1dIFsyXSBtZXRob2RzIG9mIFdpbmRvd1Byb3h5IGFy
ZSBpbXBsZW1lbnRlZAorICAgICAgICBwcmVjaXNlbHkgcGVyIHNwZWMsIGN1cnJlbnQgW1tTZXRd
XSBbM10gYWxnb3JpdGhtIHNlZW1zIHRvIGFsbG93IGludm9raW5nIHNldHRlcnMgZnJvbQorICAg
ICAgICB0aGUgcHJvdG90eXBlIGNoYWluLiBCbGluayBhbmQgR2Vja28gaW1wbGVtZW50IHN0cmlj
dGVyIHNlbWFudGljcyBieSBmYWlsaW5nIGVhcmx5IHJhdGhlcgorICAgICAgICB0aGFuIHRyYXZl
cnNpbmcgdGhlIHByb3RvdHlwZSBjaGFpbiwgYXMgZG9lcyB0aGlzIHBhdGNoLgorCisgICAgICAg
IFRvIGF2b2lkIGJyZWFraW5nIG5hdGl2ZSBhcHBzIHRoYXQgZWl0aGVyIGFkZCBleHBhbmRvIGlu
ZGljZXMgdG8gV2luZG93UHJveHksIG9yIG1vcmUgbGlrZWx5CisgICAgICAgIHJlYWQgLyB3cml0
ZSBpbmRleGVkIHByb3BlcnRpZXMgb2Ygc2xvcHB5IGZ1bmN0aW9uJ3MgfHRoaXN8IHZhbHVlLCB3
aGljaCBhY2NpZGVudGx5IGhhcHBlbnMKKyAgICAgICAgdG8gYmUgYSBXaW5kb3dQcm94eSwgdGhl
IG5ldyBiZWhhdmlvciBpcyBpbnRyb2R1Y2VkIG9ubHkgZm9yIHdlYiBjb250ZW50LgorCisgICAg
ICAgIFNpbmNlIHVubGlrZSBwdXRCeUluZGV4KCksIGRlbGV0ZVByb3BlcnR5QnlJbmRleCgpIG1p
Z2h0IGJlIGludm9rZWQgd2l0aCBVSU5UX01BWCwgd2hpY2ggaXMKKyAgICAgICAgbm90IGFuIGFy
cmF5IGluZGV4IFs0XSwgaXNJbmRleCgpIGNoZWNrIGlzIHJlcXVpcmVkLiBJbiBmdXR1cmUsIEpT
QyB3aWxsIGJlIGZpeGVkIHRvIHJlbW92ZQorICAgICAgICBzdWNoIGNoZWNrcyBmcm9tIGFsbCBp
bmRleGVkIG92ZXJyaWRlcy4KKworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Q6OmRpc2FibGVD
YWNoaW5nKCkgaXMgbm90IGNhbGxlZCBiZWNhdXNlIGluZGV4ZWQgZGVsZXRlcyBhcmUgbm90IGN1
cnJlbnRseQorICAgICAgICByZXBhdGNoZWQsIGFuZCBvbmNlIHRoZXkgYXJlLCBjYWNoZWFiaWxp
dHkgc2hvdWxkIGJlIGluZmVycmVkIGZyb20gYWRkZWQgdHlwZSBpbmZvIGZsYWdzLgorCisgICAg
ICAgIEFsc28sIHJlbW92ZXMgZXh0cmEganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNsb3RSZXN0
cmljdGVkQWNjZXNzKCkgY2FsbCBmb3IgaW5kZXhlZCBwcm9wZXJ0aWVzLAorICAgICAgICB3aGlj
aCBpcyBtaXNzaW5nIGZyb20gdGhlIHNwZWMgWzVdOyB0aGlzIGlzIHVub2JzZXJ2YWJsZS4KKwor
ICAgICAgICBbMV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93
LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWRlZmluZW93bnByb3BlcnR5IChzdGVwIDIuMSkKKyAg
ICAgICAgWzJdIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dpbmRvdy1v
YmplY3QuaHRtbCN3aW5kb3dwcm94eS1kZWxldGUgKHN0ZXAgMi4xKQorICAgICAgICBbM10gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93LW9iamVjdC5odG1sI3dp
bmRvd3Byb3h5LXNldCAoc3RlcCAzKQorICAgICAgICBbNF0gaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI2FycmF5LWluZGV4CisgICAgICAgIFs1XSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwjd2luZG93cHJveHktZ2V0b3ducHJvcGVydHkg
KHN0ZXAgMi41LjIpCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9w
ZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93
LWluZGV4ZWQtcHJvcGVydGllcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWlu
ZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlVW5zdXBwb3J0
ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNGdWxsV2ViQnJvd3Nlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93OjpwdXRCeUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWxl
dGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVy
dHlCeUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWZpbmVPd25Qcm9w
ZXJ0eSk6CisKIDIwMjEtMDUtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uOiBSYXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIHBsYXliYWNrIGNh
dXNlcyByZXBlYXRlZCBjcmFja2xpbmcgc291bmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCShyZXZpc2lvbiAy
NzgyMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCwxMSBAQCBTdHJpbmcgbWFrZVRo
aXNUeXBlRXJyb3JNZXNzYWdlKGNvbnN0IGNoCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgaW50ZXJmYWNlTmFtZSwgJy4nLCBmdW5jdGlvbk5hbWUsICIgb24gaW5zdGFu
Y2VzIG9mICIsIGludGVyZmFjZU5hbWUpOwogfQogCitTdHJpbmcgbWFrZVVuc3VwcG9ydGVkSW5k
ZXhlZFNldHRlckVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lKQoreworICAg
IHJldHVybiBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gc2V0IGFuIGluZGV4ZWQgcHJvcGVydHkgb24g
IiwgaW50ZXJmYWNlTmFtZSwgIjogSW5kZXhlZCBwcm9wZXJ0eSBzZXR0ZXIgaXMgbm90IHN1cHBv
cnRlZC4iKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgdGhyb3dUaGlzVHlwZUVycm9yKEpTQzo6SlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUs
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSkKIHsK
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIG1h
a2VUaGlzVHlwZUVycm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmgJKHJldmlzaW9uIDI3ODIzMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBA
QCBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIHRocm93Q29uc3RydWN0b3JTY3JpcHRFeGVjdXRpb25Db250ZXh0VW5hdmFpbGFibGVF
cnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciog
aW50ZXJmYWNlTmFtZSk7CiAKIFN0cmluZyBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRlTmFtZSk7CitTdHJpbmcg
bWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNldHRlckVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBpbnRl
cmZhY2VOYW1lKTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd1Ro
aXNUeXBlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYsIGNvbnN0
IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJ
KHJldmlzaW9uIDI3ODIzMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksMTIgQEAKICNpbmNsdWRl
ICJKU1dlYktpdE5hbWVzcGFjZS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNp
bmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKyNpbmNsdWRlIDx3dGYvY29jb2Ev
RW50aXRsZW1lbnRzLmg+CisjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIApAQCAtOTEsNiArOTcsMTYgQEAgSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
RE9NV2luZG93X3dlYgogfQogI2VuZGlmCiAKK2lubGluZSBzdGF0aWMgYm9vbCBpc0Z1bGxXZWJC
cm93c2VyKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGF0aWMgYm9vbCBmdWxsV2Vi
QnJvd3NlciA9IFdURjo6cHJvY2Vzc0hhc0VudGl0bGVtZW50KCJjb20uYXBwbGUuZGV2ZWxvcGVy
LndlYi1icm93c2VyIikgfHwgaXNSdW5uaW5nVGVzdChhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIoKSkgfHwgTWFjQXBwbGljYXRpb246OmlzTWluaUJyb3dzZXIoKTsKKyAgICByZXR1cm4gZnVs
bFdlYkJyb3dzZXI7CisjZWxzZQorICAgIHJldHVybiBmYWxzZTsKKyNlbmRpZgorfQorCiB0ZW1w
bGF0ZSA8RE9NV2luZG93VHlwZSB3aW5kb3dUeXBlPgogYm9vbCBqc0RPTVdpbmRvd0dldE93blBy
b3BlcnR5U2xvdFJlc3RyaWN0ZWRBY2Nlc3MoSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3Qs
IEFic3RyYWN0RE9NV2luZG93JiB3aW5kb3csIEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QsIGNv
bnN0IFN0cmluZyYgZXJyb3JNZXNzYWdlKQogewpAQCAtMjE4LDEzICsyMzQsOCBAQCBib29sIEpT
RE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPCiAgICAgcmV0dXJuIGZhbHNlOwogfQog
Ci0vLyBQcm9wZXJ0eSBhY2Nlc3Mgc2VxdWVuY2UgaXM6Ci0vLyAoMSkgaW5kZXhlZCBwcm9wZXJ0
aWVzLAotLy8gKDIpIHJlZ3VsYXIgb3duIHByb3BlcnRpZXMsCi0vLyAoMykgbmFtZWQgcHJvcGVy
dGllcyAoaW4gZmFjdCwgdGhlc2Ugc2hvdWxkbid0IGJlIG9uIHRoZSB3aW5kb3csIHNob3VsZCBi
ZSBvbiB0aGUgTlBPKS4KIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgoSlNPYmplY3QqIG9iamVjdCwgSlNHbG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3Qs
IHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgVk0mIHZtID0gbGV4
aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
RE9NV2luZG93Kj4ob2JqZWN0KTsKICAgICBhdXRvJiB3aW5kb3cgPSB0aGlzT2JqZWN0LT53cmFw
cGVkKCk7CiAgICAgYXV0byogZnJhbWUgPSB3aW5kb3cuZnJhbWUoKTsKQEAgLTIzMiwxOSArMjQz
LDE2IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdEJ5SW4KICAgICAvLyBJ
bmRleGVkIGdldHRlcnMgdGFrZSBwcmVjZW5kZW5jZSBvdmVyIHJlZ3VsYXIgcHJvcGVydGllcywg
c28gY2FjaGluZyB3b3VsZCBiZSBpbnZhbGlkLgogICAgIHNsb3QuZGlzYWJsZUNhY2hpbmcoKTsK
IAotICAgIC8vICgxKSBGaXJzdCwgaW5kZXhlZCBwcm9wZXJ0aWVzLgogICAgIC8vIFRoZXNlIGFy
ZSBhbHNvIGFsbG93ZWQgY3Jvc3Mtb3JpZ2luLCBzbyBjb21lIGJlZm9yZSB0aGUgYWNjZXNzIGNo
ZWNrLgogICAgIGlmIChmcmFtZSAmJiBpbmRleCA8IGZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGRD
b3VudCgpKSB7CiAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlBdHRyaWJ1dGU6OlJlYWRPbmx5KSwgdG9KUyhsZXhpY2Fs
R2xvYmFsT2JqZWN0LCBmcmFtZS0+dHJlZSgpLnNjb3BlZENoaWxkKGluZGV4KS0+ZG9jdW1lbnQo
KS0+ZG9tV2luZG93KCkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgLy8g
SGFuZCBvZmYgYWxsIGNyb3NzLWRvbWFpbi9mcmFtZWxlc3MgYWNjZXNzIHRvIGpzRE9NV2luZG93
R2V0T3duUHJvcGVydHlTbG90UmVzdHJpY3RlZEFjY2Vzcy4KLSAgICBTdHJpbmcgZXJyb3JNZXNz
YWdlOwotICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2lu
ZG93KCpsZXhpY2FsR2xvYmFsT2JqZWN0LCB3aW5kb3csIGVycm9yTWVzc2FnZSkpCi0gICAgICAg
IHJldHVybiBqc0RPTVdpbmRvd0dldE93blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRBY2Nlc3M8RE9N
V2luZG93VHlwZTo6TG9jYWw+KHRoaXNPYmplY3QsIHdpbmRvdywgKmxleGljYWxHbG9iYWxPYmpl
Y3QsIElkZW50aWZpZXI6OmZyb20odm0sIGluZGV4KSwgc2xvdCwgZXJyb3JNZXNzYWdlKTsKLQot
ICAgIC8vICgyKSBSZWd1bGFyIG93biBwcm9wZXJ0aWVzLgorICAgIGlmICghQmluZGluZ1NlY3Vy
aXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmplY3QsIHdp
bmRvdywgVGhyb3dTZWN1cml0eUVycm9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlm
IChpc0Z1bGxXZWJCcm93c2VyKCkpCisgICAgICAgIHJldHVybiBmYWxzZTsKICAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBpbmRleCwgc2xvdCk7CiB9CiAKQEAgLTI4NSw2ICsyOTMsOCBAQCBib29sIEpTRE9N
V2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAg
ICB9CiAKKyAgICBpZiAocGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpICYmIGlzRnVsbFdlYkJyb3dz
ZXIoKSkKKyAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29w
ZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgbWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNldHRlckVycm9y
TWVzc2FnZSgiV2luZG93IikpOwogICAgIFJFTEVBU0VfQU5EX1JFVFVSTihzY29wZSwgQmFzZTo6
cHV0KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHNsb3QpKTsKIH0KIApAQCAtMzAwLDYgKzMxMCwxMCBAQCBib29sIEpTRE9NV2luZG93OjpwdXRC
eUluZGV4KEpTQ2VsbCogY2VsCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICB9CiAgICAgCisg
ICAgaWYgKGlzRnVsbFdlYkJyb3dzZXIoKSkKKyAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihsZXhp
Y2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgc2hvdWxkVGhyb3csIG1ha2VVbnN1cHBvcnRlZEluZGV4
ZWRTZXR0ZXJFcnJvck1lc3NhZ2UoIldpbmRvdyIpKTsKKyAgICBpZiAoYXV0byogZG9jdW1lbnQg
PSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuZG9jdW1lbnQoKSkKKyAgICAgICAgZG9jdW1lbnQtPmFk
ZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpTLCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcs
ICJBZGRpbmcgZXhwYW5kbyBpbmRleGVkIHByb3BlcnRpZXMgdG8gJ3dpbmRvdycgaXMgZGVwcmVj
YXRlZCBub24tc3RhbmRhcmQgYmVoYXZpb3IgdGhhdCB3aWxsIGJlIHJlbW92ZWQgc29vbi4iX3Mp
OwogICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxP
YmplY3QsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCkBAIC0zMDksNiArMzIzLDEw
IEBAIGJvb2wgSlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCoKICAgICAvLyBPbmx5
IGFsbG93IGRlbGV0aW5nIHByb3BlcnRpZXMgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4K
ICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlF
cnJvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoT3B0aW9uYWw8dWludDMyX3Q+
IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpc0Z1bGxX
ZWJCcm93c2VyKCkpCisgICAgICAgICAgICByZXR1cm4gaW5kZXgudmFsdWUoKSA+PSB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7CisgICAgfQogICAgIHJldHVybiBCYXNlOjpkZWxldGVQ
cm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCkBAIC0zMTgsNiArMzM2LDggQEAgYm9vbCBKU0RPTVdpbmRvdzo6ZGVsZXRlUHJv
cGVydHlCeUluZGV4KAogICAgIC8vIE9ubHkgYWxsb3cgZGVsZXRpbmcgcHJvcGVydGllcyBieSBm
cmFtZXMgaW4gdGhlIHNhbWUgb3JpZ2luLgogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91
bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3Qt
PndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVycm9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwor
ICAgIGlmIChpc0luZGV4KHByb3BlcnR5TmFtZSkgJiYgaXNGdWxsV2ViQnJvd3NlcigpKQorICAg
ICAgICByZXR1cm4gcHJvcGVydHlOYW1lID49IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KTsKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3QsIGxl
eGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiB9CiAKQEAgLTQwOSwxMiArNDI5LDE4
IEBAIHZvaWQgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoSlMKIAogYm9vbCBKU0RP
TVdpbmRvdzo6ZGVmaW5lT3duUHJvcGVydHkoSlNDOjpKU09iamVjdCogb2JqZWN0LCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29s
IHNob3VsZFRocm93KQogeworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgSlNET01X
aW5kb3cqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwogICAgIC8v
IE9ubHkgYWxsb3cgZGVmaW5pbmcgcHJvcGVydGllcyBpbiB0aGlzIHdheSBieSBmcmFtZXMgaW4g
dGhlIHNhbWUgb3JpZ2luLCBhcyBpdCBhbGxvd3Mgc2V0dGVycyB0byBiZSBpbnRyb2R1Y2VkLgog
ICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QtPndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVy
cm9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChwYXJzZUluZGV4KHByb3BlcnR5
TmFtZSkgJiYgaXNGdWxsV2ViQnJvd3NlcigpKQorICAgICAgICByZXR1cm4gdHlwZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBzaG91bGRUaHJvdywgbWFrZVVuc3VwcG9ydGVkSW5k
ZXhlZFNldHRlckVycm9yTWVzc2FnZSgiV2luZG93IikpOworICAgIHNjb3BlLnJlbGVhc2UoKTsK
IAotICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19jYXN0PEpTVk1DbGllbnREYXRhKj4o
bGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCk7Cisg
ICAgYXV0byYgYnVpbHRpbk5hbWVzID0gc3RhdGljX2Nhc3Q8SlNWTUNsaWVudERhdGEqPih2bS5j
bGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCk7CiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSBidWls
dGluTmFtZXMuZG9jdW1lbnRQdWJsaWNOYW1lKCkgfHwgcHJvcGVydHlOYW1lID09IGJ1aWx0aW5O
YW1lcy53aW5kb3dQdWJsaWNOYW1lKCkpCiAgICAgICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5l
T3duUHJvcGVydHkodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1l
LCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzgy
MzMpCisrKyBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE3IEBACisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNv
bT4KKworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3Jt
IG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGlzUnVubmluZ1Rlc3QoKSB0byBXVEYgc28gaXQg
Y2FuIGJlIHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIE5ldHdvcmtQcm9jZXNzL2NvY29h
L05ldHdvcmtTZXNzaW9uQ29jb2EubW06CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRX
ZWJCcm93c2VyQ2hlY2tzLmg6CisgICAgICAgICogU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93
c2VyQ2hlY2tzLm1tOgorICAgICAgICAoV2ViS2l0Ojppc1J1bm5pbmdUZXN0KTogRGVsZXRlZC4K
KwogMjAyMS0wNS0yOCAgRG9uIE9sbXN0ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAg
ICAgICAgIFtDb2NvYV0gSERSIHZhcmlhbnRzIGluIEhMUyBwbGF5bGlzdHMgbm90IHNlbGVjdGVk
IHdoZW4gc2NyZWVuIGlzIEhEUgpJbmRleDogU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9j
b2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
TmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkocmV2aXNpb24gMjc4
MjMzKQorKysgU291cmNlL1dlYktpdC9OZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lv
bkNvY29hLm1tCSh3b3JraW5nIGNvcHkpCkBAIC01MCw2ICs1MCw3IEBACiAjaW1wb3J0IDxXZWJD
b3JlL1dlYkNvcmVVUkxSZXNwb25zZS5oPgogI2ltcG9ydCA8cGFsL3NwaS9jZi9DRk5ldHdvcmtT
UEkuaD4KICNpbXBvcnQgPHd0Zi9CbG9ja1B0ci5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRp
bWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvTWFpblRocmVhZC5oPgog
I2ltcG9ydCA8d3RmL05ha2VkUmVmLmg+CiAjaW1wb3J0IDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4K
SW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tz
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVmYXVsdFdlYkJy
b3dzZXJDaGVja3MuaAkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQv
Q29jb2EvRGVmYXVsdFdlYkJyb3dzZXJDaGVja3MuaAkod29ya2luZyBjb3B5KQpAQCAtMzksNyAr
MzksNiBAQCBjbGFzcyBBdXhpbGlhcnlQcm9jZXNzOwogYm9vbCBoYXNSZXF1ZXN0ZWRDcm9zc1dl
YnNpdGVUcmFja2luZ1Blcm1pc3Npb24oKTsKIGJvb2wgaGFzUHJvaGliaXRlZFVzYWdlU3RyaW5n
cygpOwogT3B0aW9uYWw8VmVjdG9yPFdlYkNvcmU6OlJlZ2lzdHJhYmxlRG9tYWluPj4gZ2V0QXBw
Qm91bmREb21haW5zVGVzdGluZyhjb25zdCBTdHJpbmcmKTsKLWJvb2wgaXNSdW5uaW5nVGVzdChj
b25zdCBTdHJpbmcmIGJ1bmRsZUlEKTsKIHZvaWQgZGV0ZXJtaW5lSVRQU3RhdGUoKTsKIGJvb2wg
ZG9lc0FwcEhhdmVJVFBFbmFibGVkKCk7CiBib29sIGRvZXNQYXJlbnRQcm9jZXNzSGF2ZUlUUEVu
YWJsZWQoQXV4aWxpYXJ5UHJvY2VzcyYsIGJvb2wgaGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJh
Y2tpbmdQZXJtaXNzaW9uKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1
bHRXZWJCcm93c2VyQ2hlY2tzLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hhcmVk
L0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLm1tCShyZXZpc2lvbiAyNzgyMzMpCisrKyBT
b3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNDAsNiArNDAsNyBAQAogI2ltcG9ydCA8d3RmL1NvZnRMaW5raW5nLmg+
CiAjaW1wb3J0IDx3dGYvV29ya1F1ZXVlLmg+CiAjaW1wb3J0IDx3dGYvY29jb2EvRW50aXRsZW1l
bnRzLmg+CisjaW1wb3J0IDx3dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
aD4KICNpbXBvcnQgPHd0Zi90ZXh0L1N0cmluZ0hhc2guaD4KIAogU09GVF9MSU5LX1BSSVZBVEVf
RlJBTUVXT1JLKFRDQykKQEAgLTUyLDExICs1Myw2IEBAIG5hbWVzcGFjZSBXZWJLaXQgewogCiBz
dGF0aWMgYm9vbCBpc0Z1bGxXZWJCcm93c2VyKGNvbnN0IFN0cmluZyYpOwogCi1ib29sIGlzUnVu
bmluZ1Rlc3QoY29uc3QgU3RyaW5nJiBidW5kbGVJRCkKLXsKLSAgICByZXR1cm4gYnVuZGxlSUQg
PT0gImNvbS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSSJfcyB8fCBidW5kbGVJRCA9PSAiY29t
LmFwcGxlLldlYktpdC5XZWJLaXRUZXN0UnVubmVyIl9zIHx8IGJ1bmRsZUlEID09ICJvcmcud2Vi
a2l0LldlYktpdFRlc3RSdW5uZXJBcHAiX3M7Ci19Ci0KIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3Jl
OjpSZWdpc3RyYWJsZURvbWFpbj4+IGdldEFwcEJvdW5kRG9tYWluc1Rlc3RpbmcoY29uc3QgU3Ry
aW5nJiBidW5kbGVJRCkKIHsKICAgICBpZiAoYnVuZGxlSUQuaXNOdWxsKCkpCkluZGV4OiBMYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNzgyMzMpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkK
QEAgLTEsMyArMSwyMSBAQAorMjAyMS0wNS0yOSAgQWxleGV5IFNodmF5a2EgIDxzaHZhaWthbGVz
aEBnbWFpbC5jb20+CisKKyAgICAgICAgV2luZG93IHNob3VsZCBiZWhhdmUgbGlrZSBhIGxlZ2Fj
eSBwbGF0Zm9ybSBvYmplY3Qgd2l0aG91dCBpbmRleGVkIHNldHRlcgorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk0CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBmYXN0L2RvbS9XaW5kb3cvb3JwaGFu
ZWQtZnJhbWUtYWNjZXNzLmh0bWw6CisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFj
aGVkLXdpbmRvdy1zdGlsbC13cml0YWJsZS1ldmFsLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBm
YXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZyYW1lLWFjY2Vzcy1kZWxl
dGUtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2Vz
L2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbDoKKyAgICAgICAgKiBqcy9k
b20vZGZnLWVuc3VyZS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy1leHBlY3RlZC50eHQ6CisgICAg
ICAgICoganMvZG9tL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVuc3VyZS1hcnJheS1zdG9yYWdl
LW9uLXdpbmRvdy5qczoKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUt
bm9uLWFycmF5LWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzOgorICAgICAgICAqIGpzL2RvbS9z
Y3JpcHQtdGVzdHMvaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5qczoKKwogMjAyMS0w
NS0yOCAgSmVhbi1ZdmVzIEF2ZW5hcmQgIDxqeWFAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBN
ZWRpYVNlc3Npb24uY2FsbEFjdGlvbkhhbmRsZXIKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3JwaGFuZWQtZnJhbWUtYWNjZXNzLmh0bWwJKHJldmlzaW9u
IDI3ODIzMykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1h
Y2Nlc3MuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCB3aW5kb3cub25sb2Fk
ID0gZnVuY3Rpb24oKSB7CiAgICAgLy8gc2NoZWR1bGUgdG8gcnVuIGFmdGVyIHRoZSBmcmFtZSBp
cyBudWxsCiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9k
eS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW4udGVzdCB8fCAncHJvcGVy
dHk6IEZBSUwgLi4uICcpKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW5bMjBdIHx8ICdhcnJheTogRkFJTCAuLi4gJykpOworICAg
ICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdp
blsyMF0gPT09IHVuZGVmaW5lZCA/ICdhcnJheTogUEFTUyAuLi4gJyA6ICdhcnJheTogRkFJTCAu
Li4gJykpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0
ZVRleHROb2RlKHdpbi5Db21tZW50ID8gJ2NvbnN0cnVjdG9yOiBQQVNTIC4uLi4gJyA6ICdjb25z
dHJ1Y3RvcjogRkFJTCAuLi4gJykpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxk
KGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpbi5wb3N0TWVzc2FnZSA/ICdvcGVyYXRpb246IFBB
U1MuJyA6ICdvcGVyYXRpb246IEZBSUwuJykpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCkluZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93
LXN0aWxsLXdyaXRhYmxlLWV2YWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZh
bC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2Zhc3QvZnJh
bWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEEKIAogCiBQQVNTICgpID0+IGZvbyBpcyAyCi1QQVNTICgpID0+IGds
b2JhbFRoaXNbMF0gaXMgMgorUEFTUyAoKSA9PiBnbG9iYWxUaGlzWzBdIGlzIHVuZGVmaW5lZAog
UEFTUyBpZnJhbWVDb250ZW50V2luZG93LmZvbyBpcyAyCi1QQVNTIGlmcmFtZUNvbnRlbnRXaW5k
b3dbMF0gaXMgMgorUEFTUyBpZnJhbWVDb250ZW50V2luZG93WzBdIGlzIHVuZGVmaW5lZAogUEFT
UyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlv
dXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxl
LWV2YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUt
ZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRtbAkocmV2aXNpb24gMjc4MjMz
KQorKysgTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGls
bC13cml0YWJsZS1ldmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDEwICsxNSwxMCBAQAog
ICAgICAgICBmb28rKzsKICAgICAgICAgZ2xvYmFsVGhpc1swXSsrOwogICAgICAgICBzaG91bGRC
ZSgoKSA9PiBmb28sICIyIik7Ci0gICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0s
ICIyIik7CisgICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0sICJ1bmRlZmluZWQi
KTsKICAgICBgKTsKICAgICBzaG91bGRCZSgiaWZyYW1lQ29udGVudFdpbmRvdy5mb28iLCAiMiIp
OwotICAgIHNob3VsZEJlKCJpZnJhbWVDb250ZW50V2luZG93WzBdIiwgIjIiKTsKKyAgICBzaG91
bGRCZSgiaWZyYW1lQ29udGVudFdpbmRvd1swXSIsICJ1bmRlZmluZWQiKTsKIDwvc2NyaXB0Pgog
PC9ib2R5PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS1leHBl
Y3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc4MjMzKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVs
ZXRlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBGcmFtZTog
JzwhLS1mcmFtZTEtLT4nCiAtLS0tLSB0ZXN0cyBmb3IgZGVsZXRpbmcgdGhlIHByb3BlcnRpZXMg
b2Ygd2luZG93LCB3aW5kb3cuaGlzdG9yeSwgYW5kIHdpbmRvdy5sb2NhdGlvbiBjcm9zcy1kb21h
aW4gLS0tLS0KIAogUEFTUzogd2luZG93LmV4aXN0aW5nUHJvcGVydHkgc2hvdWxkIGJlICd0ZXN0
IHZhbHVlJyBhbmQgaXMuCi1QQVNTOiB3aW5kb3dbMV0gc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBh
bmQgaXMuCitQQVNTOiB3aW5kb3dbMV0gc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KIFBB
U1M6IHdpbmRvdy5oaXN0b3J5LmV4aXN0aW5nUHJvcGVydHkgc2hvdWxkIGJlICd0ZXN0IHZhbHVl
JyBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuaGlzdG9yeVsxXSBzaG91bGQgYmUgJ3Rlc3QgdmFsdWUn
IGFuZCBpcy4KIFBBU1M6IHdpbmRvdy5sb2NhdGlvbi5leGlzdGluZ1Byb3BlcnR5IHNob3VsZCBi
ZSAndGVzdCB2YWx1ZScgYW5kIGlzLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Ny
b3NzLWZyYW1lLWlmcmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbAkocmV2aXNpb24gMjc4MjMzKQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUt
aWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3
IEBACiAgICAgICAgICAgICBsb2coIlxuLS0tLS0gdGVzdHMgZm9yIGRlbGV0aW5nIHRoZSBwcm9w
ZXJ0aWVzIG9mIHdpbmRvdywgd2luZG93Lmhpc3RvcnksIGFuZCB3aW5kb3cubG9jYXRpb24gY3Jv
c3MtZG9tYWluIC0tLS0tXG4iKTsKIAogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5leGlz
dGluZ1Byb3BlcnR5IiwgIid0ZXN0IHZhbHVlJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoIndp
bmRvd1sxXSIsICIndGVzdCB2YWx1ZSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3db
MV0iLCAidW5kZWZpbmVkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmhpc3Rvcnku
ZXhpc3RpbmdQcm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsKICAgICAgICAgICAgIHNob3VsZEJl
KCJ3aW5kb3cuaGlzdG9yeVsxXSIsICIndGVzdCB2YWx1ZSciKTsKICAgICAgICAgICAgIHNob3Vs
ZEJlKCJ3aW5kb3cubG9jYXRpb24uZXhpc3RpbmdQcm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsK
SW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4MjM5KQorKysg
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwz
ICsxLDE3IEBACisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWls
LmNvbT4KKworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRm
b3JtIG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5v
LWNhY2hlLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGll
cy1kZWxldGUtbm8tY2FjaGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVy
dGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3Qt
ZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0Lmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1v
YmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy5odG1sOgorCiAyMDIxLTA1LTI4ICBSb2Ig
QnVpcyAgPHJidWlzQGlnYWxpYS5jb20+CiAKICAgICAgICAgV2Via2l0IGRvZXNuJ3QgY2FsY3Vs
YXRlIHBhZGRpbmctdG9wLy1ib3R0b20gaW4gJSBjb3JyZWN0bHkgd2hlbiBwYXJlbnQgaGFzIHBh
ZGRpbmcKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVz
LWRlbGV0ZS1uby1jYWNoZS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ct
b2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLWV4cGVjdGVk
LnR4dAkobm9uZXhpc3RlbnQpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQt
cHJvcGVydGllcy1kZWxldGUtbm8tY2FjaGUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC0wLDAgKzEsNCBAQAorCitQQVNTIEFic2VuY2Ugb2YgaW5kZXggJzAnIGlzIG5vdCBjYWNoZWQK
K1BBU1MgUHJlc2VuY2Ugb2YgaW5kZXggJzAnIGlzIG5vdCBjYWNoZWQKKwpJbmRleDogTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13
aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3Bl
cnRpZXMtZGVsZXRlLW5vLWNhY2hlLmh0bWwJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ct
b2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSwzMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPHRpdGxlPkRlbGV0aW9uIG9mIFdpbmRvd1Byb3h5J3MgaW5kZXhlZCBwcm9w
ZXJ0aWVzIGlzIG5vdCBjYWNoZWQ8L3RpdGxlPgorPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwjd2lu
ZG93cHJveHktZGVsZXRlIj4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0Lmpz
Ij48L3NjcmlwdD4KKzxkaXYgaWQ9bG9nPjwvZGl2PgorPHNjcmlwdD4KK2NvbnN0IGlmcmFtZSA9
IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworaWZyYW1lLnNyY2RvYyA9ICIiOwor
Cit0ZXN0KCgpID0+IHsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3cubGVuZ3RoLCAwKTsKKyAgZm9y
IChsZXQgaSA9IDA7IGkgPCAxZTU7IGkrKykgeworICAgIGFzc2VydF90cnVlKGRlbGV0ZSB3aW5k
b3dbMF0pOworICB9CisKKyAgZG9jdW1lbnQuYm9keS5hcHBlbmQoaWZyYW1lKTsKKyAgYXNzZXJ0
X2ZhbHNlKGRlbGV0ZSB3aW5kb3dbMF0pOworfSwgIkFic2VuY2Ugb2YgaW5kZXggJzAnIGlzIG5v
dCBjYWNoZWQiKTsKKwordGVzdCgoKSA9PiB7CisgIGFzc2VydF9lcXVhbHMod2luZG93Lmxlbmd0
aCwgMSk7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyBpKyspIHsKKyAgICBhc3NlcnRfZmFs
c2UoZGVsZXRlIHdpbmRvd1swXSk7CisgIH0KKworICBpZnJhbWUucmVtb3ZlKCk7CisgIGFzc2Vy
dF90cnVlKGRlbGV0ZSB3aW5kb3dbMF0pOworfSwgIlByZXNlbmNlIG9mIGluZGV4ICcwJyBpcyBu
b3QgY2FjaGVkIik7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ct
aW5kZXhlZC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRv
dy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9u
IDI3ODIzMykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
aHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw3ICsxLDkgQEAKIAogUEFTUyBJbmRl
eGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkKIFBB
U1MgRW5zdXJlIGluZGV4ZWQgcHJvcGVydGllcyBoYXZlIHRoZSBjb3JyZWN0IGNvbmZpZ3VyYXRp
b24KLUZBSUwgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3Ry
aWN0IG1vZGUpIDEgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gIigpID0+IE9iamVjdC5kZWZp
bmVQcm9wZXJ0eSh3aW5kb3csIDAsIHsgdmFsdWU6ICJiYXIiIH0pIiBkaWQgbm90IHRocm93Ci1G
QUlMIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBt
b2RlKSAyIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBPYmplY3QuZGVmaW5lUHJv
cGVydHkod2luZG93LCAxLCB7IHZhbHVlOiAiYmFyIiB9KSIgZGlkIG5vdCB0aHJvdworUEFTUyBJ
bmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkg
MQorUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJp
Y3QgbW9kZSkgMgorUEFTUyBCb3JkZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMiBpcyBh
biBpbmRleAorUEFTUyBCb3JkZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMSBpcyBub3Qg
YW4gaW5kZXgKIFBBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChu
b24tc3RyaWN0IG1vZGUpIDMKIApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRl
eGVkLXByb3BlcnRpZXMtc3RyaWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdp
bmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAyNzgyMzMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQt
cHJvcGVydGllcy1zdHJpY3QtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xLDEwICsx
LDggQEAKIAogUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKHN0
cmljdCBtb2RlKQotRkFJTCBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qg
KHN0cmljdCBtb2RlKSAxIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICJmdW5jdGlvbiAoKSB7
Ci0gICAgd2luZG93WzBdID0gImZvbyI7Ci0gIH0iIGRpZCBub3QgdGhyb3cKLUZBSUwgSW5kZXhl
ZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9kZSkgMiBhc3NlcnRf
dGhyb3dzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIHdpbmRvd1sxXSA9ICJmb28i
OwotICB9IiBkaWQgbm90IHRocm93CitQQVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2lu
ZG93IG9iamVjdCAoc3RyaWN0IG1vZGUpIDEKK1BBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRo
ZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9kZSkgMgorUEFTUyBCb3JkZXJsaW5lIG51bWVyaWMg
a2V5OiAyICoqIDMyIC0gMiBpcyBhbiBpbmRleCAoc3RyaWN0IG1vZGUpCitQQVNTIEJvcmRlcmxp
bmUgbnVtZXJpYyBrZXk6IDIgKiogMzIgLSAxIGlzIG5vdCBhbiBpbmRleCAoc3RyaWN0IG1vZGUp
CiBQQVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1v
ZGUpIDMKIApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRp
ZXMtc3RyaWN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1p
bmRleGVkLXByb3BlcnRpZXMtc3RyaWN0Lmh0bWwJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUt
d2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC00NCw2ICs0NCwyOSBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogfSk7CiB0ZXN0
KGZ1bmN0aW9uKCkgewogICAidXNlIHN0cmljdCI7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVy
cm9yLCAoKSA9PiB7IHdpbmRvd1s0Mjk0OTY3Mjk0XSA9IDE7IH0pOworICBhc3NlcnRfZmFsc2Uo
UmVmbGVjdC5zZXQod2luZG93LCA0Mjk0OTY3Mjk0LCAyKSk7CisgIGFzc2VydF9mYWxzZShSZWZs
ZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NCwgeyB2YWx1ZTogMyB9KSk7Cisg
IGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHko
d2luZG93LCA0Mjk0OTY3Mjk0LCB7IGdldDogKCkgPT4gNCB9KSk7CisgIGFzc2VydF9lcXVhbHMo
d2luZG93WzQyOTQ5NjcyOTRdLCB1bmRlZmluZWQpOworICBhc3NlcnRfZmFsc2UoNDI5NDk2NzI5
NCBpbiB3aW5kb3cpOworICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5NjcyOTRdKTsK
K30sICJCb3JkZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMiBpcyBhbiBpbmRleCAoc3Ry
aWN0IG1vZGUpIik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICAidXNlIHN0cmljdCI7CisgIHdpbmRv
d1s0Mjk0OTY3Mjk1XSA9IDE7CisgIGFzc2VydF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTVdLCAx
KTsKKyAgYXNzZXJ0X3RydWUoUmVmbGVjdC5zZXQod2luZG93LCA0Mjk0OTY3Mjk1LCAyKSk7Cisg
IGFzc2VydF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTVdLCAyKTsKKyAgYXNzZXJ0X3RydWUoUmVm
bGVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIDQyOTQ5NjcyOTUsIHsgdmFsdWU6IDMgfSkpOwor
ICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMyk7CisgIE9iamVjdC5kZWZpbmVQ
cm9wZXJ0eSh3aW5kb3csIDQyOTQ5NjcyOTUsIHsgZ2V0OiAoKSA9PiA0IH0pOworICBhc3NlcnRf
ZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwgNCk7CisgIGFzc2VydF90cnVlKGRlbGV0ZSB3aW5k
b3dbNDI5NDk2NzI5NV0pOworICBhc3NlcnRfZmFsc2UoNDI5NDk2NzI5NSBpbiB3aW5kb3cpOwor
fSwgIkJvcmRlcmxpbmUgbnVtZXJpYyBrZXk6IDIgKiogMzIgLSAxIGlzIG5vdCBhbiBpbmRleCAo
c3RyaWN0IG1vZGUpIik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICAidXNlIHN0cmljdCI7CiAgIHZh
ciBwcm90byA9IFdpbmRvdy5wcm90b3R5cGU7CiAgIFstMSwgMCwgMV0uZm9yRWFjaChmdW5jdGlv
bihpZHgpIHsKICAgICBhc3NlcnRfZmFsc2UoaWR4IGluIHByb3RvLCBpZHggKyAiIGluIHByb3Rv
Iik7CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9w
ZXJ0aWVzLmh0bWwJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5k
b3ctaW5kZXhlZC1wcm9wZXJ0aWVzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQyLDYgKzQyLDI3
IEBAIHRlc3QoZnVuY3Rpb24oKSB7CiAgIGFzc2VydF9lcXVhbHMoZGVsZXRlIHdpbmRvd1sxXSwg
dHJ1ZSk7CiB9KTsKIHRlc3QoZnVuY3Rpb24oKSB7CisgIHdpbmRvd1s0Mjk0OTY3Mjk0XSA9IDE7
CisgIGFzc2VydF9mYWxzZShSZWZsZWN0LnNldCh3aW5kb3csIDQyOTQ5NjcyOTQsIDIpKTsKKyAg
YXNzZXJ0X2ZhbHNlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCA0Mjk0OTY3Mjk0LCB7
IHZhbHVlOiAzIH0pKTsKKyAgYXNzZXJ0X3Rocm93c19qcyhUeXBlRXJyb3IsICgpID0+IE9iamVj
dC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIDQyOTQ5NjcyOTQsIHsgZ2V0OiAoKSA9PiA0IH0pKTsK
KyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NF0sIHVuZGVmaW5lZCk7CisgIGFzc2Vy
dF9mYWxzZSg0Mjk0OTY3Mjk0IGluIHdpbmRvdyk7CisgIGFzc2VydF90cnVlKGRlbGV0ZSB3aW5k
b3dbNDI5NDk2NzI5NF0pOworfSwgIkJvcmRlcmxpbmUgbnVtZXJpYyBrZXk6IDIgKiogMzIgLSAy
IGlzIGFuIGluZGV4Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgeworICB3aW5kb3dbNDI5NDk2NzI5NV0g
PSAxOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMSk7CisgIGFzc2VydF90
cnVlKFJlZmxlY3Quc2V0KHdpbmRvdywgNDI5NDk2NzI5NSwgMikpOworICBhc3NlcnRfZXF1YWxz
KHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMik7CisgIGFzc2VydF90cnVlKFJlZmxlY3QuZGVmaW5lUHJv
cGVydHkod2luZG93LCA0Mjk0OTY3Mjk1LCB7IHZhbHVlOiAzIH0pKTsKKyAgYXNzZXJ0X2VxdWFs
cyh3aW5kb3dbNDI5NDk2NzI5NV0sIDMpOworICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93
LCA0Mjk0OTY3Mjk1LCB7IGdldDogKCkgPT4gNCB9KTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3db
NDI5NDk2NzI5NV0sIDQpOworICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5NjcyOTVd
KTsKKyAgYXNzZXJ0X2ZhbHNlKDQyOTQ5NjcyOTUgaW4gd2luZG93KTsKK30sICJCb3JkZXJsaW5l
IG51bWVyaWMga2V5OiAyICoqIDMyIC0gMSBpcyBub3QgYW4gaW5kZXgiKTsKK3Rlc3QoZnVuY3Rp
b24oKSB7CiAgIHZhciBwcm90byA9IFdpbmRvdy5wcm90b3R5cGU7CiAgIFstMSwgMCwgMV0uZm9y
RWFjaChmdW5jdGlvbihpZHgpIHsKICAgICBhc3NlcnRfZmFsc2UoaWR4IGluIHByb3RvLCBpZHgg
KyAiIGluIHByb3RvIik7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vZGZnLWVuc3VyZS1hcnJh
eS1zdG9yYWdlLW9uLXdpbmRvdy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvanMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3ctZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAyNzgyMzMpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZGZnLWVuc3VyZS1hcnJh
eS1zdG9yYWdlLW9uLXdpbmRvdy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTMsNyAr
Myw3IEBAIFRlc3RzIHRoYXQgcGFzc2luZyB0aGUgZ2xvYmFsIG9iamVjdCB0byAKIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KIAogCi1QQVNTIGZvbyh3KSBpcyAxCitQQVNTIGZvbyh3KSBpcyBO
YU4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRl
eDogTGF5b3V0VGVzdHMvanMvZG9tL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9pbmRleGVkLXNldHRl
ci1vbi1nbG9iYWwtb2JqZWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc4MjMzKQorKysgTGF5
b3V0VGVzdHMvanMvZG9tL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QtZXhwZWN0ZWQu
dHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsOCBAQCBUZXN0cyB0aGF0IGNyZWF0aW5nIGFu
IGluZGV4ZWQgc2V0dGVyIG9uCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2Yg
IlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyB0
aGluZ3kgaXMgImZvbyIKK1BBU1MgdGhpcy5fX2RlZmluZVNldHRlcl9fKDQyLCBmdW5jdGlvbigp
IHt9KSB0aHJldyBleGNlcHRpb24gVHlwZUVycm9yOiBGYWlsZWQgdG8gc2V0IGFuIGluZGV4ZWQg
cHJvcGVydHkgb24gV2luZG93OiBJbmRleGVkIHByb3BlcnR5IHNldHRlciBpcyBub3Qgc3VwcG9y
dGVkLi4KK1BBU1MgdGhpc1s0Ml0gaXMgdW5kZWZpbmVkCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3Jp
cHQtdGVzdHMvZGZnLWVuc3VyZS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy5qcwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUtYXJyYXktc3Rv
cmFnZS1vbi13aW5kb3cuanMJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2pzL2Rv
bS9zY3JpcHQtdGVzdHMvZGZnLWVuc3VyZS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy5qcwkod29y
a2luZyBjb3B5KQpAQCAtMjMsNCArMjMsNCBAQCB3aGlsZSAoIWRmZ0NvbXBpbGVkKHtmOmZvbywg
Y29tcGlsZXM6Mn0pCiB2YXIgdyA9IHRoaXM7CiB3WzBdID0gMTsKIHcubGVuZ3RoID0gMTsKLXNo
b3VsZEJlKCJmb28odykiLCAiMSIpOworc2hvdWxkQmUoImZvbyh3KSIsICJOYU4iKTsKSW5kZXg6
IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVuc3VyZS1ub24tYXJyYXktYXJy
YXktc3RvcmFnZS1vbi13aW5kb3cuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9t
L3NjcmlwdC10ZXN0cy9kZmctZW5zdXJlLW5vbi1hcnJheS1hcnJheS1zdG9yYWdlLW9uLXdpbmRv
dy5qcwkocmV2aXNpb24gMjc4MjMzKQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9kZmctZW5zdXJlLW5vbi1hcnJheS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy5qcwkod29ya2lu
ZyBjb3B5KQpAQCAtNTEsMTAgKzUxLDggQEAgZm9yICh2YXIgaSA9IDA7IGkgPCAxMDAwOyBpID0g
ZGZnSW5jcmVtZQogdmFyIHcgPSB0aGlzOwogd1swXSA9IDE7CiB3Lmxlbmd0aCA9IDE7Ci12YXIg
dGhpbmd5ID0gZmFsc2U7Ci13Ll9fZGVmaW5lU2V0dGVyX18oMSwgZnVuY3Rpb24odmFsdWUpIHsg
dGhpbmd5ID0gdmFsdWU7IH0pOwotc2hvdWxkQmUoImZvbyh3KSIsICIxIik7Ci1zaG91bGRCZSgi
dGhpbmd5IiwgImZhbHNlIik7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgidy5fX2RlZmluZVNldHRl
cl9fKDEsIGZ1bmN0aW9uKCkge30pIiwgIlR5cGVFcnJvciIpOworc2hvdWxkQmUoImZvbyh3KSIs
ICJOYU4iKTsKIAogLy8gQXQgdGhpcyBwb2ludCB3ZSBjaGVjayB0byBtYWtlIHN1cmUgdGhhdCBi
YXIgZG9lc24ndCBlbmQgdXAgZWl0aGVyIGNyZWF0aW5nIGFycmF5IHN0b3JhZ2UgZm9yCiAvLyB0
aGUgd2luZG93IHByb3h5LCBvciBlcXVhbGx5IGJhZGx5LCBzdG9yaW5nIHRvIHRoZSBhbHJlYWR5
IGNyZWF0ZWQgYXJyYXkgc3RvcmFnZSBvbiB0aGUgcHJveHkKQEAgLTYyLDggKzYwLDcgQEAgc2hv
dWxkQmUoInRoaW5neSIsICJmYWxzZSIpOwogLy8gdGhpbmd5LCB0byBkZXRlY3QgdGhhdCBmb3Ig
aW5kZXggMSB3ZSBmYWxsIHRocm91Z2ggdGhlIHByb3h5IHRvIHRoZSByZWFsIHdpbmRvdyBvYmpl
Y3QuCiBiYXIodyk7CiAKLXNob3VsZEJlKCJ0aGluZ3kiLCAiNDIiKTsKLXNob3VsZEJlKCJmb28o
dykiLCAiMSIpOwogdy5sZW5ndGggPSAyOwotc2hvdWxkQmUoImZvbyh3KSIsICIwLzAiKTsKK3No
b3VsZEJlKCJ3WzFdIiwgIiIpOworc2hvdWxkQmUoImZvbyh3KSIsICJOYU4iKTsKIApJbmRleDog
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwt
b2JqZWN0LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMv
aW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5qcwkocmV2aXNpb24gMjc4MjMzKQorKysg
TGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwt
b2JqZWN0LmpzCSh3b3JraW5nIGNvcHkpCkBAIC0yLDEzICsyLDkgQEAgZGVzY3JpcHRpb24oCiAi
VGVzdHMgdGhhdCBjcmVhdGluZyBhbiBpbmRleGVkIHNldHRlciBvbiB0aGUgZ2xvYmFsIG9iamVj
dCBkb2Vzbid0IGJyZWFrIHRoaW5ncy4iCiApOwogCi12YXIgdGhpbmd5OwotCi10aGlzLl9fZGVm
aW5lU2V0dGVyX18oNDIsIGZ1bmN0aW9uKHZhbHVlKSB7Ci0gICAgdGhpbmd5ID0gdmFsdWU7Ci19
KTsKK3Nob3VsZFRocm93RXJyb3JOYW1lKCJ0aGlzLl9fZGVmaW5lU2V0dGVyX18oNDIsIGZ1bmN0
aW9uKCkge30pIiwgIlR5cGVFcnJvciIpOwogCiB0aGlzWzQyXSA9ICJmb28iOwogCi1zaG91bGRC
ZSgidGhpbmd5IiwgIlwiZm9vXCIiKTsKK3Nob3VsZEJlKCJ0aGlzWzQyXSIsICJ1bmRlZmluZWQi
KTsKIAo=
</data>
<flag name="commit-queue"
          id="451438"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430094</attachid>
            <date>2021-05-29 07:44:46 -0700</date>
            <delta_ts>2021-06-02 13:40:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225894-20210529174444.patch</filename>
            <type>text/plain</type>
            <size>36051</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvVHlwZUVycm9yLmg6CisgICAgICAgIChKU0M6OnR5
cGVFcnJvcik6CisKIDIwMjEtMDUtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBTdG9wIHVzaW5nIFVuY2hlY2tlZExvY2sgaW4gV1RGOjpNZXRhQWxsb2NhdG9y
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlRXJyb3IuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlRXJyb3IuaAkocmV2aXNp
b24gMjc4MjMzKQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUVycm9yLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTMwLDcgKzMwLDggQEAKIAogbmFtZXNwYWNlIEpTQyB7CiAKLWlu
bGluZSBib29sIHR5cGVFcnJvcihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Nj
b3BlJiBzY29wZSwgYm9vbCB0aHJvd0V4Y2VwdGlvbiwgQVNDSUlMaXRlcmFsIG1lc3NhZ2UpCit0
ZW1wbGF0ZTx0eXBlbmFtZSBNZXNzYWdlPgoraW5saW5lIGJvb2wgdHlwZUVycm9yKEpTR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNjb3BlLCBib29sIHRocm93RXhjZXB0
aW9uLCBNZXNzYWdlIG1lc3NhZ2UpCiB7CiAgICAgaWYgKHRocm93RXhjZXB0aW9uKQogICAgICAg
ICB0aHJvd1R5cGVFcnJvcihnbG9iYWxPYmplY3QsIHNjb3BlLCBtZXNzYWdlKTsKSW5kZXg6IFNv
dXJjZS9XVEYvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvQ2hhbmdlTG9nCShy
ZXZpc2lvbiAyNzgyMzMpCisrKyBTb3VyY2UvV1RGL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDE2IEBACisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNo
QGdtYWlsLmNvbT4KKworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5
IHBsYXRmb3JtIG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdl
ZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNb3ZlIGlzUnVubmluZ1Rlc3QoKSB0byBX
VEYgc28gaXQgY2FuIGJlIHVzZWQgaW4gV2ViQ29yZS4KKworICAgICAgICAqIHd0Zi9jb2NvYS9S
dW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5jcHA6CisgICAgICAgIChXVEY6OmlzUnVubmlu
Z1Rlc3QpOgorICAgICAgICAqIHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2Nv
YS5oOgorCiAyMDIxLTA1LTI4ICBDaHJpcyBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAg
ICAgICAgU3RvcCB1c2luZyBVbmNoZWNrZWRMb2NrIGluIFdURjo6TWV0YUFsbG9jYXRvcgpJbmRl
eDogU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLmNwcAkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNlL1dURi93dGYvY29jb2Ev
UnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2EuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yOCw2
ICsyOCw3IEBACiAKICNpbmNsdWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KICNpbmNsdWRlIDx3
dGYvT3B0aW9uYWwuaD4KKyNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogbmFtZXNw
YWNlIFdURiB7CiAKQEAgLTQ5LDQgKzUwLDkgQEAgdWludDMyX3QgYXBwbGljYXRpb25TREtWZXJz
aW9uKCkKICAgICByZXR1cm4gZHlsZF9nZXRfcHJvZ3JhbV9zZGtfdmVyc2lvbigpOwogfQogCiti
b29sIGlzUnVubmluZ1Rlc3QoY29uc3QgU3RyaW5nJiBidW5kbGVJRCkKK3sKKyAgICByZXR1cm4g
YnVuZGxlSUQgPT0gImNvbS5hcHBsZS5XZWJLaXQuVGVzdFdlYktpdEFQSSJfcyB8fCBidW5kbGVJ
RCA9PSAiY29tLmFwcGxlLldlYktpdC5XZWJLaXRUZXN0UnVubmVyIl9zIHx8IGJ1bmRsZUlEID09
ICJvcmcud2Via2l0LldlYktpdFRlc3RSdW5uZXJBcHAiX3M7Cit9CisKIH0KSW5kZXg6IFNvdXJj
ZS9XVEYvd3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNoZWNrc0NvY29hLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxpY2F0aW9uQ2hlY2tzQ29jb2Eu
aAkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNlL1dURi93dGYvY29jb2EvUnVudGltZUFwcGxp
Y2F0aW9uQ2hlY2tzQ29jb2EuaAkod29ya2luZyBjb3B5KQpAQCAtMzYsOCArMzYsMTAgQEAgbmFt
ZXNwYWNlIFdURiB7CiAvLyBUaGVzZSBmdW5jdGlvbnMgYXJlIGhvb2tlZCB1cCB0byBnaXZlIHlv
dSB0aGUgcmlnaHQgYW5zd2VyLgogV1RGX0VYUE9SVF9QUklWQVRFIHZvaWQgc2V0QXBwbGljYXRp
b25TREtWZXJzaW9uKHVpbnQzMl90KTsKIFdURl9FWFBPUlRfUFJJVkFURSB1aW50MzJfdCBhcHBs
aWNhdGlvblNES1ZlcnNpb24oKTsKK1dURl9FWFBPUlRfUFJJVkFURSBib29sIGlzUnVubmluZ1Rl
c3QoY29uc3QgU3RyaW5nJiBidW5kbGVJRCk7CiAKIH0KIAogdXNpbmcgV1RGOjpzZXRBcHBsaWNh
dGlvblNES1ZlcnNpb247CiB1c2luZyBXVEY6OmFwcGxpY2F0aW9uU0RLVmVyc2lvbjsKK3VzaW5n
IFdURjo6aXNSdW5uaW5nVGVzdDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODIzMykKKysr
IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDU0IEBA
CisyMDIxLTA1LTI5ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBUaGlzIGNoYW5nZSBmaXhlcyBtYWpvciBpbnRlcm9wIGlzc3VlIGJ5
IGRpc2FsbG93aW5nIGV4cGFuZG8gaW5kZXhlZCBwcm9wZXJ0aWVzIG9uCisgICAgICAgIFdpbmRv
d1Byb3h5LCByYWlzaW5nIFR5cGVFcnJvciBvbmx5IGlmIG5lZWRlZCwgd2hpY2ggYWxpZ25zIFdl
YktpdCB3aXRoIEJsaW5rIGFuZCBHZWNrby4KKworICAgICAgICBXaGlsZSBbW0RlZmluZU93blBy
b3BlcnR5XV0gWzFdIGFuZCBbW0RlbGV0ZV1dIFsyXSBtZXRob2RzIG9mIFdpbmRvd1Byb3h5IGFy
ZSBpbXBsZW1lbnRlZAorICAgICAgICBwcmVjaXNlbHkgcGVyIHNwZWMsIGN1cnJlbnQgW1tTZXRd
XSBbM10gYWxnb3JpdGhtIHNlZW1zIHRvIGFsbG93IGludm9raW5nIHNldHRlcnMgZnJvbQorICAg
ICAgICB0aGUgcHJvdG90eXBlIGNoYWluLiBCbGluayBhbmQgR2Vja28gaW1wbGVtZW50IHN0cmlj
dGVyIHNlbWFudGljcyBieSBmYWlsaW5nIGVhcmx5IHJhdGhlcgorICAgICAgICB0aGFuIHRyYXZl
cnNpbmcgdGhlIHByb3RvdHlwZSBjaGFpbiwgYXMgZG9lcyB0aGlzIHBhdGNoLgorCisgICAgICAg
IFRvIGF2b2lkIGJyZWFraW5nIG5hdGl2ZSBhcHBzIHRoYXQgZWl0aGVyIGFkZCBleHBhbmRvIGlu
ZGljZXMgdG8gV2luZG93UHJveHksIG9yIG1vcmUgbGlrZWx5CisgICAgICAgIHJlYWQgLyB3cml0
ZSBpbmRleGVkIHByb3BlcnRpZXMgb2Ygc2xvcHB5IGZ1bmN0aW9uJ3MgfHRoaXN8IHZhbHVlLCB3
aGljaCBhY2NpZGVudGx5IGhhcHBlbnMKKyAgICAgICAgdG8gYmUgYSBXaW5kb3dQcm94eSwgdGhl
IG5ldyBiZWhhdmlvciBpcyBpbnRyb2R1Y2VkIG9ubHkgZm9yIHdlYiBjb250ZW50LgorCisgICAg
ICAgIFNpbmNlIHVubGlrZSBwdXRCeUluZGV4KCksIGRlbGV0ZVByb3BlcnR5QnlJbmRleCgpIG1p
Z2h0IGJlIGludm9rZWQgd2l0aCBVSU5UX01BWCwgd2hpY2ggaXMKKyAgICAgICAgbm90IGFuIGFy
cmF5IGluZGV4IFs0XSwgaXNJbmRleCgpIGNoZWNrIGlzIHJlcXVpcmVkLiBJbiBmdXR1cmUsIEpT
QyB3aWxsIGJlIGZpeGVkIHRvIHJlbW92ZQorICAgICAgICBzdWNoIGNoZWNrcyBmcm9tIGFsbCBp
bmRleGVkIG92ZXJyaWRlcy4KKworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Q6OmRpc2FibGVD
YWNoaW5nKCkgaXMgbm90IGNhbGxlZCBiZWNhdXNlIGluZGV4ZWQgZGVsZXRlcyBhcmUgbm90IGN1
cnJlbnRseQorICAgICAgICByZXBhdGNoZWQsIGFuZCBvbmNlIHRoZXkgYXJlLCBjYWNoZWFiaWxp
dHkgc2hvdWxkIGJlIGluZmVycmVkIGZyb20gYWRkZWQgdHlwZSBpbmZvIGZsYWdzLgorCisgICAg
ICAgIEFsc28sIHJlbW92ZXMgZXh0cmEganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNsb3RSZXN0
cmljdGVkQWNjZXNzKCkgY2FsbCBmb3IgaW5kZXhlZCBwcm9wZXJ0aWVzLAorICAgICAgICB3aGlj
aCBpcyBtaXNzaW5nIGZyb20gdGhlIHNwZWMgWzVdOyB0aGlzIGlzIHVub2JzZXJ2YWJsZS4KKwor
ICAgICAgICBbMV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93
LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWRlZmluZW93bnByb3BlcnR5IChzdGVwIDIuMSkKKyAg
ICAgICAgWzJdIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dpbmRvdy1v
YmplY3QuaHRtbCN3aW5kb3dwcm94eS1kZWxldGUgKHN0ZXAgMi4xKQorICAgICAgICBbM10gaHR0
cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93LW9iamVjdC5odG1sI3dp
bmRvd3Byb3h5LXNldCAoc3RlcCAzKQorICAgICAgICBbNF0gaHR0cHM6Ly90YzM5LmVzL2VjbWEy
NjIvI2FycmF5LWluZGV4CisgICAgICAgIFs1XSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwjd2luZG93cHJveHktZ2V0b3ducHJvcGVydHkg
KHN0ZXAgMi41LjIpCisKKyAgICAgICAgVGVzdHM6IGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9w
ZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93
LWluZGV4ZWQtcHJvcGVydGllcy5odG1sCisgICAgICAgICAgICAgICBpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWlu
ZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QuaHRtbAorCisgICAgICAgICogYmluZGluZ3MvanMvSlNE
T01FeGNlcHRpb25IYW5kbGluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjptYWtlVW5zdXBwb3J0
ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKToKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmg6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dD
dXN0b20uY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNGdWxsV2ViQnJvd3Nlcik6CisgICAgICAg
IChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCk6CisgICAg
ICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9N
V2luZG93OjpwdXRCeUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWxl
dGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVy
dHlCeUluZGV4KToKKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWZpbmVPd25Qcm9w
ZXJ0eSk6CisKIDIwMjEtMDUtMjggIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAog
ICAgICAgICBSZWdyZXNzaW9uOiBSYXcgQXVkaW9CdWZmZXJTb3VyY2VOb2RlIHBsYXliYWNrIGNh
dXNlcyByZXBlYXRlZCBjcmFja2xpbmcgc291bmQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCShyZXZpc2lvbiAy
NzgyMzMpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRs
aW5nLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjgwLDYgKzI4MCwxMSBAQCBTdHJpbmcgbWFrZVRo
aXNUeXBlRXJyb3JNZXNzYWdlKGNvbnN0IGNoCiAgICAgcmV0dXJuIG1ha2VTdHJpbmcoIkNhbiBv
bmx5IGNhbGwgIiwgaW50ZXJmYWNlTmFtZSwgJy4nLCBmdW5jdGlvbk5hbWUsICIgb24gaW5zdGFu
Y2VzIG9mICIsIGludGVyZmFjZU5hbWUpOwogfQogCitTdHJpbmcgbWFrZVVuc3VwcG9ydGVkSW5k
ZXhlZFNldHRlckVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lKQoreworICAg
IHJldHVybiBtYWtlU3RyaW5nKCJGYWlsZWQgdG8gc2V0IGFuIGluZGV4ZWQgcHJvcGVydHkgb24g
IiwgaW50ZXJmYWNlTmFtZSwgIjogSW5kZXhlZCBwcm9wZXJ0eSBzZXR0ZXIgaXMgbm90IHN1cHBv
cnRlZC4iKTsKK30KKwogRW5jb2RlZEpTVmFsdWUgdGhyb3dUaGlzVHlwZUVycm9yKEpTQzo6SlNH
bG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6VGhyb3dTY29wZSYgc2NvcGUs
IGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSkKIHsK
ICAgICByZXR1cm4gdGhyb3dUeXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIG1h
a2VUaGlzVHlwZUVycm9yTWVzc2FnZShpbnRlcmZhY2VOYW1lLCBmdW5jdGlvbk5hbWUpKTsKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhh
bmRsaW5nLmgJKHJldmlzaW9uIDI3ODIzMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsNyBA
QCBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93CiBKU0M6OkVuY29kZWRK
U1ZhbHVlIHRocm93Q29uc3RydWN0b3JTY3JpcHRFeGVjdXRpb25Db250ZXh0VW5hdmFpbGFibGVF
cnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciog
aW50ZXJmYWNlTmFtZSk7CiAKIFN0cmluZyBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoY29uc3Qg
Y2hhciogaW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogYXR0cmlidXRlTmFtZSk7CitTdHJpbmcg
bWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNldHRlckVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBpbnRl
cmZhY2VOYW1lKTsKIAogV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd1Ro
aXNUeXBlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6VGhyb3dTY29wZSYsIGNvbnN0
IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIqIGZ1bmN0aW9uTmFtZSk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJ
KHJldmlzaW9uIDI3ODIzMykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2lu
ZG93Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTksNiArNTksMTIgQEAKICNpbmNsdWRl
ICJKU1dlYktpdE5hbWVzcGFjZS5oIgogI2VuZGlmCiAKKyNpZiBQTEFURk9STShDT0NPQSkKKyNp
bmNsdWRlICJSdW50aW1lQXBwbGljYXRpb25DaGVja3MuaCIKKyNpbmNsdWRlIDx3dGYvY29jb2Ev
RW50aXRsZW1lbnRzLmg+CisjaW5jbHVkZSA8d3RmL2NvY29hL1J1bnRpbWVBcHBsaWNhdGlvbkNo
ZWNrc0NvY29hLmg+CisjZW5kaWYKKwogbmFtZXNwYWNlIFdlYkNvcmUgewogdXNpbmcgbmFtZXNw
YWNlIEpTQzsKIApAQCAtOTEsNiArOTcsMTYgQEAgSlNDX0RFRklORV9DVVNUT01fR0VUVEVSKGpz
RE9NV2luZG93X3dlYgogfQogI2VuZGlmCiAKK2lubGluZSBzdGF0aWMgYm9vbCBpc0Z1bGxXZWJC
cm93c2VyKCkKK3sKKyNpZiBQTEFURk9STShDT0NPQSkKKyAgICBzdGF0aWMgYm9vbCBmdWxsV2Vi
QnJvd3NlciA9IFdURjo6cHJvY2Vzc0hhc0VudGl0bGVtZW50KCJjb20uYXBwbGUuZGV2ZWxvcGVy
LndlYi1icm93c2VyIikgfHwgaXNSdW5uaW5nVGVzdChhcHBsaWNhdGlvbkJ1bmRsZUlkZW50aWZp
ZXIoKSk7CisgICAgcmV0dXJuIGZ1bGxXZWJCcm93c2VyOworI2Vsc2UKKyAgICByZXR1cm4gZmFs
c2U7CisjZW5kaWYKK30KKwogdGVtcGxhdGUgPERPTVdpbmRvd1R5cGUgd2luZG93VHlwZT4KIGJv
b2wganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNsb3RSZXN0cmljdGVkQWNjZXNzKEpTRE9NR2xv
YmFsT2JqZWN0KiB0aGlzT2JqZWN0LCBBYnN0cmFjdERPTVdpbmRvdyYgd2luZG93LCBKU0dsb2Jh
bE9iamVjdCYgbGV4aWNhbEdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90LCBjb25zdCBTdHJpbmcmIGVycm9yTWVzc2FnZSkKIHsKQEAgLTIx
OCwxMyArMjM0LDggQEAgYm9vbCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90KEpTTwog
ICAgIHJldHVybiBmYWxzZTsKIH0KIAotLy8gUHJvcGVydHkgYWNjZXNzIHNlcXVlbmNlIGlzOgot
Ly8gKDEpIGluZGV4ZWQgcHJvcGVydGllcywKLS8vICgyKSByZWd1bGFyIG93biBwcm9wZXJ0aWVz
LAotLy8gKDMpIG5hbWVkIHByb3BlcnRpZXMgKGluIGZhY3QsIHRoZXNlIHNob3VsZG4ndCBiZSBv
biB0aGUgd2luZG93LCBzaG91bGQgYmUgb24gdGhlIE5QTykuCiBib29sIEpTRE9NV2luZG93Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEpTR2xvYmFsT2JqZWN0
KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90
KQogewotICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU0RPTVdpbmRvdyo+KG9iamVjdCk7CiAgICAgYXV0byYgd2lu
ZG93ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpOwogICAgIGF1dG8qIGZyYW1lID0gd2luZG93LmZy
YW1lKCk7CkBAIC0yMzIsMTkgKzI0MywxNiBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluCiAgICAgLy8gSW5kZXhlZCBnZXR0ZXJzIHRha2UgcHJlY2VuZGVuY2Ugb3Zl
ciByZWd1bGFyIHByb3BlcnRpZXMsIHNvIGNhY2hpbmcgd291bGQgYmUgaW52YWxpZC4KICAgICBz
bG90LmRpc2FibGVDYWNoaW5nKCk7CiAKLSAgICAvLyAoMSkgRmlyc3QsIGluZGV4ZWQgcHJvcGVy
dGllcy4KICAgICAvLyBUaGVzZSBhcmUgYWxzbyBhbGxvd2VkIGNyb3NzLW9yaWdpbiwgc28gY29t
ZSBiZWZvcmUgdGhlIGFjY2VzcyBjaGVjay4KICAgICBpZiAoZnJhbWUgJiYgaW5kZXggPCBmcmFt
ZS0+dHJlZSgpLnNjb3BlZENoaWxkQ291bnQoKSkgewogICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIHN0YXRpY19jYXN0PHVuc2lnbmVkPihKU0M6OlByb3BlcnR5QXR0cmlidXRlOjpS
ZWFkT25seSksIHRvSlMobGV4aWNhbEdsb2JhbE9iamVjdCwgZnJhbWUtPnRyZWUoKS5zY29wZWRD
aGlsZChpbmRleCktPmRvY3VtZW50KCktPmRvbVdpbmRvdygpKSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIC8vIEhhbmQgb2ZmIGFsbCBjcm9zcy1kb21haW4vZnJhbWVsZXNz
IGFjY2VzcyB0byBqc0RPTVdpbmRvd0dldE93blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRBY2Nlc3Mu
Ci0gICAgU3RyaW5nIGVycm9yTWVzc2FnZTsKLSAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hv
dWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdygqbGV4aWNhbEdsb2JhbE9iamVjdCwgd2luZG93LCBl
cnJvck1lc3NhZ2UpKQotICAgICAgICByZXR1cm4ganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNs
b3RSZXN0cmljdGVkQWNjZXNzPERPTVdpbmRvd1R5cGU6OkxvY2FsPih0aGlzT2JqZWN0LCB3aW5k
b3csICpsZXhpY2FsR2xvYmFsT2JqZWN0LCBJZGVudGlmaWVyOjpmcm9tKHZtLCBpbmRleCksIHNs
b3QsIGVycm9yTWVzc2FnZSk7Ci0KLSAgICAvLyAoMikgUmVndWxhciBvd24gcHJvcGVydGllcy4K
KyAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhs
ZXhpY2FsR2xvYmFsT2JqZWN0LCB3aW5kb3csIFRocm93U2VjdXJpdHlFcnJvcikpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICBpZiAoaXNGdWxsV2ViQnJvd3NlcigpKQorICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhp
c09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgsIHNsb3QpOwogfQogCkBAIC0yODUs
NiArMjkzLDggQEAgYm9vbCBKU0RPTVdpbmRvdzo6cHV0KEpTQ2VsbCogY2VsbCwgSlNHbAogICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgfQogCisgICAgaWYgKHBhcnNlSW5kZXgocHJvcGVydHlO
YW1lKSAmJiBpc0Z1bGxXZWJCcm93c2VyKCkpCisgICAgICAgIHJldHVybiB0eXBlRXJyb3IobGV4
aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIHNsb3QuaXNTdHJpY3RNb2RlKCksIG1ha2VVbnN1cHBv
cnRlZEluZGV4ZWRTZXR0ZXJFcnJvck1lc3NhZ2UoIldpbmRvdyIpKTsKICAgICBSRUxFQVNFX0FO
RF9SRVRVUk4oc2NvcGUsIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90KSk7CiB9CiAKQEAgLTMwMCw2ICszMTAsMTAgQEAg
Ym9vbCBKU0RPTVdpbmRvdzo6cHV0QnlJbmRleChKU0NlbGwqIGNlbAogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogICAgIAorICAgIGlmIChpc0Z1bGxXZWJCcm93c2VyKCkpCisgICAgICAg
IHJldHVybiB0eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIHNob3VsZFRocm93
LCBtYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKCJXaW5kb3ciKSk7Cisg
ICAgaWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkp
CisgICAgICAgIGRvY3VtZW50LT5hZGRDb25zb2xlTWVzc2FnZShNZXNzYWdlU291cmNlOjpKUywg
TWVzc2FnZUxldmVsOjpXYXJuaW5nLCAiQWRkaW5nIGV4cGFuZG8gaW5kZXhlZCBwcm9wZXJ0aWVz
IHRvICd3aW5kb3cnIGlzIGRlcHJlY2F0ZWQgbm9uLXN0YW5kYXJkIGJlaGF2aW9yIHRoYXQgd2ls
bCBiZSByZW1vdmVkIHNvb24uIl9zKTsKICAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleCh0aGlz
T2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsK
IH0KIApAQCAtMzA5LDYgKzMyMywxMCBAQCBib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0
eShKU0NlbGwqCiAgICAgLy8gT25seSBhbGxvdyBkZWxldGluZyBwcm9wZXJ0aWVzIGJ5IGZyYW1l
cyBpbiB0aGUgc2FtZSBvcmlnaW4uCiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFs
bG93QWNjZXNzVG9ET01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3Jh
cHBlZCgpLCBUaHJvd1NlY3VyaXR5RXJyb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAg
aWYgKE9wdGlvbmFsPHVpbnQzMl90PiBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkg
eworICAgICAgICBpZiAoaXNGdWxsV2ViQnJvd3NlcigpKQorICAgICAgICAgICAgcmV0dXJuIGlu
ZGV4LnZhbHVlKCkgPj0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOworICAgIH0KICAg
ICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9i
amVjdCwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIApAQCAtMzE4LDYgKzMzNiw4IEBAIGJvb2wg
SlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5QnlJbmRleCgKICAgICAvLyBPbmx5IGFsbG93IGRl
bGV0aW5nIHByb3BlcnRpZXMgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbi4KICAgICBpZiAo
IUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xv
YmFsT2JqZWN0LCB0aGlzT2JqZWN0LT53cmFwcGVkKCksIFRocm93U2VjdXJpdHlFcnJvcikpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoaXNJbmRleChwcm9wZXJ0eU5hbWUpICYmIGlz
RnVsbFdlYkJyb3dzZXIoKSkKKyAgICAgICAgcmV0dXJuIHByb3BlcnR5TmFtZSA+PSB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7CiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5
QnlJbmRleCh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUpOwog
fQogCkBAIC00MDksMTIgKzQyOSwxOCBAQCB2b2lkIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEpTCiAKIGJvb2wgSlNET01XaW5kb3c6OmRlZmluZU93blByb3BlcnR5KEpTQzo6SlNP
YmplY3QqIG9iamVjdCwgSlNDOjpKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwg
SlNDOjpQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBKU0M6OlByb3BlcnR5RGVzY3Jp
cHRvciYgZGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKIHsKKyAgICBWTSYgdm0gPSBsZXhp
Y2FsR2xvYmFsT2JqZWN0LT52bSgpOworICAgIGF1dG8gc2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHZtKTsKKwogICAgIEpTRE9NV2luZG93KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRE9NV2lu
ZG93Kj4ob2JqZWN0KTsKICAgICAvLyBPbmx5IGFsbG93IGRlZmluaW5nIHByb3BlcnRpZXMgaW4g
dGhpcyB3YXkgYnkgZnJhbWVzIGluIHRoZSBzYW1lIG9yaWdpbiwgYXMgaXQgYWxsb3dzIHNldHRl
cnMgdG8gYmUgaW50cm9kdWNlZC4KICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxs
b3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LT53cmFw
cGVkKCksIFRocm93U2VjdXJpdHlFcnJvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBp
ZiAocGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpICYmIGlzRnVsbFdlYkJyb3dzZXIoKSkKKyAgICAg
ICAgcmV0dXJuIHR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgc2hvdWxkVGhy
b3csIG1ha2VVbnN1cHBvcnRlZEluZGV4ZWRTZXR0ZXJFcnJvck1lc3NhZ2UoIldpbmRvdyIpKTsK
KyAgICBzY29wZS5yZWxlYXNlKCk7CiAKLSAgICBhdXRvJiBidWlsdGluTmFtZXMgPSBzdGF0aWNf
Y2FzdDxKU1ZNQ2xpZW50RGF0YSo+KGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCkuY2xpZW50RGF0
YSktPmJ1aWx0aW5OYW1lcygpOworICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19jYXN0
PEpTVk1DbGllbnREYXRhKj4odm0uY2xpZW50RGF0YSktPmJ1aWx0aW5OYW1lcygpOwogICAgIGlm
IChwcm9wZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVzLmRvY3VtZW50UHVibGljTmFtZSgpIHx8IHBy
b3BlcnR5TmFtZSA9PSBidWlsdGluTmFtZXMud2luZG93UHVibGljTmFtZSgpKQogICAgICAgICBy
ZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KHRoaXNPYmplY3QsIGxleGljYWxHbG9i
YWxPYmplY3QsIHByb3BlcnR5TmFtZSwgZGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogCkluZGV4
OiBTb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L0No
YW5nZUxvZwkocmV2aXNpb24gMjc4MjMzKQorKysgU291cmNlL1dlYktpdC9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNS0yOSAgQWxleGV5IFNodmF5a2Eg
IDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgV2luZG93IHNob3VsZCBiZWhhdmUg
bGlrZSBhIGxlZ2FjeSBwbGF0Zm9ybSBvYmplY3Qgd2l0aG91dCBpbmRleGVkIHNldHRlcgorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk0CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTW92ZSBpc1J1bm5p
bmdUZXN0KCkgdG8gV1RGIHNvIGl0IGNhbiBiZSB1c2VkIGluIFdlYkNvcmUuCisKKyAgICAgICAg
KiBOZXR3b3JrUHJvY2Vzcy9jb2NvYS9OZXR3b3JrU2Vzc2lvbkNvY29hLm1tOgorICAgICAgICAq
IFNoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oOgorICAgICAgICAqIFNoYXJl
ZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbToKKyAgICAgICAgKFdlYktpdDo6aXNS
dW5uaW5nVGVzdCk6IERlbGV0ZWQuCisKIDIwMjEtMDUtMjggIERvbiBPbG1zdGVhZCAgPGRvbi5v
bG1zdGVhZEBzb255LmNvbT4KIAogICAgICAgICBbQ29jb2FdIEhEUiB2YXJpYW50cyBpbiBITFMg
cGxheWxpc3RzIG5vdCBzZWxlY3RlZCB3aGVuIHNjcmVlbiBpcyBIRFIKSW5kZXg6IFNvdXJjZS9X
ZWJLaXQvTmV0d29ya1Byb2Nlc3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0L05ldHdvcmtQcm9jZXNzL2NvY29hL05ldHdvcmtTZXNzaW9u
Q29jb2EubW0JKHJldmlzaW9uIDI3ODIzMykKKysrIFNvdXJjZS9XZWJLaXQvTmV0d29ya1Byb2Nl
c3MvY29jb2EvTmV0d29ya1Nlc3Npb25Db2NvYS5tbQkod29ya2luZyBjb3B5KQpAQCAtNTAsNiAr
NTAsNyBAQAogI2ltcG9ydCA8V2ViQ29yZS9XZWJDb3JlVVJMUmVzcG9uc2UuaD4KICNpbXBvcnQg
PHBhbC9zcGkvY2YvQ0ZOZXR3b3JrU1BJLmg+CiAjaW1wb3J0IDx3dGYvQmxvY2tQdHIuaD4KKyNp
bXBvcnQgPHd0Zi9jb2NvYS9SdW50aW1lQXBwbGljYXRpb25DaGVja3NDb2NvYS5oPgogI2ltcG9y
dCA8d3RmL01haW5UaHJlYWQuaD4KICNpbXBvcnQgPHd0Zi9OYWtlZFJlZi5oPgogI2ltcG9ydCA8
d3RmL05ldmVyRGVzdHJveWVkLmg+CkluZGV4OiBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9E
ZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvU2hh
cmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLmgJKHJldmlzaW9uIDI3ODIzMykKKysr
IFNvdXJjZS9XZWJLaXQvU2hhcmVkL0NvY29hL0RlZmF1bHRXZWJCcm93c2VyQ2hlY2tzLmgJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDYgQEAgY2xhc3MgQXV4aWxpYXJ5UHJvY2VzczsKIGJv
b2wgaGFzUmVxdWVzdGVkQ3Jvc3NXZWJzaXRlVHJhY2tpbmdQZXJtaXNzaW9uKCk7CiBib29sIGhh
c1Byb2hpYml0ZWRVc2FnZVN0cmluZ3MoKTsKIE9wdGlvbmFsPFZlY3RvcjxXZWJDb3JlOjpSZWdp
c3RyYWJsZURvbWFpbj4+IGdldEFwcEJvdW5kRG9tYWluc1Rlc3RpbmcoY29uc3QgU3RyaW5nJik7
Ci1ib29sIGlzUnVubmluZ1Rlc3QoY29uc3QgU3RyaW5nJiBidW5kbGVJRCk7CiB2b2lkIGRldGVy
bWluZUlUUFN0YXRlKCk7CiBib29sIGRvZXNBcHBIYXZlSVRQRW5hYmxlZCgpOwogYm9vbCBkb2Vz
UGFyZW50UHJvY2Vzc0hhdmVJVFBFbmFibGVkKEF1eGlsaWFyeVByb2Nlc3MmLCBib29sIGhhc1Jl
cXVlc3RlZENyb3NzV2Vic2l0ZVRyYWNraW5nUGVybWlzc2lvbik7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L1NoYXJlZC9Db2NvYS9EZWZhdWx0V2ViQnJvd3NlckNoZWNrcy5tbQko
cmV2aXNpb24gMjc4MjMzKQorKysgU291cmNlL1dlYktpdC9TaGFyZWQvQ29jb2EvRGVmYXVsdFdl
YkJyb3dzZXJDaGVja3MubW0JKHdvcmtpbmcgY29weSkKQEAgLTQwLDYgKzQwLDcgQEAKICNpbXBv
cnQgPHd0Zi9Tb2Z0TGlua2luZy5oPgogI2ltcG9ydCA8d3RmL1dvcmtRdWV1ZS5oPgogI2ltcG9y
dCA8d3RmL2NvY29hL0VudGl0bGVtZW50cy5oPgorI2ltcG9ydCA8d3RmL2NvY29hL1J1bnRpbWVB
cHBsaWNhdGlvbkNoZWNrc0NvY29hLmg+CiAjaW1wb3J0IDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+
CiAKIFNPRlRfTElOS19QUklWQVRFX0ZSQU1FV09SSyhUQ0MpCkBAIC01MiwxMSArNTMsNiBAQCBu
YW1lc3BhY2UgV2ViS2l0IHsKIAogc3RhdGljIGJvb2wgaXNGdWxsV2ViQnJvd3Nlcihjb25zdCBT
dHJpbmcmKTsKIAotYm9vbCBpc1J1bm5pbmdUZXN0KGNvbnN0IFN0cmluZyYgYnVuZGxlSUQpCi17
Ci0gICAgcmV0dXJuIGJ1bmRsZUlEID09ICJjb20uYXBwbGUuV2ViS2l0LlRlc3RXZWJLaXRBUEki
X3MgfHwgYnVuZGxlSUQgPT0gImNvbS5hcHBsZS5XZWJLaXQuV2ViS2l0VGVzdFJ1bm5lciJfcyB8
fCBidW5kbGVJRCA9PSAib3JnLndlYmtpdC5XZWJLaXRUZXN0UnVubmVyQXBwIl9zOwotfQotCiBP
cHRpb25hbDxWZWN0b3I8V2ViQ29yZTo6UmVnaXN0cmFibGVEb21haW4+PiBnZXRBcHBCb3VuZERv
bWFpbnNUZXN0aW5nKGNvbnN0IFN0cmluZyYgYnVuZGxlSUQpCiB7CiAgICAgaWYgKGJ1bmRsZUlE
LmlzTnVsbCgpKQpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4MjMzKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDUtMjkgIEFsZXhl
eSBTaHZheWthICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFdpbmRvdyBzaG91
bGQgYmVoYXZlIGxpa2UgYSBsZWdhY3kgcGxhdGZvcm0gb2JqZWN0IHdpdGhvdXQgaW5kZXhlZCBz
ZXR0ZXIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIy
NTg5NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
ZmFzdC9kb20vV2luZG93L29ycGhhbmVkLWZyYW1lLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGZh
c3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1z
dGlsbC13cml0YWJsZS1ldmFsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9j
cm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rl
c3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWRlbGV0ZS10ZXN0
Lmh0bWw6CisgICAgICAgICoganMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5k
b3ctZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9pbmRleGVkLXNldHRlci1vbi1nbG9i
YWwtb2JqZWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL2Rm
Zy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanM6CisgICAgICAgICoganMvZG9tL3Nj
cmlwdC10ZXN0cy9kZmctZW5zdXJlLW5vbi1hcnJheS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy5q
czoKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2Jh
bC1vYmplY3QuanM6CisKIDIwMjEtMDUtMjggIEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxl
LmNvbT4KIAogICAgICAgICBBZGQgTWVkaWFTZXNzaW9uLmNhbGxBY3Rpb25IYW5kbGVyCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvb3JwaGFuZWQtZnJhbWUtYWNjZXNzLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L29ycGhhbmVkLWZyYW1l
LWFjY2Vzcy5odG1sCShyZXZpc2lvbiAyNzgyMzMpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9X
aW5kb3cvb3JwaGFuZWQtZnJhbWUtYWNjZXNzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE3LDcg
KzE3LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogICAgIC8vIHNjaGVkdWxlIHRv
IHJ1biBhZnRlciB0aGUgZnJhbWUgaXMgbnVsbAogICAgIHNldFRpbWVvdXQoZnVuY3Rpb24oKSB7
CiAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUod2luLnRlc3QgfHwgJ3Byb3BlcnR5OiBGQUlMIC4uLiAnKSk7Ci0gICAgICAgIGRvY3VtZW50
LmJvZHkuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUod2luWzIwXSB8fCAnYXJy
YXk6IEZBSUwgLi4uICcpKTsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW5bMjBdID09PSB1bmRlZmluZWQgPyAnYXJyYXk6IFBBU1Mg
Li4uICcgOiAnYXJyYXk6IEZBSUwgLi4uICcpKTsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW4uQ29tbWVudCA/ICdjb25zdHJ1Y3Rv
cjogUEFTUyAuLi4uICcgOiAnY29uc3RydWN0b3I6IEZBSUwgLi4uICcpKTsKICAgICAgICAgZG9j
dW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW4ucG9zdE1l
c3NhZ2UgPyAnb3BlcmF0aW9uOiBQQVNTLicgOiAnb3BlcmF0aW9uOiBGQUlMLicpKTsKICAgICAg
ICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMv
aWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGlsbC13cml0YWJsZS1ldmFsLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2lu
ZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzgyMzMpCisr
KyBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdy
aXRhYmxlLWV2YWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC00LDkgKzQsOSBAQCBP
biBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAKIAogUEFTUyAoKSA9PiBm
b28gaXMgMgotUEFTUyAoKSA9PiBnbG9iYWxUaGlzWzBdIGlzIDIKK1BBU1MgKCkgPT4gZ2xvYmFs
VGhpc1swXSBpcyB1bmRlZmluZWQKIFBBU1MgaWZyYW1lQ29udGVudFdpbmRvdy5mb28gaXMgMgot
UEFTUyBpZnJhbWVDb250ZW50V2luZG93WzBdIGlzIDIKK1BBU1MgaWZyYW1lQ29udGVudFdpbmRv
d1swXSBpcyB1bmRlZmluZWQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVk
LXdpbmRvdy1zdGlsbC13cml0YWJsZS1ldmFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGlsbC13cml0YWJsZS1ldmFs
Lmh0bWwJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFt
ZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0xNSwxMCArMTUsMTAgQEAKICAgICAgICAgZm9vKys7CiAgICAgICAgIGdsb2JhbFRoaXNb
MF0rKzsKICAgICAgICAgc2hvdWxkQmUoKCkgPT4gZm9vLCAiMiIpOwotICAgICAgICBzaG91bGRC
ZSgoKSA9PiBnbG9iYWxUaGlzWzBdLCAiMiIpOworICAgICAgICBzaG91bGRCZSgoKSA9PiBnbG9i
YWxUaGlzWzBdLCAidW5kZWZpbmVkIik7CiAgICAgYCk7CiAgICAgc2hvdWxkQmUoImlmcmFtZUNv
bnRlbnRXaW5kb3cuZm9vIiwgIjIiKTsKLSAgICBzaG91bGRCZSgiaWZyYW1lQ29udGVudFdpbmRv
d1swXSIsICIyIik7CisgICAgc2hvdWxkQmUoImlmcmFtZUNvbnRlbnRXaW5kb3dbMF0iLCAidW5k
ZWZpbmVkIik7CiA8L3NjcmlwdD4KIDwvYm9keT4KIDwvaHRtbD4KXCBObyBuZXdsaW5lIGF0IGVu
ZCBvZiBmaWxlCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2Nyb3NzLWZy
YW1lLWFjY2Vzcy1kZWxldGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTIyLDcgKzIyLDcgQEAgRnJhbWU6ICc8IS0tZnJhbWUxLS0+JwogLS0tLS0gdGVzdHMgZm9yIGRl
bGV0aW5nIHRoZSBwcm9wZXJ0aWVzIG9mIHdpbmRvdywgd2luZG93Lmhpc3RvcnksIGFuZCB3aW5k
b3cubG9jYXRpb24gY3Jvc3MtZG9tYWluIC0tLS0tCiAKIFBBU1M6IHdpbmRvdy5leGlzdGluZ1By
b3BlcnR5IHNob3VsZCBiZSAndGVzdCB2YWx1ZScgYW5kIGlzLgotUEFTUzogd2luZG93WzFdIHNo
b3VsZCBiZSAndGVzdCB2YWx1ZScgYW5kIGlzLgorUEFTUzogd2luZG93WzFdIHNob3VsZCBiZSAn
dW5kZWZpbmVkJyBhbmQgaXMuCiBQQVNTOiB3aW5kb3cuaGlzdG9yeS5leGlzdGluZ1Byb3BlcnR5
IHNob3VsZCBiZSAndGVzdCB2YWx1ZScgYW5kIGlzLgogUEFTUzogd2luZG93Lmhpc3RvcnlbMV0g
c2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQgaXMuCiBQQVNTOiB3aW5kb3cubG9jYXRpb24uZXhp
c3RpbmdQcm9wZXJ0eSBzaG91bGQgYmUgJ3Rlc3QgdmFsdWUnIGFuZCBpcy4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1m
b3ItZGVsZXRlLXRlc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWRlbGV0ZS10ZXN0Lmh0
bWwJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
cmVzb3VyY2VzL2Nyb3NzLWZyYW1lLWlmcmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMjYsNyArMjYsNyBAQAogICAgICAgICAgICAgbG9nKCJcbi0tLS0tIHRlc3Rz
IGZvciBkZWxldGluZyB0aGUgcHJvcGVydGllcyBvZiB3aW5kb3csIHdpbmRvdy5oaXN0b3J5LCBh
bmQgd2luZG93LmxvY2F0aW9uIGNyb3NzLWRvbWFpbiAtLS0tLVxuIik7CiAKICAgICAgICAgICAg
IHNob3VsZEJlKCJ3aW5kb3cuZXhpc3RpbmdQcm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsKLSAg
ICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3dbMV0iLCAiJ3Rlc3QgdmFsdWUnIik7CisgICAgICAg
ICAgICBzaG91bGRCZSgid2luZG93WzFdIiwgInVuZGVmaW5lZCIpOwogICAgICAgICAgICAgc2hv
dWxkQmUoIndpbmRvdy5oaXN0b3J5LmV4aXN0aW5nUHJvcGVydHkiLCAiJ3Rlc3QgdmFsdWUnIik7
CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmhpc3RvcnlbMV0iLCAiJ3Rlc3QgdmFsdWUn
Iik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93LmxvY2F0aW9uLmV4aXN0aW5nUHJvcGVy
dHkiLCAiJ3Rlc3QgdmFsdWUnIik7CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hh
bmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI3ODIzOSkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJ
KHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNyBAQAorMjAyMS0wNS0yOSAgQWxleGV5IFNodmF5
a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgV2luZG93IHNob3VsZCBiZWhh
dmUgbGlrZSBhIGxlZ2FjeSBwbGF0Zm9ybSBvYmplY3Qgd2l0aG91dCBpbmRleGVkIHNldHRlcgor
ICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1ODk0CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhl
ZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dp
bmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLmh0bWw6IEFkZGVkLgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRl
eGVkLXByb3BlcnRpZXMtc3RyaWN0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1w
cm9wZXJ0aWVzLXN0cmljdC5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1s
L2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMuaHRt
bDoKKwogMjAyMS0wNS0yOCAgUm9iIEJ1aXMgIDxyYnVpc0BpZ2FsaWEuY29tPgogCiAgICAgICAg
IFdlYmtpdCBkb2Vzbid0IGNhbGN1bGF0ZSBwYWRkaW5nLXRvcC8tYm90dG9tIGluICUgY29ycmVj
dGx5IHdoZW4gcGFyZW50IGhhcyBwYWRkaW5nCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2lu
ZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUtbm8tY2FjaGUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRl
bGV0ZS1uby1jYWNoZS1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ct
b2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLWV4cGVjdGVk
LnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKworUEFTUyBBYnNlbmNlIG9mIGlu
ZGV4ICcwJyBpcyBub3QgY2FjaGVkCitQQVNTIFByZXNlbmNlIG9mIGluZGV4ICcwJyBpcyBub3Qg
Y2FjaGVkCisKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0
aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVj
dC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCShub25leGlz
dGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRl
bGV0ZS1uby1jYWNoZS5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMzEgQEAKKzwhZG9j
dHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5EZWxldGlvbiBvZiBXaW5k
b3dQcm94eSdzIGluZGV4ZWQgcHJvcGVydGllcyBpcyBub3QgY2FjaGVkPC90aXRsZT4KKzxsaW5r
IHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
d2luZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWRlbGV0ZSI+Cis8c2NyaXB0IHNyYz0iL3Jl
c291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNl
cy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8ZGl2IGlkPWxvZz48L2Rpdj4KKzxz
Y3JpcHQ+Citjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsK
K2lmcmFtZS5zcmNkb2MgPSAiIjsKKwordGVzdCgoKSA9PiB7CisgIGFzc2VydF9lcXVhbHMod2lu
ZG93Lmxlbmd0aCwgMCk7CisgIGZvciAobGV0IGkgPSAwOyBpIDwgMWU1OyBpKyspIHsKKyAgICBh
c3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzBdKTsKKyAgfQorCisgIGRvY3VtZW50LmJvZHkuYXBw
ZW5kKGlmcmFtZSk7CisgIGFzc2VydF9mYWxzZShkZWxldGUgd2luZG93WzBdKTsKK30sICJBYnNl
bmNlIG9mIGluZGV4ICcwJyBpcyBub3QgY2FjaGVkIik7CisKK3Rlc3QoKCkgPT4geworICBhc3Nl
cnRfZXF1YWxzKHdpbmRvdy5sZW5ndGgsIDEpOworICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsg
aSsrKSB7CisgICAgYXNzZXJ0X2ZhbHNlKGRlbGV0ZSB3aW5kb3dbMF0pOworICB9CisKKyAgaWZy
YW1lLnJlbW92ZSgpOworICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzBdKTsKK30sICJQcmVz
ZW5jZSBvZiBpbmRleCAnMCcgaXMgbm90IGNhY2hlZCIpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhl
LXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzgyMzMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2lu
ZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEs
NyArMSw5IEBACiAKIFBBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0
IChub24tc3RyaWN0IG1vZGUpCiBQQVNTIEVuc3VyZSBpbmRleGVkIHByb3BlcnRpZXMgaGF2ZSB0
aGUgY29ycmVjdCBjb25maWd1cmF0aW9uCi1GQUlMIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUg
d2luZG93IG9iamVjdCAobm9uLXN0cmljdCBtb2RlKSAxIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0
aW9uICIoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCAwLCB7IHZhbHVlOiAiYmFy
IiB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRv
dyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkgMiBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAi
KCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgMSwgeyB2YWx1ZTogImJhciIgfSki
IGRpZCBub3QgdGhyb3cKK1BBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2Jq
ZWN0IChub24tc3RyaWN0IG1vZGUpIDEKK1BBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3
aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpIDIKK1BBU1MgQm9yZGVybGluZSBudW1lcmlj
IGtleTogMiAqKiAzMiAtIDIgaXMgYW4gaW5kZXgKK1BBU1MgQm9yZGVybGluZSBudW1lcmljIGtl
eTogMiAqKiAzMiAtIDEgaXMgbm90IGFuIGluZGV4CiBQQVNTIEluZGV4ZWQgcHJvcGVydGllcyBv
ZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBtb2RlKSAzCiAKSW5kZXg6IExheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2lu
ZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRp
ZXMtc3RyaWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc4MjMzKQorKysgTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ct
b2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMSwxMCArMSw4IEBACiAKIFBBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9m
IHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9kZSkKLUZBSUwgSW5kZXhlZCBwcm9wZXJ0aWVz
IG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9kZSkgMSBhc3NlcnRfdGhyb3dzX2pzOiBm
dW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIHdpbmRvd1swXSA9ICJmb28iOwotICB9IiBkaWQg
bm90IHRocm93Ci1GQUlMIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAo
c3RyaWN0IG1vZGUpIDIgYXNzZXJ0X3Rocm93c19qczogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsK
LSAgICB3aW5kb3dbMV0gPSAiZm9vIjsKLSAgfSIgZGlkIG5vdCB0aHJvdworUEFTUyBJbmRleGVk
IHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKHN0cmljdCBtb2RlKSAxCitQQVNTIElu
ZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1vZGUpIDIKK1BB
U1MgQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDIgaXMgYW4gaW5kZXggKHN0cmlj
dCBtb2RlKQorUEFTUyBCb3JkZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMSBpcyBub3Qg
YW4gaW5kZXggKHN0cmljdCBtb2RlKQogUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdp
bmRvdyBvYmplY3QgKHN0cmljdCBtb2RlKSAzCiAKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93
aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUt
d2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC5odG1sCShyZXZp
c2lvbiAyNzgyMzMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVy
dGllcy1zdHJpY3QuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNDQsNiArNDQsMjkgQEAgdGVzdChm
dW5jdGlvbigpIHsKIH0pOwogdGVzdChmdW5jdGlvbigpIHsKICAgInVzZSBzdHJpY3QiOworICBh
c3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4geyB3aW5kb3dbNDI5NDk2NzI5NF0gPSAx
OyB9KTsKKyAgYXNzZXJ0X2ZhbHNlKFJlZmxlY3Quc2V0KHdpbmRvdywgNDI5NDk2NzI5NCwgMikp
OworICBhc3NlcnRfZmFsc2UoUmVmbGVjdC5kZWZpbmVQcm9wZXJ0eSh3aW5kb3csIDQyOTQ5Njcy
OTQsIHsgdmFsdWU6IDMgfSkpOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4g
T2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NCwgeyBnZXQ6ICgpID0+IDQg
fSkpOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk0XSwgdW5kZWZpbmVkKTsKKyAg
YXNzZXJ0X2ZhbHNlKDQyOTQ5NjcyOTQgaW4gd2luZG93KTsKKyAgYXNzZXJ0X3RydWUoZGVsZXRl
IHdpbmRvd1s0Mjk0OTY3Mjk0XSk7Cit9LCAiQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAz
MiAtIDIgaXMgYW4gaW5kZXggKHN0cmljdCBtb2RlKSIpOwordGVzdChmdW5jdGlvbigpIHsKKyAg
InVzZSBzdHJpY3QiOworICB3aW5kb3dbNDI5NDk2NzI5NV0gPSAxOworICBhc3NlcnRfZXF1YWxz
KHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMSk7CisgIGFzc2VydF90cnVlKFJlZmxlY3Quc2V0KHdpbmRv
dywgNDI5NDk2NzI5NSwgMikpOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwg
Mik7CisgIGFzc2VydF90cnVlKFJlZmxlY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCA0Mjk0OTY3
Mjk1LCB7IHZhbHVlOiAzIH0pKTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NV0s
IDMpOworICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCA0Mjk0OTY3Mjk1LCB7IGdldDog
KCkgPT4gNCB9KTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDQpOworICBh
c3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5NjcyOTVdKTsKKyAgYXNzZXJ0X2ZhbHNlKDQy
OTQ5NjcyOTUgaW4gd2luZG93KTsKK30sICJCb3JkZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMy
IC0gMSBpcyBub3QgYW4gaW5kZXggKHN0cmljdCBtb2RlKSIpOwordGVzdChmdW5jdGlvbigpIHsK
KyAgInVzZSBzdHJpY3QiOwogICB2YXIgcHJvdG8gPSBXaW5kb3cucHJvdG90eXBlOwogICBbLTEs
IDAsIDFdLmZvckVhY2goZnVuY3Rpb24oaWR4KSB7CiAgICAgYXNzZXJ0X2ZhbHNlKGlkeCBpbiBw
cm90bywgaWR4ICsgIiBpbiBwcm90byIpOwpJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRv
dy1pbmRleGVkLXByb3BlcnRpZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmpl
Y3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy5odG1sCShyZXZpc2lvbiAyNzgyMzMpCisrKyBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMv
dGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC00Miw2ICs0MiwyNyBAQCB0ZXN0KGZ1bmN0aW9uKCkgewogICBhc3NlcnRfZXF1
YWxzKGRlbGV0ZSB3aW5kb3dbMV0sIHRydWUpOwogfSk7CiB0ZXN0KGZ1bmN0aW9uKCkgeworICB3
aW5kb3dbNDI5NDk2NzI5NF0gPSAxOworICBhc3NlcnRfZmFsc2UoUmVmbGVjdC5zZXQod2luZG93
LCA0Mjk0OTY3Mjk0LCAyKSk7CisgIGFzc2VydF9mYWxzZShSZWZsZWN0LmRlZmluZVByb3BlcnR5
KHdpbmRvdywgNDI5NDk2NzI5NCwgeyB2YWx1ZTogMyB9KSk7CisgIGFzc2VydF90aHJvd3NfanMo
VHlwZUVycm9yLCAoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHkod2luZG93LCA0Mjk0OTY3Mjk0
LCB7IGdldDogKCkgPT4gNCB9KSk7CisgIGFzc2VydF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTRd
LCB1bmRlZmluZWQpOworICBhc3NlcnRfZmFsc2UoNDI5NDk2NzI5NCBpbiB3aW5kb3cpOworICBh
c3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5NjcyOTRdKTsKK30sICJCb3JkZXJsaW5lIG51
bWVyaWMga2V5OiAyICoqIDMyIC0gMiBpcyBhbiBpbmRleCIpOwordGVzdChmdW5jdGlvbigpIHsK
KyAgd2luZG93WzQyOTQ5NjcyOTVdID0gMTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2
NzI5NV0sIDEpOworICBhc3NlcnRfdHJ1ZShSZWZsZWN0LnNldCh3aW5kb3csIDQyOTQ5NjcyOTUs
IDIpKTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDIpOworICBhc3NlcnRf
dHJ1ZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NSwgeyB2YWx1ZTog
MyB9KSk7CisgIGFzc2VydF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTVdLCAzKTsKKyAgT2JqZWN0
LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NSwgeyBnZXQ6ICgpID0+IDQgfSk7Cisg
IGFzc2VydF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTVdLCA0KTsKKyAgYXNzZXJ0X3RydWUoZGVs
ZXRlIHdpbmRvd1s0Mjk0OTY3Mjk1XSk7CisgIGFzc2VydF9mYWxzZSg0Mjk0OTY3Mjk1IGluIHdp
bmRvdyk7Cit9LCAiQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDEgaXMgbm90IGFu
IGluZGV4Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgewogICB2YXIgcHJvdG8gPSBXaW5kb3cucHJvdG90
eXBlOwogICBbLTEsIDAsIDFdLmZvckVhY2goZnVuY3Rpb24oaWR4KSB7CiAgICAgYXNzZXJ0X2Zh
bHNlKGlkeCBpbiBwcm90bywgaWR4ICsgIiBpbiBwcm90byIpOwpJbmRleDogTGF5b3V0VGVzdHMv
anMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3ctZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Ut
b24td2luZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc4MjMzKQorKysgTGF5b3V0VGVzdHMv
anMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3ctZXhwZWN0ZWQudHh0CSh3
b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0cyB0aGF0IHBhc3NpbmcgdGhlIGdsb2Jh
bCBvYmplY3QgdG8gCiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKIAotUEFTUyBmb28odykg
aXMgMQorUEFTUyBmb28odykgaXMgTmFOCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9pbmRleGVkLXNldHRl
ci1vbi1nbG9iYWwtb2JqZWN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9kb20vaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2pzL2RvbS9pbmRleGVkLXNldHRlci1vbi1n
bG9iYWwtb2JqZWN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMyw3ICszLDggQEAg
VGVzdHMgdGhhdCBjcmVhdGluZyBhbiBpbmRleGVkIHNldHRlciBvbgogT24gc3VjY2VzcywgeW91
IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1Qg
Q09NUExFVEUiLgogCiAKLVBBU1MgdGhpbmd5IGlzICJmb28iCitQQVNTIHRoaXMuX19kZWZpbmVT
ZXR0ZXJfXyg0MiwgZnVuY3Rpb24oKSB7fSkgdGhyZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRmFp
bGVkIHRvIHNldCBhbiBpbmRleGVkIHByb3BlcnR5IG9uIFdpbmRvdzogSW5kZXhlZCBwcm9wZXJ0
eSBzZXR0ZXIgaXMgbm90IHN1cHBvcnRlZC4uCitQQVNTIHRoaXNbNDJdIGlzIHVuZGVmaW5lZAog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1v
bi13aW5kb3cuanMKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0
cy9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzCShyZXZpc2lvbiAyNzgyMzMp
CisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUtYXJyYXktc3Rv
cmFnZS1vbi13aW5kb3cuanMJKHdvcmtpbmcgY29weSkKQEAgLTIzLDQgKzIzLDQgQEAgd2hpbGUg
KCFkZmdDb21waWxlZCh7Zjpmb28sIGNvbXBpbGVzOjJ9KQogdmFyIHcgPSB0aGlzOwogd1swXSA9
IDE7CiB3Lmxlbmd0aCA9IDE7Ci1zaG91bGRCZSgiZm9vKHcpIiwgIjEiKTsKK3Nob3VsZEJlKCJm
b28odykiLCAiTmFOIik7CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Rm
Zy1lbnN1cmUtbm9uLWFycmF5LWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVuc3VyZS1ub24tYXJyYXkt
YXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMJKHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVuc3VyZS1ub24tYXJyYXktYXJyYXktc3RvcmFn
ZS1vbi13aW5kb3cuanMJKHdvcmtpbmcgY29weSkKQEAgLTUxLDEwICs1MSw4IEBAIGZvciAodmFy
IGkgPSAwOyBpIDwgMTAwMDsgaSA9IGRmZ0luY3JlbWUKIHZhciB3ID0gdGhpczsKIHdbMF0gPSAx
Owogdy5sZW5ndGggPSAxOwotdmFyIHRoaW5neSA9IGZhbHNlOwotdy5fX2RlZmluZVNldHRlcl9f
KDEsIGZ1bmN0aW9uKHZhbHVlKSB7IHRoaW5neSA9IHZhbHVlOyB9KTsKLXNob3VsZEJlKCJmb28o
dykiLCAiMSIpOwotc2hvdWxkQmUoInRoaW5neSIsICJmYWxzZSIpOworc2hvdWxkVGhyb3dFcnJv
ck5hbWUoIncuX19kZWZpbmVTZXR0ZXJfXygxLCBmdW5jdGlvbigpIHt9KSIsICJUeXBlRXJyb3Ii
KTsKK3Nob3VsZEJlKCJmb28odykiLCAiTmFOIik7CiAKIC8vIEF0IHRoaXMgcG9pbnQgd2UgY2hl
Y2sgdG8gbWFrZSBzdXJlIHRoYXQgYmFyIGRvZXNuJ3QgZW5kIHVwIGVpdGhlciBjcmVhdGluZyBh
cnJheSBzdG9yYWdlIGZvcgogLy8gdGhlIHdpbmRvdyBwcm94eSwgb3IgZXF1YWxseSBiYWRseSwg
c3RvcmluZyB0byB0aGUgYWxyZWFkeSBjcmVhdGVkIGFycmF5IHN0b3JhZ2Ugb24gdGhlIHByb3h5
CkBAIC02Miw4ICs2MCw3IEBAIHNob3VsZEJlKCJ0aGluZ3kiLCAiZmFsc2UiKTsKIC8vIHRoaW5n
eSwgdG8gZGV0ZWN0IHRoYXQgZm9yIGluZGV4IDEgd2UgZmFsbCB0aHJvdWdoIHRoZSBwcm94eSB0
byB0aGUgcmVhbCB3aW5kb3cgb2JqZWN0LgogYmFyKHcpOwogCi1zaG91bGRCZSgidGhpbmd5Iiwg
IjQyIik7Ci1zaG91bGRCZSgiZm9vKHcpIiwgIjEiKTsKIHcubGVuZ3RoID0gMjsKLXNob3VsZEJl
KCJmb28odykiLCAiMC8wIik7CitzaG91bGRCZSgid1sxXSIsICIiKTsKK3Nob3VsZEJlKCJmb28o
dykiLCAiTmFOIik7CiAKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvaW5k
ZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QuanMJ
KHJldmlzaW9uIDI3ODIzMykKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvaW5k
ZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5qcwkod29ya2luZyBjb3B5KQpAQCAtMiwxMyAr
Miw5IEBAIGRlc2NyaXB0aW9uKAogIlRlc3RzIHRoYXQgY3JlYXRpbmcgYW4gaW5kZXhlZCBzZXR0
ZXIgb24gdGhlIGdsb2JhbCBvYmplY3QgZG9lc24ndCBicmVhayB0aGluZ3MuIgogKTsKIAotdmFy
IHRoaW5neTsKLQotdGhpcy5fX2RlZmluZVNldHRlcl9fKDQyLCBmdW5jdGlvbih2YWx1ZSkgewot
ICAgIHRoaW5neSA9IHZhbHVlOwotfSk7CitzaG91bGRUaHJvd0Vycm9yTmFtZSgidGhpcy5fX2Rl
ZmluZVNldHRlcl9fKDQyLCBmdW5jdGlvbigpIHt9KSIsICJUeXBlRXJyb3IiKTsKIAogdGhpc1s0
Ml0gPSAiZm9vIjsKIAotc2hvdWxkQmUoInRoaW5neSIsICJcImZvb1wiIik7CitzaG91bGRCZSgi
dGhpc1s0Ml0iLCAidW5kZWZpbmVkIik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430397</attachid>
            <date>2021-06-02 13:40:32 -0700</date>
            <delta_ts>2021-06-07 11:29:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-225894-20210602234030.patch</filename>
            <type>text/plain</type>
            <size>32658</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4Mjk5KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA2LTAyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHJ1bnRpbWUvVHlwZUVycm9yLmg6CisgICAgICAgIChKU0M6OnR5
cGVFcnJvcik6CisKIDIwMjEtMDUtMzAgIENocmlzIER1bWV6ICA8Y2R1bWV6QGFwcGxlLmNvbT4K
IAogICAgICAgICBEcm9wIFVuY2hlY2tlZENvbmRpdGlvbiAvIFVuY2hlY2tlZExvY2sKSW5kZXg6
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVFcnJvci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5cGVFcnJvci5oCShyZXZpc2lvbiAyNzgy
OTkpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9UeXBlRXJyb3IuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzAsNyArMzAsOCBAQAogCiBuYW1lc3BhY2UgSlNDIHsKIAotaW5saW5lIGJv
b2wgdHlwZUVycm9yKEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRocm93U2NvcGUmIHNj
b3BlLCBib29sIHRocm93RXhjZXB0aW9uLCBBU0NJSUxpdGVyYWwgbWVzc2FnZSkKK3RlbXBsYXRl
PHR5cGVuYW1lIE1lc3NhZ2U+CitpbmxpbmUgYm9vbCB0eXBlRXJyb3IoSlNHbG9iYWxPYmplY3Qq
IGdsb2JhbE9iamVjdCwgVGhyb3dTY29wZSYgc2NvcGUsIGJvb2wgdGhyb3dFeGNlcHRpb24sIE1l
c3NhZ2UgbWVzc2FnZSkKIHsKICAgICBpZiAodGhyb3dFeGNlcHRpb24pCiAgICAgICAgIHRocm93
VHlwZUVycm9yKGdsb2JhbE9iamVjdCwgc2NvcGUsIG1lc3NhZ2UpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwko
cmV2aXNpb24gMjc4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsNTUgQEAKKzIwMjEtMDYtMDIgIEFsZXhleSBTaHZheWthICA8c2h2YWlr
YWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFdpbmRvdyBzaG91bGQgYmVoYXZlIGxpa2UgYSBs
ZWdhY3kgcGxhdGZvcm0gb2JqZWN0IHdpdGhvdXQgaW5kZXhlZCBzZXR0ZXIKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTg5NAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgY2hhbmdlIGZpeGVzIG1h
am9yIGludGVyb3AgaXNzdWUgYnkgZGlzYWxsb3dpbmcgZXhwYW5kbyBpbmRleGVkIHByb3BlcnRp
ZXMgb24gV2luZG93UHJveHksCisgICAgICAgIHJhaXNpbmcgVHlwZUVycm9yIG9ubHkgd2hlbiBu
ZWVkZWQsIHdoaWNoIGFsaWducyBXZWJLaXQgd2l0aCBCbGluayBhbmQgR2Vja28uCisKKyAgICAg
ICAgV2hpbGUgW1tEZWZpbmVPd25Qcm9wZXJ0eV1dIFsxXSBhbmQgW1tEZWxldGVdXSBbMl0gbWV0
aG9kcyBvZiBXaW5kb3dQcm94eSBhcmUgaW1wbGVtZW50ZWQKKyAgICAgICAgcHJlY2lzZWx5IHBl
ciBzcGVjLCBjdXJyZW50IFtbU2V0XV0gWzNdIGFsZ29yaXRobSBzZWVtcyB0byBhbGxvdyBpbnZv
a2luZyBzZXR0ZXJzIGZyb20KKyAgICAgICAgdGhlIHByb3RvdHlwZSBjaGFpbi4gQmxpbmsgYW5k
IEdlY2tvIGltcGxlbWVudCBzdHJpY3RlciBzZW1hbnRpY3MgYnkgZmFpbGluZyBlYXJseSByYXRo
ZXIKKyAgICAgICAgdGhhbiB0cmF2ZXJzaW5nIHRoZSBwcm90b3R5cGUgY2hhaW4sIGFzIGRvZXMg
dGhpcyBwYXRjaC4KKworICAgICAgICBUbyBhdm9pZCBicmVha2luZyBuYXRpdmUgYXBwcyB0aGF0
IGVpdGhlciBhZGQgZXhwYW5kbyBpbmRleGVkIHByb3BlcnRpZXMgdG8gV2luZG93UHJveHksIG9y
CisgICAgICAgIG1vcmUgbGlrZWx5IHJlYWQgLyB3cml0ZSBpbmRpY2VzIG9mIHNsb3BweSBmdW5j
dGlvbidzIHx0aGlzfCB2YWx1ZSwgd2hpY2ggYWNjaWRlbnRseSBoYXBwZW5zCisgICAgICAgIHRv
IGJlIGEgV2luZG93UHJveHksIHRoZSBuZXcgYmVoYXZpb3IgaXMgaW50cm9kdWNlZCBvbmx5IGZv
ciB3ZWIgY29udGVudCBhbmQgbmV3bHktYnVpbHQgYXBwcy4KKworICAgICAgICBTaW5jZSB1bmxp
a2UgcHV0QnlJbmRleCgpLCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoKSBtaWdodCBiZSBpbnZva2Vk
IHdpdGggVUlOVF9NQVgsIHdoaWNoIGlzCisgICAgICAgIG5vdCBhbiBhcnJheSBpbmRleCBbNF0s
IGlzSW5kZXgoKSBjaGVjayBpcyByZXF1aXJlZC4gSW4gZnV0dXJlLCBKU0Mgd2lsbCBiZSBmaXhl
ZCB0byByZW1vdmUKKyAgICAgICAgc3VjaCBjaGVja3MgZnJvbSBhbGwgaW5kZXhlZCBvdmVycmlk
ZXMuCisKKyAgICAgICAgRGVsZXRlUHJvcGVydHlTbG90OjpkaXNhYmxlQ2FjaGluZygpIGlzIG5v
dCBjYWxsZWQgYmVjYXVzZSBpbmRleGVkIGRlbGV0ZXMgYXJlIG5vdCBjdXJyZW50bHkKKyAgICAg
ICAgcmVwYXRjaGVkLCBhbmQgb25jZSB0aGV5IGFyZSwgY2FjaGVhYmlsaXR5IHNob3VsZCBiZSBp
bmZlcnJlZCBmcm9tIGFkZGVkIHR5cGUgaW5mbyBmbGFncy4KKworICAgICAgICBBbHNvLCByZW1v
dmVzIGV4dHJhIGpzRE9NV2luZG93R2V0T3duUHJvcGVydHlTbG90UmVzdHJpY3RlZEFjY2Vzcygp
IGNhbGwgZm9yIGluZGljZXMsIHdoaWNoCisgICAgICAgIGlzIG1pc3NpbmcgZnJvbSB0aGUgc3Bl
YyBbNV07IHRoaXMgaXMgdW5vYnNlcnZhYmxlLgorCisgICAgICAgIFsxXSBodHRwczovL2h0bWwu
c3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwjd2luZG93cHJveHkt
ZGVmaW5lb3ducHJvcGVydHkgKHN0ZXAgMi4xKQorICAgICAgICBbMl0gaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWRl
bGV0ZSAoc3RlcCAyLjEpCisgICAgICAgIFszXSBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3Jn
L211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwjd2luZG93cHJveHktc2V0IChzdGVwIDMpCisg
ICAgICAgIFs0XSBodHRwczovL3RjMzkuZXMvZWNtYTI2Mi8jYXJyYXktaW5kZXgKKyAgICAgICAg
WzVdIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dpbmRvdy1vYmplY3Qu
aHRtbCN3aW5kb3dwcm94eS1nZXRvd25wcm9wZXJ0eSAoc3RlcCAyLjUuMikKKworICAgICAgICBU
ZXN0czogaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13
aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLmh0
bWwKKyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLmh0bWwK
KyAgICAgICAgICAgICAgIGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC5o
dG1sCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6Om1ha2VVbnN1cHBvcnRlZEluZGV4ZWRTZXR0ZXJFcnJvck1lc3Nh
Z2UpOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaDoKKyAg
ICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjphbGxvd3NMZWdhY3lFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXMpOgorICAgICAgICAoV2Vi
Q29yZTo6SlNET01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgpOiBSZW1vdmUgb3V0
ZGF0ZWQgY29tbWVudHMuCisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6cHV0KToKKyAg
ICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpwdXRCeUluZGV4KTogUmVsZWFzZSBzY29wZSB3
aGVuIGNhbGxpbmcgQmFzZTo6cHV0QnlJbmRleCgpLCB3aGljaCBjb3VsZCB0aHJvdy4KKyAgICAg
ICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eSk6CisgICAgICAgIChXZWJD
b3JlOjpKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KToKKyAgICAgICAgKFdlYkNv
cmU6OkpTRE9NV2luZG93OjpkZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgICogcGxhdGZvcm0v
Y29jb2EvVmVyc2lvbkNoZWNrcy5oOgorCiAyMDIxLTA1LTMxICBEZWFuIEphY2tzb24gIDxkaW5v
QGFwcGxlLmNvbT4KIAogICAgICAgICBbV2ViWFJdIEF0dGFjaCBJT1N1cmZhY2UgdG8gV2ViWFJP
cGFxdWVGcmFtZWJ1ZmZlcgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01F
eGNlcHRpb25IYW5kbGluZy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAJKHJldmlzaW9uIDI3ODI5OSkKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yODAsNiArMjgwLDExIEBAIFN0cmluZyBtYWtlVGhpc1R5cGVFcnJvck1l
c3NhZ2UoY29uc3QgY2gKICAgICByZXR1cm4gbWFrZVN0cmluZygiQ2FuIG9ubHkgY2FsbCAiLCBp
bnRlcmZhY2VOYW1lLCAnLicsIGZ1bmN0aW9uTmFtZSwgIiBvbiBpbnN0YW5jZXMgb2YgIiwgaW50
ZXJmYWNlTmFtZSk7CiB9CiAKK1N0cmluZyBtYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJy
b3JNZXNzYWdlKGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpCit7CisgICAgcmV0dXJuIG1ha2VT
dHJpbmcoIkZhaWxlZCB0byBzZXQgYW4gaW5kZXhlZCBwcm9wZXJ0eSBvbiAiLCBpbnRlcmZhY2VO
YW1lLCAiOiBJbmRleGVkIHByb3BlcnR5IHNldHRlciBpcyBub3Qgc3VwcG9ydGVkLiIpOworfQor
CiBFbmNvZGVkSlNWYWx1ZSB0aHJvd1RoaXNUeXBlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYg
bGV4aWNhbEdsb2JhbE9iamVjdCwgSlNDOjpUaHJvd1Njb3BlJiBzY29wZSwgY29uc3QgY2hhciog
aW50ZXJmYWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKQogewogICAgIHJldHVybiB0
aHJvd1R5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgbWFrZVRoaXNUeXBlRXJy
b3JNZXNzYWdlKGludGVyZmFjZU5hbWUsIGZ1bmN0aW9uTmFtZSkpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9uSGFuZGxpbmcuaAkocmV2
aXNpb24gMjc4Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01FeGNlcHRp
b25IYW5kbGluZy5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw3IEBAIFdFQkNPUkVfRVhQ
T1JUIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3cKIEpTQzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dD
b25zdHJ1Y3RvclNjcmlwdEV4ZWN1dGlvbkNvbnRleHRVbmF2YWlsYWJsZUVycm9yKEpTQzo6SlNH
bG9iYWxPYmplY3QmLCBKU0M6OlRocm93U2NvcGUmLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1l
KTsKIAogU3RyaW5nIG1ha2VUaGlzVHlwZUVycm9yTWVzc2FnZShjb25zdCBjaGFyKiBpbnRlcmZh
Y2VOYW1lLCBjb25zdCBjaGFyKiBhdHRyaWJ1dGVOYW1lKTsKK1N0cmluZyBtYWtlVW5zdXBwb3J0
ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpOwog
CiBXRUJDT1JFX0VYUE9SVCBKU0M6OkVuY29kZWRKU1ZhbHVlIHRocm93VGhpc1R5cGVFcnJvcihK
U0M6OkpTR2xvYmFsT2JqZWN0JiwgSlNDOjpUaHJvd1Njb3BlJiwgY29uc3QgY2hhciogaW50ZXJm
YWNlTmFtZSwgY29uc3QgY2hhciogZnVuY3Rpb25OYW1lKTsKIApJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcAkocmV2aXNpb24gMjc4
Mjk5KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC01OSw2ICs1OSwxMCBAQAogI2luY2x1ZGUgIkpTV2ViS2l0TmFt
ZXNwYWNlLmgiCiAjZW5kaWYKIAorI2lmIFBMQVRGT1JNKENPQ09BKQorI2luY2x1ZGUgIlZlcnNp
b25DaGVja3MuaCIKKyNlbmRpZgorCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiB1c2luZyBuYW1lc3Bh
Y2UgSlNDOwogCkBAIC05MSw2ICs5NSwxNiBAQCBKU0NfREVGSU5FX0NVU1RPTV9HRVRURVIoanNE
T01XaW5kb3dfd2ViCiB9CiAjZW5kaWYKIAoraW5saW5lIHN0YXRpYyBib29sIGFsbG93c0xlZ2Fj
eUV4cGFuZG9JbmRleGVkUHJvcGVydGllcygpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAg
c3RhdGljIGJvb2wgbGlua2VkV2l0aE5ld1NESyA9IGxpbmtlZE9uT3JBZnRlcihTREtWZXJzaW9u
OjpGaXJzdFdpdGhvdXRFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdyk7CisjZWxzZQor
ICAgIHN0YXRpYyBib29sIGxpbmtlZFdpdGhOZXdTREsgPSB0cnVlOworI2VuZGlmCisgICAgcmV0
dXJuICFsaW5rZWRXaXRoTmV3U0RLOworfQorCiB0ZW1wbGF0ZSA8RE9NV2luZG93VHlwZSB3aW5k
b3dUeXBlPgogYm9vbCBqc0RPTVdpbmRvd0dldE93blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRBY2Nl
c3MoSlNET01HbG9iYWxPYmplY3QqIHRoaXNPYmplY3QsIEFic3RyYWN0RE9NV2luZG93JiB3aW5k
b3csIEpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QsIGNvbnN0IFN0cmluZyYgZXJyb3JNZXNzYWdl
KQogewpAQCAtMjE4LDEzICsyMzIsOCBAQCBib29sIEpTRE9NV2luZG93OjpnZXRPd25Qcm9wZXJ0
eVNsb3QoSlNPCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCi0vLyBQcm9wZXJ0eSBhY2Nlc3Mgc2Vx
dWVuY2UgaXM6Ci0vLyAoMSkgaW5kZXhlZCBwcm9wZXJ0aWVzLAotLy8gKDIpIHJlZ3VsYXIgb3du
IHByb3BlcnRpZXMsCi0vLyAoMykgbmFtZWQgcHJvcGVydGllcyAoaW4gZmFjdCwgdGhlc2Ugc2hv
dWxkbid0IGJlIG9uIHRoZSB3aW5kb3csIHNob3VsZCBiZSBvbiB0aGUgTlBPKS4KIGJvb2wgSlNE
T01XaW5kb3c6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgSlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7Ci0gICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTRE9NV2luZG93Kj4ob2JqZWN0KTsKICAg
ICBhdXRvJiB3aW5kb3cgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCk7CiAgICAgYXV0byogZnJhbWUg
PSB3aW5kb3cuZnJhbWUoKTsKQEAgLTIzMiwyMCArMjQxLDE3IEBAIGJvb2wgSlNET01XaW5kb3c6
OmdldE93blByb3BlcnR5U2xvdEJ5SW4KICAgICAvLyBJbmRleGVkIGdldHRlcnMgdGFrZSBwcmVj
ZW5kZW5jZSBvdmVyIHJlZ3VsYXIgcHJvcGVydGllcywgc28gY2FjaGluZyB3b3VsZCBiZSBpbnZh
bGlkLgogICAgIHNsb3QuZGlzYWJsZUNhY2hpbmcoKTsKIAotICAgIC8vICgxKSBGaXJzdCwgaW5k
ZXhlZCBwcm9wZXJ0aWVzLgogICAgIC8vIFRoZXNlIGFyZSBhbHNvIGFsbG93ZWQgY3Jvc3Mtb3Jp
Z2luLCBzbyBjb21lIGJlZm9yZSB0aGUgYWNjZXNzIGNoZWNrLgogICAgIGlmIChmcmFtZSAmJiBp
bmRleCA8IGZyYW1lLT50cmVlKCkuc2NvcGVkQ2hpbGRDb3VudCgpKSB7CiAgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEpTQzo6UHJvcGVydHlB
dHRyaWJ1dGU6OlJlYWRPbmx5KSwgdG9KUyhsZXhpY2FsR2xvYmFsT2JqZWN0LCBmcmFtZS0+dHJl
ZSgpLnNjb3BlZENoaWxkKGluZGV4KS0+ZG9jdW1lbnQoKS0+ZG9tV2luZG93KCkpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgLy8gSGFuZCBvZmYgYWxsIGNyb3NzLWRvbWFp
bi9mcmFtZWxlc3MgYWNjZXNzIHRvIGpzRE9NV2luZG93R2V0T3duUHJvcGVydHlTbG90UmVzdHJp
Y3RlZEFjY2Vzcy4KLSAgICBTdHJpbmcgZXJyb3JNZXNzYWdlOwotICAgIGlmICghQmluZGluZ1Nl
Y3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KCpsZXhpY2FsR2xvYmFsT2JqZWN0
LCB3aW5kb3csIGVycm9yTWVzc2FnZSkpCi0gICAgICAgIHJldHVybiBqc0RPTVdpbmRvd0dldE93
blByb3BlcnR5U2xvdFJlc3RyaWN0ZWRBY2Nlc3M8RE9NV2luZG93VHlwZTo6TG9jYWw+KHRoaXNP
YmplY3QsIHdpbmRvdywgKmxleGljYWxHbG9iYWxPYmplY3QsIElkZW50aWZpZXI6OmZyb20odm0s
IGluZGV4KSwgc2xvdCwgZXJyb3JNZXNzYWdlKTsKLQotICAgIC8vICgyKSBSZWd1bGFyIG93biBw
cm9wZXJ0aWVzLgotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRo
aXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIGluZGV4LCBzbG90KTsKKyAgICBpZiAoIUJp
bmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RPTVdpbmRvdyhsZXhpY2FsR2xvYmFs
T2JqZWN0LCB3aW5kb3csIFRocm93U2VjdXJpdHlFcnJvcikpCisgICAgICAgIHJldHVybiBmYWxz
ZTsKKyAgICBpZiAoYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkpCisgICAg
ICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIGxl
eGljYWxHbG9iYWxPYmplY3QsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gZmFsc2U7CiB9CiAK
IHZvaWQgSlNET01XaW5kb3c6OmRvUHV0UHJvcGVydHlTZWN1cml0eUNoZWNrKEpTT2JqZWN0KiBj
ZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgUHV0UHJvcGVydHlTbG90JikKQEAgLTI4NSw2ICsyOTEsOCBAQCBib29sIEpT
RE9NV2luZG93OjpwdXQoSlNDZWxsKiBjZWxsLCBKU0dsCiAgICAgICAgIHJldHVybiBmYWxzZTsK
ICAgICB9CiAKKyAgICBpZiAocGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpICYmICFhbGxvd3NMZWdh
Y3lFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXMoKSkKKyAgICAgICAgcmV0dXJuIHR5cGVFcnJvcihs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBzY29wZSwgc2xvdC5pc1N0cmljdE1vZGUoKSwgbWFrZVVuc3Vw
cG9ydGVkSW5kZXhlZFNldHRlckVycm9yTWVzc2FnZSgiV2luZG93IikpOwogICAgIFJFTEVBU0Vf
QU5EX1JFVFVSTihzY29wZSwgQmFzZTo6cHV0KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3QpKTsKIH0KIApAQCAtMzAwLDcgKzMwOCwxMiBA
QCBib29sIEpTRE9NV2luZG93OjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICB9CiAgICAgCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgodGhpc09i
amVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7Cisg
ICAgaWYgKGFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcygpKSB7CisgICAgICAg
IGlmIChhdXRvKiBkb2N1bWVudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5kb2N1bWVudCgpKQor
ICAgICAgICAgICAgZG9jdW1lbnQtPmFkZENvbnNvbGVNZXNzYWdlKE1lc3NhZ2VTb3VyY2U6OkpT
LCBNZXNzYWdlTGV2ZWw6Oldhcm5pbmcsICJBZGRpbmcgZXhwYW5kbyBpbmRleGVkIHByb3BlcnRp
ZXMgdG8gJ3dpbmRvdycgd2FzIGEgbm9uLXN0YW5kYXJkIGJlaGF2aW9yIHRoYXQgaXMgbm93IHJl
bW92ZWQuIl9zKTsKKyAgICAgICAgUkVMRUFTRV9BTkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpwdXRC
eUluZGV4KHRoaXNPYmplY3QsIGxleGljYWxHbG9iYWxPYmplY3QsIGluZGV4LCB2YWx1ZSwgc2hv
dWxkVGhyb3cpKTsKKyAgICB9CisgICAgcmV0dXJuIHR5cGVFcnJvcihsZXhpY2FsR2xvYmFsT2Jq
ZWN0LCBzY29wZSwgc2hvdWxkVGhyb3csIG1ha2VVbnN1cHBvcnRlZEluZGV4ZWRTZXR0ZXJFcnJv
ck1lc3NhZ2UoIldpbmRvdyIpKTsKIH0KIAogYm9vbCBKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVy
dHkoSlNDZWxsKiBjZWxsLCBKU0dsb2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgRGVsZXRlUHJvcGVydHlTbG90JiBzbG90KQpAQCAtMzA5
LDYgKzMyMiwxMCBAQCBib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqCiAg
ICAgLy8gT25seSBhbGxvdyBkZWxldGluZyBwcm9wZXJ0aWVzIGJ5IGZyYW1lcyBpbiB0aGUgc2Ft
ZSBvcmlnaW4uCiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9E
T01XaW5kb3cobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3JhcHBlZCgpLCBUaHJv
d1NlY3VyaXR5RXJyb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHN0ZDo6b3B0
aW9uYWw8dWludDMyX3Q+IGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAg
ICAgIGlmICghYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkpCisgICAgICAg
ICAgICByZXR1cm4gaW5kZXgudmFsdWUoKSA+PSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCk7CisgICAgfQogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eSh0aGlzT2JqZWN0LCBs
ZXhpY2FsR2xvYmFsT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCkBAIC0zMTgsNiAr
MzM1LDggQEAgYm9vbCBKU0RPTVdpbmRvdzo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KAogICAgIC8v
IE9ubHkgYWxsb3cgZGVsZXRpbmcgcHJvcGVydGllcyBieSBmcmFtZXMgaW4gdGhlIHNhbWUgb3Jp
Z2luLgogICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2lu
ZG93KGxleGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QtPndyYXBwZWQoKSwgVGhyb3dTZWN1
cml0eUVycm9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChpc0luZGV4KHByb3Bl
cnR5TmFtZSkgJiYgIWFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcygpKQorICAg
ICAgICByZXR1cm4gcHJvcGVydHlOYW1lID49IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KTsKICAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KHRoaXNPYmplY3QsIGxl
eGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSk7CiB9CiAKQEAgLTQwOSwxMiArNDI4LDE4
IEBAIHZvaWQgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5TmFtZXMoSlMKIAogYm9vbCBKU0RP
TVdpbmRvdzo6ZGVmaW5lT3duUHJvcGVydHkoSlNDOjpKU09iamVjdCogb2JqZWN0LCBKU0M6OkpT
R2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBKU0M6OlByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IEpTQzo6UHJvcGVydHlEZXNjcmlwdG9yJiBkZXNjcmlwdG9yLCBib29s
IHNob3VsZFRocm93KQogeworICAgIFZNJiB2bSA9IGxleGljYWxHbG9iYWxPYmplY3QtPnZtKCk7
CisgICAgYXV0byBzY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0pOworCiAgICAgSlNET01X
aW5kb3cqIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwogICAgIC8v
IE9ubHkgYWxsb3cgZGVmaW5pbmcgcHJvcGVydGllcyBpbiB0aGlzIHdheSBieSBmcmFtZXMgaW4g
dGhlIHNhbWUgb3JpZ2luLCBhcyBpdCBhbGxvd3Mgc2V0dGVycyB0byBiZSBpbnRyb2R1Y2VkLgog
ICAgIGlmICghQmluZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxl
eGljYWxHbG9iYWxPYmplY3QsIHRoaXNPYmplY3QtPndyYXBwZWQoKSwgVGhyb3dTZWN1cml0eUVy
cm9yKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIGlmIChwYXJzZUluZGV4KHByb3BlcnR5
TmFtZSkgJiYgIWFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcygpKQorICAgICAg
ICByZXR1cm4gdHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBzaG91bGRUaHJv
dywgbWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNldHRlckVycm9yTWVzc2FnZSgiV2luZG93IikpOwor
ICAgIHNjb3BlLnJlbGVhc2UoKTsKIAotICAgIGF1dG8mIGJ1aWx0aW5OYW1lcyA9IHN0YXRpY19j
YXN0PEpTVk1DbGllbnREYXRhKj4obGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKS5jbGllbnREYXRh
KS0+YnVpbHRpbk5hbWVzKCk7CisgICAgYXV0byYgYnVpbHRpbk5hbWVzID0gc3RhdGljX2Nhc3Q8
SlNWTUNsaWVudERhdGEqPih2bS5jbGllbnREYXRhKS0+YnVpbHRpbk5hbWVzKCk7CiAgICAgaWYg
KHByb3BlcnR5TmFtZSA9PSBidWlsdGluTmFtZXMuZG9jdW1lbnRQdWJsaWNOYW1lKCkgfHwgcHJv
cGVydHlOYW1lID09IGJ1aWx0aW5OYW1lcy53aW5kb3dQdWJsaWNOYW1lKCkpCiAgICAgICAgIHJl
dHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkodGhpc09iamVjdCwgbGV4aWNhbEdsb2Jh
bE9iamVjdCwgcHJvcGVydHlOYW1lLCBkZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLmgJKHJldmlz
aW9uIDI3ODI5OSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVj
a3MuaAkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsNyBAQCBlbnVtIGNsYXNzIFNES1ZlcnNp
b24gOiB1aW50MzJfdCB7CiAgICAgRmlyc3RXaXRoU2hhcmVkTmV0d29ya1Byb2Nlc3MgPSBEWUxE
X0lPU19WRVJTSU9OXzE0XzUsCiAgICAgRmlyc3RXaXRoQmxhbmtWaWV3T25KU1Byb21wdCA9IERZ
TERfSU9TX1ZFUlNJT05fMTRfNSwKICAgICBGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJs
ZWRCeURlZmF1bHQgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzAsCisgICAgRmlyc3RXaXRob3V0RXhw
YW5kb0luZGV4ZWRQcm9wZXJ0aWVzT25XaW5kb3cgPSBEWUxEX0lPU19WRVJTSU9OXzE1XzAsCiAj
ZWxpZiBQTEFURk9STShNQUMpCiAgICAgRmlyc3RXaXRoTmV0d29ya0NhY2hlID0gRFlMRF9NQUNP
U1hfVkVSU0lPTl8xMF8xMSwKICAgICBGaXJzdFdpdGhFeGNlcHRpb25zRm9yRHVwbGljYXRlQ29t
cGxldGlvbkhhbmRsZXJDYWxscyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTBfMTMsCkBAIC05Niw2
ICs5Nyw3IEBAIGVudW0gY2xhc3MgU0RLVmVyc2lvbiA6IHVpbnQzMl90IHsKICAgICBGaXJzdFdp
dGhET01XaW5kb3dSZXVzZVJlc3RyaWN0aW9uID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMV8zLAog
ICAgIEZpcnN0V2l0aEJsYW5rVmlld09uSlNQcm9tcHQgPSBEWUxEX01BQ09TWF9WRVJTSU9OXzEx
XzMsCiAgICAgRmlyc3RXaXRoQXBwbGljYXRpb25DYWNoZURpc2FibGVkQnlEZWZhdWx0ID0gRFlM
RF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKKyAgICBGaXJzdFdpdGhvdXRFeHBhbmRvSW5kZXhlZFBy
b3BlcnRpZXNPbldpbmRvdyA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTJfMDAsCiAjZW5kaWYKIH07
CiAKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDI3ODI5OSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwko
d29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDIxLTA2LTAyICBBbGV4ZXkgU2h2YXlr
YSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2
ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisg
ICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9t
L1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3MuaHRtbDoKKyAgICAgICAgKiBmYXN0L2ZyYW1l
cy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwtZXhwZWN0ZWQudHh0
OgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3Jp
dGFibGUtZXZhbC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJh
bWUtYWNjZXNzLWRlbGV0ZS1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1
cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sOgor
ICAgICAgICAqIGpzL2RvbS9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24td2luZG93LWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVj
dC1leHBlY3RlZC50eHQ6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9kZmctZW5zdXJl
LWFycmF5LXN0b3JhZ2Utb24td2luZG93LmpzOgorICAgICAgICAqIGpzL2RvbS9zY3JpcHQtdGVz
dHMvZGZnLWVuc3VyZS1ub24tYXJyYXktYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanM6CisgICAg
ICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwtb2JqZWN0
LmpzOgorCiAyMDIxLTA1LTMxICBEaWVnbyBQaW5vIEdhcmNpYSAgPGRwaW5vQGlnYWxpYS5jb20+
CiAKICAgICAgICAgW0dMSUJdIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcuIFVwZGF0ZSBiYXNl
bGluZXMgYWZ0ZXIgcjI3Nzk3MC4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9v
cnBoYW5lZC1mcmFtZS1hY2Nlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0
L2RvbS9XaW5kb3cvb3JwaGFuZWQtZnJhbWUtYWNjZXNzLmh0bWwJKHJldmlzaW9uIDI3ODI5OSkK
KysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3MuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCB3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7CiAgICAgLy8gc2NoZWR1bGUgdG8gcnVuIGFmdGVyIHRoZSBmcmFtZSBpcyBudWxsCiAg
ICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW4udGVzdCB8fCAncHJvcGVydHk6IEZBSUwg
Li4uICcpKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVh
dGVUZXh0Tm9kZSh3aW5bMjBdIHx8ICdhcnJheTogRkFJTCAuLi4gJykpOworICAgICAgICBkb2N1
bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpblsyMF0gPT09
IHVuZGVmaW5lZCA/ICdhcnJheTogUEFTUyAuLi4gJyA6ICdhcnJheTogRkFJTCAuLi4gJykpOwog
ICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KHdpbi5Db21tZW50ID8gJ2NvbnN0cnVjdG9yOiBQQVNTIC4uLi4gJyA6ICdjb25zdHJ1Y3Rvcjog
RkFJTCAuLi4gJykpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKHdpbi5wb3N0TWVzc2FnZSA/ICdvcGVyYXRpb246IFBBU1MuJyA6ICdv
cGVyYXRpb246IEZBSUwuJykpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCkluZGV4
OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdy
aXRhYmxlLWV2YWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3Qv
ZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBlY3Rl
ZC50eHQJKHJldmlzaW9uIDI3ODI5OSkKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lmcmFt
ZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTQsOSArNCw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmll
cyBvZiAiUEEKIAogCiBQQVNTICgpID0+IGZvbyBpcyAyCi1QQVNTICgpID0+IGdsb2JhbFRoaXNb
MF0gaXMgMgorUEFTUyAoKSA9PiBnbG9iYWxUaGlzWzBdIGlzIHVuZGVmaW5lZAogUEFTUyBpZnJh
bWVDb250ZW50V2luZG93LmZvbyBpcyAyCi1QQVNTIGlmcmFtZUNvbnRlbnRXaW5kb3dbMF0gaXMg
MgorUEFTUyBpZnJhbWVDb250ZW50V2luZG93WzBdIGlzIHVuZGVmaW5lZAogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQt
d2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRtbAkocmV2aXNpb24gMjc4Mjk5KQorKysgTGF5
b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGlsbC13cml0YWJs
ZS1ldmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDEwICsxNSwxMCBAQAogICAgICAgICBm
b28rKzsKICAgICAgICAgZ2xvYmFsVGhpc1swXSsrOwogICAgICAgICBzaG91bGRCZSgoKSA9PiBm
b28sICIyIik7Ci0gICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0sICIyIik7Cisg
ICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0sICJ1bmRlZmluZWQiKTsKICAgICBg
KTsKICAgICBzaG91bGRCZSgiaWZyYW1lQ29udGVudFdpbmRvdy5mb28iLCAiMiIpOwotICAgIHNo
b3VsZEJlKCJpZnJhbWVDb250ZW50V2luZG93WzBdIiwgIjIiKTsKKyAgICBzaG91bGRCZSgiaWZy
YW1lQ29udGVudFdpbmRvd1swXSIsICJ1bmRlZmluZWQiKTsKIDwvc2NyaXB0PgogPC9ib2R5Pgog
PC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3RzL2h0
dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFt
ZS1hY2Nlc3MtZGVsZXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc4Mjk5KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLWV4cGVj
dGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBGcmFtZTogJzwhLS1mcmFt
ZTEtLT4nCiAtLS0tLSB0ZXN0cyBmb3IgZGVsZXRpbmcgdGhlIHByb3BlcnRpZXMgb2Ygd2luZG93
LCB3aW5kb3cuaGlzdG9yeSwgYW5kIHdpbmRvdy5sb2NhdGlvbiBjcm9zcy1kb21haW4gLS0tLS0K
IAogUEFTUzogd2luZG93LmV4aXN0aW5nUHJvcGVydHkgc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBh
bmQgaXMuCi1QQVNTOiB3aW5kb3dbMV0gc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQgaXMuCitQ
QVNTOiB3aW5kb3dbMV0gc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KIFBBU1M6IHdpbmRv
dy5oaXN0b3J5LmV4aXN0aW5nUHJvcGVydHkgc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQgaXMu
CiBQQVNTOiB3aW5kb3cuaGlzdG9yeVsxXSBzaG91bGQgYmUgJ3Rlc3QgdmFsdWUnIGFuZCBpcy4K
IFBBU1M6IHdpbmRvdy5sb2NhdGlvbi5leGlzdGluZ1Byb3BlcnR5IHNob3VsZCBiZSAndGVzdCB2
YWx1ZScgYW5kIGlzLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNv
dXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZyYW1l
LWlmcmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbAkocmV2aXNpb24gMjc4Mjk5KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZv
ci1kZWxldGUtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAgICAg
ICAgICAgICBsb2coIlxuLS0tLS0gdGVzdHMgZm9yIGRlbGV0aW5nIHRoZSBwcm9wZXJ0aWVzIG9m
IHdpbmRvdywgd2luZG93Lmhpc3RvcnksIGFuZCB3aW5kb3cubG9jYXRpb24gY3Jvc3MtZG9tYWlu
IC0tLS0tXG4iKTsKIAogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5leGlzdGluZ1Byb3Bl
cnR5IiwgIid0ZXN0IHZhbHVlJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvd1sxXSIs
ICIndGVzdCB2YWx1ZSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3dbMV0iLCAidW5k
ZWZpbmVkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmhpc3RvcnkuZXhpc3RpbmdQ
cm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3cu
aGlzdG9yeVsxXSIsICIndGVzdCB2YWx1ZSciKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cubG9jYXRpb24uZXhpc3RpbmdQcm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsKSW5kZXg6IExh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4MzY5KQorKysgTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBA
CisyMDIxLTA2LTAyICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13
aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUt
bm8tY2FjaGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhl
LXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5k
b3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0Lmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2lu
ZG93LWluZGV4ZWQtcHJvcGVydGllcy5odG1sOgorCiAyMDIxLTA2LTAyICBNYXJ0aW4gUm9iaW5z
b24gIDxtcm9iaW5zb25AaWdhbGlhLmNvbT4KIAogICAgICAgICBbY3NzLXNjcm9sbC1zbmFwXSBT
Y3JvbGwgc25hcCBpcyBicm9rZW4gd2l0aCBub24taG9yaXpvbnRhbCB3cml0aW5nIG1vZGVzCklu
ZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUt
bm8tY2FjaGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93
aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS1leHBlY3RlZC50eHQJKG5v
bmV4aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRp
ZXMtZGVsZXRlLW5vLWNhY2hlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsx
LDQgQEAKKworUEFTUyBBYnNlbmNlIG9mIGluZGV4ICcwJyBpcyBub3QgY2FjaGVkCitQQVNTIFBy
ZXNlbmNlIG9mIGluZGV4ICcwJyBpcyBub3QgY2FjaGVkCisKSW5kZXg6IExheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9i
amVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRl
bGV0ZS1uby1jYWNoZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93
aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCSh3b3JraW5nIGNv
cHkpCkBAIC0wLDAgKzEsMzEgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYt
OD4KKzx0aXRsZT5EZWxldGlvbiBvZiBXaW5kb3dQcm94eSdzIGluZGV4ZWQgcHJvcGVydGllcyBp
cyBub3QgY2FjaGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5
LWRlbGV0ZSI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8ZGl2IGlkPWxvZz48L2Rpdj4KKzxzY3JpcHQ+Citjb25zdCBpZnJhbWUgPSBkb2N1bWVu
dC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKK2lmcmFtZS5zcmNkb2MgPSAiIjsKKwordGVzdCgo
KSA9PiB7CisgIGFzc2VydF9lcXVhbHMod2luZG93Lmxlbmd0aCwgMCk7CisgIGZvciAobGV0IGkg
PSAwOyBpIDwgMWU1OyBpKyspIHsKKyAgICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzBdKTsK
KyAgfQorCisgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGlmcmFtZSk7CisgIGFzc2VydF9mYWxzZShk
ZWxldGUgd2luZG93WzBdKTsKK30sICJBYnNlbmNlIG9mIGluZGV4ICcwJyBpcyBub3QgY2FjaGVk
Iik7CisKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5sZW5ndGgsIDEpOwor
ICBmb3IgKGxldCBpID0gMDsgaSA8IDFlNTsgaSsrKSB7CisgICAgYXNzZXJ0X2ZhbHNlKGRlbGV0
ZSB3aW5kb3dbMF0pOworICB9CisKKyAgaWZyYW1lLnJlbW92ZSgpOworICBhc3NlcnRfdHJ1ZShk
ZWxldGUgd2luZG93WzBdKTsKK30sICJQcmVzZW5jZSBvZiBpbmRleCAnMCcgaXMgbm90IGNhY2hl
ZCIpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQt
cHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzgyOTkp
CisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw5IEBACiAKIFBBU1MgSW5kZXhlZCBwcm9w
ZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpCiBQQVNTIEVuc3Vy
ZSBpbmRleGVkIHByb3BlcnRpZXMgaGF2ZSB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uCi1GQUlM
IEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBtb2Rl
KSAxIGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVy
dHkod2luZG93LCAwLCB7IHZhbHVlOiAiYmFyIiB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBJbmRl
eGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkgMiBh
c3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHdp
bmRvdywgMSwgeyB2YWx1ZTogImJhciIgfSkiIGRpZCBub3QgdGhyb3cKK1BBU1MgSW5kZXhlZCBw
cm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpIDEKK1BBU1Mg
SW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUp
IDIKK1BBU1MgQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDIgaXMgYW4gaW5kZXgK
K1BBU1MgQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDEgaXMgbm90IGFuIGluZGV4
CiBQQVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmlj
dCBtb2RlKSAzCiAKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9w
ZXJ0aWVzLXN0cmljdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2Jq
ZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjc4Mjk5KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRp
ZXMtc3RyaWN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSw4IEBACiAK
IFBBU1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9k
ZSkKLUZBSUwgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3Qg
bW9kZSkgMSBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIHdp
bmRvd1swXSA9ICJmb28iOwotICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIEluZGV4ZWQgcHJvcGVy
dGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1vZGUpIDIgYXNzZXJ0X3Rocm93c19q
czogZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICB3aW5kb3dbMV0gPSAiZm9vIjsKLSAgfSIg
ZGlkIG5vdCB0aHJvdworUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmpl
Y3QgKHN0cmljdCBtb2RlKSAxCitQQVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93
IG9iamVjdCAoc3RyaWN0IG1vZGUpIDIKK1BBU1MgQm9yZGVybGluZSBudW1lcmljIGtleTogMiAq
KiAzMiAtIDIgaXMgYW4gaW5kZXggKHN0cmljdCBtb2RlKQorUEFTUyBCb3JkZXJsaW5lIG51bWVy
aWMga2V5OiAyICoqIDMyIC0gMSBpcyBub3QgYW4gaW5kZXggKHN0cmljdCBtb2RlKQogUEFTUyBJ
bmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKHN0cmljdCBtb2RlKSAzCiAK
SW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmlj
dC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1w
cm9wZXJ0aWVzLXN0cmljdC5odG1sCShyZXZpc2lvbiAyNzgyOTkpCisrKyBMYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1v
YmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QuaHRtbAkod29ya2luZyBjb3B5
KQpAQCAtNDQsNiArNDQsMjkgQEAgdGVzdChmdW5jdGlvbigpIHsKIH0pOwogdGVzdChmdW5jdGlv
bigpIHsKICAgInVzZSBzdHJpY3QiOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkg
PT4geyB3aW5kb3dbNDI5NDk2NzI5NF0gPSAxOyB9KTsKKyAgYXNzZXJ0X2ZhbHNlKFJlZmxlY3Qu
c2V0KHdpbmRvdywgNDI5NDk2NzI5NCwgMikpOworICBhc3NlcnRfZmFsc2UoUmVmbGVjdC5kZWZp
bmVQcm9wZXJ0eSh3aW5kb3csIDQyOTQ5NjcyOTQsIHsgdmFsdWU6IDMgfSkpOworICBhc3NlcnRf
dGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywg
NDI5NDk2NzI5NCwgeyBnZXQ6ICgpID0+IDQgfSkpOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0
Mjk0OTY3Mjk0XSwgdW5kZWZpbmVkKTsKKyAgYXNzZXJ0X2ZhbHNlKDQyOTQ5NjcyOTQgaW4gd2lu
ZG93KTsKKyAgYXNzZXJ0X3RydWUoZGVsZXRlIHdpbmRvd1s0Mjk0OTY3Mjk0XSk7Cit9LCAiQm9y
ZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDIgaXMgYW4gaW5kZXggKHN0cmljdCBtb2Rl
KSIpOwordGVzdChmdW5jdGlvbigpIHsKKyAgInVzZSBzdHJpY3QiOworICB3aW5kb3dbNDI5NDk2
NzI5NV0gPSAxOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMSk7CisgIGFz
c2VydF90cnVlKFJlZmxlY3Quc2V0KHdpbmRvdywgNDI5NDk2NzI5NSwgMikpOworICBhc3NlcnRf
ZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMik7CisgIGFzc2VydF90cnVlKFJlZmxlY3QuZGVm
aW5lUHJvcGVydHkod2luZG93LCA0Mjk0OTY3Mjk1LCB7IHZhbHVlOiAzIH0pKTsKKyAgYXNzZXJ0
X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDMpOworICBPYmplY3QuZGVmaW5lUHJvcGVydHko
d2luZG93LCA0Mjk0OTY3Mjk1LCB7IGdldDogKCkgPT4gNCB9KTsKKyAgYXNzZXJ0X2VxdWFscyh3
aW5kb3dbNDI5NDk2NzI5NV0sIDQpOworICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5
NjcyOTVdKTsKKyAgYXNzZXJ0X2ZhbHNlKDQyOTQ5NjcyOTUgaW4gd2luZG93KTsKK30sICJCb3Jk
ZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMSBpcyBub3QgYW4gaW5kZXggKHN0cmljdCBt
b2RlKSIpOwordGVzdChmdW5jdGlvbigpIHsKKyAgInVzZSBzdHJpY3QiOwogICB2YXIgcHJvdG8g
PSBXaW5kb3cucHJvdG90eXBlOwogICBbLTEsIDAsIDFdLmZvckVhY2goZnVuY3Rpb24oaWR4KSB7
CiAgICAgYXNzZXJ0X2ZhbHNlKGlkeCBpbiBwcm90bywgaWR4ICsgIiBpbiBwcm90byIpOwpJbmRl
eDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dz
ZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy5o
dG1sCShyZXZpc2lvbiAyNzgyOTkpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4
ZWQtcHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwyNyBAQCB0ZXN0
KGZ1bmN0aW9uKCkgewogICBhc3NlcnRfZXF1YWxzKGRlbGV0ZSB3aW5kb3dbMV0sIHRydWUpOwog
fSk7CiB0ZXN0KGZ1bmN0aW9uKCkgeworICB3aW5kb3dbNDI5NDk2NzI5NF0gPSAxOworICBhc3Nl
cnRfZmFsc2UoUmVmbGVjdC5zZXQod2luZG93LCA0Mjk0OTY3Mjk0LCAyKSk7CisgIGFzc2VydF9m
YWxzZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NCwgeyB2YWx1ZTog
MyB9KSk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBPYmplY3QuZGVmaW5l
UHJvcGVydHkod2luZG93LCA0Mjk0OTY3Mjk0LCB7IGdldDogKCkgPT4gNCB9KSk7CisgIGFzc2Vy
dF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTRdLCB1bmRlZmluZWQpOworICBhc3NlcnRfZmFsc2Uo
NDI5NDk2NzI5NCBpbiB3aW5kb3cpOworICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5
NjcyOTRdKTsKK30sICJCb3JkZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMiBpcyBhbiBp
bmRleCIpOwordGVzdChmdW5jdGlvbigpIHsKKyAgd2luZG93WzQyOTQ5NjcyOTVdID0gMTsKKyAg
YXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDEpOworICBhc3NlcnRfdHJ1ZShSZWZs
ZWN0LnNldCh3aW5kb3csIDQyOTQ5NjcyOTUsIDIpKTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3db
NDI5NDk2NzI5NV0sIDIpOworICBhc3NlcnRfdHJ1ZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHdp
bmRvdywgNDI5NDk2NzI5NSwgeyB2YWx1ZTogMyB9KSk7CisgIGFzc2VydF9lcXVhbHMod2luZG93
WzQyOTQ5NjcyOTVdLCAzKTsKKyAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2
NzI5NSwgeyBnZXQ6ICgpID0+IDQgfSk7CisgIGFzc2VydF9lcXVhbHMod2luZG93WzQyOTQ5Njcy
OTVdLCA0KTsKKyAgYXNzZXJ0X3RydWUoZGVsZXRlIHdpbmRvd1s0Mjk0OTY3Mjk1XSk7CisgIGFz
c2VydF9mYWxzZSg0Mjk0OTY3Mjk1IGluIHdpbmRvdyk7Cit9LCAiQm9yZGVybGluZSBudW1lcmlj
IGtleTogMiAqKiAzMiAtIDEgaXMgbm90IGFuIGluZGV4Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgewog
ICB2YXIgcHJvdG8gPSBXaW5kb3cucHJvdG90eXBlOwogICBbLTEsIDAsIDFdLmZvckVhY2goZnVu
Y3Rpb24oaWR4KSB7CiAgICAgYXNzZXJ0X2ZhbHNlKGlkeCBpbiBwcm90bywgaWR4ICsgIiBpbiBw
cm90byIpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFn
ZS1vbi13aW5kb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2Rv
bS9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24td2luZG93LWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjc4Mjk5KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFn
ZS1vbi13aW5kb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBU
ZXN0cyB0aGF0IHBhc3NpbmcgdGhlIGdsb2JhbCBvYmplY3QgdG8gCiBPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCiAKIAotUEFTUyBmb28odykgaXMgMQorUEFTUyBmb28odykgaXMgTmFOCiBQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91
dFRlc3RzL2pzL2RvbS9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwtb2JqZWN0LWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vaW5kZXhlZC1zZXR0ZXItb24tZ2xv
YmFsLW9iamVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3ODI5OSkKKysrIExheW91dFRlc3Rz
L2pzL2RvbS9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwtb2JqZWN0LWV4cGVjdGVkLnR4dAkod29y
a2luZyBjb3B5KQpAQCAtMyw3ICszLDggQEAgVGVzdHMgdGhhdCBjcmVhdGluZyBhbiBpbmRleGVk
IHNldHRlciBvbgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgdGhpbmd5IGlz
ICJmb28iCitQQVNTIHRoaXMuX19kZWZpbmVTZXR0ZXJfXyg0MiwgZnVuY3Rpb24oKSB7fSkgdGhy
ZXcgZXhjZXB0aW9uIFR5cGVFcnJvcjogRmFpbGVkIHRvIHNldCBhbiBpbmRleGVkIHByb3BlcnR5
IG9uIFdpbmRvdzogSW5kZXhlZCBwcm9wZXJ0eSBzZXR0ZXIgaXMgbm90IHN1cHBvcnRlZC4uCitQ
QVNTIHRoaXNbNDJdIGlzIHVuZGVmaW5lZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3Rz
L2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24t
d2luZG93LmpzCShyZXZpc2lvbiAyNzgyOTkpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0
LXRlc3RzL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMJKHdvcmtpbmcgY29w
eSkKQEAgLTIzLDQgKzIzLDQgQEAgd2hpbGUgKCFkZmdDb21waWxlZCh7Zjpmb28sIGNvbXBpbGVz
OjJ9KQogdmFyIHcgPSB0aGlzOwogd1swXSA9IDE7CiB3Lmxlbmd0aCA9IDE7Ci1zaG91bGRCZSgi
Zm9vKHcpIiwgIjEiKTsKK3Nob3VsZEJlKCJmb28odykiLCAiTmFOIik7CkluZGV4OiBMYXlvdXRU
ZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUtbm9uLWFycmF5LWFycmF5LXN0b3Jh
Z2Utb24td2luZG93LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQt
dGVzdHMvZGZnLWVuc3VyZS1ub24tYXJyYXktYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMJKHJl
dmlzaW9uIDI3ODI5OSkKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVu
c3VyZS1ub24tYXJyYXktYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMJKHdvcmtpbmcgY29weSkK
QEAgLTUxLDEwICs1MSw4IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSA9IGRmZ0luY3Jl
bWUKIHZhciB3ID0gdGhpczsKIHdbMF0gPSAxOwogdy5sZW5ndGggPSAxOwotdmFyIHRoaW5neSA9
IGZhbHNlOwotdy5fX2RlZmluZVNldHRlcl9fKDEsIGZ1bmN0aW9uKHZhbHVlKSB7IHRoaW5neSA9
IHZhbHVlOyB9KTsKLXNob3VsZEJlKCJmb28odykiLCAiMSIpOwotc2hvdWxkQmUoInRoaW5neSIs
ICJmYWxzZSIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoIncuX19kZWZpbmVTZXR0ZXJfXygxLCBm
dW5jdGlvbigpIHt9KSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZEJlKCJmb28odykiLCAiTmFOIik7
CiAKIC8vIEF0IHRoaXMgcG9pbnQgd2UgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgYmFyIGRvZXNu
J3QgZW5kIHVwIGVpdGhlciBjcmVhdGluZyBhcnJheSBzdG9yYWdlIGZvcgogLy8gdGhlIHdpbmRv
dyBwcm94eSwgb3IgZXF1YWxseSBiYWRseSwgc3RvcmluZyB0byB0aGUgYWxyZWFkeSBjcmVhdGVk
IGFycmF5IHN0b3JhZ2Ugb24gdGhlIHByb3h5CkBAIC02Miw4ICs2MCw3IEBAIHNob3VsZEJlKCJ0
aGluZ3kiLCAiZmFsc2UiKTsKIC8vIHRoaW5neSwgdG8gZGV0ZWN0IHRoYXQgZm9yIGluZGV4IDEg
d2UgZmFsbCB0aHJvdWdoIHRoZSBwcm94eSB0byB0aGUgcmVhbCB3aW5kb3cgb2JqZWN0LgogYmFy
KHcpOwogCi1zaG91bGRCZSgidGhpbmd5IiwgIjQyIik7Ci1zaG91bGRCZSgiZm9vKHcpIiwgIjEi
KTsKIHcubGVuZ3RoID0gMjsKLXNob3VsZEJlKCJmb28odykiLCAiMC8wIik7CitzaG91bGRCZSgi
d1sxXSIsICIiKTsKK3Nob3VsZEJlKCJmb28odykiLCAiTmFOIik7CiAKSW5kZXg6IExheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5q
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2luZGV4ZWQt
c2V0dGVyLW9uLWdsb2JhbC1vYmplY3QuanMJKHJldmlzaW9uIDI3ODI5OSkKKysrIExheW91dFRl
c3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5q
cwkod29ya2luZyBjb3B5KQpAQCAtMiwxMyArMiw5IEBAIGRlc2NyaXB0aW9uKAogIlRlc3RzIHRo
YXQgY3JlYXRpbmcgYW4gaW5kZXhlZCBzZXR0ZXIgb24gdGhlIGdsb2JhbCBvYmplY3QgZG9lc24n
dCBicmVhayB0aGluZ3MuIgogKTsKIAotdmFyIHRoaW5neTsKLQotdGhpcy5fX2RlZmluZVNldHRl
cl9fKDQyLCBmdW5jdGlvbih2YWx1ZSkgewotICAgIHRoaW5neSA9IHZhbHVlOwotfSk7CitzaG91
bGRUaHJvd0Vycm9yTmFtZSgidGhpcy5fX2RlZmluZVNldHRlcl9fKDQyLCBmdW5jdGlvbigpIHt9
KSIsICJUeXBlRXJyb3IiKTsKIAogdGhpc1s0Ml0gPSAiZm9vIjsKIAotc2hvdWxkQmUoInRoaW5n
eSIsICJcImZvb1wiIik7CitzaG91bGRCZSgidGhpc1s0Ml0iLCAidW5kZWZpbmVkIik7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>430764</attachid>
            <date>2021-06-07 11:29:39 -0700</date>
            <delta_ts>2021-06-07 18:10:33 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-225894-20210607212938.patch</filename>
            <type>text/plain</type>
            <size>32940</size>
            <attacher name="Alexey Shvayka">ashvayka</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4NTYzKQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDEzIEBA
CisyMDIxLTA2LTA3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4KKwor
ICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9iamVj
dCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxl
ci4KKworICAgICAgICAqIHJ1bnRpbWUvVHlwZUVycm9yLmg6CisgICAgICAgIChKU0M6OnR5cGVF
cnJvcik6CisKIDIwMjEtMDYtMDcgIFR1b21hcyBLYXJra2FpbmVuICA8dHVvbWFzLndlYmtpdEBh
cHBsZS5jb20+CiAKICAgICAgICAgJHZtIHNob3VsZCBoYXZlIGEgZnVuY3Rpb24gZm9yIGNoZWNr
aW5nIGlmIHNlY3VyaXR5IGFzc2VydGlvbnMgYXJlIGVuYWJsZWQgc2ltaWxhciB0byAkdm0uYXNz
ZXJ0RW5hYmxlZApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUVycm9y
LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvVHlwZUVycm9y
LmgJKHJldmlzaW9uIDI3ODU2MykKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1R5
cGVFcnJvci5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMCw3ICszMCw4IEBACiAKIG5hbWVzcGFjZSBK
U0MgewogCi1pbmxpbmUgYm9vbCB0eXBlRXJyb3IoSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgVGhyb3dTY29wZSYgc2NvcGUsIGJvb2wgdGhyb3dFeGNlcHRpb24sIEFTQ0lJTGl0ZXJhbCBt
ZXNzYWdlKQordGVtcGxhdGU8dHlwZW5hbWUgTWVzc2FnZT4KK2lubGluZSBib29sIHR5cGVFcnJv
cihKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUaHJvd1Njb3BlJiBzY29wZSwgYm9vbCB0
aHJvd0V4Y2VwdGlvbiwgTWVzc2FnZSBtZXNzYWdlKQogewogICAgIGlmICh0aHJvd0V4Y2VwdGlv
bikKICAgICAgICAgdGhyb3dUeXBlRXJyb3IoZ2xvYmFsT2JqZWN0LCBzY29wZSwgbWVzc2FnZSk7
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNzg1NjMpCisrKyBTb3VyY2UvV2ViQ29yZS9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw1NSBAQAorMjAyMS0wNi0wNyAgQWxleGV5
IFNodmF5a2EgIDxzaHZhaWthbGVzaEBnbWFpbC5jb20+CisKKyAgICAgICAgV2luZG93IHNob3Vs
ZCBiZWhhdmUgbGlrZSBhIGxlZ2FjeSBwbGF0Zm9ybSBvYmplY3Qgd2l0aG91dCBpbmRleGVkIHNl
dHRlcgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI1
ODk0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgVGhpcyBj
aGFuZ2UgZml4ZXMgbWFqb3IgaW50ZXJvcCBpc3N1ZSBieSBkaXNhbGxvd2luZyBleHBhbmRvIGlu
ZGV4ZWQgcHJvcGVydGllcyBvbiBXaW5kb3dQcm94eSwKKyAgICAgICAgcmFpc2luZyBUeXBlRXJy
b3Igb25seSB3aGVuIG5lZWRlZCwgd2hpY2ggYWxpZ25zIFdlYktpdCB3aXRoIEJsaW5rIGFuZCBH
ZWNrby4KKworICAgICAgICBXaGlsZSBbW0RlZmluZU93blByb3BlcnR5XV0gWzFdIGFuZCBbW0Rl
bGV0ZV1dIFsyXSBtZXRob2RzIG9mIFdpbmRvd1Byb3h5IGFyZSBpbXBsZW1lbnRlZAorICAgICAg
ICBwcmVjaXNlbHkgcGVyIHNwZWMsIGN1cnJlbnQgW1tTZXRdXSBbM10gYWxnb3JpdGhtIHNlZW1z
IHRvIGFsbG93IGludm9raW5nIHNldHRlcnMgZnJvbQorICAgICAgICB0aGUgcHJvdG90eXBlIGNo
YWluLiBCbGluayBhbmQgR2Vja28gaW1wbGVtZW50IHN0cmljdGVyIHNlbWFudGljcyBieSBmYWls
aW5nIGVhcmx5IHJhdGhlcgorICAgICAgICB0aGFuIHRyYXZlcnNpbmcgdGhlIHByb3RvdHlwZSBj
aGFpbiwgYXMgZG9lcyB0aGlzIHBhdGNoLgorCisgICAgICAgIFRvIGF2b2lkIGJyZWFraW5nIG5h
dGl2ZSBhcHBzIHRoYXQgZWl0aGVyIGFkZCBleHBhbmRvIGluZGV4ZWQgcHJvcGVydGllcyB0byBX
aW5kb3dQcm94eSwgb3IKKyAgICAgICAgbW9yZSBsaWtlbHkgcmVhZCAvIHdyaXRlIGluZGljZXMg
b2Ygc2xvcHB5IGZ1bmN0aW9uJ3MgfHRoaXN8IHZhbHVlLCB3aGljaCBhY2NpZGVudGx5IGhhcHBl
bnMKKyAgICAgICAgdG8gYmUgYSBXaW5kb3dQcm94eSwgdGhlIG5ldyBiZWhhdmlvciBpcyBpbnRy
b2R1Y2VkIG9ubHkgZm9yIHdlYiBjb250ZW50IGFuZCBuZXdseS1idWlsdCBhcHBzLgorCisgICAg
ICAgIFNpbmNlIHVubGlrZSBwdXRCeUluZGV4KCksIGRlbGV0ZVByb3BlcnR5QnlJbmRleCgpIG1p
Z2h0IGJlIGludm9rZWQgd2l0aCBVSU5UX01BWCwgd2hpY2ggaXMKKyAgICAgICAgbm90IGFuIGFy
cmF5IGluZGV4IFs0XSwgaXNJbmRleCgpIGNoZWNrIGlzIHJlcXVpcmVkLiBJbiBmdXR1cmUsIEpT
QyB3aWxsIGJlIGZpeGVkIHRvIHJlbW92ZQorICAgICAgICBzdWNoIGNoZWNrcyBmcm9tIGFsbCBp
bmRleGVkIG92ZXJyaWRlcy4KKworICAgICAgICBEZWxldGVQcm9wZXJ0eVNsb3Q6OmRpc2FibGVD
YWNoaW5nKCkgaXMgbm90IGNhbGxlZCBiZWNhdXNlIGluZGV4ZWQgZGVsZXRlcyBhcmUgbm90IGN1
cnJlbnRseQorICAgICAgICByZXBhdGNoZWQsIGFuZCBvbmNlIHRoZXkgYXJlLCBjYWNoZWFiaWxp
dHkgc2hvdWxkIGJlIGluZmVycmVkIGZyb20gYWRkZWQgdHlwZSBpbmZvIGZsYWdzLgorCisgICAg
ICAgIEFsc28sIHJlbW92ZXMgZXh0cmEganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNsb3RSZXN0
cmljdGVkQWNjZXNzKCkgY2FsbCBmb3IgaW5kaWNlcywgd2hpY2gKKyAgICAgICAgaXMgbWlzc2lu
ZyBmcm9tIHRoZSBzcGVjIFs1XTsgdGhpcyBpcyB1bm9ic2VydmFibGUuCisKKyAgICAgICAgWzFd
IGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dpbmRvdy1vYmplY3QuaHRt
bCN3aW5kb3dwcm94eS1kZWZpbmVvd25wcm9wZXJ0eSAoc3RlcCAyLjEpCisgICAgICAgIFsyXSBo
dHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS93aW5kb3ctb2JqZWN0Lmh0bWwj
d2luZG93cHJveHktZGVsZXRlIChzdGVwIDIuMSkKKyAgICAgICAgWzNdIGh0dHBzOi8vaHRtbC5z
cGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3dpbmRvdy1vYmplY3QuaHRtbCN3aW5kb3dwcm94eS1z
ZXQgKHN0ZXAgMykKKyAgICAgICAgWzRdIGh0dHBzOi8vdGMzOS5lcy9lY21hMjYyLyNhcnJheS1p
bmRleAorICAgICAgICBbNV0gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
d2luZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWdldG93bnByb3BlcnR5IChzdGVwIDIuNS4y
KQorCisgICAgICAgIFRlc3RzOiBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxl
dGUtbm8tY2FjaGUuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXBy
b3BlcnRpZXMuaHRtbAorICAgICAgICAgICAgICAgaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3Bl
cnRpZXMtc3RyaWN0Lmh0bWwKKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NRXhjZXB0aW9u
SGFuZGxpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6bWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNl
dHRlckVycm9yTWVzc2FnZSk6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01FeGNlcHRpb25I
YW5kbGluZy5oOgorICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93Q3VzdG9tLmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OmFsbG93c0xlZ2FjeUV4cGFuZG9JbmRleGVkUHJvcGVydGllcyk6
CisgICAgICAgIChXZWJDb3JlOjpKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eCk6IFJlbW92ZSBvdXRkYXRlZCBjb21tZW50cy4KKyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2lu
ZG93OjpwdXQpOgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OnB1dEJ5SW5kZXgpOiBS
ZWxlYXNlIHNjb3BlIHdoZW4gY2FsbGluZyBCYXNlOjpwdXRCeUluZGV4KCksIHdoaWNoIGNvdWxk
IHRocm93LgorICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5KToK
KyAgICAgICAgKFdlYkNvcmU6OkpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgpOgor
ICAgICAgICAoV2ViQ29yZTo6SlNET01XaW5kb3c6OmRlZmluZU93blByb3BlcnR5KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9jb2NvYS9WZXJzaW9uQ2hlY2tzLmg6CisKIDIwMjEtMDYtMDcgIEltYW5v
bCBGZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgQ2hhbmdlIFdl
YlhSU3BhY2U6OmVmZWN0aXZlT3JpZ2luKCkgbWF0cml4IG11bHRpcGxpY2F0aW9uIG9yZGVyCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlv
bkhhbmRsaW5nLmNwcAkocmV2aXNpb24gMjc4NTYzKQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI4MCw2
ICsyODAsMTEgQEAgU3RyaW5nIG1ha2VUaGlzVHlwZUVycm9yTWVzc2FnZShjb25zdCBjaAogICAg
IHJldHVybiBtYWtlU3RyaW5nKCJDYW4gb25seSBjYWxsICIsIGludGVyZmFjZU5hbWUsICcuJywg
ZnVuY3Rpb25OYW1lLCAiIG9uIGluc3RhbmNlcyBvZiAiLCBpbnRlcmZhY2VOYW1lKTsKIH0KIAor
U3RyaW5nIG1ha2VVbnN1cHBvcnRlZEluZGV4ZWRTZXR0ZXJFcnJvck1lc3NhZ2UoY29uc3QgY2hh
ciogaW50ZXJmYWNlTmFtZSkKK3sKKyAgICByZXR1cm4gbWFrZVN0cmluZygiRmFpbGVkIHRvIHNl
dCBhbiBpbmRleGVkIHByb3BlcnR5IG9uICIsIGludGVyZmFjZU5hbWUsICI6IEluZGV4ZWQgcHJv
cGVydHkgc2V0dGVyIGlzIG5vdCBzdXBwb3J0ZWQuIik7Cit9CisKIEVuY29kZWRKU1ZhbHVlIHRo
cm93VGhpc1R5cGVFcnJvcihKU0M6OkpTR2xvYmFsT2JqZWN0JiBsZXhpY2FsR2xvYmFsT2JqZWN0
LCBKU0M6OlRocm93U2NvcGUmIHNjb3BlLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25z
dCBjaGFyKiBmdW5jdGlvbk5hbWUpCiB7CiAgICAgcmV0dXJuIHRocm93VHlwZUVycm9yKGxleGlj
YWxHbG9iYWxPYmplY3QsIHNjb3BlLCBtYWtlVGhpc1R5cGVFcnJvck1lc3NhZ2UoaW50ZXJmYWNl
TmFtZSwgZnVuY3Rpb25OYW1lKSk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3MvanMvSlNET01FeGNlcHRpb25IYW5kbGluZy5oCShyZXZpc2lvbiAyNzg1NjMpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUV4Y2VwdGlvbkhhbmRsaW5nLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU1LDYgKzU1LDcgQEAgV0VCQ09SRV9FWFBPUlQgSlNDOjpFbmNvZGVkSlNW
YWx1ZSB0aHJvdwogSlNDOjpFbmNvZGVkSlNWYWx1ZSB0aHJvd0NvbnN0cnVjdG9yU2NyaXB0RXhl
Y3V0aW9uQ29udGV4dFVuYXZhaWxhYmxlRXJyb3IoSlNDOjpKU0dsb2JhbE9iamVjdCYsIEpTQzo6
VGhyb3dTY29wZSYsIGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUpOwogCiBTdHJpbmcgbWFrZVRo
aXNUeXBlRXJyb3JNZXNzYWdlKGNvbnN0IGNoYXIqIGludGVyZmFjZU5hbWUsIGNvbnN0IGNoYXIq
IGF0dHJpYnV0ZU5hbWUpOworU3RyaW5nIG1ha2VVbnN1cHBvcnRlZEluZGV4ZWRTZXR0ZXJFcnJv
ck1lc3NhZ2UoY29uc3QgY2hhciogaW50ZXJmYWNlTmFtZSk7CiAKIFdFQkNPUkVfRVhQT1JUIEpT
Qzo6RW5jb2RlZEpTVmFsdWUgdGhyb3dUaGlzVHlwZUVycm9yKEpTQzo6SlNHbG9iYWxPYmplY3Qm
LCBKU0M6OlRocm93U2NvcGUmLCBjb25zdCBjaGFyKiBpbnRlcmZhY2VOYW1lLCBjb25zdCBjaGFy
KiBmdW5jdGlvbk5hbWUpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0N1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNET01XaW5kb3dDdXN0b20uY3BwCShyZXZpc2lvbiAyNzg1NjMpCisrKyBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0N1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTU5LDYgKzU5LDEwIEBACiAjaW5jbHVkZSAiSlNXZWJLaXROYW1lc3BhY2UuaCIKICNlbmRpZgog
CisjaWYgUExBVEZPUk0oQ09DT0EpCisjaW5jbHVkZSAiVmVyc2lvbkNoZWNrcy5oIgorI2VuZGlm
CisKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIHVzaW5nIG5hbWVzcGFjZSBKU0M7CiAKQEAgLTkxLDYg
Kzk1LDE4IEBAIEpTQ19ERUZJTkVfQ1VTVE9NX0dFVFRFUihqc0RPTVdpbmRvd193ZWIKIH0KICNl
bmRpZgogCitzdGF0aWMgQUxXQVlTX0lOTElORSBib29sIGFsbG93c0xlZ2FjeUV4cGFuZG9JbmRl
eGVkUHJvcGVydGllcygpCit7CisjaWYgUExBVEZPUk0oQ09DT0EpCisgICAgLy8gR2l2ZW4gdGhh
dCBXaW5kb3dQcm94eSBpcyB0aGUgZGVmYXVsdCB8dGhpc3wgdmFsdWUgZm9yIHNsb3BweSBtb2Rl
IGZ1bmN0aW9ucywgaXQncyBoYXJkIHRvIHByb3ZlCisgICAgLy8gdGhhdCBvbGRlciBpT1MgYW5k
IG1hY09TIGFwcHMgZG9uJ3QgYWNjaWRlbnRhbGx5IGRlcGVuZCBvbiB0aGlzIGJlaGF2aW9yLCBz
byB3ZSBrZWVwIGl0IGZvciB0aGVtLgorICAgIHN0YXRpYyBib29sIHJlcXVpcmVzUXVpcmsgPSAh
bGlua2VkT25PckFmdGVyKFNES1ZlcnNpb246OkZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJv
cGVydGllc09uV2luZG93KTsKKyAgICByZXR1cm4gcmVxdWlyZXNRdWlyazsKKyNlbHNlCisgICAg
cmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisKIHRlbXBsYXRlIDxET01XaW5kb3dUeXBlIHdpbmRv
d1R5cGU+CiBib29sIGpzRE9NV2luZG93R2V0T3duUHJvcGVydHlTbG90UmVzdHJpY3RlZEFjY2Vz
cyhKU0RPTUdsb2JhbE9iamVjdCogdGhpc09iamVjdCwgQWJzdHJhY3RET01XaW5kb3cmIHdpbmRv
dywgSlNHbG9iYWxPYmplY3QmIGxleGljYWxHbG9iYWxPYmplY3QsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCwgY29uc3QgU3RyaW5nJiBlcnJvck1lc3NhZ2Up
CiB7CkBAIC0yMTgsMTMgKzIzNCw4IEBAIGJvb2wgSlNET01XaW5kb3c6OmdldE93blByb3BlcnR5
U2xvdChKU08KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKLS8vIFByb3BlcnR5IGFjY2VzcyBzZXF1
ZW5jZSBpczoKLS8vICgxKSBpbmRleGVkIHByb3BlcnRpZXMsCi0vLyAoMikgcmVndWxhciBvd24g
cHJvcGVydGllcywKLS8vICgzKSBuYW1lZCBwcm9wZXJ0aWVzIChpbiBmYWN0LCB0aGVzZSBzaG91
bGRuJ3QgYmUgb24gdGhlIHdpbmRvdywgc2hvdWxkIGJlIG9uIHRoZSBOUE8pLgogYm9vbCBKU0RP
TVdpbmRvdzo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBKU0ds
b2JhbE9iamVjdCogbGV4aWNhbEdsb2JhbE9iamVjdCwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5
U2xvdCYgc2xvdCkKIHsKLSAgICBWTSYgdm0gPSBsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpOwog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNET01XaW5kb3cqPihvYmplY3QpOwogICAg
IGF1dG8mIHdpbmRvdyA9IHRoaXNPYmplY3QtPndyYXBwZWQoKTsKICAgICBhdXRvKiBmcmFtZSA9
IHdpbmRvdy5mcmFtZSgpOwpAQCAtMjMyLDIwICsyNDMsMTcgQEAgYm9vbCBKU0RPTVdpbmRvdzo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbgogICAgIC8vIEluZGV4ZWQgZ2V0dGVycyB0YWtlIHByZWNl
bmRlbmNlIG92ZXIgcmVndWxhciBwcm9wZXJ0aWVzLCBzbyBjYWNoaW5nIHdvdWxkIGJlIGludmFs
aWQuCiAgICAgc2xvdC5kaXNhYmxlQ2FjaGluZygpOwogCi0gICAgLy8gKDEpIEZpcnN0LCBpbmRl
eGVkIHByb3BlcnRpZXMuCiAgICAgLy8gVGhlc2UgYXJlIGFsc28gYWxsb3dlZCBjcm9zcy1vcmln
aW4sIHNvIGNvbWUgYmVmb3JlIHRoZSBhY2Nlc3MgY2hlY2suCiAgICAgaWYgKGZyYW1lICYmIGlu
ZGV4IDwgZnJhbWUtPnRyZWUoKS5zY29wZWRDaGlsZENvdW50KCkpIHsKICAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oSlNDOjpQcm9wZXJ0eUF0
dHJpYnV0ZTo6UmVhZE9ubHkpLCB0b0pTKGxleGljYWxHbG9iYWxPYmplY3QsIGZyYW1lLT50cmVl
KCkuc2NvcGVkQ2hpbGQoaW5kZXgpLT5kb2N1bWVudCgpLT5kb21XaW5kb3coKSkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICAvLyBIYW5kIG9mZiBhbGwgY3Jvc3MtZG9tYWlu
L2ZyYW1lbGVzcyBhY2Nlc3MgdG8ganNET01XaW5kb3dHZXRPd25Qcm9wZXJ0eVNsb3RSZXN0cmlj
dGVkQWNjZXNzLgotICAgIFN0cmluZyBlcnJvck1lc3NhZ2U7Ci0gICAgaWYgKCFCaW5kaW5nU2Vj
dXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3coKmxleGljYWxHbG9iYWxPYmplY3Qs
IHdpbmRvdywgZXJyb3JNZXNzYWdlKSkKLSAgICAgICAgcmV0dXJuIGpzRE9NV2luZG93R2V0T3du
UHJvcGVydHlTbG90UmVzdHJpY3RlZEFjY2VzczxET01XaW5kb3dUeXBlOjpMb2NhbD4odGhpc09i
amVjdCwgd2luZG93LCAqbGV4aWNhbEdsb2JhbE9iamVjdCwgSWRlbnRpZmllcjo6ZnJvbSh2bSwg
aW5kZXgpLCBzbG90LCBlcnJvck1lc3NhZ2UpOwotCi0gICAgLy8gKDIpIFJlZ3VsYXIgb3duIHBy
b3BlcnRpZXMuCi0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhp
c09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgsIHNsb3QpOworICAgIGlmICghQmlu
ZGluZ1NlY3VyaXR5OjpzaG91bGRBbGxvd0FjY2Vzc1RvRE9NV2luZG93KGxleGljYWxHbG9iYWxP
YmplY3QsIHdpbmRvdywgVGhyb3dTZWN1cml0eUVycm9yKSkKKyAgICAgICAgcmV0dXJuIGZhbHNl
OworICAgIGlmIChhbGxvd3NMZWdhY3lFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXMoKSkKKyAgICAg
ICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgbGV4
aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBmYWxzZTsKIH0KIAog
dm9pZCBKU0RPTVdpbmRvdzo6ZG9QdXRQcm9wZXJ0eVNlY3VyaXR5Q2hlY2soSlNPYmplY3QqIGNl
bGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBQdXRQcm9wZXJ0eVNsb3QmKQpAQCAtMjg1LDYgKzI5Myw4IEBAIGJvb2wgSlNE
T01XaW5kb3c6OnB1dChKU0NlbGwqIGNlbGwsIEpTR2wKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIH0KIAorICAgIGlmIChwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkgJiYgIWFsbG93c0xlZ2Fj
eUV4cGFuZG9JbmRleGVkUHJvcGVydGllcygpKQorICAgICAgICByZXR1cm4gdHlwZUVycm9yKGxl
eGljYWxHbG9iYWxPYmplY3QsIHNjb3BlLCBzbG90LmlzU3RyaWN0TW9kZSgpLCBtYWtlVW5zdXBw
b3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKCJXaW5kb3ciKSk7CiAgICAgUkVMRUFTRV9B
TkRfUkVUVVJOKHNjb3BlLCBCYXNlOjpwdXQodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVj
dCwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCkpOwogfQogCkBAIC0zMDAsNyArMzEwLDEyIEBA
IGJvb2wgSlNET01XaW5kb3c6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWwKICAgICAgICAgcmV0dXJu
IGZhbHNlOwogICAgIH0KICAgICAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleCh0aGlzT2Jq
ZWN0LCBsZXhpY2FsR2xvYmFsT2JqZWN0LCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAg
ICBpZiAoYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkpIHsKKyAgICAgICAg
aWYgKGF1dG8qIGRvY3VtZW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmRvY3VtZW50KCkpCisg
ICAgICAgICAgICBkb2N1bWVudC0+YWRkQ29uc29sZU1lc3NhZ2UoTWVzc2FnZVNvdXJjZTo6SlMs
IE1lc3NhZ2VMZXZlbDo6V2FybmluZywgIkFkZGluZyBleHBhbmRvIGluZGV4ZWQgcHJvcGVydGll
cyB0byAnd2luZG93JyB3YXMgYSBub24tc3RhbmRhcmQgYmVoYXZpb3IgdGhhdCBpcyBub3cgcmVt
b3ZlZC4iX3MpOworICAgICAgICBSRUxFQVNFX0FORF9SRVRVUk4oc2NvcGUsIEJhc2U6OnB1dEJ5
SW5kZXgodGhpc09iamVjdCwgbGV4aWNhbEdsb2JhbE9iamVjdCwgaW5kZXgsIHZhbHVlLCBzaG91
bGRUaHJvdykpOworICAgIH0KKyAgICByZXR1cm4gdHlwZUVycm9yKGxleGljYWxHbG9iYWxPYmpl
Y3QsIHNjb3BlLCBzaG91bGRUaHJvdywgbWFrZVVuc3VwcG9ydGVkSW5kZXhlZFNldHRlckVycm9y
TWVzc2FnZSgiV2luZG93IikpOwogfQogCiBib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0
eShKU0NlbGwqIGNlbGwsIEpTR2xvYmFsT2JqZWN0KiBsZXhpY2FsR2xvYmFsT2JqZWN0LCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBEZWxldGVQcm9wZXJ0eVNsb3QmIHNsb3QpCkBAIC0zMDks
NiArMzI0LDEwIEBAIGJvb2wgSlNET01XaW5kb3c6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCoKICAg
ICAvLyBPbmx5IGFsbG93IGRlbGV0aW5nIHByb3BlcnRpZXMgYnkgZnJhbWVzIGluIHRoZSBzYW1l
IG9yaWdpbi4KICAgICBpZiAoIUJpbmRpbmdTZWN1cml0eTo6c2hvdWxkQWxsb3dBY2Nlc3NUb0RP
TVdpbmRvdyhsZXhpY2FsR2xvYmFsT2JqZWN0LCB0aGlzT2JqZWN0LT53cmFwcGVkKCksIFRocm93
U2VjdXJpdHlFcnJvcikpCiAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICBpZiAoc3RkOjpvcHRp
b25hbDx1aW50MzJfdD4gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAg
ICAgaWYgKCFhbGxvd3NMZWdhY3lFeHBhbmRvSW5kZXhlZFByb3BlcnRpZXMoKSkKKyAgICAgICAg
ICAgIHJldHVybiBpbmRleC52YWx1ZSgpID49IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KTsKKyAgICB9CiAgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KHRoaXNPYmplY3QsIGxl
eGljYWxHbG9iYWxPYmplY3QsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKQEAgLTMxOCw2ICsz
MzcsOCBAQCBib29sIEpTRE9NV2luZG93OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoCiAgICAgLy8g
T25seSBhbGxvdyBkZWxldGluZyBwcm9wZXJ0aWVzIGJ5IGZyYW1lcyBpbiB0aGUgc2FtZSBvcmln
aW4uCiAgICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5k
b3cobGV4aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3JhcHBlZCgpLCBUaHJvd1NlY3Vy
aXR5RXJyb3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKGlzSW5kZXgocHJvcGVy
dHlOYW1lKSAmJiAhYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkpCisgICAg
ICAgIHJldHVybiBwcm9wZXJ0eU5hbWUgPj0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgp
OwogICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgodGhpc09iamVjdCwgbGV4
aWNhbEdsb2JhbE9iamVjdCwgcHJvcGVydHlOYW1lKTsKIH0KIApAQCAtNDA5LDEyICs0MzAsMTgg
QEAgdm9pZCBKU0RPTVdpbmRvdzo6Z2V0T3duUHJvcGVydHlOYW1lcyhKUwogCiBib29sIEpTRE9N
V2luZG93OjpkZWZpbmVPd25Qcm9wZXJ0eShKU0M6OkpTT2JqZWN0KiBvYmplY3QsIEpTQzo6SlNH
bG9iYWxPYmplY3QqIGxleGljYWxHbG9iYWxPYmplY3QsIEpTQzo6UHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgY29uc3QgSlNDOjpQcm9wZXJ0eURlc2NyaXB0b3ImIGRlc2NyaXB0b3IsIGJvb2wg
c2hvdWxkVGhyb3cpCiB7CisgICAgVk0mIHZtID0gbGV4aWNhbEdsb2JhbE9iamVjdC0+dm0oKTsK
KyAgICBhdXRvIHNjb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7CisKICAgICBKU0RPTVdp
bmRvdyogdGhpc09iamVjdCA9IGpzQ2FzdDxKU0RPTVdpbmRvdyo+KG9iamVjdCk7CiAgICAgLy8g
T25seSBhbGxvdyBkZWZpbmluZyBwcm9wZXJ0aWVzIGluIHRoaXMgd2F5IGJ5IGZyYW1lcyBpbiB0
aGUgc2FtZSBvcmlnaW4sIGFzIGl0IGFsbG93cyBzZXR0ZXJzIHRvIGJlIGludHJvZHVjZWQuCiAg
ICAgaWYgKCFCaW5kaW5nU2VjdXJpdHk6OnNob3VsZEFsbG93QWNjZXNzVG9ET01XaW5kb3cobGV4
aWNhbEdsb2JhbE9iamVjdCwgdGhpc09iamVjdC0+d3JhcHBlZCgpLCBUaHJvd1NlY3VyaXR5RXJy
b3IpKQogICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgaWYgKHBhcnNlSW5kZXgocHJvcGVydHlO
YW1lKSAmJiAhYWxsb3dzTGVnYWN5RXhwYW5kb0luZGV4ZWRQcm9wZXJ0aWVzKCkpCisgICAgICAg
IHJldHVybiB0eXBlRXJyb3IobGV4aWNhbEdsb2JhbE9iamVjdCwgc2NvcGUsIHNob3VsZFRocm93
LCBtYWtlVW5zdXBwb3J0ZWRJbmRleGVkU2V0dGVyRXJyb3JNZXNzYWdlKCJXaW5kb3ciKSk7Cisg
ICAgc2NvcGUucmVsZWFzZSgpOwogCi0gICAgYXV0byYgYnVpbHRpbk5hbWVzID0gc3RhdGljX2Nh
c3Q8SlNWTUNsaWVudERhdGEqPihsZXhpY2FsR2xvYmFsT2JqZWN0LT52bSgpLmNsaWVudERhdGEp
LT5idWlsdGluTmFtZXMoKTsKKyAgICBhdXRvJiBidWlsdGluTmFtZXMgPSBzdGF0aWNfY2FzdDxK
U1ZNQ2xpZW50RGF0YSo+KHZtLmNsaWVudERhdGEpLT5idWlsdGluTmFtZXMoKTsKICAgICBpZiAo
cHJvcGVydHlOYW1lID09IGJ1aWx0aW5OYW1lcy5kb2N1bWVudFB1YmxpY05hbWUoKSB8fCBwcm9w
ZXJ0eU5hbWUgPT0gYnVpbHRpbk5hbWVzLndpbmRvd1B1YmxpY05hbWUoKSkKICAgICAgICAgcmV0
dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eSh0aGlzT2JqZWN0LCBsZXhpY2FsR2xvYmFs
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGRlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIApJbmRleDog
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVyc2lvbkNoZWNrcy5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2NvY29hL1ZlcnNpb25DaGVja3MuaAkocmV2aXNp
b24gMjc4NTYzKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vY29jb2EvVmVyc2lvbkNoZWNr
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC03Myw2ICs3Myw3IEBAIGVudW0gY2xhc3MgU0RLVmVyc2lv
biA6IHVpbnQzMl90IHsKICAgICBGaXJzdFdpdGhTaGFyZWROZXR3b3JrUHJvY2VzcyA9IERZTERf
SU9TX1ZFUlNJT05fMTRfNSwKICAgICBGaXJzdFdpdGhCbGFua1ZpZXdPbkpTUHJvbXB0ID0gRFlM
RF9JT1NfVkVSU0lPTl8xNF81LAogICAgIEZpcnN0V2l0aEFwcGxpY2F0aW9uQ2FjaGVEaXNhYmxl
ZEJ5RGVmYXVsdCA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKKyAgICBGaXJzdFdpdGhvdXRFeHBh
bmRvSW5kZXhlZFByb3BlcnRpZXNPbldpbmRvdyA9IERZTERfSU9TX1ZFUlNJT05fMTVfMCwKICNl
bGlmIFBMQVRGT1JNKE1BQykKICAgICBGaXJzdFdpdGhOZXR3b3JrQ2FjaGUgPSBEWUxEX01BQ09T
WF9WRVJTSU9OXzEwXzExLAogICAgIEZpcnN0V2l0aEV4Y2VwdGlvbnNGb3JEdXBsaWNhdGVDb21w
bGV0aW9uSGFuZGxlckNhbGxzID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMF8xMywKQEAgLTk2LDYg
Kzk3LDcgQEAgZW51bSBjbGFzcyBTREtWZXJzaW9uIDogdWludDMyX3QgewogICAgIEZpcnN0V2l0
aERPTVdpbmRvd1JldXNlUmVzdHJpY3Rpb24gPSBEWUxEX01BQ09TWF9WRVJTSU9OXzExXzMsCiAg
ICAgRmlyc3RXaXRoQmxhbmtWaWV3T25KU1Byb21wdCA9IERZTERfTUFDT1NYX1ZFUlNJT05fMTFf
MywKICAgICBGaXJzdFdpdGhBcHBsaWNhdGlvbkNhY2hlRGlzYWJsZWRCeURlZmF1bHQgPSBEWUxE
X01BQ09TWF9WRVJTSU9OXzEyXzAwLAorICAgIEZpcnN0V2l0aG91dEV4cGFuZG9JbmRleGVkUHJv
cGVydGllc09uV2luZG93ID0gRFlMRF9NQUNPU1hfVkVSU0lPTl8xMl8wMCwKICNlbmRpZgogfTsK
IApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L0NoYW5nZUxvZwkocmV2aXNpb24gMjc4NTYzKQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjEgQEAKKzIwMjEtMDYtMDcgIEFsZXhleSBTaHZheWth
ICA8c2h2YWlrYWxlc2hAZ21haWwuY29tPgorCisgICAgICAgIFdpbmRvdyBzaG91bGQgYmVoYXZl
IGxpa2UgYSBsZWdhY3kgcGxhdGZvcm0gb2JqZWN0IHdpdGhvdXQgaW5kZXhlZCBzZXR0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNTg5NAorCisg
ICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICogZmFzdC9kb20vV2lu
ZG93L29ycGhhbmVkLWZyYW1lLWFjY2Vzcy5odG1sOgorICAgICAgICAqIGZhc3QvZnJhbWVzL2lm
cmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBlY3RlZC50eHQ6Cisg
ICAgICAgICogZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGlsbC13cml0YWJs
ZS1ldmFsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1h
Y2Nlc3MtZGVsZXRlLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L3Jlc291cmNlcy9jcm9zcy1mcmFtZS1pZnJhbWUtZm9yLWRlbGV0ZS10ZXN0Lmh0bWw6CisgICAg
ICAgICoganMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3ctZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIGpzL2RvbS9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwtb2JqZWN0LWV4
cGVjdGVkLnR4dDoKKyAgICAgICAgKiBqcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUtYXJy
YXktc3RvcmFnZS1vbi13aW5kb3cuanM6CisgICAgICAgICoganMvZG9tL3NjcmlwdC10ZXN0cy9k
ZmctZW5zdXJlLW5vbi1hcnJheS1hcnJheS1zdG9yYWdlLW9uLXdpbmRvdy5qczoKKyAgICAgICAg
KiBqcy9kb20vc2NyaXB0LXRlc3RzL2luZGV4ZWQtc2V0dGVyLW9uLWdsb2JhbC1vYmplY3QuanM6
CisKIDIwMjEtMDYtMDcgIEltYW5vbCBGZXJuYW5kZXogIDxpZmVybmFuZGV6QGlnYWxpYS5jb20+
CiAKICAgICAgICAgVXNlIDNEIHBvaW50cyB0byBtYXAgdGhlIFdlYlhSQm91bmRlZFJlZmVyZW5j
ZVNwYWNlIGJvdW5kcyB0cmFuc2Zvcm0KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3MuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2RvbS9XaW5kb3cvb3JwaGFuZWQtZnJhbWUtYWNjZXNzLmh0bWwJKHJldmlzaW9uIDI3ODU2
MykKKysrIExheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy9vcnBoYW5lZC1mcmFtZS1hY2Nlc3Mu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtMTcsNyArMTcsNyBAQCB3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24oKSB7CiAgICAgLy8gc2NoZWR1bGUgdG8gcnVuIGFmdGVyIHRoZSBmcmFtZSBpcyBudWxs
CiAgICAgc2V0VGltZW91dChmdW5jdGlvbigpIHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSh3aW4udGVzdCB8fCAncHJvcGVydHk6IEZB
SUwgLi4uICcpKTsKLSAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZSh3aW5bMjBdIHx8ICdhcnJheTogRkFJTCAuLi4gJykpOworICAgICAgICBk
b2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKHdpblsyMF0g
PT09IHVuZGVmaW5lZCA/ICdhcnJheTogUEFTUyAuLi4gJyA6ICdhcnJheTogRkFJTCAuLi4gJykp
OwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKHdpbi5Db21tZW50ID8gJ2NvbnN0cnVjdG9yOiBQQVNTIC4uLi4gJyA6ICdjb25zdHJ1Y3Rv
cjogRkFJTCAuLi4gJykpOwogICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKHdpbi5wb3N0TWVzc2FnZSA/ICdvcGVyYXRpb246IFBBU1MuJyA6
ICdvcGVyYXRpb246IEZBSUwuJykpOwogICAgICAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCklu
ZGV4OiBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxs
LXdyaXRhYmxlLWV2YWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zh
c3QvZnJhbWVzL2lmcmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDI3ODU2MykKKysrIExheW91dFRlc3RzL2Zhc3QvZnJhbWVzL2lm
cmFtZS1kZXRhY2hlZC13aW5kb3ctc3RpbGwtd3JpdGFibGUtZXZhbC1leHBlY3RlZC50eHQJKHdv
cmtpbmcgY29weSkKQEAgLTQsOSArNCw5IEBAIE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNl
cmllcyBvZiAiUEEKIAogCiBQQVNTICgpID0+IGZvbyBpcyAyCi1QQVNTICgpID0+IGdsb2JhbFRo
aXNbMF0gaXMgMgorUEFTUyAoKSA9PiBnbG9iYWxUaGlzWzBdIGlzIHVuZGVmaW5lZAogUEFTUyBp
ZnJhbWVDb250ZW50V2luZG93LmZvbyBpcyAyCi1QQVNTIGlmcmFtZUNvbnRlbnRXaW5kb3dbMF0g
aXMgMgorUEFTUyBpZnJhbWVDb250ZW50V2luZG93WzBdIGlzIHVuZGVmaW5lZAogUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0
cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNoZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2ZyYW1lcy9pZnJhbWUtZGV0YWNo
ZWQtd2luZG93LXN0aWxsLXdyaXRhYmxlLWV2YWwuaHRtbAkocmV2aXNpb24gMjc4NTYzKQorKysg
TGF5b3V0VGVzdHMvZmFzdC9mcmFtZXMvaWZyYW1lLWRldGFjaGVkLXdpbmRvdy1zdGlsbC13cml0
YWJsZS1ldmFsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTE1LDEwICsxNSwxMCBAQAogICAgICAg
ICBmb28rKzsKICAgICAgICAgZ2xvYmFsVGhpc1swXSsrOwogICAgICAgICBzaG91bGRCZSgoKSA9
PiBmb28sICIyIik7Ci0gICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0sICIyIik7
CisgICAgICAgIHNob3VsZEJlKCgpID0+IGdsb2JhbFRoaXNbMF0sICJ1bmRlZmluZWQiKTsKICAg
ICBgKTsKICAgICBzaG91bGRCZSgiaWZyYW1lQ29udGVudFdpbmRvdy5mb28iLCAiMiIpOwotICAg
IHNob3VsZEJlKCJpZnJhbWVDb250ZW50V2luZG93WzBdIiwgIjIiKTsKKyAgICBzaG91bGRCZSgi
aWZyYW1lQ29udGVudFdpbmRvd1swXSIsICJ1bmRlZmluZWQiKTsKIDwvc2NyaXB0PgogPC9ib2R5
PgogPC9odG1sPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvY3Jvc3MtZnJhbWUtYWNjZXNzLWRlbGV0ZS1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1m
cmFtZS1hY2Nlc3MtZGVsZXRlLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjc4NTYzKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jcm9zcy1mcmFtZS1hY2Nlc3MtZGVsZXRlLWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMjIsNyArMjIsNyBAQCBGcmFtZTogJzwhLS1m
cmFtZTEtLT4nCiAtLS0tLSB0ZXN0cyBmb3IgZGVsZXRpbmcgdGhlIHByb3BlcnRpZXMgb2Ygd2lu
ZG93LCB3aW5kb3cuaGlzdG9yeSwgYW5kIHdpbmRvdy5sb2NhdGlvbiBjcm9zcy1kb21haW4gLS0t
LS0KIAogUEFTUzogd2luZG93LmV4aXN0aW5nUHJvcGVydHkgc2hvdWxkIGJlICd0ZXN0IHZhbHVl
JyBhbmQgaXMuCi1QQVNTOiB3aW5kb3dbMV0gc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQgaXMu
CitQQVNTOiB3aW5kb3dbMV0gc2hvdWxkIGJlICd1bmRlZmluZWQnIGFuZCBpcy4KIFBBU1M6IHdp
bmRvdy5oaXN0b3J5LmV4aXN0aW5nUHJvcGVydHkgc2hvdWxkIGJlICd0ZXN0IHZhbHVlJyBhbmQg
aXMuCiBQQVNTOiB3aW5kb3cuaGlzdG9yeVsxXSBzaG91bGQgYmUgJ3Rlc3QgdmFsdWUnIGFuZCBp
cy4KIFBBU1M6IHdpbmRvdy5sb2NhdGlvbi5leGlzdGluZ1Byb3BlcnR5IHNob3VsZCBiZSAndGVz
dCB2YWx1ZScgYW5kIGlzLgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9y
ZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1lLWZvci1kZWxldGUtdGVzdC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2Nyb3NzLWZy
YW1lLWlmcmFtZS1mb3ItZGVsZXRlLXRlc3QuaHRtbAkocmV2aXNpb24gMjc4NTYzKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY3Jvc3MtZnJhbWUtaWZyYW1l
LWZvci1kZWxldGUtdGVzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw3IEBACiAg
ICAgICAgICAgICBsb2coIlxuLS0tLS0gdGVzdHMgZm9yIGRlbGV0aW5nIHRoZSBwcm9wZXJ0aWVz
IG9mIHdpbmRvdywgd2luZG93Lmhpc3RvcnksIGFuZCB3aW5kb3cubG9jYXRpb24gY3Jvc3MtZG9t
YWluIC0tLS0tXG4iKTsKIAogICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvdy5leGlzdGluZ1By
b3BlcnR5IiwgIid0ZXN0IHZhbHVlJyIpOwotICAgICAgICAgICAgc2hvdWxkQmUoIndpbmRvd1sx
XSIsICIndGVzdCB2YWx1ZSciKTsKKyAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5kb3dbMV0iLCAi
dW5kZWZpbmVkIik7CiAgICAgICAgICAgICBzaG91bGRCZSgid2luZG93Lmhpc3RvcnkuZXhpc3Rp
bmdQcm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3aW5k
b3cuaGlzdG9yeVsxXSIsICIndGVzdCB2YWx1ZSciKTsKICAgICAgICAgICAgIHNob3VsZEJlKCJ3
aW5kb3cubG9jYXRpb24uZXhpc3RpbmdQcm9wZXJ0eSIsICIndGVzdCB2YWx1ZSciKTsKSW5kZXg6
IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkocmV2aXNpb24gMjc4NTYzKQorKysgTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3
IEBACisyMDIxLTA2LTA3ICBBbGV4ZXkgU2h2YXlrYSAgPHNodmFpa2FsZXNoQGdtYWlsLmNvbT4K
KworICAgICAgICBXaW5kb3cgc2hvdWxkIGJlaGF2ZSBsaWtlIGEgbGVnYWN5IHBsYXRmb3JtIG9i
amVjdCB3aXRob3V0IGluZGV4ZWQgc2V0dGVyCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0yMjU4OTQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBB
ZGxlci4KKworICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13
aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZGVsZXRlLW5vLWNhY2hlLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJv
d3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUt
bm8tY2FjaGUuaHRtbDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBl
Y3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhl
LXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QtZXhwZWN0ZWQu
dHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5k
b3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0Lmh0bWw6CisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2lu
ZG93LWluZGV4ZWQtcHJvcGVydGllcy5odG1sOgorCiAyMDIxLTA2LTA3ICBJbWFub2wgRmVybmFu
ZGV6ICA8aWZlcm5hbmRlekBpZ2FsaWEuY29tPgogCiAgICAgICAgIFVzZSAzRCBwb2ludHMgdG8g
bWFwIHRoZSBXZWJYUkJvdW5kZWRSZWZlcmVuY2VTcGFjZSBib3VuZHMgdHJhbnNmb3JtCkluZGV4
OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1kZWxldGUtbm8t
Y2FjaGUtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5k
b3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS1leHBlY3RlZC50eHQJKG5vbmV4
aXN0ZW50KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMt
ZGVsZXRlLW5vLWNhY2hlLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQg
QEAKKworUEFTUyBBYnNlbmNlIG9mIGluZGV4ICcwJyBpcyBub3QgY2FjaGVkCitQQVNTIFByZXNl
bmNlIG9mIGluZGV4ICcwJyBpcyBub3QgY2FjaGVkCisKSW5kZXg6IExheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVj
dC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9i
cm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0
ZS1uby1jYWNoZS5odG1sCShub25leGlzdGVudCkKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5k
b3ctaW5kZXhlZC1wcm9wZXJ0aWVzLWRlbGV0ZS1uby1jYWNoZS5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsMzEgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4K
Kzx0aXRsZT5EZWxldGlvbiBvZiBXaW5kb3dQcm94eSdzIGluZGV4ZWQgcHJvcGVydGllcyBpcyBu
b3QgY2FjaGVkPC90aXRsZT4KKzxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvd2luZG93LW9iamVjdC5odG1sI3dpbmRvd3Byb3h5LWRl
bGV0ZSI+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+
Cis8ZGl2IGlkPWxvZz48L2Rpdj4KKzxzY3JpcHQ+Citjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5j
cmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKK2lmcmFtZS5zcmNkb2MgPSAiIjsKKwordGVzdCgoKSA9
PiB7CisgIGFzc2VydF9lcXVhbHMod2luZG93Lmxlbmd0aCwgMCk7CisgIGZvciAobGV0IGkgPSAw
OyBpIDwgMWU1OyBpKyspIHsKKyAgICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzBdKTsKKyAg
fQorCisgIGRvY3VtZW50LmJvZHkuYXBwZW5kKGlmcmFtZSk7CisgIGFzc2VydF9mYWxzZShkZWxl
dGUgd2luZG93WzBdKTsKK30sICJBYnNlbmNlIG9mIGluZGV4ICcwJyBpcyBub3QgY2FjaGVkIik7
CisKK3Rlc3QoKCkgPT4geworICBhc3NlcnRfZXF1YWxzKHdpbmRvdy5sZW5ndGgsIDEpOworICBm
b3IgKGxldCBpID0gMDsgaSA8IDFlNTsgaSsrKSB7CisgICAgYXNzZXJ0X2ZhbHNlKGRlbGV0ZSB3
aW5kb3dbMF0pOworICB9CisKKyAgaWZyYW1lLnJlbW92ZSgpOworICBhc3NlcnRfdHJ1ZShkZWxl
dGUgd2luZG93WzBdKTsKK30sICJQcmVzZW5jZSBvZiBpbmRleCAnMCcgaXMgbm90IGNhY2hlZCIp
OworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJv
cGVydGllcy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dp
bmRvdy1pbmRleGVkLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNzg1NjMpCisr
KyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3Nl
cnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNyArMSw5IEBACiAKIFBBU1MgSW5kZXhlZCBwcm9wZXJ0
aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpCiBQQVNTIEVuc3VyZSBp
bmRleGVkIHByb3BlcnRpZXMgaGF2ZSB0aGUgY29ycmVjdCBjb25maWd1cmF0aW9uCi1GQUlMIElu
ZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBtb2RlKSAx
IGFzc2VydF90aHJvd3NfanM6IGZ1bmN0aW9uICIoKSA9PiBPYmplY3QuZGVmaW5lUHJvcGVydHko
d2luZG93LCAwLCB7IHZhbHVlOiAiYmFyIiB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBJbmRleGVk
IHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKG5vbi1zdHJpY3QgbW9kZSkgMiBhc3Nl
cnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRv
dywgMSwgeyB2YWx1ZTogImJhciIgfSkiIGRpZCBub3QgdGhyb3cKK1BBU1MgSW5kZXhlZCBwcm9w
ZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpIDEKK1BBU1MgSW5k
ZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChub24tc3RyaWN0IG1vZGUpIDIK
K1BBU1MgQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDIgaXMgYW4gaW5kZXgKK1BB
U1MgQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDEgaXMgbm90IGFuIGluZGV4CiBQ
QVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9iamVjdCAobm9uLXN0cmljdCBt
b2RlKSAzCiAKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0
aWVzLXN0cmljdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0
L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMtc3RyaWN0LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
Mjc4NTYzKQorKysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9o
dG1sL2Jyb3dzZXJzL3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMt
c3RyaWN0LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSwxMCArMSw4IEBACiAKIFBB
U1MgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9kZSkK
LUZBSUwgSW5kZXhlZCBwcm9wZXJ0aWVzIG9mIHRoZSB3aW5kb3cgb2JqZWN0IChzdHJpY3QgbW9k
ZSkgMSBhc3NlcnRfdGhyb3dzX2pzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgIHdpbmRv
d1swXSA9ICJmb28iOwotICB9IiBkaWQgbm90IHRocm93Ci1GQUlMIEluZGV4ZWQgcHJvcGVydGll
cyBvZiB0aGUgd2luZG93IG9iamVjdCAoc3RyaWN0IG1vZGUpIDIgYXNzZXJ0X3Rocm93c19qczog
ZnVuY3Rpb24gImZ1bmN0aW9uICgpIHsKLSAgICB3aW5kb3dbMV0gPSAiZm9vIjsKLSAgfSIgZGlk
IG5vdCB0aHJvdworUEFTUyBJbmRleGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3Qg
KHN0cmljdCBtb2RlKSAxCitQQVNTIEluZGV4ZWQgcHJvcGVydGllcyBvZiB0aGUgd2luZG93IG9i
amVjdCAoc3RyaWN0IG1vZGUpIDIKK1BBU1MgQm9yZGVybGluZSBudW1lcmljIGtleTogMiAqKiAz
MiAtIDIgaXMgYW4gaW5kZXggKHN0cmljdCBtb2RlKQorUEFTUyBCb3JkZXJsaW5lIG51bWVyaWMg
a2V5OiAyICoqIDMyIC0gMSBpcyBub3QgYW4gaW5kZXggKHN0cmljdCBtb2RlKQogUEFTUyBJbmRl
eGVkIHByb3BlcnRpZXMgb2YgdGhlIHdpbmRvdyBvYmplY3QgKHN0cmljdCBtb2RlKSAzCiAKSW5k
ZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9icm93
c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9wZXJ0aWVzLXN0cmljdC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvaHRtbC9icm93c2Vycy90aGUtd2luZG93LW9iamVjdC93aW5kb3ctaW5kZXhlZC1wcm9w
ZXJ0aWVzLXN0cmljdC5odG1sCShyZXZpc2lvbiAyNzg1NjMpCisrKyBMYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmpl
Y3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy1zdHJpY3QuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNDQsNiArNDQsMjkgQEAgdGVzdChmdW5jdGlvbigpIHsKIH0pOwogdGVzdChmdW5jdGlvbigp
IHsKICAgInVzZSBzdHJpY3QiOworICBhc3NlcnRfdGhyb3dzX2pzKFR5cGVFcnJvciwgKCkgPT4g
eyB3aW5kb3dbNDI5NDk2NzI5NF0gPSAxOyB9KTsKKyAgYXNzZXJ0X2ZhbHNlKFJlZmxlY3Quc2V0
KHdpbmRvdywgNDI5NDk2NzI5NCwgMikpOworICBhc3NlcnRfZmFsc2UoUmVmbGVjdC5kZWZpbmVQ
cm9wZXJ0eSh3aW5kb3csIDQyOTQ5NjcyOTQsIHsgdmFsdWU6IDMgfSkpOworICBhc3NlcnRfdGhy
b3dzX2pzKFR5cGVFcnJvciwgKCkgPT4gT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5
NDk2NzI5NCwgeyBnZXQ6ICgpID0+IDQgfSkpOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0
OTY3Mjk0XSwgdW5kZWZpbmVkKTsKKyAgYXNzZXJ0X2ZhbHNlKDQyOTQ5NjcyOTQgaW4gd2luZG93
KTsKKyAgYXNzZXJ0X3RydWUoZGVsZXRlIHdpbmRvd1s0Mjk0OTY3Mjk0XSk7Cit9LCAiQm9yZGVy
bGluZSBudW1lcmljIGtleTogMiAqKiAzMiAtIDIgaXMgYW4gaW5kZXggKHN0cmljdCBtb2RlKSIp
OwordGVzdChmdW5jdGlvbigpIHsKKyAgInVzZSBzdHJpY3QiOworICB3aW5kb3dbNDI5NDk2NzI5
NV0gPSAxOworICBhc3NlcnRfZXF1YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMSk7CisgIGFzc2Vy
dF90cnVlKFJlZmxlY3Quc2V0KHdpbmRvdywgNDI5NDk2NzI5NSwgMikpOworICBhc3NlcnRfZXF1
YWxzKHdpbmRvd1s0Mjk0OTY3Mjk1XSwgMik7CisgIGFzc2VydF90cnVlKFJlZmxlY3QuZGVmaW5l
UHJvcGVydHkod2luZG93LCA0Mjk0OTY3Mjk1LCB7IHZhbHVlOiAzIH0pKTsKKyAgYXNzZXJ0X2Vx
dWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDMpOworICBPYmplY3QuZGVmaW5lUHJvcGVydHkod2lu
ZG93LCA0Mjk0OTY3Mjk1LCB7IGdldDogKCkgPT4gNCB9KTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5k
b3dbNDI5NDk2NzI5NV0sIDQpOworICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5Njcy
OTVdKTsKKyAgYXNzZXJ0X2ZhbHNlKDQyOTQ5NjcyOTUgaW4gd2luZG93KTsKK30sICJCb3JkZXJs
aW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMSBpcyBub3QgYW4gaW5kZXggKHN0cmljdCBtb2Rl
KSIpOwordGVzdChmdW5jdGlvbigpIHsKKyAgInVzZSBzdHJpY3QiOwogICB2YXIgcHJvdG8gPSBX
aW5kb3cucHJvdG90eXBlOwogICBbLTEsIDAsIDFdLmZvckVhY2goZnVuY3Rpb24oaWR4KSB7CiAg
ICAgYXNzZXJ0X2ZhbHNlKGlkeCBpbiBwcm90bywgaWR4ICsgIiBpbiBwcm90byIpOwpJbmRleDog
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL2Jyb3dzZXJz
L3RoZS13aW5kb3ctb2JqZWN0L3dpbmRvdy1pbmRleGVkLXByb3BlcnRpZXMuaHRtbAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwv
YnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQtcHJvcGVydGllcy5odG1s
CShyZXZpc2lvbiAyNzg1NjMpCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL2h0bWwvYnJvd3NlcnMvdGhlLXdpbmRvdy1vYmplY3Qvd2luZG93LWluZGV4ZWQt
cHJvcGVydGllcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00Miw2ICs0MiwyNyBAQCB0ZXN0KGZ1
bmN0aW9uKCkgewogICBhc3NlcnRfZXF1YWxzKGRlbGV0ZSB3aW5kb3dbMV0sIHRydWUpOwogfSk7
CiB0ZXN0KGZ1bmN0aW9uKCkgeworICB3aW5kb3dbNDI5NDk2NzI5NF0gPSAxOworICBhc3NlcnRf
ZmFsc2UoUmVmbGVjdC5zZXQod2luZG93LCA0Mjk0OTY3Mjk0LCAyKSk7CisgIGFzc2VydF9mYWxz
ZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5NCwgeyB2YWx1ZTogMyB9
KSk7CisgIGFzc2VydF90aHJvd3NfanMoVHlwZUVycm9yLCAoKSA9PiBPYmplY3QuZGVmaW5lUHJv
cGVydHkod2luZG93LCA0Mjk0OTY3Mjk0LCB7IGdldDogKCkgPT4gNCB9KSk7CisgIGFzc2VydF9l
cXVhbHMod2luZG93WzQyOTQ5NjcyOTRdLCB1bmRlZmluZWQpOworICBhc3NlcnRfZmFsc2UoNDI5
NDk2NzI5NCBpbiB3aW5kb3cpOworICBhc3NlcnRfdHJ1ZShkZWxldGUgd2luZG93WzQyOTQ5Njcy
OTRdKTsKK30sICJCb3JkZXJsaW5lIG51bWVyaWMga2V5OiAyICoqIDMyIC0gMiBpcyBhbiBpbmRl
eCIpOwordGVzdChmdW5jdGlvbigpIHsKKyAgd2luZG93WzQyOTQ5NjcyOTVdID0gMTsKKyAgYXNz
ZXJ0X2VxdWFscyh3aW5kb3dbNDI5NDk2NzI5NV0sIDEpOworICBhc3NlcnRfdHJ1ZShSZWZsZWN0
LnNldCh3aW5kb3csIDQyOTQ5NjcyOTUsIDIpKTsKKyAgYXNzZXJ0X2VxdWFscyh3aW5kb3dbNDI5
NDk2NzI5NV0sIDIpOworICBhc3NlcnRfdHJ1ZShSZWZsZWN0LmRlZmluZVByb3BlcnR5KHdpbmRv
dywgNDI5NDk2NzI5NSwgeyB2YWx1ZTogMyB9KSk7CisgIGFzc2VydF9lcXVhbHMod2luZG93WzQy
OTQ5NjcyOTVdLCAzKTsKKyAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHdpbmRvdywgNDI5NDk2NzI5
NSwgeyBnZXQ6ICgpID0+IDQgfSk7CisgIGFzc2VydF9lcXVhbHMod2luZG93WzQyOTQ5NjcyOTVd
LCA0KTsKKyAgYXNzZXJ0X3RydWUoZGVsZXRlIHdpbmRvd1s0Mjk0OTY3Mjk1XSk7CisgIGFzc2Vy
dF9mYWxzZSg0Mjk0OTY3Mjk1IGluIHdpbmRvdyk7Cit9LCAiQm9yZGVybGluZSBudW1lcmljIGtl
eTogMiAqKiAzMiAtIDEgaXMgbm90IGFuIGluZGV4Iik7Cit0ZXN0KGZ1bmN0aW9uKCkgewogICB2
YXIgcHJvdG8gPSBXaW5kb3cucHJvdG90eXBlOwogICBbLTEsIDAsIDFdLmZvckVhY2goZnVuY3Rp
b24oaWR4KSB7CiAgICAgYXNzZXJ0X2ZhbHNlKGlkeCBpbiBwcm90bywgaWR4ICsgIiBpbiBwcm90
byIpOwpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1v
bi13aW5kb3ctZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9k
ZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24td2luZG93LWV4cGVjdGVkLnR4dAkocmV2aXNpb24g
Mjc4NTYzKQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1v
bi13aW5kb3ctZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQCBUZXN0
cyB0aGF0IHBhc3NpbmcgdGhlIGdsb2JhbCBvYmplY3QgdG8gCiBPbiBzdWNjZXNzLCB5b3Ugd2ls
bCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01Q
TEVURSIuCiAKIAotUEFTUyBmb28odykgaXMgMQorUEFTUyBmb28odykgaXMgTmFOCiBQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRl
c3RzL2pzL2RvbS9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwtb2JqZWN0LWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFs
LW9iamVjdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI3ODU2MykKKysrIExheW91dFRlc3RzL2pz
L2RvbS9pbmRleGVkLXNldHRlci1vbi1nbG9iYWwtb2JqZWN0LWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtMyw3ICszLDggQEAgVGVzdHMgdGhhdCBjcmVhdGluZyBhbiBpbmRleGVkIHNl
dHRlciBvbgogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCiAKLVBBU1MgdGhpbmd5IGlzICJm
b28iCitQQVNTIHRoaXMuX19kZWZpbmVTZXR0ZXJfXyg0MiwgZnVuY3Rpb24oKSB7fSkgdGhyZXcg
ZXhjZXB0aW9uIFR5cGVFcnJvcjogRmFpbGVkIHRvIHNldCBhbiBpbmRleGVkIHByb3BlcnR5IG9u
IFdpbmRvdzogSW5kZXhlZCBwcm9wZXJ0eSBzZXR0ZXIgaXMgbm90IHN1cHBvcnRlZC4uCitQQVNT
IHRoaXNbNDJdIGlzIHVuZGVmaW5lZAogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQog
CiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2Rm
Zy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvanMvZG9tL3NjcmlwdC10ZXN0cy9kZmctZW5zdXJlLWFycmF5LXN0b3JhZ2Utb24td2lu
ZG93LmpzCShyZXZpc2lvbiAyNzg1NjMpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRl
c3RzL2RmZy1lbnN1cmUtYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMJKHdvcmtpbmcgY29weSkK
QEAgLTIzLDQgKzIzLDQgQEAgd2hpbGUgKCFkZmdDb21waWxlZCh7Zjpmb28sIGNvbXBpbGVzOjJ9
KQogdmFyIHcgPSB0aGlzOwogd1swXSA9IDE7CiB3Lmxlbmd0aCA9IDE7Ci1zaG91bGRCZSgiZm9v
KHcpIiwgIjEiKTsKK3Nob3VsZEJlKCJmb28odykiLCAiTmFOIik7CkluZGV4OiBMYXlvdXRUZXN0
cy9qcy9kb20vc2NyaXB0LXRlc3RzL2RmZy1lbnN1cmUtbm9uLWFycmF5LWFycmF5LXN0b3JhZ2Ut
b24td2luZG93LmpzCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVz
dHMvZGZnLWVuc3VyZS1ub24tYXJyYXktYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMJKHJldmlz
aW9uIDI3ODU2MykKKysrIExheW91dFRlc3RzL2pzL2RvbS9zY3JpcHQtdGVzdHMvZGZnLWVuc3Vy
ZS1ub24tYXJyYXktYXJyYXktc3RvcmFnZS1vbi13aW5kb3cuanMJKHdvcmtpbmcgY29weSkKQEAg
LTUxLDEwICs1MSw4IEBAIGZvciAodmFyIGkgPSAwOyBpIDwgMTAwMDsgaSA9IGRmZ0luY3JlbWUK
IHZhciB3ID0gdGhpczsKIHdbMF0gPSAxOwogdy5sZW5ndGggPSAxOwotdmFyIHRoaW5neSA9IGZh
bHNlOwotdy5fX2RlZmluZVNldHRlcl9fKDEsIGZ1bmN0aW9uKHZhbHVlKSB7IHRoaW5neSA9IHZh
bHVlOyB9KTsKLXNob3VsZEJlKCJmb28odykiLCAiMSIpOwotc2hvdWxkQmUoInRoaW5neSIsICJm
YWxzZSIpOworc2hvdWxkVGhyb3dFcnJvck5hbWUoIncuX19kZWZpbmVTZXR0ZXJfXygxLCBmdW5j
dGlvbigpIHt9KSIsICJUeXBlRXJyb3IiKTsKK3Nob3VsZEJlKCJmb28odykiLCAiTmFOIik7CiAK
IC8vIEF0IHRoaXMgcG9pbnQgd2UgY2hlY2sgdG8gbWFrZSBzdXJlIHRoYXQgYmFyIGRvZXNuJ3Qg
ZW5kIHVwIGVpdGhlciBjcmVhdGluZyBhcnJheSBzdG9yYWdlIGZvcgogLy8gdGhlIHdpbmRvdyBw
cm94eSwgb3IgZXF1YWxseSBiYWRseSwgc3RvcmluZyB0byB0aGUgYWxyZWFkeSBjcmVhdGVkIGFy
cmF5IHN0b3JhZ2Ugb24gdGhlIHByb3h5CkBAIC02Miw4ICs2MCw3IEBAIHNob3VsZEJlKCJ0aGlu
Z3kiLCAiZmFsc2UiKTsKIC8vIHRoaW5neSwgdG8gZGV0ZWN0IHRoYXQgZm9yIGluZGV4IDEgd2Ug
ZmFsbCB0aHJvdWdoIHRoZSBwcm94eSB0byB0aGUgcmVhbCB3aW5kb3cgb2JqZWN0LgogYmFyKHcp
OwogCi1zaG91bGRCZSgidGhpbmd5IiwgIjQyIik7Ci1zaG91bGRCZSgiZm9vKHcpIiwgIjEiKTsK
IHcubGVuZ3RoID0gMjsKLXNob3VsZEJlKCJmb28odykiLCAiMC8wIik7CitzaG91bGRCZSgid1sx
XSIsICIiKTsKK3Nob3VsZEJlKCJmb28odykiLCAiTmFOIik7CiAKSW5kZXg6IExheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5qcwo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vc2NyaXB0LXRlc3RzL2luZGV4ZWQtc2V0
dGVyLW9uLWdsb2JhbC1vYmplY3QuanMJKHJldmlzaW9uIDI3ODU2MykKKysrIExheW91dFRlc3Rz
L2pzL2RvbS9zY3JpcHQtdGVzdHMvaW5kZXhlZC1zZXR0ZXItb24tZ2xvYmFsLW9iamVjdC5qcwko
d29ya2luZyBjb3B5KQpAQCAtMiwxMyArMiw5IEBAIGRlc2NyaXB0aW9uKAogIlRlc3RzIHRoYXQg
Y3JlYXRpbmcgYW4gaW5kZXhlZCBzZXR0ZXIgb24gdGhlIGdsb2JhbCBvYmplY3QgZG9lc24ndCBi
cmVhayB0aGluZ3MuIgogKTsKIAotdmFyIHRoaW5neTsKLQotdGhpcy5fX2RlZmluZVNldHRlcl9f
KDQyLCBmdW5jdGlvbih2YWx1ZSkgewotICAgIHRoaW5neSA9IHZhbHVlOwotfSk7CitzaG91bGRU
aHJvd0Vycm9yTmFtZSgidGhpcy5fX2RlZmluZVNldHRlcl9fKDQyLCBmdW5jdGlvbigpIHt9KSIs
ICJUeXBlRXJyb3IiKTsKIAogdGhpc1s0Ml0gPSAiZm9vIjsKIAotc2hvdWxkQmUoInRoaW5neSIs
ICJcImZvb1wiIik7CitzaG91bGRCZSgidGhpc1s0Ml0iLCAidW5kZWZpbmVkIik7CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>