<?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>173229</bug_id>
          
          <creation_ts>2017-06-10 11:23:43 -0700</creation_ts>
          <short_desc>[WebIDL] Re-implement GetOwnPropertySlot[ByIndex] generation to more closely follow WebIDL</short_desc>
          <delta_ts>2017-10-23 18:31:17 -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>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Sam Weinig">sam</reporter>
          <assigned_to name="Sam Weinig">sam</assigned_to>
          <cc>buildbot</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>saam</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1317913</commentid>
    <comment_count>0</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-10 11:23:43 -0700</bug_when>
    <thetext>[WebIDL] Re-implement GetOwnPropertySlot[ByIndex] generation to more closely follow WebIDL</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317919</commentid>
    <comment_count>1</comment_count>
      <attachid>312576</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-10 12:36:55 -0700</bug_when>
    <thetext>Created attachment 312576
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317924</commentid>
    <comment_count>2</comment_count>
      <attachid>312578</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-10 13:31:16 -0700</bug_when>
    <thetext>Created attachment 312578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317927</commentid>
    <comment_count>3</comment_count>
      <attachid>312578</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-10 13:41:01 -0700</bug_when>
    <thetext>Comment on attachment 312578
Patch

Attachment 312578 did not pass bindings-ews (mac):
Output: http://webkit-queues.webkit.org/results/3908781

New failing tests:
(JS) JSTestGenerateIsReachable.cpp
(JS) JSTestNode.cpp
(JS) JSTestObj.cpp</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317931</commentid>
    <comment_count>4</comment_count>
      <attachid>312580</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-10 15:21:38 -0700</bug_when>
    <thetext>Created attachment 312580
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317936</commentid>
    <comment_count>5</comment_count>
      <attachid>312580</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-10 17:02:37 -0700</bug_when>
    <thetext>Comment on attachment 312580
Patch

Attachment 312580 did not pass ios-sim-ews (ios-simulator-wk2):
Output: http://webkit-queues.webkit.org/results/3909241

New failing tests:
js/dom/prototype-chain-caching-with-impure-get-own-property-slot-traps-5.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317937</commentid>
    <comment_count>6</comment_count>
      <attachid>312583</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2017-06-10 17:02:38 -0700</bug_when>
    <thetext>Created attachment 312583
Archive of layout-test-results from ews123 for ios-simulator-wk2

The attached test failures were seen while running run-webkit-tests on the ios-sim-ews.
Bot: ews123  Port: ios-simulator-wk2  Platform: Mac OS X 10.12.5</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317945</commentid>
    <comment_count>7</comment_count>
      <attachid>312586</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-10 19:02:19 -0700</bug_when>
    <thetext>Created attachment 312586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317953</commentid>
    <comment_count>8</comment_count>
      <attachid>312586</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-10 20:06:38 -0700</bug_when>
    <thetext>Comment on attachment 312586
Patch

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

&gt; Source/WebCore/ChangeLog:14
&gt; +        Add new IDL type, IDLDOMWindowShell, to represent the mapping from Frame -&gt; JSDOMWindowShell,

I don&apos;t get that. Why map a Frame to a JSDOMWindowShell. A DOMWindow to map to a JSDOMWindowShell IMO. A JSDOMWindowShell if the wrapper exposed to JS for DOMWindow, and it proxies everything to JSDOMWindow.
You can have a DOMWindow / JSDOMWindow / JSDOMWindowShell without frame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317954</commentid>
    <comment_count>9</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-10 20:11:54 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #8)
&gt; Comment on attachment 312586 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=312586&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:14
&gt; &gt; +        Add new IDL type, IDLDOMWindowShell, to represent the mapping from Frame -&gt; JSDOMWindowShell,
&gt; 
&gt; I don&apos;t get that. Why map a Frame to a JSDOMWindowShell. A DOMWindow to map
&gt; to a JSDOMWindowShell IMO. A JSDOMWindowShell if the wrapper exposed to JS
&gt; for DOMWindow, and it proxies everything to JSDOMWindow.
&gt; You can have a DOMWindow / JSDOMWindow / JSDOMWindowShell without frame.

That isn&apos;t really the model that it was designed for. The JSDOMWindowShell is the wrapper for the Frame, in the sense that even as the Documents and DOMWindows change, as the Frame navigates, the JSDOMWindowShell always stays the same.

In fact, the way you get to a JSDOMWindowShell is always via the Frame (by way of it&apos;s ScriptController).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317958</commentid>
    <comment_count>10</comment_count>
      <attachid>312586</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-10 21:42:54 -0700</bug_when>
    <thetext>Comment on attachment 312586
Patch

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

&gt; Source/WebCore/ChangeLog:35
&gt; +        (WebCore::JSHTMLDocument::getOwnPropertySlot):.

I would add to the Changelog that you changed behavior. Named properties on HTML document no longer override own properties, they only override properties from the prototype chain (as per the WebIDL specification for OverrideBuiltins).

&gt; Source/WebCore/bindings/js/JSDOMWindowShell.h:39
&gt; +// FIXME: Rename to JSWindowProxy to match HTML spec naming.

or JSDOMWindowProxy since we use JSDOMWindow instead of JSWindow

&gt; Source/WebCore/bindings/js/JSDOMWindowShell.h:75
&gt; +JSC::JSValue toJS(JSC::ExecState*, Frame&amp;);

Maybe a comment to explain that this returns a JSDOMWindowShell? This is not necessarily obvious given that the parameter is a Frame.

&gt; Source/WebCore/html/HTMLFrameSetElement.cpp:231
&gt; +Frame* HTMLFrameSetElement::namedItem(const AtomicString&amp; name)

I really feel that it is weird to return a Frame here. I think we should return a DOMWindow.

Let consider window.self. It is defined as a returning a WindowProxy in the spec. What&apos;s next? Are we going to update DOMWindow::self() to return a Frame* ?

&gt; Source/WebCore/html/HTMLFrameSetElement.idl:41
&gt; +    getter DOMWindowShell (DOMString name);

So now we start using DOMWindowShell in the IDL? If so, we should do it consistently (And rename to WindowProxy to match the spec). So far, we&apos;ve been using DOMWindow everywhere.

&gt; LayoutTests/ChangeLog:9
&gt; +        Update results. These now match Firefox.

I would explain here that this is a progression because you fixed a bug in HTMLdocument&apos;s getOwnPropertySlot:
Named properties on HTML document no longer override own properties, they only override properties from the prototype chain (as per the WebIDL specification for OverrideBuiltins).

&gt; LayoutTests/ChangeLog:11
&gt; +        * js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-4-expected.txt:

I looked at this one and this seems again to be caused by the bug fix I mentioned earlier. Image with name foo no longer overrides own property with name foo (which is of type &quot;function&quot;).

Instead of rebaselining with FAIL lines, I think we should fix those tests. Since they want to test impure get own property. I would suggest we update them to move the foo property from document to the document prototype. Then I believe the tests would PASS and keep testing what they want to test (A named property can override another property because of OverrideBuiltins).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1317994</commentid>
    <comment_count>11</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-11 08:10:46 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #10)
&gt; Comment on attachment 312586 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=312586&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:35
&gt; &gt; +        (WebCore::JSHTMLDocument::getOwnPropertySlot):.
&gt; 
&gt; I would add to the Changelog that you changed behavior. Named properties on
&gt; HTML document no longer override own properties, they only override
&gt; properties from the prototype chain (as per the WebIDL specification for
&gt; OverrideBuiltins).

Ok.

&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMWindowShell.h:39
&gt; &gt; +// FIXME: Rename to JSWindowProxy to match HTML spec naming.
&gt; 
&gt; or JSDOMWindowProxy since we use JSDOMWindow instead of JSWindow
&gt; 
&gt; &gt; Source/WebCore/bindings/js/JSDOMWindowShell.h:75
&gt; &gt; +JSC::JSValue toJS(JSC::ExecState*, Frame&amp;);
&gt; 
&gt; Maybe a comment to explain that this returns a JSDOMWindowShell? This is not
&gt; necessarily obvious given that the parameter is a Frame.

Sure.

&gt; 
&gt; &gt; Source/WebCore/html/HTMLFrameSetElement.cpp:231
&gt; &gt; +Frame* HTMLFrameSetElement::namedItem(const AtomicString&amp; name)
&gt; 
&gt; I really feel that it is weird to return a Frame here. I think we should
&gt; return a DOMWindow.
&gt; 
&gt; Let consider window.self. It is defined as a returning a WindowProxy in the
&gt; spec. What&apos;s next? Are we going to update DOMWindow::self() to return a
&gt; Frame* ?

I actually think that we should update all places that return a DOMWindow for bindings purposes to return a Frame, as that is ultimately more accurate, and the toJS() for DOMWindow, just goes and gets the Frame.

Perhaps this could be made less confusing if we added a real DOMWindowProxy class that lives off the Frame. A more realistic version might be to just renamed the already poorly named ScriptController to DOMWindowProxy.

But, I think that should be left to another change, so I will update this patch to use DOMWindow, and remove the IDLDOMWindowShell stuff.

&gt; 
&gt; &gt; LayoutTests/ChangeLog:9
&gt; &gt; +        Update results. These now match Firefox.
&gt; 
&gt; I would explain here that this is a progression because you fixed a bug in
&gt; HTMLdocument&apos;s getOwnPropertySlot:
&gt; Named properties on HTML document no longer override own properties, they
&gt; only override properties from the prototype chain (as per the WebIDL
&gt; specification for OverrideBuiltins).

Ok.

&gt; 
&gt; &gt; LayoutTests/ChangeLog:11
&gt; &gt; +        * js/dom/dfg-prototype-chain-caching-with-impure-get-own-property-slot-traps-4-expected.txt:
&gt; 
&gt; I looked at this one and this seems again to be caused by the bug fix I
&gt; mentioned earlier. Image with name foo no longer overrides own property with
&gt; name foo (which is of type &quot;function&quot;).
&gt; 
&gt; Instead of rebaselining with FAIL lines, I think we should fix those tests.
&gt; Since they want to test impure get own property. I would suggest we update
&gt; them to move the foo property from document to the document prototype. Then
&gt; I believe the tests would PASS and keep testing what they want to test (A
&gt; named property can override another property because of OverrideBuiltins).

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318025</commentid>
    <comment_count>12</comment_count>
      <attachid>312609</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-06-11 11:22:55 -0700</bug_when>
    <thetext>Created attachment 312609
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318329</commentid>
    <comment_count>13</comment_count>
      <attachid>312609</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2017-06-12 12:26:46 -0700</bug_when>
    <thetext>Comment on attachment 312609
Patch

r=me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318338</commentid>
    <comment_count>14</comment_count>
      <attachid>312609</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-12 12:50:44 -0700</bug_when>
    <thetext>Comment on attachment 312609
Patch

Clearing flags on attachment: 312609

Committed r218126: &lt;http://trac.webkit.org/changeset/218126&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1318340</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-06-12 12:50:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363415</commentid>
    <comment_count>16</comment_count>
      <attachid>312609</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-23 14:54:39 -0700</bug_when>
    <thetext>Comment on attachment 312609
Patch

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

&gt; Source/WebCore/ChangeLog:16
&gt; +        in isVisibleNamedProperty, switch to VMInquiry as we use elsewhere and add a missing FIXME.

Why VMInquiry? This seems observable if we&apos;re calling into various JS hooks like [[Get]] and [[HasOwnProperty]], etc.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363433</commentid>
    <comment_count>17</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-23 15:34:37 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #16)
&gt; Comment on attachment 312609 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=312609&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; +        in isVisibleNamedProperty, switch to VMInquiry as we use elsewhere and add a missing FIXME.
&gt; 
&gt; Why VMInquiry? This seems observable if we&apos;re calling into various JS hooks
&gt; like [[Get]] and [[HasOwnProperty]], etc.

This was a while ago, so my memory is not great, but I believe if you don&apos;t, you might end up recursing indefinitely, since you could be in a [[Get]], etc. when calling this helper. 

The spec just says things like &quot;If O has an own property named P, then return false.&quot; here (https://heycam.github.io/webidl/#dfn-named-property-visibility) and it usually specifies and links to a the ECMAScript spec when it wants you to ensure a hook is called.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363487</commentid>
    <comment_count>18</comment_count>
    <who name="Saam Barati">saam</who>
    <bug_when>2017-10-23 17:28:48 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #17)
&gt; (In reply to Saam Barati from comment #16)
&gt; &gt; Comment on attachment 312609 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=312609&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; &gt; +        in isVisibleNamedProperty, switch to VMInquiry as we use elsewhere and add a missing FIXME.
&gt; &gt; 
&gt; &gt; Why VMInquiry? This seems observable if we&apos;re calling into various JS hooks
&gt; &gt; like [[Get]] and [[HasOwnProperty]], etc.
&gt; 
&gt; This was a while ago, so my memory is not great, but I believe if you don&apos;t,
&gt; you might end up recursing indefinitely, since you could be in a [[Get]],
&gt; etc. when calling this helper. 
&gt; 
&gt; The spec just says things like &quot;If O has an own property named P, then
&gt; return false.&quot; here
&gt; (https://heycam.github.io/webidl/#dfn-named-property-visibility) and it
&gt; usually specifies and links to a the ECMAScript spec when it wants you to
&gt; ensure a hook is called.

Do you know if this can be called on arbitrary JS object types?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1363513</commentid>
    <comment_count>19</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2017-10-23 18:31:17 -0700</bug_when>
    <thetext>(In reply to Saam Barati from comment #18)
&gt; (In reply to Sam Weinig from comment #17)
&gt; &gt; (In reply to Saam Barati from comment #16)
&gt; &gt; &gt; Comment on attachment 312609 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=312609&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Source/WebCore/ChangeLog:16
&gt; &gt; &gt; &gt; +        in isVisibleNamedProperty, switch to VMInquiry as we use elsewhere and add a missing FIXME.
&gt; &gt; &gt; 
&gt; &gt; &gt; Why VMInquiry? This seems observable if we&apos;re calling into various JS hooks
&gt; &gt; &gt; like [[Get]] and [[HasOwnProperty]], etc.
&gt; &gt; 
&gt; &gt; This was a while ago, so my memory is not great, but I believe if you don&apos;t,
&gt; &gt; you might end up recursing indefinitely, since you could be in a [[Get]],
&gt; &gt; etc. when calling this helper. 
&gt; &gt; 
&gt; &gt; The spec just says things like &quot;If O has an own property named P, then
&gt; &gt; return false.&quot; here
&gt; &gt; (https://heycam.github.io/webidl/#dfn-named-property-visibility) and it
&gt; &gt; usually specifies and links to a the ECMAScript spec when it wants you to
&gt; &gt; ensure a hook is called.
&gt; 
&gt; Do you know if this can be called on arbitrary JS object types?

Since it is part of property lookup, I don&apos;t think so.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312576</attachid>
            <date>2017-06-10 12:36:55 -0700</date>
            <delta_ts>2017-06-10 13:31:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173229-20170610123722.patch</filename>
            <type>text/plain</type>
            <size>228447</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODA1MSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwNiBAQAorMjAxNy0wNi0xMCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlLWltcGxlbWVudCBH
ZXRPd25Qcm9wZXJ0eVNsb3RbQnlJbmRleF0gZ2VuZXJhdGlvbiB0byBtb3JlIGNsb3NlbHkgZm9s
bG93IFdlYklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczMjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoK
KyAgICAgICAgUmVtb3ZlIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgd2hpY2ggaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAg
ICAgIEFkZCBuZXcgSURMIHR5cGUsIElETERPTVdpbmRvd1NoZWxsLCB0byByZXByZXNlbnQgdGhl
IG1hcHBpbmcgZnJvbSBGcmFtZSAtPiBKU0RPTVdpbmRvd1NoZWxsLAorICAgICAgICBzaW5jZSB0
aGVyZSBpcyBubyBJREwgZmlsZSBmb3IgRE9NV2luZG93U2hlbGwuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNW
aXNpYmxlTmFtZWRQcm9wZXJ0eSk6CisgICAgICAgIEFkZCBPdmVycmlkZUJ1aWx0aW5zIGVudW0g
YXMgcmVxdWVzdGVkIGJ5IGEgcHJldmlvdXMgcmV2aWV3IChhbmQgSSBmb3Jnb3QgYWRkcmVzcykg
YW5kIGFkb3B0IGl0CisgICAgICAgIGluIGlzVmlzaWJsZU5hbWVkUHJvcGVydHksIHN3aXRjaCB0
byBWTUlucXVpcnkgYXMgd2UgdXNlIGVsc2V3aGVyZSBhbmQgYWRkIGEgbWlzc2luZyBGSVhNRS4K
KworICAgICAgICAoV2ViQ29yZTo6YWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHkpOgorICAgICAg
ICBBZGQgdmFyaWF0aW9uIG9mIGlzVmlzaWJsZU5hbWVkUHJvcGVydHkgdGhhdCB0YWtlcyBhIGZ1
bmN0b3IgYW5kIHJldHVybnMgZWl0aGVyIHRoZSB2YWx1ZSB0aGUKKyAgICAgICAgZnVuY3RvciBy
ZXR1cm5zLCBvciBzdGQ6Om51bGxvcHQuIFRoaXMgYWxsb3dzIGdldE93blByb3BlcnR5U2xvdCB0
byBhdm9pZCBkb2luZyB0d28gbG9va3VwcyBmb3IKKyAgICAgICAgcHJvcGVydHksIG9uY2UgaW4g
dGhlIG5hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGhtIGFuZCBhZ2FpbiB3aGVuIGl0
IG5lZWRzIHRoZSB2YWx1ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICBTdGFuZGFyZGl6ZSB0b0pTIGZ1bmN0aW9u
cyB0byBtYXRjaCBnZW5lcmF0ZWQgY29kZSAoaGF2ZSBvbmUgdGhhdCB0YWtlcyBhIHJlZmVyZW5j
ZSwgYW5kIGRvZXMgdGhlCisgICAgICAgIGNhc3QsIGFuZCBvbmUgdGhhdCB0YWtlcyBhIHBvaW50
ZXIsIGRvZXMgYSBudWxsIGNoZWNrIGFuZCBjYWxscyB0aGUgb25lIHRoYXQgdGFrZXMgYSByZWZl
cmVuY2UpLgorICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxEb2N1bWVudDo6Z2V0T3duUHJvcGVy
dHlTbG90KTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlIG5lZWQgZm9yIGEgY3VzdG9tIGdldE93
blByb3BlcnR5U2xvdC4KKyAgICAgICAgLSBUaGUgY3VzdG9tIGNvZGUgZm9yIHRoZSAnb3Blbicg
cHJvcGVydHkgaXMgbm8gbG9uZ2VyIG5lZWRlZCwgYWNjb3JkaW5nIHRvIEdlb2ZmIEdhcmVuIChv
ZgorICAgICAgICAgIEdhcmVu4oCZcyBGaXJzdCBMYXcgb2YgRE9NIEJpbmRpbmdzIGZhbWUpOiAK
KyAgICAgICAgICAKKyAgICAgICAgICAiW2l0XSB3YXMgcHVyZWx5IGEgd29ya2Fyb3VuZCBmb3Ig
YSBwcm9ibGVtIHdlIGRvbuKAmXQgaGF2ZSBhbnltb3JlIChob3N0IGZ1bmN0aW9ucyBsYWNraW5n
IGEgCisgICAgICAgICAgZGlyZWN0IHBvaW50ZXIgdG8gdGhlaXIgZ2xvYmFsIG9iamVjdHMpIgor
ICAgICAgICAKKyAgICAgICAgLSBUaGUgbmFtZWQgZ2V0dGVyIGlzIG5vdyBnZW5lcmF0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcik6IERlbGV0ZWQuCisg
ICAgICAgIFRoaXMgaXMgbm93IGdlbmVyYXRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
SFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHA6IFJlbW92ZWQuCisgICAgICAgIE5vdyBnZW5l
cmF0ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06Cisg
ICAgICAgIChJc0J1aWx0aW5UeXBlKToKKyAgICAgICAgQWRkZWQgRE9NV2luZG93U2hlbGwgYXMg
YSBidWlsdGluIHR5cGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKToKKyAgICAgICAgQWRk
IHRoZSBuZWNlc3NhcnkgaW5jbHVkZXMgd2hlbiB1c2luZyBET01XaW5kb3dTaGVsbC4KKworICAg
ICAgICAoR2VuZXJhdGVJbmRleGVkR2V0dGVyKToKKyAgICAgICAgQWRkIGRlc2NyaXB0aW9uIGZy
b20gdGhlIHNwZWMgYW5kIGNoYW5nZSB0byByZXR1cm4gdGhlIGNvbXB1dGVkIHZhbHVlcyByYXRo
ZXIgdGhhbgorICAgICAgICBwcmludCB0aGVtIHRvIHRoZSBvdXRwdXQgYXJyYXkuIFRoaXMgd2ls
bCBiZSB1c2VmdWwgZm9yIHNvbWUgY2xpZW50cyBnb2luZyBmb3J3YXJkLAorICAgICAgICB3aG8g
b25seSB3YW50IHRoZSBhdHRyaWJ1dGVzLgorCisgICAgICAgIChHZW5lcmF0ZU5hbWVkR2V0dGVy
KToKKyAgICAgICAgQWRkIGRlc2NyaXB0aW9uIGZyb20gdGhlIHNwZWMgYW5kIGNoYW5nZSB0byBy
ZXR1cm4gdGhlIGNvbXB1dGVkIHZhbHVlcyByYXRoZXIgdGhhbgorICAgICAgICBwcmludCB0aGVt
IHRvIHRoZSBvdXRwdXQgYXJyYXkuIFRoaXMgd2lsbCBiZSB1c2VmdWwgZm9yIHNvbWUgY2xpZW50
cyBnb2luZyBmb3J3YXJkLAorICAgICAgICB3aG8gb25seSB3YW50IHRoZSBhdHRyaWJ1dGVzLiBB
bHNvIGdyZWF0bHkgc2ltcGxpZmllcyB0aGluZ3MgYXMgW0N1c3RvbU5hbWVkR2V0dGVyXXMKKyAg
ICAgICAgYXJlIG5vIGxvbmdlciBuZWVkZWQvc3VwcG9ydGVkIGFuZCB0aGUgZXhjZXB0aW9uIC8g
bnVsbCB2YWx1ZSBjaGVja3MgYXJlIHBlcmZvcm1lZAorICAgICAgICBlbHNld2hlcmUuCisKKyAg
ICAgICAgKEdlbmVyYXRlTmFtZWRHZXR0ZXJMYW1iZGEpOgorICAgICAgICBUaGlzIGdlbmVyYXRl
cyBhIGxhbWJkYSBmdW5jdG9yIGZvciB1c2UgaW4gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHko
Li4uKS4gSXQKKyAgICAgICAgaGFuZGxlcyBjYWxsaW5nIHRoZSBuYW1lZCBnZXR0ZXIgaW1wbGVt
ZW50YXRpb24sIGFuZCB0cmFuc2Zvcm1pbmcgdGhlIHJlc3VsdCBpbnRvCisgICAgICAgIGFuIG9u
ZSB0aGF0IGNhbiBiZSByZWFzb25lZCBhYm91dCBieSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0
eSwgc3BlY2lmaWNhbGx5LAorICAgICAgICBjb252ZXJ0aW5nIGl0IGZyb20gdXNpbmcgSURMJ3Mg
bm90aW9uIG9mIG51bGxhYmlsaXR5IHRvIHN0ZDo6b3B0aW9uYWwuIAorCisgICAgICAgIChHZW5l
cmF0ZUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgpOgorICAgICAgICBBZGQgc3BlYyBhbm5vdGF0aW9ucyBhbmQgdXNlIGhlbHBl
ciBmdW5jdGlvbnMuIAorCisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5TmFtZXMpOgor
ICAgICAgICBBZGQgRklYTUUgYWJvdXQgc3VwcG9ydGluZyBub24tY29udGlndW91cyBpbmRpY2Vz
IChzaG91bGQgdGhhdCBldmVyIGNvbWUgdXApCisgICAgICAgIGFuZCB1c2UgSlNPYmplY3QgZXhw
bGljaXRseSwgcmF0aGVyIHRoYW4gYmFzZSwgdG8gZ2V0IHRoZSBkZWZhdWx0IGdldE93blByb3Bl
cnR5TmFtZXMKKyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRlUHV0
KToKKyAgICAgICAgVXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIGJhc2UsIHRv
IGdldCB0aGUgZGVmYXVsdCBwdXQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRl
UHV0QnlJbmRleCk6CisgICAgICAgIFVzZSBKU09iamVjdCBleHBsaWNpdGx5LCByYXRoZXIgdGhh
biBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgcHV0QnlJbmRleCBpbXBsZW1lbnRhdGlvbi4KKwor
ICAgICAgICAoR2VuZXJhdGVEZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIFVzZSBKU09iamVj
dCBleHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgZ2V0T3du
UHJvcGVydHlTbG90L2RlZmluZU93blByb3BlcnR5CisgICAgICAgIGltcGxlbWVudGF0aW9ucy4K
KworICAgICAgICAoR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1vbik6CisgICAgICAgIEFkb3B0
IG5ldyBPdmVycmlkZUJ1aWx0aW5zIGVudW0uCisKKyAgICAgICAgKEdlbmVyYXRlRGVsZXRlUHJv
cGVydHlEZWZpbml0aW9uKToKKyAgICAgICAgVXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhl
ciB0aGFuIGJhc2UsIHRvIGdldCB0aGUgZGVmYXVsdCBkZWxldGVQcm9wZXJ0eSBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICAoR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUJ5SW5kZXhEZWZpbml0aW9u
KToKKyAgICAgICAgVXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIGJhc2UsIHRv
IGdldCB0aGUgZGVmYXVsdCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXggaW1wbGVtZW50YXRpb24uCisK
KyAgICAgICAgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
UmVtb3ZlIFtDdXN0b21OYW1lZEdldHRlcl0gdXNlLgorIAorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICBSZW1vdmUgW0N1c3RvbU5hbWVkR2V0dGVyXSB1c2UgYW5kIG1lcmdlIElu
c3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleCBpbnRvCisgICAgICAgIElu
c3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IGFzIHRoZSBmb3JtZXIgb25seSBleGlz
dGVkIGZvciB0aGUgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXhdCisgICAgICAgIGV4
dGVuZGVkIGF0dHJpYnV0ZSwgd2hpY2ggYXMgYmVlbiByZW1vdmVkLiBbQ3VzdG9tR2V0T3duUHJv
cGVydHlTbG90XSBub3cgcmVxdWlyZXMgdGhlIHVzZXIKKyAgICAgICAgdG8gaW1wbGVtZW50IGJv
dGggaG9va3MuCisgICAgICAgIAorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgIFJlbmFtZSBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkvR2VuZXJhdGVHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4Qm9keSB0byByZW1vdmUgdGhlIGJvZHksCisgICAgICAgIGFu
ZCBwcmVkaWNhdGUgdGhlaXIgZ2VuZXJhdGlvbiBwdXJlbHkgb24gSW5zdGFuY2VPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4IGFzIG5vdGVkIGZvcgorICAgICAgICB0aGUgcmVhc29u
cyBhYm92ZS4KKworICAgICAgICAoR2V0QmFzZUlETFR5cGUpOgorICAgICAgICBBZGQgbWFwcGlu
ZyBvZiBET01XaW5kb3dTaGVsbCAtPiBJRExET01XaW5kb3dTaGVsbC4KKworICAgICAgICAoTmF0
aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUpOgorICAgICAgICBSZXF1aXJlIEV4ZWNT
dGF0ZSBmb3IgRE9NV2luZG93U2hlbGwgY29udmVyc2lvbi4KKworICAgICAgICAoTmF0aXZlVG9K
U1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsT2JqZWN0KToKKyAgICAgICAgUmVxdWlyZSBET01H
bG9iYWxPYmplY3QgZm9yIERPTVdpbmRvd1NoZWxsIGNvbnZlcnNpb24uIChXaGlsZSB0aGlzIGlz
IG5vdCBzdHJpY3RseSBuZWNlc3NhcnksCisgICAgICAgIHNpbmNlIHRoZSBnbG9iYWwgb2JqZWN0
IHdpbGwgYmUgaWdub3JlLCBzaW5jZSB3ZSBhcmUgbW9kZWxpbmcgRE9NV2luZG93U2hlbGwgYXMg
aW50ZXJmYWNlLCBpdAorICAgICAgICBpcyBoZWxwZnVsIGZvciB0aGlzIHRvIGJlIGNvbnNpc3Rl
bnQgcmlnaHQgbm93LiBXZSBjYW4gcmUtdmlzaXQgdGhpcyBsYXRlciBzaG91bGQgaXQgYSBwcm9i
bGVtKS4KKworICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KTogRGVsZXRl
ZC4KKyAgICAgICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keUJ5SW5kZXgpOiBEZWxl
dGVkLgorICAgICAgICAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KTogRGVsZXRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5q
c29uOgorICAgICAgICBSZW1vdmUgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXhdIGFu
ZCBbQ3VzdG9tTmFtZWRHZXR0ZXJdLgorCisgICAgICAgICogZG9tL0V4Y2VwdGlvbk9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZXR1cm5UeXBlPjo6cmV0dXJuVmFsdWUpOgor
ICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byBwZWVrIGF0IHRoZSByZXR1cm4gdmFsdWUKKworICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmNhcHR1cmVFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50OjpyZWxlYXNlRXZlbnRzKToKKyAgICAgICAgTW92ZSBjbGVhciB1cCB0byBi
ZSB3aXRoIHRoZSBvdGhlciBvYnNvbGV0ZSBuby1vcCBmdW5jdGlvbnMuIEFkZCBzcGVjIGFubm90
YXRpb25zCisgICAgICAgIHRvIGNsZWFyIHVwIGFueSBjb25mdXNpb24gYWJvdXQgd2h5IHRoZXkg
YXJlIG5vLW9wcy4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpuYW1lZEl0ZW0p
OgorICAgICAgICBBZGQgaW1wbGVtZW50YXRpb24gb2YgbmFtZWRJdGVtIGJhc2VkIG9uIHRoZSBv
bmUgdGhhdCB3YXMgaW4gSlNET01IVE1MRG9jdW1lbnRDdXN0b20uY3BwLgorCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICBB
ZGQgc3R1YiB2ZXJzaW9uIG9mIHN1cHBvcnRlZFByb3BlcnR5TmFtZXMgd2l0aCB0aGUgYWxnb3Jp
dGhtIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorICAgICAgICBJIGRvbid0IHdhbnQgdG8gY2hhbmdl
IGJlaGF2aW9yIGluIHRoaXMgcGF0Y2gsIGFuZCBzaW5jZSB3ZSBoYXZlIG5vdCBlbnVtZXJhdGVk
IHRoZQorICAgICAgICBwcm9wZXJ0aWVzIG9mIGRvY3VtZW50IGluIHRoZSBwYXN0LCBJIGxlZnQg
dGhpcyB1bmltcGxlbWVudGVkIGZvciBub3cuCisKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVu
dC5pZGw6CisgICAgICAgIEFkZCBuYW1lZCBnZXR0ZXIsIHJlbW92ZSBbRm9yd2FyZERlY2xhcmVJ
bkhlYWRlcl0gZnJvbSBvcGVuLCBhbmQgcmVtb3ZlIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3Rd
CisgICAgICAgIGFuZCBbQ3VzdG9tTmFtZWRHZXR0ZXJdIHdoaWNoIGFyZSBubyBsb25nZXIgbmVl
ZGVkLgorCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFt
ZVNldEVsZW1lbnQ6Om5hbWVkSXRlbSk6CisgICAgICAgIEFkZCBuYW1lZCBnZXR0ZXIgYmFzZWQg
b24gdGhlIGltcGxlbWVudGF0aW9uIGluIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAu
CisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnN1cHBvcnRlZFByb3Bl
cnR5TmFtZXMpOgorICAgICAgICBBcyBub3RlZCBhYm92ZSwgSSBkb24ndCB3YW50IHRvIGNoYW5n
ZSBiZWhhdmlvciB3aXRoIHRoaXMgY2hhbmdlLCBzbyBJIGhhdmUgbGVmdCB0aGlzIHVuaW1wbGVt
ZW50ZWQKKyAgICAgICAgZm9yIG5vdy4gSG93ZXZlciwgd2UgbWF5IG5vdCB3YW50IHRvIGltcGxl
bWVudCBpdCBhdCBhbGwsIGFzIHRoaXMgbmFtZWQgZ2V0dGVyIGlzIG5vdCBzcGVjaWZpZWQgYW5k
CisgICAgICAgIGF0IGxlYXN0IEZpcmVmb3ggZG9lcyBub3Qgc3VwcG9ydCBpdC4KKworICAgICAg
ICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGw6CisgICAgICAgIFJlbW92ZSBbQ3VzdG9t
TmFtZWRHZXR0ZXJdIGFuZCBhZGQgbmFtZWQgZ2V0dGVyLgorCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorICAgICAgICBSZW1vdmUgbm93IHJlZHVuZGFudCBbQ3VzdG9tR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleF0uIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RdIGltcGxpZXMgdGhp
cy4KKyAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJy
aWRlQnVpbHRpbnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVC
dWlsdGlucy5jcHA6CisgICAgICAgIFVwZGF0ZSB0ZXN0IHJlc3VsdHMuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsOiBSZW1vdmVkLgorICAgICAgICBSZW1vdmUgdGVzdCBvZiBb
Q3VzdG9tTmFtZWRHZXR0ZXJdIHdoaWNoIG5vIGxvbmdlciBleGlzdHMuIAorCiAyMDE3LTA2LTEw
ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbUXVpY2tMb29rXSBQ
cmV2aWV3TG9hZGVyIG5lZWRzIHRvIGNoZWNrIGlmIGl0cyBSZXNvdXJjZUxvYWRlciBoYXMgcmVh
Y2hlZCB0aGUgdGVybWluYWwgc3RhdGUgYmVmb3JlIGNhbGxpbmcgZGlkUmVjZWl2ZVJlc3BvbnNl
KCkgYW5kIGZyaWVuZHMKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZpc2lvbiAyMTc5NDYp
CisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTE4
Niw3ICsxMTg2LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRpbmdzL2pzL0pTSFRN
TERvY3VtZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTEVsZW1lbnRDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcAotICAgIGJp
bmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9q
cy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTFRl
bXBsYXRlRWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0hpc3RvcnlDdXN0b20u
Y3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHBy
b2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVj
dC5wYnhwcm9qCShyZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhj
b2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4NDYsNyArNTg0Niw2
IEBACiAJCUJDRDBFMEZBMEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5jcHAgaW4g
U291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QwRTBGNzBFOTcy
QzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovOyB9OwogCQlCQ0QwRTBGQjBFOTcy
QzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDBFMEY4MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0
eU9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07
CiAJCUJDRDBFMEZDMEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDBFMEY5MEU5NzJD
MzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklC
VVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0Q0MUFCQjBDMDYwREU4MDBDMEU0NDYgLyog
SlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDQxQUJBMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hUTUxG
cmFtZVNldEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQ0Q1MzM2NDBFRDY4NDg5MDA4ODc0
NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNo
ZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oICovOyB9OwogCQlCQ0Q5QzI2MjBDMTdBQTY3MDA1Qzkw
QTIgLyogSlNET01XaW5kb3dDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVp
bGRGaWxlOyBmaWxlUmVmID0gQkNEOUMyNUUwQzE3QUE2NzAwNUM5MEEyIC8qIEpTRE9NV2luZG93
Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNEOUMyNjQwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1
c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0Q5QzI2MDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAqLzsgfTsKQEAgLTE0
MzQ5LDcgKzE0MzQ4LDYgQEAKIAkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5
T3JpZ2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IFNlY3VyaXR5
T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEMEUwRjgwRTk3MkMz
NTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5j
ZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsg
cGF0aCA9IFNlY3VyaXR5T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJD
RDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjdXJpdHlPcmlnaW5IYXNoLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07Ci0JCUJDRDQxQUJBMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hUTUxGcmFt
ZVNldEVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQ
cm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDYWNoZWRTY3JpcHRT
b3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Q5QzI1RTBD
MTdBQTY3MDA1QzkwQTIgLyogSlNET01XaW5kb3dDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJj
ZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NV2luZG93Q3VzdG9tLmNwcDsgc291cmNlVHJlZSA9
ICI8Z3JvdXA+IjsgfTsKIAkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3Rv
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNOb2RlQ3VzdG9t
LmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNjUyLDcgKzIzNjUwLDYgQEAK
IAkJCQlCQzUxNTgwQTBDMDNENDA0MDA4QkIwRUUgLyogSlNIVE1MRG9jdW1lbnRDdXN0b20uY3Bw
ICovLAogCQkJCUJDNTgyM0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxFbGVtZW50Q3VzdG9t
LmNwcCAqLywKIAkJCQlCQzZENDRCRDBDMDdFRkI2MDA3MkQyQzkgLyogSlNIVE1MRW1iZWRFbGVt
ZW50Q3VzdG9tLmNwcCAqLywKLQkJCQlCQ0Q0MUFCQTBDMDYwREU4MDBDMEU0NDYgLyogSlNIVE1M
RnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzMwNUNBMzBDMDc4MUJCMDBDRDIw
RjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJRDZGNzk2MEMxNjZG
RkVDRTAwNzZERDE4IC8qIEpTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJ
N0E3NEVDQkMxMDE4MzlEQTAwQkY5MzlFIC8qIEpTSW5zcGVjdG9yRnJvbnRlbmRIb3N0Q3VzdG9t
LmNwcCAqLywKQEAgLTMyMDMxLDcgKzMyMDI4LDYgQEAKIAkJCQlBOEQwNjRGQjBBMjNDMENDMDA1
RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQkM0OTE4
QzYwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQlCQzkyNkY4MDBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50
LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDRDQxQUJCMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hU
TUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJQTgwRTdCMTQw
QTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAog
CQkJCTFBRTJBQTJFMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIZWFkaW5nRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQkxQUUyQUEzMDBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MSFJF
bGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
SURMVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBl
cy5oCShyZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBl
cy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMCArNDUsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWU+
IGNsYXNzIFN0cm9uZzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFzcyBET01Qcm9taXNl
OworY2xhc3MgRnJhbWU7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlEYXRhOwogY2xhc3Mg
SURCVmFsdWU7Ci1jbGFzcyBET01Qcm9taXNlOwogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBUPgogc3Ry
dWN0IElETFR5cGUgewpAQCAtMjQ1LDYgKzI0Niw4IEBAIHN0cnVjdCBJRExJREJWYWx1ZSA6IElE
TFdyYXBwZXI8SURCVmFsdWUKIHN0cnVjdCBJRExXZWJHTEFueSA6IElETFR5cGU8V2ViR0xBbnk+
IHsgfTsKICNlbmRpZgogCit1c2luZyBJRExET01XaW5kb3dTaGVsbCA9IElETEludGVyZmFjZTxG
cmFtZT47CisKIC8vIE5vbi1XZWJJREwgY29udmVuaWVuY2UgdHlwZSBhbGlhc2VzCiAKIHVzaW5n
IElETEJ1ZmZlclNvdXJjZSA9IElETFVuaW9uPElETEludGVyZmFjZTxKU0M6OkFycmF5QnVmZmVy
Vmlldz4sIElETEludGVyZmFjZTxKU0M6OkFycmF5QnVmZmVyPj47CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAJKHJldmlzaW9u
IDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9u
ZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDYgQEAKICNpbmNsdWRlICJKU0hUTUxE
b2N1bWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCIKLSNpbmNsdWRlICJKU0hUTUxG
cmFtZVNldEVsZW1lbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTSFRNTE9iamVjdEVsZW1lbnRD
dXN0b20uY3BwIgogI2luY2x1ZGUgIkpTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNIaXN0b3J5Q3VzdG9tLmNwcCIKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaAkocmV2aXNpb24gMjE3
OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlv
bnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDE0IEBAIG5hbWVzcGFjZSBXZWJDb3Jl
IHsKIC8vIEltcGxlbWVudGF0aW9ucyBvZiB0aGUgYWJzdHJhY3Qgb3BlcmF0aW9ucyBkZWZpbmVk
IGF0CiAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNsZWdhY3ktcGxhdGZvcm0t
b2JqZWN0LWFic3RyYWN0LW9wcwogCitlbnVtIGNsYXNzIE92ZXJyaWRlQnVpbHRpbnMgeworICAg
IE5vLAorICAgIFllcworfTsKIAogLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlICduYW1lZCBw
cm9wZXJ0eSB2aXNpYmlsaXR5IGFsZ29yaXRobScKIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5p
by93ZWJpZGwvI2Rmbi1uYW1lZC1wcm9wZXJ0eS12aXNpYmlsaXR5Ci10ZW1wbGF0ZTxib29sIG92
ZXJyaWRlQnVpbHRpbnMsIGNsYXNzIEpTQ2xhc3M+Cit0ZW1wbGF0ZTxPdmVycmlkZUJ1aWx0aW5z
IG92ZXJyaWRlQnVpbHRpbnMsIGNsYXNzIEpTQ2xhc3M+CiBzdGF0aWMgYm9vbCBpc1Zpc2libGVO
YW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDbGFzcyYgdGhpc09iamVjdCwg
SlNDOjpQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIC8vIEZJWE1FOiBJdCBzZWVt
cyB1bmZvcnR1bmF0ZSB0aGF0IGhhdmUgdG8gZG8gdHdvIGxvb2t1cHMgZm9yIHRoZSBwcm9wZXJ0
eSBuYW1lLApAQCAtNTUsMTcgKzU5LDE4IEBAIHN0YXRpYyBib29sIGlzVmlzaWJsZU5hbWVkUHJv
cGVydHkoSlNDOjoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIC8vIDIuIElmIE8g
aGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCBQLCB0aGVuIHJldHVybiBmYWxzZS4KLSAgICBKU0M6
OlByb3BlcnR5U2xvdCBzbG90IHsgJnRoaXNPYmplY3QsIEpTQzo6UHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OkdldE93blByb3BlcnR5IH07CisgICAgSlNDOjpQcm9wZXJ0eVNsb3Qg
c2xvdCB7ICZ0aGlzT2JqZWN0LCBKU0M6OlByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBl
OjpWTUlucXVpcnkgfTsKICAgICBpZiAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KCZ0aGlzT2JqZWN0LCAmc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAKICAgICAvLyAzLiBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHRo
YXQgaGFzIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHJl
dHVybiB0cnVlLgotICAgIGlmIChvdmVycmlkZUJ1aWx0aW5zKQorICAgIGlmIChvdmVycmlkZUJ1
aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKICAgICAgICAgcmV0dXJuIHRydWU7CiAK
ICAgICAvLyA0LiBJbml0aWFsaXplIHByb3RvdHlwZSB0byBiZSB0aGUgdmFsdWUgb2YgdGhlIGlu
dGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgTy4KICAgICAvLyA1LiBXaGlsZSBwcm90
b3R5cGUgaXMgbm90IG51bGw6CiAgICAgLy8gICAgMS4gSWYgcHJvdG90eXBlIGlzIG5vdCBhIG5h
bWVkIHByb3BlcnRpZXMgb2JqZWN0LCBhbmQgcHJvdG90eXBlIGhhcyBhbiBvd24gcHJvcGVydHkg
bmFtZWQgUCwgdGhlbiByZXR1cm4gZmFsc2UuCisgICAgLy8gRklYTUU6IEltcGxlbWVudCBjaGVj
a2luZyBmb3IgJ25hbWVkIHByb3BlcnRpZXMgb2JqZWN0Jy4KICAgICAvLyAgICAyLiBTZXQgcHJv
dG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9w
ZXJ0eSBvZiBwcm90b3R5cGUuCiAgICAgYXV0byBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LmdldFBy
b3RvdHlwZURpcmVjdCgpOwogICAgIGlmIChwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBKU0M6OmFz
T2JqZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdCgmc3RhdGUsIHByb3BlcnR5TmFtZSwg
c2xvdCkpCkBAIC03NSw0ICs4MCw0NCBAQCBzdGF0aWMgYm9vbCBpc1Zpc2libGVOYW1lZFByb3Bl
cnR5KEpTQzo6CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIEFuIGltcGxlbWVudGF0aW9uIG9m
IHRoZSAnbmFtZWQgcHJvcGVydHkgdmlzaWJpbGl0eSBhbGdvcml0aG0nIGF1Z21lbnRlZCB0byBy
ZXBsYWNlIHRoZQorLy8gJ3N1cHBvcnRlZCBwcm9wZXJ0eSBuYW1lJyBjaGVjayB3aXRoIGRpcmVj
dCBhY2Nlc3MgdG8gdGhlIGltcGxlbWVudGF0aW9uIHZhbHVlIHJldHVybmVkCisvLyBmb3IgdGhl
IHByb3BlcnR5IG5hbWUsIHZpYSBwYXNzZWQgaW4gZnVuY3Rvci4gVGhpcyBhbGxvd3MgdXMgdG8g
YXZvaWQgdHdvIGxvb2tpbmcgdXAgdGhlCisvLyB0aGUgcHJvcGVydHkgbmFtZSB0d2ljZTsgb25j
ZSBmb3IgJ25hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGhtJyBjaGVjaywgYW5kIHRo
ZW4KKy8vIGFnYWluIHdoZW4gdGhlIHZhbHVlIGlzIG5lZWRlZC4KK3RlbXBsYXRlPE92ZXJyaWRl
QnVpbHRpbnMgb3ZlcnJpZGVCdWlsdGlucywgY2xhc3MgSlNDbGFzcywgY2xhc3MgRnVuY3Rvcj4K
K3N0YXRpYyBhdXRvIGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRlJiBz
dGF0ZSwgSlNDbGFzcyYgdGhpc09iamVjdCwgSlNDOjpQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBGdW5jdG9yJiYgaXRlbUFjY2Vzc29yKSAtPiBkZWNsdHlwZShpdGVtQWNjZXNzb3IodGhpc09i
amVjdCwgcHJvcGVydHlOYW1lKSkKK3sKKyAgICAvLyBOT1RFOiBXaGlsZSBpdCBpcyBub3Qgc3Bl
Y2lmaWVkLCBhIFN5bWJvbCBjYW4gbmV2ZXIgYmUgYSAnc3VwcG9ydGVkIHByb3BlcnR5CisgICAg
Ly8gbmFtZScgc28gd2UgY2hlY2sgdGhhdCBmaXJzdC4KKyAgICBpZiAocHJvcGVydHlOYW1lLmlz
U3ltYm9sKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAvLyAxLiBJZiBQ
IGlzIG5vdCBhIHN1cHBvcnRlZCBwcm9wZXJ0eSBuYW1lIG9mIE8sIHRoZW4gcmV0dXJuIGZhbHNl
LgorICAgIGF1dG8gcmVzdWx0ID0gaXRlbUFjY2Vzc29yKHRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAvLyAyLiBJZiBPIGhhcyBhbiBvd24gcHJvcGVydHkgbmFtZWQgUCwgdGhlbiByZXR1cm4gZmFs
c2UuCisgICAgSlNDOjpQcm9wZXJ0eVNsb3Qgc2xvdCB7ICZ0aGlzT2JqZWN0LCBKU0M6OlByb3Bl
cnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKKyAgICBpZiAoSlNDOjpK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KCZ0aGlzT2JqZWN0LCAmc3RhdGUsIHByb3BlcnR5
TmFtZSwgc2xvdCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAvLyAzLiBJ
ZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBbT3ZlcnJpZGVCdWlsdGlu
c10gZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0cnVlLgorICAgIGlmIChvdmVycmlk
ZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKKyAgICAgICAgcmV0dXJuIHJlc3Vs
dDsKKworICAgIC8vIDQuIEluaXRpYWxpemUgcHJvdG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0
aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBPLgorICAgIC8vIDUuIFdoaWxl
IHByb3RvdHlwZSBpcyBub3QgbnVsbDoKKyAgICAvLyAgICAxLiBJZiBwcm90b3R5cGUgaXMgbm90
IGEgbmFtZWQgcHJvcGVydGllcyBvYmplY3QsIGFuZCBwcm90b3R5cGUgaGFzIGFuIG93biBwcm9w
ZXJ0eSBuYW1lZCBQLCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICAvLyBGSVhNRTogSW1wbGVtZW50
IGNoZWNraW5nIGZvciAnbmFtZWQgcHJvcGVydGllcyBvYmplY3QnLgorICAgIC8vICAgIDIuIFNl
dCBwcm90b3R5cGUgdG8gYmUgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1d
IHByb3BlcnR5IG9mIHByb3RvdHlwZS4KKyAgICBhdXRvIHByb3RvdHlwZSA9IHRoaXNPYmplY3Qu
Z2V0UHJvdG90eXBlRGlyZWN0KCk7CisgICAgaWYgKHByb3RvdHlwZS5pc09iamVjdCgpICYmIEpT
Qzo6YXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KCZzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIDYuIFJl
dHVybiB0cnVlLgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0KSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkocmV2aXNpb24gMjE3OTQ2
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjQ3LDMwICsyNDcsMzAgQEAgSlNET01XaW5kb3dTaGVsbCogSlNET01X
aW5kb3dCYXNlOjpzaGVsbAogCiAvLyBKU0RPTUdsb2JhbE9iamVjdCogaXMgaWdub3JlZCwgYWNj
ZXNzaW5nIGEgd2luZG93IGluIGFueSBjb250ZXh0IHdpbGwKIC8vIHVzZSB0aGF0IERPTVdpbmRv
dydzIHByb3RvdHlwZSBjaGFpbi4KLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIEpTRE9N
R2xvYmFsT2JqZWN0KiwgRE9NV2luZG93JiBkb21XaW5kb3cpCitKU1ZhbHVlIHRvSlMoRXhlY1N0
YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqLCBET01XaW5kb3cmIGRvbVdpbmRvdykKIHsK
LSAgICByZXR1cm4gdG9KUyhleGVjLCBkb21XaW5kb3cpOworICAgIHJldHVybiB0b0pTKHN0YXRl
LCBkb21XaW5kb3cpOwogfQogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBET01XaW5k
b3cmIGRvbVdpbmRvdykKK0pTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9N
R2xvYmFsT2JqZWN0KiwgRnJhbWUmIGZyYW1lKQogewotICAgIEZyYW1lKiBmcmFtZSA9IGRvbVdp
bmRvdy5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBqc051bGwoKTsK
LSAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLndpbmRvd1NoZWxsKGN1cnJlbnRXb3JsZChleGVj
KSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsIGZyYW1lKTsKIH0KIAotSlNET01XaW5kb3cqIHRv
SlNET01XaW5kb3coRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIERPTVdpbmRvdyYgZG9tV2luZG93KQogewotICAgIGlm
ICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCku
d2luZG93U2hlbGwod29ybGQpLT53aW5kb3coKTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwgZG9t
V2luZG93LmZyYW1lKCkpOworfQorCitKU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRvdyhGcmFtZSYg
ZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgcmV0dXJuIGZyYW1lLnNjcmlw
dCgpLndpbmRvd1NoZWxsKHdvcmxkKS0+d2luZG93KCk7CiB9CiAKIEpTRE9NV2luZG93KiB0b0pT
RE9NV2luZG93KEpTQzo6Vk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogewogICAgIGlmICghdmFsdWUu
aXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVybiBudWxscHRyOwog
CiAgICAgd2hpbGUgKCF2YWx1ZS5pc051bGwoKSkgewogICAgICAgICBKU09iamVjdCogb2JqZWN0
ID0gYXNPYmplY3QodmFsdWUpOwpAQCAtMjgxLDcgKzI4MSw3IEBAIEpTRE9NV2luZG93KiB0b0pT
RE9NV2luZG93KEpTQzo6Vk0mIHZtLCAKICAgICAgICAgICAgIHJldHVybiBqc0Nhc3Q8SlNET01X
aW5kb3dTaGVsbCo+KG9iamVjdCktPndpbmRvdygpOwogICAgICAgICB2YWx1ZSA9IG9iamVjdC0+
Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgfQotICAgIHJldHVybiAwOworICAgIHJldHVybiBu
dWxscHRyOwogfQogCiBET01XaW5kb3cmIGluY3VtYmVudERPTVdpbmRvdyhFeGVjU3RhdGUqIGV4
ZWMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01X
aW5kb3dCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDE2ICs4NSwxOCBAQCBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIG1fc2hlbGw7CiAgICAgfTsKIAot
ICAgIC8vIFJldHVybnMgYSBKU0RPTVdpbmRvdyBvciBqc051bGwoKQotICAgIC8vIEpTRE9NR2xv
YmFsT2JqZWN0KiBpcyBpZ25vcmVkLCBhY2Nlc3NpbmcgYSB3aW5kb3cgaW4gYW55IGNvbnRleHQg
d2lsbAotICAgIC8vIHVzZSB0aGF0IERPTVdpbmRvdydzIHByb3RvdHlwZSBjaGFpbi4KKyAgICAv
LyBUaGUgZm9sbG93aW5nIHJldHVybiBhIEpTRE9NV2luZG93U2hlbGwgb3IganNOdWxsKCkKKyAg
ICAvLyBKU0RPTUdsb2JhbE9iamVjdCogaXMgaWdub3JlZCwgYWNjZXNzaW5nIGEgd2luZG93IGlu
IGFueSBjb250ZXh0IHdpbGwgdXNlIHRoYXQgRE9NV2luZG93J3MgcHJvdG90eXBlIGNoYWluLgog
ICAgIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNE
T01HbG9iYWxPYmplY3QqLCBET01XaW5kb3cmKTsKLSAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRv
SlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IERPTVdpbmRvdyogd2luZG93KSB7IHJldHVybiB3aW5kb3cgPyB0b0pTKGV4ZWMsIGdsb2JhbE9i
amVjdCwgKndpbmRvdykgOiBKU0M6OmpzTnVsbCgpOyB9CisgICAgaW5saW5lIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9i
amVjdCwgRE9NV2luZG93KiB3aW5kb3cpIHsgcmV0dXJuIHdpbmRvdyA/IHRvSlMoc3RhdGUsIGds
b2JhbE9iamVjdCwgKndpbmRvdykgOiBKU0M6OmpzTnVsbCgpOyB9CisgICAgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIEZyYW1lJik7CisgICAg
aW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9i
YWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRnJhbWUqIGZyYW1lKSB7IHJldHVybiBmcmFtZSA/IHRv
SlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgKmZyYW1lKSA6IEpTQzo6anNOdWxsKCk7IH0KICAgICBK
U0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIERPTVdpbmRvdyYpOwotICAgIGlubGlu
ZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgRE9NV2luZG93KiB3aW5k
b3cpIHsgcmV0dXJuIHdpbmRvdyA/IHRvSlMoZXhlYywgKndpbmRvdykgOiBKU0M6OmpzTnVsbCgp
OyB9CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwg
RE9NV2luZG93KiB3aW5kb3cpIHsgcmV0dXJuIHdpbmRvdyA/IHRvSlMoc3RhdGUsICp3aW5kb3cp
IDogSlNDOjpqc051bGwoKTsgfQogCi0gICAgLy8gUmV0dXJucyBKU0RPTVdpbmRvdyBvciAwCi0g
ICAgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUqLCBET01XcmFwcGVyV29ybGQmKTsK
KyAgICAvLyBUaGUgZm9sbG93aW5nIHJldHVybiBhIEpTRE9NV2luZG93IG9yIG51bGxwdHIuCisg
ICAgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUmLCBET01XcmFwcGVyV29ybGQmKTsK
KyAgICBpbmxpbmUgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUqIGZyYW1lLCBET01X
cmFwcGVyV29ybGQmIHdvcmxkKSB7IHJldHVybiBmcmFtZSA/IHRvSlNET01XaW5kb3coKmZyYW1l
LCB3b3JsZCkgOiBudWxscHRyOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNET01XaW5kb3cqIHRv
SlNET01XaW5kb3coSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICAvLyBET01XaW5kb3cg
YXNzb2NpYXRlZCB3aXRoIGdsb2JhbCBvYmplY3Qgb2YgdGhlICJtb3N0LXJlY2VudGx5LWVudGVy
ZWQgYXV0aG9yIGZ1bmN0aW9uIG9yIHNjcmlwdApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0xMTgsMTggKzExOCwxNCBAQCBET01XaW5kb3cqIEpTRE9NV2luZG93U2hlbGw6OnRv
V3JhcHBlZChWCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMKIC8vIC0tLS0KIAotSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lKQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSog
ZXhlYywgRnJhbWUmIGZyYW1lKQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiBq
c051bGwoKTsKLSAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLndpbmRvd1NoZWxsKGN1cnJlbnRX
b3JsZChleGVjKSk7CisgICAgcmV0dXJuIGZyYW1lLnNjcmlwdCgpLndpbmRvd1NoZWxsKGN1cnJl
bnRXb3JsZChleGVjKSk7CiB9CiAKLUpTRE9NV2luZG93U2hlbGwqIHRvSlNET01XaW5kb3dTaGVs
bChGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCitKU0RPTVdpbmRvd1NoZWxs
KiB0b0pTRE9NV2luZG93U2hlbGwoRnJhbWUmIGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxk
KQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBmcmFt
ZS0+c2NyaXB0KCkud2luZG93U2hlbGwod29ybGQpOworICAgIHJldHVybiBmcmFtZS5zY3JpcHQo
KS53aW5kb3dTaGVsbCh3b3JsZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgJKHJldmlz
aW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hl
bGwuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNDQgKzM0LDQ4IEBACiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKIAotICAgIGNsYXNzIEZyYW1lOworY2xhc3MgRnJhbWU7CiAKLSAgICBjbGFzcyBKU0RP
TVdpbmRvd1NoZWxsIDogcHVibGljIEpTQzo6SlNQcm94eSB7Ci0gICAgICAgIHR5cGVkZWYgSlND
OjpKU1Byb3h5IEJhc2U7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMgdm9pZCBkZXN0cm95
KEpTQ2VsbCopOworLy8gRklYTUU6IFJlbmFtZSB0byBKU1dpbmRvd1Byb3h5IHRvIG1hdGNoIEhU
TUwgc3BlYyBuYW1pbmcuCitjbGFzcyBKU0RPTVdpbmRvd1NoZWxsIDogcHVibGljIEpTQzo6SlNQ
cm94eSB7CisgICAgdHlwZWRlZiBKU0M6OkpTUHJveHkgQmFzZTsKK3B1YmxpYzoKKyAgICBzdGF0
aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCi0gICAgICAgIEpTRE9NV2luZG93KiB3aW5kb3co
KSBjb25zdCB7IHJldHVybiBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvdyo+KHRhcmdldCgpKTsgfQot
ICAgICAgICB2b2lkIHNldFdpbmRvdyhKU0M6OlZNJiwgSlNET01XaW5kb3cqKTsKLSAgICAgICAg
dm9pZCBzZXRXaW5kb3coUmVmUHRyPERPTVdpbmRvdz4mJik7CisgICAgSlNET01XaW5kb3cqIHdp
bmRvdygpIGNvbnN0IHsgcmV0dXJuIEpTQzo6anNDYXN0PEpTRE9NV2luZG93Kj4odGFyZ2V0KCkp
OyB9CisgICAgdm9pZCBzZXRXaW5kb3coSlNDOjpWTSYsIEpTRE9NV2luZG93Kik7CisgICAgdm9p
ZCBzZXRXaW5kb3coUmVmUHRyPERPTVdpbmRvdz4mJik7CiAKLSAgICAgICAgREVDTEFSRV9JTkZP
OworICAgIERFQ0xBUkVfSU5GTzsKIAotICAgICAgICBET01XaW5kb3cmIHdyYXBwZWQoKSBjb25z
dDsKLSAgICAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIERPTVdpbmRvdyogdG9XcmFwcGVkKEpT
Qzo6Vk0mLCBKU0M6OkpTT2JqZWN0Kik7CisgICAgRE9NV2luZG93JiB3cmFwcGVkKCkgY29uc3Q7
CisgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIERPTVdpbmRvdyogdG9XcmFwcGVkKEpTQzo6Vk0m
LCBKU0M6OkpTT2JqZWN0Kik7CiAKLSAgICAgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNy
ZWF0ZShKU0M6OlZNJiB2bSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3csIEpTQzo6U3RydWN0
dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCi0gICAgICAgIHsKLSAgICAg
ICAgICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9j
YXRlQ2VsbDxKU0RPTVdpbmRvd1NoZWxsPih2bS5oZWFwKSkgSlNET01XaW5kb3dTaGVsbCh2bSwg
c3RydWN0dXJlLCB3b3JsZCk7Ci0gICAgICAgICAgICBzaGVsbC0+ZmluaXNoQ3JlYXRpb24odm0s
IFdURk1vdmUod2luZG93KSk7Ci0gICAgICAgICAgICByZXR1cm4gc2hlbGw7IAotICAgICAgICB9
CisgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNyZWF0ZShKU0M6OlZNJiB2bSwgUmVmUHRy
PERPTVdpbmRvdz4mJiB3aW5kb3csIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBw
ZXJXb3JsZCYgd29ybGQpCisgICAgeworICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9
IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNET01XaW5kb3dTaGVsbD4odm0uaGVh
cCkpIEpTRE9NV2luZG93U2hlbGwodm0sIHN0cnVjdHVyZSwgd29ybGQpOworICAgICAgICBzaGVs
bC0+ZmluaXNoQ3JlYXRpb24odm0sIFdURk1vdmUod2luZG93KSk7CisgICAgICAgIHJldHVybiBz
aGVsbDsKKyAgICB9CiAKLSAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1
Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAotICAgICAgICB7Ci0g
ICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgMCwgcHJvdG90eXBl
LCBKU0M6OlR5cGVJbmZvKEpTQzo6UHVyZUZvcndhcmRpbmdQcm94eVR5cGUsIFN0cnVjdHVyZUZs
YWdzKSwgaW5mbygpKTsKLSAgICAgICAgfQorICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3Jl
YXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKQorICAgIHsK
KyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIDAsIHByb3RvdHlwZSwg
SlNDOjpUeXBlSW5mbyhKU0M6OlB1cmVGb3J3YXJkaW5nUHJveHlUeXBlLCBTdHJ1Y3R1cmVGbGFn
cyksIGluZm8oKSk7CisgICAgfQogCi0gICAgICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7
IHJldHVybiBtX3dvcmxkOyB9CisgICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJu
IG1fd29ybGQ7IH0KIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgSlNET01XaW5kb3dTaGVsbChK
U0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQmKTsKLSAgICAgICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgUmVmUHRyPERPTVdpbmRvdz4mJik7Citwcm90ZWN0
ZWQ6CisgICAgSlNET01XaW5kb3dTaGVsbChKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBET01X
cmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBSZWZQdHI8
RE9NV2luZG93PiYmKTsKIAotICAgICAgICBSZWY8RE9NV3JhcHBlcldvcmxkPiBtX3dvcmxkOwot
ICAgIH07CisgICAgUmVmPERPTVdyYXBwZXJXb3JsZD4gbV93b3JsZDsKK307CiAKLSAgICBKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEZyYW1lKik7Ci0gICAgSlNET01XaW5kb3dT
aGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lKiwgRE9NV3JhcHBlcldvcmxkJik7CitKU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEZyYW1lJik7CitpbmxpbmUgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGZy
YW1lID8gdG9KUyhzdGF0ZSwgKmZyYW1lKSA6IEpTQzo6anNOdWxsKCk7IH0KKworSlNET01XaW5k
b3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lJiwgRE9NV3JhcHBlcldvcmxkJik7Citp
bmxpbmUgSlNET01XaW5kb3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lKiBmcmFtZSwg
RE9NV3JhcHBlcldvcmxkJiB3b3JsZCkgeyByZXR1cm4gZnJhbWUgPyB0b0pTRE9NV2luZG93U2hl
bGwoKmZyYW1lLCB3b3JsZCkgOiBudWxscHRyOyB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVu
dEN1c3RvbS5jcHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTMsNTQgKzUz
LDYgQEAgSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYgogICAgIHJldHVy
biB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBnbG9iYWxPYmplY3QsIFJlZjxIVE1MRG9jdW1lbnQ+
KGRvY3VtZW50KSk7CiB9CiAKLWJvb2wgSlNIVE1MRG9jdW1lbnQ6OmdldE93blByb3BlcnR5U2xv
dChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgYXV0byYgdGhpc09iamVjdCA9ICpq
c0Nhc3Q8SlNIVE1MRG9jdW1lbnQqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMob2JqZWN0LCBpbmZvKCkpOwotCi0gICAgaWYgKHByb3BlcnR5TmFtZSA9PSAib3BlbiIp
IHsKLSAgICAgICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCgmdGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgc2xvdC5zZXRDdXN0b20oJnRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERv
bnRFbnVtLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNIVE1MRG9jdW1lbnRQcm90
b3R5cGVGdW5jdGlvbk9wZW4sIDI+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0g
ICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICBpZiAodGhpc09iamVjdC5uYW1lR2V0dGVyKHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKCZ0aGlzT2JqZWN0
LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgdmFsdWUpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KCZ0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotYm9vbCBKU0hUTUxE
b2N1bWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlJiB2YWx1ZSkKLXsKLSAgICBhdXRvJiBkb2N1bWVudCA9IHdyYXBwZWQo
KTsKLQotICAgIGF1dG8qIGF0b21pY1Byb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZS5wdWJsaWNO
YW1lKCk7Ci0gICAgaWYgKCFhdG9taWNQcm9wZXJ0eU5hbWUgfHwgIWRvY3VtZW50Lmhhc0RvY3Vt
ZW50TmFtZWRJdGVtKCphdG9taWNQcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQuZG9jdW1lbnROYW1lZEl0ZW1Db250YWluc011
bHRpcGxlRWxlbWVudHMoKmF0b21pY1Byb3BlcnR5TmFtZSkpKSB7Ci0gICAgICAgIGF1dG8gY29s
bGVjdGlvbiA9IGRvY3VtZW50LmRvY3VtZW50TmFtZWRJdGVtcyhhdG9taWNQcm9wZXJ0eU5hbWUp
OwotICAgICAgICBBU1NFUlQoY29sbGVjdGlvbi0+bGVuZ3RoKCkgPiAxKTsKLSAgICAgICAgdmFs
dWUgPSB0b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QoKSwgY29sbGVjdGlvbik7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLQotICAgIGF1dG8mIGVsZW1lbnQgPSAqZG9jdW1lbnQuZG9jdW1l
bnROYW1lZEl0ZW0oKmF0b21pY1Byb3BlcnR5TmFtZSk7Ci0gICAgaWYgKFVOTElLRUxZKGlzPEhU
TUxJRnJhbWVFbGVtZW50PihlbGVtZW50KSkpIHsKLSAgICAgICAgaWYgKGF1dG8qIGZyYW1lID0g
ZG93bmNhc3Q8SFRNTElGcmFtZUVsZW1lbnQ+KGVsZW1lbnQpLmNvbnRlbnRGcmFtZSgpKSB7Ci0g
ICAgICAgICAgICB2YWx1ZSA9IHRvSlMoc3RhdGUsIGZyYW1lKTsKLSAgICAgICAgICAgIHJldHVy
biB0cnVlOwotICAgICAgICB9Ci0gICAgfQotCi0gICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBnbG9i
YWxPYmplY3QoKSwgZWxlbWVudCk7Ci0gICAgcmV0dXJuIHRydWU7Ci19Ci0KIC8vIEN1c3RvbSBh
dHRyaWJ1dGVzCiAKIEpTVmFsdWUgSlNIVE1MRG9jdW1lbnQ6OmFsbChFeGVjU3RhdGUmIHN0YXRl
KSBjb25zdApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVTZXRF
bGVtZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyMTc5NDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3Bw
CShub25leGlzdGVudCkKQEAgLTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAw
NywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291
cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRo
ZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICog
VEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFRIRQotICogSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBB
TkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAg
SU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlU
RUQgVE8sCi0gKiBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBM
T1NTIE9GIFVTRSwgREFUQSwgT1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFCi0gKiBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVk
ZSAiSlNIVE1MRnJhbWVTZXRFbGVtZW50LmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2lu
Y2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCi0jaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgot
I2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvdy5o
IgotI2luY2x1ZGUgIkpTRE9NV2luZG93U2hlbGwuaCIKLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcu
aCIKLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1ib29s
IEpTSFRNTEZyYW1lU2V0RWxlbWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUmIHZhbHVlKQotewotICAgIGF1dG8qIGZyYW1l
RWxlbWVudCA9IHdyYXBwZWQoKS5jaGlsZHJlbigpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9B
dG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgaWYgKCFpczxIVE1MRnJhbWVFbGVtZW50
PihmcmFtZUVsZW1lbnQpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYXV0byog
ZG9jdW1lbnQgPSBkb3duY2FzdDxIVE1MRnJhbWVFbGVtZW50PigqZnJhbWVFbGVtZW50KS5jb250
ZW50RG9jdW1lbnQoKSkgewotICAgICAgICBpZiAoSlNET01XaW5kb3dTaGVsbCogd2luZG93ID0g
dG9KU0RPTVdpbmRvd1NoZWxsKGRvY3VtZW50LT5mcmFtZSgpLCBjdXJyZW50V29ybGQoZXhlYykp
KSB7Ci0gICAgICAgICAgICB2YWx1ZSA9IHdpbmRvdzsKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3Bh
Y2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2
bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2Yg
cHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVy
YXRvci5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0Nv
ZGVHZW5lcmF0b3IucG0JKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQkod29ya2luZyBjb3B5KQpAQCAtOTAyLDYgKzkw
Miw3IEBAIHN1YiBJc0J1aWx0aW5UeXBlCiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEg
IlByb21pc2UiOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2Ny
aXB0VmFsdWUiOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2
ZXIiOworICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJET01XaW5kb3dTaGVsbCI7CiAg
ICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgImFueSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5
cGUtPm5hbWUgZXEgIm9iamVjdCI7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMTc5NDYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2lu
ZyBjb3B5KQpAQCAtMjk2LDcgKzI5Niw3IEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZQog
ICAgIHJldHVybiBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7CiAg
ICAgcmV0dXJuIGlmICR0eXBlLT5uYW1lIGVxICJhbnkiOwogICAgIHJldHVybiBpZiAkdHlwZS0+
bmFtZSBlcSAib2JqZWN0IjsKLQorICAgIAogICAgIGlmICgkdHlwZS0+aXNVbmlvbikgewogICAg
ICAgICBBZGRUb0luY2x1ZGVzKCI8d3RmL1ZhcmlhbnQuaD4iLCAkaW5jbHVkZXNSZWYsICRjb25k
aXRpb25hbCk7CiAKQEAgLTMzNSw2ICszMzUsMTIgQEAgc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExU
eXBlCiAgICAgICAgIEFkZFRvSW5jbHVkZXMoJHR5cGUtPm5hbWUgLiAiLmgiLCAkaW5jbHVkZXNS
ZWYsICRjb25kaXRpb25hbCk7CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgCisgICAgaWYg
KCR0eXBlLT5uYW1lIGVxICJET01XaW5kb3dTaGVsbCIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRl
cygiSlMiIC4gJHR5cGUtPm5hbWUgLiAiLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7
CisgICAgICAgIEFkZFRvSW5jbHVkZXMoIkZyYW1lLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRp
b25hbCk7CisgICAgICAgIHJldHVybjsKKyAgICB9CiB9CiAKIHN1YiBBZGRUb0ltcGxJbmNsdWRl
cwpAQCAtNDA2LDE3MiArNDEyLDMwNyBAQCBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90
eXBlCiAKIHN1YiBHZW5lcmF0ZUluZGV4ZWRHZXR0ZXIKIHsKLSAgICBteSAoJG91dHB1dEFycmF5
LCAkaW5kZW50LCAkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbikgPSBAXzsKKyAg
ICBteSAoJGludGVyZmFjZSwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICRpbmRleEV4cHJlc3Np
b24pID0gQF87CisgICAgCisgICAgIyBOT1RFOiBUaGlzIGFic3RyYWN0bHkgaW1wbGVtZW50cyBz
dGVwcyAxLjIuMSAtIDEuMi44IG9mIHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3Bl
cnR5CisgICAgIyAgICAgICBhbGdvcml0aG0uIFJldHVyaW5nIHRoZSBjb252ZXJzaW9uIGV4cHJl
c3Npb24gYW5kIGF0dHJpYnV0ZXMgZXhwcmVzc2lvbiBmb3IgdXNlCisgICAgIyAgICAgICBieSB0
aGUgY2FsbGVyLgorICAgIAorICAgICMgMS4yLjEgTGV0IG9wZXJhdGlvbiBiZSB0aGUgb3BlcmF0
aW9uIHVzZWQgdG8gZGVjbGFyZSB0aGUgaW5kZXhlZCBwcm9wZXJ0eSBnZXR0ZXIuCisgICAgIyAx
LjIuMiBMZXQgdmFsdWUgYmUgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KKyAgICAjIDEuMi4z
IElmIG9wZXJhdGlvbiB3YXMgZGVmaW5lZCB3aXRob3V0IGFuIGlkZW50aWZpZXIsIHRoZW4gc2V0
IHZhbHVlIHRvIHRoZSByZXN1bHQKKyAgICAjICAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIHN0ZXBz
IGxpc3RlZCBpbiB0aGUgaW50ZXJmYWNlIGRlc2NyaXB0aW9uIHRvIGRldGVybWluZSB0aGUKKyAg
ICAjICAgICAgIHZhbHVlIG9mIGFuIGluZGV4ZWQgcHJvcGVydHkgd2l0aCBpbmRleCBhcyB0aGUg
aW5kZXguCisgICAgIyAxLjIuNCBPdGhlcndpc2UsIG9wZXJhdGlvbiB3YXMgZGVmaW5lZCB3aXRo
IGFuIGlkZW50aWZpZXIuIFNldCB2YWx1ZSB0byB0aGUgcmVzdWx0CisgICAgIyAgICAgICBvZiBw
ZXJmb3JtaW5nIHRoZSBzdGVwcyBsaXN0ZWQgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIG9wZXJhdGlv
biB3aXRoIGluZGV4IGFzCisgICAgIyAgICAgICB0aGUgb25seSBhcmd1bWVudCB2YWx1ZS4KKyAg
ICAjIDEuMi41IExldCBkZXNjIGJlIGEgbmV3bHkgY3JlYXRlZCBQcm9wZXJ0eSBEZXNjcmlwdG9y
IHdpdGggbm8gZmllbGRzLgorICAgICMgMS4yLjYgU2V0IGRlc2MuW1tWYWx1ZV1dIHRvIHRoZSBy
ZXN1bHQgb2YgY29udmVydGluZyB2YWx1ZSB0byBhbiBFQ01BU2NyaXB0IHZhbHVlLgorICAgICMg
MS4yLjcgSWYgTyBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB3aXRoIGFuIGluZGV4ZWQgcHJvcGVy
dHkgc2V0dGVyLCB0aGVuIHNldAorICAgICMgICAgICAgZGVzYy5bW1dyaXRhYmxlXV0gdG8gdHJ1
ZSwgb3RoZXJ3aXNlIHNldCBpdCB0byBmYWxzZS4KKyAgICAjIDEuMi44IFJldHVybiBkZXNjLgog
ICAgIAogICAgIG15IEBhdHRyaWJ1dGVzID0gKCk7CiAgICAgcHVzaChAYXR0cmlidXRlcywgIlJl
YWRPbmx5IikgaWYgIUdldEluZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkgJiYgISRp
bnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfTsKLQorICAg
IAogICAgIG15ICRhdHRyaWJ1dGVTdHJpbmcgPSAoKEBhdHRyaWJ1dGVzID4gMCkgPyBqb2luKCIg
fCAiLCBAYXR0cmlidXRlcykgOiAiMCIpOwogCiAgICAgbXkgJGluZGV4ZWRHZXR0ZXJGdW5jdGlv
bk5hbWUgPSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1w
bGVtZW50ZWRBc30gfHwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24tPm5hbWUgfHwgIml0ZW0iOwot
ICAgIG15ICRuYXRpdmVUb0pTQ29udmVyc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRl
cnMoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICRpbnRlcmZhY2UsICJ0aGlzT2JqZWN0LT53cmFw
cGVkKCkuJHtpbmRleGVkR2V0dGVyRnVuY3Rpb25OYW1lfShpbmRleCkiLCAiKnRoaXNPYmplY3Qt
Pmdsb2JhbE9iamVjdCgpIik7Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAi
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAke2F0dHJpYnV0ZVN0cmluZ30sICR7bmF0aXZlVG9K
U0NvbnZlcnNpb259KTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJy
ZXR1cm4gdHJ1ZTtcbiIpOworICAgIG15ICRuYXRpdmVUb0pTQ29udmVyc2lvbiA9IE5hdGl2ZVRv
SlNWYWx1ZVVzaW5nUG9pbnRlcnMoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICRpbnRlcmZhY2Us
ICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtpbmRleGVkR2V0dGVyRnVuY3Rpb25OYW1lfSgke2lu
ZGV4RXhwcmVzc2lvbn0pIiwgIip0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSIpOworICAgIAor
ICAgIHJldHVybiAoJG5hdGl2ZVRvSlNDb252ZXJzaW9uLCAkYXR0cmlidXRlU3RyaW5nKTsKIH0K
IAogc3ViIEdlbmVyYXRlTmFtZWRHZXR0ZXIKIHsKLSAgICBteSAoJG91dHB1dEFycmF5LCAkaW5k
ZW50LCAkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24pID0gQF87Ci0KKyAgICBteSAo
JGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRQcm9wZXJ0eUV4cHJlc3Np
b24pID0gQF87CisgICAgCisgICAgIyBOT1RFOiBUaGlzIGFic3RyYWN0bHkgaW1wbGVtZW50cyBz
dGVwcyAyLjEgLSAyLjEwIG9mIHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5
CisgICAgIyAgICAgICBhbGdvcml0aG0uIFJldHVyaW5nIHRoZSBjb252ZXJzaW9uIGV4cHJlc3Np
b24gYW5kIGF0dHJpYnV0ZXMgZXhwcmVzc2lvbiBmb3IgdXNlCisgICAgIyAgICAgICBieSB0aGUg
Y2FsbGVyLgorICAgIAorICAgICMgMi4xICBMZXQgb3BlcmF0aW9uIGJlIHRoZSBvcGVyYXRpb24g
dXNlZCB0byBkZWNsYXJlIHRoZSBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXIuCisgICAgIyAyLjIgIExl
dCB2YWx1ZSBiZSBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgorICAgICMgMi4zICBJZiBvcGVy
YXRpb24gd2FzIGRlZmluZWQgd2l0aG91dCBhbiBpZGVudGlmaWVyLCB0aGVuIHNldCB2YWx1ZSB0
byB0aGUgcmVzdWx0CisgICAgIyAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIHN0ZXBzIGxpc3RlZCBp
biB0aGUgaW50ZXJmYWNlIGRlc2NyaXB0aW9uIHRvIGRldGVybWluZSB0aGUKKyAgICAjICAgICAg
dmFsdWUgb2YgYSBuYW1lZCBwcm9wZXJ0eSB3aXRoIFAgYXMgdGhlIG5hbWUuCisgICAgIyAyLjQg
IE90aGVyd2lzZSwgb3BlcmF0aW9uIHdhcyBkZWZpbmVkIHdpdGggYW4gaWRlbnRpZmllci4gU2V0
IHZhbHVlIHRvIHRoZSByZXN1bHQKKyAgICAjICAgICAgb2YgcGVyZm9ybWluZyB0aGUgc3RlcHMg
bGlzdGVkIGluIHRoZSBkZXNjcmlwdGlvbiBvZiBvcGVyYXRpb24gd2l0aCBQIGFzIHRoZQorICAg
ICMgICAgICBvbmx5IGFyZ3VtZW50IHZhbHVlLi4KKyAgICAjIDIuNSAgTGV0IGRlc2MgYmUgYSBu
ZXdseSBjcmVhdGVkIFByb3BlcnR5IERlc2NyaXB0b3Igd2l0aCBubyBmaWVsZHMuCisgICAgIyAy
LjYgIFNldCBkZXNjLltbVmFsdWVdXSB0byB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdmFsdWUg
dG8gYW4gRUNNQVNjcmlwdCB2YWx1ZS4KKyAgICAjIDIuNyAgSWYgTyBpbXBsZW1lbnRzIGFuIGlu
dGVyZmFjZSB3aXRoIGEgbmFtZWQgcHJvcGVydHkgc2V0dGVyLCB0aGVuIHNldCBkZXNjLltbV3Jp
dGFibGVdXQorICAgICMgICAgICB0byB0cnVlLCBvdGhlcndpc2Ugc2V0IGl0IHRvIGZhbHNlLgor
ICAgICMgMi44ICBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHdpdGggdGhlIFtMZWdhY3lV
bmVudW1lcmFibGVOYW1lZFByb3BlcnRpZXNdCisgICAgIyAgICAgIGV4dGVuZGVkIGF0dHJpYnV0
ZSwgdGhlbiBzZXQgZGVzYy5bW0VudW1lcmFibGVdXSB0byBmYWxzZSwgb3RoZXJ3aXNlIHNldCBp
dAorICAgICMgICAgICB0byB0cnVlLgorICAgICMgMi45ICBTZXQgZGVzYy5bW0NvbmZpZ3VyYWJs
ZV1dIHRvIHRydWUuCisgICAgIyAyLjEwIFJldHVybiBkZXNjLgorICAgIAogICAgIG15IEBhdHRy
aWJ1dGVzID0gKCk7CiAgICAgcHVzaChAYXR0cmlidXRlcywgIlJlYWRPbmx5IikgaWYgIUdldE5h
bWVkU2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0
dHJpYnV0ZXMtPntDdXN0b21OYW1lZFNldHRlcn07CiAgICAgcHVzaChAYXR0cmlidXRlcywgIkRv
bnRFbnVtIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TGVnYWN5VW5lbnVt
ZXJhYmxlTmFtZWRQcm9wZXJ0aWVzfTsKLQorICAgIAogICAgIG15ICRhdHRyaWJ1dGVTdHJpbmcg
PSAoKEBhdHRyaWJ1dGVzID4gMCkgPyBqb2luKCIgfCAiLCBAYXR0cmlidXRlcykgOiAiMCIpOwor
ICAgIG15ICRuYXRpdmVUb0pTQ29udmVyc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRl
cnMoJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkaW50ZXJmYWNlLCAkbmFtZWRQcm9wZXJ0eUV4cHJl
c3Npb24sICIqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCkiKTsKKyAgICAKKyAgICByZXR1cm4g
KCRuYXRpdmVUb0pTQ29udmVyc2lvbiwgJGF0dHJpYnV0ZVN0cmluZyk7Cit9CiAKLSAgICBpZiAo
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9KSB7Ci0g
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJKU1ZhbHVlIHZhbHVlO1xuIik7
Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAodGhpc09iamVjdC0+
bmFtZUdldHRlcihzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpIHtcbiIpOwotICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgJHthdHRyaWJ1dGVTdHJpbmd9LCB2YWx1ZSk7XG4iKTsKK3N1YiBHZW5lcmF0ZU5hbWVkR2V0
dGVyTGFtYmRhCit7CisgICAgbXkgKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJG5hbWVkR2V0
dGVyT3BlcmF0aW9uLCAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWUsICRJRExUeXBlKSA9IEBfOwor
ICAgIAorICAgICMgTk9URTogTmFtZWQgZ2V0dGVycyBhcmUgbGl0dGxlIG9kZC4gVG8gYXZvaWQg
ZG9pbmcgZHVwbGljYXRlIGxvb2t1cHMgKG9uY2Ugd2hlbiBjaGVja2luZyBpZgorICAgICMgICAg
ICAgdGhlIHByb3BlcnR5IG5hbWUgaXMgYSAnc3VwcG9ydGVkIHByb3BlcnR5IG5hbWUnIGFuZCBv
bmNlIHRvIGdldCB0aGUgdmFsdWUpIHdlIHNpZ25hbAorICAgICMgICAgICAgdGhhdCBhIHByb3Bl
cnR5IGlzIHN1cHBvcnRlZCBieSB3aGV0aGVyIG9yIG5vdCBpdCBpcyAnbnVsbCcgKHdoZXJlIHdo
YXQgbnVsbCBtZWFucyBpcworICAgICMgICAgICAgZGVwZW5kYW50IG9uIHRoZSBJREwgdHlwZSku
IFRoaXMgaXMgYmFzZWQgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBubyBuYW1lZCBnZXR0ZXIgd2ls
bAorICAgICMgICAgICAgZXZlciBhY3R1YWxseSB3YW50IHRvIHJldHVybiBudWxsIGFzIGFuIGFj
dHVhbCByZXR1cm4gdmFsdWUsIHdoaWNoIHNlZW1zIGxpa2UgYW4gb2sKKyAgICAjICAgICAgIGFz
c3VtcHRpb24gdG8gbWFrZSAoc2hvdWxkIGl0IHR1cm4gb3V0IHRoaXMgZG9lc24ndCBob2xkIGlu
IHRoZSBmdXR1cmUsIHdlIGhhdmUgbG90cworICAgICMgICAgICAgb2Ygb3B0aW9uczsgZG8gdHdv
IGxvb2t1cHMsIGFkZCBhbiBleHRyYSBsYXllciBvZiBzdGQ6Om9wdGlvbmFsLCBldGMuKS4KKyAg
ICAKKyAgICBteSAkcmVzdWx0VHlwZSA9ICJ0eXBlbmFtZSAke0lETFR5cGV9OjpJbXBsZW1lbnRh
dGlvblR5cGUiOworICAgICRyZXN1bHRUeXBlID0gIkV4Y2VwdGlvbk9yPCIgLiAkcmVzdWx0VHlw
ZSAuICI+IiBpZiAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01h
eVRocm93RXhjZXB0aW9ufTsKKyAgICBteSAkcmV0dXJuVHlwZSA9ICJzdGQ6Om9wdGlvbmFsPCIg
LiAkcmVzdWx0VHlwZSAuICI+IjsKKyAgICAKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
YXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlO
YW1lKSAtPiAke3JldHVyblR5cGV9IHtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS4ke25hbWVkR2V0dGVyRnVu
Y3Rpb25OYW1lfShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTtcbiIp
OworICAgIAorICAgIGlmICgkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRl
cy0+e01heVRocm93RXhjZXB0aW9ufSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpXG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0dXJuICR7cmVzdWx0VHlwZX0geyByZXN1bHQucmVs
ZWFzZUV4Y2VwdGlvbigpIH07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICBpZiAoISR7SURMVHlwZX06OmlzTnVsbFZhbHVlKHJlc3VsdC5yZXR1cm5WYWx1ZSgpKSlc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICByZXR1cm4gJHty
ZXN1bHRUeXBlfSB7ICR7SURMVHlwZX06OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQu
cmVsZWFzZVJldHVyblZhbHVlKCkpIH07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0O1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAg
ICAgbXkgJG5hbWVkR2V0dGVyRnVuY3Rpb25OYW1lID0gJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8fCAkbmFtZWRHZXR0ZXJPcGVyYXRp
b24tPm5hbWUgfHwgIm5hbWVkSXRlbSI7Ci0gICAgICAgIG15ICRpdGVtVmFyaWFibGUgPSAiaXRl
bSI7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJhdXRvIGl0ZW0gPSB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1lZEdldHRlckZ1bmN0aW9uTmFtZX0ocHJvcGVydHlO
YW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7XG4iKTsKLQotICAgICAgICBpZiAoJG5h
bWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlv
bn0pIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAoaXRl
bS5oYXNFeGNlcHRpb24oKSkge1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICRpbmRlbnQgLiAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3Rh
dGUtPnZtKCkpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQg
LiAiICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqc3RhdGUsIHRocm93U2NvcGUsIGl0ZW0ucmVsZWFz
ZUV4Y2VwdGlvbigpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5k
ZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAkaW5kZW50IC4gIn1cblxuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICRpbmRlbnQgLiAiYXV0byBpdGVtVmFsdWUgPSBpdGVtLnJlbGVhc2VSZXR1cm5WYWx1ZSgpO1xu
Iik7Ci0KLSAgICAgICAgICAgICRpdGVtVmFyaWFibGUgPSAiaXRlbVZhbHVlIjsKLSAgICAgICAg
fQotCi0gICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgkaW50ZXJmYWNlLCAkbmFtZWRH
ZXR0ZXJPcGVyYXRpb24tPnR5cGUpOwotICAgICAgICBteSAkbmF0aXZlVG9KU0NvbnZlcnNpb24g
PSBOYXRpdmVUb0pTVmFsdWVVc2luZ1BvaW50ZXJzKCRuYW1lZEdldHRlck9wZXJhdGlvbiwgJGlu
dGVyZmFjZSwgJGl0ZW1WYXJpYWJsZSwgIip0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSIsIDEp
OwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKCEke0lETFR5cGV9
Ojppc051bGxWYWx1ZSgke2l0ZW1WYXJpYWJsZX0pKSB7XG4iKTsKLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsICR7YXR0
cmlidXRlU3RyaW5nfSwgJHtuYXRpdmVUb0pTQ29udmVyc2lvbn0pO1xuIik7CisgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1ZShy
ZXN1bHQpKVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJl
dHVybiAke3Jlc3VsdFR5cGV9IHsgJHtJRExUeXBlfTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxl
KHJlc3VsdCkgfTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7XG4iKTsKICAgICB9Ci0gICAgCi0gICAgcHVzaChAJG91dHB1dEFy
cmF5LCAkaW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgJGluZGVudCAuICJ9XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfTtc
biIpOwogfQogCi1zdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CisjIGh0dHBzOi8v
aGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2xlZ2FjeS1wbGF0Zm9ybS1vYmplY3QtZ2V0b3ducHJv
cGVydHkKK3N1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdAogewogICAgIG15ICgkb3V0cHV0
QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05hbWUpID0gQF87CiAgICAgCiAgICAgcmV0dXJuIGlm
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xv
dH07CiAgICAgCi0gICAgbXkgJG5hbWVkR2V0dGVyT3BlcmF0aW9uID0gR2V0TmFtZWRHZXR0ZXJP
cGVyYXRpb24oJGludGVyZmFjZSk7Ci0gICAgbXkgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24gPSBH
ZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOwotICAgIAotICAgIG15ICRvd25Q
cm9wZXJ0eUNoZWNrID0gc3ViIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlm
IChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpXG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1
cm4gdHJ1ZTtcbiIpOwotICAgIH07Ci0KLSAgICAjIEZJWE1FOiBBcyBwZXIgdGhlIFdlYiBJREwg
c3BlY2lmaWNhdGlvbiwgdGhlIHByb3RvdHlwZSBjaGVjayBpcyBzdXBwb3NlZCB0byBza2lwICJu
YW1lZCBwcm9wZXJ0aWVzIG9iamVjdHMiOgotICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlv
L3dlYmlkbC8jZGZuLW5hbWVkLXByb3BlcnR5LXZpc2liaWxpdHkKLSAgICAjIGh0dHBzOi8vaGV5
Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Rmbi1uYW1lZC1wcm9wZXJ0aWVzLW9iamVjdAotICAgIG15
ICRwcm90b3R5cGVDaGVjayA9IHN1YiB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7XG4iKTsK
LSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChwcm90by5pc09iamVjdCgpICYm
IGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFt
ZSkpXG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gZmFs
c2U7XG5cbiIpOwotICAgIH07Ci0KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y2xh
c3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
c3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIp
OwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KG9iamVjdCk7
XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpO1xuIik7Ci0KLQorICAgIAorICAgIG15ICRuYW1lZEdl
dHRlck9wZXJhdGlvbiA9IEdldE5hbWVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOworICAg
IG15ICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uID0gR2V0SW5kZXhlZEdldHRlck9wZXJhdGlvbigk
aW50ZXJmYWNlKTsKKyAgICAKKyAgICBpZiAoKCRuYW1lZEdldHRlck9wZXJhdGlvbiAmJiAkbmFt
ZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9u
fSkgfHwgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uICYmICRpbmRleGVkR2V0dGVyT3BlcmF0aW9u
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pKSB7CisgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHN0YXRlLT52bSgpKTtcbiIpOworICAgIH0KKyAgICAKKyAgICAjIE5PVEU6IFRoZSBhbG9n
aXRobSBmb3IgW1tHZXRPd25Qcm9wZXJ0eV1dIGNvbnRhaW5zIG9ubHkgdGhlIGZvbGxvd2luZyBz
dGVwOgorICAgICMgMS4gUmV0dXJuIExlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJvcGVydHko
TywgUCwgZmFsc2UpLgorICAgIAorICAgICMgVGhlcmVmb3JlLCB0aGUgZm9sbG93aW5nIHN0ZXBz
IGFyZSBmcm9tIHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5IGFsZ29yaXRo
bQorICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jTGVnYWN5UGxhdGZvcm1P
YmplY3RHZXRPd25Qcm9wZXJ0eQorICAgIAorICAgICMgMS4gSWYgTyBzdXBwb3J0cyBpbmRleGVk
IHByb3BlcnRpZXMgYW5kIFAgaXMgYW4gYXJyYXkgaW5kZXggcHJvcGVydHkgbmFtZSwgdGhlbjoK
ICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24pIHsKLSAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1l
KTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKG9wdGlvbmFsSW5k
ZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0
aCgpKSB7XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBhdXRvIGlu
ZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpO1xuIik7Ci0gICAgICAgIEdlbmVyYXRlSW5kZXhl
ZEdldHRlcigkb3V0cHV0QXJyYXksICIgICAgICAgICIsICRpbnRlcmZhY2UsICRpbmRleGVkR2V0
dGVyT3BlcmF0aW9uKTsKKyAgICAgICAgIyAxLjEuIExldCBpbmRleCBiZSB0aGUgcmVzdWx0IG9m
IGNhbGxpbmcgVG9VaW50MzIoUCkuCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBp
ZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkge1xuIik7CisgICAgICAg
IAorICAgICAgICAjIDEuMi4gSWYgaW5kZXggaXMgYSBzdXBwb3J0ZWQgcHJvcGVydHkgaW5kZXgs
IHRoZW46CisgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHN1cHBvcnQgbm9uLWNvbnRpZ3Vv
dXMgaW5kaWNlcy4KKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoaW5k
ZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkge1xuIik7CisgICAg
ICAgIAorICAgICAgICAjIE5PVEU6IEdlbmVyYXRlSW5kZXhlZEdldHRlciBpbXBsZW1lbnRzIHN0
ZXBzIDEuMi4xIC0gMS4yLjguCisgICAgICAgIAorICAgICAgICBteSAoJG5hdGl2ZVRvSlNDb252
ZXJzaW9uLCAkYXR0cmlidXRlU3RyaW5nKSA9IEdlbmVyYXRlSW5kZXhlZEdldHRlcigkaW50ZXJm
YWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgImluZGV4LnZhbHVlKCkiKTsKKyAgICAgICAg
CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIGF1dG8gdmFsdWUgPSAk
e25hdGl2ZVRvSlNDb252ZXJzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtcbiIp
IGlmICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJv
d0V4Y2VwdGlvbn07CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgdmFs
dWUpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVy
biB0cnVlO1xuIik7CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIH1cbiIpOworICAgICAgICAKKyAgICAgICAgIyAxLjMuIFNldCBpZ25vcmVOYW1lZFByb3Bz
IHRvIHRydWUuCisgICAgICAgICMgTk9URTogU2V0dGluZyBpZ25vcmVOYW1lZFByb3BzIGhhcyB0
aGUgZWZmZWN0IG9mIHNraXBwaW5nIHN0ZXAgMiwgc28gd2UgY2FuIGVhcmx5IHJldHVybiBoZXJl
CisgICAgICAgICMgICAgICAgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgcGFjZXMgb2Yg
aGF2aW5nIGFuIGFjdHVhbCBpZ25vcmVOYW1lZFByb3BzIHVwZGF0ZS4KKyAgICAgICAgaWYgKCRu
YW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntD
dXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfSkgeworICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgIH0K
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgIH0KLQotICAgIG15
ICRoYXNOYW1lZEdldHRlciA9ICRuYW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn07Ci0gICAgaWYgKCRoYXNOYW1l
ZEdldHRlcikgewotICAgICAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVk
QXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVycmlkZUJ1aWx0aW5zIikpIHsKLSAgICAgICAgICAg
ICYkb3duUHJvcGVydHlDaGVjaygpOwotICAgICAgICAgICAgJiRwcm90b3R5cGVDaGVjaygpOwot
ICAgICAgICB9Ci0gICAgICAgIGlmICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbikgewotICAgICAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghb3B0aW9uYWxJbmRleCAmJiB0aGlz
T2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgp
KSB7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0
eU5hbWUuaXNTeW1ib2woKSkge1xuIik7Ci0gICAgICAgIH0KLSAgICAgICAgR2VuZXJhdGVOYW1l
ZEdldHRlcigkb3V0cHV0QXJyYXksICIgICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZEdldHRl
ck9wZXJhdGlvbik7CisgICAgCisgICAgIyAyLiBJZiBPIHN1cHBvcnRzIG5hbWVkIHByb3BlcnRp
ZXMsIHRoZSByZXN1bHQgb2YgcnVubmluZyB0aGUgbmFtZWQgcHJvcGVydHkgdmlzaWJpbGl0eQor
ICAgICMgICAgYWxnb3JpdGhtIHdpdGggcHJvcGVydHkgbmFtZSBQIGFuZCBvYmplY3QgTyBpcyB0
cnVlLCBhbmQgaWdub3JlTmFtZWRQcm9wcyBpcyBmYWxzZSwgdGhlbjoKKyAgICBpZiAoJG5hbWVk
R2V0dGVyT3BlcmF0aW9uKSB7CisgICAgICAgICMgTk9URTogaWdub3JlTmFtZWRQcm9wcyBpcyBn
dWFyZW50ZWVkIHRvIGJlIGZhbHNlIGhlcmUsIGFzIGl0IGlzIGluaXRpYWxseSBmYWxzZSwgYW5k
IG5ldmVyIHNldAorICAgICAgICAjICAgICAgIHRvIHRydWUsIGR1ZSB0byB0aGUgZWFybHkgcmV0
dXJuIGluIHN0ZXAgMS4zCisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUFic3RyYWN0
T3BlcmF0aW9ucy5oIik7CisgICAgICAgICAgICAgICAgCisgICAgICAgIG15ICRuYW1lZEdldHRl
ckZ1bmN0aW9uTmFtZSA9ICRuYW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57SW1wbGVtZW50ZWRBc30gfHwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5uYW1lIHx8ICJuYW1l
ZEl0ZW0iOworICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5cGVFeGNsdWRpbmdOdWxsYWJp
bGl0eSgkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPnR5cGUpOworICAgICAgICAK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSAk
e0lETFR5cGV9O1xuIik7CisgICAgICAgIAorICAgICAgICBHZW5lcmF0ZU5hbWVkR2V0dGVyTGFt
YmRhKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFt
ZWRHZXR0ZXJGdW5jdGlvbk5hbWUsICJHZXR0ZXJJRExUeXBlIik7CisgICAgICAgIAorICAgICAg
ICBteSAkb3ZlcnJpZGVCdWlsdGluID0gJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRB
dHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSA/ICJPdmVycmlkZUJ1aWx0
aW5zOjpZZXMiIDogIk92ZXJyaWRlQnVpbHRpbnM6Ok5vIjsKKyAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQ
cm9wZXJ0eTwke292ZXJyaWRlQnVpbHRpbn0+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHtcbiIpOworICAgICAgICAKKyAgICAgICAgIyBOT1RFOiBH
ZW5lcmF0ZU5hbWVkR2V0dGVyIGltcGxlbWVudHMgc3RlcHMgMi4xIC0gMi4xMC4KKyAgICAgICAg
CisgICAgICAgIG15ICgkbmF0aXZlVG9KU0NvbnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpID0g
R2VuZXJhdGVOYW1lZEdldHRlcigkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICJX
VEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICAgICAgYXV0byB2YWx1ZSA9ICR7bmF0aXZlVG9KU0NvbnZlcnNp
b259O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgUkVUVVJOX0lG
X0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKSBpZiAkbmFtZWRHZXR0ZXJPcGVyYXRp
b24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufTsKKyAgICAgICAgCisg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAke2F0dHJpYnV0ZVN0cmluZ30sIHZhbHVlKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICB9XG4iKTsKICAgICB9Ci0KKyAgICAKICAgICBpZiAoJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRv
cn0pIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICh0aGlzT2JqZWN0LT5n
ZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIp
OwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7
CiAgICAgfQotCi0gICAgaWYgKCEkaGFzTmFtZWRHZXR0ZXIgfHwgJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSkg
ewotICAgICAgICAmJG93blByb3BlcnR5Q2hlY2soKTsKLSAgICB9Ci0KLSAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgcmV0dXJuIGZhbHNlO1xuIik7CisgICAgCisgICAgIyAzLiBSZXR1cm4g
T3JkaW5hcnlHZXRPd25Qcm9wZXJ0eShPLCBQKS4KKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CiB9CiAKLXN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHlCeUluZGV4Cisj
IGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2xlZ2FjeS1wbGF0Zm9ybS1vYmplY3Qt
Z2V0b3ducHJvcGVydHkKK3N1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgKIHsK
ICAgICBteSAoJG91dHB1dEFycmF5LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKSA9IEBfOwogICAg
IAotICAgIHJldHVybiBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21H
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4fTsKLSAgICAKLSAgICBteSAkbmFtZWRHZXR0ZXJPcGVy
YXRpb24gPSBHZXROYW1lZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKLSAgICBteSAkaW5k
ZXhlZEdldHRlck9wZXJhdGlvbiA9IEdldEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFj
ZSk7CisgICAgcmV0dXJuIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3Rv
bUdldE93blByb3BlcnR5U2xvdH07CisKKyAgICAjIFNpbmsgdGhlIGludC10by1zdHJpbmcgY29u
dmVyc2lvbiB0aGF0IGhhcHBlbnMgd2hlbiB3ZSBjcmVhdGUgYSBQcm9wZXJ0eU5hbWUKKyAgICAj
IHRvIHRoZSBwb2ludCB3aGVyZSB3ZSBhY3R1YWxseSBuZWVkIGl0LgorICAgIG15ICRkaWRHZW5l
cmF0ZVByb3BlcnR5TmFtZSA9IDA7CisgICAgbXkgJHByb3BlcnR5TmFtZUdlbmVyYXRpb24gPSBz
dWIgeworICAgICAgICByZXR1cm4gaWYgJGRpZEdlbmVyYXRlUHJvcGVydHlOYW1lOworICAgICAg
ICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpO1xuIik7CisgICAgICAgICRkaWRHZW5lcmF0
ZVByb3BlcnR5TmFtZSA9IDE7CisgICAgfTsKICAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBz
bG90KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4o
b2JqZWN0KTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4iKTsKICAgICAKLSAgICAjIFNpbmsg
dGhlIGludC10by1zdHJpbmcgY29udmVyc2lvbiB0aGF0IGhhcHBlbnMgd2hlbiB3ZSBjcmVhdGUg
YSBQcm9wZXJ0eU5hbWUKLSAgICAjIHRvIHRoZSBwb2ludCB3aGVyZSB3ZSBhY3R1YWxseSBuZWVk
IGl0LgotICAgIG15ICRnZW5lcmF0ZWRQcm9wZXJ0eU5hbWUgPSAwOwotICAgIG15ICRwcm9wZXJ0
eU5hbWVHZW5lcmF0aW9uID0gc3ViIHsKLSAgICAgICAgaWYgKCRnZW5lcmF0ZWRQcm9wZXJ0eU5h
bWUpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
KHN0YXRlLCBpbmRleCk7XG4iKTsKLSAgICAgICAgJGdlbmVyYXRlZFByb3BlcnR5TmFtZSA9IDE7
Ci0gICAgfTsKKyAgICBteSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXROYW1lZEdldHRlck9w
ZXJhdGlvbigkaW50ZXJmYWNlKTsKKyAgICBteSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiA9IEdl
dEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CisgICAgCisgICAgaWYgKCgkbmFt
ZWRHZXR0ZXJPcGVyYXRpb24gJiYgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pIHx8ICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbiAm
JiAkaW5kZXhlZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dF
eGNlcHRpb259KSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7XG4iKTsKKyAgICB9Cisg
ICAgCisgICAgIyBOT1RFOiBUaGUgYWxvZ2l0aG0gZm9yIFtbR2V0T3duUHJvcGVydHldXSBjb250
YWlucyBvbmx5IHRoZSBmb2xsb3dpbmcgc3RlcDoKKyAgICAjIDEuIFJldHVybiBMZWdhY3lQbGF0
Zm9ybU9iamVjdEdldE93blByb3BlcnR5KE8sIFAsIGZhbHNlKS4KKyAgICAKKyAgICAjIFRoZXJl
Zm9yZSwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgZnJvbSB0aGUgTGVnYWN5UGxhdGZvcm1PYmpl
Y3RHZXRPd25Qcm9wZXJ0eSBhbGdvcml0aG0KKyAgICAjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5p
by93ZWJpZGwvI0xlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJvcGVydHkKICAgICAKKyAgICAj
IDEuIElmIE8gc3VwcG9ydHMgaW5kZXhlZCBwcm9wZXJ0aWVzIGFuZCBQIGlzIGFuIGFycmF5IGlu
ZGV4IHByb3BlcnR5IG5hbWUsIHRoZW46CiAgICAgaWYgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9u
KSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoTElLRUxZKGluZGV4IDwg
dGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkge1xuIik7Ci0gICAgICAgIEdlbmVyYXRl
SW5kZXhlZEdldHRlcigkb3V0cHV0QXJyYXksICIgICAgICAgICIsICRpbnRlcmZhY2UsICRpbmRl
eGVkR2V0dGVyT3BlcmF0aW9uKTsKKyAgICAgICAgIyAxLjEuIExldCBpbmRleCBiZSB0aGUgcmVz
dWx0IG9mIGNhbGxpbmcgVG9VaW50MzIoUCkuCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHtcbiIpOworICAgICAg
ICAKKyAgICAgICAgIyAxLjIuIElmIGluZGV4IGlzIGEgc3VwcG9ydGVkIHByb3BlcnR5IGluZGV4
LCB0aGVuOgorICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBzdXBwb3J0IG5vbi1jb250aWd1
b3VzIGluZGljZXMuCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKGlu
ZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7XG4iKTsKKyAgICAgICAgCisg
ICAgICAgICMgTk9URTogR2VuZXJhdGVJbmRleGVkR2V0dGVyIGltcGxlbWVudHMgc3RlcHMgMS4y
LjEgLSAxLjIuOC4KKyAgICAgICAgCisgICAgICAgIG15ICgkbmF0aXZlVG9KU0NvbnZlcnNpb24s
ICRhdHRyaWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVJbmRleGVkR2V0dGVyKCRpbnRlcmZhY2UsICRp
bmRleGVkR2V0dGVyT3BlcmF0aW9uLCAiaW5kZXgiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIGF1dG8gdmFsdWUgPSAke25hdGl2ZVRvSlNDb252
ZXJzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBS
RVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtcbiIpIGlmICRpbmRleGVkR2V0
dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07Cisg
ICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgdmFsdWUpO1xuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuIik7Cisg
ICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIH1cbiIpOworICAg
ICAgICAKKyAgICAgICAgIyAxLjMuIFNldCBpZ25vcmVOYW1lZFByb3BzIHRvIHRydWUuCisgICAg
ICAgICMgTk9URTogU2V0dGluZyBpZ25vcmVOYW1lZFByb3BzIGhhcyB0aGUgZWZmZWN0IG9mIHNr
aXBwaW5nIHN0ZXAgMiwgc28gd2UgY2FuIGVhcmx5IHJldHVybiBoZXJlCisgICAgICAgICMgICAg
ICAgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgcGFjZXMgb2YgaGF2aW5nIGFuIGFjdHVh
bCBpZ25vcmVOYW1lZFByb3BzIHVwZGF0ZS4KKyAgICAgICAgaWYgKCRuYW1lZEdldHRlck9wZXJh
dGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3RBbmREZXNjcmlwdG9yfSkgeworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2Jq
ZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpO1xuIik7CisgICAgICAgIH0KICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgIH0KLQotICAgICMgSW5kZXhpbmcgYW4gb2Jq
ZWN0IHdpdGggYW4gaW50ZWdlciB0aGF0IGlzIG5vdCBhIHN1cHBvcnRlZCBwcm9wZXJ0eSBpbmRl
eCBzaG91bGQgbm90IGNhbGwgdGhlIG5hbWVkIHByb3BlcnR5IGdldHRlci4KLSAgICAjIGh0dHBz
Oi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2lkbC1pbmRleGVkLXByb3BlcnRpZXMKLSAgICBp
ZiAoISRpbmRleGVkR2V0dGVyT3BlcmF0aW9uICYmICgkbmFtZWRHZXR0ZXJPcGVyYXRpb24gfHwg
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9KSkgewor
ICAgIAorICAgICMgMi4gSWYgTyBzdXBwb3J0cyBuYW1lZCBwcm9wZXJ0aWVzLCB0aGUgcmVzdWx0
IG9mIHJ1bm5pbmcgdGhlIG5hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkKKyAgICAjICAgIGFsZ29y
aXRobSB3aXRoIHByb3BlcnR5IG5hbWUgUCBhbmQgb2JqZWN0IE8gaXMgdHJ1ZSwgYW5kIGlnbm9y
ZU5hbWVkUHJvcHMgaXMgZmFsc2UsIHRoZW46CisgICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlv
bikgeworICAgICAgICAjIE5PVEU6IGlnbm9yZU5hbWVkUHJvcHMgaXMgZ3VhcmVudGVlZCB0byBi
ZSBmYWxzZSBoZXJlLCBhcyBpdCBpcyBpbml0aWFsbHkgZmFsc2UsIGFuZCBuZXZlciBzZXQKKyAg
ICAgICAgIyAgICAgICB0byB0cnVlLCBkdWUgdG8gdGhlIGVhcmx5IHJldHVybiBpbiBzdGVwIDEu
MworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIp
OworICAgICAgICAgICAgICAgIAogICAgICAgICAmJHByb3BlcnR5TmFtZUdlbmVyYXRpb24oKTsK
LSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0lu
Zm8oKSA9PSBpbmZvKCkpIHtcbiIpOwotICAgICAgICBHZW5lcmF0ZU5hbWVkR2V0dGVyKCRvdXRw
dXRBcnJheSwgIiAgICAgICAgIiwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uKTsK
KyAgICAgICAgCisgICAgICAgIG15ICRuYW1lZEdldHRlckZ1bmN0aW9uTmFtZSA9ICRuYW1lZEdl
dHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJG5h
bWVkR2V0dGVyT3BlcmF0aW9uLT5uYW1lIHx8ICJuYW1lZEl0ZW0iOworICAgICAgICBteSAkSURM
VHlwZSA9IEdldElETFR5cGVFeGNsdWRpbmdOdWxsYWJpbGl0eSgkaW50ZXJmYWNlLCAkbmFtZWRH
ZXR0ZXJPcGVyYXRpb24tPnR5cGUpOworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSAke0lETFR5cGV9O1xuIik7CisgICAgICAg
IAorICAgICAgICBHZW5lcmF0ZU5hbWVkR2V0dGVyTGFtYmRhKCRvdXRwdXRBcnJheSwgJGludGVy
ZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWUsICJH
ZXR0ZXJJRExUeXBlIik7CisgICAgICAgIAorICAgICAgICBteSAkb3ZlcnJpZGVCdWlsdGluID0g
JGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92
ZXJyaWRlQnVpbHRpbnMiKSA/ICJPdmVycmlkZUJ1aWx0aW5zOjpZZXMiIDogIk92ZXJyaWRlQnVp
bHRpbnM6Ok5vIjsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChhdXRvIG5h
bWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTwke292ZXJyaWRlQnVpbHRp
bn0+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHtc
biIpOworICAgICAgICAKKyAgICAgICAgIyBOT1RFOiBHZW5lcmF0ZU5hbWVkR2V0dGVyIGltcGxl
bWVudHMgc3RlcHMgMi4xIC0gMi4xMC4KKyAgICAgICAgCisgICAgICAgIG15ICgkbmF0aXZlVG9K
U0NvbnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVOYW1lZEdldHRlcigkaW50
ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICJXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFs
dWUoKSkiKTsKKworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGF1dG8gdmFs
dWUgPSAke25hdGl2ZVRvSlNDb252ZXJzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpO1xu
IikgaWYgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJv
d0V4Y2VwdGlvbn07CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgJHthdHRyaWJ1dGVTdHJpbmd9LCB2YWx1ZSk7
XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdHJ1ZTtc
biIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuIik7CiAgICAgfQotCisg
ICAgCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93
blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9KSB7CiAgICAgICAgICYkcHJvcGVydHlOYW1lR2Vu
ZXJhdGlvbigpOworICAgIAogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKHRo
aXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJu
IHRydWU7XG4iKTsKICAgICB9Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJu
IEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4
LCBzbG90KTtcbiIpOworICAgIAorICAgICMgMy4gUmV0dXJuIE9yZGluYXJ5R2V0T3duUHJvcGVy
dHkoTywgUCkuCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7XG4i
KTsKKyAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQogCkBAIC01ODgs
MTAgKzcyOSwxMSBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eU5hbWVzCiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAidm9pZCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5TmFtZXMoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3Bl
cnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtcbiIpOwotICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8o
KSk7XG4iKTsKLQorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTtcbiIpOworICAgIAogICAgICMgMS4gSWYgdGhlIG9i
amVjdCBzdXBwb3J0cyBpbmRleGVkIHByb3BlcnRpZXMsIHRoZW4gdGhlIG9iamVjdOKAmXMgc3Vw
cG9ydGVkCiAgICAgIyAgICBwcm9wZXJ0eSBpbmRpY2VzIGFyZSBlbnVtZXJhdGVkIGZpcnN0LCBp
biBudW1lcmljYWwgb3JkZXIuCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgc3VwcG9ydCBub24t
Y29udGlndW91cyBpbmRpY2VzLgogICAgIGlmICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbikgewog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291
bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKVxuIik7
CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQo
SWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpO1xuIik7CkBAIC02MTYsNyArNzU4LDcgQEAgc3Vi
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlOYW1lcwogICAgIAogICAgICMgMy4gRmluYWxseSwgYW55
IGVudW1lcmFibGUgb3duIHByb3BlcnRpZXMgb3IgcHJvcGVydGllcyBmcm9tIHRoZSBvYmplY3Ti
gJlzCiAgICAgIyAgICBwcm90b3R5cGUgY2hhaW4gYXJlIHRoZW4gZW51bWVyYXRlZCwgaW4gbm8g
ZGVmaW5lZCBvcmRlci4KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQmFzZTo6Z2V0T3du
UHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7XG4i
KTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5
TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7XG4iKTsKICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQogCkBAIC03MjAsNyArODYyLDcgQEAgc3ViIEdl
bmVyYXRlUHV0CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHB1
dFJlc3VsdDtcblxuIik7CiAgICAgfQogICAgIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBwdXRQcm9wZXJ0eVNsb3QpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJl
dHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBwdXRQcm9wZXJ0eVNsb3QpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4i
KTsKIH0KIApAQCAtNzU2LDcgKzg5OCw3IEBAIHN1YiBHZW5lcmF0ZVB1dEJ5SW5kZXgKICAgICB9
CiAgICAgCiAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJhdGlvbikgewotICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tKHN0YXRlLCBpbmRleCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpO1xuIik7
CiAgICAgICAgICAgICAgICAgCiAgICAgICAgIG15ICRhZGRpdGlvbmFsSW5kZW50ID0gIiI7CiAg
ICAgICAgIGlmICghJG92ZXJyaWRlQnVpbHRpbnMpIHsKQEAgLTc3Niw3ICs5MTgsNyBAQCBzdWIg
R2VuZXJhdGVQdXRCeUluZGV4CiAgICAgCiAgICAgYXNzZXJ0KCJVc2luZyBib3RoIGEgbmFtZWQg
cHJvcGVydHkgc2V0dGVyIGFuZCBbQ3VzdG9tTmFtZWRTZXR0ZXJdIHRvZ2V0aGVyIGlzIG5vdCBz
dXBwb3J0ZWQuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9uICYmICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfTsKICAgICBpZiAoJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRTZXR0ZXJ9KSB7Ci0gICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7XG4i
KTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFB1dFByb3BlcnR5U2xvdCBzbG90
KHRoaXNPYmplY3QsIHNob3VsZFRocm93KTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgYm9vbCBwdXRSZXN1bHQgPSBmYWxzZTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgaWYgKHRoaXNPYmplY3QtPnB1dERlbGVnYXRlKHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90LCBwdXRSZXN1bHQpKVxuIik7CkBAIC03ODQsNyArOTI2LDcgQEAg
c3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgIH0KICAgICAKICAgICBpZiAoISRlbGxpZGVzQ2Fs
bHNUb0Jhc2UpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBCYXNl
OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTtcbiIp
OworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRC
eUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTtcbiIpOwogICAg
IH0KICAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwpAQCAtODgyLDExICsx
MDI0LDExIEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAgICAgICMgICAgZG9l
cyBub3QgaGF2ZSBhbiBvd24gcHJvcGVydHkgbmFtZWQgUCwgdGhlbjoKICAgICAgICAgbXkgJG92
ZXJyaWRlQnVpbHRpbnMgPSAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRlZEF0dHJpYnV0
ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpOwogICAgICAgICBpZiAoISRvdmVycmlk
ZUJ1aWx0aW5zKSB7Ci0gICAgICAgICAgICAjIEZJWE1FOiBJcyBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QgdGhlIHJpZ2h0IGZ1bmN0aW9uIHRvIGNhbGw/IElzIHRoZXJlIGEgZnVuY3Rpb24gdGhh
dCB3aWxsCisgICAgICAgICAgICAjIEZJWE1FOiBJcyBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90IHRoZSByaWdodCBmdW5jdGlvbiB0byBjYWxsPyBJcyB0aGVyZSBhIGZ1bmN0aW9uIHRoYXQg
d2lsbAogICAgICAgICAgICAgIyAgICAgICAgb25seSBsb29rIGF0IHRoZSBhY3R1YWwgcHJvcGVy
dGllcywgYW5kIG5vdCBjYWxsIGludG8gb3VyIGltcGxlbWVudGF0aW9uIG9mIHRoZQogICAgICAg
ICAgICAgIyAgICAgICAgW1tHZXRPd25Qcm9wZXJ0eV1dIGhvb2s/CiAgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50LiAiICAgICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlu
cXVpcnkgfTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25h
bEluZGVudC4gIiAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudC4gIiAgICAgICAgaWYgKCFKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
KSB7XG4iKTsKICAgICAgICAgICAgICRhZGRpdGlvbmFsSW5kZW50IC49ICIgICAgIjsKICAgICAg
ICAgfQogICAgICAgICBpZiAoISRuYW1lZFNldHRlck9wZXJhdGlvbikgewpAQCAtOTI5LDcgKzEw
NzEsNyBAQCBzdWIgR2VuZXJhdGVEZWZpbmVPd25Qcm9wZXJ0eQogICAgIAogICAgICMgNC4gUmV0
dXJuIE9yZGluYXJ5RGVmaW5lT3duUHJvcGVydHkoTywgUCwgRGVzYykuCiAgICAgIyBGSVhNRTog
RG9lcyB0aGlzIGRvIHRoZSBzYW1lIHRoaW5nPwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTtcbiIpOworICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7XG4iKTsKICAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQpA
QCAtOTQ5LDcgKzEwOTEsNyBAQCBzdWIgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1vbgogICAg
IGFzc2VydCgiTmFtZWQgcHJvcGVydHkgZGVsZXRlcnMgYXJlIG5vdCBhbGxvd2VkIG9uIGdsb2Jh
bCBvYmplY3QgaW50ZXJmYWNlcy4iKSBpZiBJc0dsb2JhbE9yUHJpbWFyeUdsb2JhbEludGVyZmFj
ZSgkaW50ZXJmYWNlKTsKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUFic3RyYWN0T3Bl
cmF0aW9ucy5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICBteSAkb3ZlcnJpZGVCdWlsdGluID0gJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJy
aWRlQnVpbHRpbnMiKSA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgICAgbXkgJG92ZXJyaWRlQnVpbHRp
biA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2Us
ICJPdmVycmlkZUJ1aWx0aW5zIikgPyAiT3ZlcnJpZGVCdWlsdGluczo6WWVzIiA6ICJPdmVycmlk
ZUJ1aWx0aW5zOjpObyI7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChpc1Zpc2li
bGVOYW1lZFByb3BlcnR5PCR7b3ZlcnJpZGVCdWlsdGlufT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUpKSB7XG4iKTsKIAogICAgIGlmICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntDRVJlYWN0aW9uc30pIHsKQEAgLTEwMjksOSArMTE3MSw5IEBAIHN1YiBHZW5lcmF0
ZURlbGV0ZVByb3BlcnR5RGVmaW5pdGlvbgogICAgICMgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNv
bW1vbiBpbXBsZW1lbnRzIHN0ZXAgMi4KICAgICBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9u
KCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlvbiwgJGNvbmRp
dGlvbmFsKTsKIAotICAgICMgRklYTUU6IEluc3RlYWQgb2YgY2FsbGluZyBkb3duIEJhc2U6OmRl
bGV0ZVByb3BlcnR5LCBwZXJoYXBzIHdlIHNob3VsZCBpbXBsZW1lbnQKKyAgICAjIEZJWE1FOiBJ
bnN0ZWFkIG9mIGNhbGxpbmcgZG93biBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHksIHBlcmhhcHMg
d2Ugc2hvdWxkIGltcGxlbWVudAogICAgICMgdGhlIHJlbWFpbmVkIG9mIHRoZSBhbGdvcml0aG0g
b3Vyc2VsdmVzLgotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQmFzZTo6ZGVs
ZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBz
dGF0ZSwgcHJvcGVydHlOYW1lKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxu
Iik7CiB9CiAKQEAgLTEwNjQsNyArMTIwNiw3IEBAIHN1YiBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5
QnlJbmRleERlZmluaXQKICAgICAgICAgIyBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9uIGlt
cGxlbWVudHMgc3RlcCAyLgogICAgICAgICBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9uKCRv
dXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlvbiwgJGNvbmRpdGlv
bmFsKTsKIAotICAgICAgICAjIEZJWE1FOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZG93biBCYXNlOjpk
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgsIHBlcmhhcHMgd2Ugc2hvdWxkIGltcGxlbWVudAorICAgICAg
ICAjIEZJWE1FOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZG93biBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHlCeUluZGV4LCBwZXJoYXBzIHdlIHNob3VsZCBpbXBsZW1lbnQKICAgICAgICAgIyB0aGUgcmVt
YWluZWRlciBvZiB0aGUgYWxnb3JpdG0gKHN0ZXBzIDMgYW5kIDQpIG91cnNlbHZlcy4KICAgICAg
ICAgCiAgICAgICAgICMgMy4gSWYgTyBoYXMgYW4gb3duIHByb3BlcnR5IHdpdGggbmFtZSBQLCB0
aGVuOgpAQCAtMTA3Miw3ICsxMjE0LDcgQEAgc3ViIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlCeUlu
ZGV4RGVmaW5pdAogICAgICAgICAjICAgIDIuIE90aGVyd2lzZSwgcmVtb3ZlIHRoZSBwcm9wZXJ0
eSBmcm9tIE8uCiAgICAgICAgICMgMy4gUmV0dXJuIHRydWUuCiAgICAgICAgIAotICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5QnlJbmRl
eChjZWxsLCBzdGF0ZSwgaW5kZXgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwg
aW5kZXgpO1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsK
QEAgLTE1NDAsMTcgKzE2ODIsNiBAQCBzdWIgSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0
eVNsb3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgcmV0dXJuICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdH0KLSAgICAg
ICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9
Ci0gICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93
blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9Ci0gICAgICAgIHx8IEdldEluZGV4ZWRHZXR0ZXJP
cGVyYXRpb24oJGludGVyZmFjZSkKLSAgICAgICAgfHwgR2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24o
JGludGVyZmFjZSk7Ci19Ci0KLXN1YiBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXgKLXsKLSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgcmV0dXJuICRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXh9Ci0gICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5h
bWVkR2V0dGVyfQogICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntD
dXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfQogICAgICAgICB8fCBHZXRJbmRl
eGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpCiAgICAgICAgIHx8IEdldE5hbWVkR2V0dGVy
T3BlcmF0aW9uKCRpbnRlcmZhY2UpOwpAQCAtMjI2OSw4ICsyNDAwLDggQEAgc3ViIEdlbmVyYXRl
SGVhZGVyCiAgICAgbXkgJG5hbWVkR2V0dGVyT3BlcmF0aW9uID0gR2V0TmFtZWRHZXR0ZXJPcGVy
YXRpb24oJGludGVyZmFjZSk7CiAgICAgbXkgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXRJ
bmRleGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOwogCi0gICAgIyBGSVhNRTogV2h5IGRv
ZXNuJ3QgdGhpcyBhbHNvIGluY2x1ZGUgSW5kZXhlZCBHZXR0ZXJzLCB7Q3VzdG9tR2V0T3duUHJv
cGVydHlTbG90fSBhbmQge0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9Ci0g
ICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn0pIHsKKyAgICAjIEZJWE1FOiBXaHkgZG9lc24ndCB0
aGlzIGFsc28gaW5jbHVkZSBJbmRleGVkIEdldHRlcnMsIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNs
b3RdIGFuZCBbQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvcl0KKyAgICBpZiAo
JG5hbWVkR2V0dGVyT3BlcmF0aW9uKSB7CiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SW5o
ZXJpdHNFeHRlbmRlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpKSB7
CiAgICAgICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJ
bXB1cmUifSA9IDE7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0yMjgzLDkgKzI0MTQsNyBAQCBzdWIg
R2VuZXJhdGVIZWFkZXIKICAgICBpZiAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0
aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAg
JHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCJ9ID0gMTsK
LSAgICB9Ci0gICAgCi0gICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90
QnlJbmRleCgkaW50ZXJmYWNlKSkgeworICAgICAgICAKICAgICAgICAgcHVzaChAaGVhZGVyQ29u
dGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTtcbiIpOwogICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6SW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyJ9ID0gMTsK
ICAgICB9CkBAIC0yNTM4LDExICsyNjY3LDcgQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgaWYg
KCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xv
dEFuZERlc2NyaXB0b3J9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9v
bCBnZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVy
dHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgfQotCi0gICAgaWYgKCRpbnRl
cmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkR2V0dGVyfSkgewotICAgICAg
ICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgbmFtZUdldHRlcihKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmKTtcbiIpOwotICAgIH0KLQorICAg
IAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZFNl
dHRlcn0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIHB1dERlbGVn
YXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSwgSlND
OjpQdXRQcm9wZXJ0eVNsb3QmLCBib29sJiBwdXRSZXN1bHQpO1xuIik7CiAgICAgfQpAQCAtMzc5
NCw3ICszOTE5LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgIG15
ICRydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmcgPSBHZW5lcmF0ZVJ1bnRpbWVFbmFibGVD
b25kaXRpb25hbFN0cmluZygkb3BlcmF0aW9uT3JBdHRyaWJ1dGUpOwogICAgICAgICAgICAgbXkg
JG5hbWUgPSAkb3BlcmF0aW9uT3JBdHRyaWJ1dGUtPm5hbWU7CiAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICBpZiAoISR7cnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nfSkg
e1xuIik7Ci0gICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSWRlbnRpZmll
ciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRuYW1lXCIpKTtcbiIpOwor
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGF1dG8gcHJvcGVydHlOYW1l
ID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENo
YXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsKICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2Nv
cGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7XG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1l
KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CkBAIC0z
ODE2LDcgKzM5NDEsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAg
ICAgIG15ICRuYW1lID0gJG9wZXJhdGlvbk9yQXR0cmlidXRlLT5uYW1lOwogCiAgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgaWYgKCFjb250ZXh0IHx8ICFkb3duY2FzdDxE
b2N1bWVudD4oKmNvbnRleHQpLnNldHRpbmdzKCkuJHtlbmFibGVGdW5jdGlvbn0oKSkge1xuIik7
Ci0gICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIElkZW50aWZpZXIg
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsKKyAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBM
Q2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRuYW1lXCIpKTtcbiIpOwogICAgICAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2Nv
cGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7
XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdC5nbG9iYWxFeGVjKCksIHByb3Bl
cnR5TmFtZSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9
XG4iKTsKQEAgLTQwMjksMTEgKzQxNTQsOCBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgog
ICAgIH0KIAogICAgIGlmIChJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCgkaW50
ZXJmYWNlKSkgewotICAgICAgICBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkoXEBpbXBs
Q29udGVudCwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSk7Ci0gICAgfQotICAgIAotICAgIGlmIChJ
bnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoJGludGVyZmFjZSkpIHsK
LSAgICAgICAgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5QnlJbmRleChcQGltcGxDb250
ZW50LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKTsKKyAgICAgICAgR2VuZXJhdGVHZXRPd25Qcm9w
ZXJ0eVNsb3QoXEBpbXBsQ29udGVudCwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSk7CisgICAgICAg
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90QnlJbmRleChcQGltcGxDb250ZW50LCAkaW50ZXJm
YWNlLCAkY2xhc3NOYW1lKTsKICAgICB9CiAgICAgCiAgICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlOYW1lcygkaW50ZXJmYWNlKSkgewpAQCAtNTk1NSw3ICs2MDc3LDggQEAg
c3ViIEdldEJhc2VJRExUeXBlCiAgICAgICAgICJKU09OIiA9PiAiSURMSlNPTiIsCiAgICAgICAg
ICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiID0+ICJJRExTZXJpYWxpemVkU2NyaXB0VmFsdWU8U2Vy
aWFsaXplZFNjcmlwdFZhbHVlPiIsCiAgICAgICAgICJYUGF0aE5TUmVzb2x2ZXIiID0+ICJJRExY
UGF0aE5TUmVzb2x2ZXI8WFBhdGhOU1Jlc29sdmVyPiIsCi0KKyAgICAgICAgIkRPTVdpbmRvd1No
ZWxsIiA9PiAiSURMRE9NV2luZG93U2hlbGwiLAorICAgICAgICAKICAgICAgICAgIyBDb252ZW5p
ZW5jZSB0eXBlIGFsaWFzZXMKICAgICAgICAgIkJ1ZmZlclNvdXJjZSIgPT4gIklETEJ1ZmZlclNv
dXJjZSIsCiAgICAgKTsKQEAgLTYxMTEsMTEgKzYyMzQsMTIgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1
ZURPTUNvbnZlcnROZWVkc1N0YXRlCiAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklz
RGljdGlvbmFyeVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5J
c0ludGVyZmFjZVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5J
c1R5cGVkQXJyYXlUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAi
RE9NV2luZG93U2hlbGwiOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJEYXRlIjsK
ICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiSlNPTiI7CiAgICAgcmV0dXJuIDEgaWYg
JHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CiAgICAgcmV0dXJuIDEgaWYg
JHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciI7Ci0KKyAgICAKICAgICByZXR1cm4gMDsK
IH0KIApAQCAtNjE0MSw2ICs2MjY1LDcgQEAgc3ViIE5hdGl2ZVRvSlNWYWx1ZURPTUNvbnZlcnRO
ZWVkc0dsb2JhbAogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25hcnlU
eXBlKCR0eXBlKTsKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNJbnRlcmZhY2VU
eXBlKCR0eXBlKTsKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5
VHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvd1No
ZWxsIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiU2VyaWFsaXplZFNjcmlwdFZh
bHVlIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29sdmVyIjsK
IApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpz
b24KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRy
aWJ1dGVzLmpzb24JKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC05NSw5ICs5NSw2
IEBACiAgICAgICAgICJDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QiOiB7CiAgICAgICAgICAgICAi
Y29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQogICAgICAgICB9LAotICAgICAgICAiQ3Vz
dG9tR2V0T3duUHJvcGVydHlTbG90QnlJbmRleCI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0Fs
bG93ZWQiOiBbImludGVyZmFjZSJdCi0gICAgICAgIH0sCiAgICAgICAgICJDdXN0b21HZXRPd25Q
cm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dl
ZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKQEAgLTExMyw5ICsxMTAsNiBAQAogICAgICAg
ICAiQ3VzdG9tSXNSZWFjaGFibGUiOiB7CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjog
WyJpbnRlcmZhY2UiXQogICAgICAgICB9LAotICAgICAgICAiQ3VzdG9tTmFtZWRHZXR0ZXIiOiB7
Ci0gICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQotICAgICAgICB9
LAogICAgICAgICAiQ3VzdG9tTmFtZWRHZXR0ZXJPblByb3RvdHlwZSI6IHsKICAgICAgICAgICAg
ICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJdCiAgICAgICAgIH0sCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmlkbAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RDdXN0b21OYW1lZEdldHRlci5pZGwJKG5vbmV4
aXN0ZW50KQpAQCAtMSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2ds
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVz
ZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtc3RyQXJnLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1v
ZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29u
ZGl0aW9ucwotICogYXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJj
ZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92
ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQv
b3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMu
ICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMg
b2YKLSAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJv
bW90ZSBwcm9kdWN0cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQg
c3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUg
SVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5Z
Ci0gKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFc3RyQXJnLCBJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklM
SVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlN
RUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkKLSAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJ
TUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0g
KiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UgT0YKLSAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuCi0gKi8KLQotWwotICAgIEN1c3RvbU5hbWVkR2V0dGVyCi1dIGlu
dGVyZmFjZSBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgewotICAgIHZvaWQgYW5vdGhlckZ1bmN0aW9u
KERPTVN0cmluZyBzdHIpOwotfTsKLQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIuY3BwCShyZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCShub25leGlzdGVudCkK
QEAgLTEsMjc5ICswLDAgQEAKLS8qCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktp
dCBvcGVuIHNvdXJjZSBwcm9qZWN0LgotICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQg
YnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCi0KLSAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0
aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9w
dGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0
ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBB
TlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1F
UkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0
aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFp
bHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7
IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJl
ZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZs
b29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNv
bmZpZy5oIgotI2luY2x1ZGUgIkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgiCi0KLSNpbmNsdWRl
ICJKU0RPTUJpbmRpbmcuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0
YWJsZS5oIgotI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgotI2luY2x1ZGUgIkpTRE9NRXhjZXB0
aW9uSGFuZGxpbmcuaCIKLSNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgotI2luY2x1ZGUgIkpT
RE9NV3JhcHBlckNhY2hlLmgiCi0jaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5o
PgotI2luY2x1ZGUgPHd0Zi9HZXRQdHIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFt
ZXNwYWNlIFdlYkNvcmUgewotCi0vLyBGdW5jdGlvbnMKLQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBK
U0NfSE9TVF9DQUxMIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90
aGVyRnVuY3Rpb24oSlNDOjpFeGVjU3RhdGUqKTsKLQotLy8gQXR0cmlidXRlcwotCi1KU0M6OkVu
Y29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpFeGVj
U3RhdGUqLCBKU0M6OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNl
dEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLQotY2xhc3MgSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsK
LXB1YmxpYzoKLSAgICB1c2luZyBCYXNlID0gSlNDOjpKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0
YXRpYyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSogY3JlYXRlKEpTQzo6Vk0mIHZt
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0
dXJlKQotICAgIHsKLSAgICAgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIHB0
ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXJQcm90b3R5cGU+KHZtLmhlYXApKSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSh2
bSwgZ2xvYmFsT2JqZWN0LCBzdHJ1Y3R1cmUpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9u
KHZtKTsKLSAgICAgICAgcmV0dXJuIHB0cjsKLSAgICB9Ci0KLSAgICBERUNMQVJFX0lORk87Ci0g
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpT
Qzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkK
LSAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxP
YmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVy
ZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXJQcm90b3R5cGUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6
OlN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgICAgICA6IEpTQzo6SlNOb25GaW5hbE9iamVjdCh2
bSwgc3RydWN0dXJlKQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpT
Qzo6Vk0mKTsKLX07Ci0KLXVzaW5nIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3Ig
PSBKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RDdXN0b21OYW1lZEdldHRl
cj47Ci0KLXRlbXBsYXRlPD4gSlNWYWx1ZSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVj
dG9yOjpwcm90b3R5cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFs
T2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHZtKTsKLSAgICByZXR1
cm4gZ2xvYmFsT2JqZWN0LmZ1bmN0aW9uUHJvdG90eXBlKCk7Ci19Ci0KLXRlbXBsYXRlPD4gdm9p
ZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGll
cyhWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcHV0RGly
ZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyOjpwcm90b3R5cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8
IERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpz
Tm9udHJpdmlhbFN0cmluZygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoIlRlc3RDdXN0b21OYW1l
ZEdldHRlciIpKSksIFJlYWRPbmx5IHwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0u
cHJvcGVydHlOYW1lcy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7
Ci19Ci0KLXRlbXBsYXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
Q29uc3RydWN0b3I6OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21OYW1lZEdldHRlciIsICZCYXNlOjpz
X2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcikgfTsKLQotLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBl
ICovCi0KLXN0YXRpYyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RDdXN0b21OYW1lZEdldHRl
clByb3RvdHlwZVRhYmxlVmFsdWVzW10gPQotewotICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVu
dW0sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6Okdl
dFZhbHVlRnVuYz4oanNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvciksIChpbnRwdHJf
dCkgc3RhdGljX2Nhc3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJhbm90aGVyRnVuY3Rpb24i
LCBKU0M6OkZ1bmN0aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0
aXZlRnVuY3Rpb24+KGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90
aGVyRnVuY3Rpb24pLCAoaW50cHRyX3QpICgxKSB9IH0sCi19OwotCi1jb25zdCBDbGFzc0luZm8g
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21O
YW1lZEdldHRlclByb3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENS
RUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUpIH07Ci0K
LXZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcmVpZnlTdGF0aWNQ
cm9wZXJ0aWVzKHZtLCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZVRhYmxlVmFsdWVz
LCAqdGhpcyk7Ci19Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6
c19pbmZvID0geyAiVGVzdEN1c3RvbU5hbWVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0
ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDdXN0b21OYW1lZEdldHRlcikg
fTsKLQotSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKFN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBSZWY8
VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCi0gICAgOiBKU0RPTVdyYXBwZXI8VGVzdEN1
c3RvbU5hbWVkR2V0dGVyPihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSkK
LXsKLX0KLQotdm9pZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6ZmluaXNoQ3JlYXRpb24oVk0m
IHZtKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBBU1NFUlQoaW5oZXJp
dHModm0sIGluZm8oKSkpOwotCi19Ci0KLUpTT2JqZWN0KiBKU1Rlc3RDdXN0b21OYW1lZEdldHRl
cjo6Y3JlYXRlUHJvdG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCkKLXsKLSAgICByZXR1cm4gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmNyZWF0
ZSh2bSwgJmdsb2JhbE9iamVjdCwgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmNy
ZWF0ZVN0cnVjdHVyZSh2bSwgJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3Rv
dHlwZSgpKSk7Ci19Ci0KLUpTT2JqZWN0KiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6cHJvdG90
eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1
cm4gZ2V0RE9NUHJvdG90eXBlPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPih2bSwgZ2xvYmFsT2Jq
ZWN0KTsKLX0KLQotSlNWYWx1ZSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0Q29uc3RydWN0
b3IoVk0mIHZtLCBjb25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIHJl
dHVybiBnZXRET01Db25zdHJ1Y3RvcjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9y
Pih2bSwgKmpzQ2FzdDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwot
fQotCi12b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBj
ZWxsKQotewotICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0aGlzT2JqZWN0ID0gc3RhdGlj
X2Nhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihjZWxsKTsKLSAgICB0aGlzT2JqZWN0LT5K
U1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6fkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKCk7Ci19Ci0K
LWJvb2wgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldE93blByb3BlcnR5U2xvdChKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJl
Y3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90
byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBKU1ZhbHVlIHZhbHVlOwotICAgICAgICBp
ZiAodGhpc09iamVjdC0+bmFtZUdldHRlcihzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpIHsK
LSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBm
YWxzZTsKLX0KLQotYm9vbCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBp
bmRleCwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVj
dC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAg
ICAgIGlmICh0aGlzT2JqZWN0LT5uYW1lR2V0dGVyKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
KSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFs
dWUpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0
dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGlu
ZGV4LCBzbG90KTsKLX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIqIElETE9wZXJhdGlvbjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSkKLXsKLSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIqPihzdGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7Ci19Ci0KLUVuY29kZWRK
U1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgVk0mIHZt
ID0gc3RhdGUtPnZtKCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09Q
RSh2bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkp
OwotICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1U
eXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUo
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90
b3R5cGUtPmdsb2JhbE9iamVjdCgpKSk7Ci19Ci0KLWJvb2wgc2V0SlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIEVuY29kZWRKU1ZhbHVlIGVuY29kZWRWYWx1ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS0+
dm0oKTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAg
ICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYg
KFVOTElLRUxZKCFwcm90b3R5cGUpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUs
IHRocm93U2NvcGUpOwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIC8vIFNoYWRv
d2luZyBhIGJ1aWx0LWluIGNvbnN0cnVjdG9yCi0gICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGly
ZWN0KHN0YXRlLT52bSgpLCBzdGF0ZS0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCBKU1Zh
bHVlOjpkZWNvZGUoZW5jb2RlZFZhbHVlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5vdGhl
ckZ1bmN0aW9uQm9keShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHR5cGVuYW1lIElETE9wZXJhdGlv
bjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMsIEpT
Qzo6VGhyb3dTY29wZSYgdGhyb3dTY29wZSkKLXsKLSAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwot
ICAgIFVOVVNFRF9QQVJBTSh0aHJvd1Njb3BlKTsKLSAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhp
cy0+d3JhcHBlZCgpOwotICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRDb3VudCgpIDwg
MSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0
ZU5vdEVub3VnaEFyZ3VtZW50c0Vycm9yKHN0YXRlKSk7Ci0gICAgYXV0byBzdHIgPSBjb252ZXJ0
PElETERPTVN0cmluZz4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAg
aW1wbC5hbm90aGVyRnVuY3Rpb24oV1RGTW92ZShzdHIpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKGpzVW5kZWZpbmVkKCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVuY3Rpb24o
RXhlY1N0YXRlKiBzdGF0ZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyPjo6Y2FsbDxqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0
aW9uQW5vdGhlckZ1bmN0aW9uQm9keT4oKnN0YXRlLCAiYW5vdGhlckZ1bmN0aW9uIik7Ci19Ci0K
LWJvb2wgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVl
Um9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRv
ciYgdmlzaXRvcikKLXsKLSAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKLSAgICBVTlVTRURfUEFS
QU0odmlzaXRvcik7Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyT3duZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxl
LCB2b2lkKiBjb250ZXh0KQotewotICAgIGF1dG8qIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyID0g
c3RhdGljX2Nhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihoYW5kbGUuc2xvdCgpLT5hc0Nl
bGwoKSk7Ci0gICAgYXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4o
Y29udGV4dCk7Ci0gICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1Rlc3RDdXN0b21OYW1lZEdl
dHRlci0+d3JhcHBlZCgpLCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlcik7Ci19Ci0KLSNpZiBFTkFC
TEUoQklORElOR19JTlRFR1JJVFkpCi0jaWYgUExBVEZPUk0oV0lOKQotI3ByYWdtYSB3YXJuaW5n
KGRpc2FibGU6IDQ0ODMpCi1leHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQgKCpjb25zdCBfX2lkZW50
aWZpZXIoIj8/XzdUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJAV2ViQ29yZUBANkJAIilbXSkoKTsgfQot
I2Vsc2UKLWV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTIxVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyRVtdOyB9Ci0jZW5kaWYKLSNlbmRpZgotCi1KU0M6OkpTVmFsdWUgdG9KU05l
d2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmpl
Y3QsIFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYgaW1wbCkKLXsKLQotI2lmIEVOQUJMRShC
SU5ESU5HX0lOVEVHUklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWlu
dGVycHJldF9jYXN0PHZvaWQqKj4oaW1wbC5wdHIoKSkpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAg
ICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihf
X2lkZW50aWZpZXIoIj8/XzdUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJAV2ViQ29yZUBANkJAIikpOwot
I2Vsc2UKLSAgICB2b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSAmX1pUVk43V2ViQ29yZTIx
VGVzdEN1c3RvbU5hbWVkR2V0dGVyRVsyXTsKLSNpZiBDT01QSUxFUihDTEFORykKLSAgICAvLyBJ
ZiB0aGlzIGZhaWxzIFRlc3RDdXN0b21OYW1lZEdldHRlciBkb2VzIG5vdCBoYXZlIGEgdnRhYmxl
LCBzbyB5b3UgbmVlZCB0byBhZGQgdGhlCi0gICAgLy8gSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJs
ZSBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBkZWZpbml0aW9uCi0gICAgc3RhdGljX2Fzc2Vy
dChfX2lzX3BvbHltb3JwaGljKFRlc3RDdXN0b21OYW1lZEdldHRlciksICJUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIgaXMgbm90IHBvbHltb3JwaGljIik7Ci0jZW5kaWYKLSNlbmRpZgotICAgIC8vIElm
IHlvdSBoaXQgdGhpcyBhc3NlcnRpb24geW91IGVpdGhlciBoYXZlIGEgdXNlIGFmdGVyIGZyZWUg
YnVnLCBvcgotICAgIC8vIFRlc3RDdXN0b21OYW1lZEdldHRlciBoYXMgc3ViY2xhc3Nlcy4gSWYg
VGVzdEN1c3RvbU5hbWVkR2V0dGVyIGhhcyBzdWJjbGFzc2VzIHRoYXQgZ2V0IHBhc3NlZAotICAg
IC8vIHRvIHRvSlMoKSB3ZSBjdXJyZW50bHkgcmVxdWlyZSBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIg
eW91IHRvIG9wdCBvdXQgb2YgYmluZGluZyBoYXJkZW5pbmcKLSAgICAvLyBieSBhZGRpbmcgdGhl
IFNraXBWVGFibGVWYWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZp
bml0aW9uCi0gICAgUkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3Rl
ZFZUYWJsZVBvaW50ZXIpOwotI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8VGVzdEN1
c3RvbU5hbWVkR2V0dGVyPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwotfQotCi1KU0M6
OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIFRlc3RDdXN0b21OYW1lZEdldHRlciYgaW1wbCkKLXsKLSAgICByZXR1cm4g
d3JhcChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBpbXBsKTsKLX0KLQotVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6
OkpTVmFsdWUgdmFsdWUpCi17Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3du
Y2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KHZtLCB2YWx1ZSkpCi0gICAgICAgIHJldHVy
biAmd3JhcHBlci0+d3JhcHBlZCgpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi19CgpQcm9w
ZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1z
dHlsZQojIyAtMSArMCwwICMjCi1MRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAkocmV2aXNpb24gMjE3OTQ2KQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmgJKG5vbmV4aXN0ZW50KQpAQCAtMSw5MCArMCwwIEBACi0vKgotICAgIFRoaXMg
ZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KLSAgICBUaGlz
IGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1Qg
TU9ESUZZIQotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVk
aXN0cmlidXRlIGl0IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhl
IEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRo
ZSBMaWNlbnNlLCBvciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAg
VGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1
c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGlt
cGxpZWQgd2FycmFudHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2Vp
dmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAg
IGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBu
b3QsIHdyaXRlIHRvCi0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEg
RnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEs
IFVTQS4KLSovCi0KLSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCi0j
aW5jbHVkZSAiVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgiCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVz
dHJveWVkLmg+Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIgOiBwdWJsaWMgSlNET01XcmFwcGVyPFRlc3RDdXN0b21OYW1lZEdldHRlcj4gewot
cHVibGljOgotICAgIHVzaW5nIEJhc2UgPSBKU0RPTVdyYXBwZXI8VGVzdEN1c3RvbU5hbWVkR2V0
dGVyPjsKLSAgICBzdGF0aWMgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGNyZWF0ZShKU0M6OlN0
cnVjdHVyZSogc3RydWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8
VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCi0gICAgewotICAgICAgICBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcihzdHJ1Y3R1cmUsICpnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwot
ICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0gICAgICAg
IHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVBy
b3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKLSAgICBzdGF0aWMgSlNDOjpK
U09iamVjdCogcHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwotICAgIHN0
YXRpYyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1Zh
bHVlKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCos
IEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7
Ci0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0
KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlT
bG90Jik7Ci0gICAgc3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwotCi0gICAgREVD
TEFSRV9JTkZPOwotCi0gICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3Jl
YXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVj
dFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlND
OjpKU1ZhbHVlIGdldENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2Jq
ZWN0Kik7Ci1wdWJsaWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdz
ID0gSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpT
Qzo6SW50ZXJjZXB0c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90
WmVybyB8IEpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJl
RmxhZ3M7Ci1wcm90ZWN0ZWQ6Ci0gICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpTdHJ1
Y3R1cmUqLCBKU0RPTUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYp
OwotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci0gICAgYm9vbCBuYW1lR2V0
dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSYpOwot
fTsKLQotY2xhc3MgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lciA6IHB1YmxpYyBKU0M6Oldl
YWtIYW5kbGVPd25lciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpT
Qzo6U2xvdFZpc2l0b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8
SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4dCk7Ci19OwotCi1pbmxpbmUgSlNDOjpXZWFrSGFu
ZGxlT3duZXIqIHdyYXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIqKQotewotICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlck93bmVyPiBvd25lcjsKLSAgICByZXR1cm4gJm93bmVyLmdldCgpOwotfQotCi1pbmxpbmUg
dm9pZCogd3JhcHBlcktleShUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHdyYXBwYWJsZU9iamVjdCkK
LXsKLSAgICByZXR1cm4gd3JhcHBhYmxlT2JqZWN0OwotfQotCi1KU0M6OkpTVmFsdWUgdG9KUyhK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEN1c3RvbU5hbWVkR2V0dGVy
Jik7Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGltcGwp
IHsgcmV0dXJuIGltcGwgPyB0b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QsICppbXBsKSA6IEpTQzo6
anNOdWxsKCk7IH0KLUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRl
KiwgSlNET01HbG9iYWxPYmplY3QqLCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmKTsKLWlu
bGluZSBKU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZlB0cjxUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXI+JiYgaW1wbCkgeyByZXR1cm4gaW1wbCA/IHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGds
b2JhbE9iamVjdCwgaW1wbC5yZWxlYXNlTm9uTnVsbCgpKSA6IEpTQzo6anNOdWxsKCk7IH0KLQot
dGVtcGxhdGU8PiBzdHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRzPFRlc3RDdXN0b21O
YW1lZEdldHRlcj4gewotICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyOwotICAgIHVzaW5nIFRvV3JhcHBlZFJldHVyblR5cGUgPSBUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIqOwotfTsKLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBv
bjogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyLmgKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAg
IyMKLUxGClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2
ZW50VGFyZ2V0LmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdEV2
ZW50VGFyZ2V0LmgiCiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25z
dHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCkBAIC0xMzQsNDggKzEzNSw2
NiBAQCBib29sIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eVNsCiB7CiAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KG9iamVjdCk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8g
b3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9u
YWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsK
LSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExJbnRl
cmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
fQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgcHJv
dG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJvdG8uaXNP
YmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBw
cm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW9wdGlvbmFs
SW5kZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5h
bWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwot
ICAgICAgICBpZiAoIUlETEludGVyZmFjZTxOb2RlPjo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50
ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgaXRlbSkp
OworICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAg
ICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7
CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0
ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRl
bShpbmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3Qs
IFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQor
ICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNp
bmcgR2V0dGVySURMVHlwZSA9IElETEludGVyZmFjZTxOb2RlPjsKKyAgICBhdXRvIGdldHRlckZ1
bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6
b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7Cisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRl
cklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5h
bWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxl
TmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9K
UzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgp
LCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAg
IH0KKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUs
IHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5k
ZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3Rh
dGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0
ZW0oaW5kZXgpKSk7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7
CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewor
ICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUs
ICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0o
aW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6
ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExJbnRlcmZh
Y2U8Tm9kZT47CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3Qs
IGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5
cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmpl
Y3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0
eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQp
KQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0
aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQp
IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBu
YW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGlu
czo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rvcikp
IHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUs
ICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVl
KCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUp
OwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwg
aW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4ob2JqZWN0KTsKLSAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0g
MCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytp
KQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7
CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3Vw
cG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAg
ICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXZlbnRUYXJnZXQqIElE
TE9wZXJhdGlvbjxKU1Rlc3RFdmVudFRhcmdldD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJ
KHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM2LDM1ICsxMzYsMzcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
OjpnZQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgo
cHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZh
bHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBp
bmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlz
T2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8gaW5k
ZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVl
KCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8g
dmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
aXRlbShpbmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAg
fQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxz
ZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZp
ZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxl
bmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwot
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9J
TkRFWCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0
aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0
ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3Qp
OwogfQogCiB2b2lkIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldE93blByb3Bl
cnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1l
QXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcio+KG9i
amVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgp
OyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6
ZnJvbShzdGF0ZSwgaSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29s
IEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMTgwLDcgKzE4Miw3IEBAIGJvb2wg
SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6cHUKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1
dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCeUluZGV4
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUg
dmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0xOTYsNyArMTk4LDcgQEAgYm9vbCBKU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVl
LCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0
YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0
eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIx
Niw3ICsyMTgsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlCiAK
ICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlE
ZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1
ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0
dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNiwzNSArMTM2LDM3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW8KIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRl
eCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBv
cHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsK
LSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlz
T2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAg
aWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CiAgICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKExJ
S0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAgIGlmIChpbmRleCA8IHRo
aXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9
IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGlu
ZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsK
KyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwg
c2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9i
amVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb246OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1l
cmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0
SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291
bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7Ci0gICAg
QmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
cywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1
dFByb3BlcnR5U2xvdCkKQEAgLTE4MCw3ICsxODIsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJl
dHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1
dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNU
ZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpwdXRCeUluZGV4KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wg
c2hvdWxkVGhyb3cpCkBAIC0xOTYsNyArMTk4LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpbwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1
cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJv
dyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwg
dmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb246OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3Jp
cHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjE2LDcgKzIx
OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW8KIAogICAgIFBy
b3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0
b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAg
ICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3
UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSog
c3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJl
dmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xNDIsMzUgKzE0MiwzNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
cjo6CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52
YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8g
aW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhdXRvIGlu
ZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1
ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lml0ZW0oaW5kZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAg
IH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgp
KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FS
UkFZX0lOREVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwg
c2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3Bl
cnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgp
Lmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwog
fQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1
ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0xODYsNyArMTg4
LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OgogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBK
U09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQ
cm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
cjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGlu
ZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMjAyLDcgKzIwNCw3IEBA
IGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjoKICAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUs
IGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJ
bmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wg
SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1l
LCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91
bGRUaHJvdykKQEAgLTIyMiw3ICsyMjQsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcjo6CiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlw
dG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRD
b25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwog
fQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIq
IElETE9wZXJhdGlvbjxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYXN0KEV4
ZWNTdGF0ZSYgc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjE3
OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdElu
dGVyZmFjZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQxNiw3ICs0MTYsNyBAQCBib29sIEpTVGVz
dEludGVyZmFjZTo6cHV0KEpTQ2VsbCogY2VsbCwgCiAgICAgaWYgKHRoaXNPYmplY3QtPnB1dERl
bGVnYXRlKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QsIHB1dFJl
c3VsdCkpCiAgICAgICAgIHJldHVybiBwdXRSZXN1bHQ7CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3Qp
OworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdEludGVyZmFjZTo6
cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4
LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtNDI0LDEzICs0MjQsMTMgQEAg
Ym9vbCBKU1Rlc3RJbnRlcmZhY2U6OnB1dEJ5SW5kZXgoSlNDZWxsKgogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogCi0gICAgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHV0UHJvcGVy
dHlTbG90IHNsb3QodGhpc09iamVjdCwgc2hvdWxkVGhyb3cpOwogICAgIGJvb2wgcHV0UmVzdWx0
ID0gZmFsc2U7CiAgICAgaWYgKHRoaXNPYmplY3QtPnB1dERlbGVnYXRlKHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBzbG90LCBwdXRSZXN1bHQpKQogICAgICAgICByZXR1cm4gcHV0UmVzdWx0
OwogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1
ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBz
dGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdEludGVyZmFjZSogSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmNhc3QoRXhl
Y1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5j
cHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgiCiAKKyNpbmNsdWRl
ICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAi
SlNET01Db252ZXJ0LmgiCkBAIC0xMzYsNDggKzEzNyw2NiBAQCBib29sIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9w
dGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFs
SW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxl
bmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0g
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVy
biB0cnVlOwotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAg
aWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9w
ZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAg
aWYgKCFvcHRpb25hbEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAm
JiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0p
KSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9N
U3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgo
cHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZhbHVl
KCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJ
RExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmpl
Y3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklE
TFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNP
YmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1
bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1
bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0
byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWls
dGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rv
cikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdU
Rk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgp
KSk7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAg
IGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAg
ICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndy
YXBwZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAg
ICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0
YXRlLCBpbmRleCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExE
T01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3Qs
IGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5
cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmpl
Y3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0
eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQp
KQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0
aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQp
IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBu
YW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGlu
czo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rvcikp
IHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1v
dmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJu
IEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4
LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgo
b2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkg
PSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50OyAr
K2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGkp
KTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5z
dXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50
aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93
blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwor
ICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpZmllcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0
eVNsb3QpCkBAIC0yMDUsNyArMjI0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlz
T2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAg
ICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAg
LTIyMSw3ICsyNDAsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRp
CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xvdCBz
bG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5x
dWlyeSB9OwogICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBl
RGlyZWN0KCk7CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QocHJv
dG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkgewpA
QCAtMjMyLDcgKzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVy
biBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRU
aHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
OjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3Bl
cnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTI1Miw3ICsyNzEsNyBAQCBib29s
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpCiAKICAgICBpZiAoIXByb3BlcnR5
TmFtZS5pc1N5bWJvbCgpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVj
dCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwotICAgICAg
ICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KSkgeworICAgICAgICBpZiAoIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAg
IGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkKICAgICAgICAgICAg
ICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTI2NSw3ICsyODQsNyBAQCBib29sIEpTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3Ig
bmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3Bl
cnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRl
ZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlE
ZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Q
cm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRv
ciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNw
cAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgi
CiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgi
CiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCkBAIC0xMzYsNDggKzEzNyw2NiBAQCBib29sIEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nCiB7CiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+
KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZv
KCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsK
LSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFs
SW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pT
PElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkp
KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAg
IHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5
cGVEaXJlY3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3Qq
Pihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1
cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW9wdGlvbmFsSW5kZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJ
bmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBh
dXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6
aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOworICAgIGlmIChhdXRvIGlu
ZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1
ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lml0ZW0oaW5kZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAg
ICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNpbmcg
R2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBb
XSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8
dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6
OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVl
RnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVl
OworICAgIH0KKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFko
aW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09i
amVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBN
QVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3Ry
aW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJl
dHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgfQorICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAg
IHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5j
dG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9w
dGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAg
ICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJ
RExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1l
IEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJh
Y3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5h
bWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8
SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7Cisg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwog
fQogCiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFBy
b3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhv
YmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0
eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7CiAgICAgZm9yIChhdXRvJiBw
cm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1l
cygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0
YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAog
Ym9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0yMDUs
NyArMjI0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogICAg
ICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVy
dHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2ln
bmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMjIxLDcgKzI0
MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlz
T2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAg
ICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsK
ICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5n
ZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMzIsNyAr
MjUxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxs
LCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0K
IAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVm
aW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURl
c2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yNTIsNyArMjcxLDcgQEAgYm9vbCBKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogCiAgICAgaWYgKCFwcm9wZXJ0eU5hbWUu
aXNTeW1ib2woKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFBy
b3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAgaWYg
KCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpIHsKKyAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAo
IXByb3BlcnR5RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yNjUsNyArMjg0LDcgQEAgYm9vbCBKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1By
b3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURl
c2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVP
d25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3Jp
cHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVy
dHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNo
b3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAko
cmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmgiCiAKKyNpbmNsdWRl
ICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAi
SlNET01Db252ZXJ0LmgiCkBAIC0xNDQsNDggKzE0NSw2NiBAQCBib29sIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlcldpdGhJZGVuCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8g
b3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9u
YWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsK
LSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAg
ICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1By
b3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBpZiAoIW9wdGlvbmFsSW5kZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygp
ICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlz
T2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRl
bSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExE
T01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRl
eChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09iamVj
dC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJ
RExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgudmFs
dWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7
CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9
IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09i
amVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhp
c09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJl
c3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJl
c3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChh
dXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1
aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5j
dG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwg
V1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
MCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0o
aW5kZXgpKSk7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7Cisg
ICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAg
ICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CisgICAgICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmpl
Y3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUg
PSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNP
YmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRo
aXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShy
ZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxl
bWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShy
ZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAo
YXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVC
dWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVu
Y3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUs
IFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAg
cmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUs
IGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2Jq
ZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0
KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Cisg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkg
PCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9t
KHN0YXRlLCBpKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVz
LmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBC
YXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVz
LCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0yMTMsNyArMjMyLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJh
c2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVy
dHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNo
b3VsZFRocm93KQpAQCAtMjI5LDcgKzI0OCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAg
UHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0
LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAm
JiBhc09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpKSB7CkBAIC0yNDAsNyArMjU5LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1
cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJv
dyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwg
dmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlE
ZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yNjAs
NyArMjc5LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogCiAg
ICAgaWYgKCFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlu
cXVpcnkgfTsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgaWYgKCFKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
KSB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9y
KCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yNzMsNyArMjky
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogCiAgICAgUHJv
cGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRv
cjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAg
IHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09i
amVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQ
cm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUg
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXIuY3BwCShyZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMTM1LDU0ICsxMzUsNTggQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXI6OmdldAogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWREZWxldGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBH
ZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtd
IChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0
eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0
byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9B
dG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6
aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJ
RExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVG
cm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3Bl
cnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0
cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJl
Y3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90
byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFs
c2U7Ci0KLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9N
U3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAg
ICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBi
b29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwg
UHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmpl
Y3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkp
IHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8
SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBh
dXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5h
bWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRp
b25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFt
ZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAg
ICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVy
SURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBh
Y2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAq
dGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5
LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwg
dmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0
YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1v
ZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJO
b0lkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwg
aW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRk
KElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6
OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1v
ZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllcjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIGF1dG8mIHRoaXNPYmplY3QgPSAqanNDYXN0
PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGF1dG8mIGltcGwg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxm
YWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlz
aWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lKSkgewogICAgICAgICByZXR1cm4gaW1wbC5kZWxldGVOYW1lZFByb3Bl
cnR5KHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgIH0KLSAgICByZXR1
cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1l
KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmRlbGV0ZVByb3Bl
cnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4
KQpAQCAtMTkwLDEwICsxOTQsMTAgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXI6OmRlbAogICAgIGF1dG8mIHRoaXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRl
ck5vSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBw
ZWQoKTsKICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGlu
ZGV4KTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4oKnN0YXRlLCB0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8
T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkg
ewogICAgICAgICByZXR1cm4gaW1wbC5kZWxldGVOYW1lZFByb3BlcnR5KHByb3BlcnR5TmFtZVRv
U3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJv
cGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNSw1MSArMTM1LDU1IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dp
bmdFeGNlcHRpb24KIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2lu
ZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9
IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25h
bDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAg
YXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1l
VG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlw
ZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0
ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFs
dWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0Owor
ICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFBy
b3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAg
ICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVE
aXJlY3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihw
cm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFw
cm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0
LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5
TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsK
LSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQog
CiBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50
aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAg
IGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBp
dGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21p
Y1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVs
bFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJl
YWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01T
dHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1
dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qu
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQor
ICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9u
VHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1l
ZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6
Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsK
KyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUo
bmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJl
dHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZERl
bGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7Ci0gICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlO
YW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAg
ICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJv
cGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5
TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNU
ZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbio+KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsK
LSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0
LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJp
ZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewogICAg
ICAgICBhdXRvIHJlc3VsdCA9IGltcGwuZGVsZXRlTmFtZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24o
KSkgewogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShz
dGF0ZS0+dm0oKSk7CkBAIC0xODksNyArMTkzLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbgogCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZVJldHVyblZh
bHVlKCk7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0
ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGNl
bGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5Nyw3ICsyMDEsNyBAQCBib29sIEpT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uCiAgICAgYXV0byYgdGhpc09iamVjdCA9
ICpqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsKICAg
ICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CiAgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKGlzVmlzaWJsZU5h
bWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewor
ICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3Rh
dGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBp
bXBsLmRlbGV0ZU5hbWVkUHJvcGVydHkocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1l
KSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjA3
LDcgKzIxMSw3IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24KIAog
ICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgIH0KLSAgICBy
ZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgc3RhdGUsIGlu
ZGV4KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNl
cHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFs
dWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQxLDU1ICsxNDEsNTkgQEAgYm9vbCBKU1Rlc3RO
YW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6ZwogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFz
ZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBn
ZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAt
PiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYg
KCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJu
IHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5
cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNz
VmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1
ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1
ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVl
KTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3Qt
PmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2Fz
dDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9
PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRl
bSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxW
YWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFk
T25seSwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0
ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0g
ICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRl
eCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAg
ICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFt
ZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmlu
Zzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9
IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09i
amVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhp
c09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJl
c3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJl
c3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChh
dXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1
aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5j
dG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwg
V1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwg
c3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5h
bWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0
eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQog
ICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBw
cm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBK
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAg
IGF1dG8mIHRoaXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlm
aWVyKj4oY2VsbCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwotICAg
IGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUsIHRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1
aWx0aW5zOjpObz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAg
IGltcGwubmFtZWREZWxldGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3Bl
cnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CiB9CiAKIGJvb2wgSlNUZXN0
TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4KQpAQCAtMTk3LDExICsyMDEs
MTEgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6ZAogICAgIGF1dG8m
IHRoaXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4o
Y2VsbCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwogICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmIChp
c1Zpc2libGVOYW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5z
OjpObz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgIGltcGwu
bmFtZWREZWxldGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5QnlJ
bmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFt
ZWREZWxldGVyV2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5j
cHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTEzNyw0OCArMTM3LDY2IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aElu
ZGV4ZWRHZXR0ZXIKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVk
RGVsZXRlcldpdGhJbmRleGVkR2V0dGVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0g
cGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlv
bmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAg
ICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFs
dWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJv
dG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0
YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW9w
dGlvbmFsSW5kZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9N
U3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgo
cHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZhbHVl
KCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZh
bHVlKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCk7CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICB1c2luZyBHZXR0ZXJJRExU
eXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0
aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBH
ZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFs
dWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJ
bXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAg
aWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJy
aWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRl
ckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0
YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwor
ICAgIH0KKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3Qp
CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
UmVhZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5pdGVtKGluZGV4KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVY
KSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkp
IHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICB9CisgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcg
R2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBb
XSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8
dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6
OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVl
RnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwog
fQogCiB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVy
Kj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGlu
Zm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAg
ICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVu
Z3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlm
aWVyOjpmcm9tKHN0YXRlLCBpKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlz
T2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9w
ZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUp
KTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQpAQCAtMTg3LDEwICsyMDUs
MTAgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcgogICAgIGF1dG8m
IGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKICAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNl
SW5kZXgocHJvcGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuICFpbXBsLmlzU3VwcG9ydGVkUHJv
cGVydHlJbmRleChpbmRleC52YWx1ZSgpKTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0
eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlz
VmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09i
amVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAgICByZXR1cm4gaW1wbC5kZWxldGVOYW1lZFBy
b3BlcnR5KHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgIH0KLSAgICBy
ZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlO
YW1lKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6ZGVs
ZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWdu
ZWQgaW5kZXgpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRp
Zmllci5jcHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJK
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFj
dE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5o
IgpAQCAtMTM0LDQ0ICsxMzUsNDggQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
cjo6Z2V0TwogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklE
TFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8m
IHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1l
IEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3Vs
dCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0
cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxW
YWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxs
YWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAg
ICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3Zl
cnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0
dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBK
U1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYg
KHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0
eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYg
KHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3lt
Ym9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVk
SXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAg
aWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0p
KTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAgfQotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRp
Zmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZv
KCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYg
KCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURM
VHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYg
dGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUg
R2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZh
bHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAg
IGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVy
cmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0
ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
LSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMs
IEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5
TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRl
LCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNs
b3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTE5MSw3ICsxOTYsNyBAQCBib29sIEpTVGVzdE5hbWVk
U2V0dGVyTm9JZGVudGlmaWVyOjpwdXQoCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4g
QmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9w
ZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cp
CkBAIC0xOTksNyArMjA0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6
cHV0QgogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJOb0lk
ZW50aWZpZXIqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmpl
Y3QsIGluZm8oKSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3Qs
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBKU1Zh
bHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlm
ICghKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3Bl
cnR5U2xvdChzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIxMCw3ICsyMTUsNyBA
QCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRl
LCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29s
IEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBj
b25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRU
aHJvdykKQEAgLTIyMCw3ICsyMjUsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyOjpkZWZpCiAKICAgICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CiAgICAgICAg
IFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1l
dGhvZFR5cGU6OlZNSW5xdWlyeSB9OwotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5
U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICBp
ZiAoIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlz
RGF0YURlc2NyaXB0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAg
ICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsK
QEAgLTIzMyw3ICsyMzgsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpk
ZWZpCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJv
cGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFi
bGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
LmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oIgogCisjaW5jbHVkZSAiSlNET01B
YnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRl
ICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29u
dmVydC5oIgpAQCAtMTM0LDQ0ICsxMzUsNDggQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93
aW5nRXhjZXB0aW9uOgogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNp
bmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3Ig
PSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9u
YWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAg
IGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFt
ZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5
cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0
dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZh
bHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQ
cm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVy
dHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExE
T01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0
cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qo
KTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90bykt
Pmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0
eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
OwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0
LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVj
dC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0
eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7
Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3Ry
aW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9
CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7
CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRl
ckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0
ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHBy
b3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdl
dHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlw
ZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6
ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNp
YmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0g
dG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkp
KTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90
QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xv
dCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3du
UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7
CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3Vw
cG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAg
ICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9u
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkK
QEAgLTE5MSw3ICsxOTYsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b246CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVy
biBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25l
ZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTE5OSw3ICsyMDQs
NyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4o
Y2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OwogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1ZSBwcm90b3R5
cGUgPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAoIShwcm90b3R5
cGUuaXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3Qoc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMTAsNyArMjE1LDcgQEAgYm9vbCBKU1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZh
bHVlLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGws
IHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1l
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQ
cm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykK
QEAgLTIyMCw3ICsyMjUsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b246CiAKICAgICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CiAgICAgICAgIFByb3Bl
cnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5
cGU6OlZNSW5xdWlyeSB9OwotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICBpZiAoIUpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlzRGF0YURl
c2NyaXB0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTIz
Myw3ICsyMzgsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAK
ICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlE
ZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1
ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0
dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNvZGVkSlNW
YWx1ZSBqc1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0
YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShy
ZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyLmgiCiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3Ry
dWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCkBAIC0x
NDAsNDQgKzE0MSw0OCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6Omdl
CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBl
ID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlz
T2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0
ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUo
cmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBs
ZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
cmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYg
KGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRl
QnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1
bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRl
LCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1
ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90
by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3Rh
dGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICh0aGlz
T2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgp
KSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0o
cHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICgh
SURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
KHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8o
KSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVt
KHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAo
IUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExU
eXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0
aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBH
ZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFs
dWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJ
bXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAg
aWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJy
aWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRl
ckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0
YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQot
ICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0
YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFt
ZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAg
ICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3Bl
cnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
c3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3Bl
cnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMTk3LDcgKzIwMiw3IEBAIGJvb2wgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHUKICAgICAgICAgfQogICAgIH0KIAotICAgIHJl
dHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1
dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3Vs
ZFRocm93KQpAQCAtMjA1LDcgKzIxMCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6cHUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXIqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRo
aXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsK
ICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgp
OwogICAgIGlmICghKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSkt
PmdldFByb3BlcnR5U2xvdChzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIxNiw3
ICsyMjEsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1CiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNl
bGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwog
fQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmRlZmluZU93blByb3Bl
cnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBi
b29sIHNob3VsZFRocm93KQpAQCAtMjI2LDcgKzIzMSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllcjo6ZGUKIAogICAgIGlmICghcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkp
IHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6
OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7
CisgICAgICAgIGlmICghSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eURl
c2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxz
ZTsKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3Rh
dGUtPnZtKCkpOwpAQCAtMjM5LDcgKzI0NCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcjo6ZGUKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2Ny
aXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNl
dENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHko
b2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3Vs
ZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7
CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIq
IElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVj
U3RhdGUmIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92
ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5j
bHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVC
dWlsdGlucy5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNs
dWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3Ry
dWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTM0LDQwICsxMzUsNDgg
QEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aQogewogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlu
cyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBp
bmZvKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXBy
b3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewot
ICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmlu
Zz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQot
ICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01T
dHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1
dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qu
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQor
ICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9u
VHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1l
ZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6
WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7
CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3Zl
KG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIH0KKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xv
dCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJ
bmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7
Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAg
ICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0
YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1
dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVz
aW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9y
ID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlv
bmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAg
ICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5h
bWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExU
eXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdl
dHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RW
YWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVk
UHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElE
TERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0K
IAogdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnMqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsK
ICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBw
b3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blBy
b3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAg
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnM6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9w
ZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90
KQpAQCAtMTgzLDcgKzE5Miw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVC
dWlsdGkKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1
dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90
KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhPdmVycmlkZUJ1aWx0aW5zOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wpCkBAIC0xOTEsNyAr
MjAwLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aQogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWls
dGlucyo+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoc3RhdGUtPnZtKCkpOwogICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0
cmluZz4oKnN0YXRlLCB2YWx1ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3Bl
LCB0cnVlKTsKQEAgLTIxNiw3ICsyMjUsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92
ZXJyaWRlQnVpbHRpCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlw
dG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRD
b25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
Q29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQ
cm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAJKHJldmlzaW9uIDIxNzk0NikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcy5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmlu
ZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCkBA
IC0xNTgsNDQgKzE1OSw0OCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcg
R2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBb
XSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8
dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6
OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVl
RnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsK
LSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhh
c1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5h
bWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwot
ICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0
ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFBy
b3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4ob2JqZWN0KTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmll
ciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYg
KHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0g
PSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFs
dWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3Rh
dGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAg
IGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5
TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5u
YW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAg
ICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAg
IHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0
ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9
IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUs
ICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1
dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVy
dHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVl
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUs
IGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllczo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25N
b2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDog
dGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAg
cHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlO
YW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMo
b2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNT
dGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1
dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMjE1LDcgKzIyMCw3IEBAIGJvb2wg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3AKICAgICAgICAgfQogICAgIH0KIAot
ICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJv
b2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OnB1dEJ5SW5kZXgo
SlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2
YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIyMyw3ICsyMjgsNyBAQCBib29sIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KGNlbGwpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKIAotICAgIElk
ZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwor
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwog
ICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5h
bE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09i
amVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0
KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKSkgewpAQCAtMjM0LDcgKzIzOSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3AKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
cmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxk
VGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5k
ZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXM6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3Bl
cnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAt
MjUwLDcgKzI1NSw3IEBAIHN0YXRpYyBib29sIGlzVW5mb3JnZWFibGVQcm9wZXJ0eU5hbWUoUHIK
IAogICAgICAgICBpZiAoIWlzVW5mb3JnZWFibGVQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkg
ewogICAgICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNs
b3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgICAgICBpZiAoIUJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBz
bG90KSkgeworICAgICAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICAgICAg
aWYgKCFwcm9wZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKQogICAgICAgICAgICAg
ICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yNjQsNyArMjY5LDcgQEAgc3Rh
dGljIGJvb2wgaXNVbmZvcmdlYWJsZVByb3BlcnR5TmFtZShQcgogCiAgICAgUHJvcGVydHlEZXNj
cmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBu
ZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBC
YXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1By
b3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVm
aW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURl
c2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqIElETEF0dHJpYnV0ZTxKU1Rlc3ROYW1l
ZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
QW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmgi
CiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9N
QXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01D
b25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKQEAgLTE1OCw0MCArMTU5LDQ4IEBAIGJvb2wg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3AKIHsKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5k
T3ZlcnJpZGVCdWlsdGlucyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
Uyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9
PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRl
bSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxW
YWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0
b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklE
TFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8m
IHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1l
IEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3Vs
dCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0
cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxW
YWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxs
YWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAg
ICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3Zl
cnJpZGVCdWlsdGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdl
dHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
cmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluczo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNs
YXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAg
ICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVu
Y3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpv
cHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVy
SURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRy
YWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVO
YW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsK
KyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7
CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRP
dmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyo+KG9i
amVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZv
ciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFBy
b3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlO
YW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9k
ZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNB
bmRPdmVycmlkZUJ1aWx0aW5zOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQ
cm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3Qm
IHB1dFByb3BlcnR5U2xvdCkKQEAgLTIwNyw3ICsyMTYsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUs
IHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0
aW5zOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQg
aW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wpCkBAIC0yMTUsNyArMjI0LDcgQEAgYm9vbCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJP
V19TQ09QRShzdGF0ZS0+dm0oKSk7CiAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURM
RE9NU3RyaW5nPigqc3RhdGUsIHZhbHVlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93
U2NvcGUsIHRydWUpOwpAQCAtMjQ3LDcgKzI1Niw3IEBAIHN0YXRpYyBib29sIGlzVW5mb3JnZWFi
bGVQcm9wZXJ0eU5hbWUoUHIKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURl
c2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9y
LnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVy
dHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNo
b3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJv
dyk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyogSURMQXR0cmlidXRlPEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucz46OmNhc3Qo
RXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2Rl
LmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzAsMjIgKzEzMCwy
MiBAQCB2b2lkIEpTVGVzdE5vZGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uCiAgICAgQmFzZTo6
ZmluaXNoQ3JlYXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0
Tm9kZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiAgICAgaWYgKCFSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7Ci0gICAg
ICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW50cmllcyIpLCBzdHJsZW4oImVudHJp
ZXMiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW50cmllcyIpLCBzdHJsZW4o
ImVudHJpZXMiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2
bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAg
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVj
KCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgewotICAgICAgICBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImtleXMiKSwgc3RybGVuKCJrZXlzIikpOworICAgICAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImtleXMiKSwgc3RybGVuKCJrZXlzIikpOwogICAgICAg
ICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwog
ICAgIH0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCku
ZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJ2YWx1ZXMiKSwgc3RybGVuKCJ2YWx1ZXMiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigidmFsdWVzIiksIHN0cmxlbigidmFsdWVzIikpOwogICAgICAgICBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9y
ZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBp
ZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JF
bmFibGVkKCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJmb3JFYWNo
IiksIHN0cmxlbigiZm9yRWFjaCIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJm
b3JFYWNoIiksIHN0cmxlbigiZm9yRWFjaCIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1
cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2Jq
ZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNw
cAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE4NTQsMjQgKzE4NTQsMjQg
QEAgdm9pZCBKU1Rlc3RPYmpQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKAogICAgIHJlaWZ5U3Rh
dGljUHJvcGVydGllcyh2bSwgSlNUZXN0T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsK
ICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkgewotICAgICAgICBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKSwgc3Ry
bGVuKCJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIikpOworICAgICAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKSwgc3RybGVuKCJlbmFibGVkQXRS
dW50aW1lT3BlcmF0aW9uIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUg
c2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAg
ICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xv
YmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlmICghKHdvcmxk
Rm9yRE9NT2JqZWN0KHRoaXMpLnNvbWVXb3JsZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6
OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkpKSB7Ci0gICAgICAgIElkZW50
aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1l
RmVhdHVyZUVuYWJsZWQiKSwgc3RybGVuKCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZCIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFi
bGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpLCBzdHJsZW4oImVu
YWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIikpOwogICAgICAg
ICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwog
ICAgIH0KICAgICBpZiAoIXdvcmxkRm9yRE9NT2JqZWN0KHRoaXMpLnNvbWVXb3JsZCgpKSB7Ci0g
ICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigid29ybGRTcGVjaWZpY01ldGhvZCIp
LCBzdHJsZW4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigid29ybGRTcGVjaWZpY01ldGhvZCIpLCBzdHJsZW4oIndvcmxkU3BlY2lmaWNNZXRo
b2QiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06
OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmpl
Y3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHBy
b3BlcnR5TmFtZSk7CiAgICAgfQogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEo
UnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJs
ZWQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0
dXJlMUVuYWJsZWQoKSkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJl
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJp
YnV0ZSIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpKTsKICAgICAg
ICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsK
ICAgICB9CkBAIC0xODgwLDE0ICsxODgwLDE0IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbigKICAgICBBU1NFUlQoIWNvbnRleHQgfHwgY29udGV4dC0+aXNEb2N1bWVu
dCgpKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghY29udGV4dCB8fCAhZG93
bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgp
KSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGlu
Z09wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iKSk7CisgICAg
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIpLCBz
dHJsZW4oImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQ
cm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3Jl
Q29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGds
b2JhbE9iamVjdC5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAj
aWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIWNvbnRleHQgfHwgIWRvd25jYXN0PERv
Y3VtZW50PigqY29udGV4dCkuc2V0dGluZ3MoKS50ZXN0U2V0dGluZ0VuYWJsZWQoKSkgewotICAg
ICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1
dGUiKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIikpOworICAgICAgICBhdXRv
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSwgc3RybGVuKCJl
bmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QuZ2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KQEAgLTE5NDEsMzUgKzE5NDEs
MzcgQEAgYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdChKU09iagogewogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4ob2JqZWN0KTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25h
bEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4
ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KSkgewotICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAg
ICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETE51bGxhYmxlPElE
TERPTVN0cmluZz4+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLm51bGxhYmxlU3RyaW5n
U3BlY2lhbE1ldGhvZChpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1
dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4
LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAg
IGF1dG8gdmFsdWUgPSB0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpzdGF0ZSwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChpbmRleC52YWx1
ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2
YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAgICBp
ZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE9iaio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9u
bHksIHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oKnN0YXRlLCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKGluZGV4KSkpOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsK
KyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Cisg
ICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+Pigq
c3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5udWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2Qo
aW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQotICAg
IHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRl
LCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RPYmo6
OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwg
UHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQog
ewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4ob2JqZWN0KTsKLSAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25l
ZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3Vu
dDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMo
b2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUg
RW5jb2RlZEpTVmFsdWUgY2FsbEpTVGVzdE9iajEoRXhlY1N0YXRlKiBzdGF0ZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIxNzk0NikKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZp
Zy5oIgogI2luY2x1ZGUgIkpTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaCIKIAorI2luY2x1ZGUgIkpT
RE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKQEAgLTE0MSw0MCArMTQyLDQ4IEBAIGJvb2wgSlNUZXN0T3ZlcnJpZGVCdWls
dGluczo6Z2V0T3duUHJvcGUKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE92ZXJyaWRlQnVpbHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkg
PT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0
ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWlj
U3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETEludGVyZmFjZTxOb2RlPjo6
aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgUmVhZE9ubHksIHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0
LT5nbG9iYWxPYmplY3QoKSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIH0KLSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0g
SURMSW50ZXJmYWNlPE5vZGU+OworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0
aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBH
ZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFs
dWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJ
bXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAg
aWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJy
aWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0
ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9k
ZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG5hbWVkUHJv
cGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRP
bmx5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKKyAg
ICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
c3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0g
ICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRv
IGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRv
bWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETEludGVyZmFjZTxOb2Rl
Pjo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUs
IGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMSW50ZXJmYWNlPE5vZGU+Owor
ICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3Bl
cnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1l
bnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQo
KS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Cisg
ICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAg
ICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBH
ZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAg
ICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0
eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0
YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAg
ICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmpl
Y3QtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90
QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xv
dCk7CiB9CiAKIHZvaWQgSlNUZXN0T3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJvcGVydHlOYW1l
cyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKLSAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0
eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQog
ICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBw
cm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogdGVtcGxh
dGU8PiBpbmxpbmUgSlNUZXN0T3ZlcnJpZGVCdWlsdGlucyogSURMT3BlcmF0aW9uPEpTVGVzdE92
ZXJyaWRlQnVpbHRpbnM+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9kb20vRXhjZXB0aW9uT3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20v
RXhjZXB0aW9uT3IuaAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V4
Y2VwdGlvbk9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDkgQEAgcHVibGljOgogICAg
IGJvb2wgaGFzRXhjZXB0aW9uKCkgY29uc3Q7CiAgICAgY29uc3QgRXhjZXB0aW9uJiBleGNlcHRp
b24oKSBjb25zdDsKICAgICBFeGNlcHRpb24mJiByZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgY29u
c3QgUmV0dXJuVHlwZSYgcmV0dXJuVmFsdWUoKSBjb25zdDsKICAgICBSZXR1cm5UeXBlJiYgcmVs
ZWFzZVJldHVyblZhbHVlKCk7Ci0KKyAgICAKIHByaXZhdGU6CiAgICAgRXhwZWN0ZWQ8UmV0dXJu
VHlwZSwgRXhjZXB0aW9uPiBtX3ZhbHVlOwogfTsKQEAgLTU0LDggKzU1LDkgQEAgcHVibGljOgog
ICAgIGJvb2wgaGFzRXhjZXB0aW9uKCkgY29uc3Q7CiAgICAgY29uc3QgRXhjZXB0aW9uJiBleGNl
cHRpb24oKSBjb25zdDsKICAgICBFeGNlcHRpb24mJiByZWxlYXNlRXhjZXB0aW9uKCk7CisgICAg
Y29uc3QgUmV0dXJuUmVmZXJlbmNlVHlwZSYgcmV0dXJuVmFsdWUoKSBjb25zdDsKICAgICBSZXR1
cm5SZWZlcmVuY2VUeXBlJiByZWxlYXNlUmV0dXJuVmFsdWUoKTsKLQorICAgIAogcHJpdmF0ZToK
ICAgICBFeGNlcHRpb25PcjxSZXR1cm5SZWZlcmVuY2VUeXBlKj4gbV92YWx1ZTsKIH07CkBAIC05
NSwxNCArOTcsMTkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIGJvbwog
ICAgIHJldHVybiAhbV92YWx1ZS5oYXNWYWx1ZSgpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBS
ZXR1cm5UeXBlPiBpbmxpbmUgY29uc3QgRXhjZXB0aW9uJiBFeGNlcHRpb25PcjxSZXR1cm5UeXBl
Pjo6ZXhjZXB0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92YWx1ZS5lcnJvcigpOworfQor
CiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUgRXhjZXB0aW9uJiYgRXhjZXB0
aW9uT3I8UmV0dXJuVHlwZT46OnJlbGVhc2VFeGNlcHRpb24oKQogewogICAgIHJldHVybiBXVEZN
b3ZlKG1fdmFsdWUuZXJyb3IoKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+
IGlubGluZSBjb25zdCBFeGNlcHRpb24mIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpleGNlcHRp
b24oKSBjb25zdAordGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIGNvbnN0IFJl
dHVyblR5cGUmIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZXR1cm5WYWx1ZSgpIGNvbnN0CiB7
Ci0gICAgcmV0dXJuIG1fdmFsdWUuZXJyb3IoKTsKKyAgICByZXR1cm4gbV92YWx1ZS52YWx1ZSgp
OwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUgUmV0dXJuVHlwZSYm
IEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFsdWUoKQpAQCAtMTM1LDYg
KzE0MiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5SZWZlcmVuY2VUeXBlPiBpCiAgICAg
cmV0dXJuIG1fdmFsdWUucmVsZWFzZUV4Y2VwdGlvbigpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBSZXR1cm5SZWZlcmVuY2VUeXBlPiBpbmxpbmUgY29uc3QgUmV0dXJuUmVmZXJlbmNlVHlwZSYg
RXhjZXB0aW9uT3I8UmV0dXJuUmVmZXJlbmNlVHlwZSY+OjpyZXR1cm5WYWx1ZSgpIGNvbnN0Cit7
CisgICAgcmV0dXJuICptX3ZhbHVlLnJldHVyblZhbHVlKCk7Cit9CisKIHRlbXBsYXRlPHR5cGVu
YW1lIFJldHVyblJlZmVyZW5jZVR5cGU+IGlubGluZSBSZXR1cm5SZWZlcmVuY2VUeXBlJiBFeGNl
cHRpb25PcjxSZXR1cm5SZWZlcmVuY2VUeXBlJj46OnJlbGVhc2VSZXR1cm5WYWx1ZSgpCiB7CiAg
ICAgcmV0dXJuICptX3ZhbHVlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwpJbmRleDogU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2h0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNv
cmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMSArNjUsMTMg
QEAKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNs
dWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgogI2lu
Y2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9y
eS5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxG
cmFtZVNldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRl
ICJIVE1MSUZyYW1lRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUg
Ikhhc2hUb29scy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTE3NCwxMiAr
MTc2LDE5IEBAIHZvaWQgSFRNTERvY3VtZW50OjpzZXRWbGlua0NvbG9yKGNvbnN0IFMKICAgICAg
ICAgYm9keUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odmxpbmtB
dHRyLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgSFRNTERvY3VtZW50OjpjbGVhcigpCit7CisgICAgLy8g
UGVyIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29ic29sZXRlLmh0bWwj
ZG9tLWRvY3VtZW50LWNsZWFyLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCit9CisKIHZvaWQg
SFRNTERvY3VtZW50OjpjYXB0dXJlRXZlbnRzKCkKIHsKKyAgICAvLyBQZXIgaHR0cHM6Ly9odG1s
LnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xldGUuaHRtbCNkb20tZG9jdW1lbnQtY2Fw
dHVyZWV2ZW50cywgdGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLgogfQogCiB2b2lkIEhUTUxEb2N1
bWVudDo6cmVsZWFzZUV2ZW50cygpCiB7CisgICAgLy8gUGVyIGh0dHBzOi8vaHRtbC5zcGVjLndo
YXR3Zy5vcmcvbXVsdGlwYWdlL29ic29sZXRlLmh0bWwjZG9tLWRvY3VtZW50LXJlbGVhc2VldmVu
dHMsIHRoaXMgbWV0aG9kIGRvZXMgbm90aGluZy4KIH0KIAogUmVmPERvY3VtZW50UGFyc2VyPiBI
VE1MRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCkBAIC0xODcsMTAgKzE5Niw2IEBAIFJlZjxEb2N1
bWVudFBhcnNlcj4gSFRNTERvY3VtZW50OjpjcmVhdGUKICAgICByZXR1cm4gSFRNTERvY3VtZW50
UGFyc2VyOjpjcmVhdGUoKnRoaXMpOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gbm90
IHBhcnQgb2YgdGhlIERPTQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQogc3RhdGljIHZvaWQgYWRk
TG9jYWxOYW1lVG9TZXQoSGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4qIHNldCwgY29uc3QgUXVh
bGlmaWVkTmFtZSYgcU5hbWUpCiB7CiAgICAgc2V0LT5hZGQocU5hbWUubG9jYWxOYW1lKCkuaW1w
bCgpKTsKQEAgLTI1MSw2ICsyNTYsNDcgQEAgc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1w
bCo+KiBjcmVhdAogICAgIHJldHVybiBhdHRyU2V0OwogfQogCisvLyBodHRwczovL2h0bWwuc3Bl
Yy53aGF0d2cub3JnL211bHRpcGFnZS9kb20uaHRtbCNkb20tZG9jdW1lbnQtbmFtZWRpdGVtCitz
dGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPEZyYW1lPiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQ
dHI8SFRNTENvbGxlY3Rpb24+Pj4gSFRNTERvY3VtZW50OjpuYW1lZEl0ZW0oY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lLmlzTnVsbCgpIHx8ICFoYXNEb2N1bWVudE5h
bWVkSXRlbSgqbmFtZS5pbXBsKCkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgaWYgKFVOTElLRUxZKGRvY3VtZW50TmFtZWRJdGVtQ29udGFpbnNNdWx0aXBsZUVsZW1lbnRz
KCpuYW1lLmltcGwoKSkpKSB7CisgICAgICAgIGF1dG8gY29sbGVjdGlvbiA9IGRvY3VtZW50TmFt
ZWRJdGVtcyhuYW1lKTsKKyAgICAgICAgQVNTRVJUKGNvbGxlY3Rpb24tPmxlbmd0aCgpID4gMSk7
CisgICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxFbGVtZW50Piwg
UmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IHsgV1RGTW92
ZShjb2xsZWN0aW9uKSB9IH07CisgICAgfQorCisgICAgYXV0byYgZWxlbWVudCA9ICpkb2N1bWVu
dE5hbWVkSXRlbSgqbmFtZS5pbXBsKCkpOworICAgIGlmIChVTkxJS0VMWShpczxIVE1MSUZyYW1l
RWxlbWVudD4oZWxlbWVudCkpKSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0
PEhUTUxJRnJhbWVFbGVtZW50PihlbGVtZW50KS5jb250ZW50RnJhbWUoKSkKKyAgICAgICAgICAg
IHJldHVybiBWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8RnJhbWU+IHsgZnJhbWUgfSB9OworICAgIH0KKworICAg
IHJldHVybiBWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhU
TUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8RWxlbWVudD4geyAmZWxlbWVudCB9IH07Cit9CisKK1Zl
Y3RvcjxBdG9taWNTdHJpbmc+IEhUTUxEb2N1bWVudDo6c3VwcG9ydGVkUHJvcGVydHlOYW1lcygp
IGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uv
ZG9tLmh0bWwjZG9tLWRvY3VtZW50LW5hbWVkSXRlbS13aGljaAorICAgIC8vCisgICAgLy8gLi4u
IFRoZSBzdXBwb3J0ZWQgcHJvcGVydHkgbmFtZXMgb2YgYSBEb2N1bWVudCBvYmplY3QgZG9jdW1l
bnQgYXQgYW55IG1vbWVudCBjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcsIGluCisgICAgLy8gdHJl
ZSBvcmRlciBhY2NvcmRpbmcgdG8gdGhlIGVsZW1lbnQgdGhhdCBjb250cmlidXRlZCB0aGVtLCBp
Z25vcmluZyBsYXRlciBkdXBsaWNhdGVzLCBhbmQgd2l0aCB2YWx1ZXMgZnJvbQorICAgIC8vIGlk
IGF0dHJpYnV0ZXMgY29taW5nIGJlZm9yZSB2YWx1ZXMgZnJvbSBuYW1lIGF0dHJpYnV0ZXMgd2hl
biB0aGUgc2FtZSBlbGVtZW50IGNvbnRyaWJ1dGVzIGJvdGg6CisgICAgLy8KKyAgICAvLyAtIHRo
ZSB2YWx1ZSBvZiB0aGUgbmFtZSBjb250ZW50IGF0dHJpYnV0ZSBmb3IgYWxsIGFwcGxldCwgZXhw
b3NlZCBlbWJlZCwgZm9ybSwgaWZyYW1lLCBpbWcsIGFuZCBleHBvc2VkCisgICAgLy8gICBvYmpl
Y3QgZWxlbWVudHMgdGhhdCBoYXZlIGEgbm9uLWVtcHR5IG5hbWUgY29udGVudCBhdHRyaWJ1dGUg
YW5kIGFyZSBpbiBhIGRvY3VtZW50IHRyZWUgd2l0aCBkb2N1bWVudAorICAgIC8vICAgYXMgdGhl
aXIgcm9vdDsKKyAgICAvLyAtIHRoZSB2YWx1ZSBvZiB0aGUgaWQgY29udGVudCBhdHRyaWJ1dGUg
Zm9yIGFsbCBhcHBsZXQgYW5kIGV4cG9zZWQgb2JqZWN0IGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG5v
bi1lbXB0eQorICAgIC8vICAgaWQgY29udGVudCBhdHRyaWJ1dGUgYW5kIGFyZSBpbiBhIGRvY3Vt
ZW50IHRyZWUgd2l0aCBkb2N1bWVudCBhcyB0aGVpciByb290OyBhbmQKKyAgICAvLyAtIHRoZSB2
YWx1ZSBvZiB0aGUgaWQgY29udGVudCBhdHRyaWJ1dGUgZm9yIGFsbCBpbWcgZWxlbWVudHMgdGhh
dCBoYXZlIGJvdGggYSBub24tZW1wdHkgaWQgY29udGVudCBhdHRyaWJ1dGUKKyAgICAvLyAgIGFu
ZCBhIG5vbi1lbXB0eSBuYW1lIGNvbnRlbnQgYXR0cmlidXRlLCBhbmQgYXJlIGluIGEgZG9jdW1l
bnQgdHJlZSB3aXRoIGRvY3VtZW50IGFzIHRoZWlyIHJvb3QuCisKKyAgICAvLyBGSVhNRTogSW1w
bGVtZW50LgorICAgIHJldHVybiB7IH07Cit9CisKIHZvaWQgSFRNTERvY3VtZW50OjphZGREb2N1
bWVudE5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmdJbXBsJiBuYW1lLCBFbGVtZW50JiBpdGVt
KQogewogICAgIG1fZG9jdW1lbnROYW1lZEl0ZW0uYWRkKG5hbWUsIGl0ZW0sICp0aGlzKTsKQEAg
LTI3OSwxMyArMzI1LDYgQEAgYm9vbCBIVE1MRG9jdW1lbnQ6OmlzQ2FzZVNlbnNpdGl2ZUF0dHJp
YgogICAgIHJldHVybiAhaXNQb3NzaWJsZUhUTUxBdHRyIHx8ICFodG1sQ2FzZUluc2Vuc2l0aXZl
QXR0cmlidXRlc1NldC0+Y29udGFpbnMoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkp
OwogfQogCi12b2lkIEhUTUxEb2N1bWVudDo6Y2xlYXIoKQotewotICAgIC8vIEZJWE1FOiBUaGlz
IGRvZXMgbm90aGluZywgYW5kIHRoYXQgc2VlbXMgdW5saWtlbHkgdG8gYmUgY29ycmVjdC4KLSAg
ICAvLyBXZSd2ZSBsb25nIGhhZCBhIGNvbW1lbnQgc2F5aW5nIHRoYXQgSUUgZG9lc24ndCBzdXBw
b3J0IHRoaXMuCi0gICAgLy8gQnV0IEkgZG8gc2VlIGl0IGluIHRoZSBkb2N1bWVudGF0aW9uIGZv
ciBNb3ppbGxhLgotfQotCiBib29sIEhUTUxEb2N1bWVudDo6aXNGcmFtZVNldCgpIGNvbnN0CiB7
CiAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTERvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuaAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTEgKzUzLDEzIEBAIHB1YmxpYzoKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldExpbmtDb2xvcihjb25zdCBTdHJpbmcmKTsKICAgICBXRUJD
T1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIHZsaW5rQ29sb3IoKSBjb25zdDsKICAgICBX
RUJDT1JFX0VYUE9SVCB2b2lkIHNldFZsaW5rQ29sb3IoY29uc3QgU3RyaW5nJik7Ci0KKyAgICAK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7Ci0KICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIGNhcHR1cmVFdmVudHMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VFdmVu
dHMoKTsKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPEZyYW1lPiwgUmVm
UHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gbmFtZWRJdGVtKGNvbnN0IEF0
b21pY1N0cmluZyYpOworICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IHN1cHBvcnRlZFByb3BlcnR5
TmFtZXMoKSBjb25zdDsKIAogICAgIEVsZW1lbnQqIGRvY3VtZW50TmFtZWRJdGVtKGNvbnN0IEF0
b21pY1N0cmluZ0ltcGwmIG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnROYW1lZEl0ZW0u
Z2V0RWxlbWVudEJ5RG9jdW1lbnROYW1lZEl0ZW0obmFtZSwgKnRoaXMpOyB9CiAgICAgYm9vbCBo
YXNEb2N1bWVudE5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmdJbXBsJiBuYW1lKSBjb25zdCB7
IHJldHVybiBtX2RvY3VtZW50TmFtZWRJdGVtLmNvbnRhaW5zKG5hbWUpOyB9CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDIxICsx
OSwyMCBAQAogICovCiAKIFsKLSAgICBDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QsCi0gICAgQ3Vz
dG9tTmFtZWRHZXR0ZXIsCiAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICBOZXdJbXB1cmVQcm9w
ZXJ0eUZpcmVzV2F0Y2hwb2ludHMsCiAgICAgT3ZlcnJpZGVCdWlsdGlucywKIF0gaW50ZXJmYWNl
IEhUTUxEb2N1bWVudCA6IERvY3VtZW50IHsKLSAgICBbQ0VSZWFjdGlvbnMsIEN1c3RvbSwgRm9y
d2FyZERlY2xhcmVJbkhlYWRlcl0gdm9pZCBvcGVuKCk7CisgICAgW0NFUmVhY3Rpb25zLCBDdXN0
b21dIHZvaWQgb3BlbigpOwogICAgIHZvaWQgY2xvc2UoKTsKICAgICBbQ0VSZWFjdGlvbnMsIEN1
c3RvbV0gdm9pZCB3cml0ZShvcHRpb25hbCBET01TdHJpbmcgdGV4dCk7CiAgICAgW0NFUmVhY3Rp
b25zLCBDdXN0b21dIHZvaWQgd3JpdGVsbihvcHRpb25hbCBET01TdHJpbmcgdGV4dCk7Ci0KKyAg
ICAKKyAgICBnZXR0ZXIgKERPTVdpbmRvd1NoZWxsIG9yIEVsZW1lbnQgb3IgSFRNTENvbGxlY3Rp
b24pIChET01TdHJpbmcgbmFtZSk7CisgICAgCiAgICAgW0N1c3RvbSwgUmVwbGFjZWFibGVdIHJl
YWRvbmx5IGF0dHJpYnV0ZSBIVE1MQWxsQ29sbGVjdGlvbiBhbGw7CiAKICAgICB2b2lkIGNsZWFy
KCk7Ci0KICAgICB2b2lkIGNhcHR1cmVFdmVudHMoKTsKICAgICB2b2lkIHJlbGVhc2VFdmVudHMo
KTsKIApJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3Bw
CShyZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVs
ZW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiRnJh
bWVMb2FkZXIuaCIKICNpbmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhU
TUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAi
SFRNTEZyYW1lRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkxl
bmd0aC5oIgogI2luY2x1ZGUgIk1vdXNlRXZlbnQuaCIKQEAgLTIyNiw0ICsyMjgsMjQgQEAgdm9p
ZCBIVE1MRnJhbWVTZXRFbGVtZW50OjpyZW1vdmVkRnJvbShDbwogICAgIH0KIH0KIAorRnJhbWUq
IEhUTUxGcmFtZVNldEVsZW1lbnQ6Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUp
Cit7CisgICAgYXV0byogZnJhbWVFbGVtZW50ID0gY2hpbGRyZW4oKS0+bmFtZWRJdGVtKG5hbWUp
OworICAgIGlmICghaXM8SFRNTEZyYW1lRWxlbWVudD4oZnJhbWVFbGVtZW50KSkKKyAgICAgICAg
cmV0dXJuIG51bGxwdHI7CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxIVE1M
RnJhbWVFbGVtZW50PigqZnJhbWVFbGVtZW50KS5jb250ZW50RG9jdW1lbnQoKSkgeworICAgICAg
ICBpZiAoYXV0byogZnJhbWUgPSBkb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVy
biBmcmFtZTsKKyAgICB9CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1ZlY3RvcjxBdG9taWNT
dHJpbmc+IEhUTUxGcmFtZVNldEVsZW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25z
dAoreworICAgIC8vIE5PVEU6IExlZnQgZW1wdHkgYXMgbm8gc3BlY2lmaWNhdGlvbiBkZWZpbmVz
IHRoaXMgbmFtZWQgZ2V0dGVyIGFuZCB3ZQorICAgIC8vICAgICAgIGhhdmUgbm90IGhpc3Rvcmlj
YWxseSBleHBvc2VkIHRoZXNlIG5hbWVkIGl0ZW1zIGZvciBlbnVtZXJhdGlvbi4KKyAgICByZXR1
cm4geyB9OworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkocmV2aXNpb24gMjE3OTQ2KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1
LDYgKzQ1LDkgQEAgcHVibGljOgogICAgIGNvbnN0IExlbmd0aCogY29sTGVuZ3RocygpIGNvbnN0
IHsgcmV0dXJuIG1fY29sTGVuZ3Rocy5nZXQoKTsgfQogCiAgICAgc3RhdGljIEhUTUxGcmFtZVNl
dEVsZW1lbnQqIGZpbmRDb250YWluaW5nKEVsZW1lbnQqIGRlc2NlbmRhbnQpOworICAgIAorICAg
IFZlY3RvcjxBdG9taWNTdHJpbmc+IHN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKKyAg
ICBGcmFtZSogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBwcml2YXRlOgogICAg
IEhUTUxGcmFtZVNldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJKHJldmlz
aW9uIDIxNzk0NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTE4LDkgKzE4LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgogICovCiAKLVsKLSAgICBDdXN0b21OYW1lZEdldHRlcgotXSBpbnRlcmZhY2Ug
SFRNTEZyYW1lU2V0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKK2ludGVyZmFjZSBIVE1MRnJhbWVT
ZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3Ry
aW5nIGNvbHM7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcm93czsKIApAQCAt
MzcsNiArMzUsMTAgQEAKICAgICBbTm90RW51bWVyYWJsZSwgV2luZG93RXZlbnRIYW5kbGVyLCBD
b25kaXRpb25hbD1XSUxMX1JFVkVBTF9FREdFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxl
ciBvbndlYmtpdHdpbGxyZXZlYWxsZWZ0OwogICAgIFtOb3RFbnVtZXJhYmxlLCBXaW5kb3dFdmVu
dEhhbmRsZXIsIENvbmRpdGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBhdHRyaWJ1dGUg
RXZlbnRIYW5kbGVyIG9ud2Via2l0d2lsbHJldmVhbHJpZ2h0OwogICAgIFtOb3RFbnVtZXJhYmxl
LCBXaW5kb3dFdmVudEhhbmRsZXIsIENvbmRpdGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRT
XSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0d2lsbHJldmVhbHRvcDsKKyAgICAKKyAg
ICAvLyBOb24tc3RhbmRhcmQgbmFtZWQgZ2V0dGVyCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90
IGluIHRoZSBzdGFuZGFyZCwgY2FuIHdlIHJlbW92ZSB0aGlzPworICAgIGdldHRlciBET01XaW5k
b3dTaGVsbCAoRE9NU3RyaW5nIG5hbWUpOwogfTsKIAogSFRNTEZyYW1lU2V0RWxlbWVudCBpbXBs
ZW1lbnRzIFdpbmRvd0V2ZW50SGFuZGxlcnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RP
TVdpbmRvdy5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cu
aWRsCShyZXZpc2lvbiAyMTc5NDYpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTMyLDcgKzMyLDYgQEAgdHlwZWRlZiBVU1ZTdHJpbmcgQ1NT
T01TdHJpbmc7CiAgICAgQ3VzdG9tRGVsZXRlUHJvcGVydHksCiAgICAgQ3VzdG9tRW51bWVyYXRl
UHJvcGVydHksCiAgICAgQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90LAotICAgIEN1c3RvbUdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgsCiAgICAgQ3VzdG9tR2V0UHJvdG90eXBlLAogICAgIEN1c3Rv
bVByZXZlbnRFeHRlbnNpb25zLAogICAgIEN1c3RvbVByb3h5VG9KU09iamVjdCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312578</attachid>
            <date>2017-06-10 13:31:16 -0700</date>
            <delta_ts>2017-06-10 14:27:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173229-20170610133142.patch</filename>
            <type>text/plain</type>
            <size>228375</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwNiBAQAorMjAxNy0wNi0xMCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlLWltcGxlbWVudCBH
ZXRPd25Qcm9wZXJ0eVNsb3RbQnlJbmRleF0gZ2VuZXJhdGlvbiB0byBtb3JlIGNsb3NlbHkgZm9s
bG93IFdlYklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczMjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoK
KyAgICAgICAgUmVtb3ZlIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgd2hpY2ggaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAg
ICAgIEFkZCBuZXcgSURMIHR5cGUsIElETERPTVdpbmRvd1NoZWxsLCB0byByZXByZXNlbnQgdGhl
IG1hcHBpbmcgZnJvbSBGcmFtZSAtPiBKU0RPTVdpbmRvd1NoZWxsLAorICAgICAgICBzaW5jZSB0
aGVyZSBpcyBubyBJREwgZmlsZSBmb3IgRE9NV2luZG93U2hlbGwuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNW
aXNpYmxlTmFtZWRQcm9wZXJ0eSk6CisgICAgICAgIEFkZCBPdmVycmlkZUJ1aWx0aW5zIGVudW0g
YXMgcmVxdWVzdGVkIGJ5IGEgcHJldmlvdXMgcmV2aWV3IChhbmQgSSBmb3Jnb3QgYWRkcmVzcykg
YW5kIGFkb3B0IGl0CisgICAgICAgIGluIGlzVmlzaWJsZU5hbWVkUHJvcGVydHksIHN3aXRjaCB0
byBWTUlucXVpcnkgYXMgd2UgdXNlIGVsc2V3aGVyZSBhbmQgYWRkIGEgbWlzc2luZyBGSVhNRS4K
KworICAgICAgICAoV2ViQ29yZTo6YWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHkpOgorICAgICAg
ICBBZGQgdmFyaWF0aW9uIG9mIGlzVmlzaWJsZU5hbWVkUHJvcGVydHkgdGhhdCB0YWtlcyBhIGZ1
bmN0b3IgYW5kIHJldHVybnMgZWl0aGVyIHRoZSB2YWx1ZSB0aGUKKyAgICAgICAgZnVuY3RvciBy
ZXR1cm5zLCBvciBzdGQ6Om51bGxvcHQuIFRoaXMgYWxsb3dzIGdldE93blByb3BlcnR5U2xvdCB0
byBhdm9pZCBkb2luZyB0d28gbG9va3VwcyBmb3IKKyAgICAgICAgcHJvcGVydHksIG9uY2UgaW4g
dGhlIG5hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGhtIGFuZCBhZ2FpbiB3aGVuIGl0
IG5lZWRzIHRoZSB2YWx1ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICBTdGFuZGFyZGl6ZSB0b0pTIGZ1bmN0aW9u
cyB0byBtYXRjaCBnZW5lcmF0ZWQgY29kZSAoaGF2ZSBvbmUgdGhhdCB0YWtlcyBhIHJlZmVyZW5j
ZSwgYW5kIGRvZXMgdGhlCisgICAgICAgIGNhc3QsIGFuZCBvbmUgdGhhdCB0YWtlcyBhIHBvaW50
ZXIsIGRvZXMgYSBudWxsIGNoZWNrIGFuZCBjYWxscyB0aGUgb25lIHRoYXQgdGFrZXMgYSByZWZl
cmVuY2UpLgorICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxEb2N1bWVudDo6Z2V0T3duUHJvcGVy
dHlTbG90KTogRGVsZXRlZC4KKyAgICAgICAgUmVtb3ZlIG5lZWQgZm9yIGEgY3VzdG9tIGdldE93
blByb3BlcnR5U2xvdC4KKyAgICAgICAgLSBUaGUgY3VzdG9tIGNvZGUgZm9yIHRoZSAnb3Blbicg
cHJvcGVydHkgaXMgbm8gbG9uZ2VyIG5lZWRlZCwgYWNjb3JkaW5nIHRvIEdlb2ZmIEdhcmVuIChv
ZgorICAgICAgICAgIEdhcmVu4oCZcyBGaXJzdCBMYXcgb2YgRE9NIEJpbmRpbmdzIGZhbWUpOiAK
KyAgICAgICAgICAKKyAgICAgICAgICAiW2l0XSB3YXMgcHVyZWx5IGEgd29ya2Fyb3VuZCBmb3Ig
YSBwcm9ibGVtIHdlIGRvbuKAmXQgaGF2ZSBhbnltb3JlIChob3N0IGZ1bmN0aW9ucyBsYWNraW5n
IGEgCisgICAgICAgICAgZGlyZWN0IHBvaW50ZXIgdG8gdGhlaXIgZ2xvYmFsIG9iamVjdHMpIgor
ICAgICAgICAKKyAgICAgICAgLSBUaGUgbmFtZWQgZ2V0dGVyIGlzIG5vdyBnZW5lcmF0ZWQuCisg
ICAgICAgIChXZWJDb3JlOjpKU0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcik6IERlbGV0ZWQuCisg
ICAgICAgIFRoaXMgaXMgbm93IGdlbmVyYXRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pT
SFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHA6IFJlbW92ZWQuCisgICAgICAgIE5vdyBnZW5l
cmF0ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG06Cisg
ICAgICAgIChJc0J1aWx0aW5UeXBlKToKKyAgICAgICAgQWRkZWQgRE9NV2luZG93U2hlbGwgYXMg
YSBidWlsdGluIHR5cGUuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlKToKKyAgICAgICAgQWRk
IHRoZSBuZWNlc3NhcnkgaW5jbHVkZXMgd2hlbiB1c2luZyBET01XaW5kb3dTaGVsbC4KKworICAg
ICAgICAoR2VuZXJhdGVJbmRleGVkR2V0dGVyKToKKyAgICAgICAgQWRkIGRlc2NyaXB0aW9uIGZy
b20gdGhlIHNwZWMgYW5kIGNoYW5nZSB0byByZXR1cm4gdGhlIGNvbXB1dGVkIHZhbHVlcyByYXRo
ZXIgdGhhbgorICAgICAgICBwcmludCB0aGVtIHRvIHRoZSBvdXRwdXQgYXJyYXkuIFRoaXMgd2ls
bCBiZSB1c2VmdWwgZm9yIHNvbWUgY2xpZW50cyBnb2luZyBmb3J3YXJkLAorICAgICAgICB3aG8g
b25seSB3YW50IHRoZSBhdHRyaWJ1dGVzLgorCisgICAgICAgIChHZW5lcmF0ZU5hbWVkR2V0dGVy
KToKKyAgICAgICAgQWRkIGRlc2NyaXB0aW9uIGZyb20gdGhlIHNwZWMgYW5kIGNoYW5nZSB0byBy
ZXR1cm4gdGhlIGNvbXB1dGVkIHZhbHVlcyByYXRoZXIgdGhhbgorICAgICAgICBwcmludCB0aGVt
IHRvIHRoZSBvdXRwdXQgYXJyYXkuIFRoaXMgd2lsbCBiZSB1c2VmdWwgZm9yIHNvbWUgY2xpZW50
cyBnb2luZyBmb3J3YXJkLAorICAgICAgICB3aG8gb25seSB3YW50IHRoZSBhdHRyaWJ1dGVzLiBB
bHNvIGdyZWF0bHkgc2ltcGxpZmllcyB0aGluZ3MgYXMgW0N1c3RvbU5hbWVkR2V0dGVyXXMKKyAg
ICAgICAgYXJlIG5vIGxvbmdlciBuZWVkZWQvc3VwcG9ydGVkIGFuZCB0aGUgZXhjZXB0aW9uIC8g
bnVsbCB2YWx1ZSBjaGVja3MgYXJlIHBlcmZvcm1lZAorICAgICAgICBlbHNld2hlcmUuCisKKyAg
ICAgICAgKEdlbmVyYXRlTmFtZWRHZXR0ZXJMYW1iZGEpOgorICAgICAgICBUaGlzIGdlbmVyYXRl
cyBhIGxhbWJkYSBmdW5jdG9yIGZvciB1c2UgaW4gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHko
Li4uKS4gSXQKKyAgICAgICAgaGFuZGxlcyBjYWxsaW5nIHRoZSBuYW1lZCBnZXR0ZXIgaW1wbGVt
ZW50YXRpb24sIGFuZCB0cmFuc2Zvcm1pbmcgdGhlIHJlc3VsdCBpbnRvCisgICAgICAgIGFuIG9u
ZSB0aGF0IGNhbiBiZSByZWFzb25lZCBhYm91dCBieSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0
eSwgc3BlY2lmaWNhbGx5LAorICAgICAgICBjb252ZXJ0aW5nIGl0IGZyb20gdXNpbmcgSURMJ3Mg
bm90aW9uIG9mIG51bGxhYmlsaXR5IHRvIHN0ZDo6b3B0aW9uYWwuIAorCisgICAgICAgIChHZW5l
cmF0ZUdldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgpOgorICAgICAgICBBZGQgc3BlYyBhbm5vdGF0aW9ucyBhbmQgdXNlIGhlbHBl
ciBmdW5jdGlvbnMuIAorCisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5TmFtZXMpOgor
ICAgICAgICBBZGQgRklYTUUgYWJvdXQgc3VwcG9ydGluZyBub24tY29udGlndW91cyBpbmRpY2Vz
IChzaG91bGQgdGhhdCBldmVyIGNvbWUgdXApCisgICAgICAgIGFuZCB1c2UgSlNPYmplY3QgZXhw
bGljaXRseSwgcmF0aGVyIHRoYW4gYmFzZSwgdG8gZ2V0IHRoZSBkZWZhdWx0IGdldE93blByb3Bl
cnR5TmFtZXMKKyAgICAgICAgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRlUHV0
KToKKyAgICAgICAgVXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIGJhc2UsIHRv
IGdldCB0aGUgZGVmYXVsdCBwdXQgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRl
UHV0QnlJbmRleCk6CisgICAgICAgIFVzZSBKU09iamVjdCBleHBsaWNpdGx5LCByYXRoZXIgdGhh
biBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgcHV0QnlJbmRleCBpbXBsZW1lbnRhdGlvbi4KKwor
ICAgICAgICAoR2VuZXJhdGVEZWZpbmVPd25Qcm9wZXJ0eSk6CisgICAgICAgIFVzZSBKU09iamVj
dCBleHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgZ2V0T3du
UHJvcGVydHlTbG90L2RlZmluZU93blByb3BlcnR5CisgICAgICAgIGltcGxlbWVudGF0aW9ucy4K
KworICAgICAgICAoR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1vbik6CisgICAgICAgIEFkb3B0
IG5ldyBPdmVycmlkZUJ1aWx0aW5zIGVudW0uCisKKyAgICAgICAgKEdlbmVyYXRlRGVsZXRlUHJv
cGVydHlEZWZpbml0aW9uKToKKyAgICAgICAgVXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhl
ciB0aGFuIGJhc2UsIHRvIGdldCB0aGUgZGVmYXVsdCBkZWxldGVQcm9wZXJ0eSBpbXBsZW1lbnRh
dGlvbi4KKworICAgICAgICAoR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUJ5SW5kZXhEZWZpbml0aW9u
KToKKyAgICAgICAgVXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIGJhc2UsIHRv
IGdldCB0aGUgZGVmYXVsdCBkZWxldGVQcm9wZXJ0eUJ5SW5kZXggaW1wbGVtZW50YXRpb24uCisK
KyAgICAgICAgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KToKKyAgICAgICAg
UmVtb3ZlIFtDdXN0b21OYW1lZEdldHRlcl0gdXNlLgorIAorICAgICAgICAoR2VuZXJhdGVIZWFk
ZXIpOgorICAgICAgICBSZW1vdmUgW0N1c3RvbU5hbWVkR2V0dGVyXSB1c2UgYW5kIG1lcmdlIElu
c3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleCBpbnRvCisgICAgICAgIElu
c3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IGFzIHRoZSBmb3JtZXIgb25seSBleGlz
dGVkIGZvciB0aGUgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXhdCisgICAgICAgIGV4
dGVuZGVkIGF0dHJpYnV0ZSwgd2hpY2ggYXMgYmVlbiByZW1vdmVkLiBbQ3VzdG9tR2V0T3duUHJv
cGVydHlTbG90XSBub3cgcmVxdWlyZXMgdGhlIHVzZXIKKyAgICAgICAgdG8gaW1wbGVtZW50IGJv
dGggaG9va3MuCisgICAgICAgIAorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlvbik6Cisg
ICAgICAgIFJlbmFtZSBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkvR2VuZXJhdGVHZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4Qm9keSB0byByZW1vdmUgdGhlIGJvZHksCisgICAgICAgIGFu
ZCBwcmVkaWNhdGUgdGhlaXIgZ2VuZXJhdGlvbiBwdXJlbHkgb24gSW5zdGFuY2VPdmVycmlkZXNH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4IGFzIG5vdGVkIGZvcgorICAgICAgICB0aGUgcmVhc29u
cyBhYm92ZS4KKworICAgICAgICAoR2V0QmFzZUlETFR5cGUpOgorICAgICAgICBBZGQgbWFwcGlu
ZyBvZiBET01XaW5kb3dTaGVsbCAtPiBJRExET01XaW5kb3dTaGVsbC4KKworICAgICAgICAoTmF0
aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUpOgorICAgICAgICBSZXF1aXJlIEV4ZWNT
dGF0ZSBmb3IgRE9NV2luZG93U2hlbGwgY29udmVyc2lvbi4KKworICAgICAgICAoTmF0aXZlVG9K
U1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsT2JqZWN0KToKKyAgICAgICAgUmVxdWlyZSBET01H
bG9iYWxPYmplY3QgZm9yIERPTVdpbmRvd1NoZWxsIGNvbnZlcnNpb24uIChXaGlsZSB0aGlzIGlz
IG5vdCBzdHJpY3RseSBuZWNlc3NhcnksCisgICAgICAgIHNpbmNlIHRoZSBnbG9iYWwgb2JqZWN0
IHdpbGwgYmUgaWdub3JlLCBzaW5jZSB3ZSBhcmUgbW9kZWxpbmcgRE9NV2luZG93U2hlbGwgYXMg
aW50ZXJmYWNlLCBpdAorICAgICAgICBpcyBoZWxwZnVsIGZvciB0aGlzIHRvIGJlIGNvbnNpc3Rl
bnQgcmlnaHQgbm93LiBXZSBjYW4gcmUtdmlzaXQgdGhpcyBsYXRlciBzaG91bGQgaXQgYSBwcm9i
bGVtKS4KKworICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KTogRGVsZXRl
ZC4KKyAgICAgICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keUJ5SW5kZXgpOiBEZWxl
dGVkLgorICAgICAgICAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KTogRGVsZXRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5q
c29uOgorICAgICAgICBSZW1vdmUgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXhdIGFu
ZCBbQ3VzdG9tTmFtZWRHZXR0ZXJdLgorCisgICAgICAgICogZG9tL0V4Y2VwdGlvbk9yLmg6Cisg
ICAgICAgIChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZXR1cm5UeXBlPjo6cmV0dXJuVmFsdWUpOgor
ICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byBwZWVrIGF0IHRoZSByZXR1cm4gdmFsdWUKKworICAg
ICAgICAqIGh0bWwvSFRNTERvY3VtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpjbGVhcik6CisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmNhcHR1cmVFdmVudHMpOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTERvY3VtZW50OjpyZWxlYXNlRXZlbnRzKToKKyAgICAgICAgTW92ZSBjbGVhciB1cCB0byBi
ZSB3aXRoIHRoZSBvdGhlciBvYnNvbGV0ZSBuby1vcCBmdW5jdGlvbnMuIEFkZCBzcGVjIGFubm90
YXRpb25zCisgICAgICAgIHRvIGNsZWFyIHVwIGFueSBjb25mdXNpb24gYWJvdXQgd2h5IHRoZXkg
YXJlIG5vLW9wcy4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpuYW1lZEl0ZW0p
OgorICAgICAgICBBZGQgaW1wbGVtZW50YXRpb24gb2YgbmFtZWRJdGVtIGJhc2VkIG9uIHRoZSBv
bmUgdGhhdCB3YXMgaW4gSlNET01IVE1MRG9jdW1lbnRDdXN0b20uY3BwLgorCisgICAgICAgIChX
ZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICBB
ZGQgc3R1YiB2ZXJzaW9uIG9mIHN1cHBvcnRlZFByb3BlcnR5TmFtZXMgd2l0aCB0aGUgYWxnb3Jp
dGhtIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorICAgICAgICBJIGRvbid0IHdhbnQgdG8gY2hhbmdl
IGJlaGF2aW9yIGluIHRoaXMgcGF0Y2gsIGFuZCBzaW5jZSB3ZSBoYXZlIG5vdCBlbnVtZXJhdGVk
IHRoZQorICAgICAgICBwcm9wZXJ0aWVzIG9mIGRvY3VtZW50IGluIHRoZSBwYXN0LCBJIGxlZnQg
dGhpcyB1bmltcGxlbWVudGVkIGZvciBub3cuCisKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1bWVu
dC5pZGw6CisgICAgICAgIEFkZCBuYW1lZCBnZXR0ZXIsIHJlbW92ZSBbRm9yd2FyZERlY2xhcmVJ
bkhlYWRlcl0gZnJvbSBvcGVuLCBhbmQgcmVtb3ZlIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3Rd
CisgICAgICAgIGFuZCBbQ3VzdG9tTmFtZWRHZXR0ZXJdIHdoaWNoIGFyZSBubyBsb25nZXIgbmVl
ZGVkLgorCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50Lmg6CisgICAgICAgICog
aHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFt
ZVNldEVsZW1lbnQ6Om5hbWVkSXRlbSk6CisgICAgICAgIEFkZCBuYW1lZCBnZXR0ZXIgYmFzZWQg
b24gdGhlIGltcGxlbWVudGF0aW9uIGluIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAu
CisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6OnN1cHBvcnRlZFByb3Bl
cnR5TmFtZXMpOgorICAgICAgICBBcyBub3RlZCBhYm92ZSwgSSBkb24ndCB3YW50IHRvIGNoYW5n
ZSBiZWhhdmlvciB3aXRoIHRoaXMgY2hhbmdlLCBzbyBJIGhhdmUgbGVmdCB0aGlzIHVuaW1wbGVt
ZW50ZWQKKyAgICAgICAgZm9yIG5vdy4gSG93ZXZlciwgd2UgbWF5IG5vdCB3YW50IHRvIGltcGxl
bWVudCBpdCBhdCBhbGwsIGFzIHRoaXMgbmFtZWQgZ2V0dGVyIGlzIG5vdCBzcGVjaWZpZWQgYW5k
CisgICAgICAgIGF0IGxlYXN0IEZpcmVmb3ggZG9lcyBub3Qgc3VwcG9ydCBpdC4KKworICAgICAg
ICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGw6CisgICAgICAgIFJlbW92ZSBbQ3VzdG9t
TmFtZWRHZXR0ZXJdIGFuZCBhZGQgbmFtZWQgZ2V0dGVyLgorCisgICAgICAgICogcGFnZS9ET01X
aW5kb3cuaWRsOgorICAgICAgICBSZW1vdmUgbm93IHJlZHVuZGFudCBbQ3VzdG9tR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleF0uIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RdIGltcGxpZXMgdGhp
cy4KKyAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRU
YXJnZXQuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJm
YWNlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24u
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0
aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgICog
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNw
cDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJy
aWRlQnVpbHRpbnMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROb2RlLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2Jq
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVC
dWlsdGlucy5jcHA6CisgICAgICAgIFVwZGF0ZSB0ZXN0IHJlc3VsdHMuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOiBSZW1v
dmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1l
ZEdldHRlci5oOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsOiBSZW1vdmVkLgorICAgICAgICBSZW1vdmUgdGVzdCBvZiBb
Q3VzdG9tTmFtZWRHZXR0ZXJdIHdoaWNoIG5vIGxvbmdlciBleGlzdHMuIAorCiAyMDE3LTA2LTEw
ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgW21hY09TXSBSRUdS
RVNTSU9OOiBMaW5rIGRyYWcgaW1hZ2VzIGJsZW5kIGludG8gdGhlIGJhY2tncm91bmQgaW4gU2ll
cnJhIGFuZCBlYXJsaWVyCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjE4MDU1
KQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEx
ODYsNyArMTE4Niw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9KU0hU
TUxEb2N1bWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3VzdG9t
LmNwcAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAKLSAgICBi
aW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3Mv
anMvSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0hUTUxU
ZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5Q3VzdG9t
LmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhw
cm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagkocmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS54
Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01ODQ2LDcgKzU4NDYs
NiBAQAogCQlCQ0QwRTBGQTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3BwIGlu
IFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEMEUwRjcwRTk3
MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAqLzsgfTsKIAkJQkNEMEUwRkIwRTk3
MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QwRTBGODBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJp
dHlPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwogCQlCQ0QwRTBGQzBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggaW4g
SGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QwRTBGOTBFOTcy
QzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi87IHNldHRpbmdzID0ge0FUVFJJ
QlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNENDFBQkIwQzA2MERFODAwQzBFNDQ2IC8q
IEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q0MUFCQTBDMDYwREU4MDBDMEU0NDYgLyogSlNIVE1M
RnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNENTMzNjQwRUQ2ODQ4OTAwODg3
NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyogQ2Fj
aGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLzsgfTsKIAkJQkNEOUMyNjIwQzE3QUE2NzAwNUM5
MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRv
d0N1c3RvbS5jcHAgKi87IH07CiAJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVD
dXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi87IH07CkBAIC0x
NDM0OSw3ICsxNDM0OCw2IEBACiAJCUJDRDBFMEY3MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0
eU9yaWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
NDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWN1cml0
eU9yaWdpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDBFMEY4MEU5NzJD
MzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7
IHBhdGggPSBTZWN1cml0eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlC
Q0QwRTBGOTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi8gPSB7aXNh
ID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUg
PSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlY3VyaXR5T3JpZ2luSGFzaC5oOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwotCQlCQ0Q0MUFCQTBDMDYwREU4MDBDMEU0NDYgLyogSlNIVE1MRnJh
bWVTZXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBh
dGggPSBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNl
UHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU2NyaXB0
U291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEOUMyNUUw
QzE3QUE2NzAwNUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhG
aWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdpbmRvd0N1c3RvbS5jcHA7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVDdXN0
b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBs
YXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUN1c3Rv
bS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzY1Miw3ICsyMzY1MCw2IEBA
CiAJCQkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRNTERvY3VtZW50Q3VzdG9tLmNw
cCAqLywKIAkJCQlCQzU4MjNGNDBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1c3Rv
bS5jcHAgKi8sCiAJCQkJQkM2RDQ0QkQwQzA3RUZCNjAwNzJEMkM5IC8qIEpTSFRNTEVtYmVkRWxl
bWVudEN1c3RvbS5jcHAgKi8sCi0JCQkJQkNENDFBQkEwQzA2MERFODAwQzBFNDQ2IC8qIEpTSFRN
TEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkMzMDVDQTMwQzA3ODFCQjAwQ0Qy
MEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUQ2Rjc5NjBDMTY2
RkZFQ0UwMDc2REQxOCAvKiBKU0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJ
CTdBNzRFQ0JDMTAxODM5REEwMEJGOTM5RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1c3Rv
bS5jcHAgKi8sCkBAIC0zMjAzMSw3ICszMjAyOCw2IEBACiAJCQkJQThEMDY0RkIwQTIzQzBDQzAw
NUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDNDkx
OEM2MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJjZXMg
Ki8sCiAJCQkJQkM5MjZGODAwQzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVu
dC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0Q0MUFCQjBDMDYwREU4MDBDMEU0NDYgLyogSlNI
VE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3QjE0
MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywK
IAkJCQkxQUUyQUEyRTBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MSGVhZGluZ0VsZW1lbnQuY3Bw
IGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFBMzAwQTFDREFCNDAwQjQyQjI1IC8qIEpTSFRNTEhS
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L0lETFR5cGVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlw
ZXMuaAkocmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvSURMVHlw
ZXMuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsMTAgKzQ1LDExIEBAIHRlbXBsYXRlPHR5cGVuYW1l
PiBjbGFzcyBTdHJvbmc7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorY2xhc3MgRE9NUHJvbWlz
ZTsKK2NsYXNzIEZyYW1lOwogY2xhc3MgSURCS2V5OwogY2xhc3MgSURCS2V5RGF0YTsKIGNsYXNz
IElEQlZhbHVlOwotY2xhc3MgRE9NUHJvbWlzZTsKIAogdGVtcGxhdGU8dHlwZW5hbWUgVD4KIHN0
cnVjdCBJRExUeXBlIHsKQEAgLTI0NSw2ICsyNDYsOCBAQCBzdHJ1Y3QgSURMSURCVmFsdWUgOiBJ
RExXcmFwcGVyPElEQlZhbHVlCiBzdHJ1Y3QgSURMV2ViR0xBbnkgOiBJRExUeXBlPFdlYkdMQW55
PiB7IH07CiAjZW5kaWYKIAordXNpbmcgSURMRE9NV2luZG93U2hlbGwgPSBJRExJbnRlcmZhY2U8
RnJhbWU+OworCiAvLyBOb24tV2ViSURMIGNvbnZlbmllbmNlIHR5cGUgYWxpYXNlcwogCiB1c2lu
ZyBJRExCdWZmZXJTb3VyY2UgPSBJRExVbmlvbjxJRExJbnRlcmZhY2U8SlNDOjpBcnJheUJ1ZmZl
clZpZXc+LCBJRExJbnRlcmZhY2U8SlNDOjpBcnJheUJ1ZmZlcj4+OwpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCShyZXZpc2lv
biAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5P
bmUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03MSw3ICs3MSw2IEBACiAjaW5jbHVkZSAiSlNIVE1M
RG9jdW1lbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTSFRNTEVsZW1lbnRDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAiCi0jaW5jbHVkZSAiSlNIVE1M
RnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0hUTUxPYmplY3RFbGVtZW50
Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwIgog
I2luY2x1ZGUgIkpTSGlzdG9yeUN1c3RvbS5jcHAiCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgJKHJldmlzaW9uIDIx
ODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRp
b25zLmgJKHdvcmtpbmcgY29weSkKQEAgLTMyLDEwICszMiwxNCBAQCBuYW1lc3BhY2UgV2ViQ29y
ZSB7CiAvLyBJbXBsZW1lbnRhdGlvbnMgb2YgdGhlIGFic3RyYWN0IG9wZXJhdGlvbnMgZGVmaW5l
ZCBhdAogLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jbGVnYWN5LXBsYXRmb3Jt
LW9iamVjdC1hYnN0cmFjdC1vcHMKIAorZW51bSBjbGFzcyBPdmVycmlkZUJ1aWx0aW5zIHsKKyAg
ICBObywKKyAgICBZZXMKK307CiAKIC8vIEFuIGltcGxlbWVudGF0aW9uIG9mIHRoZSAnbmFtZWQg
cHJvcGVydHkgdmlzaWJpbGl0eSBhbGdvcml0aG0nCiAvLyBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNkZm4tbmFtZWQtcHJvcGVydHktdmlzaWJpbGl0eQotdGVtcGxhdGU8Ym9vbCBv
dmVycmlkZUJ1aWx0aW5zLCBjbGFzcyBKU0NsYXNzPgordGVtcGxhdGU8T3ZlcnJpZGVCdWlsdGlu
cyBvdmVycmlkZUJ1aWx0aW5zLCBjbGFzcyBKU0NsYXNzPgogc3RhdGljIGJvb2wgaXNWaXNpYmxl
TmFtZWRQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSYgc3RhdGUsIEpTQ2xhc3MmIHRoaXNPYmplY3Qs
IEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICAvLyBGSVhNRTogSXQgc2Vl
bXMgdW5mb3J0dW5hdGUgdGhhdCBoYXZlIHRvIGRvIHR3byBsb29rdXBzIGZvciB0aGUgcHJvcGVy
dHkgbmFtZSwKQEAgLTU1LDE3ICs1OSwxOCBAQCBzdGF0aWMgYm9vbCBpc1Zpc2libGVOYW1lZFBy
b3BlcnR5KEpTQzo6CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICAvLyAyLiBJZiBP
IGhhcyBhbiBvd24gcHJvcGVydHkgbmFtZWQgUCwgdGhlbiByZXR1cm4gZmFsc2UuCi0gICAgSlND
OjpQcm9wZXJ0eVNsb3Qgc2xvdCB7ICZ0aGlzT2JqZWN0LCBKU0M6OlByb3BlcnR5U2xvdDo6SW50
ZXJuYWxNZXRob2RUeXBlOjpHZXRPd25Qcm9wZXJ0eSB9OworICAgIEpTQzo6UHJvcGVydHlTbG90
IHNsb3QgeyAmdGhpc09iamVjdCwgSlNDOjpQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6Vk1JbnF1aXJ5IH07CiAgICAgaWYgKEpTQzo6SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dCgmdGhpc09iamVjdCwgJnN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgCiAgICAgLy8gMy4gSWYgTyBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB0
aGF0IGhhcyB0aGUgW092ZXJyaWRlQnVpbHRpbnNdIGV4dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiBy
ZXR1cm4gdHJ1ZS4KLSAgICBpZiAob3ZlcnJpZGVCdWlsdGlucykKKyAgICBpZiAob3ZlcnJpZGVC
dWlsdGlucyA9PSBPdmVycmlkZUJ1aWx0aW5zOjpZZXMpCiAgICAgICAgIHJldHVybiB0cnVlOwog
CiAgICAgLy8gNC4gSW5pdGlhbGl6ZSBwcm90b3R5cGUgdG8gYmUgdGhlIHZhbHVlIG9mIHRoZSBp
bnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIE8uCiAgICAgLy8gNS4gV2hpbGUgcHJv
dG90eXBlIGlzIG5vdCBudWxsOgogICAgIC8vICAgIDEuIElmIHByb3RvdHlwZSBpcyBub3QgYSBu
YW1lZCBwcm9wZXJ0aWVzIG9iamVjdCwgYW5kIHByb3RvdHlwZSBoYXMgYW4gb3duIHByb3BlcnR5
IG5hbWVkIFAsIHRoZW4gcmV0dXJuIGZhbHNlLgorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY2hl
Y2tpbmcgZm9yICduYW1lZCBwcm9wZXJ0aWVzIG9iamVjdCcuCiAgICAgLy8gICAgMi4gU2V0IHBy
b3RvdHlwZSB0byBiZSB0aGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJv
cGVydHkgb2YgcHJvdG90eXBlLgogICAgIGF1dG8gcHJvdG90eXBlID0gdGhpc09iamVjdC5nZXRQ
cm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgSlNDOjph
c09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3QoJnN0YXRlLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQpAQCAtNzUsNCArODAsNDQgQEAgc3RhdGljIGJvb2wgaXNWaXNpYmxlTmFtZWRQcm9w
ZXJ0eShKU0M6OgogICAgIHJldHVybiB0cnVlOwogfQogCisvLyBBbiBpbXBsZW1lbnRhdGlvbiBv
ZiB0aGUgJ25hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGhtJyBhdWdtZW50ZWQgdG8g
cmVwbGFjZSB0aGUKKy8vICdzdXBwb3J0ZWQgcHJvcGVydHkgbmFtZScgY2hlY2sgd2l0aCBkaXJl
Y3QgYWNjZXNzIHRvIHRoZSBpbXBsZW1lbnRhdGlvbiB2YWx1ZSByZXR1cm5lZAorLy8gZm9yIHRo
ZSBwcm9wZXJ0eSBuYW1lLCB2aWEgcGFzc2VkIGluIGZ1bmN0b3IuIFRoaXMgYWxsb3dzIHVzIHRv
IGF2b2lkIHR3byBsb29raW5nIHVwIHRoZQorLy8gdGhlIHByb3BlcnR5IG5hbWUgdHdpY2U7IG9u
Y2UgZm9yICduYW1lZCBwcm9wZXJ0eSB2aXNpYmlsaXR5IGFsZ29yaXRobScgY2hlY2ssIGFuZCB0
aGVuCisvLyBhZ2FpbiB3aGVuIHRoZSB2YWx1ZSBpcyBuZWVkZWQuCit0ZW1wbGF0ZTxPdmVycmlk
ZUJ1aWx0aW5zIG92ZXJyaWRlQnVpbHRpbnMsIGNsYXNzIEpTQ2xhc3MsIGNsYXNzIEZ1bmN0b3I+
CitzdGF0aWMgYXV0byBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eShKU0M6OkV4ZWNTdGF0ZSYg
c3RhdGUsIEpTQ2xhc3MmIHRoaXNPYmplY3QsIEpTQzo6UHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgRnVuY3RvciYmIGl0ZW1BY2Nlc3NvcikgLT4gZGVjbHR5cGUoaXRlbUFjY2Vzc29yKHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSkpCit7CisgICAgLy8gTk9URTogV2hpbGUgaXQgaXMgbm90IHNw
ZWNpZmllZCwgYSBTeW1ib2wgY2FuIG5ldmVyIGJlIGEgJ3N1cHBvcnRlZCBwcm9wZXJ0eQorICAg
IC8vIG5hbWUnIHNvIHdlIGNoZWNrIHRoYXQgZmlyc3QuCisgICAgaWYgKHByb3BlcnR5TmFtZS5p
c1N5bWJvbCgpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgLy8gMS4gSWYg
UCBpcyBub3QgYSBzdXBwb3J0ZWQgcHJvcGVydHkgbmFtZSBvZiBPLCB0aGVuIHJldHVybiBmYWxz
ZS4KKyAgICBhdXRvIHJlc3VsdCA9IGl0ZW1BY2Nlc3Nvcih0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUpOworICAgIGlmICghcmVzdWx0KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisg
ICAgLy8gMi4gSWYgTyBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVkIFAsIHRoZW4gcmV0dXJuIGZh
bHNlLgorICAgIEpTQzo6UHJvcGVydHlTbG90IHNsb3QgeyAmdGhpc09iamVjdCwgSlNDOjpQcm9w
ZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CisgICAgaWYgKEpTQzo6
SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCgmdGhpc09iamVjdCwgJnN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgLy8gMy4g
SWYgTyBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB0aGF0IGhhcyB0aGUgW092ZXJyaWRlQnVpbHRp
bnNdIGV4dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiByZXR1cm4gdHJ1ZS4KKyAgICBpZiAob3ZlcnJp
ZGVCdWlsdGlucyA9PSBPdmVycmlkZUJ1aWx0aW5zOjpZZXMpCisgICAgICAgIHJldHVybiByZXN1
bHQ7CisKKyAgICAvLyA0LiBJbml0aWFsaXplIHByb3RvdHlwZSB0byBiZSB0aGUgdmFsdWUgb2Yg
dGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgTy4KKyAgICAvLyA1LiBXaGls
ZSBwcm90b3R5cGUgaXMgbm90IG51bGw6CisgICAgLy8gICAgMS4gSWYgcHJvdG90eXBlIGlzIG5v
dCBhIG5hbWVkIHByb3BlcnRpZXMgb2JqZWN0LCBhbmQgcHJvdG90eXBlIGhhcyBhbiBvd24gcHJv
cGVydHkgbmFtZWQgUCwgdGhlbiByZXR1cm4gZmFsc2UuCisgICAgLy8gRklYTUU6IEltcGxlbWVu
dCBjaGVja2luZyBmb3IgJ25hbWVkIHByb3BlcnRpZXMgb2JqZWN0Jy4KKyAgICAvLyAgICAyLiBT
ZXQgcHJvdG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVd
XSBwcm9wZXJ0eSBvZiBwcm90b3R5cGUuCisgICAgYXV0byBwcm90b3R5cGUgPSB0aGlzT2JqZWN0
LmdldFByb3RvdHlwZURpcmVjdCgpOworICAgIGlmIChwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBK
U0M6OmFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdCgmc3RhdGUsIHByb3BlcnR5
TmFtZSwgc2xvdCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAgICAvLyA2LiBS
ZXR1cm4gdHJ1ZS4KKyAgICByZXR1cm4gcmVzdWx0OworfQorCiB9CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAJKHJldmlzaW9uIDIxODA1
NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTI0NywzMCArMjQ3LDMwIEBAIEpTRE9NV2luZG93U2hlbGwqIEpTRE9N
V2luZG93QmFzZTo6c2hlbGwKIAogLy8gSlNET01HbG9iYWxPYmplY3QqIGlzIGlnbm9yZWQsIGFj
Y2Vzc2luZyBhIHdpbmRvdyBpbiBhbnkgY29udGV4dCB3aWxsCiAvLyB1c2UgdGhhdCBET01XaW5k
b3cncyBwcm90b3R5cGUgY2hhaW4uCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBKU0RP
TUdsb2JhbE9iamVjdCosIERPTVdpbmRvdyYgZG9tV2luZG93KQorSlNWYWx1ZSB0b0pTKEV4ZWNT
dGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRE9NV2luZG93JiBkb21XaW5kb3cpCiB7
Ci0gICAgcmV0dXJuIHRvSlMoZXhlYywgZG9tV2luZG93KTsKKyAgICByZXR1cm4gdG9KUyhzdGF0
ZSwgZG9tV2luZG93KTsKIH0KIAotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgRE9NV2lu
ZG93JiBkb21XaW5kb3cpCitKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RP
TUdsb2JhbE9iamVjdCosIEZyYW1lJiBmcmFtZSkKIHsKLSAgICBGcmFtZSogZnJhbWUgPSBkb21X
aW5kb3cuZnJhbWUoKTsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4ganNOdWxsKCk7
Ci0gICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS53aW5kb3dTaGVsbChjdXJyZW50V29ybGQoZXhl
YykpOworICAgIHJldHVybiB0b0pTKHN0YXRlLCBmcmFtZSk7CiB9CiAKLUpTRE9NV2luZG93KiB0
b0pTRE9NV2luZG93KEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK0pTVmFs
dWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBET01XaW5kb3cmIGRvbVdpbmRvdykKIHsKLSAgICBp
ZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgp
LndpbmRvd1NoZWxsKHdvcmxkKS0+d2luZG93KCk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsIGRv
bVdpbmRvdy5mcmFtZSgpKTsKK30KKworSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUm
IGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQoreworICAgIHJldHVybiBmcmFtZS5zY3Jp
cHQoKS53aW5kb3dTaGVsbCh3b3JsZCktPndpbmRvdygpOwogfQogCiBKU0RPTVdpbmRvdyogdG9K
U0RPTVdpbmRvdyhKU0M6OlZNJiB2bSwgSlNWYWx1ZSB2YWx1ZSkKIHsKICAgICBpZiAoIXZhbHVl
LmlzT2JqZWN0KCkpCi0gICAgICAgIHJldHVybiAwOworICAgICAgICByZXR1cm4gbnVsbHB0cjsK
IAogICAgIHdoaWxlICghdmFsdWUuaXNOdWxsKCkpIHsKICAgICAgICAgSlNPYmplY3QqIG9iamVj
dCA9IGFzT2JqZWN0KHZhbHVlKTsKQEAgLTI4MSw3ICsyODEsNyBAQCBKU0RPTVdpbmRvdyogdG9K
U0RPTVdpbmRvdyhKU0M6OlZNJiB2bSwgCiAgICAgICAgICAgICByZXR1cm4ganNDYXN0PEpTRE9N
V2luZG93U2hlbGwqPihvYmplY3QpLT53aW5kb3coKTsKICAgICAgICAgdmFsdWUgPSBvYmplY3Qt
PmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIH0KLSAgICByZXR1cm4gMDsKKyAgICByZXR1cm4g
bnVsbHB0cjsKIH0KIAogRE9NV2luZG93JiBpbmN1bWJlbnRET01XaW5kb3coRXhlY1N0YXRlKiBl
eGVjKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNl
LmgJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9N
V2luZG93QmFzZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NSwxNiArODUsMTggQEAgbmFtZXNwYWNl
IFdlYkNvcmUgewogICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBtX3NoZWxsOwogICAgIH07CiAK
LSAgICAvLyBSZXR1cm5zIGEgSlNET01XaW5kb3cgb3IganNOdWxsKCkKLSAgICAvLyBKU0RPTUds
b2JhbE9iamVjdCogaXMgaWdub3JlZCwgYWNjZXNzaW5nIGEgd2luZG93IGluIGFueSBjb250ZXh0
IHdpbGwKLSAgICAvLyB1c2UgdGhhdCBET01XaW5kb3cncyBwcm90b3R5cGUgY2hhaW4uCisgICAg
Ly8gVGhlIGZvbGxvd2luZyByZXR1cm4gYSBKU0RPTVdpbmRvd1NoZWxsIG9yIGpzTnVsbCgpCisg
ICAgLy8gSlNET01HbG9iYWxPYmplY3QqIGlzIGlnbm9yZWQsIGFjY2Vzc2luZyBhIHdpbmRvdyBp
biBhbnkgY29udGV4dCB3aWxsIHVzZSB0aGF0IERPTVdpbmRvdydzIHByb3RvdHlwZSBjaGFpbi4K
ICAgICBXRUJDT1JFX0VYUE9SVCBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpT
RE9NR2xvYmFsT2JqZWN0KiwgRE9NV2luZG93Jik7Ci0gICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0
LCBET01XaW5kb3cqIHdpbmRvdykgeyByZXR1cm4gd2luZG93ID8gdG9KUyhleGVjLCBnbG9iYWxP
YmplY3QsICp3aW5kb3cpIDogSlNDOjpqc051bGwoKTsgfQorICAgIGlubGluZSBKU0M6OkpTVmFs
dWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxP
YmplY3QsIERPTVdpbmRvdyogd2luZG93KSB7IHJldHVybiB3aW5kb3cgPyB0b0pTKHN0YXRlLCBn
bG9iYWxPYmplY3QsICp3aW5kb3cpIDogSlNDOjpqc051bGwoKTsgfQorICAgIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBGcmFtZSYpOworICAg
IGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xv
YmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gZnJhbWUgPyB0
b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QsICpmcmFtZSkgOiBKU0M6OmpzTnVsbCgpOyB9CiAgICAg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBET01XaW5kb3cmKTsKLSAgICBpbmxp
bmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIERPTVdpbmRvdyogd2lu
ZG93KSB7IHJldHVybiB3aW5kb3cgPyB0b0pTKGV4ZWMsICp3aW5kb3cpIDogSlNDOjpqc051bGwo
KTsgfQorICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IERPTVdpbmRvdyogd2luZG93KSB7IHJldHVybiB3aW5kb3cgPyB0b0pTKHN0YXRlLCAqd2luZG93
KSA6IEpTQzo6anNOdWxsKCk7IH0KIAotICAgIC8vIFJldHVybnMgSlNET01XaW5kb3cgb3IgMAot
ICAgIEpTRE9NV2luZG93KiB0b0pTRE9NV2luZG93KEZyYW1lKiwgRE9NV3JhcHBlcldvcmxkJik7
CisgICAgLy8gVGhlIGZvbGxvd2luZyByZXR1cm4gYSBKU0RPTVdpbmRvdyBvciBudWxscHRyLgor
ICAgIEpTRE9NV2luZG93KiB0b0pTRE9NV2luZG93KEZyYW1lJiwgRE9NV3JhcHBlcldvcmxkJik7
CisgICAgaW5saW5lIEpTRE9NV2luZG93KiB0b0pTRE9NV2luZG93KEZyYW1lKiBmcmFtZSwgRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCkgeyByZXR1cm4gZnJhbWUgPyB0b0pTRE9NV2luZG93KCpmcmFt
ZSwgd29ybGQpIDogbnVsbHB0cjsgfQogICAgIFdFQkNPUkVfRVhQT1JUIEpTRE9NV2luZG93KiB0
b0pTRE9NV2luZG93KEpTQzo6Vk0mLCBKU0M6OkpTVmFsdWUpOwogCiAgICAgLy8gRE9NV2luZG93
IGFzc29jaWF0ZWQgd2l0aCBnbG9iYWwgb2JqZWN0IG9mIHRoZSAibW9zdC1yZWNlbnRseS1lbnRl
cmVkIGF1dGhvciBmdW5jdGlvbiBvciBzY3JpcHQKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3BwCShyZXZpc2lvbiAyMTgwNTUpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMTE4LDE4ICsxMTgsMTQgQEAgRE9NV2luZG93KiBKU0RPTVdpbmRvd1NoZWxsOjp0
b1dyYXBwZWQoVgogLy8gQ29udmVyc2lvbiBtZXRob2RzCiAvLyAtLS0tCiAKLUpTVmFsdWUgdG9K
UyhFeGVjU3RhdGUqIGV4ZWMsIEZyYW1lKiBmcmFtZSkKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEZyYW1lJiBmcmFtZSkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4g
anNOdWxsKCk7Ci0gICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS53aW5kb3dTaGVsbChjdXJyZW50
V29ybGQoZXhlYykpOworICAgIHJldHVybiBmcmFtZS5zY3JpcHQoKS53aW5kb3dTaGVsbChjdXJy
ZW50V29ybGQoZXhlYykpOwogfQogCi1KU0RPTVdpbmRvd1NoZWxsKiB0b0pTRE9NV2luZG93U2hl
bGwoRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorSlNET01XaW5kb3dTaGVs
bCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCkKIHsKLSAgICBpZiAoIWZyYW1lKQotICAgICAgICByZXR1cm4gMDsKLSAgICByZXR1cm4gZnJh
bWUtPnNjcmlwdCgpLndpbmRvd1NoZWxsKHdvcmxkKTsKKyAgICByZXR1cm4gZnJhbWUuc2NyaXB0
KCkud2luZG93U2hlbGwod29ybGQpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmgKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCShyZXZp
c2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmgJKHdvcmtpbmcgY29weSkKQEAgLTM0LDQ0ICszNCw0OCBAQAogCiBuYW1lc3BhY2UgV2Vi
Q29yZSB7CiAKLSAgICBjbGFzcyBGcmFtZTsKK2NsYXNzIEZyYW1lOwogCi0gICAgY2xhc3MgSlNE
T01XaW5kb3dTaGVsbCA6IHB1YmxpYyBKU0M6OkpTUHJveHkgewotICAgICAgICB0eXBlZGVmIEpT
Qzo6SlNQcm94eSBCYXNlOwotICAgIHB1YmxpYzoKLSAgICAgICAgc3RhdGljIHZvaWQgZGVzdHJv
eShKU0NlbGwqKTsKKy8vIEZJWE1FOiBSZW5hbWUgdG8gSlNXaW5kb3dQcm94eSB0byBtYXRjaCBI
VE1MIHNwZWMgbmFtaW5nLgorY2xhc3MgSlNET01XaW5kb3dTaGVsbCA6IHB1YmxpYyBKU0M6OkpT
UHJveHkgeworICAgIHR5cGVkZWYgSlNDOjpKU1Byb3h5IEJhc2U7CitwdWJsaWM6CisgICAgc3Rh
dGljIHZvaWQgZGVzdHJveShKU0NlbGwqKTsKIAotICAgICAgICBKU0RPTVdpbmRvdyogd2luZG93
KCkgY29uc3QgeyByZXR1cm4gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3cqPih0YXJnZXQoKSk7IH0K
LSAgICAgICAgdm9pZCBzZXRXaW5kb3coSlNDOjpWTSYsIEpTRE9NV2luZG93Kik7Ci0gICAgICAg
IHZvaWQgc2V0V2luZG93KFJlZlB0cjxET01XaW5kb3c+JiYpOworICAgIEpTRE9NV2luZG93KiB3
aW5kb3coKSBjb25zdCB7IHJldHVybiBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvdyo+KHRhcmdldCgp
KTsgfQorICAgIHZvaWQgc2V0V2luZG93KEpTQzo6Vk0mLCBKU0RPTVdpbmRvdyopOworICAgIHZv
aWQgc2V0V2luZG93KFJlZlB0cjxET01XaW5kb3c+JiYpOwogCi0gICAgICAgIERFQ0xBUkVfSU5G
TzsKKyAgICBERUNMQVJFX0lORk87CiAKLSAgICAgICAgRE9NV2luZG93JiB3cmFwcGVkKCkgY29u
c3Q7Ci0gICAgICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCBET01XaW5kb3cqIHRvV3JhcHBlZChK
U0M6OlZNJiwgSlNDOjpKU09iamVjdCopOworICAgIERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0
OworICAgIHN0YXRpYyBXRUJDT1JFX0VYUE9SVCBET01XaW5kb3cqIHRvV3JhcHBlZChKU0M6OlZN
JiwgSlNDOjpKU09iamVjdCopOwogCi0gICAgICAgIHN0YXRpYyBKU0RPTVdpbmRvd1NoZWxsKiBj
cmVhdGUoSlNDOjpWTSYgdm0sIFJlZlB0cjxET01XaW5kb3c+JiYgd2luZG93LCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQotICAgICAgICB7Ci0gICAg
ICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKiBzaGVsbCA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxv
Y2F0ZUNlbGw8SlNET01XaW5kb3dTaGVsbD4odm0uaGVhcCkpIEpTRE9NV2luZG93U2hlbGwodm0s
IHN0cnVjdHVyZSwgd29ybGQpOwotICAgICAgICAgICAgc2hlbGwtPmZpbmlzaENyZWF0aW9uKHZt
LCBXVEZNb3ZlKHdpbmRvdykpOwotICAgICAgICAgICAgcmV0dXJuIHNoZWxsOyAKLSAgICAgICAg
fQorICAgIHN0YXRpYyBKU0RPTVdpbmRvd1NoZWxsKiBjcmVhdGUoSlNDOjpWTSYgdm0sIFJlZlB0
cjxET01XaW5kb3c+JiYgd2luZG93LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlLCBET01XcmFw
cGVyV29ybGQmIHdvcmxkKQorICAgIHsKKyAgICAgICAgSlNET01XaW5kb3dTaGVsbCogc2hlbGwg
PSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTRE9NV2luZG93U2hlbGw+KHZtLmhl
YXApKSBKU0RPTVdpbmRvd1NoZWxsKHZtLCBzdHJ1Y3R1cmUsIHdvcmxkKTsKKyAgICAgICAgc2hl
bGwtPmZpbmlzaENyZWF0aW9uKHZtLCBXVEZNb3ZlKHdpbmRvdykpOworICAgICAgICByZXR1cm4g
c2hlbGw7CisgICAgfQogCi0gICAgICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgcHJvdG90eXBlKSAKLSAgICAgICAgewot
ICAgICAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIDAsIHByb3RvdHlw
ZSwgSlNDOjpUeXBlSW5mbyhKU0M6OlB1cmVGb3J3YXJkaW5nUHJveHlUeXBlLCBTdHJ1Y3R1cmVG
bGFncyksIGluZm8oKSk7Ci0gICAgICAgIH0KKyAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNy
ZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKKyAgICB7
CisgICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCAwLCBwcm90b3R5cGUs
IEpTQzo6VHlwZUluZm8oSlNDOjpQdXJlRm9yd2FyZGluZ1Byb3h5VHlwZSwgU3RydWN0dXJlRmxh
Z3MpLCBpbmZvKCkpOworICAgIH0KIAotICAgICAgICBET01XcmFwcGVyV29ybGQmIHdvcmxkKCkg
eyByZXR1cm4gbV93b3JsZDsgfQorICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7IHJldHVy
biBtX3dvcmxkOyB9CiAKLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIEpTRE9NV2luZG93U2hlbGwo
SlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkJik7Ci0gICAgICAgIHZv
aWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIFJlZlB0cjxET01XaW5kb3c+JiYpOworcHJvdGVj
dGVkOgorICAgIEpTRE9NV2luZG93U2hlbGwoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgRE9N
V3JhcHBlcldvcmxkJik7CisgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgUmVmUHRy
PERPTVdpbmRvdz4mJik7CiAKLSAgICAgICAgUmVmPERPTVdyYXBwZXJXb3JsZD4gbV93b3JsZDsK
LSAgICB9OworICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Cit9OwogCi0gICAgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBGcmFtZSopOwotICAgIEpTRE9NV2luZG93
U2hlbGwqIHRvSlNET01XaW5kb3dTaGVsbChGcmFtZSosIERPTVdyYXBwZXJXb3JsZCYpOworSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBGcmFtZSYpOworaW5saW5lIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgRnJhbWUqIGZyYW1lKSB7IHJldHVybiBm
cmFtZSA/IHRvSlMoc3RhdGUsICpmcmFtZSkgOiBKU0M6OmpzTnVsbCgpOyB9CisKK0pTRE9NV2lu
ZG93U2hlbGwqIHRvSlNET01XaW5kb3dTaGVsbChGcmFtZSYsIERPTVdyYXBwZXJXb3JsZCYpOwor
aW5saW5lIEpTRE9NV2luZG93U2hlbGwqIHRvSlNET01XaW5kb3dTaGVsbChGcmFtZSogZnJhbWUs
IERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIHsgcmV0dXJuIGZyYW1lID8gdG9KU0RPTVdpbmRvd1No
ZWxsKCpmcmFtZSwgd29ybGQpIDogbnVsbHB0cjsgfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDU0ICs1
Myw2IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2IKICAgICByZXR1
cm4gdG9KU05ld2x5Q3JlYXRlZChzdGF0ZSwgZ2xvYmFsT2JqZWN0LCBSZWY8SFRNTERvY3VtZW50
Pihkb2N1bWVudCkpOwogfQogCi1ib29sIEpTSFRNTERvY3VtZW50OjpnZXRPd25Qcm9wZXJ0eVNs
b3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIGF1dG8mIHRoaXNPYmplY3QgPSAq
anNDYXN0PEpTSFRNTERvY3VtZW50Kj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKG9iamVjdCwgaW5mbygpKTsKLQotICAgIGlmIChwcm9wZXJ0eU5hbWUgPT0gIm9wZW4i
KSB7Ci0gICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoJnRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
ICAgIHNsb3Quc2V0Q3VzdG9tKCZ0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBE
b250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzSFRNTERvY3VtZW50UHJv
dG90eXBlRnVuY3Rpb25PcGVuLCAyPik7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQot
ICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgaWYgKHRoaXNPYmplY3QubmFtZUdldHRlcihzdGF0ZSwg
cHJvcGVydHlOYW1lLCB2YWx1ZSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSgmdGhpc09iamVj
dCwgUmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIHZhbHVlKTsKLSAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgfQotCi0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdCgm
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7Ci19Ci0KLWJvb2wgSlNIVE1M
RG9jdW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSYgdmFsdWUpCi17Ci0gICAgYXV0byYgZG9jdW1lbnQgPSB3cmFwcGVk
KCk7Ci0KLSAgICBhdXRvKiBhdG9taWNQcm9wZXJ0eU5hbWUgPSBwcm9wZXJ0eU5hbWUucHVibGlj
TmFtZSgpOwotICAgIGlmICghYXRvbWljUHJvcGVydHlOYW1lIHx8ICFkb2N1bWVudC5oYXNEb2N1
bWVudE5hbWVkSXRlbSgqYXRvbWljUHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKFVOTElLRUxZKGRvY3VtZW50LmRvY3VtZW50TmFtZWRJdGVtQ29udGFpbnNN
dWx0aXBsZUVsZW1lbnRzKCphdG9taWNQcm9wZXJ0eU5hbWUpKSkgewotICAgICAgICBhdXRvIGNv
bGxlY3Rpb24gPSBkb2N1bWVudC5kb2N1bWVudE5hbWVkSXRlbXMoYXRvbWljUHJvcGVydHlOYW1l
KTsKLSAgICAgICAgQVNTRVJUKGNvbGxlY3Rpb24tPmxlbmd0aCgpID4gMSk7Ci0gICAgICAgIHZh
bHVlID0gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIGNvbGxlY3Rpb24pOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICB9Ci0KLSAgICBhdXRvJiBlbGVtZW50ID0gKmRvY3VtZW50LmRvY3Vt
ZW50TmFtZWRJdGVtKCphdG9taWNQcm9wZXJ0eU5hbWUpOwotICAgIGlmIChVTkxJS0VMWShpczxI
VE1MSUZyYW1lRWxlbWVudD4oZWxlbWVudCkpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBmcmFtZSA9
IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVtZW50PihlbGVtZW50KS5jb250ZW50RnJhbWUoKSkgewot
ICAgICAgICAgICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBmcmFtZSk7Ci0gICAgICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZhbHVlID0gdG9KUyhzdGF0ZSwgZ2xv
YmFsT2JqZWN0KCksIGVsZW1lbnQpOwotICAgIHJldHVybiB0cnVlOwotfQotCiAvLyBDdXN0b20g
YXR0cmlidXRlcwogCiBKU1ZhbHVlIEpTSFRNTERvY3VtZW50OjphbGwoRXhlY1N0YXRlJiBzdGF0
ZSkgY29uc3QKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0
RWxlbWVudEN1c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
anMvSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4MDU1KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNw
cAkobm9uZXhpc3RlbnQpCkBAIC0xLDU2ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIw
MDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAotICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KLSAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgotICoKLSAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBgYEFTIElTJycgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBUSEUKLSAqIElNUExJRUQgV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkg
QU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgotICogUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4g
IElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIElOQy4gT1IKLSAqIENPTlRSSUJVVE9SUyBCRSBMSUFC
TEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLAotICogRVhF
TVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLAotICogUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsg
TE9TUyBPRiBVU0UsIERBVEEsIE9SCi0gKiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJ
T04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZCi0gKiBPRiBMSUFCSUxJVFksIFdI
RVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNMVURJ
TkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhF
IFVTRQotICogT0YgVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJ
TElUWSBPRiBTVUNIIERBTUFHRS4gCi0gKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2luY2x1
ZGUgIkpTSFRNTEZyYW1lU2V0RWxlbWVudC5oIgotCi0jaW5jbHVkZSAiRG9jdW1lbnQuaCIKLSNp
bmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgotI2luY2x1ZGUgIkhUTUxGcmFtZUVsZW1lbnQuaCIK
LSNpbmNsdWRlICJIVE1MRnJhbWVTZXRFbGVtZW50LmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3cu
aCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvd1NoZWxsLmgiCi0jaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCi0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotYm9v
bCBKU0hUTUxGcmFtZVNldEVsZW1lbnQ6Om5hbWVHZXR0ZXIoRXhlY1N0YXRlKiBleGVjLCBQcm9w
ZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlJiB2YWx1ZSkKLXsKLSAgICBhdXRvKiBmcmFt
ZUVsZW1lbnQgPSB3cmFwcGVkKCkuY2hpbGRyZW4oKS0+bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgIGlmICghaXM8SFRNTEZyYW1lRWxlbWVu
dD4oZnJhbWVFbGVtZW50KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKGF1dG8q
IGRvY3VtZW50ID0gZG93bmNhc3Q8SFRNTEZyYW1lRWxlbWVudD4oKmZyYW1lRWxlbWVudCkuY29u
dGVudERvY3VtZW50KCkpIHsKLSAgICAgICAgaWYgKEpTRE9NV2luZG93U2hlbGwqIHdpbmRvdyA9
IHRvSlNET01XaW5kb3dTaGVsbChkb2N1bWVudC0+ZnJhbWUoKSwgY3VycmVudFdvcmxkKGV4ZWMp
KSkgewotICAgICAgICAgICAgdmFsdWUgPSB3aW5kb3c7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLX0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBz
dm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5kIG9m
IHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5l
cmF0b3IucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9D
b2RlR2VuZXJhdG9yLnBtCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHdvcmtpbmcgY29weSkKQEAgLTkwMiw2ICs5
MDIsNyBAQCBzdWIgSXNCdWlsdGluVHlwZQogICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVx
ICJQcm9taXNlIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiU2VyaWFsaXplZFNj
cmlwdFZhbHVlIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jlc29s
dmVyIjsKKyAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiRE9NV2luZG93U2hlbGwiOwog
ICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJhbnkiOwogICAgIHJldHVybiAxIGlmICR0
eXBlLT5uYW1lIGVxICJvYmplY3QiOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkocmV2aXNpb24gMjE4MDU1KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHdvcmtp
bmcgY29weSkKQEAgLTI5Niw3ICsyOTYsNyBAQCBzdWIgQWRkVG9JbmNsdWRlc0ZvcklETFR5cGUK
ICAgICByZXR1cm4gaWYgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpOwog
ICAgIHJldHVybiBpZiAkdHlwZS0+bmFtZSBlcSAiYW55IjsKICAgICByZXR1cm4gaWYgJHR5cGUt
Pm5hbWUgZXEgIm9iamVjdCI7Ci0KKyAgICAKICAgICBpZiAoJHR5cGUtPmlzVW5pb24pIHsKICAg
ICAgICAgQWRkVG9JbmNsdWRlcygiPHd0Zi9WYXJpYW50Lmg+IiwgJGluY2x1ZGVzUmVmLCAkY29u
ZGl0aW9uYWwpOwogCkBAIC0zMzUsNiArMzM1LDEyIEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9ySURM
VHlwZQogICAgICAgICBBZGRUb0luY2x1ZGVzKCR0eXBlLT5uYW1lIC4gIi5oIiwgJGluY2x1ZGVz
UmVmLCAkY29uZGl0aW9uYWwpOwogICAgICAgICByZXR1cm47CiAgICAgfQorICAgIAorICAgIGlm
ICgkdHlwZS0+bmFtZSBlcSAiRE9NV2luZG93U2hlbGwiKSB7CisgICAgICAgIEFkZFRvSW5jbHVk
ZXMoIkpTIiAuICR0eXBlLT5uYW1lIC4gIi5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0aW9uYWwp
OworICAgICAgICBBZGRUb0luY2x1ZGVzKCJGcmFtZS5oIiwgJGluY2x1ZGVzUmVmLCAkY29uZGl0
aW9uYWwpOworICAgICAgICByZXR1cm47CisgICAgfQogfQogCiBzdWIgQWRkVG9JbXBsSW5jbHVk
ZXMKQEAgLTQwNiwxNzIgKzQxMiwzMDcgQEAgc3ViIFNob3VsZFVzZUdsb2JhbE9iamVjdFByb3Rv
dHlwZQogCiBzdWIgR2VuZXJhdGVJbmRleGVkR2V0dGVyCiB7Ci0gICAgbXkgKCRvdXRwdXRBcnJh
eSwgJGluZGVudCwgJGludGVyZmFjZSwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24pID0gQF87Cisg
ICAgbXkgKCRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW5kZXhFeHByZXNz
aW9uKSA9IEBfOworICAgIAorICAgICMgTk9URTogVGhpcyBhYnN0cmFjdGx5IGltcGxlbWVudHMg
c3RlcHMgMS4yLjEgLSAxLjIuOCBvZiB0aGUgTGVnYWN5UGxhdGZvcm1PYmplY3RHZXRPd25Qcm9w
ZXJ0eQorICAgICMgICAgICAgYWxnb3JpdGhtLiBSZXR1cmluZyB0aGUgY29udmVyc2lvbiBleHBy
ZXNzaW9uIGFuZCBhdHRyaWJ1dGVzIGV4cHJlc3Npb24gZm9yIHVzZQorICAgICMgICAgICAgYnkg
dGhlIGNhbGxlci4KKyAgICAKKyAgICAjIDEuMi4xIExldCBvcGVyYXRpb24gYmUgdGhlIG9wZXJh
dGlvbiB1c2VkIHRvIGRlY2xhcmUgdGhlIGluZGV4ZWQgcHJvcGVydHkgZ2V0dGVyLgorICAgICMg
MS4yLjIgTGV0IHZhbHVlIGJlIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuCisgICAgIyAxLjIu
MyBJZiBvcGVyYXRpb24gd2FzIGRlZmluZWQgd2l0aG91dCBhbiBpZGVudGlmaWVyLCB0aGVuIHNl
dCB2YWx1ZSB0byB0aGUgcmVzdWx0CisgICAgIyAgICAgICBvZiBwZXJmb3JtaW5nIHRoZSBzdGVw
cyBsaXN0ZWQgaW4gdGhlIGludGVyZmFjZSBkZXNjcmlwdGlvbiB0byBkZXRlcm1pbmUgdGhlCisg
ICAgIyAgICAgICB2YWx1ZSBvZiBhbiBpbmRleGVkIHByb3BlcnR5IHdpdGggaW5kZXggYXMgdGhl
IGluZGV4LgorICAgICMgMS4yLjQgT3RoZXJ3aXNlLCBvcGVyYXRpb24gd2FzIGRlZmluZWQgd2l0
aCBhbiBpZGVudGlmaWVyLiBTZXQgdmFsdWUgdG8gdGhlIHJlc3VsdAorICAgICMgICAgICAgb2Yg
cGVyZm9ybWluZyB0aGUgc3RlcHMgbGlzdGVkIGluIHRoZSBkZXNjcmlwdGlvbiBvZiBvcGVyYXRp
b24gd2l0aCBpbmRleCBhcworICAgICMgICAgICAgdGhlIG9ubHkgYXJndW1lbnQgdmFsdWUuCisg
ICAgIyAxLjIuNSBMZXQgZGVzYyBiZSBhIG5ld2x5IGNyZWF0ZWQgUHJvcGVydHkgRGVzY3JpcHRv
ciB3aXRoIG5vIGZpZWxkcy4KKyAgICAjIDEuMi42IFNldCBkZXNjLltbVmFsdWVdXSB0byB0aGUg
cmVzdWx0IG9mIGNvbnZlcnRpbmcgdmFsdWUgdG8gYW4gRUNNQVNjcmlwdCB2YWx1ZS4KKyAgICAj
IDEuMi43IElmIE8gaW1wbGVtZW50cyBhbiBpbnRlcmZhY2Ugd2l0aCBhbiBpbmRleGVkIHByb3Bl
cnR5IHNldHRlciwgdGhlbiBzZXQKKyAgICAjICAgICAgIGRlc2MuW1tXcml0YWJsZV1dIHRvIHRy
dWUsIG90aGVyd2lzZSBzZXQgaXQgdG8gZmFsc2UuCisgICAgIyAxLjIuOCBSZXR1cm4gZGVzYy4K
ICAgICAKICAgICBteSBAYXR0cmlidXRlcyA9ICgpOwogICAgIHB1c2goQGF0dHJpYnV0ZXMsICJS
ZWFkT25seSIpIGlmICFHZXRJbmRleGVkU2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpICYmICEk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZFNldHRlcn07Ci0KKyAg
ICAKICAgICBteSAkYXR0cmlidXRlU3RyaW5nID0gKChAYXR0cmlidXRlcyA+IDApID8gam9pbigi
IHwgIiwgQGF0dHJpYnV0ZXMpIDogIjAiKTsKIAogICAgIG15ICRpbmRleGVkR2V0dGVyRnVuY3Rp
b25OYW1lID0gJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0lt
cGxlbWVudGVkQXN9IHx8ICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLT5uYW1lIHx8ICJpdGVtIjsK
LSAgICBteSAkbmF0aXZlVG9KU0NvbnZlcnNpb24gPSBOYXRpdmVUb0pTVmFsdWVVc2luZ1BvaW50
ZXJzKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW50ZXJmYWNlLCAidGhpc09iamVjdC0+d3Jh
cHBlZCgpLiR7aW5kZXhlZEdldHRlckZ1bmN0aW9uTmFtZX0oaW5kZXgpIiwgIip0aGlzT2JqZWN0
LT5nbG9iYWxPYmplY3QoKSIpOwotCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4g
InNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgJHthdHRyaWJ1dGVTdHJpbmd9LCAke25hdGl2ZVRv
SlNDb252ZXJzaW9ufSk7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAi
cmV0dXJuIHRydWU7XG4iKTsKKyAgICBteSAkbmF0aXZlVG9KU0NvbnZlcnNpb24gPSBOYXRpdmVU
b0pTVmFsdWVVc2luZ1BvaW50ZXJzKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAkaW50ZXJmYWNl
LCAidGhpc09iamVjdC0+d3JhcHBlZCgpLiR7aW5kZXhlZEdldHRlckZ1bmN0aW9uTmFtZX0oJHtp
bmRleEV4cHJlc3Npb259KSIsICIqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCkiKTsKKyAgICAK
KyAgICByZXR1cm4gKCRuYXRpdmVUb0pTQ29udmVyc2lvbiwgJGF0dHJpYnV0ZVN0cmluZyk7CiB9
CiAKIHN1YiBHZW5lcmF0ZU5hbWVkR2V0dGVyCiB7Ci0gICAgbXkgKCRvdXRwdXRBcnJheSwgJGlu
ZGVudCwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uKSA9IEBfOwotCisgICAgbXkg
KCRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbiwgJG5hbWVkUHJvcGVydHlFeHByZXNz
aW9uKSA9IEBfOworICAgIAorICAgICMgTk9URTogVGhpcyBhYnN0cmFjdGx5IGltcGxlbWVudHMg
c3RlcHMgMi4xIC0gMi4xMCBvZiB0aGUgTGVnYWN5UGxhdGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0
eQorICAgICMgICAgICAgYWxnb3JpdGhtLiBSZXR1cmluZyB0aGUgY29udmVyc2lvbiBleHByZXNz
aW9uIGFuZCBhdHRyaWJ1dGVzIGV4cHJlc3Npb24gZm9yIHVzZQorICAgICMgICAgICAgYnkgdGhl
IGNhbGxlci4KKyAgICAKKyAgICAjIDIuMSAgTGV0IG9wZXJhdGlvbiBiZSB0aGUgb3BlcmF0aW9u
IHVzZWQgdG8gZGVjbGFyZSB0aGUgbmFtZWQgcHJvcGVydHkgZ2V0dGVyLgorICAgICMgMi4yICBM
ZXQgdmFsdWUgYmUgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KKyAgICAjIDIuMyAgSWYgb3Bl
cmF0aW9uIHdhcyBkZWZpbmVkIHdpdGhvdXQgYW4gaWRlbnRpZmllciwgdGhlbiBzZXQgdmFsdWUg
dG8gdGhlIHJlc3VsdAorICAgICMgICAgICBvZiBwZXJmb3JtaW5nIHRoZSBzdGVwcyBsaXN0ZWQg
aW4gdGhlIGludGVyZmFjZSBkZXNjcmlwdGlvbiB0byBkZXRlcm1pbmUgdGhlCisgICAgIyAgICAg
IHZhbHVlIG9mIGEgbmFtZWQgcHJvcGVydHkgd2l0aCBQIGFzIHRoZSBuYW1lLgorICAgICMgMi40
ICBPdGhlcndpc2UsIG9wZXJhdGlvbiB3YXMgZGVmaW5lZCB3aXRoIGFuIGlkZW50aWZpZXIuIFNl
dCB2YWx1ZSB0byB0aGUgcmVzdWx0CisgICAgIyAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIHN0ZXBz
IGxpc3RlZCBpbiB0aGUgZGVzY3JpcHRpb24gb2Ygb3BlcmF0aW9uIHdpdGggUCBhcyB0aGUKKyAg
ICAjICAgICAgb25seSBhcmd1bWVudCB2YWx1ZS4uCisgICAgIyAyLjUgIExldCBkZXNjIGJlIGEg
bmV3bHkgY3JlYXRlZCBQcm9wZXJ0eSBEZXNjcmlwdG9yIHdpdGggbm8gZmllbGRzLgorICAgICMg
Mi42ICBTZXQgZGVzYy5bW1ZhbHVlXV0gdG8gdGhlIHJlc3VsdCBvZiBjb252ZXJ0aW5nIHZhbHVl
IHRvIGFuIEVDTUFTY3JpcHQgdmFsdWUuCisgICAgIyAyLjcgIElmIE8gaW1wbGVtZW50cyBhbiBp
bnRlcmZhY2Ugd2l0aCBhIG5hbWVkIHByb3BlcnR5IHNldHRlciwgdGhlbiBzZXQgZGVzYy5bW1dy
aXRhYmxlXV0KKyAgICAjICAgICAgdG8gdHJ1ZSwgb3RoZXJ3aXNlIHNldCBpdCB0byBmYWxzZS4K
KyAgICAjIDIuOCAgSWYgTyBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB3aXRoIHRoZSBbTGVnYWN5
VW5lbnVtZXJhYmxlTmFtZWRQcm9wZXJ0aWVzXQorICAgICMgICAgICBleHRlbmRlZCBhdHRyaWJ1
dGUsIHRoZW4gc2V0IGRlc2MuW1tFbnVtZXJhYmxlXV0gdG8gZmFsc2UsIG90aGVyd2lzZSBzZXQg
aXQKKyAgICAjICAgICAgdG8gdHJ1ZS4KKyAgICAjIDIuOSAgU2V0IGRlc2MuW1tDb25maWd1cmFi
bGVdXSB0byB0cnVlLgorICAgICMgMi4xMCBSZXR1cm4gZGVzYy4KKyAgICAKICAgICBteSBAYXR0
cmlidXRlcyA9ICgpOwogICAgIHB1c2goQGF0dHJpYnV0ZXMsICJSZWFkT25seSIpIGlmICFHZXRO
YW1lZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKSAmJiAhJGludGVyZmFjZS0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRTZXR0ZXJ9OwogICAgIHB1c2goQGF0dHJpYnV0ZXMsICJE
b250RW51bSIpIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0xlZ2FjeVVuZW51
bWVyYWJsZU5hbWVkUHJvcGVydGllc307Ci0KKyAgICAKICAgICBteSAkYXR0cmlidXRlU3RyaW5n
ID0gKChAYXR0cmlidXRlcyA+IDApID8gam9pbigiIHwgIiwgQGF0dHJpYnV0ZXMpIDogIjAiKTsK
KyAgICBteSAkbmF0aXZlVG9KU0NvbnZlcnNpb24gPSBOYXRpdmVUb0pTVmFsdWVVc2luZ1BvaW50
ZXJzKCRuYW1lZEdldHRlck9wZXJhdGlvbiwgJGludGVyZmFjZSwgJG5hbWVkUHJvcGVydHlFeHBy
ZXNzaW9uLCAiKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpIik7CisgICAgCisgICAgcmV0dXJu
ICgkbmF0aXZlVG9KU0NvbnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpOworfQogCi0gICAgaWYg
KCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkR2V0dGVyfSkgewot
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiSlNWYWx1ZSB2YWx1ZTtcbiIp
OwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKHRoaXNPYmplY3Qt
Pm5hbWVHZXR0ZXIoc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUpKSB7XG4iKTsKLSAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsICR7YXR0cmlidXRlU3RyaW5nfSwgdmFsdWUpO1xuIik7CitzdWIgR2VuZXJhdGVOYW1lZEdl
dHRlckxhbWJkYQoreworICAgIG15ICgkb3V0cHV0QXJyYXksICRpbnRlcmZhY2UsICRuYW1lZEdl
dHRlck9wZXJhdGlvbiwgJG5hbWVkR2V0dGVyRnVuY3Rpb25OYW1lLCAkSURMVHlwZSkgPSBAXzsK
KyAgICAKKyAgICAjIE5PVEU6IE5hbWVkIGdldHRlcnMgYXJlIGxpdHRsZSBvZGQuIFRvIGF2b2lk
IGRvaW5nIGR1cGxpY2F0ZSBsb29rdXBzIChvbmNlIHdoZW4gY2hlY2tpbmcgaWYKKyAgICAjICAg
ICAgIHRoZSBwcm9wZXJ0eSBuYW1lIGlzIGEgJ3N1cHBvcnRlZCBwcm9wZXJ0eSBuYW1lJyBhbmQg
b25jZSB0byBnZXQgdGhlIHZhbHVlKSB3ZSBzaWduYWwKKyAgICAjICAgICAgIHRoYXQgYSBwcm9w
ZXJ0eSBpcyBzdXBwb3J0ZWQgYnkgd2hldGhlciBvciBub3QgaXQgaXMgJ251bGwnICh3aGVyZSB3
aGF0IG51bGwgbWVhbnMgaXMKKyAgICAjICAgICAgIGRlcGVuZGFudCBvbiB0aGUgSURMIHR5cGUp
LiBUaGlzIGlzIGJhc2VkIG9uIHRoZSBhc3N1bXB0aW9uIHRoYXQgbm8gbmFtZWQgZ2V0dGVyIHdp
bGwKKyAgICAjICAgICAgIGV2ZXIgYWN0dWFsbHkgd2FudCB0byByZXR1cm4gbnVsbCBhcyBhbiBh
Y3R1YWwgcmV0dXJuIHZhbHVlLCB3aGljaCBzZWVtcyBsaWtlIGFuIG9rCisgICAgIyAgICAgICBh
c3N1bXB0aW9uIHRvIG1ha2UgKHNob3VsZCBpdCB0dXJuIG91dCB0aGlzIGRvZXNuJ3QgaG9sZCBp
biB0aGUgZnV0dXJlLCB3ZSBoYXZlIGxvdHMKKyAgICAjICAgICAgIG9mIG9wdGlvbnM7IGRvIHR3
byBsb29rdXBzLCBhZGQgYW4gZXh0cmEgbGF5ZXIgb2Ygc3RkOjpvcHRpb25hbCwgZXRjLikuCisg
ICAgCisgICAgbXkgJHJlc3VsdFR5cGUgPSAidHlwZW5hbWUgJHtJRExUeXBlfTo6SW1wbGVtZW50
YXRpb25UeXBlIjsKKyAgICAkcmVzdWx0VHlwZSA9ICJFeGNlcHRpb25PcjwiIC4gJHJlc3VsdFR5
cGUgLiAiPiIgaWYgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntN
YXlUaHJvd0V4Y2VwdGlvbn07CisgICAgbXkgJHJldHVyblR5cGUgPSAic3RkOjpvcHRpb25hbDwi
IC4gJHJlc3VsdFR5cGUgLiAiPiI7CisgICAgCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5
TmFtZSkgLT4gJHtyZXR1cm5UeXBlfSB7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkuJHtuYW1lZEdldHRlckZ1
bmN0aW9uTmFtZX0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7XG4i
KTsKKyAgICAKKyAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pIHsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKVxuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiAke3Jlc3VsdFR5cGV9IHsgcmVzdWx0LnJl
bGVhc2VFeGNlcHRpb24oKSB9O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgaWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1ZShyZXN1bHQucmV0dXJuVmFsdWUoKSkp
XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0dXJuICR7
cmVzdWx0VHlwZX0geyAke0lETFR5cGV9OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0
LnJlbGVhc2VSZXR1cm5WYWx1ZSgpKSB9O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDtcbiIpOwogICAgIH0gZWxzZSB7Ci0gICAg
ICAgIG15ICRuYW1lZEdldHRlckZ1bmN0aW9uTmFtZSA9ICRuYW1lZEdldHRlck9wZXJhdGlvbi0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJG5hbWVkR2V0dGVyT3BlcmF0
aW9uLT5uYW1lIHx8ICJuYW1lZEl0ZW0iOwotICAgICAgICBteSAkaXRlbVZhcmlhYmxlID0gIml0
ZW0iOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiYXV0byBpdGVtID0g
dGhpc09iamVjdC0+d3JhcHBlZCgpLiR7bmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWV9KHByb3BlcnR5
TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpO1xuIik7Ci0KLSAgICAgICAgaWYgKCRu
YW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRp
b259KSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKGl0
ZW0uaGFzRXhjZXB0aW9uKCkpIHtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAkaW5kZW50IC4gIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0
YXRlLT52bSgpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50
IC4gIiAgICBwcm9wYWdhdGVFeGNlcHRpb24oKnN0YXRlLCB0aHJvd1Njb3BlLCBpdGVtLnJlbGVh
c2VFeGNlcHRpb24oKSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGlu
ZGVudCAuICIgICAgcmV0dXJuIHRydWU7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgJGluZGVudCAuICJ9XG5cbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAkaW5kZW50IC4gImF1dG8gaXRlbVZhbHVlID0gaXRlbS5yZWxlYXNlUmV0dXJuVmFsdWUoKTtc
biIpOwotCi0gICAgICAgICAgICAkaXRlbVZhcmlhYmxlID0gIml0ZW1WYWx1ZSI7Ci0gICAgICAg
IH0KLQotICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5cGUoJGludGVyZmFjZSwgJG5hbWVk
R2V0dGVyT3BlcmF0aW9uLT50eXBlKTsKLSAgICAgICAgbXkgJG5hdGl2ZVRvSlNDb252ZXJzaW9u
ID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdQb2ludGVycygkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICRp
bnRlcmZhY2UsICRpdGVtVmFyaWFibGUsICIqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCkiLCAx
KTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImlmICghJHtJRExUeXBl
fTo6aXNOdWxsVmFsdWUoJHtpdGVtVmFyaWFibGV9KSkge1xuIik7Ci0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgJGluZGVudCAuICIgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAke2F0
dHJpYnV0ZVN0cmluZ30sICR7bmF0aXZlVG9KU0NvbnZlcnNpb259KTtcbiIpOworICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmICghJHtJRExUeXBlfTo6aXNOdWxsVmFsdWUo
cmVzdWx0KSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBy
ZXR1cm4gJHtyZXN1bHRUeXBlfSB7ICR7SURMVHlwZX06OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJs
ZShyZXN1bHQpIH07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0O1xuIik7CiAgICAgfQotICAgIAotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgJGluZGVudCAuICIgICAgcmV0dXJuIHRydWU7XG4iKTsKLSAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICRpbmRlbnQgLiAifVxuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH07
XG4iKTsKIH0KIAotc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keQorIyBodHRwczov
L2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNsZWdhY3ktcGxhdGZvcm0tb2JqZWN0LWdldG93bnBy
b3BlcnR5CitzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3QKIHsKICAgICBteSAoJG91dHB1
dEFycmF5LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKSA9IEBfOwogICAgIAogICAgIHJldHVybiBp
ZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNs
b3R9OwogICAgIAotICAgIG15ICRuYW1lZEdldHRlck9wZXJhdGlvbiA9IEdldE5hbWVkR2V0dGVy
T3BlcmF0aW9uKCRpbnRlcmZhY2UpOwotICAgIG15ICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uID0g
R2V0SW5kZXhlZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKLSAgICAKLSAgICBteSAkb3du
UHJvcGVydHlDaGVjayA9IHN1YiB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBp
ZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKVxuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0
dXJuIHRydWU7XG4iKTsKLSAgICB9OwotCi0gICAgIyBGSVhNRTogQXMgcGVyIHRoZSBXZWIgSURM
IHNwZWNpZmljYXRpb24sIHRoZSBwcm90b3R5cGUgY2hlY2sgaXMgc3VwcG9zZWQgdG8gc2tpcCAi
bmFtZWQgcHJvcGVydGllcyBvYmplY3RzIjoKLSAgICAjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5p
by93ZWJpZGwvI2Rmbi1uYW1lZC1wcm9wZXJ0eS12aXNpYmlsaXR5Ci0gICAgIyBodHRwczovL2hl
eWNhbS5naXRodWIuaW8vd2ViaWRsLyNkZm4tbmFtZWQtcHJvcGVydGllcy1vYmplY3QKLSAgICBt
eSAkcHJvdG90eXBlQ2hlY2sgPSBzdWIgewotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpO1xuIik7
Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAm
JiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5h
bWUpKVxuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIGZh
bHNlO1xuXG4iKTsKLSAgICB9OwotCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiYm9vbCAke2Ns
YXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4i
KTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihvYmplY3Qp
O1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpc09iamVjdCwgaW5mbygpKTtcbiIpOwotCi0KKyAgICAKKyAgICBteSAkbmFtZWRH
ZXR0ZXJPcGVyYXRpb24gPSBHZXROYW1lZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKKyAg
ICBteSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiA9IEdldEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24o
JGludGVyZmFjZSk7CisgICAgCisgICAgaWYgKCgkbmFtZWRHZXR0ZXJPcGVyYXRpb24gJiYgJG5h
bWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlv
bn0pIHx8ICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbiAmJiAkaW5kZXhlZEdldHRlck9wZXJhdGlv
bi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259KSkgeworICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19T
Q09QRShzdGF0ZS0+dm0oKSk7XG4iKTsKKyAgICB9CisgICAgCisgICAgIyBOT1RFOiBUaGUgYWxv
Z2l0aG0gZm9yIFtbR2V0T3duUHJvcGVydHldXSBjb250YWlucyBvbmx5IHRoZSBmb2xsb3dpbmcg
c3RlcDoKKyAgICAjIDEuIFJldHVybiBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5
KE8sIFAsIGZhbHNlKS4KKyAgICAKKyAgICAjIFRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyBzdGVw
cyBhcmUgZnJvbSB0aGUgTGVnYWN5UGxhdGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0eSBhbGdvcml0
aG0KKyAgICAjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0xlZ2FjeVBsYXRmb3Jt
T2JqZWN0R2V0T3duUHJvcGVydHkKKyAgICAKKyAgICAjIDEuIElmIE8gc3VwcG9ydHMgaW5kZXhl
ZCBwcm9wZXJ0aWVzIGFuZCBQIGlzIGFuIGFycmF5IGluZGV4IHByb3BlcnR5IG5hbWUsIHRoZW46
CiAgICAgaWYgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKSB7Ci0gICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFt
ZSk7XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChvcHRpb25hbElu
ZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5n
dGgoKSkge1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgYXV0byBp
bmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTtcbiIpOwotICAgICAgICBHZW5lcmF0ZUluZGV4
ZWRHZXR0ZXIoJG91dHB1dEFycmF5LCAiICAgICAgICAiLCAkaW50ZXJmYWNlLCAkaW5kZXhlZEdl
dHRlck9wZXJhdGlvbik7CisgICAgICAgICMgMS4xLiBMZXQgaW5kZXggYmUgdGhlIHJlc3VsdCBv
ZiBjYWxsaW5nIFRvVWludDMyKFApLgorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
aWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHtcbiIpOworICAgICAg
ICAKKyAgICAgICAgIyAxLjIuIElmIGluZGV4IGlzIGEgc3VwcG9ydGVkIHByb3BlcnR5IGluZGV4
LCB0aGVuOgorICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBzdXBwb3J0IG5vbi1jb250aWd1
b3VzIGluZGljZXMuCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKGlu
ZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHtcbiIpOworICAg
ICAgICAKKyAgICAgICAgIyBOT1RFOiBHZW5lcmF0ZUluZGV4ZWRHZXR0ZXIgaW1wbGVtZW50cyBz
dGVwcyAxLjIuMSAtIDEuMi44LgorICAgICAgICAKKyAgICAgICAgbXkgKCRuYXRpdmVUb0pTQ29u
dmVyc2lvbiwgJGF0dHJpYnV0ZVN0cmluZykgPSBHZW5lcmF0ZUluZGV4ZWRHZXR0ZXIoJGludGVy
ZmFjZSwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICJpbmRleC52YWx1ZSgpIik7CisgICAgICAg
IAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBhdXRvIHZhbHVlID0g
JHtuYXRpdmVUb0pTQ29udmVyc2lvbn07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgICAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4i
KSBpZiAkaW5kZXhlZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhy
b3dFeGNlcHRpb259OworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAke2F0dHJpYnV0ZVN0cmluZ30sIHZh
bHVlKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICByZXR1
cm4gdHJ1ZTtcbiIpOworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICB9XG4iKTsKKyAgICAgICAgCisgICAgICAgICMgMS4zLiBTZXQgaWdub3JlTmFtZWRQcm9w
cyB0byB0cnVlLgorICAgICAgICAjIE5PVEU6IFNldHRpbmcgaWdub3JlTmFtZWRQcm9wcyBoYXMg
dGhlIGVmZmVjdCBvZiBza2lwcGluZyBzdGVwIDIsIHNvIHdlIGNhbiBlYXJseSByZXR1cm4gaGVy
ZQorICAgICAgICAjICAgICAgIHJhdGhlciB0aGFuIGdvaW5nIHRocm91Z2ggdGhlIHBhY2VzIG9m
IGhhdmluZyBhbiBhY3R1YWwgaWdub3JlTmFtZWRQcm9wcyB1cGRhdGUuCisgICAgICAgIGlmICgk
bmFtZWRHZXR0ZXJPcGVyYXRpb24gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvcn0pIHsKKyAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgICAgICB9
CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKICAgICB9Ci0KLSAgICBt
eSAkaGFzTmFtZWRHZXR0ZXIgPSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24gfHwgJGludGVyZmFjZS0+
ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9OwotICAgIGlmICgkaGFzTmFt
ZWRHZXR0ZXIpIHsKLSAgICAgICAgaWYgKCEkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRl
ZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpKSB7Ci0gICAgICAgICAg
ICAmJG93blByb3BlcnR5Q2hlY2soKTsKLSAgICAgICAgICAgICYkcHJvdG90eXBlQ2hlY2soKTsK
LSAgICAgICAgfQotICAgICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24pIHsKLSAgICAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoIW9wdGlvbmFsSW5kZXggJiYgdGhp
c09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2wo
KSkge1xuIik7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVy
dHlOYW1lLmlzU3ltYm9sKCkpIHtcbiIpOwotICAgICAgICB9Ci0gICAgICAgIEdlbmVyYXRlTmFt
ZWRHZXR0ZXIoJG91dHB1dEFycmF5LCAiICAgICAgICAiLCAkaW50ZXJmYWNlLCAkbmFtZWRHZXR0
ZXJPcGVyYXRpb24pOworICAgIAorICAgICMgMi4gSWYgTyBzdXBwb3J0cyBuYW1lZCBwcm9wZXJ0
aWVzLCB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIG5hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkK
KyAgICAjICAgIGFsZ29yaXRobSB3aXRoIHByb3BlcnR5IG5hbWUgUCBhbmQgb2JqZWN0IE8gaXMg
dHJ1ZSwgYW5kIGlnbm9yZU5hbWVkUHJvcHMgaXMgZmFsc2UsIHRoZW46CisgICAgaWYgKCRuYW1l
ZEdldHRlck9wZXJhdGlvbikgeworICAgICAgICAjIE5PVEU6IGlnbm9yZU5hbWVkUHJvcHMgaXMg
Z3VhcmVudGVlZCB0byBiZSBmYWxzZSBoZXJlLCBhcyBpdCBpcyBpbml0aWFsbHkgZmFsc2UsIGFu
ZCBuZXZlciBzZXQKKyAgICAgICAgIyAgICAgICB0byB0cnVlLCBkdWUgdG8gdGhlIGVhcmx5IHJl
dHVybiBpbiBzdGVwIDEuMworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01BYnN0cmFj
dE9wZXJhdGlvbnMuaCIpOworICAgICAgICAgICAgICAgIAorICAgICAgICBteSAkbmFtZWRHZXR0
ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRl
cy0+e0ltcGxlbWVudGVkQXN9IHx8ICRuYW1lZEdldHRlck9wZXJhdGlvbi0+bmFtZSB8fCAibmFt
ZWRJdGVtIjsKKyAgICAgICAgbXkgJElETFR5cGUgPSBHZXRJRExUeXBlRXhjbHVkaW5nTnVsbGFi
aWxpdHkoJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT50eXBlKTsKKyAgICAgICAg
CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0g
JHtJRExUeXBlfTtcbiIpOworICAgICAgICAKKyAgICAgICAgR2VuZXJhdGVOYW1lZEdldHRlckxh
bWJkYSgkb3V0cHV0QXJyYXksICRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbiwgJG5h
bWVkR2V0dGVyRnVuY3Rpb25OYW1lLCAiR2V0dGVySURMVHlwZSIpOworICAgICAgICAKKyAgICAg
ICAgbXkgJG92ZXJyaWRlQnVpbHRpbiA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVk
QXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVycmlkZUJ1aWx0aW5zIikgPyAiT3ZlcnJpZGVCdWls
dGluczo6WWVzIiA6ICJPdmVycmlkZUJ1aWx0aW5zOjpObyI7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVk
UHJvcGVydHk8JHtvdmVycmlkZUJ1aWx0aW59Pigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7XG4iKTsKKyAgICAgICAgCisgICAgICAgICMgTk9URTog
R2VuZXJhdGVOYW1lZEdldHRlciBpbXBsZW1lbnRzIHN0ZXBzIDIuMSAtIDIuMTAuCisgICAgICAg
IAorICAgICAgICBteSAoJG5hdGl2ZVRvSlNDb252ZXJzaW9uLCAkYXR0cmlidXRlU3RyaW5nKSA9
IEdlbmVyYXRlTmFtZWRHZXR0ZXIoJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAi
V1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpIik7CisgICAgICAgIAorICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIGF1dG8gdmFsdWUgPSAke25hdGl2ZVRvSlNDb252ZXJz
aW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIFJFVFVSTl9J
Rl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpO1xuIikgaWYgJG5hbWVkR2V0dGVyT3BlcmF0
aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07CisgICAgICAgIAor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgJHthdHRyaWJ1dGVTdHJpbmd9LCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgfVxuIik7CiAgICAgfQotCisgICAgCiAgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0
b3J9KSB7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAodGhpc09iamVjdC0+
Z2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4i
KTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIp
OwogICAgIH0KLQotICAgIGlmICghJGhhc05hbWVkR2V0dGVyIHx8ICRjb2RlR2VuZXJhdG9yLT5J
bmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVycmlkZUJ1aWx0aW5zIikp
IHsKLSAgICAgICAgJiRvd25Qcm9wZXJ0eUNoZWNrKCk7Ci0gICAgfQotCi0gICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIHJldHVybiBmYWxzZTtcbiIpOworICAgIAorICAgICMgMy4gUmV0dXJu
IE9yZGluYXJ5R2V0T3duUHJvcGVydHkoTywgUCkuCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9
XG5cbiIpOwogfQogCi1zdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5QnlJbmRleAor
IyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNsZWdhY3ktcGxhdGZvcm0tb2JqZWN0
LWdldG93bnByb3BlcnR5CitzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4CiB7
CiAgICAgbXkgKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSkgPSBAXzsKICAg
ICAKLSAgICByZXR1cm4gaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9t
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleH07Ci0gICAgCi0gICAgbXkgJG5hbWVkR2V0dGVyT3Bl
cmF0aW9uID0gR2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7Ci0gICAgbXkgJGlu
ZGV4ZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZh
Y2UpOworICAgIHJldHVybiBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0
b21HZXRPd25Qcm9wZXJ0eVNsb3R9OworCisgICAgIyBTaW5rIHRoZSBpbnQtdG8tc3RyaW5nIGNv
bnZlcnNpb24gdGhhdCBoYXBwZW5zIHdoZW4gd2UgY3JlYXRlIGEgUHJvcGVydHlOYW1lCisgICAg
IyB0byB0aGUgcG9pbnQgd2hlcmUgd2UgYWN0dWFsbHkgbmVlZCBpdC4KKyAgICBteSAkZGlkR2Vu
ZXJhdGVQcm9wZXJ0eU5hbWUgPSAwOworICAgIG15ICRwcm9wZXJ0eU5hbWVHZW5lcmF0aW9uID0g
c3ViIHsKKyAgICAgICAgcmV0dXJuIGlmICRkaWRHZW5lcmF0ZVByb3BlcnR5TmFtZTsKKyAgICAg
ICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTtcbiIpOworICAgICAgICAkZGlkR2VuZXJh
dGVQcm9wZXJ0eU5hbWUgPSAxOworICAgIH07CiAgICAgCiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiYm9vbCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYg
c2xvdClcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+
KG9iamVjdCk7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpO1xuIik7CiAgICAgCi0gICAgIyBTaW5r
IHRoZSBpbnQtdG8tc3RyaW5nIGNvbnZlcnNpb24gdGhhdCBoYXBwZW5zIHdoZW4gd2UgY3JlYXRl
IGEgUHJvcGVydHlOYW1lCi0gICAgIyB0byB0aGUgcG9pbnQgd2hlcmUgd2UgYWN0dWFsbHkgbmVl
ZCBpdC4KLSAgICBteSAkZ2VuZXJhdGVkUHJvcGVydHlOYW1lID0gMDsKLSAgICBteSAkcHJvcGVy
dHlOYW1lR2VuZXJhdGlvbiA9IHN1YiB7Ci0gICAgICAgIGlmICgkZ2VuZXJhdGVkUHJvcGVydHlO
YW1lKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpO1xuIik7Ci0gICAgICAgICRnZW5lcmF0ZWRQcm9wZXJ0eU5hbWUgPSAx
OwotICAgIH07CisgICAgbXkgJG5hbWVkR2V0dGVyT3BlcmF0aW9uID0gR2V0TmFtZWRHZXR0ZXJP
cGVyYXRpb24oJGludGVyZmFjZSk7CisgICAgbXkgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24gPSBH
ZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOworICAgIAorICAgIGlmICgoJG5h
bWVkR2V0dGVyT3BlcmF0aW9uICYmICRuYW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259KSB8fCAoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24g
JiYgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93
RXhjZXB0aW9ufSkpIHsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpO1xuIik7CisgICAgfQor
ICAgIAorICAgICMgTk9URTogVGhlIGFsb2dpdGhtIGZvciBbW0dldE93blByb3BlcnR5XV0gY29u
dGFpbnMgb25seSB0aGUgZm9sbG93aW5nIHN0ZXA6CisgICAgIyAxLiBSZXR1cm4gTGVnYWN5UGxh
dGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0eShPLCBQLCBmYWxzZSkuCisgICAgCisgICAgIyBUaGVy
ZWZvcmUsIHRoZSBmb2xsb3dpbmcgc3RlcHMgYXJlIGZyb20gdGhlIExlZ2FjeVBsYXRmb3JtT2Jq
ZWN0R2V0T3duUHJvcGVydHkgYWxnb3JpdGhtCisgICAgIyBodHRwczovL2hleWNhbS5naXRodWIu
aW8vd2ViaWRsLyNMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5CiAgICAgCisgICAg
IyAxLiBJZiBPIHN1cHBvcnRzIGluZGV4ZWQgcHJvcGVydGllcyBhbmQgUCBpcyBhbiBhcnJheSBp
bmRleCBwcm9wZXJ0eSBuYW1lLCB0aGVuOgogICAgIGlmICgkaW5kZXhlZEdldHRlck9wZXJhdGlv
bikgewotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKExJS0VMWShpbmRleCA8
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkpIHtcbiIpOwotICAgICAgICBHZW5lcmF0
ZUluZGV4ZWRHZXR0ZXIoJG91dHB1dEFycmF5LCAiICAgICAgICAiLCAkaW50ZXJmYWNlLCAkaW5k
ZXhlZEdldHRlck9wZXJhdGlvbik7CisgICAgICAgICMgMS4xLiBMZXQgaW5kZXggYmUgdGhlIHJl
c3VsdCBvZiBjYWxsaW5nIFRvVWludDMyKFApLgorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7XG4iKTsKKyAgICAg
ICAgCisgICAgICAgICMgMS4yLiBJZiBpbmRleCBpcyBhIHN1cHBvcnRlZCBwcm9wZXJ0eSBpbmRl
eCwgdGhlbjoKKyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgc3VwcG9ydCBub24tY29udGln
dW91cyBpbmRpY2VzLgorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmIChp
bmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkge1xuIik7CisgICAgICAgIAor
ICAgICAgICAjIE5PVEU6IEdlbmVyYXRlSW5kZXhlZEdldHRlciBpbXBsZW1lbnRzIHN0ZXBzIDEu
Mi4xIC0gMS4yLjguCisgICAgICAgIAorICAgICAgICBteSAoJG5hdGl2ZVRvSlNDb252ZXJzaW9u
LCAkYXR0cmlidXRlU3RyaW5nKSA9IEdlbmVyYXRlSW5kZXhlZEdldHRlcigkaW50ZXJmYWNlLCAk
aW5kZXhlZEdldHRlck9wZXJhdGlvbiwgImluZGV4Iik7CisgICAgICAgIAorICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBhdXRvIHZhbHVlID0gJHtuYXRpdmVUb0pTQ29u
dmVyc2lvbn07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAg
UkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKSBpZiAkaW5kZXhlZEdl
dHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259Owor
ICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAke2F0dHJpYnV0ZVN0cmluZ30sIHZhbHVlKTtcbiIpOworICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwor
ICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICB9XG4iKTsKKyAg
ICAgICAgCisgICAgICAgICMgMS4zLiBTZXQgaWdub3JlTmFtZWRQcm9wcyB0byB0cnVlLgorICAg
ICAgICAjIE5PVEU6IFNldHRpbmcgaWdub3JlTmFtZWRQcm9wcyBoYXMgdGhlIGVmZmVjdCBvZiBz
a2lwcGluZyBzdGVwIDIsIHNvIHdlIGNhbiBlYXJseSByZXR1cm4gaGVyZQorICAgICAgICAjICAg
ICAgIHJhdGhlciB0aGFuIGdvaW5nIHRocm91Z2ggdGhlIHBhY2VzIG9mIGhhdmluZyBhbiBhY3R1
YWwgaWdub3JlTmFtZWRQcm9wcyB1cGRhdGUuCisgICAgICAgIGlmICgkbmFtZWRHZXR0ZXJPcGVy
YXRpb24gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJv
cGVydHlTbG90QW5kRGVzY3JpcHRvcn0pIHsKKyAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9i
amVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTtcbiIpOworICAgICAgICB9CiAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKICAgICB9Ci0KLSAgICAjIEluZGV4aW5nIGFuIG9i
amVjdCB3aXRoIGFuIGludGVnZXIgdGhhdCBpcyBub3QgYSBzdXBwb3J0ZWQgcHJvcGVydHkgaW5k
ZXggc2hvdWxkIG5vdCBjYWxsIHRoZSBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXIuCi0gICAgIyBodHRw
czovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNpZGwtaW5kZXhlZC1wcm9wZXJ0aWVzCi0gICAg
aWYgKCEkaW5kZXhlZEdldHRlck9wZXJhdGlvbiAmJiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uIHx8
ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkR2V0dGVyfSkpIHsK
KyAgICAKKyAgICAjIDIuIElmIE8gc3VwcG9ydHMgbmFtZWQgcHJvcGVydGllcywgdGhlIHJlc3Vs
dCBvZiBydW5uaW5nIHRoZSBuYW1lZCBwcm9wZXJ0eSB2aXNpYmlsaXR5CisgICAgIyAgICBhbGdv
cml0aG0gd2l0aCBwcm9wZXJ0eSBuYW1lIFAgYW5kIG9iamVjdCBPIGlzIHRydWUsIGFuZCBpZ25v
cmVOYW1lZFByb3BzIGlzIGZhbHNlLCB0aGVuOgorICAgIGlmICgkbmFtZWRHZXR0ZXJPcGVyYXRp
b24pIHsKKyAgICAgICAgIyBOT1RFOiBpZ25vcmVOYW1lZFByb3BzIGlzIGd1YXJlbnRlZWQgdG8g
YmUgZmFsc2UgaGVyZSwgYXMgaXQgaXMgaW5pdGlhbGx5IGZhbHNlLCBhbmQgbmV2ZXIgc2V0Cisg
ICAgICAgICMgICAgICAgdG8gdHJ1ZSwgZHVlIHRvIHRoZSBlYXJseSByZXR1cm4gaW4gc3RlcCAx
LjMKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgi
KTsKKyAgICAgICAgICAgICAgICAKICAgICAgICAgJiRwcm9wZXJ0eU5hbWVHZW5lcmF0aW9uKCk7
Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJ
bmZvKCkgPT0gaW5mbygpKSB7XG4iKTsKLSAgICAgICAgR2VuZXJhdGVOYW1lZEdldHRlcigkb3V0
cHV0QXJyYXksICIgICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbik7
CisgICAgICAgIAorICAgICAgICBteSAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRH
ZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0ltcGxlbWVudGVkQXN9IHx8ICRu
YW1lZEdldHRlck9wZXJhdGlvbi0+bmFtZSB8fCAibmFtZWRJdGVtIjsKKyAgICAgICAgbXkgJElE
TFR5cGUgPSBHZXRJRExUeXBlRXhjbHVkaW5nTnVsbGFiaWxpdHkoJGludGVyZmFjZSwgJG5hbWVk
R2V0dGVyT3BlcmF0aW9uLT50eXBlKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gJHtJRExUeXBlfTtcbiIpOworICAgICAg
ICAKKyAgICAgICAgR2VuZXJhdGVOYW1lZEdldHRlckxhbWJkYSgkb3V0cHV0QXJyYXksICRpbnRl
cmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbiwgJG5hbWVkR2V0dGVyRnVuY3Rpb25OYW1lLCAi
R2V0dGVySURMVHlwZSIpOworICAgICAgICAKKyAgICAgICAgbXkgJG92ZXJyaWRlQnVpbHRpbiA9
ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJP
dmVycmlkZUJ1aWx0aW5zIikgPyAiT3ZlcnJpZGVCdWlsdGluczo6WWVzIiA6ICJPdmVycmlkZUJ1
aWx0aW5zOjpObyI7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoYXV0byBu
YW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8JHtvdmVycmlkZUJ1aWx0
aW59Pigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7
XG4iKTsKKyAgICAgICAgCisgICAgICAgICMgTk9URTogR2VuZXJhdGVOYW1lZEdldHRlciBpbXBs
ZW1lbnRzIHN0ZXBzIDIuMSAtIDIuMTAuCisgICAgICAgIAorICAgICAgICBteSAoJG5hdGl2ZVRv
SlNDb252ZXJzaW9uLCAkYXR0cmlidXRlU3RyaW5nKSA9IEdlbmVyYXRlTmFtZWRHZXR0ZXIoJGlu
dGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAiV1RGTW92ZShuYW1lZFByb3BlcnR5LnZh
bHVlKCkpIik7CisKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBhdXRvIHZh
bHVlID0gJHtuYXRpdmVUb0pTQ29udmVyc2lvbn07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtc
biIpIGlmICRuYW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhy
b3dFeGNlcHRpb259OworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgdmFsdWUp
O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRydWU7
XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgIH0KLQor
ICAgIAogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRP
d25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfSkgewogICAgICAgICAmJHByb3BlcnR5TmFtZUdl
bmVyYXRpb24oKTsKKyAgICAKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICh0
aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShzdGF0ZSwgcHJvcGVydHlOYW1l
LCBzbG90KSlcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVy
biB0cnVlO1xuIik7CiAgICAgfQotCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRl
eCwgc2xvdCk7XG4iKTsKKyAgICAKKyAgICAjIDMuIFJldHVybiBPcmRpbmFyeUdldE93blByb3Bl
cnR5KE8sIFApLgorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpO1xu
Iik7CisgICAgCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIH0KIApAQCAtNTg4
LDEwICs3MjksMTEgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlOYW1lcwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgInZvaWQgJHtjbGFzc05hbWV9OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9w
ZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSlcbiIpOwogICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KG9iamVjdCk7XG4iKTsKLSAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZv
KCkpO1xuIik7Ci0KKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7XG4iKTsKKyAgICAKICAgICAjIDEuIElmIHRoZSBv
YmplY3Qgc3VwcG9ydHMgaW5kZXhlZCBwcm9wZXJ0aWVzLCB0aGVuIHRoZSBvYmplY3TigJlzIHN1
cHBvcnRlZAogICAgICMgICAgcHJvcGVydHkgaW5kaWNlcyBhcmUgZW51bWVyYXRlZCBmaXJzdCwg
aW4gbnVtZXJpY2FsIG9yZGVyLgorICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHN1cHBvcnQgbm9u
LWNvbnRpZ3VvdXMgaW5kaWNlcy4KICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24pIHsK
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNv
dW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSlcbiIp
OwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHByb3BlcnR5TmFtZXMuYWRk
KElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTtcbiIpOwpAQCAtNjE2LDcgKzc1OCw3IEBAIHN1
YiBHZW5lcmF0ZUdldE93blByb3BlcnR5TmFtZXMKICAgICAKICAgICAjIDMuIEZpbmFsbHksIGFu
eSBlbnVtZXJhYmxlIG93biBwcm9wZXJ0aWVzIG9yIHByb3BlcnRpZXMgZnJvbSB0aGUgb2JqZWN0
4oCZcwogICAgICMgICAgcHJvdG90eXBlIGNoYWluIGFyZSB0aGVuIGVudW1lcmF0ZWQsIGluIG5v
IGRlZmluZWQgb3JkZXIuCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEJhc2U6OmdldE93
blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpO1xu
Iik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpO1xuIik7CiAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIH0KIApAQCAtNzIwLDcgKzg2Miw3IEBAIHN1YiBH
ZW5lcmF0ZVB1dAogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBw
dXRSZXN1bHQ7XG5cbiIpOwogICAgIH0KICAgICAKLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgcHV0UHJvcGVydHlTbG90KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBy
ZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgcHV0UHJvcGVydHlTbG90KTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxu
Iik7CiB9CiAKQEAgLTc1Niw3ICs4OTgsNyBAQCBzdWIgR2VuZXJhdGVQdXRCeUluZGV4CiAgICAg
fQogICAgIAogICAgIGlmICgkbmFtZWRTZXR0ZXJPcGVyYXRpb24pIHsKLSAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6
ZnJvbShzdGF0ZSwgaW5kZXgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTtcbiIp
OwogICAgICAgICAgICAgICAgIAogICAgICAgICBteSAkYWRkaXRpb25hbEluZGVudCA9ICIiOwog
ICAgICAgICBpZiAoISRvdmVycmlkZUJ1aWx0aW5zKSB7CkBAIC03NzYsNyArOTE4LDcgQEAgc3Vi
IEdlbmVyYXRlUHV0QnlJbmRleAogICAgIAogICAgIGFzc2VydCgiVXNpbmcgYm90aCBhIG5hbWVk
IHByb3BlcnR5IHNldHRlciBhbmQgW0N1c3RvbU5hbWVkU2V0dGVyXSB0b2dldGhlciBpcyBub3Qg
c3VwcG9ydGVkLiIpIGlmICRuYW1lZFNldHRlck9wZXJhdGlvbiAmJiAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZFNldHRlcn07CiAgICAgaWYgKCRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfSkgewotICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tKHN0YXRlLCBpbmRleCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpO1xu
Iik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBQdXRQcm9wZXJ0eVNsb3Qgc2xv
dCh0aGlzT2JqZWN0LCBzaG91bGRUaHJvdyk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIGJvb2wgcHV0UmVzdWx0ID0gZmFsc2U7XG4iKTsKICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGlmICh0aGlzT2JqZWN0LT5wdXREZWxlZ2F0ZShzdGF0ZSwgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCwgcHV0UmVzdWx0KSlcbiIpOwpAQCAtNzg0LDcgKzkyNiw3IEBA
IHN1YiBHZW5lcmF0ZVB1dEJ5SW5kZXgKICAgICB9CiAgICAgCiAgICAgaWYgKCEkZWxsaWRlc0Nh
bGxzVG9CYXNlKSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQmFz
ZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU09iamVjdDo6cHV0
QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7XG4iKTsKICAg
ICB9CiAgICAgCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKQEAgLTg4MiwxMSAr
MTAyNCwxMSBAQCBzdWIgR2VuZXJhdGVEZWZpbmVPd25Qcm9wZXJ0eQogICAgICAgICAjICAgIGRv
ZXMgbm90IGhhdmUgYW4gb3duIHByb3BlcnR5IG5hbWVkIFAsIHRoZW46CiAgICAgICAgIG15ICRv
dmVycmlkZUJ1aWx0aW5zID0gJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1
dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKTsKICAgICAgICAgaWYgKCEkb3ZlcnJp
ZGVCdWlsdGlucykgewotICAgICAgICAgICAgIyBGSVhNRTogSXMgQmFzZTo6Z2V0T3duUHJvcGVy
dHlTbG90IHRoZSByaWdodCBmdW5jdGlvbiB0byBjYWxsPyBJcyB0aGVyZSBhIGZ1bmN0aW9uIHRo
YXQgd2lsbAorICAgICAgICAgICAgIyBGSVhNRTogSXMgSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdCB0aGUgcmlnaHQgZnVuY3Rpb24gdG8gY2FsbD8gSXMgdGhlcmUgYSBmdW5jdGlvbiB0aGF0
IHdpbGwKICAgICAgICAgICAgICMgICAgICAgIG9ubHkgbG9vayBhdCB0aGUgYWN0dWFsIHByb3Bl
cnRpZXMsIGFuZCBub3QgY2FsbCBpbnRvIG91ciBpbXBsZW1lbnRhdGlvbiBvZiB0aGUKICAgICAg
ICAgICAgICMgICAgICAgIFtbR2V0T3duUHJvcGVydHldXSBob29rPwogICAgICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudC4gIiAgICAgICAgUHJvcGVydHlTbG90
IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1J
bnF1aXJ5IH07XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFkZGl0aW9u
YWxJbmRlbnQuICIgICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7XG4iKTsKKyAgICAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgJGFkZGl0aW9uYWxJbmRlbnQuICIgICAgICAgIGlmICghSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KSkge1xuIik7CiAgICAgICAgICAgICAkYWRkaXRpb25hbEluZGVudCAuPSAiICAgICI7CiAgICAg
ICAgIH0KICAgICAgICAgaWYgKCEkbmFtZWRTZXR0ZXJPcGVyYXRpb24pIHsKQEAgLTkyOSw3ICsx
MDcxLDcgQEAgc3ViIEdlbmVyYXRlRGVmaW5lT3duUHJvcGVydHkKICAgICAKICAgICAjIDQuIFJl
dHVybiBPcmRpbmFyeURlZmluZU93blByb3BlcnR5KE8sIFAsIERlc2MpLgogICAgICMgRklYTUU6
IERvZXMgdGhpcyBkbyB0aGUgc2FtZSB0aGluZz8KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7XG4iKTsKKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpO1xuIik7CiAgICAgCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIH0K
QEAgLTk0OSw3ICsxMDkxLDcgQEAgc3ViIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlDb21tb24KICAg
ICBhc3NlcnQoIk5hbWVkIHByb3BlcnR5IGRlbGV0ZXJzIGFyZSBub3QgYWxsb3dlZCBvbiBnbG9i
YWwgb2JqZWN0IGludGVyZmFjZXMuIikgaWYgSXNHbG9iYWxPclByaW1hcnlHbG9iYWxJbnRlcmZh
Y2UoJGludGVyZmFjZSk7CiAKICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01BYnN0cmFjdE9w
ZXJhdGlvbnMuaCIsICRjb25kaXRpb25hbCk7Ci0gICAgbXkgJG92ZXJyaWRlQnVpbHRpbiA9ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVy
cmlkZUJ1aWx0aW5zIikgPyAidHJ1ZSIgOiAiZmFsc2UiOworICAgIG15ICRvdmVycmlkZUJ1aWx0
aW4gPSAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRlZEF0dHJpYnV0ZSgkaW50ZXJmYWNl
LCAiT3ZlcnJpZGVCdWlsdGlucyIpID8gIk92ZXJyaWRlQnVpbHRpbnM6OlllcyIgOiAiT3ZlcnJp
ZGVCdWlsdGluczo6Tm8iOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoaXNWaXNp
YmxlTmFtZWRQcm9wZXJ0eTwke292ZXJyaWRlQnVpbHRpbn0+KCpzdGF0ZSwgdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lKSkge1xuIik7CiAKICAgICBpZiAoJG9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Q0VSZWFjdGlvbnN9KSB7CkBAIC0xMDI5LDkgKzExNzEsOSBAQCBzdWIgR2VuZXJh
dGVEZWxldGVQcm9wZXJ0eURlZmluaXRpb24KICAgICAjIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlD
b21tb24gaW1wbGVtZW50cyBzdGVwIDIuCiAgICAgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1v
bigkb3V0cHV0QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRvcGVyYXRpb24sICRjb25k
aXRpb25hbCk7CiAKLSAgICAjIEZJWE1FOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZG93biBCYXNlOjpk
ZWxldGVQcm9wZXJ0eSwgcGVyaGFwcyB3ZSBzaG91bGQgaW1wbGVtZW50CisgICAgIyBGSVhNRTog
SW5zdGVhZCBvZiBjYWxsaW5nIGRvd24gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5LCBwZXJoYXBz
IHdlIHNob3VsZCBpbXBsZW1lbnQKICAgICAjIHRoZSByZW1haW5lZCBvZiB0aGUgYWxnb3JpdGht
IG91cnNlbHZlcy4KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEJhc2U6OmRl
bGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpO1xuIik7CisgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoY2VsbCwg
c3RhdGUsIHByb3BlcnR5TmFtZSk7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5c
biIpOwogfQogCkBAIC0xMDY0LDcgKzEyMDYsNyBAQCBzdWIgR2VuZXJhdGVEZWxldGVQcm9wZXJ0
eUJ5SW5kZXhEZWZpbml0CiAgICAgICAgICMgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1vbiBp
bXBsZW1lbnRzIHN0ZXAgMi4KICAgICAgICAgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1vbigk
b3V0cHV0QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05hbWUsICRvcGVyYXRpb24sICRjb25kaXRp
b25hbCk7CiAKLSAgICAgICAgIyBGSVhNRTogSW5zdGVhZCBvZiBjYWxsaW5nIGRvd24gQmFzZTo6
ZGVsZXRlUHJvcGVydHlCeUluZGV4LCBwZXJoYXBzIHdlIHNob3VsZCBpbXBsZW1lbnQKKyAgICAg
ICAgIyBGSVhNRTogSW5zdGVhZCBvZiBjYWxsaW5nIGRvd24gSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5QnlJbmRleCwgcGVyaGFwcyB3ZSBzaG91bGQgaW1wbGVtZW50CiAgICAgICAgICMgdGhlIHJl
bWFpbmVkZXIgb2YgdGhlIGFsZ29yaXRtIChzdGVwcyAzIGFuZCA0KSBvdXJzZWx2ZXMuCiAgICAg
ICAgIAogICAgICAgICAjIDMuIElmIE8gaGFzIGFuIG93biBwcm9wZXJ0eSB3aXRoIG5hbWUgUCwg
dGhlbjoKQEAgLTEwNzIsNyArMTIxNCw3IEBAIHN1YiBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5QnlJ
bmRleERlZmluaXQKICAgICAgICAgIyAgICAyLiBPdGhlcndpc2UsIHJlbW92ZSB0aGUgcHJvcGVy
dHkgZnJvbSBPLgogICAgICAgICAjIDMuIFJldHVybiB0cnVlLgogICAgICAgICAKLSAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eUJ5SW5k
ZXgoY2VsbCwgc3RhdGUsIGluZGV4KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgc3RhdGUs
IGluZGV4KTtcbiIpOwogICAgIH0KIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7
CkBAIC0xNTQxLDE3ICsxNjgzLDYgQEAgc3ViIEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90CiB7CiAgICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwogICAgIHJldHVybiAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3R9Ci0gICAg
ICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkR2V0dGVy
fQotICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRP
d25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfQotICAgICAgICB8fCBHZXRJbmRleGVkR2V0dGVy
T3BlcmF0aW9uKCRpbnRlcmZhY2UpCi0gICAgICAgIHx8IEdldE5hbWVkR2V0dGVyT3BlcmF0aW9u
KCRpbnRlcmZhY2UpOwotfQotCi1zdWIgSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4Ci17Ci0gICAgbXkgJGludGVyZmFjZSA9IHNoaWZ0OwotICAgIHJldHVybiAkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4fQotICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21O
YW1lZEdldHRlcn0KICAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvcn0KICAgICAgICAgfHwgR2V0SW5k
ZXhlZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKQogICAgICAgICB8fCBHZXROYW1lZEdldHRl
ck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKQEAgLTIyNzAsOCArMjQwMSw4IEBAIHN1YiBHZW5lcmF0
ZUhlYWRlcgogICAgIG15ICRuYW1lZEdldHRlck9wZXJhdGlvbiA9IEdldE5hbWVkR2V0dGVyT3Bl
cmF0aW9uKCRpbnRlcmZhY2UpOwogICAgIG15ICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uID0gR2V0
SW5kZXhlZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKIAotICAgICMgRklYTUU6IFdoeSBk
b2Vzbid0IHRoaXMgYWxzbyBpbmNsdWRlIEluZGV4ZWQgR2V0dGVycywge0N1c3RvbUdldE93blBy
b3BlcnR5U2xvdH0gYW5kIHtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfQot
ICAgIGlmICgkbmFtZWRHZXR0ZXJPcGVyYXRpb24gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9KSB7CisgICAgIyBGSVhNRTogV2h5IGRvZXNuJ3Qg
dGhpcyBhbHNvIGluY2x1ZGUgSW5kZXhlZCBHZXR0ZXJzLCBbQ3VzdG9tR2V0T3duUHJvcGVydHlT
bG90XSBhbmQgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3JdCisgICAgaWYg
KCRuYW1lZEdldHRlck9wZXJhdGlvbikgewogICAgICAgICBpZiAoJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSkg
ewogICAgICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkdldE93blByb3BlcnR5U2xvdElz
SW1wdXJlIn0gPSAxOwogICAgICAgICB9IGVsc2UgewpAQCAtMjI4NCw5ICsyNDE1LDcgQEAgc3Vi
IEdlbmVyYXRlSGVhZGVyCiAgICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgc3Rh
dGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3QqLCBKU0M6OkV4ZWNTdGF0
ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAg
ICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QifSA9IDE7
Ci0gICAgfQotICAgIAotICAgIGlmIChJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dEJ5SW5kZXgoJGludGVyZmFjZSkpIHsKKyAgICAgICAgCiAgICAgICAgIHB1c2goQGhlYWRlckNv
bnRlbnQsICIgICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpT
T2JqZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJv
cGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkludGVyY2Vw
dHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8ifSA9IDE7
CiAgICAgfQpAQCAtMjUzOSwxMSArMjY2OCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlm
ICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNs
b3RBbmREZXNjcmlwdG9yfSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJv
b2wgZ2V0T3duUHJvcGVydHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3Bl
cnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgIH0KLQotICAgIGlmICgkaW50
ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn0pIHsKLSAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIG5hbWVHZXR0ZXIoSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlJik7XG4iKTsKLSAgICB9Ci0KKyAg
ICAKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRT
ZXR0ZXJ9KSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxl
Z2F0ZShKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpT
Qzo6UHV0UHJvcGVydHlTbG90JiwgYm9vbCYgcHV0UmVzdWx0KTtcbiIpOwogICAgIH0KQEAgLTM3
OTgsNyArMzkyMyw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBt
eSAkcnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVSdW50aW1lRW5hYmxl
Q29uZGl0aW9uYWxTdHJpbmcoJG9wZXJhdGlvbk9yQXR0cmlidXRlKTsKICAgICAgICAgICAgIG15
ICRuYW1lID0gJG9wZXJhdGlvbk9yQXR0cmlidXRlLT5uYW1lOwogICAgICAgICAgICAgcHVzaChA
aW1wbENvbnRlbnQsICIgICAgaWYgKCEke3J1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ30p
IHtcbiIpOwotICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIElkZW50aWZp
ZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsK
KyAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikpO1xuIik7CiAgICAgICAgICAgICBw
dXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNj
b3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpO1xuIik7
CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFt
ZSk7XG4iKTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwpAQCAt
MzgyMCw3ICszOTQ1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAg
ICAgICBteSAkbmFtZSA9ICRvcGVyYXRpb25PckF0dHJpYnV0ZS0+bmFtZTsKIAogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY29udGV4dCB8fCAhZG93bmNhc3Q8
RG9jdW1lbnQ+KCpjb250ZXh0KS5zZXR0aW5ncygpLiR7ZW5hYmxlRnVuY3Rpb259KCkpIHtcbiIp
OwotICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikpO1xuIik7Cisg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsKICAgICAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNj
b3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUp
O1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEpTT2Jq
ZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpLCBwcm9w
ZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAg
fVxuIik7CkBAIC00MDMzLDExICs0MTU4LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24K
ICAgICB9CiAKICAgICBpZiAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoJGlu
dGVyZmFjZSkpIHsKLSAgICAgICAgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KFxAaW1w
bENvbnRlbnQsICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOwotICAgIH0KLSAgICAKLSAgICBpZiAo
SW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KCRpbnRlcmZhY2UpKSB7
Ci0gICAgICAgIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keUJ5SW5kZXgoXEBpbXBsQ29u
dGVudCwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSk7CisgICAgICAgIEdlbmVyYXRlR2V0T3duUHJv
cGVydHlTbG90KFxAaW1wbENvbnRlbnQsICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOworICAgICAg
ICBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoXEBpbXBsQ29udGVudCwgJGludGVy
ZmFjZSwgJGNsYXNzTmFtZSk7CiAgICAgfQogICAgIAogICAgIGlmIChJbnN0YW5jZU92ZXJyaWRl
c0dldE93blByb3BlcnR5TmFtZXMoJGludGVyZmFjZSkpIHsKQEAgLTU5NTksNyArNjA4MSw4IEBA
IHN1YiBHZXRCYXNlSURMVHlwZQogICAgICAgICAiSlNPTiIgPT4gIklETEpTT04iLAogICAgICAg
ICAiU2VyaWFsaXplZFNjcmlwdFZhbHVlIiA9PiAiSURMU2VyaWFsaXplZFNjcmlwdFZhbHVlPFNl
cmlhbGl6ZWRTY3JpcHRWYWx1ZT4iLAogICAgICAgICAiWFBhdGhOU1Jlc29sdmVyIiA9PiAiSURM
WFBhdGhOU1Jlc29sdmVyPFhQYXRoTlNSZXNvbHZlcj4iLAotCisgICAgICAgICJET01XaW5kb3dT
aGVsbCIgPT4gIklETERPTVdpbmRvd1NoZWxsIiwKKyAgICAgICAgCiAgICAgICAgICMgQ29udmVu
aWVuY2UgdHlwZSBhbGlhc2VzCiAgICAgICAgICJCdWZmZXJTb3VyY2UiID0+ICJJRExCdWZmZXJT
b3VyY2UiLAogICAgICk7CkBAIC02MTE1LDExICs2MjM4LDEyIEBAIHN1YiBOYXRpdmVUb0pTVmFs
dWVET01Db252ZXJ0TmVlZHNTdGF0ZQogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5J
c0RpY3Rpb25hcnlUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+
SXNJbnRlcmZhY2VUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+
SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEg
IkRPTVdpbmRvd1NoZWxsIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiRGF0ZSI7
CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIkpTT04iOwogICAgIHJldHVybiAxIGlm
ICR0eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwogICAgIHJldHVybiAxIGlm
ICR0eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwotCisgICAgCiAgICAgcmV0dXJuIDA7
CiB9CiAKQEAgLTYxNDUsNiArNjI2OSw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0
TmVlZHNHbG9iYWwKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5
VHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZXJmYWNl
VHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJh
eVR5cGUoJHR5cGUpOworICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJET01XaW5kb3dT
aGVsbCI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRW
YWx1ZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciI7
CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5q
c29uCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0
cmlidXRlcy5qc29uCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAtOTUsOSArOTUs
NiBAQAogICAgICAgICAiQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90IjogewogICAgICAgICAgICAg
ImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKLSAgICAgICAgIkN1
c3RvbUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgiOiB7Ci0gICAgICAgICAgICAiY29udGV4dHNB
bGxvd2VkIjogWyJpbnRlcmZhY2UiXQotICAgICAgICB9LAogICAgICAgICAiQ3VzdG9tR2V0T3du
UHJvcGVydHlTbG90QW5kRGVzY3JpcHRvciI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93
ZWQiOiBbImludGVyZmFjZSJdCiAgICAgICAgIH0sCkBAIC0xMTMsOSArMTEwLDYgQEAKICAgICAg
ICAgIkN1c3RvbUlzUmVhY2hhYmxlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6
IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKLSAgICAgICAgIkN1c3RvbU5hbWVkR2V0dGVyIjog
ewotICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KLSAgICAgICAg
fSwKICAgICAgICAgIkN1c3RvbU5hbWVkR2V0dGVyT25Qcm90b3R5cGUiOiB7CiAgICAgICAgICAg
ICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQogICAgICAgICB9LApJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RDdXN0b21OYW1lZEdldHRlci5p
ZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rl
c3RDdXN0b21OYW1lZEdldHRlci5pZGwJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsCShub25l
eGlzdGVudCkKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAxMSBHb29n
bGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1
c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXN0ckFyZywgd2l0aCBvciB3aXRob3V0Ci0gKiBt
b2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNv
bmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0
aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICog
Mi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQg
dGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRpb24gYW5k
L29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKiAz
LiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVz
IG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHBy
b21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0
IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJF
IElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFO
WQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRXN0ckFyZywgSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJM
RSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVN
UExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVUIE5PVCBM
SU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOwot
ICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElP
TikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hF
VEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElO
RyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUg
VVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklM
SVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBDdXN0b21OYW1lZEdldHRlcgotXSBp
bnRlcmZhY2UgVGVzdEN1c3RvbU5hbWVkR2V0dGVyIHsKLSAgICB2b2lkIGFub3RoZXJGdW5jdGlv
bihET01TdHJpbmcgc3RyKTsKLX07Ci0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyLmNwcAkocmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAkobm9uZXhpc3RlbnQp
CkBAIC0xLDI3OSArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRoZSBXZWJL
aXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2VuZXJhdGVk
IGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQotCi0gICAgVGhpcyBsaWJy
YXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgotICAg
IG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRh
dGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQgeW91ciBv
cHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRpc3RyaWJ1
dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJVEhPVVQg
QU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKLSAgICBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUg
dGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRh
aWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExp
YnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBsaWJyYXJ5
OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAgdGhlIEZy
ZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBGaWZ0aCBG
bG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNsdWRlICJj
b25maWcuaCIKLSNpbmNsdWRlICJKU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIgotCi0jaW5jbHVk
ZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVj
dGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJKU0RPTUV4Y2Vw
dGlvbkhhbmRsaW5nLmgiCi0jaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKLSNpbmNsdWRlICJK
U0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90b3R5cGUu
aD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7Ci0KLW5h
bWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gRnVuY3Rpb25zCi0KLUpTQzo6RW5jb2RlZEpTVmFsdWUg
SlNDX0hPU1RfQ0FMTCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5v
dGhlckZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7Ci0KLS8vIEF0dHJpYnV0ZXMKLQotSlNDOjpF
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwotYm9vbCBz
ZXRKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci0KLWNsYXNzIEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9iamVjdCB7
Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTQzo6SlNOb25GaW5hbE9iamVjdDsKLSAgICBz
dGF0aWMgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIGNyZWF0ZShKU0M6OlZNJiB2
bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVj
dHVyZSkKLSAgICB7Ci0gICAgICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKiBw
dHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyUHJvdG90eXBlPih2bS5oZWFwKSkgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUo
dm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlv
bih2bSk7Ci0gICAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgREVDTEFSRV9JTkZPOwot
ICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBK
U0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUp
Ci0gICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgZ2xvYmFs
T2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBTdHJ1Y3R1
cmVGbGFncyksIGluZm8oKSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyUHJvdG90eXBlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiwgSlND
OjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBKU0M6OkpTTm9uRmluYWxPYmplY3Qo
dm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVhdGlvbihK
U0M6OlZNJik7Ci19OwotCi11c2luZyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9y
ID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXI+OwotCi10ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1
Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RPTUdsb2Jh
bE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTSh2bSk7Ci0gICAgcmV0
dXJuIGdsb2JhbE9iamVjdC5mdW5jdGlvblByb3RvdHlwZSgpOwotfQotCi10ZW1wbGF0ZTw+IHZv
aWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVByb3BlcnRp
ZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIHB1dERp
cmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlcjo6cHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVhZE9ubHkg
fCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5uYW1lLCBq
c05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3Qodm0sIHZt
LnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwgRG9udEVudW0p
OwotfQotCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRl
ckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCAmQmFzZTo6
c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyQ29uc3RydWN0b3IpIH07Ci0KLS8qIEhhc2ggdGFibGUgZm9yIHByb3RvdHlw
ZSAqLwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7ICJjb25zdHJ1Y3RvciIsIERvbnRF
bnVtLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlTbG90OjpH
ZXRWYWx1ZUZ1bmM+KGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IpLCAoaW50cHRy
X3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRKU1Rlc3RD
dXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiYW5vdGhlckZ1bmN0aW9u
IiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PE5h
dGl2ZUZ1bmN0aW9uPihqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5v
dGhlckZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAotfTsKLQotY29uc3QgQ2xhc3NJbmZv
IEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBD
UkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKSB9Owot
Ci12b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbihW
TSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHJlaWZ5U3RhdGlj
UHJvcGVydGllcyh2bSwgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVUYWJsZVZhbHVl
cywgKnRoaXMpOwotfQotCi1jb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6
OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21OYW1lZEdldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIp
IH07Ci0KLUpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpKU1Rlc3RDdXN0b21OYW1lZEdldHRlcihT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCwgUmVm
PFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQotICAgIDogSlNET01XcmFwcGVyPFRlc3RD
dXN0b21OYW1lZEdldHRlcj4oc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkp
Ci17Ci19Ci0KLXZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmZpbmlzaENyZWF0aW9uKFZN
JiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgQVNTRVJUKGluaGVy
aXRzKHZtLCBpbmZvKCkpKTsKLQotfQotCi1KU09iamVjdCogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXI6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmpl
Y3QpCi17Ci0gICAgcmV0dXJuIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpjcmVh
dGUodm0sICZnbG9iYWxPYmplY3QsIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpj
cmVhdGVTdHJ1Y3R1cmUodm0sICZnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmplY3RQcm90
b3R5cGUoKSkpOwotfQotCi1KU09iamVjdCogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OnByb3Rv
dHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcmV0
dXJuIGdldERPTVByb3RvdHlwZTxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj4odm0sIGdsb2JhbE9i
amVjdCk7Ci19Ci0KLUpTVmFsdWUgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldENvbnN0cnVj
dG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsKLSAgICBy
ZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rv
cj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QpKTsK
LX0KLQotdm9pZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6ZGVzdHJveShKU0M6OkpTQ2VsbCog
Y2VsbCkKLXsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogdGhpc09iamVjdCA9IHN0YXRp
Y19jYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4oY2VsbCk7Ci0gICAgdGhpc09iamVjdC0+
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6On5KU1Rlc3RDdXN0b21OYW1lZEdldHRlcigpOwotfQot
Ci1ib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
UHJvcGVydHlTbG90JiBzbG90KQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlT
bG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGly
ZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJv
dG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJv
cGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICAgICAg
aWYgKHRoaXNPYmplY3QtPm5hbWVHZXR0ZXIoc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUpKSB7
Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICByZXR1cm4g
ZmFsc2U7Ci19Ci0KLWJvb2wgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQg
aW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmpl
Y3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBKU1ZhbHVlIHZhbHVlOwotICAg
ICAgICBpZiAodGhpc09iamVjdC0+bmFtZUdldHRlcihzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1
ZSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZh
bHVlKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJl
dHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKiBJRExPcGVyYXRpb248SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+OjpjYXN0KEV4ZWNTdGF0
ZSYgc3RhdGUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwotfQotCi1FbmNvZGVk
SlNWYWx1ZSBqc1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAgIFZNJiB2
bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUp
KTsKLSAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0gICAgICAgIHJldHVybiB0aHJvd1ZN
VHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2Rl
KEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0oKSwgcHJv
dG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwotfQotCi1ib29sIHNldEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUt
PnZtKCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0g
ICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlm
IChVTkxJS0VMWSghcHJvdG90eXBlKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9yKHN0YXRl
LCB0aHJvd1Njb3BlKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAvLyBTaGFk
b3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3RvcgotICAgIHJldHVybiBwcm90b3R5cGUtPnB1dERp
cmVjdChzdGF0ZS0+dm0oKSwgc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3RvciwgSlNW
YWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCi1zdGF0aWMgaW5saW5lIEpTQzo6RW5j
b2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkFub3Ro
ZXJGdW5jdGlvbkJvZHkoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCB0eXBlbmFtZSBJRExPcGVyYXRp
b248SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRUaGlzLCBK
U0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHN0YXRlKTsK
LSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgYXV0byYgaW1wbCA9IGNhc3RlZFRo
aXMtPndyYXBwZWQoKTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmFyZ3VtZW50Q291bnQoKSA8
IDEpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlLCBjcmVh
dGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpOwotICAgIGF1dG8gc3RyID0gY29udmVy
dDxJRExET01TdHJpbmc+KCpzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDApKTsKLSAg
ICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkpOwotICAg
IGltcGwuYW5vdGhlckZ1bmN0aW9uKFdURk1vdmUoc3RyKSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FM
TCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5vdGhlckZ1bmN0aW9u
KEV4ZWNTdGF0ZSogc3RhdGUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcj46OmNhbGw8anNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5j
dGlvbkFub3RoZXJGdW5jdGlvbkJvZHk+KCpzdGF0ZSwgImFub3RoZXJGdW5jdGlvbiIpOwotfQot
Ci1ib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXI6OmlzUmVhY2hhYmxlRnJvbU9wYXF1
ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xvdFZpc2l0
b3ImIHZpc2l0b3IpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7Ci0gICAgVU5VU0VEX1BB
UkFNKHZpc2l0b3IpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBKU1Rlc3RDdXN0b21O
YW1lZEdldHRlck93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRs
ZSwgdm9pZCogY29udGV4dCkKLXsKLSAgICBhdXRvKiBqc1Rlc3RDdXN0b21OYW1lZEdldHRlciA9
IHN0YXRpY19jYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4oaGFuZGxlLnNsb3QoKS0+YXND
ZWxsKCkpOwotICAgIGF1dG8mIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJXb3JsZCo+
KGNvbnRleHQpOwotICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXItPndyYXBwZWQoKSwganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIpOwotfQotCi0jaWYgRU5B
QkxFKEJJTkRJTkdfSU5URUdSSVRZKQotI2lmIFBMQVRGT1JNKFdJTikKLSNwcmFnbWEgd2Fybmlu
ZyhkaXNhYmxlOiA0NDgzKQotZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkICgqY29uc3QgX19pZGVu
dGlmaWVyKCI/P183VGVzdEN1c3RvbU5hbWVkR2V0dGVyQFdlYkNvcmVAQDZCQCIpW10pKCk7IH0K
LSNlbHNlCi1leHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqIF9aVFZON1dlYkNvcmUyMVRlc3RDdXN0
b21OYW1lZEdldHRlckVbXTsgfQotI2VuZGlmCi0jZW5kaWYKLQotSlNDOjpKU1ZhbHVlIHRvSlNO
ZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2Jq
ZWN0LCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCi17Ci0KLSNpZiBFTkFCTEUo
QklORElOR19JTlRFR1JJVFkpCi0gICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9ICoocmVp
bnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKTsKLSNpZiBQTEFURk9STShXSU4pCi0g
ICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4o
X19pZGVudGlmaWVyKCI/P183VGVzdEN1c3RvbU5hbWVkR2V0dGVyQFdlYkNvcmVAQDZCQCIpKTsK
LSNlbHNlCi0gICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gJl9aVFZON1dlYkNvcmUy
MVRlc3RDdXN0b21OYW1lZEdldHRlckVbMl07Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0gICAgLy8g
SWYgdGhpcyBmYWlscyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgZG9lcyBub3QgaGF2ZSBhIHZ0YWJs
ZSwgc28geW91IG5lZWQgdG8gYWRkIHRoZQotICAgIC8vIEltcGxlbWVudGF0aW9uTGFja3NWVGFi
bGUgYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgZGVmaW5pdGlvbgotICAgIHN0YXRpY19hc3Nl
cnQoX19pc19wb2x5bW9ycGhpYyhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIpLCAiVGVzdEN1c3RvbU5h
bWVkR2V0dGVyIGlzIG5vdCBwb2x5bW9ycGhpYyIpOwotI2VuZGlmCi0jZW5kaWYKLSAgICAvLyBJ
ZiB5b3UgaGl0IHRoaXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVzZSBhZnRlciBmcmVl
IGJ1Zywgb3IKLSAgICAvLyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgaGFzIHN1YmNsYXNzZXMuIElm
IFRlc3RDdXN0b21OYW1lZEdldHRlciBoYXMgc3ViY2xhc3NlcyB0aGF0IGdldCBwYXNzZWQKLSAg
ICAvLyB0byB0b0pTKCkgd2UgY3VycmVudGx5IHJlcXVpcmUgVGVzdEN1c3RvbU5hbWVkR2V0dGVy
IHlvdSB0byBvcHQgb3V0IG9mIGJpbmRpbmcgaGFyZGVuaW5nCi0gICAgLy8gYnkgYWRkaW5nIHRo
ZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJREwgZGVm
aW5pdGlvbgotICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0gZXhwZWN0
ZWRWVGFibGVQb2ludGVyKTsKLSNlbmRpZgotICAgIHJldHVybiBjcmVhdGVXcmFwcGVyPFRlc3RD
dXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKLX0KLQotSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXImIGltcGwpCi17Ci0gICAgcmV0dXJu
IHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgaW1wbCk7Ci19Ci0KLVRlc3RDdXN0b21OYW1lZEdl
dHRlciogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2bSwgSlND
OjpKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5hbWljRG93
bmNhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPih2bSwgdmFsdWUpKQotICAgICAgICByZXR1
cm4gJndyYXBwZXItPndyYXBwZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQotfQoKUHJv
cGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wt
c3R5bGUKIyMgLTEgKzAsMCAjIwotTEYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJ
bmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgJKHJldmlzaW9uIDIxODA1NSkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5oCShub25leGlzdGVudCkKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAgICBUaGlz
IGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gICAgVGhp
cyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9U
IE1PRElGWSEKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJl
ZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRo
ZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5
IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0
aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAg
IFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUg
dXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBp
bXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEg
UEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVi
bGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNl
aXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAg
ICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYg
bm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUx
IEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAx
LCBVU0EuCi0qLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkpTRE9NV3JhcHBlci5oIgot
I2luY2x1ZGUgIlRlc3RDdXN0b21OYW1lZEdldHRlci5oIgotI2luY2x1ZGUgPHd0Zi9OZXZlckRl
c3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyIDogcHVibGljIEpTRE9NV3JhcHBlcjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+IHsK
LXB1YmxpYzoKLSAgICB1c2luZyBCYXNlID0gSlNET01XcmFwcGVyPFRlc3RDdXN0b21OYW1lZEdl
dHRlcj47Ci0gICAgc3RhdGljIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBjcmVhdGUoSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVm
PFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQotICAgIHsKLSAgICAgICAgSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIoc3RydWN0dXJlLCAqZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsK
LSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwotICAgICAg
ICByZXR1cm4gcHRyOwotICAgIH0KLQotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBjcmVhdGVQ
cm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7Ci0gICAgc3RhdGljIEpTQzo6
SlNPYmplY3QqIHByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKLSAgICBz
dGF0aWMgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNW
YWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNPYmplY3Qq
LCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYp
OwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKLQotICAgIERF
Q0xBUkVfSU5GTzsKLQotICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJl
KEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNW
YWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNy
ZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmpl
Y3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci0gICAgfQotCi0gICAgc3RhdGljIEpT
Qzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0dsb2JhbE9i
amVjdCopOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1cmVGbGFn
cyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2VuY2UgfCBK
U0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05v
dFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0cnVjdHVy
ZUZsYWdzOwotcHJvdGVjdGVkOgotICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKEpTQzo6U3Ry
dWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYm
KTsKLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotICAgIGJvb2wgbmFtZUdl
dHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUmKTsK
LX07Ci0KLWNsYXNzIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXIgOiBwdWJsaWMgSlNDOjpX
ZWFrSGFuZGxlT3duZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNoYWJsZUZy
b21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0LCBK
U0M6OlNsb3RWaXNpdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6SGFuZGxl
PEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwotfTsKLQotaW5saW5lIEpTQzo6V2Vha0hh
bmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEN1c3RvbU5hbWVk
R2V0dGVyKikKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXJPd25lcj4gb3duZXI7Ci0gICAgcmV0dXJuICZvd25lci5nZXQoKTsKLX0KLQotaW5saW5l
IHZvaWQqIHdyYXBwZXJLZXkoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB3cmFwcGFibGVPYmplY3Qp
Ci17Ci0gICAgcmV0dXJuIHdyYXBwYWJsZU9iamVjdDsKLX0KLQotSlNDOjpKU1ZhbHVlIHRvSlMo
SlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDdXN0b21OYW1lZEdldHRl
ciYpOwotaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBpbXBs
KSB7IHJldHVybiBpbXBsID8gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCAqaW1wbCkgOiBKU0M6
OmpzTnVsbCgpOyB9Ci1KU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJik7Ci1p
bmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWZQdHI8VGVzdEN1c3RvbU5hbWVk
R2V0dGVyPiYmIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTTmV3bHlDcmVhdGVkKHN0YXRlLCBn
bG9iYWxPYmplY3QsIGltcGwucmVsZWFzZU5vbk51bGwoKSkgOiBKU0M6OmpzTnVsbCgpOyB9Ci0K
LXRlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXI+IHsKLSAgICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcjsKLSAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gVGVzdEN1c3RvbU5hbWVk
R2V0dGVyKjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNoYW5nZXMg
b246IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCww
ICMjCi1MRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RF
dmVudFRhcmdldC5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RF
dmVudFRhcmdldC5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNp
bmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29u
c3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTM0LDQ4ICsxMzUs
NjYgQEAgYm9vbCBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0T3duUHJvcGVydHlTbAogewogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihvYmplY3QpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRv
IG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlv
bmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7
Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50
ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGhpc09i
amVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHBy
b3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlz
T2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwg
cHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFvcHRpb25h
bEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlO
YW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBl
ZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsK
LSAgICAgICAgaWYgKCFJRExJbnRlcmZhY2U8Tm9kZT46OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0g
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETElu
dGVyZmFjZTxOb2RlPj4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIGl0ZW0p
KTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAg
ICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkg
eworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3Rh
dGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0
ZW0oaW5kZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0K
KyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHVz
aW5nIEdldHRlcklETFR5cGUgPSBJRExJbnRlcmZhY2U8Tm9kZT47CisgICAgYXV0byBnZXR0ZXJG
dW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6
Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4gewor
ICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9w
ZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0
ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVu
YW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4
dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJs
ZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3Qs
IHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRv
SlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRl
LCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihvYmplY3QpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGlu
ZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKnN0
YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmplY3QtPndyYXBwZWQoKS5p
dGVtKGluZGV4KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkg
eworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsK
KyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKnN0YXRl
LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVt
KGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5
LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwg
aW5kZXgsIHNsb3QpOworICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMSW50ZXJm
YWNlPE5vZGU+OworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0
LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExU
eXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0
KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0
KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8g
bmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRp
bnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3Ip
KSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKnN0YXRl
LCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1
ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVl
KTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUs
IGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVB
cnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KG9iamVjdCk7Ci0gICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9
IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291bnQ7ICsr
aSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkp
OwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1
cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3du
UHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7Cisg
ICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lcywgbW9kZSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEV2ZW50VGFyZ2V0KiBJ
RExPcGVyYXRpb248SlNUZXN0RXZlbnRUYXJnZXQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3Bw
CShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNiwzNSArMTM2LDM3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
cjo6Z2UKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52
YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8g
aW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhdXRvIGlu
ZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1
ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lml0ZW0oaW5kZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAg
IH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlm
aWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5s
ZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElE
TERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsK
LSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlf
SU5ERVgpKSB7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5n
dGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3Rh
dGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90
KTsKIH0KIAogdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihv
YmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBm
b3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGkpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9v
bCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTE4MCw3ICsxODIsNyBAQCBib29s
IEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpw
dXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xv
dCk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6cHV0QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVl
IHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMTk2LDcgKzE5OCw3IEBAIGJvb2wgSlNUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6cHUKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1
ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBz
dGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVy
dHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0y
MTYsNyArMjE4LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZQog
CiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5
RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRy
dWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJl
dHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUganNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMzYsMzUgKzEzNiwzNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5k
ZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYg
b3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7
Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwor
ICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAg
IGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Cisg
ICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09i
amVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQogICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXgg
PCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFs
dWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+
d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChM
SUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUg
PSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShp
bmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7
CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgs
IHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChv
YmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVt
ZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNv
dW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAg
ICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpOwotICAg
IEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBw
dXRQcm9wZXJ0eVNsb3QpCkBAIC0xODAsNyArMTgyLDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpbwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpT
VGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6cHV0QnlJbmRleChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29s
IHNob3VsZFRocm93KQpAQCAtMTk2LDcgKzE5OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW8KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0
dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhy
b3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgs
IHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2Ny
aXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIxNiw3ICsy
MTgsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvCiAKICAgICBQ
cm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlw
dG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0g
ICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpT
T2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5l
d1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShy
ZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTQyLDM1ICsxNDIsMzcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OgogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRl
eChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgu
dmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRv
IGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBp
bmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFs
dWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0
byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgMCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAg
ICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRv
SlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4
KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9B
UlJBWV9JTkRFWCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4g
SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgs
IHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9w
ZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygp
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
IH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1dChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFs
dWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMTg2LDcgKzE4
OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjoKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4g
SlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0
UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBp
bmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIwMiw3ICsyMDQsNyBA
QCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRl
LCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29s
IEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hv
dWxkVGhyb3cpCkBAIC0yMjIsNyArMjI0LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0
aElkZW50aWZpZXI6OgogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3Jp
cHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0
Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsK
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
KiBJRExPcGVyYXRpb248SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChF
eGVjU3RhdGUmIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDIx
ODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MTYsNyArNDE2LDcgQEAgYm9vbCBKU1Rl
c3RJbnRlcmZhY2U6OnB1dChKU0NlbGwqIGNlbGwsIAogICAgIGlmICh0aGlzT2JqZWN0LT5wdXRE
ZWxlZ2F0ZShzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90LCBwdXRS
ZXN1bHQpKQogICAgICAgICByZXR1cm4gcHV0UmVzdWx0OwogCi0gICAgcmV0dXJuIEJhc2U6OnB1
dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90
KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbnRlcmZhY2U6
OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRl
eCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTQyNCwxMyArNDI0LDEzIEBA
IGJvb2wgSlNUZXN0SW50ZXJmYWNlOjpwdXRCeUluZGV4KEpTQ2VsbCoKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdEludGVyZmFjZSo+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKIAotICAgIElkZW50aWZpZXIgcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFB1dFByb3Bl
cnR5U2xvdCBzbG90KHRoaXNPYmplY3QsIHNob3VsZFRocm93KTsKICAgICBib29sIHB1dFJlc3Vs
dCA9IGZhbHNlOwogICAgIGlmICh0aGlzT2JqZWN0LT5wdXREZWxlZ2F0ZShzdGF0ZSwgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgc2xvdCwgcHV0UmVzdWx0KSkKICAgICAgICAgcmV0dXJuIHB1dFJlc3Vs
dDsKIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFs
dWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwg
c3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3RJbnRlcmZhY2UqIElETEF0dHJpYnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpjYXN0KEV4
ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIu
Y3BwCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1
ZGUgIkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5oIgogCisjaW5jbHVk
ZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUg
IkpTRE9NQ29udmVydC5oIgpAQCAtMTM2LDQ4ICsxMzcsNjYgQEAgYm9vbCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBv
cHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25h
bEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5s
ZW5ndGgoKSkgewotICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwot
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAg
IGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJv
cGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICghb3B0aW9uYWxJbmRleCAmJiB0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkg
JiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNP
YmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJv
cGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVt
KSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7CisgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0
LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElE
TERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleC52YWx1
ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsK
ICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xv
dCk7CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0g
SURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2Jq
ZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJ
RExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlz
T2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJv
cGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVz
dWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1l
bnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVz
dWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1
dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVp
bHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0
b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBX
VEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRv
SlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4
KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkgeworICAgICAg
ICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURM
RE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0
LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExU
eXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0
KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0
KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8g
bmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRp
bnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3Ip
KSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZN
b3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRl
eCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMs
IEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsg
KytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBp
KSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCku
c3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
KyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVy
dHlTbG90KQpAQCAtMjA1LDcgKzIyNCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyTm9JZGVudGkKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhp
c09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBA
IC0yMjEsNyArMjQwLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qg
c2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlu
cXVpcnkgfTsKICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlw
ZURpcmVjdCgpOwogICAgIGlmICghKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHBy
b3RvdHlwZSktPmdldFByb3BlcnR5U2xvdChzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsK
QEAgLTIzMiw3ICsyNTEsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRC
eUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxk
VGhyb3cpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmll
cjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9w
ZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yNTIsNyArMjcxLDcgQEAgYm9v
bCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogCiAgICAgaWYgKCFwcm9wZXJ0
eU5hbWUuaXNTeW1ib2woKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmpl
Y3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAg
ICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAg
ICBpZiAoIXByb3BlcnR5RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAg
ICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFS
RV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yNjUsNyArMjg0LDcgQEAgYm9vbCBKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9y
IG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9w
ZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpk
ZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5
RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3du
UHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0
b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIK
ICNpbmNsdWRlICJKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5o
IgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5o
IgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTM2LDQ4ICsxMzcsNjYgQEAgYm9vbCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogewogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24q
PihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5m
bygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7
Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09i
amVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25h
bEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgp
KSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90
eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0
Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKCFvcHRpb25hbEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNz
SW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAg
YXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6
OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKKyAgICBpZiAoYXV0byBp
bmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFs
dWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0
byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgMCwgdmFsdWUpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAg
ICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHVzaW5n
IEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0g
W10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFs
PHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBh
dXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBl
Ojppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1
ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJv
cGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9N
U3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVy
dHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZ
KGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNP
YmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0g
TUFYX0FSUkFZX0lOREVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0
cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAg
ICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIH0KKyAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAg
ICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVu
Y3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpv
cHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVy
SURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRy
YWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVO
YW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pT
PElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOwor
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
IH0KIAogdm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6
Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
b2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVy
dHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpOwogICAgIGZvciAoYXV0byYg
cHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFt
ZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhz
dGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlz
T2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93
blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
IGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMjA1
LDcgKzIyNCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3Bl
cnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb246OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNp
Z25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIyMSw3ICsy
NDAsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhp
c09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9Owog
ICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7
CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+
Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkgewpAQCAtMjMyLDcg
KzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2Vs
bCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVj
dDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9
CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmRl
ZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlE
ZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjUyLDcgKzI3MSw3IEBAIGJvb2wgSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKIAogICAgIGlmICghcHJvcGVydHlOYW1l
LmlzU3ltYm9sKCkpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQ
cm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgIGlm
ICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKSB7CisgICAgICAgIGlmICghSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaWYg
KCFwcm9wZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKQogICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjY1LDcgKzI4NCw3IEBAIGJvb2wgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQ
cm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlE
ZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5l
T3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2Ny
aXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3Bl
cnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBz
aG91bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2Rl
ZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJ
KHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRl
ICJKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oIgogCisjaW5jbHVk
ZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIK
ICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUg
IkpTRE9NQ29udmVydC5oIgpAQCAtMTQ0LDQ4ICsxNDUsNjYgQEAgYm9vbCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRv
IG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlv
bmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7
Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJl
dHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0g
ICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQ
cm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0g
ICAgaWYgKCFvcHRpb25hbEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8o
KSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhp
c09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0
ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5k
ZXgocHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8
SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZh
bHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUp
OwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBz
bG90KTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHVzaW5nIEdldHRlcklETFR5cGUg
PSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNP
YmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRo
aXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShy
ZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxl
bWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShy
ZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAo
YXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVC
dWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVu
Y3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUs
IFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+
d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3Qs
IDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVt
KGluZGV4KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkgewor
ICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAg
fQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2Jq
ZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBl
ID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlz
T2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0
ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUo
cmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBs
ZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
cmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYg
KGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRl
QnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1
bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRl
LCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAg
IHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRl
LCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVy
dHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVj
dCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwor
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBp
IDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaSkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+
d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1l
cy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAg
QmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
cywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xv
dCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMjEzLDcgKzIzMiw3IEBAIGJvb2wgSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyV2l0aElkZW4KICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBC
YXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3Bl
cnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBz
aG91bGRUaHJvdykKQEAgLTIyOSw3ICsyNDgsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVuCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIElkZW50
aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAg
IFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1l
dGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVj
dC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkg
JiYgYXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKSkgewpAQCAtMjQwLDcgKzI1OSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0
dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhy
b3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgs
IHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjYw
LDcgKzI3OSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4KIAog
ICAgIGlmICghcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKICAgICAgICAgUHJvcGVydHlTbG90
IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1J
bnF1aXJ5IH07Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAgIGlmICghSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KSkgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRv
cigpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjczLDcgKzI5
Miw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4KIAogICAgIFBy
b3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0
b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAg
ICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3
UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5l
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0
ZSYgc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyLmNwcAkocmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEzNSw1NCArMTM1LDU4IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9J
ZGVudGlmaWVyOjpnZXQKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcg
R2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBb
XSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8
dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6
OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVl
RnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGly
ZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJv
dG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZh
bHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJv
cGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0g
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAog
Ym9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2Jq
ZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09i
amVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0p
KSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pT
PElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAg
YXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlO
YW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0
aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5h
bWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAg
ICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAg
cmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRl
cklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0g
YWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwg
KnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0
byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0
eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7
CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwg
c3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBz
dGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBt
b2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3Qs
IGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFw
cGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFk
ZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNl
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBt
b2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXI6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2Fz
dDxKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKICAgICBhdXRvJiBpbXBs
ID0gdGhpc09iamVjdC53cmFwcGVkKCk7Ci0gICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8
ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgeworICAgIGlmIChpc1Zp
c2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRoaXNPYmpl
Y3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgcmV0dXJuIGltcGwuZGVsZXRlTmFtZWRQcm9w
ZXJ0eShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICB9Ci0gICAgcmV0
dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOworICAg
IHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpkZWxldGVQcm9w
ZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRl
eCkKQEAgLTE5MCwxMCArMTk0LDEwIEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyOjpkZWwKICAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKICAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFw
cGVkKCk7CiAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBp
bmRleCk7Ci0gICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhp
c09iamVjdCwgcHJvcGVydHlOYW1lKSkgeworICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5
PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkp
IHsKICAgICAgICAgcmV0dXJuIGltcGwuZGVsZXRlTmFtZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVU
b1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVBy
b3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpOworICAgIHJldHVybiBKU09iamVjdDo6
ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24u
Y3BwCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzUsNTEgKzEzNSw1NSBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93
aW5nRXhjZXB0aW9uCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNp
bmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3Ig
PSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9u
YWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAg
IGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFt
ZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5
cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0
dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZh
bHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQ
cm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVy
dHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExE
T01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBl
RGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4o
cHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJu
IGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAh
cHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVj
dC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0
eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7
Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElE
TERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAg
ICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25l
ZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAg
ICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8g
aXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9t
aWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051
bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBS
ZWFkT25seSwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9N
U3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBh
dXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0
LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkK
KyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlv
blR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9
OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFt
ZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6
Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7
CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3Zl
KG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBy
ZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwg
aW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMs
IEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwotICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5
TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAg
ICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHBy
b3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAg
ICAgYXV0byYgdGhpc09iamVjdCA9ICpqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb24qPihjZWxsKTsKICAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7
Ci0gICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lKSkgeworICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJy
aWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAg
ICAgICAgYXV0byByZXN1bHQgPSBpbXBsLmRlbGV0ZU5hbWVkUHJvcGVydHkocHJvcGVydHlOYW1l
VG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9u
KCkpIHsKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUo
c3RhdGUtPnZtKCkpOwpAQCAtMTg5LDcgKzE5Myw3IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24KIAogICAgICAgICByZXR1cm4gcmVzdWx0LnJlbGVhc2VSZXR1cm5W
YWx1ZSgpOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShj
ZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgpCkBAIC0xOTcsNyArMjAxLDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbgogICAgIGF1dG8mIHRoaXNPYmplY3Qg
PSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CiAg
ICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwogICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmIChpc1Zpc2libGVO
YW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsK
KyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0
YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0g
aW1wbC5kZWxldGVOYW1lZFByb3BlcnR5KHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTIw
Nyw3ICsyMTEsNyBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uCiAK
ICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKICAgICB9Ci0gICAg
cmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpOwor
ICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBp
bmRleCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1Zh
bHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MSw1NSArMTQxLDU5IEBAIGJvb2wgSlNUZXN0
TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6OmcKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBz
bG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8g
Z2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkg
LT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5
cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlm
ICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVy
biB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExU
eXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vz
c1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFs
dWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFs
dWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1
ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0
LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nh
c3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkg
PT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0
ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWlj
U3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxs
VmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVh
ZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3Rh
dGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVj
dCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwot
ICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5k
ZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAg
ICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5h
bWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJp
bmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUg
PSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNP
YmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRo
aXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShy
ZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxl
bWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShy
ZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAo
YXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVC
dWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVu
Y3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUs
IFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3Qs
IHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7Ci0gICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVy
dHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkK
ICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwg
cHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wg
SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAg
ICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRp
Zmllcio+KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKLSAg
ICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVC
dWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAg
ICBpbXBsLm5hbWVkRGVsZXRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsK
ICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9w
ZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOwogfQogCiBib29sIEpTVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5NywxMSArMjAx
LDExIEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6OmQKICAgICBhdXRv
JiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+
KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKICAgICBhdXRv
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAo
aXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0
eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGlu
czo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBpbXBs
Lm5hbWVkRGVsZXRlcihwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eUJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQpJbmRleDog
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
cldpdGhJbmRleGVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIu
Y3BwCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xMzcsNDggKzEzNyw2NiBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
bmRleGVkR2V0dGVyCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9
IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRp
b25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKLSAg
ICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwg
dGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1Zh
bHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHBy
b3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShz
dGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFv
cHRpb25hbEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJv
cGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0g
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7CisgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0
LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElE
TERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleC52YWx1
ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2
YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNpbmcgR2V0dGVySURM
VHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYg
dGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUg
R2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZh
bHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAg
IGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVy
cmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0
ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJX
aXRoSW5kZXhlZEdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0
aEluZGV4ZWRHZXR0ZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+
d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3Qs
IFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuaXRlbShpbmRleCkpKTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRF
WCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgp
KSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwg
dGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0
cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5n
IEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0g
W10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFs
PHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBh
dXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBl
Ojppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1
ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJv
cGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9N
U3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
IH0KIAogdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0T3duUHJv
cGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRl
cio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBp
bmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwog
ICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxl
bmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRp
Zmllcjo6ZnJvbShzdGF0ZSwgaSkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhp
c09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1l
KSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKQEAgLTE4NywxMCArMjA1
LDEwIEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIKICAgICBhdXRv
JiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CiAgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJz
ZUluZGV4KHByb3BlcnR5TmFtZSkpCiAgICAgICAgIHJldHVybiAhaW1wbC5pc1N1cHBvcnRlZFBy
b3BlcnR5SW5kZXgoaW5kZXgudmFsdWUoKSk7Ci0gICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVy
dHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgeworICAgIGlmIChp
c1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgcmV0dXJuIGltcGwuZGVsZXRlTmFtZWRQ
cm9wZXJ0eShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICB9Ci0gICAg
cmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOwor
ICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5
TmFtZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmRl
bGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2ln
bmVkIGluZGV4KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJh
Y3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNE
T01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQu
aCIKQEAgLTEzNCw0NCArMTM1LDQ4IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXI6OmdldE8KIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0
dGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJ
RExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRv
JiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxs
VmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVs
bGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07Cisg
ICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92
ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdl
dHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
SlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlm
IChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVy
dHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
ICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5
bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1l
ZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAg
IGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVt
KSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRl
ck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQog
ewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5m
bygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlm
ICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklE
TFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8m
IHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1l
IEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3Vs
dCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0
cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxW
YWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxs
YWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAg
ICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3Zl
cnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0
dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwg
c3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVz
dE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVz
LCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUg
OiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAg
ICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0
eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1l
cyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlT
bG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0xOTEsNyArMTk2LDcgQEAgYm9vbCBKU1Rlc3ROYW1l
ZFNldHRlck5vSWRlbnRpZmllcjo6cHV0KAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJu
IEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJv
cGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93
KQpAQCAtMTk5LDcgKzIwNCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6
OnB1dEIKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0
LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNW
YWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBp
ZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9w
ZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMTAsNyArMjE1LDcg
QEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0QgogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0
ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRC
eUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9v
bCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
Y29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxk
VGhyb3cpCkBAIC0yMjAsNyArMjI1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRp
Zmllcjo6ZGVmaQogCiAgICAgaWYgKCFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewogICAgICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxN
ZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAg
aWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5RGVzY3JpcHRvci5p
c0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7
CkBAIC0yMzMsNyArMjM4LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6
ZGVmaQogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHBy
b3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJh
YmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwor
ICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5j
b2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVj
U3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaCIKIAorI2luY2x1ZGUgIkpTRE9N
QWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnZlcnQuaCIKQEAgLTEzNCw0NCArMTM1LDQ4IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbjoKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVz
aW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9y
ID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlv
bmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAg
ICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5h
bWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExU
eXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdl
dHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RW
YWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVk
UHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3Bl
cnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0
KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8p
LT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNl
OwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVy
dHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3Jh
cHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
KTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAg
fQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVz
dE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVj
dC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkg
ewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0
cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAg
fQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgp
OworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0
ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBz
dGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4g
eworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFH
ZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5
cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6
OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6
Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlz
aWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmpl
Y3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9
IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgp
KSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xv
dEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNs
b3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93
blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVy
dHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAg
IGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkp
OwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1
cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3du
UHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7Cisg
ICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3Bl
cnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3Qp
CkBAIC0xOTEsNyArMTk2LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uOgogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
cHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWdu
ZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0xOTksNyArMjA0
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOgogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+
KGNlbGwpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAgIEpTVmFsdWUgcHJvdG90
eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgaWYgKCEocHJvdG90
eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkgewpAQCAtMjEwLDcgKzIxNSw3IEBAIGJvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2
YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxs
LCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3Qg
UHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cp
CkBAIC0yMjAsNyArMjI1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uOgogCiAgICAgaWYgKCFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewogICAgICAgICBQcm9w
ZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RU
eXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgaWYgKCFK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5RGVzY3JpcHRvci5pc0RhdGFE
ZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAg
YXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0y
MzMsNyArMjM4LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOgog
CiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5
RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRy
dWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJl
dHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpT
VmFsdWUganNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNT
dGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAko
cmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJh
dGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAt
MTQwLDQ0ICsxNDEsNDggQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjpn
ZQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlz
T2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlw
ZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhp
c09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0
dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0g
dGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5n
KHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVl
KHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1w
bGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxl
KHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlm
IChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlk
ZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJG
dW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0
ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFs
dWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJv
dG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0
YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAodGhp
c09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2wo
KSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVt
KHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAo
IUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZv
KCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYg
KCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsK
LSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURM
VHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYg
dGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUg
R2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZh
bHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAg
IGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVy
cmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0
ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0K
LSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1l
cywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5h
bWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9w
ZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlO
YW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUq
IHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9w
ZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTE5Nyw3ICsyMDIsNyBAQCBib29sIEpTVGVz
dE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1CiAgICAgICAgIH0KICAgICB9CiAKLSAgICBy
ZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpT
VGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91
bGRUaHJvdykKQEAgLTIwNSw3ICsyMTAsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXI6OnB1CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
Uyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0
aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07
CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qo
KTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUp
LT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMTYs
NyArMjIxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjpwdQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChj
ZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsK
IH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9w
ZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwg
Ym9vbCBzaG91bGRUaHJvdykKQEAgLTIyNiw3ICsyMzEsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXI6OmRlCiAKICAgICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgp
KSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90
OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwotICAgICAgICBpZiAoIUJhc2U6Omdl
dE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkg
eworICAgICAgICBpZiAoIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlE
ZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFs
c2U7CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0
YXRlLT52bSgpKTsKQEAgLTIzOSw3ICsyNDQsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXI6OmRlCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNj
cmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5z
ZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91
bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cp
OwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
KiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhl
Y1N0YXRlJiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhP
dmVycmlkZUJ1aWx0aW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2lu
Y2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnMuaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0
cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKQEAgLTEzNCw0MCArMTM1LDQ4
IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRp
bnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFw
cm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0
LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5
TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsK
LSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0K
LSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9N
U3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBh
dXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0
LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkK
KyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlv
blR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9
OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFt
ZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6
Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkg
eworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92
ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsK
KyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldp
dGhPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldp
dGhPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNz
SW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
OwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBh
dXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1
c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3Rv
ciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRp
b25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAg
ICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlO
YW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURM
VHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBH
ZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0
VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1l
ZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJv
cGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJ
RExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAg
ICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9
CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJv
cGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0
aW5zKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7
CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3Vw
cG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAg
ICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0
aW5zOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xv
dCkKQEAgLTE4Myw3ICsxOTIsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpw
dXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xv
dCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoT3ZlcnJpZGVCdWlsdGluczo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sKQpAQCAtMTkxLDcg
KzIwMCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGkKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpbnMqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b20oc3RhdGUsIGluZGV4KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHN0YXRlLT52bSgpKTsKICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01T
dHJpbmc+KCpzdGF0ZSwgdmFsdWUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29w
ZSwgdHJ1ZSk7CkBAIC0yMTYsNyArMjI1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhP
dmVycmlkZUJ1aWx0aQogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3Jp
cHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0
Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsK
IH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlu
c0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwg
UHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCShyZXZpc2lvbiAyMTgwNTUpCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsy
MSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJp
bmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgpA
QCAtMTU4LDQ0ICsxNTksNDggQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcAogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5n
IEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0g
W10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFs
PHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBh
dXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBl
Ojppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1
ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJv
cGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5
TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9N
U3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7
Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5o
YXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwot
Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlO
YW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBl
ZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsK
LSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3Rh
dGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAgfQot
ICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KG9iamVjdCk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZp
ZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlm
ICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVt
ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0
cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZh
bHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRv
SlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVl
OwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0
YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAg
ICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0
eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50
YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCku
bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAg
ICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAg
ICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0
dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAg
cmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkg
PSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRl
LCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBh
dXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3Bl
cnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1
ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRl
LCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXM6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9u
TW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5
TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTIxNSw3ICsyMjAsNyBAQCBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiAgICAgICAgIH0KICAgICB9CiAK
LSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBi
b29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzOjpwdXRCeUluZGV4
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUg
dmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMjMsNyArMjI4LDcgQEAgYm9vbCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqPihjZWxsKTsKICAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CiAKLSAgICBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsK
KyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsK
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHRoaXNP
YmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlmICghKHByb3RvdHlwZS5pc09iamVj
dCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdChzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KSkpIHsKQEAgLTIzNCw3ICsyMzksNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3Vs
ZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGlu
ZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAg
LTI1MCw3ICsyNTUsNyBAQCBzdGF0aWMgYm9vbCBpc1VuZm9yZ2VhYmxlUHJvcGVydHlOYW1lKFBy
CiAKICAgICAgICAgaWYgKCFpc1VuZm9yZ2VhYmxlUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkp
IHsKICAgICAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwotICAgICAgICAgICAgaWYgKCFC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwg
c2xvdCkpIHsKKyAgICAgICAgICAgIGlmICghSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgICAg
IGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkKICAgICAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9
IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjY0LDcgKzI2OSw3IEBAIHN0
YXRpYyBib29sIGlzVW5mb3JnZWFibGVQcm9wZXJ0eU5hbWUoUHIKIAogICAgIFByb3BlcnR5RGVz
Y3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAg
bmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4g
QmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQ
cm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRl
ZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlE
ZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUs
IEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGll
c0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5o
IgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RP
TUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9N
Q29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCkBAIC0xNTgsNDAgKzE1OSw0OCBAQCBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiB7CiAgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0Fu
ZE92ZXJyaWRlQnVpbHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkg
PT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0
ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWlj
U3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxs
VmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwg
dG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJ
RExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRv
JiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxs
VmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVs
bGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07Cisg
ICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92
ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBn
ZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1l
ID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5j
bGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0g
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Cisg
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Cisg
ICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1
bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6
b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7Cisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRl
cklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5h
bWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxl
TmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpZZXM+KCpzdGF0ZSwgKnRoaXNPYmplY3Qs
IHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRv
SlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7
CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3Qp
OwogfQogCiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5k
T3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVy
YXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMqPihv
YmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBm
b3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQ
cm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZy
b21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1v
ZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVz
QW5kT3ZlcnJpZGVCdWlsdGluczo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0yMDcsNyArMjE2LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWls
dGluczo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sKQpAQCAtMjE1LDcgKzIyNCw3IEBAIGJvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3AKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucyo+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUoc3RhdGUtPnZtKCkpOwogICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElE
TERPTVN0cmluZz4oKnN0YXRlLCB2YWx1ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJv
d1Njb3BlLCB0cnVlKTsKQEAgLTI0Nyw3ICsyNTYsNyBAQCBzdGF0aWMgYm9vbCBpc1VuZm9yZ2Vh
YmxlUHJvcGVydHlOYW1lKFByCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlE
ZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRv
ci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3Bl
cnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBz
aG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhy
b3cpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdh
YmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMqIElETEF0dHJpYnV0ZTxKU1Rlc3ROYW1l
ZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM+OjpjYXN0
KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTYwLDIyICsxNjAs
MjIgQEAgdm9pZCBKU1Rlc3ROb2RlUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbgogICAgIH0KICNl
bmRpZgogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5k
b21JdGVyYXRvckVuYWJsZWQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oImVudHJpZXMiKSwgc3RybGVuKCJlbnRyaWVzIikpOworICAgICAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oImVudHJpZXMiKSwgc3RybGVuKCJlbnRyaWVzIikpOwogICAgICAgICBWTTo6RGVs
ZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Okln
bm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlz
LCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAg
ICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0
b3JFbmFibGVkKCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJrZXlz
IiksIHN0cmxlbigia2V5cyIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJrZXlz
IiksIHN0cmxlbigia2V5cyIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3Bl
IHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwog
ICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmds
b2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxl
ZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7Ci0gICAg
ICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigidmFsdWVzIiksIHN0cmxlbigidmFsdWVz
IikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInZhbHVlcyIpLCBzdHJsZW4oInZh
bHVlcyIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwg
cHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZp
ZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiZm9yRWFjaCIpLCBzdHJsZW4oImZvckVhY2giKSk7CisgICAg
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZm9yRWFjaCIpLCBzdHJsZW4oImZvckVhY2giKSk7
CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0
ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRl
bGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5
TmFtZSk7CiAgICAgfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0xODY3LDE4ICsxODY3LDE4IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpm
aW5pc2hDcmVhdGlvbigKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE9ialBy
b3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAg
ICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1
cmVFbmFibGVkKCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFi
bGVkQXRSdW50aW1lT3BlcmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlv
biIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lT3Bl
cmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpKTsKICAgICAgICAg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAg
ICB9CiAjZW5kaWYKICAgICBpZiAoISh3b3JsZEZvckRPTU9iamVjdCh0aGlzKS5zb21lV29ybGQo
KSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJl
RW5hYmxlZCgpKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJs
ZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIiksIHN0cmxlbigiZW5h
YmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKSk7CisgICAgICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJw
cmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1l
RmVhdHVyZUVuYWJsZWQiKSwgc3RybGVuKCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRp
bWVGZWF0dXJlRW5hYmxlZCIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3Bl
IHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwog
ICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmds
b2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCF3b3JsZEZvckRPTU9i
amVjdCh0aGlzKS5zb21lV29ybGQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSwgc3RybGVuKCJ3b3JsZFNwZWNpZmljTWV0aG9k
IikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIndvcmxkU3BlY2lmaWNNZXRob2Qi
KSwgc3RybGVuKCJ3b3JsZFNwZWNpZmljTWV0aG9kIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNv
bmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9i
YWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KQEAgLTE5MDEs
NyArMTkwMSw3IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbigKICNl
bmRpZgogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEoUnVudGltZUVuYWJsZWRG
ZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSAmJiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlMUVuYWJsZWQoKSkp
IHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpKTsKKyAgICAg
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiksIHN0
cmxlbigiZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpKTsKICAgICAgICAgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVD
b25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CkBAIC0xOTEw
LDE0ICsxOTEwLDE0IEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbigK
ICAgICBBU1NFUlQoIWNvbnRleHQgfHwgY29udGV4dC0+aXNEb2N1bWVudCgpKTsKICNpZiBFTkFC
TEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghY29udGV4dCB8fCAhZG93bmNhc3Q8RG9jdW1lbnQ+
KCpjb250ZXh0KS5zZXR0aW5ncygpLnRlc3RTZXR0aW5nRW5hYmxlZCgpKSB7Ci0gICAgICAgIElk
ZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIpLCBz
dHJsZW4oImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iKSk7CisgICAgICAgIGF1dG8gcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRC
eVNldHRpbmdPcGVyYXRpb24iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29w
ZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsK
ICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdC5nbG9i
YWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKICAgICBpZiAoIWNvbnRleHQgfHwgIWRvd25jYXN0PERvY3VtZW50PigqY29udGV4
dCkuc2V0dGluZ3MoKS50ZXN0U2V0dGluZ0VuYWJsZWQoKSkgewotICAgICAgICBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSwgc3RybGVuKCJl
bmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5n
QXR0cmlidXRlIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAg
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygp
LCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KQEAgLTE5NzEsMzUgKzE5NzEsMzcgQEAgYm9vbCBKU1Rl
c3RPYmo6OmdldE93blByb3BlcnR5U2xvdChKU09iagogewogICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0T2JqKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJ
bmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5k
ZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBh
dXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpz
dGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChp
bmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJz
ZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0aGlz
T2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0
b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChpbmRleC52YWx1ZSgpKSk7CisgICAgICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE9iaio+KG9iamVj
dCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwot
ICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7
Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMTnVs
bGFibGU8SURMRE9NU3RyaW5nPj4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubnVsbGFi
bGVTdHJpbmdTcGVjaWFsTWV0aG9kKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsKKyAgICAgICAgaWYgKGlu
ZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+Pigqc3RhdGUsIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5udWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QoaW5kZXgpKTsKKyAgICAg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7
CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwg
c3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5
TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQg
PSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAg
ICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7Ci0gICAgQmFz
ZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywg
bW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUg
Y2FsbEpTVGVzdE9iajEoRXhlY1N0YXRlKiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3Zl
cnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIxODA1NSkKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkpTVGVzdE92ZXJyaWRlQnVpbHRpbnMuaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVy
YXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25z
dHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKQEAg
LTE0MSw0MCArMTQyLDQ4IEBAIGJvb2wgSlNUZXN0T3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJv
cGUKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJyaWRlQnVpbHRp
bnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFw
cm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0
LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5
TmFtZSkpOwotICAgICAgICBpZiAoIUlETEludGVyZmFjZTxOb2RlPjo6aXNOdWxsVmFsdWUoaXRl
bSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRv
SlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3Qo
KSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0g
ICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMSW50ZXJmYWNlPE5v
ZGU+OworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRv
IHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJ
bXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0Lndy
YXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1l
KSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAg
ICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5
cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9Owor
ICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQ
cm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olll
cz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgewor
ICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRo
aXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkp
OworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
LCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmpl
Y3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETEludGVyZmFjZTxOb2RlPjo6aXNOdWxsVmFsdWUo
aXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBh
dXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1
c2luZyBHZXR0ZXJJRExUeXBlID0gSURMSW50ZXJmYWNlPE5vZGU+OworICAgIGF1dG8gZ2V0dGVy
RnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3Rk
OjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsK
KyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJv
cGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0
dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBl
bmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpl
eHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2li
bGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0g
dG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVj
dCgpLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQg
SlNUZXN0T3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywg
RW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0
eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsK
LSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0T3ZlcnJpZGVCdWlsdGlucyogSURMT3BlcmF0aW9uPEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM+
OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0
aW9uT3IuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uT3IuaAko
cmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgJKHdv
cmtpbmcgY29weSkKQEAgLTQwLDggKzQwLDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRXhjZXB0
aW9uKCkgY29uc3Q7CiAgICAgY29uc3QgRXhjZXB0aW9uJiBleGNlcHRpb24oKSBjb25zdDsKICAg
ICBFeGNlcHRpb24mJiByZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgY29uc3QgUmV0dXJuVHlwZSYg
cmV0dXJuVmFsdWUoKSBjb25zdDsKICAgICBSZXR1cm5UeXBlJiYgcmVsZWFzZVJldHVyblZhbHVl
KCk7Ci0KKyAgICAKIHByaXZhdGU6CiAgICAgRXhwZWN0ZWQ8UmV0dXJuVHlwZSwgRXhjZXB0aW9u
PiBtX3ZhbHVlOwogfTsKQEAgLTU0LDggKzU1LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRXhj
ZXB0aW9uKCkgY29uc3Q7CiAgICAgY29uc3QgRXhjZXB0aW9uJiBleGNlcHRpb24oKSBjb25zdDsK
ICAgICBFeGNlcHRpb24mJiByZWxlYXNlRXhjZXB0aW9uKCk7CisgICAgY29uc3QgUmV0dXJuUmVm
ZXJlbmNlVHlwZSYgcmV0dXJuVmFsdWUoKSBjb25zdDsKICAgICBSZXR1cm5SZWZlcmVuY2VUeXBl
JiByZWxlYXNlUmV0dXJuVmFsdWUoKTsKLQorICAgIAogcHJpdmF0ZToKICAgICBFeGNlcHRpb25P
cjxSZXR1cm5SZWZlcmVuY2VUeXBlKj4gbV92YWx1ZTsKIH07CkBAIC05NSwxNCArOTcsMTkgQEAg
dGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIGJvbwogICAgIHJldHVybiAhbV92
YWx1ZS5oYXNWYWx1ZSgpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxp
bmUgY29uc3QgRXhjZXB0aW9uJiBFeGNlcHRpb25PcjxSZXR1cm5UeXBlPjo6ZXhjZXB0aW9uKCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gbV92YWx1ZS5lcnJvcigpOworfQorCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUgRXhjZXB0aW9uJiYgRXhjZXB0aW9uT3I8UmV0dXJuVHlw
ZT46OnJlbGVhc2VFeGNlcHRpb24oKQogewogICAgIHJldHVybiBXVEZNb3ZlKG1fdmFsdWUuZXJy
b3IoKSk7CiB9CiAKLXRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBjb25zdCBF
eGNlcHRpb24mIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpleGNlcHRpb24oKSBjb25zdAordGVt
cGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIGNvbnN0IFJldHVyblR5cGUmIEV4Y2Vw
dGlvbk9yPFJldHVyblR5cGU+OjpyZXR1cm5WYWx1ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1f
dmFsdWUuZXJyb3IoKTsKKyAgICByZXR1cm4gbV92YWx1ZS52YWx1ZSgpOwogfQogCiB0ZW1wbGF0
ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUgUmV0dXJuVHlwZSYmIEV4Y2VwdGlvbk9yPFJl
dHVyblR5cGU+OjpyZWxlYXNlUmV0dXJuVmFsdWUoKQpAQCAtMTM1LDYgKzE0MiwxMSBAQCB0ZW1w
bGF0ZTx0eXBlbmFtZSBSZXR1cm5SZWZlcmVuY2VUeXBlPiBpCiAgICAgcmV0dXJuIG1fdmFsdWUu
cmVsZWFzZUV4Y2VwdGlvbigpOwogfQogCit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5SZWZlcmVu
Y2VUeXBlPiBpbmxpbmUgY29uc3QgUmV0dXJuUmVmZXJlbmNlVHlwZSYgRXhjZXB0aW9uT3I8UmV0
dXJuUmVmZXJlbmNlVHlwZSY+OjpyZXR1cm5WYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICpt
X3ZhbHVlLnJldHVyblZhbHVlKCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblJlZmVy
ZW5jZVR5cGU+IGlubGluZSBSZXR1cm5SZWZlcmVuY2VUeXBlJiBFeGNlcHRpb25PcjxSZXR1cm5S
ZWZlcmVuY2VUeXBlJj46OnJlbGVhc2VSZXR1cm5WYWx1ZSgpCiB7CiAgICAgcmV0dXJuICptX3Zh
bHVlLnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RG9jdW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3Vt
ZW50LmNwcAkocmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9j
dW1lbnQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC02NSwxMSArNjUsMTMgQEAKICNpbmNsdWRlICJG
cmFtZVRyZWUuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQm9keUVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxEb2N1
bWVudFBhcnNlci5oIgogI2luY2x1ZGUgIkhUTUxFbGVtZW50RmFjdG9yeS5oIgogI2luY2x1ZGUg
IkhUTUxGcmFtZU93bmVyRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MSHRtbEVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZyYW1lRWxl
bWVudC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkhhc2hUb29scy5oIgog
I2luY2x1ZGUgIlNjcmlwdENvbnRyb2xsZXIuaCIKQEAgLTE3NCwxMiArMTc2LDE5IEBAIHZvaWQg
SFRNTERvY3VtZW50OjpzZXRWbGlua0NvbG9yKGNvbnN0IFMKICAgICAgICAgYm9keUVsZW1lbnQt
PnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5jaHJvbml6YXRpb24odmxpbmtBdHRyLCB2YWx1ZSk7CiB9
CiAKK3ZvaWQgSFRNTERvY3VtZW50OjpjbGVhcigpCit7CisgICAgLy8gUGVyIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29ic29sZXRlLmh0bWwjZG9tLWRvY3VtZW50LWNs
ZWFyLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCit9CisKIHZvaWQgSFRNTERvY3VtZW50Ojpj
YXB0dXJlRXZlbnRzKCkKIHsKKyAgICAvLyBQZXIgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9y
Zy9tdWx0aXBhZ2Uvb2Jzb2xldGUuaHRtbCNkb20tZG9jdW1lbnQtY2FwdHVyZWV2ZW50cywgdGhp
cyBtZXRob2QgZG9lcyBub3RoaW5nLgogfQogCiB2b2lkIEhUTUxEb2N1bWVudDo6cmVsZWFzZUV2
ZW50cygpCiB7CisgICAgLy8gUGVyIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL29ic29sZXRlLmh0bWwjZG9tLWRvY3VtZW50LXJlbGVhc2VldmVudHMsIHRoaXMgbWV0aG9k
IGRvZXMgbm90aGluZy4KIH0KIAogUmVmPERvY3VtZW50UGFyc2VyPiBIVE1MRG9jdW1lbnQ6OmNy
ZWF0ZVBhcnNlcigpCkBAIC0xODcsMTAgKzE5Niw2IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gSFRN
TERvY3VtZW50OjpjcmVhdGUKICAgICByZXR1cm4gSFRNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUo
KnRoaXMpOwogfQogCi0vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQotLy8gbm90IHBhcnQgb2YgdGhlIERP
TQotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLQogc3RhdGljIHZvaWQgYWRkTG9jYWxOYW1lVG9TZXQo
SGFzaFNldDxBdG9taWNTdHJpbmdJbXBsKj4qIHNldCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgcU5h
bWUpCiB7CiAgICAgc2V0LT5hZGQocU5hbWUubG9jYWxOYW1lKCkuaW1wbCgpKTsKQEAgLTI1MSw2
ICsyNTYsNDcgQEAgc3RhdGljIEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+KiBjcmVhdAogICAg
IHJldHVybiBhdHRyU2V0OwogfQogCisvLyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211
bHRpcGFnZS9kb20uaHRtbCNkb20tZG9jdW1lbnQtbmFtZWRpdGVtCitzdGQ6Om9wdGlvbmFsPFZh
cmlhbnQ8UmVmUHRyPEZyYW1lPiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rp
b24+Pj4gSFRNTERvY3VtZW50OjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQor
eworICAgIGlmIChuYW1lLmlzTnVsbCgpIHx8ICFoYXNEb2N1bWVudE5hbWVkSXRlbSgqbmFtZS5p
bXBsKCkpKQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaWYgKFVOTElLRUxZ
KGRvY3VtZW50TmFtZWRJdGVtQ29udGFpbnNNdWx0aXBsZUVsZW1lbnRzKCpuYW1lLmltcGwoKSkp
KSB7CisgICAgICAgIGF1dG8gY29sbGVjdGlvbiA9IGRvY3VtZW50TmFtZWRJdGVtcyhuYW1lKTsK
KyAgICAgICAgQVNTRVJUKGNvbGxlY3Rpb24tPmxlbmd0aCgpID4gMSk7CisgICAgICAgIHJldHVy
biBWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xs
ZWN0aW9uPj4geyBSZWZQdHI8SFRNTENvbGxlY3Rpb24+IHsgV1RGTW92ZShjb2xsZWN0aW9uKSB9
IH07CisgICAgfQorCisgICAgYXV0byYgZWxlbWVudCA9ICpkb2N1bWVudE5hbWVkSXRlbSgqbmFt
ZS5pbXBsKCkpOworICAgIGlmIChVTkxJS0VMWShpczxIVE1MSUZyYW1lRWxlbWVudD4oZWxlbWVu
dCkpKSB7CisgICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVt
ZW50PihlbGVtZW50KS5jb250ZW50RnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBWYXJpYW50
PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4g
eyBSZWZQdHI8RnJhbWU+IHsgZnJhbWUgfSB9OworICAgIH0KKworICAgIHJldHVybiBWYXJpYW50
PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4g
eyBSZWZQdHI8RWxlbWVudD4geyAmZWxlbWVudCB9IH07Cit9CisKK1ZlY3RvcjxBdG9taWNTdHJp
bmc+IEhUTUxEb2N1bWVudDo6c3VwcG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0Cit7CisgICAg
Ly8gaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tLWRv
Y3VtZW50LW5hbWVkSXRlbS13aGljaAorICAgIC8vCisgICAgLy8gLi4uIFRoZSBzdXBwb3J0ZWQg
cHJvcGVydHkgbmFtZXMgb2YgYSBEb2N1bWVudCBvYmplY3QgZG9jdW1lbnQgYXQgYW55IG1vbWVu
dCBjb25zaXN0IG9mIHRoZSBmb2xsb3dpbmcsIGluCisgICAgLy8gdHJlZSBvcmRlciBhY2NvcmRp
bmcgdG8gdGhlIGVsZW1lbnQgdGhhdCBjb250cmlidXRlZCB0aGVtLCBpZ25vcmluZyBsYXRlciBk
dXBsaWNhdGVzLCBhbmQgd2l0aCB2YWx1ZXMgZnJvbQorICAgIC8vIGlkIGF0dHJpYnV0ZXMgY29t
aW5nIGJlZm9yZSB2YWx1ZXMgZnJvbSBuYW1lIGF0dHJpYnV0ZXMgd2hlbiB0aGUgc2FtZSBlbGVt
ZW50IGNvbnRyaWJ1dGVzIGJvdGg6CisgICAgLy8KKyAgICAvLyAtIHRoZSB2YWx1ZSBvZiB0aGUg
bmFtZSBjb250ZW50IGF0dHJpYnV0ZSBmb3IgYWxsIGFwcGxldCwgZXhwb3NlZCBlbWJlZCwgZm9y
bSwgaWZyYW1lLCBpbWcsIGFuZCBleHBvc2VkCisgICAgLy8gICBvYmplY3QgZWxlbWVudHMgdGhh
dCBoYXZlIGEgbm9uLWVtcHR5IG5hbWUgY29udGVudCBhdHRyaWJ1dGUgYW5kIGFyZSBpbiBhIGRv
Y3VtZW50IHRyZWUgd2l0aCBkb2N1bWVudAorICAgIC8vICAgYXMgdGhlaXIgcm9vdDsKKyAgICAv
LyAtIHRoZSB2YWx1ZSBvZiB0aGUgaWQgY29udGVudCBhdHRyaWJ1dGUgZm9yIGFsbCBhcHBsZXQg
YW5kIGV4cG9zZWQgb2JqZWN0IGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG5vbi1lbXB0eQorICAgIC8v
ICAgaWQgY29udGVudCBhdHRyaWJ1dGUgYW5kIGFyZSBpbiBhIGRvY3VtZW50IHRyZWUgd2l0aCBk
b2N1bWVudCBhcyB0aGVpciByb290OyBhbmQKKyAgICAvLyAtIHRoZSB2YWx1ZSBvZiB0aGUgaWQg
Y29udGVudCBhdHRyaWJ1dGUgZm9yIGFsbCBpbWcgZWxlbWVudHMgdGhhdCBoYXZlIGJvdGggYSBu
b24tZW1wdHkgaWQgY29udGVudCBhdHRyaWJ1dGUKKyAgICAvLyAgIGFuZCBhIG5vbi1lbXB0eSBu
YW1lIGNvbnRlbnQgYXR0cmlidXRlLCBhbmQgYXJlIGluIGEgZG9jdW1lbnQgdHJlZSB3aXRoIGRv
Y3VtZW50IGFzIHRoZWlyIHJvb3QuCisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJl
dHVybiB7IH07Cit9CisKIHZvaWQgSFRNTERvY3VtZW50OjphZGREb2N1bWVudE5hbWVkSXRlbShj
b25zdCBBdG9taWNTdHJpbmdJbXBsJiBuYW1lLCBFbGVtZW50JiBpdGVtKQogewogICAgIG1fZG9j
dW1lbnROYW1lZEl0ZW0uYWRkKG5hbWUsIGl0ZW0sICp0aGlzKTsKQEAgLTI3OSwxMyArMzI1LDYg
QEAgYm9vbCBIVE1MRG9jdW1lbnQ6OmlzQ2FzZVNlbnNpdGl2ZUF0dHJpYgogICAgIHJldHVybiAh
aXNQb3NzaWJsZUhUTUxBdHRyIHx8ICFodG1sQ2FzZUluc2Vuc2l0aXZlQXR0cmlidXRlc1NldC0+
Y29udGFpbnMoYXR0cmlidXRlTmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkpOwogfQogCi12b2lkIEhU
TUxEb2N1bWVudDo6Y2xlYXIoKQotewotICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90aGluZywg
YW5kIHRoYXQgc2VlbXMgdW5saWtlbHkgdG8gYmUgY29ycmVjdC4KLSAgICAvLyBXZSd2ZSBsb25n
IGhhZCBhIGNvbW1lbnQgc2F5aW5nIHRoYXQgSUUgZG9lc24ndCBzdXBwb3J0IHRoaXMuCi0gICAg
Ly8gQnV0IEkgZG8gc2VlIGl0IGluIHRoZSBkb2N1bWVudGF0aW9uIGZvciBNb3ppbGxhLgotfQot
CiBib29sIEhUTUxEb2N1bWVudDo6aXNGcmFtZVNldCgpIGNvbnN0CiB7CiAgICAgaWYgKCFkb2N1
bWVudEVsZW1lbnQoKSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAkocmV2aXNp
b24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAkod29ya2lu
ZyBjb3B5KQpAQCAtNTMsMTEgKzUzLDEzIEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldExpbmtDb2xvcihjb25zdCBTdHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25z
dCBBdG9taWNTdHJpbmcmIHZsaW5rQ29sb3IoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2
b2lkIHNldFZsaW5rQ29sb3IoY29uc3QgU3RyaW5nJik7Ci0KKyAgICAKICAgICBXRUJDT1JFX0VY
UE9SVCB2b2lkIGNsZWFyKCk7Ci0KICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhcHR1cmVFdmVu
dHMoKTsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHJlbGVhc2VFdmVudHMoKTsKKyAgICAKKyAg
ICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPEZyYW1lPiwgUmVmUHRyPEVsZW1lbnQ+LCBS
ZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpOwor
ICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+IHN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsK
IAogICAgIEVsZW1lbnQqIGRvY3VtZW50TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZ0ltcGwm
IG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1fZG9jdW1lbnROYW1lZEl0ZW0uZ2V0RWxlbWVudEJ5RG9j
dW1lbnROYW1lZEl0ZW0obmFtZSwgKnRoaXMpOyB9CiAgICAgYm9vbCBoYXNEb2N1bWVudE5hbWVk
SXRlbShjb25zdCBBdG9taWNTdHJpbmdJbXBsJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX2RvY3Vt
ZW50TmFtZWRJdGVtLmNvbnRhaW5zKG5hbWUpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEb2N1bWVudC5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1M
RG9jdW1lbnQuaWRsCShyZXZpc2lvbiAyMTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hU
TUxEb2N1bWVudC5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE5LDIxICsxOSwyMCBAQAogICovCiAK
IFsKLSAgICBDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QsCi0gICAgQ3VzdG9tTmFtZWRHZXR0ZXIs
CiAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICBOZXdJbXB1cmVQcm9wZXJ0eUZpcmVzV2F0Y2hw
b2ludHMsCiAgICAgT3ZlcnJpZGVCdWlsdGlucywKIF0gaW50ZXJmYWNlIEhUTUxEb2N1bWVudCA6
IERvY3VtZW50IHsKLSAgICBbQ0VSZWFjdGlvbnMsIEN1c3RvbSwgRm9yd2FyZERlY2xhcmVJbkhl
YWRlcl0gdm9pZCBvcGVuKCk7CisgICAgW0NFUmVhY3Rpb25zLCBDdXN0b21dIHZvaWQgb3Blbigp
OwogICAgIHZvaWQgY2xvc2UoKTsKICAgICBbQ0VSZWFjdGlvbnMsIEN1c3RvbV0gdm9pZCB3cml0
ZShvcHRpb25hbCBET01TdHJpbmcgdGV4dCk7CiAgICAgW0NFUmVhY3Rpb25zLCBDdXN0b21dIHZv
aWQgd3JpdGVsbihvcHRpb25hbCBET01TdHJpbmcgdGV4dCk7Ci0KKyAgICAKKyAgICBnZXR0ZXIg
KERPTVdpbmRvd1NoZWxsIG9yIEVsZW1lbnQgb3IgSFRNTENvbGxlY3Rpb24pIChET01TdHJpbmcg
bmFtZSk7CisgICAgCiAgICAgW0N1c3RvbSwgUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIVE1MQWxsQ29sbGVjdGlvbiBhbGw7CiAKICAgICB2b2lkIGNsZWFyKCk7Ci0KICAgICB2b2lk
IGNhcHR1cmVFdmVudHMoKTsKICAgICB2b2lkIHJlbGVhc2VFdmVudHMoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMTgw
NTUpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkxlbmd0aC5oIgogI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKQEAgLTIyNiw0ICsyMjgsMjQgQEAgdm9pZCBIVE1MRnJhbWVTZXRF
bGVtZW50OjpyZW1vdmVkRnJvbShDbwogICAgIH0KIH0KIAorRnJhbWUqIEhUTUxGcmFtZVNldEVs
ZW1lbnQ6Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgYXV0byog
ZnJhbWVFbGVtZW50ID0gY2hpbGRyZW4oKS0+bmFtZWRJdGVtKG5hbWUpOworICAgIGlmICghaXM8
SFRNTEZyYW1lRWxlbWVudD4oZnJhbWVFbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxIVE1MRnJhbWVFbGVtZW50Pigq
ZnJhbWVFbGVtZW50KS5jb250ZW50RG9jdW1lbnQoKSkgeworICAgICAgICBpZiAoYXV0byogZnJh
bWUgPSBkb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZTsKKyAgICB9
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1ZlY3RvcjxBdG9taWNTdHJpbmc+IEhUTUxGcmFt
ZVNldEVsZW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdAoreworICAgIC8vIE5P
VEU6IExlZnQgZW1wdHkgYXMgbm8gc3BlY2lmaWNhdGlvbiBkZWZpbmVzIHRoaXMgbmFtZWQgZ2V0
dGVyIGFuZCB3ZQorICAgIC8vICAgICAgIGhhdmUgbm90IGhpc3RvcmljYWxseSBleHBvc2VkIHRo
ZXNlIG5hbWVkIGl0ZW1zIGZvciBlbnVtZXJhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuaAkocmV2aXNpb24gMjE4MDU1KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDkgQEAgcHVi
bGljOgogICAgIGNvbnN0IExlbmd0aCogY29sTGVuZ3RocygpIGNvbnN0IHsgcmV0dXJuIG1fY29s
TGVuZ3Rocy5nZXQoKTsgfQogCiAgICAgc3RhdGljIEhUTUxGcmFtZVNldEVsZW1lbnQqIGZpbmRD
b250YWluaW5nKEVsZW1lbnQqIGRlc2NlbmRhbnQpOworICAgIAorICAgIFZlY3RvcjxBdG9taWNT
dHJpbmc+IHN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKKyAgICBGcmFtZSogbmFtZWRJ
dGVtKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBwcml2YXRlOgogICAgIEhUTUxGcmFtZVNldEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJKHJldmlzaW9uIDIxODA1NSkKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTE4LDkgKzE4LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICov
CiAKLVsKLSAgICBDdXN0b21OYW1lZEdldHRlcgotXSBpbnRlcmZhY2UgSFRNTEZyYW1lU2V0RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKK2ludGVyZmFjZSBIVE1MRnJhbWVTZXRFbGVtZW50IDogSFRN
TEVsZW1lbnQgewogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbHM7CiAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcm93czsKIApAQCAtMzcsNiArMzUsMTAgQEAK
ICAgICBbTm90RW51bWVyYWJsZSwgV2luZG93RXZlbnRIYW5kbGVyLCBDb25kaXRpb25hbD1XSUxM
X1JFVkVBTF9FREdFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdHdpbGxy
ZXZlYWxsZWZ0OwogICAgIFtOb3RFbnVtZXJhYmxlLCBXaW5kb3dFdmVudEhhbmRsZXIsIENvbmRp
dGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
d2Via2l0d2lsbHJldmVhbHJpZ2h0OwogICAgIFtOb3RFbnVtZXJhYmxlLCBXaW5kb3dFdmVudEhh
bmRsZXIsIENvbmRpdGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9ud2Via2l0d2lsbHJldmVhbHRvcDsKKyAgICAKKyAgICAvLyBOb24tc3RhbmRh
cmQgbmFtZWQgZ2V0dGVyCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGluIHRoZSBzdGFuZGFy
ZCwgY2FuIHdlIHJlbW92ZSB0aGlzPworICAgIGdldHRlciBET01XaW5kb3dTaGVsbCAoRE9NU3Ry
aW5nIG5hbWUpOwogfTsKIAogSFRNTEZyYW1lU2V0RWxlbWVudCBpbXBsZW1lbnRzIFdpbmRvd0V2
ZW50SGFuZGxlcnM7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9ET01XaW5kb3cuaWRsCShyZXZpc2lvbiAy
MTgwNTUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0RPTVdpbmRvdy5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTMyLDcgKzMyLDYgQEAgdHlwZWRlZiBVU1ZTdHJpbmcgQ1NTT01TdHJpbmc7CiAgICAg
Q3VzdG9tRGVsZXRlUHJvcGVydHksCiAgICAgQ3VzdG9tRW51bWVyYXRlUHJvcGVydHksCiAgICAg
Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90LAotICAgIEN1c3RvbUdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgsCiAgICAgQ3VzdG9tR2V0UHJvdG90eXBlLAogICAgIEN1c3RvbVByZXZlbnRFeHRlbnNp
b25zLAogICAgIEN1c3RvbVByb3h5VG9KU09iamVjdCwK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312580</attachid>
            <date>2017-06-10 15:21:38 -0700</date>
            <delta_ts>2017-06-10 19:02:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173229-20170610152206.patch</filename>
            <type>text/plain</type>
            <size>240966</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5NSBAQAorMjAxNy0wNi0xMCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlLWltcGxlbWVudCBH
ZXRPd25Qcm9wZXJ0eVNsb3RbQnlJbmRleF0gZ2VuZXJhdGlvbiB0byBtb3JlIGNsb3NlbHkgZm9s
bG93IFdlYklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczMjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoK
KyAgICAgICAgUmVtb3ZlIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgd2hpY2ggaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAg
ICAgIEFkZCBuZXcgSURMIHR5cGUsIElETERPTVdpbmRvd1NoZWxsLCB0byByZXByZXNlbnQgdGhl
IG1hcHBpbmcgZnJvbSBGcmFtZSAtPiBKU0RPTVdpbmRvd1NoZWxsLAorICAgICAgICBzaW5jZSB0
aGVyZSBpcyBubyBJREwgZmlsZSBmb3IgRE9NV2luZG93U2hlbGwuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNW
aXNpYmxlTmFtZWRQcm9wZXJ0eSk6CisgICAgICAgIEFkZCBPdmVycmlkZUJ1aWx0aW5zIGVudW0g
YXMgcmVxdWVzdGVkIGJ5IGEgcHJldmlvdXMgcmV2aWV3IChhbmQgSSBmb3Jnb3QgYWRkcmVzcykg
YW5kIGFkb3B0IGl0CisgICAgICAgIGluIGlzVmlzaWJsZU5hbWVkUHJvcGVydHksIHN3aXRjaCB0
byBWTUlucXVpcnkgYXMgd2UgdXNlIGVsc2V3aGVyZSBhbmQgYWRkIGEgbWlzc2luZyBGSVhNRS4K
KworICAgICAgICAoV2ViQ29yZTo6YWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHkpOgorICAgICAg
ICBBZGQgdmFyaWF0aW9uIG9mIGlzVmlzaWJsZU5hbWVkUHJvcGVydHkgdGhhdCB0YWtlcyBhIGZ1
bmN0b3IgYW5kIHJldHVybnMgZWl0aGVyIHRoZSB2YWx1ZSB0aGUKKyAgICAgICAgZnVuY3RvciBy
ZXR1cm5zLCBvciBzdGQ6Om51bGxvcHQuIFRoaXMgYWxsb3dzIGdldE93blByb3BlcnR5U2xvdCB0
byBhdm9pZCBkb2luZyB0d28gbG9va3VwcyBmb3IKKyAgICAgICAgcHJvcGVydHksIG9uY2UgaW4g
dGhlIG5hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGhtIGFuZCBhZ2FpbiB3aGVuIGl0
IG5lZWRzIHRoZSB2YWx1ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICBTdGFuZGFyZGl6ZSB0b0pTIGZ1bmN0aW9u
cyB0byBtYXRjaCBnZW5lcmF0ZWQgY29kZSAoaGF2ZSBvbmUgdGhhdCB0YWtlcyBhIHJlZmVyZW5j
ZSwgYW5kIGRvZXMgdGhlCisgICAgICAgIGNhc3QsIGFuZCBvbmUgdGhhdCB0YWtlcyBhIHBvaW50
ZXIsIGRvZXMgYSBudWxsIGNoZWNrIGFuZCBjYWxscyB0aGUgb25lIHRoYXQgdGFrZXMgYSByZWZl
cmVuY2UpLgorICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxEb2N1bWVudDo6Z2V0T3duUHJvcGVy
dHlTbG90KTouCisgICAgICAgIFVwZGF0ZSB0byB1c2UgdGhlIGltcGxlbWVudGF0aW9uIG5hbWVk
SXRlbSAod2hpY2ggaXMgYWxzbyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgZ2V0T3duUHJvcGVydHlT
bG90QnlJbmRleCkKKyAgICAgICAgYW5kIG1hdGNoIHRoZSB1cGRhdGVkIGJpbmRpbmdzIHJ1bGVz
LiBUaGlzIGNhbm5vdCB5ZXQgYmUgZ2VuZXJhdGVkIGR1ZSB0byB0aGUgb2RkIGNhc2Ugb2YgdGhl
ICdvcGVuJworICAgICAgICBwcm9wZXJ0eSByZXF1aXJpbmcgY3VzdG9tIHRyZWF0bWVudC4gSSB0
cmllZCByZW1vdmluZyB0aGlzLCBidXQgaXQgY2F1c2UgdGVzdHMgdG8gZmFpbCBpbiBhIHdheSB0
aGF0IGluZGljYXRlZAorICAgICAgICB0aGF0IGFjY2Vzc2luZyB0aGUgbGV4aWNhbCBnbG9iYWwg
b2JqZWN0IGluIHRoZSBvcGVuIGltcGxlbWVudGF0aW9uIHdhcyBub3Qgd29ya2luZyBjb3JyZWN0
bHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20u
Y3BwOiBSZW1vdmVkLgorICAgICAgICBOb3cgZ2VuZXJhdGVkLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAoSXNCdWlsdGluVHlwZSk6Cisg
ICAgICAgIEFkZGVkIERPTVdpbmRvd1NoZWxsIGFzIGEgYnVpbHRpbiB0eXBlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBZGRUb0lu
Y2x1ZGVzRm9ySURMVHlwZSk6CisgICAgICAgIEFkZCB0aGUgbmVjZXNzYXJ5IGluY2x1ZGVzIHdo
ZW4gdXNpbmcgRE9NV2luZG93U2hlbGwuCisKKyAgICAgICAgKEdlbmVyYXRlSW5kZXhlZEdldHRl
cik6CisgICAgICAgIEFkZCBkZXNjcmlwdGlvbiBmcm9tIHRoZSBzcGVjIGFuZCBjaGFuZ2UgdG8g
cmV0dXJuIHRoZSBjb21wdXRlZCB2YWx1ZXMgcmF0aGVyIHRoYW4KKyAgICAgICAgcHJpbnQgdGhl
bSB0byB0aGUgb3V0cHV0IGFycmF5LiBUaGlzIHdpbGwgYmUgdXNlZnVsIGZvciBzb21lIGNsaWVu
dHMgZ29pbmcgZm9yd2FyZCwKKyAgICAgICAgd2hvIG9ubHkgd2FudCB0aGUgYXR0cmlidXRlcy4K
KworICAgICAgICAoR2VuZXJhdGVOYW1lZEdldHRlcik6CisgICAgICAgIEFkZCBkZXNjcmlwdGlv
biBmcm9tIHRoZSBzcGVjIGFuZCBjaGFuZ2UgdG8gcmV0dXJuIHRoZSBjb21wdXRlZCB2YWx1ZXMg
cmF0aGVyIHRoYW4KKyAgICAgICAgcHJpbnQgdGhlbSB0byB0aGUgb3V0cHV0IGFycmF5LiBUaGlz
IHdpbGwgYmUgdXNlZnVsIGZvciBzb21lIGNsaWVudHMgZ29pbmcgZm9yd2FyZCwKKyAgICAgICAg
d2hvIG9ubHkgd2FudCB0aGUgYXR0cmlidXRlcy4gQWxzbyBncmVhdGx5IHNpbXBsaWZpZXMgdGhp
bmdzIGFzIFtDdXN0b21OYW1lZEdldHRlcl1zCisgICAgICAgIGFyZSBubyBsb25nZXIgbmVlZGVk
L3N1cHBvcnRlZCBhbmQgdGhlIGV4Y2VwdGlvbiAvIG51bGwgdmFsdWUgY2hlY2tzIGFyZSBwZXJm
b3JtZWQKKyAgICAgICAgZWxzZXdoZXJlLgorCisgICAgICAgIChHZW5lcmF0ZU5hbWVkR2V0dGVy
TGFtYmRhKToKKyAgICAgICAgVGhpcyBnZW5lcmF0ZXMgYSBsYW1iZGEgZnVuY3RvciBmb3IgdXNl
IGluIGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KC4uLikuIEl0CisgICAgICAgIGhhbmRsZXMg
Y2FsbGluZyB0aGUgbmFtZWQgZ2V0dGVyIGltcGxlbWVudGF0aW9uLCBhbmQgdHJhbnNmb3JtaW5n
IHRoZSByZXN1bHQgaW50bworICAgICAgICBhbiBvbmUgdGhhdCBjYW4gYmUgcmVhc29uZWQgYWJv
dXQgYnkgYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHksIHNwZWNpZmljYWxseSwKKyAgICAgICAg
Y29udmVydGluZyBpdCBmcm9tIHVzaW5nIElETCdzIG5vdGlvbiBvZiBudWxsYWJpbGl0eSB0byBz
dGQ6Om9wdGlvbmFsLiAKKworICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToKKyAgICAgICAgQWRk
IHNwZWMgYW5ub3RhdGlvbnMgYW5kIHVzZSBoZWxwZXIgZnVuY3Rpb25zLiAKKworICAgICAgICAo
R2VuZXJhdGVHZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgQWRkIEZJWE1FIGFib3V0IHN1
cHBvcnRpbmcgbm9uLWNvbnRpZ3VvdXMgaW5kaWNlcyAoc2hvdWxkIHRoYXQgZXZlciBjb21lIHVw
KQorICAgICAgICBhbmQgdXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIGJhc2Us
IHRvIGdldCB0aGUgZGVmYXVsdCBnZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGltcGxlbWVu
dGF0aW9uLgorCisgICAgICAgIChHZW5lcmF0ZVB1dCk6CisgICAgICAgIFVzZSBKU09iamVjdCBl
eHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgcHV0IGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIChHZW5lcmF0ZVB1dEJ5SW5kZXgpOgorICAgICAgICBVc2Ug
SlNPYmplY3QgZXhwbGljaXRseSwgcmF0aGVyIHRoYW4gYmFzZSwgdG8gZ2V0IHRoZSBkZWZhdWx0
IHB1dEJ5SW5kZXggaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRlRGVmaW5lT3du
UHJvcGVydHkpOgorICAgICAgICBVc2UgSlNPYmplY3QgZXhwbGljaXRseSwgcmF0aGVyIHRoYW4g
YmFzZSwgdG8gZ2V0IHRoZSBkZWZhdWx0IGdldE93blByb3BlcnR5U2xvdC9kZWZpbmVPd25Qcm9w
ZXJ0eQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgKEdlbmVyYXRlRGVsZXRl
UHJvcGVydHlDb21tb24pOgorICAgICAgICBBZG9wdCBuZXcgT3ZlcnJpZGVCdWlsdGlucyBlbnVt
LgorCisgICAgICAgIChHZW5lcmF0ZURlbGV0ZVByb3BlcnR5RGVmaW5pdGlvbik6CisgICAgICAg
IFVzZSBKU09iamVjdCBleHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRl
ZmF1bHQgZGVsZXRlUHJvcGVydHkgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRl
RGVsZXRlUHJvcGVydHlCeUluZGV4RGVmaW5pdGlvbik6CisgICAgICAgIFVzZSBKU09iamVjdCBl
eHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgZGVsZXRlUHJv
cGVydHlCeUluZGV4IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIChJbnN0YW5jZU92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRHZXR0ZXJd
IHVzZS4KKyAKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgUmVtb3ZlIFtDdXN0
b21OYW1lZEdldHRlcl0gdXNlIGFuZCBtZXJnZSBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXggaW50bworICAgICAgICBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdC4gU3BlY2lmeWluZyBlaXRoZXIgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdF0gIG9y
CisgICAgICAgIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4XSB3aWxsIG5vdyBkZWNs
YXJlIGJvdGggaG9va3MuCisgICAgICAgIAorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bik6CisgICAgICAgIFJlbmFtZSBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkvR2VuZXJh
dGVHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4Qm9keSB0byByZW1vdmUgdGhlICdCb2R5JywKKyAg
ICAgICAgYW5kIHByZWRpY2F0ZSB0aGVpciBnZW5lcmF0aW9uIHB1cmVseSBvbiBJbnN0YW5jZU92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCBhcyBub3RlZCBmb3IgdGhlIAorICAgICAgICByZWFz
b25zIGFib3ZlLgorCisgICAgICAgIChHZXRCYXNlSURMVHlwZSk6CisgICAgICAgIEFkZCBtYXBw
aW5nIG9mIERPTVdpbmRvd1NoZWxsIC0+IElETERPTVdpbmRvd1NoZWxsLgorCisgICAgICAgIChO
YXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNTdGF0ZSk6CisgICAgICAgIFJlcXVpcmUgRXhl
Y1N0YXRlIGZvciBET01XaW5kb3dTaGVsbCBjb252ZXJzaW9uLgorCisgICAgICAgIChOYXRpdmVU
b0pTVmFsdWVET01Db252ZXJ0TmVlZHNHbG9iYWxPYmplY3QpOgorICAgICAgICBSZXF1aXJlIERP
TUdsb2JhbE9iamVjdCBmb3IgRE9NV2luZG93U2hlbGwgY29udmVyc2lvbi4gKFdoaWxlIHRoaXMg
aXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwKKyAgICAgICAgc2luY2UgdGhlIGdsb2JhbCBvYmpl
Y3Qgd2lsbCBiZSBpZ25vcmUsIHNpbmNlIHdlIGFyZSBtb2RlbGluZyBET01XaW5kb3dTaGVsbCBh
cyBpbnRlcmZhY2UsIGl0CisgICAgICAgIGlzIGhlbHBmdWwgZm9yIHRoaXMgdG8gYmUgY29uc2lz
dGVudCByaWdodCBub3cuIFdlIGNhbiByZS12aXNpdCB0aGlzIGxhdGVyIHNob3VsZCBpdCBhIHBy
b2JsZW0pLgorCisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkpOiBEZWxl
dGVkLgorICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5QnlJbmRleCk6IERl
bGV0ZWQuCisgICAgICAgIChJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgpOiBEZWxldGVkLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
Lmpzb246CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRHZXR0ZXJdLgorCisgICAgICAgICog
ZG9tL0V4Y2VwdGlvbk9yLmg6CisgICAgICAgIChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZXR1cm5U
eXBlPjo6cmV0dXJuVmFsdWUpOgorICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byBwZWVrIGF0IHRo
ZSByZXR1cm4gdmFsdWUKKworICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmNhcHR1cmVFdmVudHMp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpyZWxlYXNlRXZlbnRzKToKKyAgICAg
ICAgTW92ZSBjbGVhciB1cCB0byBiZSB3aXRoIHRoZSBvdGhlciBvYnNvbGV0ZSBuby1vcCBmdW5j
dGlvbnMuIEFkZCBzcGVjIGFubm90YXRpb25zCisgICAgICAgIHRvIGNsZWFyIHVwIGFueSBjb25m
dXNpb24gYWJvdXQgd2h5IHRoZXkgYXJlIG5vLW9wcy4KKworICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50OjpuYW1lZEl0ZW0pOgorICAgICAgICBBZGQgaW1wbGVtZW50YXRpb24gb2YgbmFt
ZWRJdGVtIGJhc2VkIG9uIHRoZSBvbmUgdGhhdCB3YXMgaW4gSlNET01IVE1MRG9jdW1lbnRDdXN0
b20uY3BwLgorCisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OnN1cHBvcnRlZFByb3Bl
cnR5TmFtZXMpOgorICAgICAgICBBZGQgc3R1YiB2ZXJzaW9uIG9mIHN1cHBvcnRlZFByb3BlcnR5
TmFtZXMgd2l0aCB0aGUgYWxnb3JpdGhtIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorICAgICAgICBJ
IGRvbid0IHdhbnQgdG8gY2hhbmdlIGJlaGF2aW9yIGluIHRoaXMgcGF0Y2gsIGFuZCBzaW5jZSB3
ZSBoYXZlIG5vdCBlbnVtZXJhdGVkIHRoZQorICAgICAgICBwcm9wZXJ0aWVzIG9mIGRvY3VtZW50
IGluIHRoZSBwYXN0LCBJIGxlZnQgdGhpcyB1bmltcGxlbWVudGVkIGZvciBub3cuCisKKyAgICAg
ICAgKiBodG1sL0hUTUxEb2N1bWVudC5pZGw6CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRH
ZXR0ZXJdIGFuZCBhZGQgbmFtZWQgZ2V0dGVyLgorCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6Om5hbWVkSXRlbSk6CisgICAgICAg
IEFkZCBuYW1lZCBnZXR0ZXIgYmFzZWQgb24gdGhlIGltcGxlbWVudGF0aW9uIGluIEpTSFRNTEZy
YW1lU2V0RWxlbWVudEN1c3RvbS5jcHAuCisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNl
dEVsZW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICBBcyBub3RlZCBhYm92
ZSwgSSBkb24ndCB3YW50IHRvIGNoYW5nZSBiZWhhdmlvciB3aXRoIHRoaXMgY2hhbmdlLCBzbyBJ
IGhhdmUgbGVmdCB0aGlzIHVuaW1wbGVtZW50ZWQKKyAgICAgICAgZm9yIG5vdy4gSG93ZXZlciwg
d2UgbWF5IG5vdCB3YW50IHRvIGltcGxlbWVudCBpdCBhdCBhbGwsIGFzIHRoaXMgbmFtZWQgZ2V0
dGVyIGlzIG5vdCBzcGVjaWZpZWQgYW5kCisgICAgICAgIGF0IGxlYXN0IEZpcmVmb3ggZG9lcyBu
b3Qgc3VwcG9ydCBpdC4KKworICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGw6
CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRHZXR0ZXJdIGFuZCBhZGQgbmFtZWQgZ2V0dGVy
LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHA6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHA6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1
aWx0aW5zLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuY3BwOgorICAgICAgICBVcGRhdGUgdGVzdCByZXN1bHRzLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgUmVtb3ZlIHRlc3Qgb2YgW0N1c3Rv
bU5hbWVkR2V0dGVyXSB3aGljaCBubyBsb25nZXIgZXhpc3RzLiAKKwogMjAxNy0wNi0xMCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFtYY29kZV0gV2l0aCBYY29k
ZSA5IGRldmVsb3BlciBiZXRhLCBldmVyeXRoaW5nIHJlYnVpbGRzIHdoZW4gc3dpdGNoaW5nIGJl
dHdlZW4gY29tbWFuZC1saW5lIGFuZCBJREUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlzdHMudHh0CShyZXZp
c2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMTE4Niw3ICsxMTg2LDYgQEAgc2V0KFdlYkNvcmVfU09VUkNFUwogICAgIGJpbmRp
bmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTEVs
ZW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9t
LmNwcAotICAgIGJpbmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAKICAg
ICBiaW5kaW5ncy9qcy9KU0hUTUxPYmplY3RFbGVtZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdz
L2pzL0pTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0hp
c3RvcnlDdXN0b20uY3BwCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29k
ZXByb2ovcHJvamVjdC5wYnhwcm9qCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29y
ZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHdvcmtpbmcgY29weSkKQEAgLTU4
NDYsNyArNTg0Niw2IEBACiAJCUJDRDBFMEZBMEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9y
aWdpbi5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBC
Q0QwRTBGNzBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovOyB9OwogCQlC
Q0QwRTBGQjBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uaCBpbiBIZWFkZXJzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDBFMEY4MEU5NzJDMzUwMDI2NURF
QSAvKiBTZWN1cml0eU9yaWdpbi5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZh
dGUsICk7IH07IH07CiAJCUJDRDBFMEZDMEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdp
bkhhc2guaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJD
RDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2guaCAqLzsgc2V0dGlu
Z3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwotCQlCQ0Q0MUFCQjBDMDYwREU4
MDBDMEU0NDYgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICov
ID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDQxQUJBMEMwNjBERTgwMEMwRTQ0
NiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwICovOyB9OwogCQlCQ0Q1MzM2NDBF
RDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDUzMzYzMEVENjg0ODkwMDg4
NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oICovOyB9OwogCQlCQ0Q5QzI2MjBD
MTdBQTY3MDA1QzkwQTIgLyogSlNET01XaW5kb3dDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEOUMyNUUwQzE3QUE2NzAwNUM5MEEyIC8q
IEpTRE9NV2luZG93Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNEOUMyNjQwQzE3QUE2NzAwNUM5MEEy
IC8qIEpTTm9kZUN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSBCQ0Q5QzI2MDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAq
LzsgfTsKQEAgLTE0MzQ5LDcgKzE0MzQ4LDYgQEAKIAkJQkNEMEUwRjcwRTk3MkMzNTAwMjY1REVB
IC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxl
RW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0
aCA9IFNlY3VyaXR5T3JpZ2luLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNE
MEUwRjgwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmggKi8gPSB7aXNhID0gUEJY
RmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3Vy
Y2Vjb2RlLmMuaDsgcGF0aCA9IFNlY3VyaXR5T3JpZ2luLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUJDRDBFMEY5MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbkhhc2gu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjdXJpdHlPcmlnaW5IYXNoLmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07Ci0JCUJDRDQxQUJBMEMwNjBERTgwMEMwRTQ0NiAv
KiBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Y3BwLmNwcDsgcGF0aCA9IEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDUzMzYzMEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRT
Y3JpcHRTb3VyY2VQcm92aWRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBD
YWNoZWRTY3JpcHRTb3VyY2VQcm92aWRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0Q5QzI1RTBDMTdBQTY3MDA1QzkwQTIgLyogSlNET01XaW5kb3dDdXN0b20uY3BwICovID0g
e2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMwOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTRE9NV2luZG93Q3VzdG9tLmNwcDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8q
IEpTTm9kZUN1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29k
aW5nID0gMzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0g
SlNOb2RlQ3VzdG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKQEAgLTIzNjUyLDcg
KzIzNjUwLDYgQEAKIAkJCQlCQzUxNTgwQTBDMDNENDA0MDA4QkIwRUUgLyogSlNIVE1MRG9jdW1l
bnRDdXN0b20uY3BwICovLAogCQkJCUJDNTgyM0Y0MEMwQTk4REYwMDUzRjFCNSAvKiBKU0hUTUxF
bGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzZENDRCRDBDMDdFRkI2MDA3MkQyQzkgLyogSlNI
VE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCAqLywKLQkJCQlCQ0Q0MUFCQTBDMDYwREU4MDBDMEU0
NDYgLyogSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQlCQzMwNUNBMzBD
MDc4MUJCMDBDRDIwRjAgLyogSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJ
RDZGNzk2MEMxNjZGRkVDRTAwNzZERDE4IC8qIEpTSFRNTFRlbXBsYXRlRWxlbWVudEN1c3RvbS5j
cHAgKi8sCiAJCQkJN0E3NEVDQkMxMDE4MzlEQTAwQkY5MzlFIC8qIEpTSW5zcGVjdG9yRnJvbnRl
bmRIb3N0Q3VzdG9tLmNwcCAqLywKQEAgLTMyMDMxLDcgKzMyMDI4LDYgQEAKIAkJCQlBOEQwNjRG
QjBBMjNDMENDMDA1RTcyMDMgLyogSlNIVE1MRm9ybUVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8s
CiAJCQkJQkM0OTE4QzYwQkZFQTA1MDAwOUQ2MzE2IC8qIEpTSFRNTEZyYW1lRWxlbWVudC5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlCQzkyNkY4MDBDMDU1MjQ3MDA4Mjc3NkIgLyogSlNIVE1MRnJh
bWVTZXRFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAotCQkJCUJDRDQxQUJCMEMwNjBERTgwMEMw
RTQ0NiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8sCiAJ
CQkJQTgwRTdCMTQwQTE5RDYwNjAwN0ZCOEM1IC8qIEpTSFRNTEhlYWRFbGVtZW50LmNwcCBpbiBT
b3VyY2VzICovLAogCQkJCTFBRTJBQTJFMEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIZWFkaW5n
RWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKIAkJCQkxQUUyQUEzMDBBMUNEQUI0MDBCNDJCMjUg
LyogSlNIVE1MSFJFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLApJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvSURMVHlwZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9JRExUeXBlcy5oCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9JRExUeXBlcy5oCSh3b3JraW5nIGNvcHkpCkBAIC00NSwxMCArNDUsMTEgQEAgdGVtcGxh
dGU8dHlwZW5hbWU+IGNsYXNzIFN0cm9uZzsKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitjbGFz
cyBET01Qcm9taXNlOworY2xhc3MgRnJhbWU7CiBjbGFzcyBJREJLZXk7CiBjbGFzcyBJREJLZXlE
YXRhOwogY2xhc3MgSURCVmFsdWU7Ci1jbGFzcyBET01Qcm9taXNlOwogCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgogc3RydWN0IElETFR5cGUgewpAQCAtMjQ1LDYgKzI0Niw4IEBAIHN0cnVjdCBJRExJ
REJWYWx1ZSA6IElETFdyYXBwZXI8SURCVmFsdWUKIHN0cnVjdCBJRExXZWJHTEFueSA6IElETFR5
cGU8V2ViR0xBbnk+IHsgfTsKICNlbmRpZgogCit1c2luZyBJRExET01XaW5kb3dTaGVsbCA9IElE
TEludGVyZmFjZTxGcmFtZT47CisKIC8vIE5vbi1XZWJJREwgY29udmVuaWVuY2UgdHlwZSBhbGlh
c2VzCiAKIHVzaW5nIElETEJ1ZmZlclNvdXJjZSA9IElETFVuaW9uPElETEludGVyZmFjZTxKU0M6
OkFycmF5QnVmZmVyVmlldz4sIElETEludGVyZmFjZTxKU0M6OkFycmF5QnVmZmVyPj47CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0JpbmRpbmdzQWxsSW5PbmUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5j
cHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmlu
ZGluZ3NBbGxJbk9uZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTcxLDcgKzcxLDYgQEAKICNpbmNs
dWRlICJKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRWxlbWVudEN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MRW1iZWRFbGVtZW50Q3VzdG9tLmNwcCIKLSNpbmNs
dWRlICJKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTSFRNTE9i
amVjdEVsZW1lbnRDdXN0b20uY3BwIgogI2luY2x1ZGUgIkpTSFRNTFRlbXBsYXRlRWxlbWVudEN1
c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIaXN0b3J5Q3VzdG9tLmNwcCIKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaAko
cmV2aXNpb24gMjE4MDU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0
cmFjdE9wZXJhdGlvbnMuaAkod29ya2luZyBjb3B5KQpAQCAtMzIsMTAgKzMyLDE0IEBAIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIC8vIEltcGxlbWVudGF0aW9ucyBvZiB0aGUgYWJzdHJhY3Qgb3BlcmF0
aW9ucyBkZWZpbmVkIGF0CiAvLyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNsZWdh
Y3ktcGxhdGZvcm0tb2JqZWN0LWFic3RyYWN0LW9wcwogCitlbnVtIGNsYXNzIE92ZXJyaWRlQnVp
bHRpbnMgeworICAgIE5vLAorICAgIFllcworfTsKIAogLy8gQW4gaW1wbGVtZW50YXRpb24gb2Yg
dGhlICduYW1lZCBwcm9wZXJ0eSB2aXNpYmlsaXR5IGFsZ29yaXRobScKIC8vIGh0dHBzOi8vaGV5
Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Rmbi1uYW1lZC1wcm9wZXJ0eS12aXNpYmlsaXR5Ci10ZW1w
bGF0ZTxib29sIG92ZXJyaWRlQnVpbHRpbnMsIGNsYXNzIEpTQ2xhc3M+Cit0ZW1wbGF0ZTxPdmVy
cmlkZUJ1aWx0aW5zIG92ZXJyaWRlQnVpbHRpbnMsIGNsYXNzIEpTQ2xhc3M+CiBzdGF0aWMgYm9v
bCBpc1Zpc2libGVOYW1lZFByb3BlcnR5KEpTQzo6RXhlY1N0YXRlJiBzdGF0ZSwgSlNDbGFzcyYg
dGhpc09iamVjdCwgSlNDOjpQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIC8vIEZJ
WE1FOiBJdCBzZWVtcyB1bmZvcnR1bmF0ZSB0aGF0IGhhdmUgdG8gZG8gdHdvIGxvb2t1cHMgZm9y
IHRoZSBwcm9wZXJ0eSBuYW1lLApAQCAtNTUsMTcgKzU5LDE4IEBAIHN0YXRpYyBib29sIGlzVmlz
aWJsZU5hbWVkUHJvcGVydHkoSlNDOjoKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAg
IC8vIDIuIElmIE8gaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCBQLCB0aGVuIHJldHVybiBmYWxz
ZS4KLSAgICBKU0M6OlByb3BlcnR5U2xvdCBzbG90IHsgJnRoaXNPYmplY3QsIEpTQzo6UHJvcGVy
dHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OkdldE93blByb3BlcnR5IH07CisgICAgSlNDOjpQ
cm9wZXJ0eVNsb3Qgc2xvdCB7ICZ0aGlzT2JqZWN0LCBKU0M6OlByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBpZiAoSlNDOjpKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90KCZ0aGlzT2JqZWN0LCAmc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICAKICAgICAvLyAzLiBJZiBPIGltcGxlbWVudHMgYW4g
aW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBbT3ZlcnJpZGVCdWlsdGluc10gZXh0ZW5kZWQgYXR0cmli
dXRlLCB0aGVuIHJldHVybiB0cnVlLgotICAgIGlmIChvdmVycmlkZUJ1aWx0aW5zKQorICAgIGlm
IChvdmVycmlkZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKICAgICAgICAgcmV0
dXJuIHRydWU7CiAKICAgICAvLyA0LiBJbml0aWFsaXplIHByb3RvdHlwZSB0byBiZSB0aGUgdmFs
dWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgTy4KICAgICAvLyA1
LiBXaGlsZSBwcm90b3R5cGUgaXMgbm90IG51bGw6CiAgICAgLy8gICAgMS4gSWYgcHJvdG90eXBl
IGlzIG5vdCBhIG5hbWVkIHByb3BlcnRpZXMgb2JqZWN0LCBhbmQgcHJvdG90eXBlIGhhcyBhbiBv
d24gcHJvcGVydHkgbmFtZWQgUCwgdGhlbiByZXR1cm4gZmFsc2UuCisgICAgLy8gRklYTUU6IElt
cGxlbWVudCBjaGVja2luZyBmb3IgJ25hbWVkIHByb3BlcnRpZXMgb2JqZWN0Jy4KICAgICAvLyAg
ICAyLiBTZXQgcHJvdG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90
b3R5cGVdXSBwcm9wZXJ0eSBvZiBwcm90b3R5cGUuCiAgICAgYXV0byBwcm90b3R5cGUgPSB0aGlz
T2JqZWN0LmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlmIChwcm90b3R5cGUuaXNPYmplY3Qo
KSAmJiBKU0M6OmFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdCgmc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpCkBAIC03NSw0ICs4MCw0NCBAQCBzdGF0aWMgYm9vbCBpc1Zpc2li
bGVOYW1lZFByb3BlcnR5KEpTQzo6CiAgICAgcmV0dXJuIHRydWU7CiB9CiAKKy8vIEFuIGltcGxl
bWVudGF0aW9uIG9mIHRoZSAnbmFtZWQgcHJvcGVydHkgdmlzaWJpbGl0eSBhbGdvcml0aG0nIGF1
Z21lbnRlZCB0byByZXBsYWNlIHRoZQorLy8gJ3N1cHBvcnRlZCBwcm9wZXJ0eSBuYW1lJyBjaGVj
ayB3aXRoIGRpcmVjdCBhY2Nlc3MgdG8gdGhlIGltcGxlbWVudGF0aW9uIHZhbHVlIHJldHVybmVk
CisvLyBmb3IgdGhlIHByb3BlcnR5IG5hbWUsIHZpYSBwYXNzZWQgaW4gZnVuY3Rvci4gVGhpcyBh
bGxvd3MgdXMgdG8gYXZvaWQgdHdvIGxvb2tpbmcgdXAgdGhlCisvLyB0aGUgcHJvcGVydHkgbmFt
ZSB0d2ljZTsgb25jZSBmb3IgJ25hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGhtJyBj
aGVjaywgYW5kIHRoZW4KKy8vIGFnYWluIHdoZW4gdGhlIHZhbHVlIGlzIG5lZWRlZC4KK3RlbXBs
YXRlPE92ZXJyaWRlQnVpbHRpbnMgb3ZlcnJpZGVCdWlsdGlucywgY2xhc3MgSlNDbGFzcywgY2xh
c3MgRnVuY3Rvcj4KK3N0YXRpYyBhdXRvIGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KEpTQzo6
RXhlY1N0YXRlJiBzdGF0ZSwgSlNDbGFzcyYgdGhpc09iamVjdCwgSlNDOjpQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBGdW5jdG9yJiYgaXRlbUFjY2Vzc29yKSAtPiBkZWNsdHlwZShpdGVtQWNj
ZXNzb3IodGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkKK3sKKyAgICAvLyBOT1RFOiBXaGlsZSBp
dCBpcyBub3Qgc3BlY2lmaWVkLCBhIFN5bWJvbCBjYW4gbmV2ZXIgYmUgYSAnc3VwcG9ydGVkIHBy
b3BlcnR5CisgICAgLy8gbmFtZScgc28gd2UgY2hlY2sgdGhhdCBmaXJzdC4KKyAgICBpZiAocHJv
cGVydHlOYW1lLmlzU3ltYm9sKCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisKKyAg
ICAvLyAxLiBJZiBQIGlzIG5vdCBhIHN1cHBvcnRlZCBwcm9wZXJ0eSBuYW1lIG9mIE8sIHRoZW4g
cmV0dXJuIGZhbHNlLgorICAgIGF1dG8gcmVzdWx0ID0gaXRlbUFjY2Vzc29yKHRoaXNPYmplY3Qs
IHByb3BlcnR5TmFtZSk7CisgICAgaWYgKCFyZXN1bHQpCisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisKKyAgICAvLyAyLiBJZiBPIGhhcyBhbiBvd24gcHJvcGVydHkgbmFtZWQgUCwgdGhl
biByZXR1cm4gZmFsc2UuCisgICAgSlNDOjpQcm9wZXJ0eVNsb3Qgc2xvdCB7ICZ0aGlzT2JqZWN0
LCBKU0M6OlByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKKyAg
ICBpZiAoSlNDOjpKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KCZ0aGlzT2JqZWN0LCAmc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisK
KyAgICAvLyAzLiBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHRoYXQgaGFzIHRoZSBbT3Zl
cnJpZGVCdWlsdGluc10gZXh0ZW5kZWQgYXR0cmlidXRlLCB0aGVuIHJldHVybiB0cnVlLgorICAg
IGlmIChvdmVycmlkZUJ1aWx0aW5zID09IE92ZXJyaWRlQnVpbHRpbnM6OlllcykKKyAgICAgICAg
cmV0dXJuIHJlc3VsdDsKKworICAgIC8vIDQuIEluaXRpYWxpemUgcHJvdG90eXBlIHRvIGJlIHRo
ZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBPLgorICAg
IC8vIDUuIFdoaWxlIHByb3RvdHlwZSBpcyBub3QgbnVsbDoKKyAgICAvLyAgICAxLiBJZiBwcm90
b3R5cGUgaXMgbm90IGEgbmFtZWQgcHJvcGVydGllcyBvYmplY3QsIGFuZCBwcm90b3R5cGUgaGFz
IGFuIG93biBwcm9wZXJ0eSBuYW1lZCBQLCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICAvLyBGSVhN
RTogSW1wbGVtZW50IGNoZWNraW5nIGZvciAnbmFtZWQgcHJvcGVydGllcyBvYmplY3QnLgorICAg
IC8vICAgIDIuIFNldCBwcm90b3R5cGUgdG8gYmUgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBb
W1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHByb3RvdHlwZS4KKyAgICBhdXRvIHByb3RvdHlwZSA9
IHRoaXNPYmplY3QuZ2V0UHJvdG90eXBlRGlyZWN0KCk7CisgICAgaWYgKHByb3RvdHlwZS5pc09i
amVjdCgpICYmIEpTQzo6YXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KCZzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIC8vIDYuIFJldHVybiB0cnVlLgorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIH0KSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAkocmV2
aXNpb24gMjE4MDU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQ3LDMwICsyNDcsMzAgQEAgSlNET01XaW5kb3dT
aGVsbCogSlNET01XaW5kb3dCYXNlOjpzaGVsbAogCiAvLyBKU0RPTUdsb2JhbE9iamVjdCogaXMg
aWdub3JlZCwgYWNjZXNzaW5nIGEgd2luZG93IGluIGFueSBjb250ZXh0IHdpbGwKIC8vIHVzZSB0
aGF0IERPTVdpbmRvdydzIHByb3RvdHlwZSBjaGFpbi4KLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUq
IGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRE9NV2luZG93JiBkb21XaW5kb3cpCitKU1ZhbHVl
IHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqLCBET01XaW5kb3cmIGRv
bVdpbmRvdykKIHsKLSAgICByZXR1cm4gdG9KUyhleGVjLCBkb21XaW5kb3cpOworICAgIHJldHVy
biB0b0pTKHN0YXRlLCBkb21XaW5kb3cpOwogfQogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBl
eGVjLCBET01XaW5kb3cmIGRvbVdpbmRvdykKK0pTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSog
c3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiwgRnJhbWUmIGZyYW1lKQogewotICAgIEZyYW1lKiBm
cmFtZSA9IGRvbVdpbmRvdy5mcmFtZSgpOwotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVy
biBqc051bGwoKTsKLSAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLndpbmRvd1NoZWxsKGN1cnJl
bnRXb3JsZChleGVjKSk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsIGZyYW1lKTsKIH0KIAotSlNE
T01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdv
cmxkKQorSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogc3RhdGUsIERPTVdpbmRvdyYgZG9tV2luZG93
KQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotICAgIHJldHVybiBmcmFt
ZS0+c2NyaXB0KCkud2luZG93U2hlbGwod29ybGQpLT53aW5kb3coKTsKKyAgICByZXR1cm4gdG9K
UyhzdGF0ZSwgZG9tV2luZG93LmZyYW1lKCkpOworfQorCitKU0RPTVdpbmRvdyogdG9KU0RPTVdp
bmRvdyhGcmFtZSYgZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCit7CisgICAgcmV0dXJu
IGZyYW1lLnNjcmlwdCgpLndpbmRvd1NoZWxsKHdvcmxkKS0+d2luZG93KCk7CiB9CiAKIEpTRE9N
V2luZG93KiB0b0pTRE9NV2luZG93KEpTQzo6Vk0mIHZtLCBKU1ZhbHVlIHZhbHVlKQogewogICAg
IGlmICghdmFsdWUuaXNPYmplY3QoKSkKLSAgICAgICAgcmV0dXJuIDA7CisgICAgICAgIHJldHVy
biBudWxscHRyOwogCiAgICAgd2hpbGUgKCF2YWx1ZS5pc051bGwoKSkgewogICAgICAgICBKU09i
amVjdCogb2JqZWN0ID0gYXNPYmplY3QodmFsdWUpOwpAQCAtMjgxLDcgKzI4MSw3IEBAIEpTRE9N
V2luZG93KiB0b0pTRE9NV2luZG93KEpTQzo6Vk0mIHZtLCAKICAgICAgICAgICAgIHJldHVybiBq
c0Nhc3Q8SlNET01XaW5kb3dTaGVsbCo+KG9iamVjdCktPndpbmRvdygpOwogICAgICAgICB2YWx1
ZSA9IG9iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgfQotICAgIHJldHVybiAwOwor
ICAgIHJldHVybiBudWxscHRyOwogfQogCiBET01XaW5kb3cmIGluY3VtYmVudERPTVdpbmRvdyhF
eGVjU3RhdGUqIGV4ZWMpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd0Jhc2UuaAkocmV2aXNpb24gMjE4MDU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmgJKHdvcmtpbmcgY29weSkKQEAgLTg1LDE2ICs4NSwxOCBA
QCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIG1fc2hlbGw7
CiAgICAgfTsKIAotICAgIC8vIFJldHVybnMgYSBKU0RPTVdpbmRvdyBvciBqc051bGwoKQotICAg
IC8vIEpTRE9NR2xvYmFsT2JqZWN0KiBpcyBpZ25vcmVkLCBhY2Nlc3NpbmcgYSB3aW5kb3cgaW4g
YW55IGNvbnRleHQgd2lsbAotICAgIC8vIHVzZSB0aGF0IERPTVdpbmRvdydzIHByb3RvdHlwZSBj
aGFpbi4KKyAgICAvLyBUaGUgZm9sbG93aW5nIHJldHVybiBhIEpTRE9NV2luZG93U2hlbGwgb3Ig
anNOdWxsKCkKKyAgICAvLyBKU0RPTUdsb2JhbE9iamVjdCogaXMgaWdub3JlZCwgYWNjZXNzaW5n
IGEgd2luZG93IGluIGFueSBjb250ZXh0IHdpbGwgdXNlIHRoYXQgRE9NV2luZG93J3MgcHJvdG90
eXBlIGNoYWluLgogICAgIFdFQkNPUkVfRVhQT1JUIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBET01XaW5kb3cmKTsKLSAgICBpbmxpbmUgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIGV4ZWMsIEpTRE9NR2xvYmFsT2JqZWN0KiBn
bG9iYWxPYmplY3QsIERPTVdpbmRvdyogd2luZG93KSB7IHJldHVybiB3aW5kb3cgPyB0b0pTKGV4
ZWMsIGdsb2JhbE9iamVjdCwgKndpbmRvdykgOiBKU0M6OmpzTnVsbCgpOyB9CisgICAgaW5saW5l
IEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgRE9NV2luZG93KiB3aW5kb3cpIHsgcmV0dXJuIHdpbmRvdyA/IHRv
SlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgKndpbmRvdykgOiBKU0M6OmpzTnVsbCgpOyB9CisgICAg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIEZy
YW1lJik7CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRnJhbWUqIGZyYW1lKSB7IHJldHVy
biBmcmFtZSA/IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgKmZyYW1lKSA6IEpTQzo6anNOdWxs
KCk7IH0KICAgICBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIERPTVdpbmRvdyYp
OwotICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgRE9N
V2luZG93KiB3aW5kb3cpIHsgcmV0dXJuIHdpbmRvdyA/IHRvSlMoZXhlYywgKndpbmRvdykgOiBK
U0M6OmpzTnVsbCgpOyB9CisgICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiBzdGF0ZSwgRE9NV2luZG93KiB3aW5kb3cpIHsgcmV0dXJuIHdpbmRvdyA/IHRvSlMoc3Rh
dGUsICp3aW5kb3cpIDogSlNDOjpqc051bGwoKTsgfQogCi0gICAgLy8gUmV0dXJucyBKU0RPTVdp
bmRvdyBvciAwCi0gICAgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUqLCBET01XcmFw
cGVyV29ybGQmKTsKKyAgICAvLyBUaGUgZm9sbG93aW5nIHJldHVybiBhIEpTRE9NV2luZG93IG9y
IG51bGxwdHIuCisgICAgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUmLCBET01XcmFw
cGVyV29ybGQmKTsKKyAgICBpbmxpbmUgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coRnJhbWUq
IGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKSB7IHJldHVybiBmcmFtZSA/IHRvSlNET01X
aW5kb3coKmZyYW1lLCB3b3JsZCkgOiBudWxscHRyOyB9CiAgICAgV0VCQ09SRV9FWFBPUlQgSlNE
T01XaW5kb3cqIHRvSlNET01XaW5kb3coSlNDOjpWTSYsIEpTQzo6SlNWYWx1ZSk7CiAKICAgICAv
LyBET01XaW5kb3cgYXNzb2NpYXRlZCB3aXRoIGdsb2JhbCBvYmplY3Qgb2YgdGhlICJtb3N0LXJl
Y2VudGx5LWVudGVyZWQgYXV0aG9yIGZ1bmN0aW9uIG9yIHNjcmlwdApJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAJKHJldmlzaW9uIDIx
ODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xMTgsMTggKzExOCwxNCBAQCBET01XaW5kb3cqIEpTRE9NV2lu
ZG93U2hlbGw6OnRvV3JhcHBlZChWCiAvLyBDb252ZXJzaW9uIG1ldGhvZHMKIC8vIC0tLS0KIAot
SlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUqIGZyYW1lKQorSlNWYWx1ZSB0b0pT
KEV4ZWNTdGF0ZSogZXhlYywgRnJhbWUmIGZyYW1lKQogewotICAgIGlmICghZnJhbWUpCi0gICAg
ICAgIHJldHVybiBqc051bGwoKTsKLSAgICByZXR1cm4gZnJhbWUtPnNjcmlwdCgpLndpbmRvd1No
ZWxsKGN1cnJlbnRXb3JsZChleGVjKSk7CisgICAgcmV0dXJuIGZyYW1lLnNjcmlwdCgpLndpbmRv
d1NoZWxsKGN1cnJlbnRXb3JsZChleGVjKSk7CiB9CiAKLUpTRE9NV2luZG93U2hlbGwqIHRvSlNE
T01XaW5kb3dTaGVsbChGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCitKU0RP
TVdpbmRvd1NoZWxsKiB0b0pTRE9NV2luZG93U2hlbGwoRnJhbWUmIGZyYW1lLCBET01XcmFwcGVy
V29ybGQmIHdvcmxkKQogewotICAgIGlmICghZnJhbWUpCi0gICAgICAgIHJldHVybiAwOwotICAg
IHJldHVybiBmcmFtZS0+c2NyaXB0KCkud2luZG93U2hlbGwod29ybGQpOworICAgIHJldHVybiBm
cmFtZS5zY3JpcHQoKS53aW5kb3dTaGVsbCh3b3JsZCk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdl
YkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1No
ZWxsLmgJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pT
RE9NV2luZG93U2hlbGwuaAkod29ya2luZyBjb3B5KQpAQCAtMzQsNDQgKzM0LDQ4IEBACiAKIG5h
bWVzcGFjZSBXZWJDb3JlIHsKIAotICAgIGNsYXNzIEZyYW1lOworY2xhc3MgRnJhbWU7CiAKLSAg
ICBjbGFzcyBKU0RPTVdpbmRvd1NoZWxsIDogcHVibGljIEpTQzo6SlNQcm94eSB7Ci0gICAgICAg
IHR5cGVkZWYgSlNDOjpKU1Byb3h5IEJhc2U7Ci0gICAgcHVibGljOgotICAgICAgICBzdGF0aWMg
dm9pZCBkZXN0cm95KEpTQ2VsbCopOworLy8gRklYTUU6IFJlbmFtZSB0byBKU1dpbmRvd1Byb3h5
IHRvIG1hdGNoIEhUTUwgc3BlYyBuYW1pbmcuCitjbGFzcyBKU0RPTVdpbmRvd1NoZWxsIDogcHVi
bGljIEpTQzo6SlNQcm94eSB7CisgICAgdHlwZWRlZiBKU0M6OkpTUHJveHkgQmFzZTsKK3B1Ymxp
YzoKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQ2VsbCopOwogCi0gICAgICAgIEpTRE9NV2lu
ZG93KiB3aW5kb3coKSBjb25zdCB7IHJldHVybiBKU0M6OmpzQ2FzdDxKU0RPTVdpbmRvdyo+KHRh
cmdldCgpKTsgfQotICAgICAgICB2b2lkIHNldFdpbmRvdyhKU0M6OlZNJiwgSlNET01XaW5kb3cq
KTsKLSAgICAgICAgdm9pZCBzZXRXaW5kb3coUmVmUHRyPERPTVdpbmRvdz4mJik7CisgICAgSlNE
T01XaW5kb3cqIHdpbmRvdygpIGNvbnN0IHsgcmV0dXJuIEpTQzo6anNDYXN0PEpTRE9NV2luZG93
Kj4odGFyZ2V0KCkpOyB9CisgICAgdm9pZCBzZXRXaW5kb3coSlNDOjpWTSYsIEpTRE9NV2luZG93
Kik7CisgICAgdm9pZCBzZXRXaW5kb3coUmVmUHRyPERPTVdpbmRvdz4mJik7CiAKLSAgICAgICAg
REVDTEFSRV9JTkZPOworICAgIERFQ0xBUkVfSU5GTzsKIAotICAgICAgICBET01XaW5kb3cmIHdy
YXBwZWQoKSBjb25zdDsKLSAgICAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIERPTVdpbmRvdyog
dG9XcmFwcGVkKEpTQzo6Vk0mLCBKU0M6OkpTT2JqZWN0Kik7CisgICAgRE9NV2luZG93JiB3cmFw
cGVkKCkgY29uc3Q7CisgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIERPTVdpbmRvdyogdG9XcmFw
cGVkKEpTQzo6Vk0mLCBKU0M6OkpTT2JqZWN0Kik7CiAKLSAgICAgICAgc3RhdGljIEpTRE9NV2lu
ZG93U2hlbGwqIGNyZWF0ZShKU0M6OlZNJiB2bSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3cs
IEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCi0gICAg
ICAgIHsKLSAgICAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gbmV3IChOb3ROdWxs
LCBKU0M6OmFsbG9jYXRlQ2VsbDxKU0RPTVdpbmRvd1NoZWxsPih2bS5oZWFwKSkgSlNET01XaW5k
b3dTaGVsbCh2bSwgc3RydWN0dXJlLCB3b3JsZCk7Ci0gICAgICAgICAgICBzaGVsbC0+ZmluaXNo
Q3JlYXRpb24odm0sIFdURk1vdmUod2luZG93KSk7Ci0gICAgICAgICAgICByZXR1cm4gc2hlbGw7
IAotICAgICAgICB9CisgICAgc3RhdGljIEpTRE9NV2luZG93U2hlbGwqIGNyZWF0ZShKU0M6OlZN
JiB2bSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3csIEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1
cmUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCisgICAgeworICAgICAgICBKU0RPTVdpbmRvd1No
ZWxsKiBzaGVsbCA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNET01XaW5kb3dT
aGVsbD4odm0uaGVhcCkpIEpTRE9NV2luZG93U2hlbGwodm0sIHN0cnVjdHVyZSwgd29ybGQpOwor
ICAgICAgICBzaGVsbC0+ZmluaXNoQ3JlYXRpb24odm0sIFdURk1vdmUod2luZG93KSk7CisgICAg
ICAgIHJldHVybiBzaGVsbDsKKyAgICB9CiAKLSAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJl
KiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAot
ICAgICAgICB7Ci0gICAgICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
MCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6UHVyZUZvcndhcmRpbmdQcm94eVR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICAgICAgfQorICAgIHN0YXRpYyBKU0M6OlN0
cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKQorICAgIHsKKyAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIDAs
IHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6OlB1cmVGb3J3YXJkaW5nUHJveHlUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7CisgICAgfQogCi0gICAgICAgIERPTVdyYXBwZXJXb3Js
ZCYgd29ybGQoKSB7IHJldHVybiBtX3dvcmxkOyB9CisgICAgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCgpIHsgcmV0dXJuIG1fd29ybGQ7IH0KIAotICAgIHByb3RlY3RlZDoKLSAgICAgICAgSlNET01X
aW5kb3dTaGVsbChKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQmKTsK
LSAgICAgICAgdm9pZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJiwgUmVmUHRyPERPTVdpbmRvdz4m
Jik7Citwcm90ZWN0ZWQ6CisgICAgSlNET01XaW5kb3dTaGVsbChKU0M6OlZNJiwgSlNDOjpTdHJ1
Y3R1cmUqLCBET01XcmFwcGVyV29ybGQmKTsKKyAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6
Vk0mLCBSZWZQdHI8RE9NV2luZG93PiYmKTsKIAotICAgICAgICBSZWY8RE9NV3JhcHBlcldvcmxk
PiBtX3dvcmxkOwotICAgIH07CisgICAgUmVmPERPTVdyYXBwZXJXb3JsZD4gbV93b3JsZDsKK307
CiAKLSAgICBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEZyYW1lKik7Ci0gICAg
SlNET01XaW5kb3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lKiwgRE9NV3JhcHBlcldv
cmxkJik7CitKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEZyYW1lJik7Citpbmxp
bmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBGcmFtZSogZnJhbWUp
IHsgcmV0dXJuIGZyYW1lID8gdG9KUyhzdGF0ZSwgKmZyYW1lKSA6IEpTQzo6anNOdWxsKCk7IH0K
KworSlNET01XaW5kb3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lJiwgRE9NV3JhcHBl
cldvcmxkJik7CitpbmxpbmUgSlNET01XaW5kb3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZy
YW1lKiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkgeyByZXR1cm4gZnJhbWUgPyB0b0pT
RE9NV2luZG93U2hlbGwoKmZyYW1lLCB3b3JsZCkgOiBudWxscHRyOyB9CiAKIH0gLy8gbmFtZXNw
YWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3Vt
ZW50Q3VzdG9tLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9K
U0hUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjYsNyArMjYsOSBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTSFRNTERv
Y3VtZW50LmgiCiAKKyNpbmNsdWRlICJGcmFtZS5oIgogI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVt
ZW50LmgiCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJK
U0RPTVdpbmRvd0N1c3RvbS5oIgogI2luY2x1ZGUgIkpTSFRNTENvbGxlY3Rpb24uaCIKICNpbmNs
dWRlICJTZWdtZW50ZWRTdHJpbmcuaCIKQEAgLTU1LDUwICs1NywyOCBAQCBKU1ZhbHVlIHRvSlMo
RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iCiAKIGJvb2wgSlNIVE1MRG9jdW1lbnQ6OmdldE93
blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7Ci0gICAgYXV0byYgdGhp
c09iamVjdCA9ICpqc0Nhc3Q8SlNIVE1MRG9jdW1lbnQqPihvYmplY3QpOwotICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwotCisgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU0hUTUxEb2N1bWVudCo+KG9iamVjdCk7CisgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIAogICAgIGlmIChwcm9wZXJ0eU5h
bWUgPT0gIm9wZW4iKSB7Ci0gICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoJnRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICBpZiAoQmFzZTo6
Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
KQogICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIHNsb3Quc2V0Q3VzdG9tKCZ0aGlz
T2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2FjaGluZ1N0YXRp
Y0Z1bmN0aW9uR2V0dGVyPGpzSFRNTERvY3VtZW50UHJvdG90eXBlRnVuY3Rpb25PcGVuLCAyPik7
Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLQotICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAg
aWYgKHRoaXNPYmplY3QubmFtZUdldHRlcihzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpIHsK
LSAgICAgICAgc2xvdC5zZXRWYWx1ZSgmdGhpc09iamVjdCwgUmVhZE9ubHkgfCBEb250RGVsZXRl
IHwgRG9udEVudW0sIHZhbHVlKTsKKyAgICAgICAgc2xvdC5zZXRDdXN0b20odGhpc09iamVjdCwg
UmVhZE9ubHkgfCBEb250RGVsZXRlIHwgRG9udEVudW0sIG5vbkNhY2hpbmdTdGF0aWNGdW5jdGlv
bkdldHRlcjxqc0hUTUxEb2N1bWVudFByb3RvdHlwZUZ1bmN0aW9uT3BlbiwgMj4pOwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlT
bG90KCZ0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKLX0KLQotYm9vbCBK
U0hUTUxEb2N1bWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlJiB2YWx1ZSkKLXsKLSAgICBhdXRvJiBkb2N1bWVudCA9IHdy
YXBwZWQoKTsKLQotICAgIGF1dG8qIGF0b21pY1Byb3BlcnR5TmFtZSA9IHByb3BlcnR5TmFtZS5w
dWJsaWNOYW1lKCk7Ci0gICAgaWYgKCFhdG9taWNQcm9wZXJ0eU5hbWUgfHwgIWRvY3VtZW50Lmhh
c0RvY3VtZW50TmFtZWRJdGVtKCphdG9taWNQcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0KLSAgICBpZiAoVU5MSUtFTFkoZG9jdW1lbnQuZG9jdW1lbnROYW1lZEl0ZW1Db250
YWluc011bHRpcGxlRWxlbWVudHMoKmF0b21pY1Byb3BlcnR5TmFtZSkpKSB7Ci0gICAgICAgIGF1
dG8gY29sbGVjdGlvbiA9IGRvY3VtZW50LmRvY3VtZW50TmFtZWRJdGVtcyhhdG9taWNQcm9wZXJ0
eU5hbWUpOwotICAgICAgICBBU1NFUlQoY29sbGVjdGlvbi0+bGVuZ3RoKCkgPiAxKTsKLSAgICAg
ICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QoKSwgY29sbGVjdGlvbik7CisgICAg
dXNpbmcgR2V0dGVySURMVHlwZSA9IElETFVuaW9uPElETERPTVdpbmRvd1NoZWxsLCBJRExJbnRl
cmZhY2U8RWxlbWVudD4sIElETEludGVyZmFjZTxIVE1MQ29sbGVjdGlvbj4+OworICAgIGF1dG8g
Z2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkg
LT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5
cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlm
ICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVy
biB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExU
eXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vz
c1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhp
c09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPEdldHRlcklETFR5cGU+KCpzdGF0ZSwg
KnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUo
KSkpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotCi0gICAgYXV0byYgZWxlbWVudCA9
ICpkb2N1bWVudC5kb2N1bWVudE5hbWVkSXRlbSgqYXRvbWljUHJvcGVydHlOYW1lKTsKLSAgICBp
ZiAoVU5MSUtFTFkoaXM8SFRNTElGcmFtZUVsZW1lbnQ+KGVsZW1lbnQpKSkgewotICAgICAgICBp
ZiAoYXV0byogZnJhbWUgPSBkb3duY2FzdDxIVE1MSUZyYW1lRWxlbWVudD4oZWxlbWVudCkuY29u
dGVudEZyYW1lKCkpIHsKLSAgICAgICAgICAgIHZhbHVlID0gdG9KUyhzdGF0ZSwgZnJhbWUpOwot
ICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0KLSAgICB2YWx1ZSA9
IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBlbGVtZW50KTsKLSAgICByZXR1cm4gdHJ1ZTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiAvLyBDdXN0b20gYXR0cmlidXRlcwpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVs
ZW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCShub25leGlzdGVudCkKQEAg
LTEsNTYgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMu
IEFsbCByaWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBz
b3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0Ci0gKiBtb2RpZmljYXRpb24s
IGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKLSAq
IGFyZSBtZXQ6Ci0gKiAxLiBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRh
aW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0
aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgotICogMi4gUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lciBpbiB0aGUKLSAqICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBw
cm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCi0gKgotICogVEhJUyBTT0ZUV0FSRSBJUyBQ
Uk9WSURFRCBCWSBBUFBMRSBJTkMuIGBgQVMgSVMnJyBBTkQgQU5ZCi0gKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRQotICog
SU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSCi0gKiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiAgSU4gTk8gRVZFTlQgU0hBTEwg
QVBQTEUgSU5DLiBPUgotICogQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwg
SU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsCi0gKiBFWEVNUExBUlksIE9SIENPTlNFUVVF
TlRJQUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sCi0gKiBQUk9DVVJF
TUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwgREFUQSwg
T1IKLSAqIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQg
QU5EIE9OIEFOWSBUSEVPUlkKLSAqIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwg
U1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9U
SEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCi0gKiBPRiBUSElTIFNP
RlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdF
LiAKLSAqLwotCi0jaW5jbHVkZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNIVE1MRnJhbWVTZXRF
bGVtZW50LmgiCi0KLSNpbmNsdWRlICJEb2N1bWVudC5oIgotI2luY2x1ZGUgIkhUTUxDb2xsZWN0
aW9uLmgiCi0jaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVudC5oIgotI2luY2x1ZGUgIkhUTUxGcmFt
ZVNldEVsZW1lbnQuaCIKLSNpbmNsdWRlICJKU0RPTVdpbmRvdy5oIgotI2luY2x1ZGUgIkpTRE9N
V2luZG93U2hlbGwuaCIKLSNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKLQotdXNpbmcgbmFtZXNw
YWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1ib29sIEpTSFRNTEZyYW1lU2V0RWxl
bWVudDo6bmFtZUdldHRlcihFeGVjU3RhdGUqIGV4ZWMsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIEpTVmFsdWUmIHZhbHVlKQotewotICAgIGF1dG8qIGZyYW1lRWxlbWVudCA9IHdyYXBwZWQo
KS5jaGlsZHJlbigpLT5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSk7Ci0gICAgaWYgKCFpczxIVE1MRnJhbWVFbGVtZW50PihmcmFtZUVsZW1lbnQpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBkb3duY2Fz
dDxIVE1MRnJhbWVFbGVtZW50PigqZnJhbWVFbGVtZW50KS5jb250ZW50RG9jdW1lbnQoKSkgewot
ICAgICAgICBpZiAoSlNET01XaW5kb3dTaGVsbCogd2luZG93ID0gdG9KU0RPTVdpbmRvd1NoZWxs
KGRvY3VtZW50LT5mcmFtZSgpLCBjdXJyZW50V29ybGQoZXhlYykpKSB7Ci0gICAgICAgICAgICB2
YWx1ZSA9IHdpbmRvdzsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
fQotICAgIHJldHVybiBmYWxzZTsKLX0KLQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRnJhbWVTZXRF
bGVtZW50Q3VzdG9tLmNwcApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEg
KzAsMCAjIwotbmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvci5wbQo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3IucG0JKHJl
dmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdl
bmVyYXRvci5wbQkod29ya2luZyBjb3B5KQpAQCAtOTAyLDYgKzkwMiw3IEBAIHN1YiBJc0J1aWx0
aW5UeXBlCiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlByb21pc2UiOwogICAgIHJl
dHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwogICAgIHJl
dHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOworICAgIHJldHVybiAx
IGlmICR0eXBlLT5uYW1lIGVxICJET01XaW5kb3dTaGVsbCI7CiAgICAgcmV0dXJuIDEgaWYgJHR5
cGUtPm5hbWUgZXEgImFueSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIm9iamVj
dCI7CiAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRv
ckpTLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvckpTLnBtCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0b3JKUy5wbQkod29ya2luZyBjb3B5KQpAQCAtMjk2LDcg
KzI5Niw3IEBAIHN1YiBBZGRUb0luY2x1ZGVzRm9ySURMVHlwZQogICAgIHJldHVybiBpZiAkY29k
ZUdlbmVyYXRvci0+SXNUeXBlZEFycmF5VHlwZSgkdHlwZSk7CiAgICAgcmV0dXJuIGlmICR0eXBl
LT5uYW1lIGVxICJhbnkiOwogICAgIHJldHVybiBpZiAkdHlwZS0+bmFtZSBlcSAib2JqZWN0IjsK
LQorICAgIAogICAgIGlmICgkdHlwZS0+aXNVbmlvbikgewogICAgICAgICBBZGRUb0luY2x1ZGVz
KCI8d3RmL1ZhcmlhbnQuaD4iLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CiAKQEAgLTMz
NSw2ICszMzUsMTIgQEAgc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlCiAgICAgICAgIEFkZFRv
SW5jbHVkZXMoJHR5cGUtPm5hbWUgLiAiLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7
CiAgICAgICAgIHJldHVybjsKICAgICB9CisgICAgCisgICAgaWYgKCR0eXBlLT5uYW1lIGVxICJE
T01XaW5kb3dTaGVsbCIpIHsKKyAgICAgICAgQWRkVG9JbmNsdWRlcygiSlMiIC4gJHR5cGUtPm5h
bWUgLiAiLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIEFkZFRvSW5j
bHVkZXMoIkZyYW1lLmgiLCAkaW5jbHVkZXNSZWYsICRjb25kaXRpb25hbCk7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CiB9CiAKIHN1YiBBZGRUb0ltcGxJbmNsdWRlcwpAQCAtNDA2LDE3MiArNDEy
LDMwNyBAQCBzdWIgU2hvdWxkVXNlR2xvYmFsT2JqZWN0UHJvdG90eXBlCiAKIHN1YiBHZW5lcmF0
ZUluZGV4ZWRHZXR0ZXIKIHsKLSAgICBteSAoJG91dHB1dEFycmF5LCAkaW5kZW50LCAkaW50ZXJm
YWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbikgPSBAXzsKKyAgICBteSAoJGludGVyZmFjZSwg
JGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICRpbmRleEV4cHJlc3Npb24pID0gQF87CisgICAgCisg
ICAgIyBOT1RFOiBUaGlzIGFic3RyYWN0bHkgaW1wbGVtZW50cyBzdGVwcyAxLjIuMSAtIDEuMi44
IG9mIHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5CisgICAgIyAgICAgICBh
bGdvcml0aG0uIFJldHVyaW5nIHRoZSBjb252ZXJzaW9uIGV4cHJlc3Npb24gYW5kIGF0dHJpYnV0
ZXMgZXhwcmVzc2lvbiBmb3IgdXNlCisgICAgIyAgICAgICBieSB0aGUgY2FsbGVyLgorICAgIAor
ICAgICMgMS4yLjEgTGV0IG9wZXJhdGlvbiBiZSB0aGUgb3BlcmF0aW9uIHVzZWQgdG8gZGVjbGFy
ZSB0aGUgaW5kZXhlZCBwcm9wZXJ0eSBnZXR0ZXIuCisgICAgIyAxLjIuMiBMZXQgdmFsdWUgYmUg
YW4gdW5pbml0aWFsaXplZCB2YXJpYWJsZS4KKyAgICAjIDEuMi4zIElmIG9wZXJhdGlvbiB3YXMg
ZGVmaW5lZCB3aXRob3V0IGFuIGlkZW50aWZpZXIsIHRoZW4gc2V0IHZhbHVlIHRvIHRoZSByZXN1
bHQKKyAgICAjICAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIHN0ZXBzIGxpc3RlZCBpbiB0aGUgaW50
ZXJmYWNlIGRlc2NyaXB0aW9uIHRvIGRldGVybWluZSB0aGUKKyAgICAjICAgICAgIHZhbHVlIG9m
IGFuIGluZGV4ZWQgcHJvcGVydHkgd2l0aCBpbmRleCBhcyB0aGUgaW5kZXguCisgICAgIyAxLjIu
NCBPdGhlcndpc2UsIG9wZXJhdGlvbiB3YXMgZGVmaW5lZCB3aXRoIGFuIGlkZW50aWZpZXIuIFNl
dCB2YWx1ZSB0byB0aGUgcmVzdWx0CisgICAgIyAgICAgICBvZiBwZXJmb3JtaW5nIHRoZSBzdGVw
cyBsaXN0ZWQgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIG9wZXJhdGlvbiB3aXRoIGluZGV4IGFzCisg
ICAgIyAgICAgICB0aGUgb25seSBhcmd1bWVudCB2YWx1ZS4KKyAgICAjIDEuMi41IExldCBkZXNj
IGJlIGEgbmV3bHkgY3JlYXRlZCBQcm9wZXJ0eSBEZXNjcmlwdG9yIHdpdGggbm8gZmllbGRzLgor
ICAgICMgMS4yLjYgU2V0IGRlc2MuW1tWYWx1ZV1dIHRvIHRoZSByZXN1bHQgb2YgY29udmVydGlu
ZyB2YWx1ZSB0byBhbiBFQ01BU2NyaXB0IHZhbHVlLgorICAgICMgMS4yLjcgSWYgTyBpbXBsZW1l
bnRzIGFuIGludGVyZmFjZSB3aXRoIGFuIGluZGV4ZWQgcHJvcGVydHkgc2V0dGVyLCB0aGVuIHNl
dAorICAgICMgICAgICAgZGVzYy5bW1dyaXRhYmxlXV0gdG8gdHJ1ZSwgb3RoZXJ3aXNlIHNldCBp
dCB0byBmYWxzZS4KKyAgICAjIDEuMi44IFJldHVybiBkZXNjLgogICAgIAogICAgIG15IEBhdHRy
aWJ1dGVzID0gKCk7CiAgICAgcHVzaChAYXR0cmlidXRlcywgIlJlYWRPbmx5IikgaWYgIUdldElu
ZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfTsKLQorICAgIAogICAgIG15ICRhdHRyaWJ1
dGVTdHJpbmcgPSAoKEBhdHRyaWJ1dGVzID4gMCkgPyBqb2luKCIgfCAiLCBAYXR0cmlidXRlcykg
OiAiMCIpOwogCiAgICAgbXkgJGluZGV4ZWRHZXR0ZXJGdW5jdGlvbk5hbWUgPSAkaW5kZXhlZEdl
dHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJGlu
ZGV4ZWRHZXR0ZXJPcGVyYXRpb24tPm5hbWUgfHwgIml0ZW0iOwotICAgIG15ICRuYXRpdmVUb0pT
Q29udmVyc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRlcnMoJGluZGV4ZWRHZXR0ZXJP
cGVyYXRpb24sICRpbnRlcmZhY2UsICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtpbmRleGVkR2V0
dGVyRnVuY3Rpb25OYW1lfShpbmRleCkiLCAiKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpIik7
Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAic2xvdC5zZXRWYWx1ZSh0aGlz
T2JqZWN0LCAke2F0dHJpYnV0ZVN0cmluZ30sICR7bmF0aXZlVG9KU0NvbnZlcnNpb259KTtcbiIp
OwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJyZXR1cm4gdHJ1ZTtcbiIpOwor
ICAgIG15ICRuYXRpdmVUb0pTQ29udmVyc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRl
cnMoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICRpbnRlcmZhY2UsICJ0aGlzT2JqZWN0LT53cmFw
cGVkKCkuJHtpbmRleGVkR2V0dGVyRnVuY3Rpb25OYW1lfSgke2luZGV4RXhwcmVzc2lvbn0pIiwg
Iip0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSIpOworICAgIAorICAgIHJldHVybiAoJG5hdGl2
ZVRvSlNDb252ZXJzaW9uLCAkYXR0cmlidXRlU3RyaW5nKTsKIH0KIAogc3ViIEdlbmVyYXRlTmFt
ZWRHZXR0ZXIKIHsKLSAgICBteSAoJG91dHB1dEFycmF5LCAkaW5kZW50LCAkaW50ZXJmYWNlLCAk
bmFtZWRHZXR0ZXJPcGVyYXRpb24pID0gQF87Ci0KKyAgICBteSAoJGludGVyZmFjZSwgJG5hbWVk
R2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRQcm9wZXJ0eUV4cHJlc3Npb24pID0gQF87CisgICAgCisg
ICAgIyBOT1RFOiBUaGlzIGFic3RyYWN0bHkgaW1wbGVtZW50cyBzdGVwcyAyLjEgLSAyLjEwIG9m
IHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5CisgICAgIyAgICAgICBhbGdv
cml0aG0uIFJldHVyaW5nIHRoZSBjb252ZXJzaW9uIGV4cHJlc3Npb24gYW5kIGF0dHJpYnV0ZXMg
ZXhwcmVzc2lvbiBmb3IgdXNlCisgICAgIyAgICAgICBieSB0aGUgY2FsbGVyLgorICAgIAorICAg
ICMgMi4xICBMZXQgb3BlcmF0aW9uIGJlIHRoZSBvcGVyYXRpb24gdXNlZCB0byBkZWNsYXJlIHRo
ZSBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXIuCisgICAgIyAyLjIgIExldCB2YWx1ZSBiZSBhbiB1bmlu
aXRpYWxpemVkIHZhcmlhYmxlLgorICAgICMgMi4zICBJZiBvcGVyYXRpb24gd2FzIGRlZmluZWQg
d2l0aG91dCBhbiBpZGVudGlmaWVyLCB0aGVuIHNldCB2YWx1ZSB0byB0aGUgcmVzdWx0CisgICAg
IyAgICAgIG9mIHBlcmZvcm1pbmcgdGhlIHN0ZXBzIGxpc3RlZCBpbiB0aGUgaW50ZXJmYWNlIGRl
c2NyaXB0aW9uIHRvIGRldGVybWluZSB0aGUKKyAgICAjICAgICAgdmFsdWUgb2YgYSBuYW1lZCBw
cm9wZXJ0eSB3aXRoIFAgYXMgdGhlIG5hbWUuCisgICAgIyAyLjQgIE90aGVyd2lzZSwgb3BlcmF0
aW9uIHdhcyBkZWZpbmVkIHdpdGggYW4gaWRlbnRpZmllci4gU2V0IHZhbHVlIHRvIHRoZSByZXN1
bHQKKyAgICAjICAgICAgb2YgcGVyZm9ybWluZyB0aGUgc3RlcHMgbGlzdGVkIGluIHRoZSBkZXNj
cmlwdGlvbiBvZiBvcGVyYXRpb24gd2l0aCBQIGFzIHRoZQorICAgICMgICAgICBvbmx5IGFyZ3Vt
ZW50IHZhbHVlLi4KKyAgICAjIDIuNSAgTGV0IGRlc2MgYmUgYSBuZXdseSBjcmVhdGVkIFByb3Bl
cnR5IERlc2NyaXB0b3Igd2l0aCBubyBmaWVsZHMuCisgICAgIyAyLjYgIFNldCBkZXNjLltbVmFs
dWVdXSB0byB0aGUgcmVzdWx0IG9mIGNvbnZlcnRpbmcgdmFsdWUgdG8gYW4gRUNNQVNjcmlwdCB2
YWx1ZS4KKyAgICAjIDIuNyAgSWYgTyBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB3aXRoIGEgbmFt
ZWQgcHJvcGVydHkgc2V0dGVyLCB0aGVuIHNldCBkZXNjLltbV3JpdGFibGVdXQorICAgICMgICAg
ICB0byB0cnVlLCBvdGhlcndpc2Ugc2V0IGl0IHRvIGZhbHNlLgorICAgICMgMi44ICBJZiBPIGlt
cGxlbWVudHMgYW4gaW50ZXJmYWNlIHdpdGggdGhlIFtMZWdhY3lVbmVudW1lcmFibGVOYW1lZFBy
b3BlcnRpZXNdCisgICAgIyAgICAgIGV4dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiBzZXQgZGVzYy5b
W0VudW1lcmFibGVdXSB0byBmYWxzZSwgb3RoZXJ3aXNlIHNldCBpdAorICAgICMgICAgICB0byB0
cnVlLgorICAgICMgMi45ICBTZXQgZGVzYy5bW0NvbmZpZ3VyYWJsZV1dIHRvIHRydWUuCisgICAg
IyAyLjEwIFJldHVybiBkZXNjLgorICAgIAogICAgIG15IEBhdHRyaWJ1dGVzID0gKCk7CiAgICAg
cHVzaChAYXR0cmlidXRlcywgIlJlYWRPbmx5IikgaWYgIUdldE5hbWVkU2V0dGVyT3BlcmF0aW9u
KCRpbnRlcmZhY2UpICYmICEkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21O
YW1lZFNldHRlcn07CiAgICAgcHVzaChAYXR0cmlidXRlcywgIkRvbnRFbnVtIikgaWYgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TGVnYWN5VW5lbnVtZXJhYmxlTmFtZWRQcm9wZXJ0
aWVzfTsKLQorICAgIAogICAgIG15ICRhdHRyaWJ1dGVTdHJpbmcgPSAoKEBhdHRyaWJ1dGVzID4g
MCkgPyBqb2luKCIgfCAiLCBAYXR0cmlidXRlcykgOiAiMCIpOworICAgIG15ICRuYXRpdmVUb0pT
Q29udmVyc2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRlcnMoJG5hbWVkR2V0dGVyT3Bl
cmF0aW9uLCAkaW50ZXJmYWNlLCAkbmFtZWRQcm9wZXJ0eUV4cHJlc3Npb24sICIqdGhpc09iamVj
dC0+Z2xvYmFsT2JqZWN0KCkiKTsKKyAgICAKKyAgICByZXR1cm4gKCRuYXRpdmVUb0pTQ29udmVy
c2lvbiwgJGF0dHJpYnV0ZVN0cmluZyk7Cit9CiAKLSAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5k
ZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9KSB7Ci0gICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgJGluZGVudCAuICJKU1ZhbHVlIHZhbHVlO1xuIik7Ci0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAodGhpc09iamVjdC0+bmFtZUdldHRlcihzdGF0ZSwg
cHJvcGVydHlOYW1lLCB2YWx1ZSkpIHtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICRpbmRlbnQgLiAiICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgJHthdHRyaWJ1dGVTdHJp
bmd9LCB2YWx1ZSk7XG4iKTsKK3N1YiBHZW5lcmF0ZU5hbWVkR2V0dGVyTGFtYmRhCit7CisgICAg
bXkgKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFt
ZWRHZXR0ZXJGdW5jdGlvbk5hbWUsICRJRExUeXBlKSA9IEBfOworICAgIAorICAgICMgTk9URTog
TmFtZWQgZ2V0dGVycyBhcmUgbGl0dGxlIG9kZC4gVG8gYXZvaWQgZG9pbmcgZHVwbGljYXRlIGxv
b2t1cHMgKG9uY2Ugd2hlbiBjaGVja2luZyBpZgorICAgICMgICAgICAgdGhlIHByb3BlcnR5IG5h
bWUgaXMgYSAnc3VwcG9ydGVkIHByb3BlcnR5IG5hbWUnIGFuZCBvbmNlIHRvIGdldCB0aGUgdmFs
dWUpIHdlIHNpZ25hbAorICAgICMgICAgICAgdGhhdCBhIHByb3BlcnR5IGlzIHN1cHBvcnRlZCBi
eSB3aGV0aGVyIG9yIG5vdCBpdCBpcyAnbnVsbCcgKHdoZXJlIHdoYXQgbnVsbCBtZWFucyBpcwor
ICAgICMgICAgICAgZGVwZW5kYW50IG9uIHRoZSBJREwgdHlwZSkuIFRoaXMgaXMgYmFzZWQgb24g
dGhlIGFzc3VtcHRpb24gdGhhdCBubyBuYW1lZCBnZXR0ZXIgd2lsbAorICAgICMgICAgICAgZXZl
ciBhY3R1YWxseSB3YW50IHRvIHJldHVybiBudWxsIGFzIGFuIGFjdHVhbCByZXR1cm4gdmFsdWUs
IHdoaWNoIHNlZW1zIGxpa2UgYW4gb2sKKyAgICAjICAgICAgIGFzc3VtcHRpb24gdG8gbWFrZSAo
c2hvdWxkIGl0IHR1cm4gb3V0IHRoaXMgZG9lc24ndCBob2xkIGluIHRoZSBmdXR1cmUsIHdlIGhh
dmUgbG90cworICAgICMgICAgICAgb2Ygb3B0aW9uczsgZG8gdHdvIGxvb2t1cHMsIGFkZCBhbiBl
eHRyYSBsYXllciBvZiBzdGQ6Om9wdGlvbmFsLCBldGMuKS4KKyAgICAKKyAgICBteSAkcmVzdWx0
VHlwZSA9ICJ0eXBlbmFtZSAke0lETFR5cGV9OjpJbXBsZW1lbnRhdGlvblR5cGUiOworICAgICRy
ZXN1bHRUeXBlID0gIkV4Y2VwdGlvbk9yPCIgLiAkcmVzdWx0VHlwZSAuICI+IiBpZiAkbmFtZWRH
ZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufTsK
KyAgICBteSAkcmV0dXJuVHlwZSA9ICJzdGQ6Om9wdGlvbmFsPCIgLiAkcmVzdWx0VHlwZSAuICI+
IjsKKyAgICAKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBnZXR0ZXJGdW5jdG9y
ID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiAke3JldHVyblR5
cGV9IHtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgYXV0byByZXN1bHQg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKS4ke25hbWVkR2V0dGVyRnVuY3Rpb25OYW1lfShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTtcbiIpOworICAgIAorICAgIGlmICgk
bmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0
aW9ufSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmIChyZXN1bHQu
aGFzRXhjZXB0aW9uKCkpXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAg
ICAgICAgcmV0dXJuICR7cmVzdWx0VHlwZX0geyByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpIH07
XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoISR7SURMVHlw
ZX06OmlzTnVsbFZhbHVlKHJlc3VsdC5yZXR1cm5WYWx1ZSgpKSlcbiIpOworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICByZXR1cm4gJHtyZXN1bHRUeXBlfSB7ICR7SURM
VHlwZX06OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVl
KCkpIH07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0O1xuIik7CiAgICAgfSBlbHNlIHsKLSAgICAgICAgbXkgJG5hbWVkR2V0dGVy
RnVuY3Rpb25OYW1lID0gJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntJbXBsZW1lbnRlZEFzfSB8fCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPm5hbWUgfHwgIm5hbWVk
SXRlbSI7Ci0gICAgICAgIG15ICRpdGVtVmFyaWFibGUgPSAiaXRlbSI7Ci0gICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuJHtuYW1lZEdldHRlckZ1bmN0aW9uTmFtZX0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKSk7XG4iKTsKLQotICAgICAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9u
LT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pIHsKLSAgICAgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAoaXRlbS5oYXNFeGNlcHRpb24oKSkg
e1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpO1xuIik7Ci0g
ICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIHByb3BhZ2F0ZUV4
Y2VwdGlvbigqc3RhdGUsIHRocm93U2NvcGUsIGl0ZW0ucmVsZWFzZUV4Y2VwdGlvbigpKTtcbiIp
OwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICByZXR1cm4g
dHJ1ZTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIn1c
blxuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiYXV0byBp
dGVtVmFsdWUgPSBpdGVtLnJlbGVhc2VSZXR1cm5WYWx1ZSgpO1xuIik7Ci0KLSAgICAgICAgICAg
ICRpdGVtVmFyaWFibGUgPSAiaXRlbVZhbHVlIjsKLSAgICAgICAgfQotCi0gICAgICAgIG15ICRJ
RExUeXBlID0gR2V0SURMVHlwZSgkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPnR5
cGUpOwotICAgICAgICBteSAkbmF0aXZlVG9KU0NvbnZlcnNpb24gPSBOYXRpdmVUb0pTVmFsdWVV
c2luZ1BvaW50ZXJzKCRuYW1lZEdldHRlck9wZXJhdGlvbiwgJGludGVyZmFjZSwgJGl0ZW1WYXJp
YWJsZSwgIip0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSIsIDEpOwotICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICRpbmRlbnQgLiAiaWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1ZSgke2l0
ZW1WYXJpYWJsZX0pKSB7XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50
IC4gIiAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgJHtu
YXRpdmVUb0pTQ29udmVyc2lvbn0pO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgaWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1ZShyZXN1bHQpKVxuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiAke3Jlc3VsdFR5cGV9
IHsgJHtJRExUeXBlfTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTtcbiIpOwor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7
XG4iKTsKICAgICB9Ci0gICAgCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAg
ICByZXR1cm4gdHJ1ZTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJ9
XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfTtcbiIpOwogfQogCi1zdWIgR2Vu
ZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5CisjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93
ZWJpZGwvI2xlZ2FjeS1wbGF0Zm9ybS1vYmplY3QtZ2V0b3ducHJvcGVydHkKK3N1YiBHZW5lcmF0
ZUdldE93blByb3BlcnR5U2xvdAogewogICAgIG15ICgkb3V0cHV0QXJyYXksICRpbnRlcmZhY2Us
ICRjbGFzc05hbWUpID0gQF87CiAgICAgCiAgICAgcmV0dXJuIGlmICRpbnRlcmZhY2UtPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdH07CiAgICAgCi0gICAgbXkg
JG5hbWVkR2V0dGVyT3BlcmF0aW9uID0gR2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFj
ZSk7Ci0gICAgbXkgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXRJbmRleGVkR2V0dGVyT3Bl
cmF0aW9uKCRpbnRlcmZhY2UpOwotICAgIAotICAgIG15ICRvd25Qcm9wZXJ0eUNoZWNrID0gc3Vi
IHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChCYXNlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKLSAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwotICAg
IH07Ci0KLSAgICAjIEZJWE1FOiBBcyBwZXIgdGhlIFdlYiBJREwgc3BlY2lmaWNhdGlvbiwgdGhl
IHByb3RvdHlwZSBjaGVjayBpcyBzdXBwb3NlZCB0byBza2lwICJuYW1lZCBwcm9wZXJ0aWVzIG9i
amVjdHMiOgotICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZGZuLW5hbWVk
LXByb3BlcnR5LXZpc2liaWxpdHkKLSAgICAjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJp
ZGwvI2Rmbi1uYW1lZC1wcm9wZXJ0aWVzLW9iamVjdAotICAgIG15ICRwcm90b3R5cGVDaGVjayA9
IHN1YiB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBKU1ZhbHVlIHByb3RvID0g
dGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7XG4iKTsKLSAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+
KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpXG4iKTsKLSAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gZmFsc2U7XG5cbiIpOwotICAgIH07
Ci0KICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJv
cGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdClcbiIpOwogICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIntcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NOYW1lfSo+KG9iamVjdCk7XG4iKTsKICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBp
bmZvKCkpO1xuIik7Ci0KLQorICAgIAorICAgIG15ICRuYW1lZEdldHRlck9wZXJhdGlvbiA9IEdl
dE5hbWVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOworICAgIG15ICRpbmRleGVkR2V0dGVy
T3BlcmF0aW9uID0gR2V0SW5kZXhlZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKKyAgICAK
KyAgICBpZiAoKCRuYW1lZEdldHRlck9wZXJhdGlvbiAmJiAkbmFtZWRHZXR0ZXJPcGVyYXRpb24t
PmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufSkgfHwgKCRpbmRleGVkR2V0
dGVyT3BlcmF0aW9uICYmICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pKSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTtc
biIpOworICAgIH0KKyAgICAKKyAgICAjIE5PVEU6IFRoZSBhbG9naXRobSBmb3IgW1tHZXRPd25Q
cm9wZXJ0eV1dIGNvbnRhaW5zIG9ubHkgdGhlIGZvbGxvd2luZyBzdGVwOgorICAgICMgMS4gUmV0
dXJuIExlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJvcGVydHkoTywgUCwgZmFsc2UpLgorICAg
IAorICAgICMgVGhlcmVmb3JlLCB0aGUgZm9sbG93aW5nIHN0ZXBzIGFyZSBmcm9tIHRoZSBMZWdh
Y3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5IGFsZ29yaXRobQorICAgICMgaHR0cHM6Ly9o
ZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jTGVnYWN5UGxhdGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0
eQorICAgIAorICAgICMgMS4gSWYgTyBzdXBwb3J0cyBpbmRleGVkIHByb3BlcnRpZXMgYW5kIFAg
aXMgYW4gYXJyYXkgaW5kZXggcHJvcGVydHkgbmFtZSwgdGhlbjoKICAgICBpZiAoJGluZGV4ZWRH
ZXR0ZXJPcGVyYXRpb24pIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8g
b3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTtcbiIpOwotICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRl
eC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7XG4iKTsKLSAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRl
eC52YWx1ZSgpO1xuIik7Ci0gICAgICAgIEdlbmVyYXRlSW5kZXhlZEdldHRlcigkb3V0cHV0QXJy
YXksICIgICAgICAgICIsICRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKTsKKyAg
ICAgICAgIyAxLjEuIExldCBpbmRleCBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9VaW50MzIo
UCkuCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoYXV0byBpbmRleCA9IHBh
cnNlSW5kZXgocHJvcGVydHlOYW1lKSkge1xuIik7CisgICAgICAgIAorICAgICAgICAjIDEuMi4g
SWYgaW5kZXggaXMgYSBzdXBwb3J0ZWQgcHJvcGVydHkgaW5kZXgsIHRoZW46CisgICAgICAgICMg
RklYTUU6IFRoaXMgc2hvdWxkIHN1cHBvcnQgbm9uLWNvbnRpZ3VvdXMgaW5kaWNlcy4KKyAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNP
YmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkge1xuIik7CisgICAgICAgIAorICAgICAgICAjIE5P
VEU6IEdlbmVyYXRlSW5kZXhlZEdldHRlciBpbXBsZW1lbnRzIHN0ZXBzIDEuMi4xIC0gMS4yLjgu
CisgICAgICAgIAorICAgICAgICBteSAoJG5hdGl2ZVRvSlNDb252ZXJzaW9uLCAkYXR0cmlidXRl
U3RyaW5nKSA9IEdlbmVyYXRlSW5kZXhlZEdldHRlcigkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRl
ck9wZXJhdGlvbiwgImluZGV4LnZhbHVlKCkiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgICAgIGF1dG8gdmFsdWUgPSAke25hdGl2ZVRvSlNDb252ZXJz
aW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtcbiIpIGlmICRpbmRleGVkR2V0dGVy
T3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07CisgICAg
ICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgdmFsdWUpO1xuIik7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuIik7CisgICAg
ICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIH1cbiIpOworICAgICAg
ICAKKyAgICAgICAgIyAxLjMuIFNldCBpZ25vcmVOYW1lZFByb3BzIHRvIHRydWUuCisgICAgICAg
ICMgTk9URTogU2V0dGluZyBpZ25vcmVOYW1lZFByb3BzIGhhcyB0aGUgZWZmZWN0IG9mIHNraXBw
aW5nIHN0ZXAgMiwgc28gd2UgY2FuIGVhcmx5IHJldHVybiBoZXJlCisgICAgICAgICMgICAgICAg
cmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgcGFjZXMgb2YgaGF2aW5nIGFuIGFjdHVhbCBp
Z25vcmVOYW1lZFByb3BzIHVwZGF0ZS4KKyAgICAgICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlv
biB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0
eVNsb3RBbmREZXNjcmlwdG9yfSkgeworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgICAgIH0KICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgIH0KLQotICAgIG15ICRoYXNOYW1lZEdldHRlciA9
ICRuYW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntDdXN0b21OYW1lZEdldHRlcn07Ci0gICAgaWYgKCRoYXNOYW1lZEdldHRlcikgewotICAgICAg
ICBpZiAoISRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZh
Y2UsICJPdmVycmlkZUJ1aWx0aW5zIikpIHsKLSAgICAgICAgICAgICYkb3duUHJvcGVydHlDaGVj
aygpOwotICAgICAgICAgICAgJiRwcm90b3R5cGVDaGVjaygpOwotICAgICAgICB9Ci0gICAgICAg
IGlmICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbikgewotICAgICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGlmICghb3B0aW9uYWxJbmRleCAmJiB0aGlzT2JqZWN0LT5jbGFzc0luZm8o
KSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7XG4iKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAodGhpc09i
amVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkg
e1xuIik7Ci0gICAgICAgIH0KLSAgICAgICAgR2VuZXJhdGVOYW1lZEdldHRlcigkb3V0cHV0QXJy
YXksICIgICAgICAgICIsICRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbik7CisgICAg
CisgICAgIyAyLiBJZiBPIHN1cHBvcnRzIG5hbWVkIHByb3BlcnRpZXMsIHRoZSByZXN1bHQgb2Yg
cnVubmluZyB0aGUgbmFtZWQgcHJvcGVydHkgdmlzaWJpbGl0eQorICAgICMgICAgYWxnb3JpdGht
IHdpdGggcHJvcGVydHkgbmFtZSBQIGFuZCBvYmplY3QgTyBpcyB0cnVlLCBhbmQgaWdub3JlTmFt
ZWRQcm9wcyBpcyBmYWxzZSwgdGhlbjoKKyAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uKSB7
CisgICAgICAgICMgTk9URTogaWdub3JlTmFtZWRQcm9wcyBpcyBndWFyZW50ZWVkIHRvIGJlIGZh
bHNlIGhlcmUsIGFzIGl0IGlzIGluaXRpYWxseSBmYWxzZSwgYW5kIG5ldmVyIHNldAorICAgICAg
ICAjICAgICAgIHRvIHRydWUsIGR1ZSB0byB0aGUgZWFybHkgcmV0dXJuIGluIHN0ZXAgMS4zCisg
ICAgICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIik7Cisg
ICAgICAgICAgICAgICAgCisgICAgICAgIG15ICRuYW1lZEdldHRlckZ1bmN0aW9uTmFtZSA9ICRu
YW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30g
fHwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5uYW1lIHx8ICJuYW1lZEl0ZW0iOworICAgICAgICBt
eSAkSURMVHlwZSA9IEdldElETFR5cGVFeGNsdWRpbmdOdWxsYWJpbGl0eSgkaW50ZXJmYWNlLCAk
bmFtZWRHZXR0ZXJPcGVyYXRpb24tPnR5cGUpOworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSAke0lETFR5cGV9O1xuIik7Cisg
ICAgICAgIAorICAgICAgICBHZW5lcmF0ZU5hbWVkR2V0dGVyTGFtYmRhKCRvdXRwdXRBcnJheSwg
JGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5h
bWUsICJHZXR0ZXJJRExUeXBlIik7CisgICAgICAgIAorICAgICAgICBteSAkb3ZlcnJpZGVCdWls
dGluID0gJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFj
ZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSA/ICJPdmVycmlkZUJ1aWx0aW5zOjpZZXMiIDogIk92ZXJy
aWRlQnVpbHRpbnM6Ok5vIjsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChh
dXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTwke292ZXJyaWRl
QnVpbHRpbn0+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rv
cikpIHtcbiIpOworICAgICAgICAKKyAgICAgICAgIyBOT1RFOiBHZW5lcmF0ZU5hbWVkR2V0dGVy
IGltcGxlbWVudHMgc3RlcHMgMi4xIC0gMi4xMC4KKyAgICAgICAgCisgICAgICAgIG15ICgkbmF0
aXZlVG9KU0NvbnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVOYW1lZEdldHRl
cigkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICJXVEZNb3ZlKG5hbWVkUHJvcGVy
dHkudmFsdWUoKSkiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgYXV0byB2YWx1ZSA9ICR7bmF0aXZlVG9KU0NvbnZlcnNpb259O1xuIik7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Nj
b3BlLCBmYWxzZSk7XG4iKSBpZiAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmli
dXRlcy0+e01heVRocm93RXhjZXB0aW9ufTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAke2F0dHJpYnV0ZVN0
cmluZ30sIHZhbHVlKTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAg
IHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4i
KTsKICAgICB9Ci0KKyAgICAKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvcn0pIHsKICAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIGlmICh0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3RE
ZWxlZ2F0ZShzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSlcbiIpOwogICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgfQotCi0gICAgaWYg
KCEkaGFzTmFtZWRHZXR0ZXIgfHwgJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRy
aWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSkgewotICAgICAgICAmJG93blBy
b3BlcnR5Q2hlY2soKTsKLSAgICB9Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0
dXJuIGZhbHNlO1xuIik7CisgICAgCisgICAgIyAzLiBSZXR1cm4gT3JkaW5hcnlHZXRPd25Qcm9w
ZXJ0eShPLCBQKS4KKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTtc
biIpOworICAgIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiB9CiAKLXN1YiBH
ZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHlCeUluZGV4CisjIGh0dHBzOi8vaGV5Y2FtLmdp
dGh1Yi5pby93ZWJpZGwvI2xlZ2FjeS1wbGF0Zm9ybS1vYmplY3QtZ2V0b3ducHJvcGVydHkKK3N1
YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgKIHsKICAgICBteSAoJG91dHB1dEFy
cmF5LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKSA9IEBfOwogICAgIAogICAgIHJldHVybiBpZiAk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4fTsKLSAgICAKLSAgICBteSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXROYW1lZEdl
dHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKLSAgICBteSAkaW5kZXhlZEdldHRlck9wZXJhdGlv
biA9IEdldEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CisKKyAgICAjIFNpbmsg
dGhlIGludC10by1zdHJpbmcgY29udmVyc2lvbiB0aGF0IGhhcHBlbnMgd2hlbiB3ZSBjcmVhdGUg
YSBQcm9wZXJ0eU5hbWUKKyAgICAjIHRvIHRoZSBwb2ludCB3aGVyZSB3ZSBhY3R1YWxseSBuZWVk
IGl0LgorICAgIG15ICRkaWRHZW5lcmF0ZVByb3BlcnR5TmFtZSA9IDA7CisgICAgbXkgJHByb3Bl
cnR5TmFtZUdlbmVyYXRpb24gPSBzdWIgeworICAgICAgICByZXR1cm4gaWYgJGRpZEdlbmVyYXRl
UHJvcGVydHlOYW1lOworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpO1xuIik7
CisgICAgICAgICRkaWRHZW5lcmF0ZVByb3BlcnR5TmFtZSA9IDE7CisgICAgfTsKICAgICAKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBp
bmRleCwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
e1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4i
KTsKICAgICAKLSAgICAjIFNpbmsgdGhlIGludC10by1zdHJpbmcgY29udmVyc2lvbiB0aGF0IGhh
cHBlbnMgd2hlbiB3ZSBjcmVhdGUgYSBQcm9wZXJ0eU5hbWUKLSAgICAjIHRvIHRoZSBwb2ludCB3
aGVyZSB3ZSBhY3R1YWxseSBuZWVkIGl0LgotICAgIG15ICRnZW5lcmF0ZWRQcm9wZXJ0eU5hbWUg
PSAwOwotICAgIG15ICRwcm9wZXJ0eU5hbWVHZW5lcmF0aW9uID0gc3ViIHsKLSAgICAgICAgaWYg
KCRnZW5lcmF0ZWRQcm9wZXJ0eU5hbWUpIHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAg
fQotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7XG4iKTsKLSAgICAgICAgJGdlbmVy
YXRlZFByb3BlcnR5TmFtZSA9IDE7Ci0gICAgfTsKKyAgICBteSAkbmFtZWRHZXR0ZXJPcGVyYXRp
b24gPSBHZXROYW1lZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKKyAgICBteSAkaW5kZXhl
ZEdldHRlck9wZXJhdGlvbiA9IEdldEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7
CisgICAgCisgICAgaWYgKCgkbmFtZWRHZXR0ZXJPcGVyYXRpb24gJiYgJG5hbWVkR2V0dGVyT3Bl
cmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pIHx8ICgkaW5k
ZXhlZEdldHRlck9wZXJhdGlvbiAmJiAkaW5kZXhlZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259KSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+
dm0oKSk7XG4iKTsKKyAgICB9CisgICAgCisgICAgIyBOT1RFOiBUaGUgYWxvZ2l0aG0gZm9yIFtb
R2V0T3duUHJvcGVydHldXSBjb250YWlucyBvbmx5IHRoZSBmb2xsb3dpbmcgc3RlcDoKKyAgICAj
IDEuIFJldHVybiBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5KE8sIFAsIGZhbHNl
KS4KKyAgICAKKyAgICAjIFRoZXJlZm9yZSwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgZnJvbSB0
aGUgTGVnYWN5UGxhdGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0eSBhbGdvcml0aG0KKyAgICAjIGh0
dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI0xlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3du
UHJvcGVydHkKICAgICAKKyAgICAjIDEuIElmIE8gc3VwcG9ydHMgaW5kZXhlZCBwcm9wZXJ0aWVz
IGFuZCBQIGlzIGFuIGFycmF5IGluZGV4IHByb3BlcnR5IG5hbWUsIHRoZW46CiAgICAgaWYgKCRp
bmRleGVkR2V0dGVyT3BlcmF0aW9uKSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkge1xu
Iik7Ci0gICAgICAgIEdlbmVyYXRlSW5kZXhlZEdldHRlcigkb3V0cHV0QXJyYXksICIgICAgICAg
ICIsICRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKTsKKyAgICAgICAgIyAxLjEu
IExldCBpbmRleCBiZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9VaW50MzIoUCkuCisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9J
TkRFWCkpIHtcbiIpOworICAgICAgICAKKyAgICAgICAgIyAxLjIuIElmIGluZGV4IGlzIGEgc3Vw
cG9ydGVkIHByb3BlcnR5IGluZGV4LCB0aGVuOgorICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3Vs
ZCBzdXBwb3J0IG5vbi1jb250aWd1b3VzIGluZGljZXMuCisgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgp
KSB7XG4iKTsKKyAgICAgICAgCisgICAgICAgICMgTk9URTogR2VuZXJhdGVJbmRleGVkR2V0dGVy
IGltcGxlbWVudHMgc3RlcHMgMS4yLjEgLSAxLjIuOC4KKyAgICAgICAgCisgICAgICAgIG15ICgk
bmF0aXZlVG9KU0NvbnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVJbmRleGVk
R2V0dGVyKCRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAiaW5kZXgiKTsKKyAg
ICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIGF1dG8gdmFs
dWUgPSAke25hdGl2ZVRvSlNDb252ZXJzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNl
KTtcbiIpIGlmICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntN
YXlUaHJvd0V4Y2VwdGlvbn07CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5n
fSwgdmFsdWUpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAg
IHJldHVybiB0cnVlO1xuIik7CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgICAgIH1cbiIpOworICAgICAgICAKKyAgICAgICAgIyAxLjMuIFNldCBpZ25vcmVOYW1l
ZFByb3BzIHRvIHRydWUuCisgICAgICAgICMgTk9URTogU2V0dGluZyBpZ25vcmVOYW1lZFByb3Bz
IGhhcyB0aGUgZWZmZWN0IG9mIHNraXBwaW5nIHN0ZXAgMiwgc28gd2UgY2FuIGVhcmx5IHJldHVy
biBoZXJlCisgICAgICAgICMgICAgICAgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgcGFj
ZXMgb2YgaGF2aW5nIGFuIGFjdHVhbCBpZ25vcmVOYW1lZFByb3BzIHVwZGF0ZS4KKyAgICAgICAg
aWYgKCRuYW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfSkgeworICAgICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpO1xuIik7CisgICAg
ICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgIH0KLQot
ICAgICMgSW5kZXhpbmcgYW4gb2JqZWN0IHdpdGggYW4gaW50ZWdlciB0aGF0IGlzIG5vdCBhIHN1
cHBvcnRlZCBwcm9wZXJ0eSBpbmRleCBzaG91bGQgbm90IGNhbGwgdGhlIG5hbWVkIHByb3BlcnR5
IGdldHRlci4KLSAgICAjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2lkbC1pbmRl
eGVkLXByb3BlcnRpZXMKLSAgICBpZiAoISRpbmRleGVkR2V0dGVyT3BlcmF0aW9uICYmICgkbmFt
ZWRHZXR0ZXJPcGVyYXRpb24gfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3Vz
dG9tTmFtZWRHZXR0ZXJ9KSkgeworICAgIAorICAgICMgMi4gSWYgTyBzdXBwb3J0cyBuYW1lZCBw
cm9wZXJ0aWVzLCB0aGUgcmVzdWx0IG9mIHJ1bm5pbmcgdGhlIG5hbWVkIHByb3BlcnR5IHZpc2li
aWxpdHkKKyAgICAjICAgIGFsZ29yaXRobSB3aXRoIHByb3BlcnR5IG5hbWUgUCBhbmQgb2JqZWN0
IE8gaXMgdHJ1ZSwgYW5kIGlnbm9yZU5hbWVkUHJvcHMgaXMgZmFsc2UsIHRoZW46CisgICAgaWYg
KCRuYW1lZEdldHRlck9wZXJhdGlvbikgeworICAgICAgICAjIE5PVEU6IGlnbm9yZU5hbWVkUHJv
cHMgaXMgZ3VhcmVudGVlZCB0byBiZSBmYWxzZSBoZXJlLCBhcyBpdCBpcyBpbml0aWFsbHkgZmFs
c2UsIGFuZCBuZXZlciBzZXQKKyAgICAgICAgIyAgICAgICB0byB0cnVlLCBkdWUgdG8gdGhlIGVh
cmx5IHJldHVybiBpbiBzdGVwIDEuMworICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01B
YnN0cmFjdE9wZXJhdGlvbnMuaCIpOworICAgICAgICAgICAgICAgIAogICAgICAgICAmJHByb3Bl
cnR5TmFtZUdlbmVyYXRpb24oKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlm
ICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHtcbiIpOwotICAgICAgICBHZW5l
cmF0ZU5hbWVkR2V0dGVyKCRvdXRwdXRBcnJheSwgIiAgICAgICAgIiwgJGludGVyZmFjZSwgJG5h
bWVkR2V0dGVyT3BlcmF0aW9uKTsKKyAgICAgICAgCisgICAgICAgIG15ICRuYW1lZEdldHRlckZ1
bmN0aW9uTmFtZSA9ICRuYW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57
SW1wbGVtZW50ZWRBc30gfHwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5uYW1lIHx8ICJuYW1lZEl0
ZW0iOworICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5cGVFeGNsdWRpbmdOdWxsYWJpbGl0
eSgkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPnR5cGUpOworICAgICAgICAKKyAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSAke0lE
TFR5cGV9O1xuIik7CisgICAgICAgIAorICAgICAgICBHZW5lcmF0ZU5hbWVkR2V0dGVyTGFtYmRh
KCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRH
ZXR0ZXJGdW5jdGlvbk5hbWUsICJHZXR0ZXJJRExUeXBlIik7CisgICAgICAgIAorICAgICAgICBt
eSAkb3ZlcnJpZGVCdWlsdGluID0gJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRy
aWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSA/ICJPdmVycmlkZUJ1aWx0aW5z
OjpZZXMiIDogIk92ZXJyaWRlQnVpbHRpbnM6Ok5vIjsKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTwke292ZXJyaWRlQnVpbHRpbn0+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgZ2V0dGVyRnVuY3RvcikpIHtcbiIpOworICAgICAgICAKKyAgICAgICAgIyBOT1RFOiBHZW5l
cmF0ZU5hbWVkR2V0dGVyIGltcGxlbWVudHMgc3RlcHMgMi4xIC0gMi4xMC4KKyAgICAgICAgCisg
ICAgICAgIG15ICgkbmF0aXZlVG9KU0NvbnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpID0gR2Vu
ZXJhdGVOYW1lZEdldHRlcigkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICJXVEZN
b3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkiKTsKKworICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgIGF1dG8gdmFsdWUgPSAke25hdGl2ZVRvSlNDb252ZXJzaW9ufTtcbiIpOwor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZmFsc2UpO1xuIikgaWYgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07CisgICAgICAgIAorICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgJHthdHRy
aWJ1dGVTdHJpbmd9LCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIg
ICAgfVxuIik7CiAgICAgfQotCisgICAgCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9KSB7CiAgICAg
ICAgICYkcHJvcGVydHlOYW1lR2VuZXJhdGlvbigpOworICAgIAogICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgaWYgKHRoaXNPYmplY3QtPmdldE93blByb3BlcnR5U2xvdERlbGVnYXRl
KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICB9Ci0KLSAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhp
c09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTtcbiIpOworICAgIAorICAgICMgMy4gUmV0dXJu
IE9yZGluYXJ5R2V0T3duUHJvcGVydHkoTywgUCkuCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0
YXRlLCBpbmRleCwgc2xvdCk7XG4iKTsKKyAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9
XG5cbiIpOwogfQogCkBAIC01ODgsMTAgKzcyOSwxMSBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9w
ZXJ0eU5hbWVzCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAidm9pZCAke2NsYXNzTmFtZX06Omdl
dE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKVxuIik7
CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtc
biIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4iKTsKLQorICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTtcbiIpOworICAg
IAogICAgICMgMS4gSWYgdGhlIG9iamVjdCBzdXBwb3J0cyBpbmRleGVkIHByb3BlcnRpZXMsIHRo
ZW4gdGhlIG9iamVjdOKAmXMgc3VwcG9ydGVkCiAgICAgIyAgICBwcm9wZXJ0eSBpbmRpY2VzIGFy
ZSBlbnVtZXJhdGVkIGZpcnN0LCBpbiBudW1lcmljYWwgb3JkZXIuCisgICAgIyBGSVhNRTogVGhp
cyBzaG91bGQgc3VwcG9ydCBub24tY29udGlndW91cyBpbmRpY2VzLgogICAgIGlmICgkaW5kZXhl
ZEdldHRlck9wZXJhdGlvbikgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZm9y
ICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7
IGkgPCBjb3VudDsgKytpKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpO1xuIik7CkBA
IC02MTYsNyArNzU4LDcgQEAgc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlOYW1lcwogICAgIAog
ICAgICMgMy4gRmluYWxseSwgYW55IGVudW1lcmFibGUgb3duIHByb3BlcnRpZXMgb3IgcHJvcGVy
dGllcyBmcm9tIHRoZSBvYmplY3TigJlzCiAgICAgIyAgICBwcm90b3R5cGUgY2hhaW4gYXJlIHRo
ZW4gZW51bWVyYXRlZCwgaW4gbm8gZGVmaW5lZCBvcmRlci4KLSAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lcywgbW9kZSk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywg
bW9kZSk7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQogCkBAIC03
MjAsNyArODYyLDcgQEAgc3ViIEdlbmVyYXRlUHV0CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgIiAgICAgICAgcmV0dXJuIHB1dFJlc3VsdDtcblxuIik7CiAgICAgfQogICAgIAotICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpO1xuIik7CisgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpO1xuIik7CiAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAifVxuXG4iKTsKIH0KIApAQCAtNzU2LDcgKzg5OCw3IEBAIHN1YiBHZW5l
cmF0ZVB1dEJ5SW5kZXgKICAgICB9CiAgICAgCiAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJhdGlv
bikgewotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7XG4iKTsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpO1xuIik7CiAgICAgICAgICAgICAgICAgCiAgICAgICAgIG15ICRhZGRp
dGlvbmFsSW5kZW50ID0gIiI7CiAgICAgICAgIGlmICghJG92ZXJyaWRlQnVpbHRpbnMpIHsKQEAg
LTc3Niw3ICs5MTgsNyBAQCBzdWIgR2VuZXJhdGVQdXRCeUluZGV4CiAgICAgCiAgICAgYXNzZXJ0
KCJVc2luZyBib3RoIGEgbmFtZWQgcHJvcGVydHkgc2V0dGVyIGFuZCBbQ3VzdG9tTmFtZWRTZXR0
ZXJdIHRvZ2V0aGVyIGlzIG5vdCBzdXBwb3J0ZWQuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9u
ICYmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfTsK
ICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRTZXR0
ZXJ9KSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBJZGVudGlmaWVyIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTtcbiIpOworICAgICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tKHN0YXRlLCBpbmRleCk7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IFB1dFByb3BlcnR5U2xvdCBzbG90KHRoaXNPYmplY3QsIHNob3VsZFRocm93KTtcbiIpOwogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYm9vbCBwdXRSZXN1bHQgPSBmYWxzZTtcbiIp
OwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKHRoaXNPYmplY3QtPnB1dERl
bGVnYXRlKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBzbG90LCBwdXRSZXN1bHQpKVxuIik7
CkBAIC03ODQsNyArOTI2LDcgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgIH0KICAgICAK
ICAgICBpZiAoISRlbGxpZGVzQ2FsbHNUb0Jhc2UpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFs
dWUsIHNob3VsZFRocm93KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
cmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNo
b3VsZFRocm93KTtcbiIpOwogICAgIH0KICAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9
XG5cbiIpOwpAQCAtODgyLDExICsxMDI0LDExIEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3Bl
cnR5CiAgICAgICAgICMgICAgZG9lcyBub3QgaGF2ZSBhbiBvd24gcHJvcGVydHkgbmFtZWQgUCwg
dGhlbjoKICAgICAgICAgbXkgJG92ZXJyaWRlQnVpbHRpbnMgPSAkY29kZUdlbmVyYXRvci0+SW5o
ZXJpdHNFeHRlbmRlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpOwog
ICAgICAgICBpZiAoISRvdmVycmlkZUJ1aWx0aW5zKSB7Ci0gICAgICAgICAgICAjIEZJWE1FOiBJ
cyBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QgdGhlIHJpZ2h0IGZ1bmN0aW9uIHRvIGNhbGw/IElz
IHRoZXJlIGEgZnVuY3Rpb24gdGhhdCB3aWxsCisgICAgICAgICAgICAjIEZJWE1FOiBJcyBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlTbG90IHRoZSByaWdodCBmdW5jdGlvbiB0byBjYWxsPyBJcyB0
aGVyZSBhIGZ1bmN0aW9uIHRoYXQgd2lsbAogICAgICAgICAgICAgIyAgICAgICAgb25seSBsb29r
IGF0IHRoZSBhY3R1YWwgcHJvcGVydGllcywgYW5kIG5vdCBjYWxsIGludG8gb3VyIGltcGxlbWVu
dGF0aW9uIG9mIHRoZQogICAgICAgICAgICAgIyAgICAgICAgW1tHZXRPd25Qcm9wZXJ0eV1dIGhv
b2s/CiAgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50LiAi
ICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50
ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudC4gIiAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHtcbiIp
OworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudC4gIiAg
ICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7XG4iKTsKICAgICAgICAgICAgICRhZGRpdGlvbmFsSW5k
ZW50IC49ICIgICAgIjsKICAgICAgICAgfQogICAgICAgICBpZiAoISRuYW1lZFNldHRlck9wZXJh
dGlvbikgewpAQCAtOTI5LDcgKzEwNzEsNyBAQCBzdWIgR2VuZXJhdGVEZWZpbmVPd25Qcm9wZXJ0
eQogICAgIAogICAgICMgNC4gUmV0dXJuIE9yZGluYXJ5RGVmaW5lT3duUHJvcGVydHkoTywgUCwg
RGVzYykuCiAgICAgIyBGSVhNRTogRG9lcyB0aGlzIGRvIHRoZSBzYW1lIHRoaW5nPwotICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRo
cm93KTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNPYmplY3Q6
OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVy
dHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7XG4iKTsKICAgICAKICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICJ9XG5cbiIpOwogfQpAQCAtOTQ5LDcgKzEwOTEsNyBAQCBzdWIgR2VuZXJhdGVEZWxl
dGVQcm9wZXJ0eUNvbW1vbgogICAgIGFzc2VydCgiTmFtZWQgcHJvcGVydHkgZGVsZXRlcnMgYXJl
IG5vdCBhbGxvd2VkIG9uIGdsb2JhbCBvYmplY3QgaW50ZXJmYWNlcy4iKSBpZiBJc0dsb2JhbE9y
UHJpbWFyeUdsb2JhbEludGVyZmFjZSgkaW50ZXJmYWNlKTsKIAogICAgIEFkZFRvSW1wbEluY2x1
ZGVzKCJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICBteSAk
b3ZlcnJpZGVCdWlsdGluID0gJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1
dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSA/ICJ0cnVlIiA6ICJmYWxzZSI7Cisg
ICAgbXkgJG92ZXJyaWRlQnVpbHRpbiA9ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVk
QXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVycmlkZUJ1aWx0aW5zIikgPyAiT3ZlcnJpZGVCdWls
dGluczo6WWVzIiA6ICJPdmVycmlkZUJ1aWx0aW5zOjpObyI7CiAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PCR7b3ZlcnJpZGVCdWlsdGlufT4o
KnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKIAogICAgIGlmICgkb3Bl
cmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDRVJlYWN0aW9uc30pIHsKQEAgLTEwMjksOSAr
MTE3MSw5IEBAIHN1YiBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5RGVmaW5pdGlvbgogICAgICMgR2Vu
ZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1vbiBpbXBsZW1lbnRzIHN0ZXAgMi4KICAgICBHZW5lcmF0
ZURlbGV0ZVByb3BlcnR5Q29tbW9uKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFt
ZSwgJG9wZXJhdGlvbiwgJGNvbmRpdGlvbmFsKTsKIAotICAgICMgRklYTUU6IEluc3RlYWQgb2Yg
Y2FsbGluZyBkb3duIEJhc2U6OmRlbGV0ZVByb3BlcnR5LCBwZXJoYXBzIHdlIHNob3VsZCBpbXBs
ZW1lbnQKKyAgICAjIEZJWE1FOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZG93biBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHksIHBlcmhhcHMgd2Ugc2hvdWxkIGltcGxlbWVudAogICAgICMgdGhlIHJlbWFp
bmVkIG9mIHRoZSBhbGdvcml0aG0gb3Vyc2VsdmVzLgotICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSk7XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTtcbiIpOwogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiB9CiAKQEAgLTEwNjQsNyArMTIwNiw3IEBAIHN1YiBH
ZW5lcmF0ZURlbGV0ZVByb3BlcnR5QnlJbmRleERlZmluaXQKICAgICAgICAgIyBHZW5lcmF0ZURl
bGV0ZVByb3BlcnR5Q29tbW9uIGltcGxlbWVudHMgc3RlcCAyLgogICAgICAgICBHZW5lcmF0ZURl
bGV0ZVByb3BlcnR5Q29tbW9uKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwg
JG9wZXJhdGlvbiwgJGNvbmRpdGlvbmFsKTsKIAotICAgICAgICAjIEZJWE1FOiBJbnN0ZWFkIG9m
IGNhbGxpbmcgZG93biBCYXNlOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgsIHBlcmhhcHMgd2Ugc2hv
dWxkIGltcGxlbWVudAorICAgICAgICAjIEZJWE1FOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZG93biBK
U09iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4LCBwZXJoYXBzIHdlIHNob3VsZCBpbXBsZW1l
bnQKICAgICAgICAgIyB0aGUgcmVtYWluZWRlciBvZiB0aGUgYWxnb3JpdG0gKHN0ZXBzIDMgYW5k
IDQpIG91cnNlbHZlcy4KICAgICAgICAgCiAgICAgICAgICMgMy4gSWYgTyBoYXMgYW4gb3duIHBy
b3BlcnR5IHdpdGggbmFtZSBQLCB0aGVuOgpAQCAtMTA3Miw3ICsxMjE0LDcgQEAgc3ViIEdlbmVy
YXRlRGVsZXRlUHJvcGVydHlCeUluZGV4RGVmaW5pdAogICAgICAgICAjICAgIDIuIE90aGVyd2lz
ZSwgcmVtb3ZlIHRoZSBwcm9wZXJ0eSBmcm9tIE8uCiAgICAgICAgICMgMy4gUmV0dXJuIHRydWUu
CiAgICAgICAgIAotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEJhc2U6
OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpO1xuIik7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpO1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAifVxuXG4iKTsKQEAgLTE1NDEsMTcgKzE2ODMsNyBAQCBzdWIgSW5zdGFuY2VP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7
CiAgICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93
blByb3BlcnR5U2xvdH0KLSAgICAgICAgfHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q3VzdG9tTmFtZWRHZXR0ZXJ9Ci0gICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9Ci0gICAgICAg
IHx8IEdldEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkKLSAgICAgICAgfHwgR2V0
TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7Ci19Ci0KLXN1YiBJbnN0YW5jZU92ZXJy
aWRlc0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXgKLXsKLSAgICBteSAkaW50ZXJmYWNlID0gc2hp
ZnQ7Ci0gICAgcmV0dXJuICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXh9Ci0gICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkR2V0dGVyfQorICAgICAgICB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4fQogICAg
ICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9w
ZXJ0eVNsb3RBbmREZXNjcmlwdG9yfQogICAgICAgICB8fCBHZXRJbmRleGVkR2V0dGVyT3BlcmF0
aW9uKCRpbnRlcmZhY2UpCiAgICAgICAgIHx8IEdldE5hbWVkR2V0dGVyT3BlcmF0aW9uKCRpbnRl
cmZhY2UpOwpAQCAtMjI3MCw4ICsyNDAyLDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkg
JG5hbWVkR2V0dGVyT3BlcmF0aW9uID0gR2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFj
ZSk7CiAgICAgbXkgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXRJbmRleGVkR2V0dGVyT3Bl
cmF0aW9uKCRpbnRlcmZhY2UpOwogCi0gICAgIyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhpcyBhbHNv
IGluY2x1ZGUgSW5kZXhlZCBHZXR0ZXJzLCB7Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90fSBhbmQg
e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9Ci0gICAgaWYgKCRuYW1lZEdl
dHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21O
YW1lZEdldHRlcn0pIHsKKyAgICAjIEZJWE1FOiBXaHkgZG9lc24ndCB0aGlzIGFsc28gaW5jbHVk
ZSBJbmRleGVkIEdldHRlcnMsIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RdIGFuZCBbQ3VzdG9t
R2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvcl0KKyAgICBpZiAoJG5hbWVkR2V0dGVyT3Bl
cmF0aW9uKSB7CiAgICAgICAgIGlmICgkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRlZEF0
dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpKSB7CiAgICAgICAgICAgICAk
c3RydWN0dXJlRmxhZ3N7IkpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmUifSA9IDE7CiAg
ICAgICAgIH0gZWxzZSB7CkBAIC0yMjg0LDkgKzI0MTYsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
ICAgICBpZiAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoJGludGVyZmFjZSkp
IHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Q
cm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0
eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdz
eyJKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCJ9ID0gMTsKLSAgICB9Ci0gICAgCi0g
ICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleCgkaW50ZXJm
YWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwg
dW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAg
ICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJvIn0gPSAxOwogICAgIH0KQEAgLTI1MzksMTEgKzI2Njgs
NyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvcn0pIHsKICAgICAg
ICAgcHVzaChAaGVhZGVyQ29udGVudCwgIiAgICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVn
YXRlKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7XG4iKTsKICAgICB9Ci0KLSAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57Q3VzdG9tTmFtZWRHZXR0ZXJ9KSB7Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgYm9vbCBuYW1lR2V0dGVyKEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpT
Qzo6SlNWYWx1ZSYpO1xuIik7Ci0gICAgfQotCisgICAgCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfSkgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIGJvb2wgcHV0RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYsIGJvb2wm
IHB1dFJlc3VsdCk7XG4iKTsKICAgICB9CkBAIC0zNzk4LDcgKzM5MjMsNyBAQCBzdWIgR2VuZXJh
dGVJbXBsZW1lbnRhdGlvbgogICAgICAgICAgICAgbXkgJHJ1bnRpbWVFbmFibGVDb25kaXRpb25h
bFN0cmluZyA9IEdlbmVyYXRlUnVudGltZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nKCRvcGVyYXRp
b25PckF0dHJpYnV0ZSk7CiAgICAgICAgICAgICBteSAkbmFtZSA9ICRvcGVyYXRpb25PckF0dHJp
YnV0ZS0+bmFtZTsKICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghJHty
dW50aW1lRW5hYmxlQ29uZGl0aW9uYWxTdHJpbmd9KSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2go
QGltcGxDb250ZW50LCAiICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oXCIkbmFt
ZVwiKSwgc3RybGVuKFwiJG5hbWVcIikpO1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29u
dGVudCwgIiAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihc
IiRuYW1lXCIpKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAg
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENv
bnRlbnQsICIgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICB9XG4iKTsKQEAgLTM4MjAsNyArMzk0NSw3IEBAIHN1YiBHZW5l
cmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICAgICAgbXkgJG5hbWUgPSAkb3BlcmF0aW9u
T3JBdHRyaWJ1dGUtPm5hbWU7CiAKICAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwg
IiAgICBpZiAoIWNvbnRleHQgfHwgIWRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkuc2V0dGlu
Z3MoKS4ke2VuYWJsZUZ1bmN0aW9ufSgpKSB7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBp
bXBsQ29udGVudCwgIiAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVc
IiksIHN0cmxlbihcIiRuYW1lXCIpKTtcbiIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxD
b250ZW50LCAiICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oXCIkbmFtZVwiKSwgc3RybGVu
KFwiJG5hbWVcIikpO1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIg
ICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywg
Z2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAgICAg
ICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwpAQCAtNDAzMywxMSArNDE1OCw4
IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgfQogCiAgICAgaWYgKEluc3RhbmNl
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90KCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgIEdlbmVy
YXRlR2V0T3duUHJvcGVydHlTbG90Qm9keShcQGltcGxDb250ZW50LCAkaW50ZXJmYWNlLCAkY2xh
c3NOYW1lKTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJv
cGVydHlTbG90QnlJbmRleCgkaW50ZXJmYWNlKSkgewotICAgICAgICBHZW5lcmF0ZUdldE93blBy
b3BlcnR5U2xvdEJvZHlCeUluZGV4KFxAaW1wbENvbnRlbnQsICRpbnRlcmZhY2UsICRjbGFzc05h
bWUpOworICAgICAgICBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdChcQGltcGxDb250ZW50LCAk
aW50ZXJmYWNlLCAkY2xhc3NOYW1lKTsKKyAgICAgICAgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KFxAaW1wbENvbnRlbnQsICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOwogICAgIH0K
ICAgICAKICAgICBpZiAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVzKCRpbnRl
cmZhY2UpKSB7CkBAIC01OTU5LDcgKzYwODEsOCBAQCBzdWIgR2V0QmFzZUlETFR5cGUKICAgICAg
ICAgIkpTT04iID0+ICJJRExKU09OIiwKICAgICAgICAgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSIg
PT4gIklETFNlcmlhbGl6ZWRTY3JpcHRWYWx1ZTxTZXJpYWxpemVkU2NyaXB0VmFsdWU+IiwKICAg
ICAgICAgIlhQYXRoTlNSZXNvbHZlciIgPT4gIklETFhQYXRoTlNSZXNvbHZlcjxYUGF0aE5TUmVz
b2x2ZXI+IiwKLQorICAgICAgICAiRE9NV2luZG93U2hlbGwiID0+ICJJRExET01XaW5kb3dTaGVs
bCIsCisgICAgICAgIAogICAgICAgICAjIENvbnZlbmllbmNlIHR5cGUgYWxpYXNlcwogICAgICAg
ICAiQnVmZmVyU291cmNlIiA9PiAiSURMQnVmZmVyU291cmNlIiwKICAgICApOwpAQCAtNjExNSwx
MSArNjIzOCwxMiBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKICAg
ICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkdHlwZSk7CiAg
ICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZXJmYWNlVHlwZSgkdHlwZSk7CiAg
ICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5cGUpOwor
ICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJET01XaW5kb3dTaGVsbCI7CiAgICAgcmV0
dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIkRhdGUiOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5u
YW1lIGVxICJKU09OIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiU2VyaWFsaXpl
ZFNjcmlwdFZhbHVlIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiWFBhdGhOU1Jl
c29sdmVyIjsKLQorICAgIAogICAgIHJldHVybiAwOwogfQogCkBAIC02MTQ1LDYgKzYyNjksNyBA
QCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzR2xvYmFsCiAgICAgcmV0dXJuIDEg
aWYgJGNvZGVHZW5lcmF0b3ItPklzRGljdGlvbmFyeVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAx
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc0ludGVyZmFjZVR5cGUoJHR5cGUpOwogICAgIHJldHVybiAx
IGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKTsKKyAgICByZXR1cm4g
MSBpZiAkdHlwZS0+bmFtZSBlcSAiRE9NV2luZG93U2hlbGwiOwogICAgIHJldHVybiAxIGlmICR0
eXBlLT5uYW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwogICAgIHJldHVybiAxIGlmICR0
eXBlLT5uYW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbgkocmV2aXNpb24gMjE4
MDU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpz
b24JKHdvcmtpbmcgY29weSkKQEAgLTExMyw5ICsxMTMsNiBAQAogICAgICAgICAiQ3VzdG9tSXNS
ZWFjaGFibGUiOiB7CiAgICAgICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2Ui
XQogICAgICAgICB9LAotICAgICAgICAiQ3VzdG9tTmFtZWRHZXR0ZXIiOiB7Ci0gICAgICAgICAg
ICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQotICAgICAgICB9LAogICAgICAgICAi
Q3VzdG9tTmFtZWRHZXR0ZXJPblByb3RvdHlwZSI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0Fs
bG93ZWQiOiBbImludGVyZmFjZSJdCiAgICAgICAgIH0sCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmlkbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEN1c3RvbU5hbWVk
R2V0dGVyLmlkbAkocmV2aXNpb24gMjE4MDU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L1Rlc3RDdXN0b21OYW1lZEdldHRlci5pZGwJKG5vbmV4aXN0ZW50KQpAQCAt
MSwzNCArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDExIEdvb2dsZSBJbmMuIEFsbCBy
aWdodHMgcmVzZXJ2ZWQuCi0gKgotICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2Ug
YW5kIGJpbmFyeSBmb3Jtc3RyQXJnLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwg
YXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICog
YXJlIG1ldDoKLSAqCi0gKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3Qg
cmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKLSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAyLiAgUmVkaXN0cmli
dXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQK
LSAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5n
IGRpc2NsYWltZXIgaW4gdGhlCi0gKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0
ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqIDMuICBOZWl0aGVyIHRo
ZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKLSAqICAgICBp
dHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0
cyBkZXJpdmVkCi0gKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJp
b3Igd3JpdHRlbiBwZXJtaXNzaW9uLgotICoKLSAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQg
QlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCi0gKiBFWFBSRVNT
IE9SIElNUExJRUQgV0FSUkFOVElFc3RyQXJnLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgVEhFIElNUExJRUQKLSAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRO
RVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKLSAqIERJU0NMQUlNRUQuIElOIE5PIEVW
RU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKLSAq
IERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09O
U0VRVUVOVElBTCBEQU1BR0VTCi0gKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBS
T0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7Ci0gKiBMT1NTIE9GIFVT
RSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENB
VVNFRCBBTkQKLSAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRS
QUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0Ug
T1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKLSAqIFRI
SVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBE
QU1BR0UuCi0gKi8KLQotWwotICAgIEN1c3RvbU5hbWVkR2V0dGVyCi1dIGludGVyZmFjZSBUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIgewotICAgIHZvaWQgYW5vdGhlckZ1bmN0aW9uKERPTVN0cmluZyBz
dHIpOwotfTsKLQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCShy
ZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCShub25leGlzdGVudCkKQEAgLTEsMjc5ICsw
LDAgQEAKLS8qCi0gICAgVGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJj
ZSBwcm9qZWN0LgotICAgIFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUt
YmluZGluZ3MucGwuIERPIE5PVCBNT0RJRlkhCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVu
ZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNl
bnNlIGFzIHB1Ymxpc2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIK
LSAgICB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxh
dGVyIHZlcnNpb24uCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhv
cGUgdGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7
IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElU
WSBvciBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAg
TGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZ
b3Ugc2hvdWxkIGhhdmUgcmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlCi0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmls
ZSBDT1BZSU5HLkxJQi4gIElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBG
b3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJv
c3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgotKi8KLQotI2luY2x1ZGUgImNvbmZpZy5oIgotI2lu
Y2x1ZGUgIkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgiCi0KLSNpbmNsdWRlICJKU0RPTUJpbmRp
bmcuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgotI2lu
Y2x1ZGUgIkpTRE9NQ29udmVydC5oIgotI2luY2x1ZGUgIkpTRE9NRXhjZXB0aW9uSGFuZGxpbmcu
aCIKLSNpbmNsdWRlICJKU0RPTU9wZXJhdGlvbi5oIgotI2luY2x1ZGUgIkpTRE9NV3JhcHBlckNh
Y2hlLmgiCi0jaW5jbHVkZSA8cnVudGltZS9GdW5jdGlvblByb3RvdHlwZS5oPgotI2luY2x1ZGUg
PHd0Zi9HZXRQdHIuaD4KLQotdXNpbmcgbmFtZXNwYWNlIEpTQzsKLQotbmFtZXNwYWNlIFdlYkNv
cmUgewotCi0vLyBGdW5jdGlvbnMKLQotSlNDOjpFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVuY3Rpb24o
SlNDOjpFeGVjU3RhdGUqKTsKLQotLy8gQXR0cmlidXRlcwotCi1KU0M6OkVuY29kZWRKU1ZhbHVl
IGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OkVuY29kZWRKU1ZhbHVlLCBKU0M6OlByb3BlcnR5TmFtZSk7Ci1ib29sIHNldEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OkVuY29kZWRKU1Zh
bHVlLCBKU0M6OkVuY29kZWRKU1ZhbHVlKTsKLQotY2xhc3MgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXJQcm90b3R5cGUgOiBwdWJsaWMgSlNDOjpKU05vbkZpbmFsT2JqZWN0IHsKLXB1YmxpYzoKLSAg
ICB1c2luZyBCYXNlID0gSlNDOjpKU05vbkZpbmFsT2JqZWN0OwotICAgIHN0YXRpYyBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlclByb3RvdHlwZSogY3JlYXRlKEpTQzo6Vk0mIHZtLCBKU0RPTUdsb2Jh
bE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OlN0cnVjdHVyZSogc3RydWN0dXJlKQotICAgIHsK
LSAgICAgICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIHB0ciA9IG5ldyAoTm90
TnVsbCwgSlNDOjphbGxvY2F0ZUNlbGw8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU+
KHZtLmhlYXApKSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSh2bSwgZ2xvYmFsT2Jq
ZWN0LCBzdHJ1Y3R1cmUpOwotICAgICAgICBwdHItPmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICAg
ICAgcmV0dXJuIHB0cjsKLSAgICB9Ci0KLSAgICBERUNMQVJFX0lORk87Ci0gICAgc3RhdGljIEpT
Qzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxP
YmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlwZSkKLSAgICB7Ci0gICAg
ICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9iYWxPYmplY3QsIHByb3Rv
dHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5m
bygpKTsKLSAgICB9Ci0KLXByaXZhdGU6Ci0gICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90
b3R5cGUoSlNDOjpWTSYgdm0sIEpTQzo6SlNHbG9iYWxPYmplY3QqLCBKU0M6OlN0cnVjdHVyZSog
c3RydWN0dXJlKQotICAgICAgICA6IEpTQzo6SlNOb25GaW5hbE9iamVjdCh2bSwgc3RydWN0dXJl
KQotICAgIHsKLSAgICB9Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLX07
Ci0KLXVzaW5nIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IgPSBKU0RPTUNvbnN0
cnVjdG9yTm90Q29uc3RydWN0YWJsZTxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj47Ci0KLXRlbXBs
YXRlPD4gSlNWYWx1ZSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yOjpwcm90b3R5
cGVGb3JTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHZtKTsKLSAgICByZXR1cm4gZ2xvYmFsT2Jq
ZWN0LmZ1bmN0aW9uUHJvdG90eXBlKCk7Ci19Ci0KLXRlbXBsYXRlPD4gdm9pZCBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlckNvbnN0cnVjdG9yOjppbml0aWFsaXplUHJvcGVydGllcyhWTSYgdm0sIEpT
RE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5w
cm9wZXJ0eU5hbWVzLT5wcm90b3R5cGUsIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpwcm90b3R5
cGUodm0sIGdsb2JhbE9iamVjdCksIERvbnREZWxldGUgfCBSZWFkT25seSB8IERvbnRFbnVtKTsK
LSAgICBwdXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPm5hbWUsIGpzTm9udHJpdmlhbFN0
cmluZygmdm0sIFN0cmluZyhBU0NJSUxpdGVyYWwoIlRlc3RDdXN0b21OYW1lZEdldHRlciIpKSks
IFJlYWRPbmx5IHwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1l
cy0+bGVuZ3RoLCBqc051bWJlcigwKSwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci19Ci0KLXRlbXBs
YXRlPD4gY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3I6
OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21OYW1lZEdldHRlciIsICZCYXNlOjpzX2luZm8sIG51bGxw
dHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJD
b25zdHJ1Y3RvcikgfTsKLQotLyogSGFzaCB0YWJsZSBmb3IgcHJvdG90eXBlICovCi0KLXN0YXRp
YyBjb25zdCBIYXNoVGFibGVWYWx1ZSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZVRh
YmxlVmFsdWVzW10gPQotewotICAgIHsgImNvbnN0cnVjdG9yIiwgRG9udEVudW0sIE5vSW50cmlu
c2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2FzdDxQcm9wZXJ0eVNsb3Q6OkdldFZhbHVlRnVuYz4o
anNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvciksIChpbnRwdHJfdCkgc3RhdGljX2Nh
c3Q8UHV0UHJvcGVydHlTbG90OjpQdXRWYWx1ZUZ1bmM+KHNldEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyQ29uc3RydWN0b3IpIH0gfSwKLSAgICB7ICJhbm90aGVyRnVuY3Rpb24iLCBKU0M6OkZ1bmN0
aW9uLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8TmF0aXZlRnVuY3Rpb24+
KGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVuY3Rpb24p
LCAoaW50cHRyX3QpICgxKSB9IH0sCi19OwotCi1jb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJQcm90b3R5cGU6OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21OYW1lZEdldHRlclBy
b3RvdHlwZSIsICZCYXNlOjpzX2luZm8sIG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0Rf
VEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUpIH07Ci0KLXZvaWQgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKFZNJiB2bSkKLXsKLSAg
ICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZt
LCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7Ci19
Ci0KLWNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6c19pbmZvID0geyAi
VGVzdEN1c3RvbU5hbWVkR2V0dGVyIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwg
Q1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDdXN0b21OYW1lZEdldHRlcikgfTsKLQotSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXI6OkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKFN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEN1c3RvbU5h
bWVkR2V0dGVyPiYmIGltcGwpCi0gICAgOiBKU0RPTVdyYXBwZXI8VGVzdEN1c3RvbU5hbWVkR2V0
dGVyPihzdHJ1Y3R1cmUsIGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSkKLXsKLX0KLQotdm9p
ZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6ZmluaXNoQ3JlYXRpb24oVk0mIHZtKQotewotICAg
IEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICBBU1NFUlQoaW5oZXJpdHModm0sIGluZm8o
KSkpOwotCi19Ci0KLUpTT2JqZWN0KiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Y3JlYXRlUHJv
dG90eXBlKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBy
ZXR1cm4gSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmNyZWF0ZSh2bSwgJmdsb2Jh
bE9iamVjdCwgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGU6OmNyZWF0ZVN0cnVjdHVy
ZSh2bSwgJmdsb2JhbE9iamVjdCwgZ2xvYmFsT2JqZWN0Lm9iamVjdFByb3RvdHlwZSgpKSk7Ci19
Ci0KLUpTT2JqZWN0KiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6cHJvdG90eXBlKFZNJiB2bSwg
SlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICByZXR1cm4gZ2V0RE9NUHJv
dG90eXBlPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPih2bSwgZ2xvYmFsT2JqZWN0KTsKLX0KLQot
SlNWYWx1ZSBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0Q29uc3RydWN0b3IoVk0mIHZtLCBj
b25zdCBKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0KQotewotICAgIHJldHVybiBnZXRET01D
b25zdHJ1Y3RvcjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yPih2bSwgKmpzQ2Fz
dDxjb25zdCBKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCkpOwotfQotCi12b2lkIEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpkZXN0cm95KEpTQzo6SlNDZWxsKiBjZWxsKQotewotICAg
IEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0aGlzT2JqZWN0ID0gc3RhdGljX2Nhc3Q8SlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXIqPihjZWxsKTsKLSAgICB0aGlzT2JqZWN0LT5KU1Rlc3RDdXN0b21O
YW1lZEdldHRlcjo6fkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKCk7Ci19Ci0KLWJvb2wgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldE93blByb3BlcnR5U2xvdChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCi17Ci0gICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBp
ZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3Bl
cnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNT
eW1ib2woKSkgewotICAgICAgICBKU1ZhbHVlIHZhbHVlOwotICAgICAgICBpZiAodGhpc09iamVj
dC0+bmFtZUdldHRlcihzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpIHsKLSAgICAgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQotICAgIHJldHVybiBmYWxzZTsKLX0KLQot
Ym9vbCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChK
U09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVy
dHlTbG90JiBzbG90KQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZv
KCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAgICAgIGlmICh0aGlz
T2JqZWN0LT5uYW1lR2V0dGVyKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKSkgewotICAgICAg
ICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
LX0KLQotdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIElETE9wZXJh
dGlvbjxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKLXsK
LSAgICByZXR1cm4ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihz
dGF0ZS52bSgpLCBzdGF0ZS50aGlzVmFsdWUoKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIGpzVGVz
dEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCi17Ci0gICAgVk0mIHZtID0gc3RhdGUtPnZt
KCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2bSk7Ci0gICAg
YXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwotICAgIGlmIChV
TkxJS0VMWSghcHJvdG90eXBlKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1UeXBlRXJyb3Ioc3Rh
dGUsIHRocm93U2NvcGUpOwotICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXI6OmdldENvbnN0cnVjdG9yKHN0YXRlLT52bSgpLCBwcm90b3R5cGUtPmdsb2Jh
bE9iamVjdCgpKSk7Ci19Ci0KLWJvb2wgc2V0SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIEVuY29kZWRK
U1ZhbHVlIGVuY29kZWRWYWx1ZSkKLXsKLSAgICBWTSYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBh
dXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90
b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlw
ZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1ZhbHVlKSk7Ci0gICAgaWYgKFVOTElLRUxZKCFw
cm90b3R5cGUpKSB7Ci0gICAgICAgIHRocm93Vk1UeXBlRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUp
OwotICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgfQotICAgIC8vIFNoYWRvd2luZyBhIGJ1aWx0
LWluIGNvbnN0cnVjdG9yCi0gICAgcmV0dXJuIHByb3RvdHlwZS0+cHV0RGlyZWN0KHN0YXRlLT52
bSgpLCBzdGF0ZS0+cHJvcGVydHlOYW1lcygpLmNvbnN0cnVjdG9yLCBKU1ZhbHVlOjpkZWNvZGUo
ZW5jb2RlZFZhbHVlKSk7Ci19Ci0KLXN0YXRpYyBpbmxpbmUgSlNDOjpFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5vdGhlckZ1bmN0aW9uQm9k
eShKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIHR5cGVuYW1lIElETE9wZXJhdGlvbjxKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcj46OkNsYXNzUGFyYW1ldGVyIGNhc3RlZFRoaXMsIEpTQzo6VGhyb3dTY29w
ZSYgdGhyb3dTY29wZSkKLXsKLSAgICBVTlVTRURfUEFSQU0oc3RhdGUpOwotICAgIFVOVVNFRF9Q
QVJBTSh0aHJvd1Njb3BlKTsKLSAgICBhdXRvJiBpbXBsID0gY2FzdGVkVGhpcy0+d3JhcHBlZCgp
OwotICAgIGlmIChVTkxJS0VMWShzdGF0ZS0+YXJndW1lbnRDb3VudCgpIDwgMSkpCi0gICAgICAg
IHJldHVybiB0aHJvd1ZNRXJyb3Ioc3RhdGUsIHRocm93U2NvcGUsIGNyZWF0ZU5vdEVub3VnaEFy
Z3VtZW50c0Vycm9yKHN0YXRlKSk7Ci0gICAgYXV0byBzdHIgPSBjb252ZXJ0PElETERPTVN0cmlu
Zz4oKnN0YXRlLCBzdGF0ZS0+dW5jaGVja2VkQXJndW1lbnQoMCkpOwotICAgIFJFVFVSTl9JRl9F
WENFUFRJT04odGhyb3dTY29wZSwgZW5jb2RlZEpTVmFsdWUoKSk7Ci0gICAgaW1wbC5hbm90aGVy
RnVuY3Rpb24oV1RGTW92ZShzdHIpKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6ZW5jb2RlKGpzVW5k
ZWZpbmVkKCkpOwotfQotCi1FbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGpzVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25Bbm90aGVyRnVuY3Rpb24oRXhlY1N0YXRlKiBz
dGF0ZSkKLXsKLSAgICByZXR1cm4gSURMT3BlcmF0aW9uPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVy
Pjo6Y2FsbDxqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5vdGhlckZ1
bmN0aW9uQm9keT4oKnN0YXRlLCAiYW5vdGhlckZ1bmN0aW9uIik7Ci19Ci0KLWJvb2wgSlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJPd25lcjo6aXNSZWFjaGFibGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpI
YW5kbGU8SlNDOjpVbmtub3duPiBoYW5kbGUsIHZvaWQqLCBTbG90VmlzaXRvciYgdmlzaXRvcikK
LXsKLSAgICBVTlVTRURfUEFSQU0oaGFuZGxlKTsKLSAgICBVTlVTRURfUEFSQU0odmlzaXRvcik7
Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi12b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3du
ZXI6OmZpbmFsaXplKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiBjb250
ZXh0KQotewotICAgIGF1dG8qIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyID0gc3RhdGljX2Nhc3Q8
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihoYW5kbGUuc2xvdCgpLT5hc0NlbGwoKSk7Ci0gICAg
YXV0byYgd29ybGQgPSAqc3RhdGljX2Nhc3Q8RE9NV3JhcHBlcldvcmxkKj4oY29udGV4dCk7Ci0g
ICAgdW5jYWNoZVdyYXBwZXIod29ybGQsICZqc1Rlc3RDdXN0b21OYW1lZEdldHRlci0+d3JhcHBl
ZCgpLCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlcik7Ci19Ci0KLSNpZiBFTkFCTEUoQklORElOR19J
TlRFR1JJVFkpCi0jaWYgUExBVEZPUk0oV0lOKQotI3ByYWdtYSB3YXJuaW5nKGRpc2FibGU6IDQ0
ODMpCi1leHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQgKCpjb25zdCBfX2lkZW50aWZpZXIoIj8/XzdU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXJAV2ViQ29yZUBANkJAIilbXSkoKTsgfQotI2Vsc2UKLWV4dGVy
biAiQyIgeyBleHRlcm4gdm9pZCogX1pUVk43V2ViQ29yZTIxVGVzdEN1c3RvbU5hbWVkR2V0dGVy
RVtdOyB9Ci0jZW5kaWYKLSNlbmRpZgotCi1KU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChK
U0M6OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZjxUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXI+JiYgaW1wbCkKLXsKLQotI2lmIEVOQUJMRShCSU5ESU5HX0lOVEVH
UklUWSkKLSAgICB2b2lkKiBhY3R1YWxWVGFibGVQb2ludGVyID0gKihyZWludGVycHJldF9jYXN0
PHZvaWQqKj4oaW1wbC5wdHIoKSkpOwotI2lmIFBMQVRGT1JNKFdJTikKLSAgICB2b2lkKiBleHBl
Y3RlZFZUYWJsZVBvaW50ZXIgPSByZWludGVycHJldF9jYXN0PHZvaWQqPihfX2lkZW50aWZpZXIo
Ij8/XzdUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJAV2ViQ29yZUBANkJAIikpOwotI2Vsc2UKLSAgICB2
b2lkKiBleHBlY3RlZFZUYWJsZVBvaW50ZXIgPSAmX1pUVk43V2ViQ29yZTIxVGVzdEN1c3RvbU5h
bWVkR2V0dGVyRVsyXTsKLSNpZiBDT01QSUxFUihDTEFORykKLSAgICAvLyBJZiB0aGlzIGZhaWxz
IFRlc3RDdXN0b21OYW1lZEdldHRlciBkb2VzIG5vdCBoYXZlIGEgdnRhYmxlLCBzbyB5b3UgbmVl
ZCB0byBhZGQgdGhlCi0gICAgLy8gSW1wbGVtZW50YXRpb25MYWNrc1ZUYWJsZSBhdHRyaWJ1dGUg
dG8gdGhlIGludGVyZmFjZSBkZWZpbml0aW9uCi0gICAgc3RhdGljX2Fzc2VydChfX2lzX3BvbHlt
b3JwaGljKFRlc3RDdXN0b21OYW1lZEdldHRlciksICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgaXMg
bm90IHBvbHltb3JwaGljIik7Ci0jZW5kaWYKLSNlbmRpZgotICAgIC8vIElmIHlvdSBoaXQgdGhp
cyBhc3NlcnRpb24geW91IGVpdGhlciBoYXZlIGEgdXNlIGFmdGVyIGZyZWUgYnVnLCBvcgotICAg
IC8vIFRlc3RDdXN0b21OYW1lZEdldHRlciBoYXMgc3ViY2xhc3Nlcy4gSWYgVGVzdEN1c3RvbU5h
bWVkR2V0dGVyIGhhcyBzdWJjbGFzc2VzIHRoYXQgZ2V0IHBhc3NlZAotICAgIC8vIHRvIHRvSlMo
KSB3ZSBjdXJyZW50bHkgcmVxdWlyZSBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgeW91IHRvIG9wdCBv
dXQgb2YgYmluZGluZyBoYXJkZW5pbmcKLSAgICAvLyBieSBhZGRpbmcgdGhlIFNraXBWVGFibGVW
YWxpZGF0aW9uIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIElETCBkZWZpbml0aW9uCi0gICAg
UkVMRUFTRV9BU1NFUlQoYWN0dWFsVlRhYmxlUG9pbnRlciA9PSBleHBlY3RlZFZUYWJsZVBvaW50
ZXIpOwotI2VuZGlmCi0gICAgcmV0dXJuIGNyZWF0ZVdyYXBwZXI8VGVzdEN1c3RvbU5hbWVkR2V0
dGVyPihnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwotfQotCi1KU0M6OkpTVmFsdWUgdG9K
UyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFRlc3RDdXN0b21OYW1lZEdldHRlciYgaW1wbCkKLXsKLSAgICByZXR1cm4gd3JhcChzdGF0ZSwg
Z2xvYmFsT2JqZWN0LCBpbXBsKTsKLX0KLQotVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcjo6dG9XcmFwcGVkKEpTQzo6Vk0mIHZtLCBKU0M6OkpTVmFsdWUgdmFs
dWUpCi17Ci0gICAgaWYgKGF1dG8qIHdyYXBwZXIgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RD
dXN0b21OYW1lZEdldHRlcio+KHZtLCB2YWx1ZSkpCi0gICAgICAgIHJldHVybiAmd3JhcHBlci0+
d3JhcHBlZCgpOwotICAgIHJldHVybiBudWxscHRyOwotfQotCi19CgpQcm9wZXJ0eSBjaGFuZ2Vz
IG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXIuY3BwCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSAr
MCwwICMjCi1MRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaAkocmV2aXNpb24gMjE4MDU2KQorKysgU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw5MCArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBpcyBwYXJ0
IG9mIHRoZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUgaGFzIGJl
ZW4gZ2VuZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQotCi0g
ICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0
IGFuZC9vcgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5
IEdlbmVyYWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29m
dHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBv
ciAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5
IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAg
YnV0IFdJVEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFu
dHkgb2YKLSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBV
UlBPU0UuICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
Ci0gICAgdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3Ry
ZWV0LCBGaWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0K
LSNwcmFnbWEgb25jZQotCi0jaW5jbHVkZSAiSlNET01XcmFwcGVyLmgiCi0jaW5jbHVkZSAiVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmgiCi0jaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+Ci0K
LW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotY2xhc3MgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgOiBw
dWJsaWMgSlNET01XcmFwcGVyPFRlc3RDdXN0b21OYW1lZEdldHRlcj4gewotcHVibGljOgotICAg
IHVzaW5nIEJhc2UgPSBKU0RPTVdyYXBwZXI8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPjsKLSAgICBz
dGF0aWMgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGNyZWF0ZShKU0M6OlN0cnVjdHVyZSogc3Ry
dWN0dXJlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWY8VGVzdEN1c3RvbU5h
bWVkR2V0dGVyPiYmIGltcGwpCi0gICAgewotICAgICAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRl
ciogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlcj4oZ2xvYmFsT2JqZWN0LT52bSgpLmhlYXApKSBKU1Rlc3RDdXN0b21OYW1lZEdldHRl
cihzdHJ1Y3R1cmUsICpnbG9iYWxPYmplY3QsIFdURk1vdmUoaW1wbCkpOwotICAgICAgICBwdHIt
PmZpbmlzaENyZWF0aW9uKGdsb2JhbE9iamVjdC0+dm0oKSk7Ci0gICAgICAgIHJldHVybiBwdHI7
Ci0gICAgfQotCi0gICAgc3RhdGljIEpTQzo6SlNPYmplY3QqIGNyZWF0ZVByb3RvdHlwZShKU0M6
OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsKLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogcHJv
dG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwotICAgIHN0YXRpYyBUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIqIHRvV3JhcHBlZChKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKLSAgICBz
dGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0
YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAgc3RhdGlj
IGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVj
U3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7Ci0gICAg
c3RhdGljIHZvaWQgZGVzdHJveShKU0M6OkpTQ2VsbCopOwotCi0gICAgREVDTEFSRV9JTkZPOwot
Ci0gICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0s
IEpTQzo6SlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpKU1ZhbHVlIHByb3RvdHlw
ZSkKLSAgICB7Ci0gICAgICAgIHJldHVybiBKU0M6OlN0cnVjdHVyZTo6Y3JlYXRlKHZtLCBnbG9i
YWxPYmplY3QsIHByb3RvdHlwZSwgSlNDOjpUeXBlSW5mbyhKU0M6Ok9iamVjdFR5cGUsIFN0cnVj
dHVyZUZsYWdzKSwgaW5mbygpKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlNDOjpKU1ZhbHVlIGdl
dENvbnN0cnVjdG9yKEpTQzo6Vk0mLCBjb25zdCBKU0M6OkpTR2xvYmFsT2JqZWN0Kik7Ci1wdWJs
aWM6Ci0gICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIFN0cnVjdHVyZUZsYWdzID0gSlNDOjpHZXRP
d25Qcm9wZXJ0eVNsb3RJc0ltcHVyZUZvclByb3BlcnR5QWJzZW5jZSB8IEpTQzo6SW50ZXJjZXB0
c0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXhFdmVuV2hlbkxlbmd0aElzTm90WmVybyB8IEpTQzo6
T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90IHwgQmFzZTo6U3RydWN0dXJlRmxhZ3M7Ci1wcm90
ZWN0ZWQ6Ci0gICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoSlNDOjpTdHJ1Y3R1cmUqLCBKU0RP
TUdsb2JhbE9iamVjdCYsIFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYpOwotCi0gICAgdm9p
ZCBmaW5pc2hDcmVhdGlvbihKU0M6OlZNJik7Ci0gICAgYm9vbCBuYW1lR2V0dGVyKEpTQzo6RXhl
Y1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSYpOwotfTsKLQotY2xhc3Mg
SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJPd25lciA6IHB1YmxpYyBKU0M6OldlYWtIYW5kbGVPd25l
ciB7Ci1wdWJsaWM6Ci0gICAgdmlydHVhbCBib29sIGlzUmVhY2hhYmxlRnJvbU9wYXF1ZVJvb3Rz
KEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQsIEpTQzo6U2xvdFZpc2l0
b3ImKTsKLSAgICB2aXJ0dWFsIHZvaWQgZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3du
Piwgdm9pZCogY29udGV4dCk7Ci19OwotCi1pbmxpbmUgSlNDOjpXZWFrSGFuZGxlT3duZXIqIHdy
YXBwZXJPd25lcihET01XcmFwcGVyV29ybGQmLCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqKQotewot
ICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyPiBv
d25lcjsKLSAgICByZXR1cm4gJm93bmVyLmdldCgpOwotfQotCi1pbmxpbmUgdm9pZCogd3JhcHBl
cktleShUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHdyYXBwYWJsZU9iamVjdCkKLXsKLSAgICByZXR1
cm4gd3JhcHBhYmxlT2JqZWN0OwotfQotCi1KU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0
ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyJik7Ci1pbmxpbmUg
SlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVj
dCogZ2xvYmFsT2JqZWN0LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIGltcGwpIHsgcmV0dXJuIGlt
cGwgPyB0b0pTKHN0YXRlLCBnbG9iYWxPYmplY3QsICppbXBsKSA6IEpTQzo6anNOdWxsKCk7IH0K
LUpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9i
YWxPYmplY3QqLCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmKTsKLWlubGluZSBKU0M6OkpT
VmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4ZWNTdGF0ZSogc3RhdGUsIEpTRE9NR2xvYmFs
T2JqZWN0KiBnbG9iYWxPYmplY3QsIFJlZlB0cjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYgaW1w
bCkgeyByZXR1cm4gaW1wbCA/IHRvSlNOZXdseUNyZWF0ZWQoc3RhdGUsIGdsb2JhbE9iamVjdCwg
aW1wbC5yZWxlYXNlTm9uTnVsbCgpKSA6IEpTQzo6anNOdWxsKCk7IH0KLQotdGVtcGxhdGU8PiBz
dHJ1Y3QgSlNET01XcmFwcGVyQ29udmVydGVyVHJhaXRzPFRlc3RDdXN0b21OYW1lZEdldHRlcj4g
ewotICAgIHVzaW5nIFdyYXBwZXJDbGFzcyA9IEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOwotICAg
IHVzaW5nIFRvV3JhcHBlZFJldHVyblR5cGUgPSBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqOwotfTsK
LQotfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgK
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fXwpEZWxldGVkOiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLUxGClwgTm8g
bmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNw
cAkocmV2aXNpb24gMjE4MDU2KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEs
NyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdEV2ZW50VGFyZ2V0Lmgi
CiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9N
QmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgi
CiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCkBAIC0xMzQsNDggKzEzNSw2NiBAQCBib29sIEpT
VGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eVNsCiB7CiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRl
eCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBv
cHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsK
LSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+
KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwg
c2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2Jq
ZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBq
c0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUp
KQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW9wdGlvbmFsSW5kZXggJiYgdGhp
c09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2wo
KSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVt
KHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAo
IUlETEludGVyZmFjZTxOb2RlPjo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+
Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgaXRlbSkpOworICAgIGlmIChh
dXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRl
eC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmpl
Y3QtPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleC52YWx1
ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2
YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNpbmcgR2V0dGVySURM
VHlwZSA9IElETEludGVyZmFjZTxOb2RlPjsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAo
YXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlw
ZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRv
bWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6Omlz
TnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURM
VHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJv
bU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0
eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1l
LCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZh
Y2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG5h
bWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3Qs
IFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGlu
ZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3RFdmVudFRhcmdldCo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7
CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAgIGlm
IChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAg
YXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0
LT5nbG9iYWxPYmplY3QoKSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKTsKKyAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAg
ICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7
CisgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwg
aW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExJbnRlcmZhY2U8Tm9kZT47Cisg
ICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVy
dHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgp
Lm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAg
ICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAg
ICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdl
dHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5
ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0
ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAg
YXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0
LT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3Qp
OwogfQogCiB2b2lkIEpTVGVzdEV2ZW50VGFyZ2V0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2Jq
ZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0
eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7CiAgICAgZm9yIChh
dXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVy
dHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
IH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0RXZlbnRUYXJnZXQqIElETE9wZXJhdGlvbjxK
U1Rlc3RFdmVudFRhcmdldD46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxl
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVh
Y2hhYmxlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTksNyArOTksNyBAQCB2b2lkIEpTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGU6CiAgICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0p
OwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJs
ZVByb3RvdHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9i
YWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNT
ZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJh
U2VjcmV0QXR0cmlidXRlIiksIHN0cmxlbigiYVNlY3JldEF0dHJpYnV0ZSIpKTsKKyAgICAgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJhU2VjcmV0QXR0cmlidXRlIiksIHN0cmxlbigiYVNlY3Jl
dEF0dHJpYnV0ZSIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAg
ICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4
ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNiwzNSArMTM2LDM3IEBAIGJvb2wg
SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2UKIHsKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwog
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBh
dXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9w
dGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVl
KCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAg
IHJldHVybiB0cnVlOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5h
bWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgudmFsdWUoKSkpOworICAg
ICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0K
IAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGlu
ZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShp
bmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
aWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAgIGlmIChpbmRl
eCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2
YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5p
dGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQotICAgIHJl
dHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RJbmRleGVk
U2V0dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVt
ZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTsKLSAgICBCYXNl
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBt
b2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5
U2xvdCkKQEAgLTE4MCw3ICsxODIsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OnB1CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNl
OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5
U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhl
ZFNldHRlck5vSWRlbnRpZmllcjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
c3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpA
QCAtMTk2LDcgKzE5OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6
cHUKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVy
biBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRU
aHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaW5l
T3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2Ny
aXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMTYsNyArMjE4LDcgQEAgYm9vbCBKU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZQogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5l
d1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0
eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZp
bmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVz
Y3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJv
cGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3Is
IHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0SW5kZXhlZFNldHRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDIxODA1NikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYsMzUgKzEzNiwz
NyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvCiB7CiAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFt
ZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRp
b25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwg
dG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5k
ZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJ
bmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09i
amVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgu
dmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1
ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAgICBpZiAo
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b246OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBp
bmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVu
Z3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExE
T01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0g
ICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lO
REVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRl
LCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7
CiB9CiAKIHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5
TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkp
OwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgp
Lmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXMo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwog
fQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6cHV0KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNW
YWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0xODAsNyAr
MTgyLDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpbwogICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVy
biBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4
Y2VwdGlvbjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2ln
bmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMTk2LDcgKzE5
OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW8KICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwg
c3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6
cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAK
IGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Qcm9w
ZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJv
cGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwg
Ym9vbCBzaG91bGRUaHJvdykKQEAgLTIxNiw3ICsyMTgsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRT
ZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVy
dHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3Jp
cHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blBy
b3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9y
LCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlz
VmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTQyLDM1ICsxNDIsMzcgQEAgYm9vbCBK
U1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OgogewogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAg
YXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChv
cHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1
ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3Ry
aW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlO
YW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blBy
b3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVk
IGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElL
RUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsKKyAgICAgICAgaWYg
KGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBh
dXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
MCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9Ci0g
ICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3Rh
dGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xv
dEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1l
cywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0Nf
T0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAw
LCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kp
CiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTsK
LSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0
dGVyV2l0aElkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
cHV0UHJvcGVydHlTbG90KQpAQCAtMTg2LDcgKzE4OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNl
dHRlcldpdGhJZGVudGlmaWVyOjoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAg
cmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwg
cHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBK
U1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxs
LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBz
aG91bGRUaHJvdykKQEAgLTIwMiw3ICsyMDQsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbnRpZmllcjo6CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVy
biBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93
KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2
YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBz
dGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9y
JiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMjIsNyArMjI0LDcg
QEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OgogCiAgICAgUHJvcGVy
dHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsK
ICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJl
dHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVj
dDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9w
ZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0SW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEludGVyZmFjZS5jcHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC00MTYsNyArNDE2LDcgQEAgYm9vbCBKU1Rlc3RJbnRlcmZhY2U6OnB1dChKU0NlbGwqIGNl
bGwsIAogICAgIGlmICh0aGlzT2JqZWN0LT5wdXREZWxlZ2F0ZShzdGF0ZSwgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90LCBwdXRSZXN1bHQpKQogICAgICAgICByZXR1cm4gcHV0
UmVzdWx0OwogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1
dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3RJbnRlcmZhY2U6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91
bGRUaHJvdykKQEAgLTQyNCwxMyArNDI0LDEzIEBAIGJvb2wgSlNUZXN0SW50ZXJmYWNlOjpwdXRC
eUluZGV4KEpTQ2VsbCoKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEludGVy
ZmFjZSo+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpOwogICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRoaXNPYmplY3QsIHNo
b3VsZFRocm93KTsKICAgICBib29sIHB1dFJlc3VsdCA9IGZhbHNlOwogICAgIGlmICh0aGlzT2Jq
ZWN0LT5wdXREZWxlZ2F0ZShzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgc2xvdCwgcHV0UmVz
dWx0KSkKICAgICAgICAgcmV0dXJuIHB1dFJlc3VsdDsKIAotICAgIHJldHVybiBCYXNlOjpwdXRC
eUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxk
VGhyb3cpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RJbnRlcmZhY2UqIElETEF0dHJp
YnV0ZTxKU1Rlc3RJbnRlcmZhY2U+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1Zh
bHVlIHRoaXNWYWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTM2LDQ4
ICsxMzcsNjYgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChw
cm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFs
dWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRvIGlu
ZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKEJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBz
bG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmpl
Y3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpz
Q2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghb3B0aW9uYWxJbmRleCAmJiB0aGlz
T2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgp
KSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0o
cHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICgh
SURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Cisg
ICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAg
aWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgfQotICAgIHJldHVybiBmYWxz
ZTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0
dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4g
c3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+
IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0o
cHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICgh
R2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0
eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBl
OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zp
c2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUg
PSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUo
KSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElL
RUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXgg
PD0gTUFYX0FSUkFZX0lOREVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAg
ICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIH0K
KyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsK
KyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVy
RnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3Rk
OjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsK
KyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJv
cGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0
dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBl
bmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpl
eHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpu
dWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2li
bGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0
b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkp
OworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90
KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6Omdl
dE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
Tm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3Qs
IGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVz
LmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0
eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQog
ICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBw
cm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGws
IEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFs
dWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMjA1LDcgKzIyNCw3IEBA
IGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGkKICAgICAgICAgfQogICAg
IH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhp
c09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9
CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFs
dWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMjEsNyArMjQwLDcgQEAgYm9vbCBKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAg
ICB9CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3Rh
dGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3Rh
dGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5
U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBKU1ZhbHVlIHByb3Rv
dHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlmICghKHByb3Rv
dHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdChz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIzMiw3ICsyNTEsNyBAQCBib29sIEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwg
dmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2Vs
bCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
Y29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxk
VGhyb3cpCkBAIC0yNTIsNyArMjcxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJOb0lkZW50aQogCiAgICAgaWYgKCFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewogICAgICAg
ICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxN
ZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAg
aWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5RGVzY3JpcHRvci5p
c0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAg
ICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7
CkBAIC0yNjUsNyArMjg0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aQogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHBy
b3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJh
YmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwor
ICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5j
b2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDIxODA1NikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYg
KzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFj
dE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5o
IgpAQCAtMTM2LDQ4ICsxMzcsNjYgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJU
aHJvd2luZwogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5k
ZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYg
b3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7
Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVl
IHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3Rv
LmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0
ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFvcHRp
b25hbEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVy
dHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3Jh
cHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
KTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIGl0ZW0pKTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlO
YW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJp
bmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8g
cHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6Oklt
cGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3Jh
cHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
KTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAg
ICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07Cisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFBy
b3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+
KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAg
ICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFt
ZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
MCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRv
SlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4
KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkgeworICAgICAg
ICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAg
ICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURM
RE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0
LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExU
eXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0
KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0
KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8g
bmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRp
bnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3Ip
KSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZN
b3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRl
eCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVj
dCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlO
YW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpz
Q2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVj
dCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwor
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAo
dW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBp
IDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaSkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+
d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1l
cy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAg
QmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
cywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3Rh
dGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMjA1LDcgKzIyNCw3IEBAIGJvb2wgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVy
biBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFBy
b3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwg
Ym9vbCBzaG91bGRUaHJvdykKQEAgLTIyMSw3ICsyNDAsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlclRocm93aW5nCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgp
OworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgp
OwogICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRl
cm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhp
c09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2Jq
ZWN0KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpKSkgewpAQCAtMjMyLDcgKzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0g
ICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hv
dWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwg
aW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0
IFByb3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93
KQpAQCAtMjUyLDcgKzI3MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhy
b3dpbmcKIAogICAgIGlmICghcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKICAgICAgICAgUHJv
cGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAgIGlmICgh
SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eURlc2NyaXB0b3IuaXNEYXRh
RGVzY3JpcHRvcigpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAt
MjY1LDcgKzI4NCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcK
IAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0
eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0
cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICBy
ZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRK
U1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3Ry
dWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0
eU5hbWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZElu
ZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAK
ICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0
ZXJXaXRoSWRlbnRpZmllci5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTQ0LDQ4
ICsxNDUsNjYgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4
KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52
YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8g
aW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAo
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09i
amVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYg
anNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1l
KSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFvcHRpb25hbEluZGV4ICYmIHRo
aXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9s
KCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYg
KCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsK
KyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAgICAg
ICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewor
ICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNP
YmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
b2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBn
ZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAt
PiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYg
KCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJu
IHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5
cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNz
VmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1
ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1
ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBp
bmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwog
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBp
ZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3Rh
dGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOworICAgIGlmIChMSUtFTFko
aW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pT
PElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkp
OworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwor
ICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGlu
ZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8g
Z2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkg
LT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5
cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlm
ICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVy
biB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExU
eXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vz
c1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlz
T2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFs
dWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFs
dWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0
eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJu
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4
LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0
YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1v
ZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhp
c09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpOwogICAgIGZvciAoYXV0
byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5
TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmlu
ZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9
CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMjEz
LDcgKzIzMiw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4KICAg
ICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3Bl
cnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25l
ZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIyOSw3ICsyNDgs
NyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVuCiAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09i
amVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAg
IEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAg
ICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+Z2V0
UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkgewpAQCAtMjQwLDcgKzI1
OSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4KICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwg
c3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6
cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAK
IGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmRlZmluZU93
blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlw
dG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjYwLDcgKzI3OSw3IEBAIGJvb2wgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW4KIAogICAgIGlmICghcHJvcGVydHlOYW1lLmlzU3lt
Ym9sKCkpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0
eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgIGlmICghQmFz
ZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKSB7CisgICAgICAgIGlmICghSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaWYgKCFwcm9w
ZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKQogICAgICAgICAgICAgICAgIHJldHVy
biBmYWxzZTsKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoc3RhdGUtPnZtKCkpOwpAQCAtMjczLDcgKzI5Miw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJ
bmRleGVkU2V0dGVyV2l0aElkZW4KIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0
eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlw
dG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJv
cGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3Is
IHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRU
aHJvdyk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVy
V2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlm
aWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4MDU2
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEzNSw1NCArMTM1LDU4
IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpnZXQKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcio+KG9i
amVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmlu
ZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBw
cm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1w
bGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFw
cGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
OworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAg
ICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBl
IHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJv
cGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4o
KnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAg
ICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1l
ZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBS
ZWFkT25seSwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3Rv
ID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2Jq
ZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJv
cGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3Qt
PmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAg
ICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01T
dHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0g
ICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFs
c2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lk
ZW50aWZpZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmll
cio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBp
bmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShz
dGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkp
IHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShw
cm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJ
RExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVt
KSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRl
cklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1
dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVu
YW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJl
c3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21p
Y1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051
bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5
cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21O
dWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsK
KyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8
T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwg
Z2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRo
aXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAog
dm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBw
cm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1l
cygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0
YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAog
Ym9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmRlbGV0ZVByb3BlcnR5KEpTQ2Vs
bCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsK
ICAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50
aWZpZXIqPihjZWxsKTsKICAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7Ci0g
ICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lKSkgeworICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRl
QnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAg
ICAgcmV0dXJuIGltcGwuZGVsZXRlTmFtZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGNl
bGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJv
cGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5MCwxMCArMTk0LDEwIEBAIGJv
b2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpkZWwKICAgICBhdXRvJiB0aGlzT2Jq
ZWN0ID0gKmpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIqPihjZWxsKTsKICAg
ICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CiAgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKGlzVmlzaWJsZU5h
bWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewor
ICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3Rh
dGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgcmV0dXJuIGltcGwuZGVs
ZXRlTmFtZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAg
ICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwg
aW5kZXgpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGws
IHN0YXRlLCBpbmRleCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkRGVsZXRlck5v
SWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzUsNTEgKzEzNSw1NSBA
QCBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uCiB7CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+
KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZv
KCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0
cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0
byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisg
ICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25U
eXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVk
UHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpO
bz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgewor
ICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShu
YW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHBy
b3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlz
T2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwg
cHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmpl
Y3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsK
LSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9w
ZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExE
T01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7
Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJU
aHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90
KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhy
b3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZv
KCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0g
ICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAg
ICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVu
Y3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpv
cHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVy
SURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRy
YWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVO
YW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pT
PElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOwor
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwg
c2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246Omdl
dE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJv
cGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb24qPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5m
bygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6Omdl
dE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUp
OworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgYXV0byYgdGhpc09iamVjdCA9ICpqc0Nh
c3Q8SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsKICAgICBhdXRv
JiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7Ci0gICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJv
cGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgeworICAgIGlm
IChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRo
aXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBpbXBsLmRl
bGV0ZU5hbWVkUHJvcGVydHkocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAg
ICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMTg5LDcgKzE5
Myw3IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24KIAogICAgICAg
ICByZXR1cm4gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgIH0KLSAgICByZXR1cm4g
QmFzZTo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0
dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsK
IH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVsZXRlUHJv
cGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5k
ZXgpCkBAIC0xOTcsNyArMjAxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbgogICAgIGF1dG8mIHRoaXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRl
clRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qu
d3JhcHBlZCgpOwogICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaW5kZXgpOwotICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUs
IHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUpKSB7CiAgICAgICAgIGF1dG8gcmVzdWx0ID0gaW1wbC5kZWxldGVOYW1lZFByb3BlcnR5KHBy
b3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgICAgICBpZiAocmVzdWx0Lmhh
c0V4Y2VwdGlvbigpKSB7CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTIwNyw3ICsyMTEsNyBAQCBib29sIEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uCiAKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxl
YXNlUmV0dXJuVmFsdWUoKTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5
QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7CiB9CiAKIEVuY29kZWRKU1ZhbHVl
IGpzVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRl
KiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJl
dmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9K
Uy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTE0MSw1NSArMTQxLDU5IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6
OmcKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldp
dGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlz
T2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExU
eXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0
aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBH
ZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFs
dWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJ
bXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAg
aWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJy
aWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRl
ckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0
YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAg
ICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1By
b3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUu
aXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAg
ICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAg
fQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1l
ID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5j
bGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0g
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5k
ZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBn
ZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAt
PiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYg
KCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJu
IHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5
cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNz
VmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1
ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1
ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVl
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUs
IGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmll
cjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRl
LCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUp
CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SWRlbnRpZmllcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlz
T2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBp
bmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBl
ZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQo
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6
Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9k
ZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50
aWZpZXI6OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2Fz
dDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGF1dG8mIGlt
cGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0
eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlz
VmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09i
amVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBpbXBsLm5hbWVkRGVsZXRlcihwcm9wZXJ0
eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
fQotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlO
YW1lKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVy
OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1
bnNpZ25lZCBpbmRleCkKQEAgLTE5NywxMSArMjAxLDExIEBAIGJvb2wgSlNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXI6OmQKICAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKTsKICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxz
ZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJs
ZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lKSkgewogICAgICAgICBpbXBsLm5hbWVkRGVsZXRlcihwcm9wZXJ0eU5hbWVU
b1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAg
IHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwg
aW5kZXgpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRl
bnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyPjo6
Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzcsNDggKzEzNyw2NiBA
QCBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyCiB7CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcio+
KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZv
KCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsK
LSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFs
SW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25s
eSwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0o
aW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQot
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0
UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpT
T2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAg
ICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFvcHRpb25hbEluZGV4ICYmIHRoaXNPYmplY3Qt
PmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAg
ICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01T
dHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Cisg
ICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAg
aWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAg
ICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBh
dXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5h
bWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRp
b25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFt
ZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAg
ICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVy
SURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBh
Y2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAq
dGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5
LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwg
dmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNp
Z25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIqPihvYmplY3QpOwog
ICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBp
ZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmlu
Zz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKKyAgICBpZiAo
TElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwg
dGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVl
ID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0o
aW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6
ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJp
bmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8g
cHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6Oklt
cGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3Jh
cHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
KTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAg
ICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07Cisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFBy
b3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+
KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAg
ICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFt
ZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
UmVhZE9ubHksIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRl
eCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNv
dW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAg
ICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpOwogICAg
IGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRl
ZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVy
dHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywg
bW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmRl
bGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1l
IHByb3BlcnR5TmFtZSkKQEAgLTE4NywxMCArMjA1LDEwIEBAIGJvb2wgSlNUZXN0TmFtZWREZWxl
dGVyV2l0aEluZGV4ZWRHZXR0ZXIKICAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVk
KCk7CiAgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpCiAgICAg
ICAgIHJldHVybiAhaW1wbC5pc1N1cHBvcnRlZFByb3BlcnR5SW5kZXgoaW5kZXgudmFsdWUoKSk7
Ci0gICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lKSkgeworICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJy
aWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAg
ICAgICAgcmV0dXJuIGltcGwuZGVsZXRlTmFtZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpKTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5
KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFt
ZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4KQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgwNTYp
CisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRT
ZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAj
aW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZp
ZXIuaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAi
SlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFi
bGUuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKQEAgLTEzNCw0NCArMTM1LDQ4IEBAIGJv
b2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldE8KIHsKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAg
aWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAg
IGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5
TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5u
YW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAg
ICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAg
IHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0
ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9
IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUs
ICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1
dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVy
dHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVl
KTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3Qt
PmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2Fz
dDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9
PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRl
bSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxW
YWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0
b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25l
ZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAo
dGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1
ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pT
PElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAg
YXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlO
YW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0
aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5h
bWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAg
ICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAg
cmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRl
cklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJl
dHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0g
YWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwg
KnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0
byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0
eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUp
OworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwg
aW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFBy
b3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7
CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3Vw
cG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlm
aWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Q
cm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAg
ICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0x
OTEsNyArMTk2LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0KAog
ICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJv
cGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0
QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBK
U1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMTk5LDcgKzIwNCw3IEBAIGJvb2wg
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1dEIKICAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogCi0gICAgSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAg
UHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0
aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0
LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAm
JiBhc09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpKSB7CkBAIC0yMTAsNyArMjE1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5v
SWRlbnRpZmllcjo6cHV0QgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1
cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJv
dyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwg
dmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRp
Zmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBw
cm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMjAsNyArMjI1LDcgQEAg
Ym9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaQogCiAgICAgaWYgKCFwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNP
YmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAg
ICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAg
ICAgICBpZiAoIXByb3BlcnR5RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVD
TEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yMzMsNyArMjM4LDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6ZGVmaQogCiAgICAgUHJvcGVydHlEZXNjcmlw
dG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQ
cm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNl
OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3Bl
cnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5l
T3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2Ny
aXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1
ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlzaW9uIDIxODA1NikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb24uaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5j
bHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0
cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKQEAgLTEzNCw0NCArMTM1LDQ4
IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24q
PihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5m
bygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01T
dHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1
dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qu
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQor
ICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9u
VHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1l
ZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6
Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsK
KyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUo
bmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0g
dGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0
KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVy
dHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNs
YXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAg
ICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5h
bWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJp
bmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAg
IHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b246OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24q
PihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5m
bygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3Rh
dGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7
Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJv
cGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURM
RE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAg
ICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUg
PSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNP
YmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRo
aXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShy
ZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxl
bWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShy
ZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAo
YXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVC
dWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVu
Y3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUs
IFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAg
cmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUs
IGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMs
IEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7Ci0gICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlO
YW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAg
ICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJv
cGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5
TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNU
ZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0
UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0xOTEsNyArMTk2LDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOgogICAgICAgICB9CiAgICAgfQogCi0g
ICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9v
bCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpwdXRCeUluZGV4KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJv
b2wgc2hvdWxkVGhyb3cpCkBAIC0xOTksNyArMjA0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uOgogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKIAotICAgIElkZW50aWZpZXIgcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xv
dCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZN
SW5xdWlyeSB9OwogICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90
eXBlRGlyZWN0KCk7CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3Qo
cHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkg
ewpAQCAtMjEwLDcgKzIxNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbjoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1
dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJl
dHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91
bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6
ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJv
cGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0
eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMjAsNyArMjI1LDcgQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOgogCiAgICAgaWYgKCFwcm9wZXJ0eU5h
bWUuaXNTeW1ib2woKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3Qs
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAg
aWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBp
ZiAoIXByb3BlcnR5RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yMzMsNyArMjM4LDcgQEAgYm9vbCBKU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOgogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5l
d1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0
eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZp
bmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVz
Y3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJv
cGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3Is
IHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4MDU2KQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAi
Y29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5oIgog
CisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJp
bmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgog
I2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTQwLDQ0ICsxNDEsNDggQEAgYm9vbCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZQogewogICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChC
YXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwg
c2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRv
IGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUp
IC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25U
eXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJ
dGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBp
ZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1
cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURM
VHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nl
c3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhp
c09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZh
bHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZh
bHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQ
cm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNP
YmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5m
bygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5n
KHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUo
aXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJ
RExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9
CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlT
bG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBp
bmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIg
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0
aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0g
dGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVl
KGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8
SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBh
dXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5h
bWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRp
b25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFt
ZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAg
ICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICBy
ZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVy
SURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBh
Y2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAq
dGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5
LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6
Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVu
dGlmaWVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmpl
Y3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8o
KSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCku
c3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
KyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkK
QEAgLTE5Nyw3ICsyMDIsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6
OnB1CiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVy
biBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBp
bmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIwNSw3ICsyMTAsNyBA
QCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1CiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogCi0g
ICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRl
eCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRl
eCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6Oklu
dGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0
aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNP
YmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMTYsNyArMjIxLDcgQEAgYm9vbCBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyOjpwdQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAK
LSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBz
aG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRl
LCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURl
c2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIyNiw3
ICsyMzEsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmRlCiAKICAg
ICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBz
bG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5x
dWlyeSB9OwotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICBpZiAoIUpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkp
IHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3Io
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTIzOSw3ICsyNDQs
NyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmRlCiAKICAgICBQcm9w
ZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9y
OwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAg
cmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1By
b3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBK
U1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhP
dmVycmlkZUJ1aWx0aW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5j
cHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuaCIKIAorI2luY2x1ZGUgIkpT
RE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5j
bHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RP
TUNvbnZlcnQuaCIKQEAgLTEzNCw0MCArMTM1LDQ4IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoT3ZlcnJpZGVCdWlsdGkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAodGhpc09iamVj
dC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewot
ICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERP
TVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAg
ICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVu
Y3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpv
cHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVy
SURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRy
YWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVO
YW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsK
KyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsK
IH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVu
c2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0g
ICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRl
eCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAg
ICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFt
ZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmlu
Zzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9N
U3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBh
dXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0
LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkK
KyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlv
blR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9
OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFt
ZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6
Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkg
eworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92
ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgs
IHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChv
YmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoT3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09C
SkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5h
bWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9w
ZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlO
YW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQ
dXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTE4Myw3ICsxOTIsNyBAQCBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpCiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpw
dXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xv
dCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluczo6cHV0
QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBK
U1ZhbHVlIHZhbHVlLCBib29sKQpAQCAtMTkxLDcgKzIwMCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGkKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMqPihjZWxsKTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CiAKLSAgICBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRv
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKICAgICBhdXRv
IG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJpbmc+KCpzdGF0ZSwgdmFsdWUpOwogICAg
IFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgdHJ1ZSk7CkBAIC0yMTYsNyArMjI1LDcg
QEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aQogCiAgICAgUHJvcGVy
dHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsK
ICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJl
dHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVj
dDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9w
ZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0
TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluc0NvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXMuY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgi
CiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuaCIK
IAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01B
dHRyaWJ1dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgpAQCAtMTU4LDQ0ICsxNTksNDggQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcAogewogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqPihv
YmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJp
bmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8g
cHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6Oklt
cGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3Jh
cHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
KTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAg
ICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07Cisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFBy
b3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+
KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAg
ICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFt
ZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
MCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhp
c09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkg
JiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlO
YW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNz
SW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAg
YXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6
OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllcyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlz
T2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9
PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5h
bWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAg
ICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0
ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0
dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAo
YXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlw
ZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRv
bWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6Omlz
TnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURM
VHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJv
bU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0
eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1l
LCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQg
SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OmdldE93blByb3BlcnR5
TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJy
YXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXMqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsK
ICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBw
b3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blBy
b3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAg
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5
U2xvdCkKQEAgLTIxNSw3ICsyMjAsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9y
Z2FibGVQcm9wCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAg
IHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBA
IC0yMjMsNyArMjI4LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3BlcnRpZXMqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRo
aXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsK
ICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgp
OwogICAgIGlmICghKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSkt
PmdldFByb3BlcnR5U2xvdChzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIzNCw3
ICsyMzksNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiAgICAg
ICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNl
bGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmpl
Y3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwog
fQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzOjpkZWZp
bmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVz
Y3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTI1MCw3ICsyNTUsNyBAQCBzdGF0aWMgYm9v
bCBpc1VuZm9yZ2VhYmxlUHJvcGVydHlOYW1lKFByCiAKICAgICAgICAgaWYgKCFpc1VuZm9yZ2Vh
YmxlUHJvcGVydHlOYW1lKHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgICAgIFByb3BlcnR5U2xv
dCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZN
SW5xdWlyeSB9OwotICAgICAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
c09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgICAgIGlmICgh
SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkgewogICAgICAgICAgICAgICAgIGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlz
RGF0YURlc2NyaXB0b3IoKSkKICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUt
PnZtKCkpOwpAQCAtMjY0LDcgKzI2OSw3IEBAIHN0YXRpYyBib29sIGlzVW5mb3JnZWFibGVQcm9w
ZXJ0eU5hbWUoUHIKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0
b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENv
bmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRo
cm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9
CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9w
ZXJ0aWVzKiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXM+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMu
Y3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVy
cmlkZUJ1aWx0aW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1
ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQ
cm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFj
dE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
LmgiCkBAIC0xNTgsNDAgKzE1OSw0OCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9y
Z2FibGVQcm9wCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMqPihvYmplY3Qp
OwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAg
ICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUu
aXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAg
ICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwg
aXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAg
aWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAg
IGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5
TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5u
YW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAg
ICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAg
IHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0
ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9
IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRl
LCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBh
dXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3Bl
cnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1
ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKKyAgICB9CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyo+KG9i
amVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwg
aW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAg
ICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01T
dHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElE
TERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVj
dCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURM
VHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09i
amVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3Vs
dCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50
YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3Vs
dCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRv
IG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0
aW5zOjpZZXM+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rv
cikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdU
Rk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0
dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGlu
ZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJv
cGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5h
bWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJv
cGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRo
aXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHBy
b3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFt
ZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluczo6cHV0KEpT
Q2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwg
SlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0yMDcs
NyArMjE2LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcAogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJl
dHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9y
Z2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluczo6cHV0QnlJbmRleChKU0NlbGwqIGNl
bGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29s
KQpAQCAtMjE1LDcgKzIyNCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3AKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyo+KGNlbGwpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKIAotICAgIElkZW50
aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAg
IGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAg
IGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwogICAg
IGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKnN0YXRlLCB2YWx1ZSk7
CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsKQEAgLTI0Nyw3ICsy
NTYsNyBAQCBzdGF0aWMgYm9vbCBpc1VuZm9yZ2VhYmxlUHJvcGVydHlOYW1lKFByCiAKICAgICBQ
cm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlw
dG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0g
ICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpT
T2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5l
d1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGlu
ZSBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVp
bHRpbnMqIElETEF0dHJpYnV0ZTxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVy
dGllc0FuZE92ZXJyaWRlQnVpbHRpbnM+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUsIEVuY29kZWRK
U1ZhbHVlIHRoaXNWYWx1ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAJKHJldmlzaW9uIDIxODA1NikKKysr
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQzLDM5ICsxNDMsMzkgQEAgdm9pZCBKU1Rlc3ROb2RlUHJvdG90
eXBlOjpmaW5pc2hDcmVhdGlvbgogICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICBy
ZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE5vZGVQcm90b3R5cGVUYWJsZVZhbHVlcywg
KnRoaXMpOwogICAgIGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAg
ICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0s
IHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iiks
IHN0cmxlbigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IikpOworICAgICAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpLCBzdHJsZW4oImNhbGN1bGF0ZVNlY3Jl
dFJlc3VsdCIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZt
LCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBK
U09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMo
KSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVD
b250ZXh0KCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJnZXRTZWNy
ZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0U2VjcmV0Qm9vbGVhbiIpKTsKKyAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJnZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0U2VjcmV0Qm9v
bGVhbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwg
cHJvcGVydHlOYW1lKTsKICAgICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAo
IShqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1
dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJl
czo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSwg
c3RybGVuKCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSk7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVz
dEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogICAgIGlm
ICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVu
YWJsZWQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVudHJpZXMi
KSwgc3RybGVuKCJlbnRyaWVzIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVu
dHJpZXMiKSwgc3RybGVuKCJlbnRyaWVzIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIVJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkp
IHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJrZXlzIiksIHN0cmxlbigi
a2V5cyIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJrZXlzIiksIHN0cmxlbigi
a2V5cyIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwg
cHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpz
aGFyZWRGZWF0dXJlcygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZp
ZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigidmFsdWVzIiksIHN0cmxlbigidmFsdWVzIikpOworICAgICAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInZhbHVlcyIpLCBzdHJsZW4oInZhbHVlcyIpKTsKICAg
ICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1l
KTsKICAgICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiZm9yRWFjaCIpLCBzdHJsZW4oImZvckVhY2giKSk7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiZm9yRWFjaCIpLCBzdHJsZW4oImZvckVhY2giKSk7CiAgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAg
fQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9i
ai5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE9iai5jcHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0x
ODY3LDQxICsxODY3LDQxIEBAIHZvaWQgSlNUZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlv
bigKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdE9ialByb3RvdHlwZVRhYmxl
VmFsdWVzLCAqdGhpcyk7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIVJ1bnRp
bWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVkKCkp
IHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3Ry
aW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1l
T3BlcmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpKTsKKyAgICAg
ICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIiksIHN0
cmxlbigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpKTsKICAgICAgICAgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVD
b25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xv
YmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAjZW5kaWYK
ICAgICBpZiAoISh3b3JsZEZvckRPTU9iamVjdCh0aGlzKS5zb21lV29ybGQoKSAmJiBSdW50aW1l
RW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSkg
ewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRJblNwZWNpZmlj
V29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIiksIHN0cmxlbigiZW5hYmxlZEluU3BlY2lm
aWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKSk7CisgICAgICAgIGF1dG8gcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJs
ZWQiKSwgc3RybGVuKCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5h
YmxlZCIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09i
amVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwg
cHJvcGVydHlOYW1lKTsKICAgICB9CiAgICAgaWYgKCF3b3JsZEZvckRPTU9iamVjdCh0aGlzKS5z
b21lV29ybGQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIndvcmxk
U3BlY2lmaWNNZXRob2QiKSwgc3RybGVuKCJ3b3JsZFNwZWNpZmljTWV0aG9kIikpOworICAgICAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVy
cHJldF9jYXN0PGNvbnN0IExDaGFyKj4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSwgc3RybGVuKCJ3
b3JsZFNwZWNpZmljTWV0aG9kIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2Nv
cGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7
CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+
Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RP
TUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgp
LT5pc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpLCBzdHJsZW4oImNhbGN1bGF0ZVNlY3JldFJlc3Vs
dCIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxhdGVTZWNyZXRSZXN1
bHQiKSwgc3RybGVuKCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7CiAgICAgICAgIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdu
b3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAg
IGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgIElkZW50aWZp
ZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiZ2V0U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oImdldFNlY3Jl
dEJvb2xlYW4iKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZ2V0U2VjcmV0Qm9v
bGVhbiIpLCBzdHJsZW4oImdldFNlY3JldEJvb2xlYW4iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQ
cm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3Jl
Q29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGds
b2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2lmIEVO
QUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCEoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4o
Z2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4
dCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1
cmVFbmFibGVkKCkpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigidGVz
dEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVzdEZlYXR1cmVHZXRTZWNyZXRC
b29sZWFuIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInRlc3RGZWF0dXJlR2V0
U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpKTsK
ICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlO
YW1lKTsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICgh
KFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFi
bGVkKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0RmVh
dHVyZTFFbmFibGVkKCkpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
ZW5hYmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVBdHRy
aWJ1dGUiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEF0UnVudGlt
ZUF0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKSk7CiAgICAg
ICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3Bl
cnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7
CiAgICAgfQpAQCAtMTkxMCwxNCArMTkxMCwxNCBAQCB2b2lkIEpTVGVzdE9ialByb3RvdHlwZTo6
ZmluaXNoQ3JlYXRpb24oCiAgICAgQVNTRVJUKCFjb250ZXh0IHx8IGNvbnRleHQtPmlzRG9jdW1l
bnQoKSk7CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIWNvbnRleHQgfHwgIWRv
d25jYXN0PERvY3VtZW50PigqY29udGV4dCkuc2V0dGluZ3MoKS50ZXN0U2V0dGluZ0VuYWJsZWQo
KSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRp
bmdPcGVyYXRpb24iKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIikpOworICAg
ICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iKSwg
c3RybGVuKCJlbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIikpOwogICAgICAgICBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9y
ZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBn
bG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgog
I2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAgaWYgKCFjb250ZXh0IHx8ICFkb3duY2FzdDxE
b2N1bWVudD4oKmNvbnRleHQpLnNldHRpbmdzKCkudGVzdFNldHRpbmdFbmFibGVkKCkpIHsKLSAg
ICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2
bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQnlTZXR0aW5nQXR0cmli
dXRlIiksIHN0cmxlbigiZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpKTsKKyAgICAgICAgYXV0
byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRf
Y2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIiksIHN0cmxlbigi
ZW5hYmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1
cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2Jq
ZWN0Lmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CkBAIC0xOTcxLDM1ICsxOTcx
LDM3IEBAIGJvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmoKIHsKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE9iaio+KG9iamVjdCk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9u
YWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRl
eCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExOdWxsYWJsZTxJ
RExET01TdHJpbmc+Pigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5udWxsYWJsZVN0cmlu
Z1NwZWNpYWxNZXRob2QoaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChh
dXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRl
eC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICBhdXRvIHZhbHVlID0gdG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+Pigqc3RhdGUsIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5udWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2QoaW5kZXgudmFs
dWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwg
dmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9Ci0gICAg
aWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0T2JqOjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4
LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3RPYmoqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRP
bmx5LCB0b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpzdGF0ZSwgdGhpc09iamVjdC0+
d3JhcHBlZCgpLm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChpbmRleCkpKTsKLSAgICAgICAg
cmV0dXJuIHRydWU7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7
CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewor
ICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4o
KnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9k
KGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5
LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAg
ICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0
ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0T2Jq
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkK
IHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE9iaio+KG9iamVjdCk7Ci0g
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291
bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBzdGF0aWMgaW5saW5l
IEVuY29kZWRKU1ZhbHVlIGNhbGxKU1Rlc3RPYmoxKEV4ZWNTdGF0ZSogc3RhdGUpCkluZGV4OiBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWls
dGlucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCShyZXZpc2lvbiAyMTgwNTYpCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWls
dGlucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25m
aWcuaCIKICNpbmNsdWRlICJKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmgiCiAKKyNpbmNsdWRlICJK
U0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2lu
Y2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNE
T01Db252ZXJ0LmgiCkBAIC0xNDEsNDAgKzE0Miw0OCBAQCBib29sIEpTVGVzdE92ZXJyaWRlQnVp
bHRpbnM6OmdldE93blByb3BlCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygp
ID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBp
dGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21p
Y1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExJbnRlcmZhY2U8Tm9kZT46
OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIFJlYWRPbmx5LCB0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKnN0YXRlLCAqdGhpc09iamVj
dC0+Z2xvYmFsT2JqZWN0KCksIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9
IElETEludGVyZmFjZTxOb2RlPjsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYg
dGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUg
R2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZh
bHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAg
IGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVy
cmlkZUJ1aWx0aW5zOjpZZXM+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0
dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5v
ZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShuYW1lZFBy
b3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFk
T25seSwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7Cisg
ICAgfQorICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
czo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KG9iamVjdCk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElk
ZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwot
ICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0
byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0
b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExJbnRlcmZhY2U8Tm9k
ZT46OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIFJlYWRPbmx5LCB0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKnN0YXRlLCAqdGhpc09i
amVjdC0+Z2xvYmFsT2JqZWN0KCksIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETEludGVyZmFjZTxOb2RlPjsK
KyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9w
ZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVk
KCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwor
ICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAg
ICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsg
R2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVy
dHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpZZXM+KCpz
dGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAg
ICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2Jq
ZWN0LT5nbG9iYWxPYmplY3QoKSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAg
ICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAg
ICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xv
dEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNs
b3QpOwogfQogCiB2b2lkIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blByb3BlcnR5TmFt
ZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KG9iamVjdCk7Ci0gICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVy
dHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkK
ICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwg
cHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHRlbXBs
YXRlPD4gaW5saW5lIEpTVGVzdE92ZXJyaWRlQnVpbHRpbnMqIElETE9wZXJhdGlvbjxKU1Rlc3RP
dmVycmlkZUJ1aWx0aW5zPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlKQpJbmRleDogU291cmNlL1dl
YkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvZG9t
L0V4Y2VwdGlvbk9yLmgJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2RvbS9F
eGNlcHRpb25Pci5oCSh3b3JraW5nIGNvcHkpCkBAIC00MCw4ICs0MCw5IEBAIHB1YmxpYzoKICAg
ICBib29sIGhhc0V4Y2VwdGlvbigpIGNvbnN0OwogICAgIGNvbnN0IEV4Y2VwdGlvbiYgZXhjZXB0
aW9uKCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uJiYgcmVsZWFzZUV4Y2VwdGlvbigpOworICAgIGNv
bnN0IFJldHVyblR5cGUmIHJldHVyblZhbHVlKCkgY29uc3Q7CiAgICAgUmV0dXJuVHlwZSYmIHJl
bGVhc2VSZXR1cm5WYWx1ZSgpOwotCisgICAgCiBwcml2YXRlOgogICAgIEV4cGVjdGVkPFJldHVy
blR5cGUsIEV4Y2VwdGlvbj4gbV92YWx1ZTsKIH07CkBAIC01NCw4ICs1NSw5IEBAIHB1YmxpYzoK
ICAgICBib29sIGhhc0V4Y2VwdGlvbigpIGNvbnN0OwogICAgIGNvbnN0IEV4Y2VwdGlvbiYgZXhj
ZXB0aW9uKCkgY29uc3Q7CiAgICAgRXhjZXB0aW9uJiYgcmVsZWFzZUV4Y2VwdGlvbigpOworICAg
IGNvbnN0IFJldHVyblJlZmVyZW5jZVR5cGUmIHJldHVyblZhbHVlKCkgY29uc3Q7CiAgICAgUmV0
dXJuUmVmZXJlbmNlVHlwZSYgcmVsZWFzZVJldHVyblZhbHVlKCk7Ci0KKyAgICAKIHByaXZhdGU6
CiAgICAgRXhjZXB0aW9uT3I8UmV0dXJuUmVmZXJlbmNlVHlwZSo+IG1fdmFsdWU7CiB9OwpAQCAt
OTUsMTQgKzk3LDE5IEBAIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBib28K
ICAgICByZXR1cm4gIW1fdmFsdWUuaGFzVmFsdWUoKTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUg
UmV0dXJuVHlwZT4gaW5saW5lIGNvbnN0IEV4Y2VwdGlvbiYgRXhjZXB0aW9uT3I8UmV0dXJuVHlw
ZT46OmV4Y2VwdGlvbigpIGNvbnN0Cit7CisgICAgcmV0dXJuIG1fdmFsdWUuZXJyb3IoKTsKK30K
KwogdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIEV4Y2VwdGlvbiYmIEV4Y2Vw
dGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlRXhjZXB0aW9uKCkKIHsKICAgICByZXR1cm4gV1RG
TW92ZShtX3ZhbHVlLmVycm9yKCkpOwogfQogCi10ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBl
PiBpbmxpbmUgY29uc3QgRXhjZXB0aW9uJiBFeGNlcHRpb25PcjxSZXR1cm5UeXBlPjo6ZXhjZXB0
aW9uKCkgY29uc3QKK3RlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBjb25zdCBS
ZXR1cm5UeXBlJiBFeGNlcHRpb25PcjxSZXR1cm5UeXBlPjo6cmV0dXJuVmFsdWUoKSBjb25zdAog
ewotICAgIHJldHVybiBtX3ZhbHVlLmVycm9yKCk7CisgICAgcmV0dXJuIG1fdmFsdWUudmFsdWUo
KTsKIH0KIAogdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIFJldHVyblR5cGUm
JiBFeGNlcHRpb25PcjxSZXR1cm5UeXBlPjo6cmVsZWFzZVJldHVyblZhbHVlKCkKQEAgLTEzNSw2
ICsxNDIsMTEgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuUmVmZXJlbmNlVHlwZT4gaQogICAg
IHJldHVybiBtX3ZhbHVlLnJlbGVhc2VFeGNlcHRpb24oKTsKIH0KIAordGVtcGxhdGU8dHlwZW5h
bWUgUmV0dXJuUmVmZXJlbmNlVHlwZT4gaW5saW5lIGNvbnN0IFJldHVyblJlZmVyZW5jZVR5cGUm
IEV4Y2VwdGlvbk9yPFJldHVyblJlZmVyZW5jZVR5cGUmPjo6cmV0dXJuVmFsdWUoKSBjb25zdAor
eworICAgIHJldHVybiAqbV92YWx1ZS5yZXR1cm5WYWx1ZSgpOworfQorCiB0ZW1wbGF0ZTx0eXBl
bmFtZSBSZXR1cm5SZWZlcmVuY2VUeXBlPiBpbmxpbmUgUmV0dXJuUmVmZXJlbmNlVHlwZSYgRXhj
ZXB0aW9uT3I8UmV0dXJuUmVmZXJlbmNlVHlwZSY+OjpyZWxlYXNlUmV0dXJuVmFsdWUoKQogewog
ICAgIHJldHVybiAqbV92YWx1ZS5yZWxlYXNlUmV0dXJuVmFsdWUoKTsKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudC5jcHAJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNjUsMTEgKzY1LDEz
IEBACiAjaW5jbHVkZSAiRnJhbWVUcmVlLmgiCiAjaW5jbHVkZSAiRnJhbWVWaWV3LmgiCiAjaW5j
bHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKICNp
bmNsdWRlICJIVE1MRG9jdW1lbnRQYXJzZXIuaCIKICNpbmNsdWRlICJIVE1MRWxlbWVudEZhY3Rv
cnkuaCIKICNpbmNsdWRlICJIVE1MRnJhbWVPd25lckVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1M
RnJhbWVTZXRFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTEh0bWxFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MTmFtZXMuaCIKICNpbmNsdWRl
ICJIYXNoVG9vbHMuaCIKICNpbmNsdWRlICJTY3JpcHRDb250cm9sbGVyLmgiCkBAIC0xNzQsMTIg
KzE3NiwxOSBAQCB2b2lkIEhUTUxEb2N1bWVudDo6c2V0VmxpbmtDb2xvcihjb25zdCBTCiAgICAg
ICAgIGJvZHlFbGVtZW50LT5zZXRBdHRyaWJ1dGVXaXRob3V0U3luY2hyb25pemF0aW9uKHZsaW5r
QXR0ciwgdmFsdWUpOwogfQogCit2b2lkIEhUTUxEb2N1bWVudDo6Y2xlYXIoKQoreworICAgIC8v
IFBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vYnNvbGV0ZS5odG1s
I2RvbS1kb2N1bWVudC1jbGVhciwgdGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLgorfQorCiB2b2lk
IEhUTUxEb2N1bWVudDo6Y2FwdHVyZUV2ZW50cygpCiB7CisgICAgLy8gUGVyIGh0dHBzOi8vaHRt
bC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29ic29sZXRlLmh0bWwjZG9tLWRvY3VtZW50LWNh
cHR1cmVldmVudHMsIHRoaXMgbWV0aG9kIGRvZXMgbm90aGluZy4KIH0KIAogdm9pZCBIVE1MRG9j
dW1lbnQ6OnJlbGVhc2VFdmVudHMoKQogeworICAgIC8vIFBlciBodHRwczovL2h0bWwuc3BlYy53
aGF0d2cub3JnL211bHRpcGFnZS9vYnNvbGV0ZS5odG1sI2RvbS1kb2N1bWVudC1yZWxlYXNlZXZl
bnRzLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcuCiB9CiAKIFJlZjxEb2N1bWVudFBhcnNlcj4g
SFRNTERvY3VtZW50OjpjcmVhdGVQYXJzZXIoKQpAQCAtMTg3LDEwICsxOTYsNiBAQCBSZWY8RG9j
dW1lbnRQYXJzZXI+IEhUTUxEb2N1bWVudDo6Y3JlYXRlCiAgICAgcmV0dXJuIEhUTUxEb2N1bWVu
dFBhcnNlcjo6Y3JlYXRlKCp0aGlzKTsKIH0KIAotLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KLS8vIG5v
dCBwYXJ0IG9mIHRoZSBET00KLS8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCi0KIHN0YXRpYyB2b2lkIGFk
ZExvY2FsTmFtZVRvU2V0KEhhc2hTZXQ8QXRvbWljU3RyaW5nSW1wbCo+KiBzZXQsIGNvbnN0IFF1
YWxpZmllZE5hbWUmIHFOYW1lKQogewogICAgIHNldC0+YWRkKHFOYW1lLmxvY2FsTmFtZSgpLmlt
cGwoKSk7CkBAIC0yNTEsNiArMjU2LDQ3IEBAIHN0YXRpYyBIYXNoU2V0PEF0b21pY1N0cmluZ0lt
cGwqPiogY3JlYXQKICAgICByZXR1cm4gYXR0clNldDsKIH0KIAorLy8gaHR0cHM6Ly9odG1sLnNw
ZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tLWRvY3VtZW50LW5hbWVkaXRlbQor
c3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxFbGVtZW50PiwgUmVm
UHRyPEhUTUxDb2xsZWN0aW9uPj4+IEhUTUxEb2N1bWVudDo6bmFtZWRJdGVtKGNvbnN0IEF0b21p
Y1N0cmluZyYgbmFtZSkKK3sKKyAgICBpZiAobmFtZS5pc051bGwoKSB8fCAhaGFzRG9jdW1lbnRO
YW1lZEl0ZW0oKm5hbWUuaW1wbCgpKSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKwor
ICAgIGlmIChVTkxJS0VMWShkb2N1bWVudE5hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVtZW50
cygqbmFtZS5pbXBsKCkpKSkgeworICAgICAgICBhdXRvIGNvbGxlY3Rpb24gPSBkb2N1bWVudE5h
bWVkSXRlbXMobmFtZSk7CisgICAgICAgIEFTU0VSVChjb2xsZWN0aW9uLT5sZW5ndGgoKSA+IDEp
OworICAgICAgICByZXR1cm4gVmFyaWFudDxSZWZQdHI8RnJhbWU+LCBSZWZQdHI8RWxlbWVudD4s
IFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+IHsgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPiB7IFdURk1v
dmUoY29sbGVjdGlvbikgfSB9OworICAgIH0KKworICAgIGF1dG8mIGVsZW1lbnQgPSAqZG9jdW1l
bnROYW1lZEl0ZW0oKm5hbWUuaW1wbCgpKTsKKyAgICBpZiAoVU5MSUtFTFkoaXM8SFRNTElGcmFt
ZUVsZW1lbnQ+KGVsZW1lbnQpKSkgeworICAgICAgICBpZiAoYXV0byogZnJhbWUgPSBkb3duY2Fz
dDxIVE1MSUZyYW1lRWxlbWVudD4oZWxlbWVudCkuY29udGVudEZyYW1lKCkpCisgICAgICAgICAg
ICByZXR1cm4gVmFyaWFudDxSZWZQdHI8RnJhbWU+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxI
VE1MQ29sbGVjdGlvbj4+IHsgUmVmUHRyPEZyYW1lPiB7IGZyYW1lIH0gfTsKKyAgICB9CisKKyAg
ICByZXR1cm4gVmFyaWFudDxSZWZQdHI8RnJhbWU+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxI
VE1MQ29sbGVjdGlvbj4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgJmVsZW1lbnQgfSB9OworfQorCitW
ZWN0b3I8QXRvbWljU3RyaW5nPiBIVE1MRG9jdW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMo
KSBjb25zdAoreworICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdl
L2RvbS5odG1sI2RvbS1kb2N1bWVudC1uYW1lZEl0ZW0td2hpY2gKKyAgICAvLworICAgIC8vIC4u
LiBUaGUgc3VwcG9ydGVkIHByb3BlcnR5IG5hbWVzIG9mIGEgRG9jdW1lbnQgb2JqZWN0IGRvY3Vt
ZW50IGF0IGFueSBtb21lbnQgY29uc2lzdCBvZiB0aGUgZm9sbG93aW5nLCBpbgorICAgIC8vIHRy
ZWUgb3JkZXIgYWNjb3JkaW5nIHRvIHRoZSBlbGVtZW50IHRoYXQgY29udHJpYnV0ZWQgdGhlbSwg
aWdub3JpbmcgbGF0ZXIgZHVwbGljYXRlcywgYW5kIHdpdGggdmFsdWVzIGZyb20KKyAgICAvLyBp
ZCBhdHRyaWJ1dGVzIGNvbWluZyBiZWZvcmUgdmFsdWVzIGZyb20gbmFtZSBhdHRyaWJ1dGVzIHdo
ZW4gdGhlIHNhbWUgZWxlbWVudCBjb250cmlidXRlcyBib3RoOgorICAgIC8vCisgICAgLy8gLSB0
aGUgdmFsdWUgb2YgdGhlIG5hbWUgY29udGVudCBhdHRyaWJ1dGUgZm9yIGFsbCBhcHBsZXQsIGV4
cG9zZWQgZW1iZWQsIGZvcm0sIGlmcmFtZSwgaW1nLCBhbmQgZXhwb3NlZAorICAgIC8vICAgb2Jq
ZWN0IGVsZW1lbnRzIHRoYXQgaGF2ZSBhIG5vbi1lbXB0eSBuYW1lIGNvbnRlbnQgYXR0cmlidXRl
IGFuZCBhcmUgaW4gYSBkb2N1bWVudCB0cmVlIHdpdGggZG9jdW1lbnQKKyAgICAvLyAgIGFzIHRo
ZWlyIHJvb3Q7CisgICAgLy8gLSB0aGUgdmFsdWUgb2YgdGhlIGlkIGNvbnRlbnQgYXR0cmlidXRl
IGZvciBhbGwgYXBwbGV0IGFuZCBleHBvc2VkIG9iamVjdCBlbGVtZW50cyB0aGF0IGhhdmUgYSBu
b24tZW1wdHkKKyAgICAvLyAgIGlkIGNvbnRlbnQgYXR0cmlidXRlIGFuZCBhcmUgaW4gYSBkb2N1
bWVudCB0cmVlIHdpdGggZG9jdW1lbnQgYXMgdGhlaXIgcm9vdDsgYW5kCisgICAgLy8gLSB0aGUg
dmFsdWUgb2YgdGhlIGlkIGNvbnRlbnQgYXR0cmlidXRlIGZvciBhbGwgaW1nIGVsZW1lbnRzIHRo
YXQgaGF2ZSBib3RoIGEgbm9uLWVtcHR5IGlkIGNvbnRlbnQgYXR0cmlidXRlCisgICAgLy8gICBh
bmQgYSBub24tZW1wdHkgbmFtZSBjb250ZW50IGF0dHJpYnV0ZSwgYW5kIGFyZSBpbiBhIGRvY3Vt
ZW50IHRyZWUgd2l0aCBkb2N1bWVudCBhcyB0aGVpciByb290LgorCisgICAgLy8gRklYTUU6IElt
cGxlbWVudC4KKyAgICByZXR1cm4geyB9OworfQorCiB2b2lkIEhUTUxEb2N1bWVudDo6YWRkRG9j
dW1lbnROYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nSW1wbCYgbmFtZSwgRWxlbWVudCYgaXRl
bSkKIHsKICAgICBtX2RvY3VtZW50TmFtZWRJdGVtLmFkZChuYW1lLCBpdGVtLCAqdGhpcyk7CkBA
IC0yNzksMTMgKzMyNSw2IEBAIGJvb2wgSFRNTERvY3VtZW50Ojppc0Nhc2VTZW5zaXRpdmVBdHRy
aWIKICAgICByZXR1cm4gIWlzUG9zc2libGVIVE1MQXR0ciB8fCAhaHRtbENhc2VJbnNlbnNpdGl2
ZUF0dHJpYnV0ZXNTZXQtPmNvbnRhaW5zKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkuaW1wbCgp
KTsKIH0KIAotdm9pZCBIVE1MRG9jdW1lbnQ6OmNsZWFyKCkKLXsKLSAgICAvLyBGSVhNRTogVGhp
cyBkb2VzIG5vdGhpbmcsIGFuZCB0aGF0IHNlZW1zIHVubGlrZWx5IHRvIGJlIGNvcnJlY3QuCi0g
ICAgLy8gV2UndmUgbG9uZyBoYWQgYSBjb21tZW50IHNheWluZyB0aGF0IElFIGRvZXNuJ3Qgc3Vw
cG9ydCB0aGlzLgotICAgIC8vIEJ1dCBJIGRvIHNlZSBpdCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBm
b3IgTW96aWxsYS4KLX0KLQogYm9vbCBIVE1MRG9jdW1lbnQ6OmlzRnJhbWVTZXQoKSBjb25zdAog
ewogICAgIGlmICghZG9jdW1lbnRFbGVtZW50KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxEb2N1bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmgJKHJldmlzaW9uIDIxODA1NikKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERv
Y3VtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTUzLDExICs1MywxMyBAQCBwdWJsaWM6CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRMaW5rQ29sb3IoY29uc3QgU3RyaW5nJik7CiAgICAgV0VC
Q09SRV9FWFBPUlQgY29uc3QgQXRvbWljU3RyaW5nJiB2bGlua0NvbG9yKCkgY29uc3Q7CiAgICAg
V0VCQ09SRV9FWFBPUlQgdm9pZCBzZXRWbGlua0NvbG9yKGNvbnN0IFN0cmluZyYpOwotCisgICAg
CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwotCiAgICAgV0VCQ09SRV9FWFBPUlQg
dm9pZCBjYXB0dXJlRXZlbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlRXZl
bnRzKCk7CisgICAgCisgICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJl
ZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4+IG5hbWVkSXRlbShjb25zdCBB
dG9taWNTdHJpbmcmKTsKKyAgICBWZWN0b3I8QXRvbWljU3RyaW5nPiBzdXBwb3J0ZWRQcm9wZXJ0
eU5hbWVzKCkgY29uc3Q7CiAKICAgICBFbGVtZW50KiBkb2N1bWVudE5hbWVkSXRlbShjb25zdCBB
dG9taWNTdHJpbmdJbXBsJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TmFtZWRJdGVt
LmdldEVsZW1lbnRCeURvY3VtZW50TmFtZWRJdGVtKG5hbWUsICp0aGlzKTsgfQogICAgIGJvb2wg
aGFzRG9jdW1lbnROYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nSW1wbCYgbmFtZSkgY29uc3Qg
eyByZXR1cm4gbV9kb2N1bWVudE5hbWVkSXRlbS5jb250YWlucyhuYW1lKTsgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAkocmV2aXNpb24gMjE4MDU2KQorKysgU291cmNl
L1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCSh3b3JraW5nIGNvcHkpCkBAIC0yMCw3ICsy
MCw2IEBACiAKIFsKICAgICBDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3QsCi0gICAgQ3VzdG9tTmFt
ZWRHZXR0ZXIsCiAgICAgQ3VzdG9tVG9KU09iamVjdCwKICAgICBOZXdJbXB1cmVQcm9wZXJ0eUZp
cmVzV2F0Y2hwb2ludHMsCiAgICAgT3ZlcnJpZGVCdWlsdGlucywKQEAgLTI5LDExICsyOCwxMiBA
QAogICAgIHZvaWQgY2xvc2UoKTsKICAgICBbQ0VSZWFjdGlvbnMsIEN1c3RvbV0gdm9pZCB3cml0
ZShvcHRpb25hbCBET01TdHJpbmcgdGV4dCk7CiAgICAgW0NFUmVhY3Rpb25zLCBDdXN0b21dIHZv
aWQgd3JpdGVsbihvcHRpb25hbCBET01TdHJpbmcgdGV4dCk7Ci0KKyAgICAKKyAgICBnZXR0ZXIg
KERPTVdpbmRvd1NoZWxsIG9yIEVsZW1lbnQgb3IgSFRNTENvbGxlY3Rpb24pIChET01TdHJpbmcg
bmFtZSk7CisgICAgCiAgICAgW0N1c3RvbSwgUmVwbGFjZWFibGVdIHJlYWRvbmx5IGF0dHJpYnV0
ZSBIVE1MQWxsQ29sbGVjdGlvbiBhbGw7CiAKICAgICB2b2lkIGNsZWFyKCk7Ci0KICAgICB2b2lk
IGNhcHR1cmVFdmVudHMoKTsKICAgICB2b2lkIHJlbGVhc2VFdmVudHMoKTsKIApJbmRleDogU291
cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCShyZXZpc2lvbiAyMTgw
NTYpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw4IEBACiAjaW5jbHVkZSAiRnJhbWVMb2FkZXIuaCIKICNp
bmNsdWRlICJGcmFtZUxvYWRlckNsaWVudC5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5o
IgorI2luY2x1ZGUgIkhUTUxDb2xsZWN0aW9uLmgiCisjaW5jbHVkZSAiSFRNTEZyYW1lRWxlbWVu
dC5oIgogI2luY2x1ZGUgIkhUTUxOYW1lcy5oIgogI2luY2x1ZGUgIkxlbmd0aC5oIgogI2luY2x1
ZGUgIk1vdXNlRXZlbnQuaCIKQEAgLTIyNiw0ICsyMjgsMjQgQEAgdm9pZCBIVE1MRnJhbWVTZXRF
bGVtZW50OjpyZW1vdmVkRnJvbShDbwogICAgIH0KIH0KIAorRnJhbWUqIEhUTUxGcmFtZVNldEVs
ZW1lbnQ6Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgYXV0byog
ZnJhbWVFbGVtZW50ID0gY2hpbGRyZW4oKS0+bmFtZWRJdGVtKG5hbWUpOworICAgIGlmICghaXM8
SFRNTEZyYW1lRWxlbWVudD4oZnJhbWVFbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7
CisKKyAgICBpZiAoYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxIVE1MRnJhbWVFbGVtZW50Pigq
ZnJhbWVFbGVtZW50KS5jb250ZW50RG9jdW1lbnQoKSkgeworICAgICAgICBpZiAoYXV0byogZnJh
bWUgPSBkb2N1bWVudC0+ZnJhbWUoKSkKKyAgICAgICAgICAgIHJldHVybiBmcmFtZTsKKyAgICB9
CisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKK1ZlY3RvcjxBdG9taWNTdHJpbmc+IEhUTUxGcmFt
ZVNldEVsZW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdAoreworICAgIC8vIE5P
VEU6IExlZnQgZW1wdHkgYXMgbm8gc3BlY2lmaWNhdGlvbiBkZWZpbmVzIHRoaXMgbmFtZWQgZ2V0
dGVyIGFuZCB3ZQorICAgIC8vICAgICAgIGhhdmUgbm90IGhpc3RvcmljYWxseSBleHBvc2VkIHRo
ZXNlIG5hbWVkIGl0ZW1zIGZvciBlbnVtZXJhdGlvbi4KKyAgICByZXR1cm4geyB9OworfQorCiB9
IC8vIG5hbWVzcGFjZSBXZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFt
ZVNldEVsZW1lbnQuaAkocmV2aXNpb24gMjE4MDU2KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9I
VE1MRnJhbWVTZXRFbGVtZW50LmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDYgKzQ1LDkgQEAgcHVi
bGljOgogICAgIGNvbnN0IExlbmd0aCogY29sTGVuZ3RocygpIGNvbnN0IHsgcmV0dXJuIG1fY29s
TGVuZ3Rocy5nZXQoKTsgfQogCiAgICAgc3RhdGljIEhUTUxGcmFtZVNldEVsZW1lbnQqIGZpbmRD
b250YWluaW5nKEVsZW1lbnQqIGRlc2NlbmRhbnQpOworICAgIAorICAgIFZlY3RvcjxBdG9taWNT
dHJpbmc+IHN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKKyAgICBGcmFtZSogbmFtZWRJ
dGVtKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBwcml2YXRlOgogICAgIEhUTUxGcmFtZVNldEVs
ZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJKHJldmlzaW9uIDIxODA1NikKKysr
IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJKHdvcmtpbmcgY29w
eSkKQEAgLTE4LDkgKzE4LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMwMSwgVVNBLgogICov
CiAKLVsKLSAgICBDdXN0b21OYW1lZEdldHRlcgotXSBpbnRlcmZhY2UgSFRNTEZyYW1lU2V0RWxl
bWVudCA6IEhUTUxFbGVtZW50IHsKK2ludGVyZmFjZSBIVE1MRnJhbWVTZXRFbGVtZW50IDogSFRN
TEVsZW1lbnQgewogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5nIGNvbHM7CiAgICAg
W1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcm93czsKIApAQCAtMzcsNiArMzUsMTAgQEAK
ICAgICBbTm90RW51bWVyYWJsZSwgV2luZG93RXZlbnRIYW5kbGVyLCBDb25kaXRpb25hbD1XSUxM
X1JFVkVBTF9FREdFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBvbndlYmtpdHdpbGxy
ZXZlYWxsZWZ0OwogICAgIFtOb3RFbnVtZXJhYmxlLCBXaW5kb3dFdmVudEhhbmRsZXIsIENvbmRp
dGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9u
d2Via2l0d2lsbHJldmVhbHJpZ2h0OwogICAgIFtOb3RFbnVtZXJhYmxlLCBXaW5kb3dFdmVudEhh
bmRsZXIsIENvbmRpdGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9ud2Via2l0d2lsbHJldmVhbHRvcDsKKyAgICAKKyAgICAvLyBOb24tc3RhbmRh
cmQgbmFtZWQgZ2V0dGVyCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGluIHRoZSBzdGFuZGFy
ZCwgY2FuIHdlIHJlbW92ZSB0aGlzPworICAgIGdldHRlciBET01XaW5kb3dTaGVsbCAoRE9NU3Ry
aW5nIG5hbWUpOwogfTsKIAogSFRNTEZyYW1lU2V0RWxlbWVudCBpbXBsZW1lbnRzIFdpbmRvd0V2
ZW50SGFuZGxlcnM7CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTgwNTYpCisrKyBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMCBAQAorMjAxNy0wNi0xMCAgU2Ft
IFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlLWltcGxlbWVu
dCBHZXRPd25Qcm9wZXJ0eVNsb3RbQnlJbmRleF0gZ2VuZXJhdGlvbiB0byBtb3JlIGNsb3NlbHkg
Zm9sbG93IFdlYklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTczMjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBmYXN0L2RvbS9IVE1MRG9jdW1lbnQvZG9jdW1lbnQtc3BlY2lhbC1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVXBkYXRlIHJlc3VsdHMuIFRoZXNlIG5vdyBtYXRjaCBG
aXJlZm94LgorICAgICAgICAKKyAgICAgICAgKiBqcy9kb20vZGZnLXByb3RvdHlwZS1jaGFpbi1j
YWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy00LWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiBqcy9kb20vZGZnLXByb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgt
aW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy01LWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiBqcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1w
cm9wZXJ0eS1zbG90LXRyYXBzLTQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9wcm90
b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJh
cHMtNS1zaG9ydC1leHBlY3RlZC50eHQ6CisgICAgICAgIFRoZXNlIHRlc3RzIG5vdyBmYWlsLCBi
dXQgSSBiZWxpZXZlIGl0IGlzIGEgcHJvZ3Jlc3Npb24sIGFzIHRoZSB0aGVpciBmYWlsdXJlIG1h
dGNoZXMgRmlyZWZveAorICAgICAgICBhbmQgdGhleSB3ZXJlIG9ubHkgcGFzc2luZyBkdWUgdG8g
SFRNTERvY3VtZW50J3MgbmFtZWQgZ2V0dGVyIG5vdCBiZWluZyBpbXBsZW1lbnRlZCBjb3JyZWN0
bHkuCisKIDIwMTctMDYtMDkgIEJyYWR5IEVpZHNvbiAgPGJlaWRzb25AYXBwbGUuY29tPgogCiAg
ICAgICAgIENyYXNoIHdoZW4gSW5kZXhlZERCJ3MgZ2V0QWxsIGlzIHVzZWQgaW5zaWRlIGEgV2Vi
IFdvcmtlci4KSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxEb2N1bWVudC9kb2N1bWVu
dC1zcGVjaWFsLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxEb2N1bWVudC9kb2N1bWVudC1zcGVjaWFsLXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgwNTYpCisrKyBMYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1M
RG9jdW1lbnQvZG9jdW1lbnQtc3BlY2lhbC1wcm9wZXJ0aWVzLWV4cGVjdGVkLnR4dAkod29ya2lu
ZyBjb3B5KQpAQCAtNjgsNiArNjgsNiBAQCBOdW1lcmljIDEyOiB1bmRlZmluZWQKIE51bWVyaWMg
MTM6IHVuZGVmaW5lZAogCiBDb25mbGljdGluZyBpbWFnZTogc2luZ2xlIElNRyhuYW1lKQotQ29u
ZmxpY3RpbmcgaW1hZ2UgKGN1c3RvbSBwcm9wZXJ0eSk6IHNpbmdsZSBJTUcobmFtZSkKLUNvbmZs
aWN0aW5nIGlmcmFtZTogc2luZ2xlIFdJTkRPVworQ29uZmxpY3RpbmcgaW1hZ2UgKGN1c3RvbSBw
cm9wZXJ0eSk6IHNpbmdsZSBPVEhFUgorQ29uZmxpY3RpbmcgaWZyYW1lOiBzaW5nbGUgT1RIRVIK
IApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCShyZXZpc2lvbiAyMTgwNTYpCisr
KyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0x
LDMgKzEsMTMgQEAKKzIwMTctMDYtMTAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKwor
ICAgICAgICBbV2ViSURMXSBSZS1pbXBsZW1lbnQgR2V0T3duUHJvcGVydHlTbG90W0J5SW5kZXhd
IGdlbmVyYXRpb24gdG8gbW9yZSBjbG9zZWx5IGZvbGxvdyBXZWJJREwKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3MzIyOQorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL2h0
bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1mb3JtLWVsZW1lbnQvZm9ybS1uYW1lZGl0ZW0tZXhwZWN0
ZWQudHh0OgorICAgICAgICBVcGRhdGUgcmVzdWx0cyBmb3IgbW9yZSBwYXNzaW5nIHRlc3RzLgor
CiAyMDE3LTA2LTA5ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBBZGQgZmxhZyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNhbmRib3ggdG8gaWZyYW1lIHNhbmRi
b3gKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRt
bC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudC9mb3JtLW5hbWVkaXRlbS1leHBlY3Rl
ZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9ybS1lbGVtZW50L2Zvcm0tbmFtZWRp
dGVtLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE4MDU2KQorKysgTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9ybS1l
bGVtZW50L2Zvcm0tbmFtZWRpdGVtLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMTIs
MTIgKzEyLDkgQEAgUEFTUyBOYW1lZCBpdGVtcyBvdXRzaWRlIHRoZSBmb3JtIHNob3VsZAogUEFT
UyBUaGUgZm9ybSBhdHRyaWJ1dGUgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCBmb3IgbmFt
ZWQgZ2V0dGVycyAoc2luZ2xlIGVsZW1lbnQpIAogUEFTUyBUaGUgZm9ybSBhdHRyaWJ1dGUgc2hv
dWxkIGJlIHRha2VuIGludG8gYWNjb3VudCBmb3IgbmFtZWQgZ2V0dGVycyAobXVsdGlwbGUgZWxl
bWVudHMpIAogUEFTUyBJbnB1dCBzaG91bGQgb25seSBiZSBhIG5hbWVkIHByb3BlcnR5IG9uIHRo
ZSBpbm5lcm1vc3QgZm9ybSB0aGF0IGNvbnRhaW5zIGl0IAotRkFJTCBUcnlpbmcgdG8gc2V0IGFu
IGV4cGFuZG8gdGhhdCB3b3VsZCBzaGFkb3cgYW4gYWxyZWFkeS1leGlzdGluZyBuYW1lZCBwcm9w
ZXJ0eSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rpb24gKCkgewotICAgICJ1c2Ugc3Ry
aWN0IjsKLSAgICBmb3JtWyJsMSJdID0gNTsKLSAgfSIgZGlkIG5vdCB0aHJvdwotRkFJTCBUcnlp
bmcgdG8gc2V0IGFuIGV4cGFuZG8gdGhhdCBzaGFkb3dzIGEgbmFtZWQgcHJvcGVydHkgdGhhdCBn
ZXRzIGFkZGVkIGxhdGVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChudW1iZXIpIDUgYnV0IGdv
dCAob2JqZWN0KSBFbGVtZW50IG5vZGUgPGlucHV0IG5hbWU9Im5ldy1uYW1lIj48L2lucHV0Pgot
RkFJTCBUcnlpbmcgdG8gc2V0IGEgbm9uLWNvbmZpZ3VyYWJsZSBleHBhbmRvIHRoYXQgc2hhZG93
cyBhIG5hbWVkIHByb3BlcnR5IHRoYXQgZ2V0cyBhZGRlZCBsYXRlciBhc3NlcnRfZXF1YWxzOiBl
eHBlY3RlZCAobnVtYmVyKSA1IGJ1dCBnb3QgKG9iamVjdCkgRWxlbWVudCBub2RlIDxpbnB1dCBu
YW1lPSJuZXctbmFtZTIiPjwvaW5wdXQ+CitGQUlMIFRyeWluZyB0byBzZXQgYW4gZXhwYW5kbyB0
aGF0IHdvdWxkIHNoYWRvdyBhbiBhbHJlYWR5LWV4aXN0aW5nIG5hbWVkIHByb3BlcnR5IGFzc2Vy
dF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIEVsZW1lbnQgbm9kZSA8YnV0dG9uIG5hbWU9Imwx
Ij48L2J1dHRvbj4gYnV0IGdvdCAobnVtYmVyKSA1CitQQVNTIFRyeWluZyB0byBzZXQgYW4gZXhw
YW5kbyB0aGF0IHNoYWRvd3MgYSBuYW1lZCBwcm9wZXJ0eSB0aGF0IGdldHMgYWRkZWQgbGF0ZXIg
CitQQVNTIFRyeWluZyB0byBzZXQgYSBub24tY29uZmlndXJhYmxlIGV4cGFuZG8gdGhhdCBzaGFk
b3dzIGEgbmFtZWQgcHJvcGVydHkgdGhhdCBnZXRzIGFkZGVkIGxhdGVyIAogUEFTUyBQYXN0IG5h
bWVzIG1hcCBzaG91bGQgd29yayBjb3JyZWN0bHkgCiAgICAKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vZGZnLXByb3RvdHlwZS1jaGFpbi1j
YWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy00LWV4cGVjdGVk
LnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vZGZnLXByb3RvdHlwZS1jaGFp
bi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy00LWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjE4MDU2KQorKysgTGF5b3V0VGVzdHMvanMvZG9tL2RmZy1wcm90
b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJh
cHMtNC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTQsNyArNCw3IEBAIE9uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEEKIAogCiBQQVNTIHR5cGVvZiBmKCkgaXMg
ImZ1bmN0aW9uIiBvbiBhbGwgaXRlcmF0aW9ucyBpbmNsdWRpbmcgYWZ0ZXIgREZHIHRpZXItdXAu
Ci1QQVNTIHR5cGVvZiBmKCkgaXMgIm9iamVjdCIKK0ZBSUwgdHlwZW9mIGYoKSBzaG91bGQgYmUg
b2JqZWN0LiBXYXMgZnVuY3Rpb24uCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCiAK
IFRFU1QgQ09NUExFVEUKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9kZmctcHJvdG90eXBlLWNo
YWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtZXhw
ZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9kZmctcHJvdG90eXBl
LWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUt
ZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgwNTYpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZGZn
LXByb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xv
dC10cmFwcy01LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAgT24g
c3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiAKIFBBU1MgdHlwZW9mIGYo
KSBpcyAiZnVuY3Rpb24iIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBhZnRlciBERkcgdGll
ci11cC4KLVBBU1MgdHlwZW9mIGYoKSBpcyAib2JqZWN0IgorRkFJTCB0eXBlb2YgZigpIHNob3Vs
ZCBiZSBvYmplY3QuIFdhcyBmdW5jdGlvbi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9tL3Byb3RvdHlwZS1j
aGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy00LWV4
cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNo
YWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTQtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgwNTYpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90
eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBz
LTQtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0zOCwxMSArMzgsMTEgQEAgUEFTUyB0
eXBlb2YgZigpIGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIGYoKSBpcyAiZnVuY3Rpb24iCiBQ
QVNTIHR5cGVvZiBmKCkgaXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2YgZigpIGlzICJmdW5jdGlv
biIKLVBBU1MgdHlwZW9mIGYoKSBpcyAib2JqZWN0IgotUEFTUyB0eXBlb2YgZigpIGlzICJvYmpl
Y3QiCi1QQVNTIHR5cGVvZiBmKCkgaXMgIm9iamVjdCIKLVBBU1MgdHlwZW9mIGYoKSBpcyAib2Jq
ZWN0IgotUEFTUyB0eXBlb2YgZigpIGlzICJvYmplY3QiCitGQUlMIHR5cGVvZiBmKCkgc2hvdWxk
IGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9uLgorRkFJTCB0eXBlb2YgZigpIHNob3VsZCBiZSBvYmpl
Y3QuIFdhcyBmdW5jdGlvbi4KK0ZBSUwgdHlwZW9mIGYoKSBzaG91bGQgYmUgb2JqZWN0LiBXYXMg
ZnVuY3Rpb24uCitGQUlMIHR5cGVvZiBmKCkgc2hvdWxkIGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9u
LgorRkFJTCB0eXBlb2YgZigpIHNob3VsZCBiZSBvYmplY3QuIFdhcyBmdW5jdGlvbi4KIFBBU1Mg
c3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0
VGVzdHMvanMvZG9tL3Byb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24t
cHJvcGVydHktc2xvdC10cmFwcy01LXNob3J0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0
LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtc2hvcnQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAy
MTgwNTYpCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0
aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtc2hvcnQtZXhwZWN0ZWQudHh0
CSh3b3JraW5nIGNvcHkpCkBAIC04LDExICs4LDExIEBAIFBBU1MgdHlwZW9mIGYoKSBpcyAiZnVu
Y3Rpb24iCiBQQVNTIHR5cGVvZiBmKCkgaXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2YgZigpIGlz
ICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIGYoKSBpcyAiZnVuY3Rpb24iCi1QQVNTIHR5cGVvZiBm
KCkgaXMgIm9iamVjdCIKLVBBU1MgdHlwZW9mIGYoKSBpcyAib2JqZWN0IgotUEFTUyB0eXBlb2Yg
ZigpIGlzICJvYmplY3QiCi1QQVNTIHR5cGVvZiBmKCkgaXMgIm9iamVjdCIKLVBBU1MgdHlwZW9m
IGYoKSBpcyAib2JqZWN0IgorRkFJTCB0eXBlb2YgZigpIHNob3VsZCBiZSBvYmplY3QuIFdhcyBm
dW5jdGlvbi4KK0ZBSUwgdHlwZW9mIGYoKSBzaG91bGQgYmUgb2JqZWN0LiBXYXMgZnVuY3Rpb24u
CitGQUlMIHR5cGVvZiBmKCkgc2hvdWxkIGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9uLgorRkFJTCB0
eXBlb2YgZigpIHNob3VsZCBiZSBvYmplY3QuIFdhcyBmdW5jdGlvbi4KK0ZBSUwgdHlwZW9mIGYo
KSBzaG91bGQgYmUgb2JqZWN0LiBXYXMgZnVuY3Rpb24uCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>312583</attachid>
            <date>2017-06-10 17:02:38 -0700</date>
            <delta_ts>2017-06-10 18:56:37 -0700</delta_ts>
            <desc>Archive of layout-test-results from ews123 for ios-simulator-wk2</desc>
            <filename>layout-test-results.zip</filename>
            <type>application/zip</type>
            <size>935447</size>
            <attacher name="Build Bot">buildbot</attacher>
            
              <data encoding="base64">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
leAAhVYhsHClmpBrFCEMG4uGESKOKM8seSidXBOoUV96UNpxINMr3oewJqKWeSxXGpFa4MlB1NQH
isQeQ8uYI9IoIqLVvKzX0oKgkHrFZB81EqUISR/NWg8sb9WVRw2IdIoWBR5zNy26AOHrt65D4sYE
pZhaCIPkD8Hj/YyZdcHj+mKkk31sLWx+FC2d1SqV0qUNux3rjxEmj8FHtMtQ627ExtBojJCxiKSd
C2oD9Ih2UDiRh+jy97AdGwmLTxhpjb/ocfxuf9R0/cms3+m79syvZxtBv+/N765r5+eNfek79qbv
ufeuGtis605P3Wk/UrzQd9zL3A4cdu3e7bWzGb05dhD4h2TXWGXSJep22Hpv3aKpxNbLEYvvtuhc
2HV0t+VgZt+CPFRHnsO/zymPc41nVp8bxSin/YsXrl4Gx3V/+xmPbIys4YS2t9n4Y9vDBeHRxbFj
D+1x2VPn87hcdbYfd/NlPhkl91yfhKtNFN+lWXHYLO3lfTesGrl+ORaaZAzbs/5xbb3kQ2n/sgyK
T/4WT15nk9Yin2wXyc3INsEu94Olmr0qnUO5S9xkqC86jdOx97JVb9vb2mv35v37UrPHrDe0J3b6
/lH1JHfmfY7Pzrvf4nbaj9/5ddm+hm/7i59+LM+7dUNo1nLzNoju+7N+nntm6K9CK21to89WkCfl
3gmH+ej1Gm+KXTJ4iRQ+G87eprw3OI23+SIzG0VbPiyzy2K3Xc/NrHMb9u5jvZ+pgqf4z1t4mYxW
3ZRPDTa/l/1WuG/rI293Ot9dvsjfpN6tsV6cT+ePfft4t73TcfSyH+3fJyvpcD9+ngwlPelqtORJ
R725pmtffNvmr87+7jp7D9sCkWv0JoHvzGzPDntthLRrS/PE24QLx5lK8lUaph32PsuTj/vJG7wv
pGK+5pKeOz3a3JsGfiP07Nbmd4tP/vbDMS+9mR8Fzjs58O3LZZrIb9lw6ZSN1XKyj5SXaric7GJl
ct9sgmEQbS7uZeW9TdjYsdHFpu8HTlBH9xKGQWAfu65bdu1w3mk4F/z0pO9tFc9FaHPnhP819sbH
dGLny3A6NSfRcLRfvNmsKAfZ9tgYnK7S9fU1bOWW619Way+T39WXjv1y5pvwrFZSOt70pf3p6OfB
usMqZzxXpKQwlfDE1d0xanwG7c3lfFyM82LntZdt7mYtoxtdy9Fyslq0eknZmn3k989yHxZpYoWn
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
YW5pbWF0aW9ucy8zZC9jaGFuZ2UtdHJhbnNmb3JtLWluLWVuZC1ldmVudC1zdGRlcnIudHh0VVQJ
AAPJdzxZyXc8WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNk1pD95qixcLBgIqiIfN7oSM
3d1ZdjaJ/fdGrCBY717f9z2Yx3D7Zl5Wq2pdvd7AzmkRqA+3Azn7iEmIA5AA+ejQY8hogQK0nHtQ
2xgdGZ1nR9SzYYuFjlHteNZCFrXHER1HTKp2OnecvCiqew7YkB/miFMRz+SH3Ozvf3tij6o5SUav
DtQmnU6qTjTqjHdJe5w4HUVtRTDLmTeYRjIoRfctXOZwXb4vq01pWmPKBehg/+GyuZP572GX8Neu
NWK16cpFAQ8BgTvIPUKeGCZyDlqEQdAW8NST6WG+6/PZQ7DYUZjzqw9QSwMEFAACAAgAWH7KSh0A
F+f1AAAAHQIAADAAHABhbmltYXRpb25zL0NTU0tleWZyYW1lc1J1bGUtbmFtZS1udWxsLXN0ZGVy
ci50eHRVVAkAA8h3PFnIdzxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2aVSqt9rixYKB
gAriYbM7IWM3O8vOJrX/3ggRBOu91/d9D+Yx3HyYt7JcXhXvd7BxWgSq3f1Azj5jFGIPJEB9cNij
T2iBPDScOlDrEBwZnSZH1Kthi5kOQW140nwStcURHQeMqnI6tRx7UVR17LGmfpgijlmYyS+53j7+
9cTuVX2UhL3aURN1PKoq0qgTPkTd44HjXtRaBJPMvMY4kkHJ2h/hNIfL/LNY6utVYUy+AO3tGS6b
Oon/H3YKz7vK29VNmy8yePII3ELqENKB4UDOQYMwCNoMXjoyHUx3fT978BZb8lN+8QVQSwMECgAA
AAAAWX7KSgAAAAAAAAAAAAAAABsAHABhbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9ucy9VVAkAA8l3
PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFl+ykqbcYZD9AAAAB0CAAAyABwAYW5pbWF0
aW9ucy9mb250LXZhcmlhdGlvbnMvZm9udC1zdHJldGNoLXN0ZGVyci50eHRVVAkAA8l3PFnJdzxZ
dXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2TSWKt9rixYKBgAriYbM7IWM3O8vOJrH/3ggR
BOvd6/u+B/MYbt7N62ZTlMXbLeycFoHqcDeQs08YhdgDCVAfHPboE1ogDw2nDtQ2BEdGp9kR9WLY
YqZDUDueNZ9E7XFExwGjqpxOLcdeFFUde6ypH+aIYxYW8kOu9w+/PbFHVZ8kYa8O1EQdT6qKNOqE
91H3OHE8itqKYJKF1xhHMihZ+y2c53CZf6yL5qpcG5OvQHv7D5fNncR/DzuHl13F9U3Z5qsMHj0C
t5A6hDQxTOQcNAiDoM3guSPTwXzX17MHb7ElP+cXn1BLAwQKAAAAAABZfspKAAAAAAAAAAAAAAAA
BwAcAGNhbnZhcy9VVAkAA8l3PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAFl+ykoAAAAA
AAAAAAAAAAAOABwAY2FudmFzL3BoaWxpcC9VVAkAA8l3PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsD
BAoAAAAAAFl+ykoAAAAAAAAAAAAAAAAUABwAY2FudmFzL3BoaWxpcC90ZXN0cy9VVAkAA8l3PFmp
ezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAFl+ykpNmA+y9AAAAB0CAAAyABwAY2FudmFzL3Bo
aWxpcC90ZXN0cy8yZC5jYW52YXMucmVmZXJlbmNlLXN0ZGVyci50eHRVVAkAA8l3PFnJdzxZdXgL
AAEE9QEAAAQUAAAAzZFNS8QwEIbv/oo5upem24WK3vYDLy5YKKggHtJkSsdNMyGTtu6/t0IFwfXu
9X2eF+ZluHk3r5tNUd683cHeaRGojruBnH3CKMQeSID64LBHn9ACeWg4daC2ITgyOs2OqBfDFjMd
gtrzrPkk6oAjOg4YVeV0ajn2oqjq2GNN/TBHHLOwkB9yfXj47Yk9qfosCXt1pCbqeFZVpFEnvI+6
x4njSdRWBJMsvMY4kkHJ2m/hMofr/GNdrIvb1ph8Bdrbf7hs7iT+e9glvOzKm7Js81UGjx6BW0gd
QpoYJnIOGoRB0Gbw3JHpYL7r69mDt9iSn/OrT1BLAwQKAAAAAABcfspKAAAAAAAAAAAAAAAADAAc
AGNvbXBvc2l0aW5nL1VUCQADz3c8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAWX7KSuLc
Ny3zAAAAHQIAADgAHABjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZpZXctZml4
ZWQtc3RkZXJyLnR4dFVUCQADyXc8Wcl3PFl1eAsAAQT1AQAABBQAAADNkUFLxDAQhe/+ijm6l6Zu
FwVv6y5eXLBQUEE8pMmEjptmQiZt3X9vhQqC693r+74H8xhu381rVa1vNm+3sPNaBOrD3UDePmES
4gAkQH302GPIaIECtJw7UNsYPRmdZ0fUi2GLhY5R7XjWQha1xxE9R0yq9jo7Tr0oqjsO2FA/zBGn
Ii7kh9zsH357Yo+qOUnGXh2oTTqdVJ1o1Bnvk+5x4nQUtRXBLAtvMI1kUAr3LZzncFl+XK03Bitj
yhXoYP/hsrmT+e9h5/CySzt97cpVAY8BgR3kDiFPDBN5Dy3CIGgLeO7IdDDf9fXsIVh0FOb84hNQ
SwMECgAAAAAAWX7KSgAAAAAAAAAAAAAAABYAHABjb21wb3NpdGluZy9hbmltYXRpb24vVVQJAAPJ
dzxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABZfspKfbVKxPUAAAAdAgAAQgAcAGNvbXBv
c2l0aW5nL2FuaW1hdGlvbi9hbmltYXRlZC1jb21wb3NpdGVkLWluc2lkZS1oaWRkZW4tc3RkZXJy
LnR4dFVUCQADyXc8Wcl3PFl1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaSzZtsKXeaosXCwYC
KoiHze6EjN3sLDubxP57I0QQrHev7/sezGO4fjevRbHabN9uYe+0CJTHu56cfcIoxB5IgLrgsEOf
0AJ5qDm1oHYhODI6TY6oF8MWMx2C2vOk+STqgAM6DhhV6XRqOHaiqGzZY0VdP0UcszCTH3J1ePjt
iT2p6iwJO3WkOup4VmWkQSe8j7rDkeNJ1E4Ek8y8wjiQQcmab+Eyh+v8Y7labm8KY/IFaG//4bKp
k/jvYZfwvGuz1usmX2Tw6BG4gdQipJFhJOegRugFbQbPLZkWpru+nt17iw35Kb/6BFBLAwQKAAAA
AABZfspKAAAAAAAAAAAAAAAAHQAcAGNvbXBvc2l0aW5nL2JhY2tncm91bmQtY29sb3IvVVQJAAPK
dzxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABZfspKAabvZfMAAAAdAgAASwAcAGNvbXBv
c2l0aW5nL2JhY2tncm91bmQtY29sb3IvYmFja2dyb3VuZC1jb2xvci1hbHBoYS13aXRoLW9wYWNp
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
ryp4jAjsoAwIZWaYyXvoEUZBW8HzQGaA5a6vZ4/RoqO45BefUEsDBAoAAAAAAGN+ykoAAAAAAAAA
AAAAAAAHABwAY3J5cHRvL1VUCQAD2Xc8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAY37K
SgAAAAAAAAAAAAAAAA4AHABjcnlwdG8vc3VidGxlL1VUCQAD2Xc8Wal7PFl1eAsAAQT1AQAABBQA
AABQSwMECgACAAAAY37KSiXg0wgsAAAALAAAAD4AHABjcnlwdG8vc3VidGxlL3JzYS1nZW5lcmF0
ZS1rZXktbWFsZm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQAD2Xc8Wdl3PFl1eAsAAQT1
AQAABBQAAABDb3VsZCBub3QgZ2VuZXJhdGUgYSBrZXkgcGFpciwgc3RhdHVzIC00MzA0ClBLAwQU
AAIACABjfspKMDu4sUsAAABoAAAAPAAcAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXktbWFs
Zm9ybWVkLXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUCQAD2Xc8Wdl3PFl1eAsAAQT1AQAABBQAAABt
y7ENgDAMRNGeKW4fGlawZEuxgDhyLkRsDw0d9X9/S7+Eht3ujuksMQhRdXpUOaBCgaShBtFHa5E0
XdaP44w3skgFZ6Cln9Z/hgdQSwMECgAAAAAAYX7KSgAAAAAAAAAAAAAAAA8AHABjcnlwdG8vd29y
a2Vycy9VVAkAA9Z3PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAGF+ykoAAAAAAAAAAAAA
AAAWABwAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUCQAD1nc8Wal7PFl1eAsAAQT1AQAABBQAAABQ
SwMECgACAAAAYX7KSiXg0wgsAAAALAAAADEAHABjcnlwdG8vd29ya2Vycy9zdWJ0bGUvcnNhLWdl
bmVyYXRlLWtleS1zdGRlcnIudHh0VVQJAAPWdzxZ1nc8WXV4CwABBPUBAAAEFAAAAENvdWxkIG5v
dCBnZW5lcmF0ZSBhIGtleSBwYWlyLCBzdGF0dXMgLTQzMDQKUEsDBAoAAAAAAFx+ykoAAAAAAAAA
AAAAAAAFABwAY3NzMS9VVAkAA9B3PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAFx+ykoA
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
b4qf/gtQSwMECgAAAAAAeoDKSgAAAAAAAAAAAAAAAAUAHABmYXN0L1VUCQAD2Ho8Wal7PFl1eAsA
AQT1AQAABBQAAABQSwMECgAAAAAAgn7KSgAAAAAAAAAAAAAAAAwAHABmYXN0L2NhbnZhcy9VVAkA
AxR4PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAHx+ykps4H8AjQAAADQBAAAmABwAZmFz
dC9jYW52YXMvY2FudmFzLWxpbmVEYXNoLXN0ZGVyci50eHRVVAkAAwt4PFkLeDxZdXgLAAEE9QEA
AAQUAAAAzY4xCsJAFER7TzEXcDEJW7iITSJCtLOwEIuN+eDC5v+w+Qnq6U08hdXMPIZh6pGRbZBZ
ZzNnLfCQzvi+j2Su1JyCLlIKK7GaiiaK0nezvxVFvs3v2B1SkrR3KI+/1ksvpOfAVPnh6RB48jG0
aOcEn5J/O3hFJD8ohAkUaZlDN86gIbDw+kNJzKr+22dfUEsDBBQAAgAIAIJ+ykrnoCPc8wAAAB0C
AAAnABwAZmFzdC9jYW52YXMvcXVhZHJhdGljQ3VydmVUby1zdGRlcnIudHh0VVQJAAMUeDxZFHg8
WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNm1A0Ftt8WLBQEAF8bDZnZBpd3eWnU1i/70R
IgjWu9f3fQ/mMdwezVtVbW7X73ewc1oE6sP9QM4+YxLiACRAPjr0GDJaoAAt5x7UNkZHRufZEfVq
2GKhY1Q7nrWQRe1xRMcRk6qdzh0nL4rqngM25Ic54lTEhfyQm/3jb0/sSTVnyejVgdqk01nViUad
8SFpjxOnk6itCGZZeINpJINSdN/CZQ7X5cd6U1pTGVOuQAf7D5fNncx/D7uEl12t1TdduSrgKSBw
B7lHyBPDRM5BizAI2gJeejI9zHd9PXsIFjsKc371CVBLAwQKAAAAAACBfspKAAAAAAAAAAAAAAAA
CQAcAGZhc3QvY3NzL1VUCQADEng8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAen7KSuYr
u2D0AAAAHQIAAC4AHABmYXN0L2Nzcy9hdHRyaWJ1dGUtc2VsZWN0b3ItZHluYW1pYy1zdGRlcnIu
dHh0VVQJAAMIeDxZCHg8WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNmlEqbfa4sWCgYAK
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
uh/yAAAAHQIAADEAHABmYXN0L2VuY29kaW5nL2R1bXBBc1RleHQvdXRmLTE2LW5vLWJvbS1zdGRl
cnIudHh0VVQJAAMVeDxZFXg8WXV4CwABBPUBAAAEFAAAAM2RTUvEMBCG7/6KObqXpn6jt3UXLy5Y
KKggHtJkQsdNMyGTtu6/N8IKgut95/g+z8C8DHcf5u2izOX7Hay8FoFmcz+St8+YhDgACdAQPQ4Y
MlqgAB3nHtQyRk9G5+KIejVssdIxqhUXLWRRa5zQc8SkGq+z4zSIoqbngC0NY4k4VXFPfsnt+vGv
J3ar2p1kHNSGuqTTTjWJJp3xIekBZ05bUUsRzLLnLaaJDErlfoTDHE7rz7Pz+taiMfUCdLBH2Kzs
ZP6/2CG873Xjrq5dvajgKSCwg9wj5JlhJu+hQxgFbQUvPZkeyl3fzx6DRUeh5CdfUEsDBBQAAgAI
AIR+ykoBhLJG9AAAAB0CAAAkABwAZmFzdC9lbmNvZGluZy9pbnZhbGlkLXhtbC1zdGRlcnIudHh0
VVQJAAMYeDxZGHg8WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNmmkirfa4sWCgYAK4mGz
OyFjNzvLziax/94IEQTr3ev7vgfzGG7ezWtZrm+u325h57QIVIe7gZx9wijEHkiA+uCwR5/QAnlo
OHWgtiE4MjrNjqgXwxYzHYLa8az5JGqPIzoOGFXldGo59qKo6thjTf0wRxyzsJAfcr1/+O2JPar6
JAl7daAm6nhSVaRRJ7yPuseJ41HUVgSTLLzGOJJBydpv4TyHy/yjKLC8aozJV6C9/YfL5k7iv4ed
w8uuYrPetPkqg0ePwC2kDiFNDBM5Bw3CIGgzeO7IdDDf9fXswVtsyc/5xSdQSwMECgAAAAAAiH7K
SgAAAAAAAAAAAAAAAAwAHABmYXN0L2V2ZW50cy9VVAkAAx94PFmpezxZdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAIh+ykrXOXU29QAAAB0CAAA/ABwAZmFzdC9ldmVudHMvbWVkaWEtZm9jdXMtaW4t
c3RhbmRhbG9uZS1tZWRpYS1kb2N1bWVudC1zdGRlcnIudHh0VVQJAAMfeDxZH3g8WXV4CwABBPUB
AAAEFAAAAM2RQUvEMBCF7/6KObqXpna1ord1Fy8uWCioIB7SZErHTTMhk7buv7dCBcH17vV934N5
DDfv5nW9Lsry7Ra2TotAtb8byNknjELsgQSoDw579AktkIeGUwdqE4Ijo9PsiHoxbDHTIagtz5pP
onY4ouOAUVVOp5ZjL4qqjj3W1A9zxDELC/kh17uH357Yg6qPkrBXe2qijkdVRRp1wvuoe5w4HkRt
RDDJwmuMIxmUrP0WTnM4zz8uiquby8aYfAXa23+4bO4k/nvYKbzsui6Lss1XGTx6BG4hdQhpYpjI
OWgQBkGbwXNHpoP5rq9nD95iS37Ozz4BUEsDBAoAAAAAAI1+ykoAAAAAAAAAAAAAAAALABwAZmFz
dC9mb3Jtcy9VVAkAAyp4PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIl+ykq94PGWqgAA
AOgAAAAzABwAZmFzdC9mb3Jtcy9mb3JtLWFzc29jaWF0ZWQtZWxlbWVudC1jcmFzaC1zdGRlcnIu
dHh0VVQJAAMheDxZIXg8WXV4CwABBPUBAAAEFAAAAH2NvQ6CQBCEe59iaxIu/EqgI2phtKKQglCc
sMAlcIt3i8a3Fw211UwmM98Enp+43t71PfDjLA4yPxGpF0FDk5DzPKIo8X5R/JUDaUbN4ohPHGme
Vl+FYZBEWRokYVyD4zjgVvkttxa5QEuLafBKslW6L/CxoGXolFZ22MJS8XAyhkxWw0tasCsSmEBq
UNqy1A0CdfCfyIPk31qOBmX73i6wFXDuNZm1KnYfUEsDBBQAAgAIAI1+ykpmMt6aoAAAAMwAAAAz
ABwAZmFzdC9mb3Jtcy9pbnRlcmFjdGl2ZS12YWxpZGF0aW9uLWNhbmNlbC1zdGRlcnIudHh0VVQJ
AAMqeDxZKng8WXV4CwABBPUBAAAEFAAAAHWNsQ6CMBQAd7/i+QGYUqRAQ0yIk3ExRmUwDgUf2KS0
TXkGP98ujq6Xyx1naZEwkaQM0lzmXHKx4byEFrujpgvOdH5bi6Hx/p5lPK9kxTMhHtCqYLUdJTRE
OHkCcuADzmgJ6uvhpnHZO0vBGYNBAvsUw/DcloplZcl24CzUJ6NocGGKrz8661na9VFfXtogqN9B
kY4BPYO2Ebkx0nm9+gJQSwMECgAAAAAAiX7KSgAAAAAAAAAAAAAAAAwAHABmYXN0L2ZyYW1lcy9V
VAkAAyJ4PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIl+ykrbCNNCOwAAAD8AAAAvABwA
ZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25lLWZvY3VzLXN0ZGVyci50eHRVVAkAAyJ4PFki
eDxZdXgLAAEE9QEAAAQUAAAAcywpSc0tKFEoyVdIzSssTS1NVUhUKM8vylbIBEoolGdk5qQqQMQz
ixWSUjPz0hUKivKTU4uLU1P0uABQSwMECgAAAAAAjX7KSgAAAAAAAAAAAAAAAAwAHABmYXN0L2lt
YWdlcy9VVAkAAyp4PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAI1+ykohj704MgAAADMA
AAAsABwAZmFzdC9pbWFnZXMvcGRmLWFzLWltYWdlLWNyb3AtYm94LXN0ZGVyci50eHRVVAkAAyp4
PFkqeDxZdXgLAAEE9QEAAAQUAAAAc8tJLEl1SU3OT0m1UkgB0Zl56QqpRUX5RVYKmXnJ+UVFqckl
CimJJYkKyRmpydl6XABQSwMECgAAAAAAjn7KSgAAAAAAAAAAAAAAAAwAHABmYXN0L2xvYWRlci9V
VAkAAyt4PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAIt+ykrbCNNCOwAAAD8AAABSABwA
ZmFzdC9sb2FkZXIvZGlzcGxheS1pbWFnZS11bnNldC1jYW4tYmxvY2staW1hZ2UtYW5kLWNhbi1y
ZWxvYWQtaW4tcGxhY2Utc3RkZXJyLnR4dFVUCQADJXg8WSV4PFl1eAsAAQT1AQAABBQAAABzLClJ
zS0oUSjJV0jNKyxNLU1VSFQozy/KVsgESiiUZ2TmpCpAxDOLFZJSM/PSFQqK8pNTi4tTU/S4AFBL
AwQUAAIACACLfspK2wjTQjsAAAA/AAAAUwAcAGZhc3QvbG9hZGVyL2ltYWdlcy1lbmFibGVkLXVu
c2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQJ
AAMmeDxZJng8WXV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRn
ZOakKkDEM4sVklIz89IVCoryk1OLi1NT9LgAUEsDBBQAAgAIAI5+ykrbCNNCOwAAAD8AAAAtABwA
ZmFzdC9sb2FkZXIvcmVsb2FkLXBvbGljeS1kZWxlZ2F0ZS1zdGRlcnIudHh0VVQJAAMreDxZK3g8
WXV4CwABBPUBAAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sV
klIz89IVCoryk1OLi1NT9LgAUEsDBAoAAAAAAJR+ykoAAAAAAAAAAAAAAAAMABwAZmFzdC9wYXJz
ZXIvVVQJAAM3eDxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACRfspKZm2B0fQAAAAdAgAA
MAAcAGZhc3QvcGFyc2VyL2V4dGVybmFsLWVudGl0aWVzLWluLXhzbHQtc3RkZXJyLnR4dFVUCQAD
Mng8WTJ4PFl1eAsAAQT1AQAABBQAAADNkU1LxDAQhu/+ijm6l6alrqK3/cCLCxYKKoiHNJnScdNM
yKSt+++tUEFwvXt9n+eFeRlu3s1rWZbF1dsd7JwWgeqwHcjZJ4xC7IEEqA8Oe/QJLZCHhlMHahOC
I6PT7Ih6MWwx0yGoHc+aT6L2OKLjgFFVTqeWYy+Kqo491tQPc8QxCwv5Idf7h9+e2KOqT5KwVwdq
oo4nVUUadcL7qHucOB5FbUQwycJrjCMZlKz9Fs5zuMw/isLclLfG5CvQ3v7DZXMn8d/DzuFl13qd
X7f5KoNHj8AtpA4hTQwTOQcNwiBoM3juyHQw3/X17MFbbMnP+cUnUEsDBBQAAgAIAJR+ykoClb0C
YwAAAGsAAAAyABwAZmFzdC9wYXJzZXIvc3RyaXAtc2NyaXB0LWF0dHJzLW9uLWlucHV0LXN0ZGVy
ci50eHRVVAkAAzd4PFk3eDxZdXgLAAEE9QEAAAQUAAAAMzIwNNc1MNM1NFAwNLUyNbIyttQzMzBV
CE9N8s4sCUktLgkqzctLLXIsKIg2NjYyNrWyNDKwtIxVCHDyLEnNdc7PyUlNLsnMzwtOLSrLTE4t
UkjOB6oHCymkZBZDeakpelwAUEsDBAoAAAAAAJh+ykoAAAAAAAAAAAAAAAAQABwAZmFzdC9zaGFk
b3ctZG9tL1VUCQADQHg8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmH7KStGAelVjAAAA
awAAADkAHABmYXN0L3NoYWRvdy1kb20vc2VsZWN0aW9uLWF0LXNoYWRvdy1yb290LWNyYXNoLXN0
ZGVyci50eHRVVAkAA0B4PFlAeDxZdXgLAAEE9QEAAAQUAAAAMzIwNNc1MNM1NFAwNLUyNbIysdAz
MzJUCE9N8s4sCUktLgkqzctLLXIsKIg2Nja0NLaytDAxMotVCHDyLEnNdc7PyUlNLsnMzwtOLSrL
TE4tUkjOB6oHCymkZBZDeakpelwAUEsDBAoAAAAAAJl+ykoAAAAAAAAAAAAAAAAKABwAZmFzdC90
ZXh0L1VUCQADQng8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAmX7KSgAAAAAAAAAAAAAA
ABgAHABmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9VVAkAA0J4PFmpezxZdXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAJt+ykoAAAAAAAAAAAAAAAAoABwAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvc3lz
dGVtLWxhbmd1YWdlL1VUCQADRng8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAmX7KSvhm
Z5LyAAAAHQIAAFIAHABmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvYXJh
YmljLWdseXBoLWNhY2hlLWZpbGwtY29tYmluZS1zdGRlcnIudHh0VVQJAANCeDxZQng8WXV4CwAB
BPUBAAAEFAAAAM2RQUvEMBCF7/6KObqXplpU8Lbu4sUFCwUVxEOaTOm4SSZk0tb990ZYQXC9e33f
92Aew/27eW2a5qp5u4WN0yLQ7u4mcvYJkxAHIAHy0aHHkNECBeg5j6DWMToyOhdH1Ithi5WOUW24
aCGL2uKMjiMm1TqdB05eFLUjB+zITyXiVMUj+SF324ffnti96g6S0asd9Umng2oTzTrjfdIeF057
UWsRzHLkHaaZDEo1fAunOZzXHxeXtbU3xtQr0MH+w2Wlk/nvYafwcVePeD3UqwoeAwIPkEeEvDAs
5Bz0CJOgreB5JDNCuevr2VOwOFAo+dknUEsDBBQAAgAIAJl+ykq6tugw9AAAAB0CAABHABwAZmFz
dC90ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdlL2RlY2xhcmF0aXZlLWxhbmd1YWdl
LXN0ZGVyci50eHRVVAkAA0J4PFlCeDxZdXgLAAEE9QEAAAQUAAAAzZFBS8QwEIXv/oo5upemtayC
t3UXLy5YKKggHtJkQsdNMyGTdt1/b4UKguvd6/u+B/MY7t7Na13X65u3W9h6LQLN/m4kb58wCXEA
EqAhehwwZLRAATrOPahNjJ6MzrMj6sWwxULHqLY8ayGL2uGEniMm1XidHadBFDU9B2xpGOeIUxEX
8kNudw+/PbEH1Z4k46D21CWdTqpJNOmM90kPeOR0ELURwSwLbzFNZFAK9y2c53BZflSVs9XamHIF
Oth/uGzuZP572Dm87OquzLUrVwU8BgR2kHuEfGQ4kvfQIYyCtoDnnkwP811fzx6DRUdhzi8+AVBL
AwQUAAIACACafspKs/IdDPQAAAAdAgAAPQAcAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3Rl
bS1sYW5ndWFnZS9oYW4tcXVvdGVzLXN0ZGVyci50eHRVVAkAA0R4PFlEeDxZdXgLAAEE9QEAAAQU
AAAAzZFNS8QwEIbv/oo5upemS+mi3vYDLy5YKKggHtJkSsdNMyGTtu6/t0IFwfXu9X2eF+ZluHk3
r0VRlLdvd7B3WgSq424gZ58wCrEHEqA+OOzRJ7RAHhpOHahtCI6MTrMj6sWwxUyHoPY8az6JOuCI
jgNGVTmdWo69KKo69lhTP8wRxyws5IdcHx5+e2JPqj5Lwl4dqYk6nlUVadQJ76PuceJ4ErUVwSQL
rzGOZFCy9lu4zOE6/1ivUZelMfkKtLf/cNncSfz3sEt42XWzMZs2X2Xw6BG4hdQhpIlhIuegQRgE
bQbPHZkO5ru+nj14iy35Ob/6BFBLAwQUAAIACACbfspKk4+PKvMAAAAdAgAAUAAcAGZhc3QvdGV4
dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFnZS9oaW5kaS1zeXN0ZW0tZm9udC1wdW5jdHVh
dGlvbi1zdGRlcnIudHh0VVQJAANGeDxZRng8WXV4CwABBPUBAAAEFAAAAM2RQUvEMBCF7/6KObqX
pqVS0Nu6ixcXLBRUEA9pMqWzm2ZCJm3df2+FCoLr3ev7vgfzGG6P5q0sy6p8v4Od0yJQH+5HcvYZ
oxB7IAEagsMBfUIL5KHl1IPahuDI6LQ4ol4NW8x0CGrHi+aTqD1O6DhgVLXTqeM4iKK6Z48NDeMS
cczCSn7Izf7xtyf2pJqzJBzUgdqo41nVkSad8CHqAWeOJ1FbEUyy8gbjRAYl676Fyxyu84+isO2N
NibfgPb2Hy5bOon/HnYJr7tuq6Lq8k0GTx6BO0g9QpoZZnIOWoRR0Gbw0pPpYbnr69mjt9iRX/Kr
T1BLAwQUAAIACACbfspK1QlBwvQAAAAdAgAASgAcAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5
c3RlbS1sYW5ndWFnZS9zeXN0ZW0tZm9udC1wdW5jdHVhdGlvbi1zdGRlcnIudHh0VVQJAANGeDxZ
Rng8WXV4CwABBPUBAAAEFAAAAM2RTUvEMBCG7/6KObqXpt3iCt72Ay8uWCioIB7SZErHTTMhk7bu
v7dCBcH17vV9nhfmZbh5N69lWW5u3+5g77QIVMfdQM4+YRRiDyRAfXDYo09ogTw0nDpQ2xAcGZ1m
R9SLYYuZDkHtedZ8EnXAER0HjKpyOrUce1FUdeyxpn6YI45ZWMgPuT48/PbEnlR9loS9OlITdTyr
KtKoE95H3ePE8SRqK4JJFl5jHMmgZO23cJnDdf5RrAtb3BiTr0B7+w+XzZ3Efw+7hJddzdps2nyV
waNH4BZSh5AmhomcgwZhELQZPHdkOpjv+nr24C225Of86hNQSwMECgAAAAAAeoDKSgAAAAAAAAAA
AAAAABUAHABmYXN0L3RleHQtYXV0b3NpemluZy9VVAkAA9h6PFmpezxZdXgLAAEE9QEAAAQUAAAA
UEsDBAoAAAAAAHqAykoAAAAAAAAAAAAAAAAZABwAZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL1VU
CQAD2Ho8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAeoDKSgAAAAAAAAAAAAAAAB4AHABm
YXN0L3RleHQtYXV0b3NpemluZy9pb3MvaXBhZC9VVAkAA9h6PFmpezxZdXgLAAEE9QEAAAQUAAAA
UEsDBBQAAgAIAHqAykocDXxu8wAAAB0CAABGABwAZmFzdC90ZXh0LWF1dG9zaXppbmcvaW9zL2lw
YWQvcHJvZ3JhbW1hdGljLXRleHQtc2l6ZS1hZGp1c3Qtc3RkZXJyLnR4dFVUCQAD2Ho8Wdh6PFl1
eAsAAQT1AQAABBQAAADNkU1LxDAQhu/+ijm6l6brxx687QdeXLBQUEE8pMmUjptkQibtuv/eCBUE
17vX93lemJfh7t28Xq/qm+XbHWydFoFmvxnJ2SdMQhyABMhHhx5DRgsUoOM8gFrH6MjoXBxRL4Yt
VjpGteWihSxqhxM6jphU43TuOXlR1AwcsCU/lohTFWfyQ253D789sQfVniSjV3vqkk4n1SSadMb7
pD0eOR1ErUUwy8xbTBMZlKr/Fs5zuKw/lledRTSmXoAO9h8uK53Mfw87h+ddpr5d9fWigseAwD3k
ASEfGY7kHHQIo6Ct4HkgM0C56+vZY7DYUyj5xSdQSwMECgAAAAAAeoDKSgAAAAAAAAAAAAAAAA4A
HABmYXN0L3ZpZXdwb3J0L1VUCQAD2Ho8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAAeoDK
SgAAAAAAAAAAAAAAABIAHABmYXN0L3ZpZXdwb3J0L2lvcy9VVAkAA9h6PFmpezxZdXgLAAEE9QEA
AAQUAAAAUEsDBAoAAAAAAHqAykoAAAAAAAAAAAAAAAAXABwAZmFzdC92aWV3cG9ydC9pb3MvaXBh
ZC9VVAkAA9h6PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAHqAykpWfoyD9AAAAB0CAAA3
ABwAZmFzdC92aWV3cG9ydC9pb3MvaXBhZC93aWR0aC1pcy1kZXZpY2Utd2lkdGgtc3RkZXJyLnR4
dFVUCQAD2Ho8Wdh6PFl1eAsAAQT1AQAABBQAAADNkUFLxDAQhe/+ijm6l6ZWXcTbuosXFywUVBAP
aTKl4yaZkElb999boYLgevf6vu/BPIbbd/N6uS6v1m+3sHVaBOr93UDOPmES4gAkQD469BgyWqAA
Lece1CZGR0bn2RH1YthioWNUW561kEXtcETHEZOqnc4dJy+K6p4DNuSHOeJUxIX8kJvdw29P7EE1
R8no1Z7apNNR1YlGnfE+aY8Tp4OojQhmWXiDaSSDUnTfwmkO5+XHRXVTlWhMuQId7D9cNncy/z3s
FF52ldX1uitXBTwGBO4g9wh5YpjIOWgRBkFbwHNPpof5rq9nD8FiR2HOzz4BUEsDBAoAAAAAAJx+
ykoAAAAAAAAAAAAAAAAVABwAZmFzdC92aXN1YWwtdmlld3BvcnQvVVQJAANIeDxZqXs8WXV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACACcfspKV6VnUvQAAAAdAgAASAAcAGZhc3QvdmlzdWFsLXZpZXdw
b3J0L2NsaWVudC1yZWN0cy1yZWxhdGl2ZS10by1sYXlvdXQtdmlld3BvcnQtc3RkZXJyLnR4dFVU
CQADSHg8WUh4PFl1eAsAAQT1AQAABBQAAADNkU1LxDAQhu/+ijm6l6ZrsbDe9gMvLlgoqCAe0mRK
x00zIZO27r+3QgXB9e71fZ4X5mW4eTevRVGUm7c72DstAtVxN5CzTxiF2AMJUB8c9ugTWiAPDacO
1DYER0an2RH1YthipkNQe541n0QdcETHAaOqnE4tx14UVR17rKkf5ohjFhbyQ64PD789sSdVnyVh
r47URB3Pqoo06oT3Ufc4cTyJ2opgkoXXGEcyKFn7LVzmcJ1/rG9K3aIx+Qq0t/9w2dxJ/PewS3jZ
tVnflm2+yuDRI3ALqUNIE8NEzkGDMAjaDJ47Mh3Md309e/AWW/JzfvUJUEsDBAoAAAAAAKB+ykoA
AAAAAAAAAAAAAAAJABwAZmFzdC94c2wvVVQJAANMeDxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQU
AAIACACgfspK2eKkqPIAAAAdAgAAJQAcAGZhc3QveHNsL2RvY3VtZW50LWZ1bmN0aW9uLXN0ZGVy
ci50eHRVVAkAA0t4PFlLeDxZdXgLAAEE9QEAAAQUAAAAzZFBS8QwEIXv/oo5upemWijibd3FiwsW
CiqIhzSZ0HHTTMikrfvvrVBBcL17fd/3YB7D3bt5raqqvnm7hZ3XItAc7kby9gmTEAcgARqixwFD
RgsUoOPcg9rG6MnovDiiXgxbLHSMaseLFrKoPU7oOWJSjdfZcRpEUdNzwJaGcYk4FXElP+R2//Db
E3tU7UkyDupAXdLppJpEk854n/SAM6ejqK0IZll5i2kig1K4b+E8h8vy4+pam84ZU25AB/sPly2d
zH8PO4fXXdrWtSs3BTwGBHaQe4Q8M8zkPXQIo6At4Lkn08Ny19ezx2DRUVjyi09QSwMEFAACAAgA
oH7KSk77IPiIAAAA5wAAACUAHABmYXN0L3hzbC90cmFuc2Zvcm0teGhyLWRvYy1zdGRlcnIudHh0
VVQJAANLeDxZS3g8WXV4CwABBPUBAAAEFAAAAKWOsQ7CMAxE936Ff6B4YMsME2wgOrutKyI5ceU4
Uvl7AuUPWE4n38nvJk1rFPKoGdhMLcAShb8SEPGhUhMXPJETnocbDjxeouOVXlr9zsULLlQctyJo
XLTa1Orb0/pZp0O7gsTMcAQWTpwdYlrVvGtJ2C0EqJnGBnUFUZp/8P/Q/f6c58+G7g1QSwMEFAAC
AAgAoH7KSv2iLmSPAAAA7gAAACcAHABmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVy
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
GTsCbCYgY2eDhYwdAVZmkLGzwULGjgCr4JvXfLCQse+HZSSFjJ0NFjJ2BFhKIWOngYUomA8WFq/P
D7vgioV3BdPAMvh3ayJYyNibhF1Exf4BUEsDBAoAAAAAAKh+ykoAAAAAAAAAAAAAAAASABwAaHR0
cC90ZXN0cy9pbWFnZXMvVVQJAANbeDxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACofspK
fRYYnHAAAADWAAAALgAcAGh0dHAvdGVzdHMvaW1hZ2VzL2hpZHBpLXNyY3NldC1jb3B5LXN0ZGVy
ci50eHRVVAkAA1t4PFlbeDxZdXgLAAEE9QEAAAQUAAAAMzIwNNc1MNM1NFAwNLUyNbYyNNUzAHLC
U5O8M0tCUotLgkrz8lKLHAsKoo2NjQwMrCyNzAwsYxUCnDxLUnOd83NyUpNLMvPzglOLyjKTU4sU
kvOB6sFCCimZxVBeaooelxE2q0wt8VllaGpsRo5VAFBLAwQKAAAAAADAfspKAAAAAAAAAAAAAAAA
EAAcAGh0dHAvdGVzdHMvbWlzYy9VVAkAA4d4PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAI
AMB+ykoVNTWSegAAALwAAAAqABwAaHR0cC90ZXN0cy9taXNjL3hzbHQtYmFkLWltcG9ydC1zdGRl
cnIudHh0VVQJAAOHeDxZh3g8WXV4CwABBPUBAAAEFAAAAI2OQQ7DIAwE73mFP0Ag7aEVvyHEVSwZ
jIyR+vwS5QPVXlY7h9kspREnI6mAqqIRPsQIp1mL3m+P1xpmtvgOIfhCPXvFLkMzdv/tbG5Ph6PS
RM0NpXVuwFQRnoCMBavBTZdJ4l0hwqhpnxoTYEnHf7oqfeTzupcsMS8/UEsDBAoAAAAAAKp+ykoA
AAAAAAAAAAAAAAAWABwAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUCQADX3g8Wal7PFl1eAsAAQT1
AQAABBQAAABQSwMEFAACAAgAqn7KStsI00I7AAAAPwAAADcAHABodHRwL3Rlc3RzL25hdmlnYXRp
b24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQJAANfeDxZX3g8WXV4CwABBPUB
AAAEFAAAAHMsKUnNLShRKMlXSM0rLE0tTVVIVCjPL8pWyARKKJRnZOakKkDEM4sVklIz89IVCory
k1OLi1NT9LgAUEsDBAoAAAAAAK1+ykoAAAAAAAAAAAAAAAATABwAaHR0cC90ZXN0cy9wcmVsb2Fk
L1VUCQADZXg8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgArH7KSvGTPRGvAAAA4wAAAD0A
HABodHRwL3Rlc3RzL3ByZWxvYWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfaGVhZGVycy1hY3R1
YWwudHh0VVQJAANjeDxZY3g8WXV4CwABBPUBAAAEFAAAAD2NQQrCQAxF93OKfwI7daMUFUSqCGoX
PYBGG9pindZJxnp8RxAJhHxe8rIpTmVxyHHMy3K9yzMsutbd4blbDrH1VK3wCKJo6MUgvKhrK1xI
Lt8xsIEx2/X+gCPdWSDBM7Qhxe+aq+iSPvhbpBSh6xVVP7ofpJpah7FhhyDfLMJez/wM1EmGRnXI
kiSdziY2VprNrbXJ35hI3POcWjsZXA1+D3zTaElxDYo6vpoa8wFQSwMEFAACAAgArH7KSuX0qWgw
AQAAbgIAADsAHABodHRwL3Rlc3RzL3ByZWxvYWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfaGVh
ZGVycy1kaWZmLnR4dFVUCQADY3g8WWV4PFl1eAsAAQT1AQAABBQAAADNkcFOwzAMhu99Ct9LlnYS
AlWAOqAgxMYQldix81arrZY1pXbYeHtS1PEEHJClOPYfffnjKKVAv1vj9sT6HgV1tsr1ijbPjYzp
1jWm1G9kCJlU09W2JW72zqDYXhv8sk6UEIvqiZ0R1rVIp4cO664nY7HU3LSVoaK0h3aoi7Ff1IQl
9azo2NFWqJzIUYIwDP+FKdyKQ/NjKU1BxWfnEA5LmgZwt3zJl/MMFlmezx6zBK5M0+7AE65HzA3s
HQvU+EmA8ImmKWGNvB62jgKAAAL1OstzWOCOGNj1BFKjwAig0uPYun7rVfRiawVOZr2IFTYtHGpq
wbGvg/Bh9jT/KxoyUy8FffgRcALD+BKt4+nFJPIRJ5dRFOlfomZ/rqc4iiZdW8HpOyGGjROo/FVT
/9xvUEsDBBQAAgAIAKx+ykoltQyIdgAAAJIAAAA/ABwAaHR0cC90ZXN0cy9wcmVsb2FkL3Npbmds
ZV9kb3dubG9hZF9wcmVsb2FkX2hlYWRlcnMtZXhwZWN0ZWQudHh0VVQJAANjeDxZY3g8WXV4CwAB
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
EXNSgk15fH2cSVmKRRiiz2gbbBjbwKKSCOW6ui+kJBLh5z8qzF/CcXARnNtGAKVl8Fkcr2Bfvd/K
a+8cswT7yob4Geb9EyytjHl9MWssAVD2Q2HEkhd4QDwAbiTE9am7Cajvhdl4Ff4b7Ak5K7xFEoV3
v63D33D0I5H28aEiNAn/BbyLBPZJmYGbCJJXUHEzHoLngHp9iSHjwnW+olKESvJQ9YgQohb0loQC
FEzxQ8KeC9V+sP0PCiPA96HCqRAN5FYC7nEbbuNr0en+iL7FD/Wr270nMii3k84UdbXxWl+F9NdT
YFo3Q38P2BUZp6sxKBfGV61ZEPavzwHqPl3d/PzT+uePd96nu/X6/Xd3C+8dlUv9XRV0cW0V8m4j
l15eCell4J/Ao09IxcnvSPyuXits9wfzgjB/WaTzN4h0PiyS93XRTN6AZjKMpgtGP5qQGoGsZuvh
feBvcypzK37VqRrzDop+8QbR3xWRKJcH5Icr+uoXkAge+v39em1a3if0iAVQDceGdKy3QRkNMcsq
HsMoBAlQgPRcjMIg2oAQQMNw36wEtF/VcFtHwACvK8hOOqidA5KzN6jRaAdKjdX9Vage+v39Dx9N
66tpR20GJwLxPuA/IJ0JuI5DKgQOGJ9/G4zgZ7yYjUajsN42FDCPY7gbBSUwEN6W5nIzVoWNt4Hz
zi3i/6dvf62EOX2DxaZ/Tzx3HpoDgVn0X9D+B1BLAwQKAAAAAADAfspKAAAAAAAAAAAAAAAAFAAc
AGh0dHAvdGVzdHMvc2VjdXJpdHkvVVQJAAOIeDxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQKAAAA
AAC8fspKAAAAAAAAAAAAAAAAKgAcAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L1VUCQADg3g8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAq37KSnYAi99wAAAA
cwAAAFcAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9kZWZhdWx0
LXNyYy1zdGFyLXdlYnNvY2tldC1hbGxvd2VkLXN0ZGVyci50eHRVVAkAA2J4PFlieDxZdXgLAAEE
9QEAAAQUAAAAMzIwNNc1MNM1NFAwNLUyNbYyMtIzszRUSM7P1UssKMhJ1QtPTfLOLNHzSy0pzy/K
zsxL13NJLUvNyS/ITc0riTY2NrI0tLI0NjQwjlVwdoOqUggO9vFIzEspzkjMTlVIS8zMSU1R0NC1
tDAw1+QCAFBLAwQKAAAAAACvfspKAAAAAAAAAAAAAAAARAAcAGh0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvVVQJAANqeDxZ
qXs8WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACvfspKpGYUrJAAAACcAAAAfgAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVz
dHMvdXBncmFkZS1yZWRpcmVjdC1odHRwcy10by1odHRwLXNjcmlwdC1pbi1pZnJhbWUtc3RkZXJy
LnR4dFVUCQADang8WWp4PFl1eAsAAQT1AQAABBQAAAAdx00LgjAYAOB7v+I9FuTanJp61SJIJJrR
ITosfYvhPmSO+vtFz+2JKdtGNIsYBZaWKS85JSlLoHeGyGnSSK74OKpAWgwf50dlX6TGN2o3GbTh
xnnMsrJgOU/u0IrLuRE4z8rZzT+Vsxb78Dscuu4E2skBnlJpHGA5VnsRPEqz89752hmprBDNGqIi
p9lq8QVQSwMECgAAAAAAsX7KSgAAAAAAAAAAAAAAAD0AHABodHRwL3Rlc3RzL3NlY3VyaXR5L2Nv
bnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vVVQJAANueDxZqXs8WXV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACACxfspKrpxyjPMAAAAdAgAAawAcAGh0dHAvdGVzdHMvc2VjdXJp
dHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1v
YmplY3QtZGF0YS11cmwtYWxsb3dlZC1zdGRlcnIudHh0VVQJAANteDxZbXg8WXV4CwABBPUBAAAE
FAAAAM2RQUsDMRCF7/6KOdrLZrVS0Vtt8WLBhQUVxEM2mbBjk0zIZLv237vCCoL17vV934N5DHfv
5nW5vKmv325h47UINLu7gbx9wizEEUiAQvIYMBa0QBE6Lj2odUqejC6TI+rFsMVKp6Q2PGmxiNri
AT0nzKrxujjOQRQ1PUdsKQxTxLlKM/kht9uH357YvWqPUjCoHXVZ56NqMh10wfusA46c96LWIlhk
5i3mAxmUyn0Lpzmc1x8XlyvEK2PqBeho/+GyqVP472Gn8LzLuG7l6kUFjxGBHZQeoYwMI3kPHcIg
aCt47sn0MN319ewhWnQUp/zsE1BLAwQUAAIACACxfspK+So3rPQAAAAdAgAAawAcAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZh
dWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZC1zdGRlcnIudHh0VVQJAANueDxZbng8WXV4
CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNjZUrLfa4sWCgYAK4mGzO0vGbnaWnU1q/70RIgjW
u9f3fQ/mMdy+m9eqWi9Xb7ew9VoE6v3dQN4+YRLiACRAffTYY8hogQK0nDtQmxg9GZ0nR9SLYYuF
jlFtedJCFrXDET1HTKr2OjtOvSiqOw7YUD9MEacizuSH3OwefntiD6o5ScZe7alNOp1UnWjUGe+T
7vHI6SBqI4JZZt5gGsmgFO5bOM/hsvy4Wq7WrjKmXIAO9h8umzqZ/x52Ds+7bkp97cpFAY8BgR3k
DiEfGY7kPbQIg6At4Lkj08F019ezh2DRUZjyi09QSwMEFAACAAgAsX7KSh9XyAT1AAAAHQIAAGwA
HABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFk
b3dET00vZGVmYXVsdC1zcmMtb2JqZWN0LWRhdGEtdXJsLWJsb2NrZWQzLXN0ZGVyci50eHRVVAkA
A254PFlueDxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2tVKNt9rixYKBgAriYbM7IWM3
O8vOJrH/3ggRBOu91/d9D+YxXH+Yt9WqWBbvd7B1WgTK/X1Pzj5jFGIPJEBdcNihT2iBPNScWlCb
EBwZnSZH1Kthi5kOQW150nwStcMBHQeMqnQ6NRw7UVS27LGirp8ijlmYyS+52j3+9cQeVHWUhJ3a
Ux11PKoy0qATPkTd4cjxIGojgklmXmEcyKBkzY9wmsNl/rm8urktro3JF6C9PcNlUyfx/8NO4XnX
WtfrJl9k8OQRuIHUIqSRYSTnoEboBW0GLy2ZFqa7vp/de4sN+Sm/+AJQSwMEFAACAAgAu37KSmOq
rGyCAAAAqAAAAEAAHABodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94
c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQJAAOCeDxZgng8WXV4CwABBPUBAAAEFAAAAC2NQQrDMAwE
73mFXhA7vaT4FYW+ILgbYlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZg
yJcW7yFLdVR//vtDuOQeFCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSb
guxqTdTxmr5QSwMEFAACAAgAvH7KSmOqrGyCAAAAqAAAAFIAHABodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtdW5hZmZlY3RlZC1ieS1zdHlsZS1zcmMtMi1zdGRl
cnIudHh0VVQJAAODeDxZg3g8WXV4CwABBPUBAAAEFAAAAC2NQQrDMAwE73mFXhA7vaT4FYW+ILgb
YlAsIyml/n1NKXtahtnNcrbCmxepBFXRRHth0OHeUgjLbZ3jyJLuMcZgyJcW7yFLdVR//vtDuOQe
FCaXZlgw74z5Y0xcKmglMM4h0A/YAfg0aHpDbVwnksqdljnSjs2vMUSbguxqTdTxmr5QSwMEFAAC
AAgAwH7KSmBLZhCRAAAA+wEAAEUAHABodHRwL3Rlc3RzL3NlY3VyaXR5L3hzcy1ERU5JRUQteHNs
LWRvY3VtZW50LXNlY3VyaXR5T3JpZ2luLXN0ZGVyci50eHRVVAkAA4h4PFmIeDxZdXgLAAEE9QEA
AAQUAAAA7Y4xDoMwDEV3TuELhASWVplh6NKeAQVTIpkksp0Kbl869AYdq7++r/dC3kqkSWNOgMyZ
PSyREFbV4q3t+kvrznX+6pyzgqFy1MPuImYY77dxMLuQmXOoGyY1X+DB8RlTu28EFBNCD0j4IUD0
IJQVUZvz6V/Icro95EQHdK2DBSetjAITI0gtJbPi3IR/6I9D31BLAwQKAAAAAACyfspKAAAAAAAA
AAAAAAAADwAcAGh0dHAvdGVzdHMvc3NsL1VUCQADb3g8Wal7PFl1eAsAAQT1AQAABBQAAABQSwME
CgAAAAAAsn7KSgAAAAAAAAAAAAAAABwAHABodHRwL3Rlc3RzL3NzbC9taXhlZENvbnRlbnQvVVQJ
AANveDxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACACyfspKgVwiffIAAAAdAgAAOQAcAGh0
dHAvdGVzdHMvc3NsL21peGVkQ29udGVudC9pbnNlY3VyZS13ZWJzb2NrZXQtc3RkZXJyLnR4dFVU
CQADb3g8WW94PFl1eAsAAQT1AQAABBQAAADNkUFLxDAQhe/+ijm6l6ZaENbbuosXFywUVBAPaTKh
4yaZkEm37r+3QgXB9e71fd+DeQz37+a1adZN83YLW69FoN3fjeTtE2YhjkACFJLHgLGgBYrQcxlA
bVLyZHSZHVEvhi1WOiW15VmLRdQOj+g5YVat18VxDqKoHThiR2GcI85VWsgPuds9/PbEHlR3koJB
7anPOp9Um+moC95nHXDifBC1EcEiC+8wH8mgVO5bOM/hsv64ujbGro2pV6Cj/YfL5k7hv4edw8su
7eobV68qeIwI7KAMCGVimMh76BFGQVvB80BmgPmur2eP0aKjOOcXn1BLAwQKAAAAAAC4fspKAAAA
AAAAAAAAAAAAGgAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvVVQJAAN7eDxZqXs8WXV4CwAB
BPUBAAAEFAAAAFBLAwQUAAIACAC2fspKRmGnJDQBAABkBQAATgAcAGh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LWNyZWRlbnRpYWwtYXN5bmMtc3RkZXJy
LnR4dFVUCQADd3g8WXd4PFl1eAsAAQT1AQAABBQAAADtkr9OwzAQxneewg+A479N4mxO3C4glgox
IAYndYvVxI4cF9S3x1GBpUhMndrFJ5/u7rvvp6OYFBDnkGBAFtWCVZxlvMCg80Omx7E32YtpH2zM
nkz89GFv3S5T5sP0fhyMi6+MUVpWgpRl+QaUnfaN93tr1tEHvTOge9dul3rA6HvbHcE2+AFQED3A
90ljLgVb25vq9CKEnicTJtQebL9pfUSPtg06HNG3pgmo8cGs7XDoddKY87YzEyJckqbJFaxJLSGv
VQ2FFDVUuFkpVRIl+BJtdNSp30Vt3ayi5r9MLm2no/UOlflKSZoG5E0hIGeCQ7nkHFImCZF1TRrM
f1c6OZ1+YtZal9InU9Md/RMsOQebwrxSgnkGVsxgBb6B/Q/sgvKLXiyewdJrBMuKi17sVYD9AlBL
AwQUAAIACAC2fspKgBrE7UwBAADICgAATQAcAGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNj
ZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LWNyZWRlbnRpYWwtc3luYy1zdGRlcnIudHh0VVQJAAN3eDxZ
d3g8WXV4CwABBPUBAAAEFAAAAO2VvU7DMBDHd57CD4Djjzipnc2J2wXEghADYnBSt1hN4shxQX17
HAVYQGJAmcjik093/t/9dDpTTDYQ55BgQLIiSwuWJtmGgsZ1iR6G1iSPpr6xIbkz4c35k+2PiTKv
pnVDZ/rwlKaU8kIQzvkzUHY8Vc6drLkPzuujAc2L7o8xBwyutc0FHLzrAAXBAXwdNaZQcLCtKeYT
IfQwGj+i+mzbfe0CurW11/6CPjSNR5Xz5t5251ZHjclvGzMiwiSpqlzBkpQSslKVUEhRQoWrnVKc
KMG2aK+Djvl90LafVNR0l7FL2+hgXY94vlOSxgfyaiMgSwWDcssYpKkkRJYlqTD7KmnudPy0SW37
6J6bGq/oT2B5vihYPIGlK9gZbDRTSRHmN7BiAivwOrG/gxWLgv23E5tjvu7YZcCKdRUsApZk6+e1
DNh83bF/BfsOUEsDBBQAAgAIALZ+ykoVWvaPMwEAAGQFAABLABwAaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtaGVhZGVycy1hc3luYy1zdGRlcnIudHh0
VVQJAAN3eDxZd3g8WXV4CwABBPUBAAAEFAAAAO2Sv07DMBDGd57CD4Djv03jbHbcLiCWCjEgBid1
i9XEjhwX1LfHUYEFJKZOZfHJp7v77vvpKCZLiEtIMCCLesFqzoqSU9CFoTDj2NviybZ3LhUPNr2H
eHB+X2j7ZvswDtanZ8YorWpBqqp6AdpNhyaEg7ObFKLZW9C9Gr/PPWAMvetOYBfDAChIAeDbrDGX
gp3rbX1+EUKPk40Tao+u37YhoXvXRhNP6FPTRtSEaDduOPYma8x519kJES5J05QaKqIk5EorKKRQ
UONmrXVFtOArtDXJ5H6fjPOzip7/Mrt0nUkueFSVay1pHlA2SwE5ExzKFeeQMkmIVIo0mH+vdHY6
fcWidT6nz6amG/ob2AW7KFg8g6VXCVb8BJvDvFKG+QOsmMEK/H+xf4ItyUXBXsXFfgBQSwMEFAAC
AAgAuH7KSrFYWYchAQAAsgIAAEAAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Nyb3NzLW9y
aWdpbi1jb29raWUtc3RvcmFnZS1zdGRlcnIudHh0VVQJAAN7eDxZe3g8WXV4CwABBPUBAAAEFAAA
AO2QS07DMBCG95zCB8DxI24SZ+dHuwGxqRALxMJJ3WI1sSPHBfX2OCogpHKEbmY0o5n55/8oJjXE
FSQYkFW7KltWF7RmoA9jYaZpsMWL7R5cKp5s+gzx6Pyh0PbDDmEarU+vZUlp03LSNM0b0G4+qhCO
zm5TiOZgQf9u/CHvgCkMrj+DfQwjoCAFgO+zxjIK9m6w7SUihJ5nG2fUndyw60JCj66LJp7Rt6aN
SIVot248DSZrLH3X2xkRJohSlYaSSAGZ1BJywSXUWG20bojmbI12Jpm875NxflHRSy2yS9eb5IJH
TbXRguYDlao5ZCVnUKwZg7QUhAgpicLs96WL0/knF53zuX0xNd/Rf8CWhF6DzWl5KcO8AssXsBzf
wP4F+wVQSwMEFAACAAgAuH7KSqQf9eEcAQAAsgIAAEYAHABodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2Nyb3NzLW9yaWdpbi1uby1jcmVkZW50aWFsLXByb21wdC1zdGRlcnIudHh0VVQJAAN7eDxZ
e3g8WXV4CwABBPUBAAAEFAAAAO2QS07DMBCG95zCB8DxI24aZ+dHuwGxqRALxMJJ3WI1sSPHBfX2
2CogJDYcgM28NJp//o9isoa4gQQDsupWdcfW1aqpwRCmyszzaKsn29+5VJIKPlmfKm3f7BjmKdfP
dU0p7zhpOX4B2i0nFcLJ2V0K0RwtGF6NPzp/BHMY3XABhxgmgEEKgN5mjbIKDm603TUihB4XGxfU
n92470NC966PJl7Qp6aNSIVod246jyZrlLkb7IIIE0SpRkNJpIBMagm54BJqrLZat0RztkF7kwwq
LozzRUWXXmSXbjDJBY/aZqsFzQcateaQ1ZxBsWEM0loQIqQkCrPvl65Ol69c9c7n8dXUckP/CvbB
pvcQTxnSL7BtAdu2/2B/gv0AUEsDBBQAAgAIABJ+ykpbBFgOogUAAE0QAAAKABwAaHR0cGQuY29u
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
AAAAADkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5l
cmF0ZUtleS9VVAkAA8p4PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIANJ+ykqPNBpwRAAA
AKAJAABcABwAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2Vu
ZXJhdGVLZXkvZmFpbHVyZXNfUlNBLU9BRVAud29ya2VyLXN0ZGVyci50eHRVVAkAA6x4PFmseDxZ
dXgLAAEE9QEAAAQUAAAAc84vzUlRyMsvUUhPzUstSixJVUhUyE6tVChIzCzSUSguSSwpLVbQNTE2
MOFyHlU7qnZU7ajaUbWjakfVjqodVUtztQBQSwMEFAACAAgA1H7KSlQCybI2AAAAwAIAAGUAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9m
YWlsdXJlc19SU0FTU0EtUEtDUzEtdjFfNS53b3JrZXItc3RkZXJyLnR4dFVUCQADr3g8Wa94PFl1
eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw
4XIeVTuqdpCpBQBQSwMEFAACAAgA4H7KSuGChuhJAAAAYAwAAFcAHABpbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzLmh0
dHBzLXN0ZGVyci50eHRVVAkAA8N4PFnDeDxZdXgLAAEE9QEAAAQUAAAA7crBCYAwEEXBu1X8AhQE
00EqWXARURJJNge7twMreHOeXMe9q9TQ4cWbhct0+avHzjarh8XoWtK2pilzuVwul8vlcrlc7s/9
AFBLAwQUAAIACADifspKjzQacEQAAACgCQAAYAAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBLU9BRVAuaHR0
cHMtc3RkZXJyLnR4dFVUCQADx3g8Wcd4PFl1eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/NSy1K
LElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw4XIeVTuqdlTtqNpRtaNqR9WOqh1VS3O1AFBLAwQU
AAIACADjfspKVALJsjYAAADAAgAAaQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
V2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBU1NBLVBLQ1MxLXYxXzUu
aHR0cHMtc3RkZXJyLnR4dFVUCQADyng8Wcp4PFl1eAsAAQT1AQAABBQAAABzzi/NSVHIyy9RSE/N
Sy1KLElVSFTITq1UKEjMLNJRKC5JLCktVtA1MTYw4XIeVTuqdpCpBQBQSwMECgAAAAAA637KSgAA
AAAAAAAAAAAAACkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL1VU
CQAD2Xg8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgA637KSi05jg31AAAAHQIAAEcAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2VuY29kaW5nL3NpbmdsZS1ieXRlLWRlY29k
ZXItc3RkZXJyLnR4dFVUCQAD2Xg8Wdl4PFl1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaSzZt
oVVvtcWLBQMBFcTDZndCxu7uLDubxP57I1YQrHev7/sezGO4eTMvy+ViNX+9ga3TIlDtb3ty9hGT
EAcgAfLRoceQ0QIFaDh3oDYxOjI6T46oZ8MWCx2j2vKkhSxqhwM6jphU5XRuOXlRVHUcsCbfTxGn
Ip7ID7ne3f/2xB5UfZSMXu2pSTodVZVo0BnvkvY4cjqI2ohglhOvMQ1kUIr2WzjP4bJ8ny90uV4b
U85AB/sPl02dzH8PO4e/dl3jFa7aclbAQ0DgFnKHkEeGkZyDBqEXtAU8dWQ6mO76fHYfLLYUpvzi
A1BLAwQKAAAAAADyfspKAAAAAAAAAAAAAAAAJgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvVVQJAAPoeDxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAADtfspKAAAA
AAAAAAAAAAAAKgAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL1VU
CQAD3ng8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAA7X7KSgAAAAAAAAAAAAAAADAAHABp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9VVAkAA954PFmp
ezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAO1+yko0TLb3kQAAAJ0AAABHABwAaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvYmFzaWMvbW9kZS1uby1jb3JzLXN0ZGVy
ci50eHRVVAkAA954PFneeDxZdXgLAAEE9QEAAAQUAAAAHcfBCoIwGADge0+xY0GuzampVy2CRKIZ
HaLD0r8Ybvtljnr9ou/2xYxvI5ZFnBGelmlaxhktWE56tFRNkwF6hcdRB9pC+KAftXvRGt5gcLLg
wk2IQsQlZ0nCsjtp5eXcSJhnjW7zT4XOQR9+J4euOxGDaiBPpQ0MZDlWexk8KLvzHn2NVmknZbMm
UZFzsVp8AVBLAwQUAAIACADtfspKkzXeJZAAAACdAAAATgAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL21vZGUtbm8tY29ycy13b3JrZXItc3RkZXJyLnR4
dFVUCQAD3ng8Wd54PFl1eAsAAQT1AQAABBQAAAAdx7sKwjAUANDdr8ioYGPS9L22imApYhQHcYjt
VUKT3JIG/X3Fs52Y8TxiWcQZ4WmVplWc0VwUpEdL1TQZoFd4HHSgHYQP+lG7F23gDQYnCy7chChF
XHGWJCy7k05eTq2EedboNv/U6Bz04XeyP5+PxKAayFNpAwNZjvVOBg/Kbr1H36BV2knZrklUFlys
Fl9QSwMECgAAAAAA737KSgAAAAAAAAAAAAAAAC8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL2ZldGNoL2FwaS9jb3JzL1VUCQAD4Xg8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAAC
AAgA6n7KSlb5a0OrAAAAqAMAAEgAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtYmFzaWMuYW55LXN0ZGVyci50eHRVVAkAA9d4PFnXeDxZdXgLAAEE
9QEAAAQUAAAAzdC7DoIwGEDh3afoqInUXkQoK2hMJMRYjINxqPBrGqAlpdHX1zj7AB3P9uUwQpOI
bCJKEI2zOM6owCxJUGMHrMaxB3yB+0F7XIF/W9dp88QFvKC34wDGXzlnaZIJTlJ+Q5U8n0oJ06St
Wf0it8ZA47+N9nV9RL1VLXoo3UOL5l2+k96BGrbOWVfYQWkjZblEkUgpX8zYP5uIg7VxysK1pTRc
mwj325rwIGwfUEsDBBQAAgAIAOp+ykrCADQgqwAAAKgDAABPABwAaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWJhc2ljLmFueS53b3JrZXItc3RkZXJy
LnR4dFVUCQAD13g8Wdd4PFl1eAsAAQT1AQAABBQAAADN0r0KwjAYheHdq8ioYGPTGJt0bRVBETGK
gzjE9lNC81Ni0NtXnL2AjO/2wDlFTsosX2QkR4RVjFVEYD7nqPUWq2EwgM9w2+iIdxDfPvTaPXAD
LzB+sODihdKCl5WgOadXtJOnw1bC86m9m/2i9s5BG7+N1sfjHhmvOnRX2kCHxn29kjGAsssQfGi8
VdpJuZ2iTHBCJ6Pin22RsI2zZG1iXqZrY+luKhL52wdQSwMEFAACAAgA637KSo+DwpeaAAAAOAEA
AE8AHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMt
bm8tcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0VVQJAAPaeDxZ2ng8WXV4CwABBPUBAAAEFAAAAM3O
uwrCMBQA0N2vyKhgYx60Tbu2imApYhQHcYjtVULzKGnQ31ec/QDHsx1GaJ6QLKEE0bRM05IxzDKB
Om+xGkcD+Ay3nY64hfjyYdDugWt4gvGjBRcvnDORlwUngl9RK0+HRsI0ae9WX1TeOejix2h7PO6R
8apHd6UN9Gg+VBsZAyi7DsGH2lulnZTNEiWFoHwxY79uIv+L2xtQSwMEFAACAAgA637KSnLM1i2Z
AAAAOAEAAFYAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3Jz
L2NvcnMtbm8tcHJlZmxpZ2h0LmFueS53b3JrZXItc3RkZXJyLnR4dFVUCQAD2ng8Wdp4PFl1eAsA
AQT1AQAABBQAAADNzrsKwjAUANDdr8ioYGMexj7WVhEsRYziIA6xvUpoHiUN+vuKsx/geLbDCE0T
skooQVQUQhSMYbHMUestVsNgAJ/httMRNxBfPvTaPXAFTzB+sODihXOWpUXOScavqJGnQy1hHLV3
iy9K7xy08WO0PR73yHjVobvSBjo07cuNjAGUXYfgQ+Wt0k7Keo6SPKN8NmG/bul/3N5QSwMEFAAC
AAgA7H7KSuqh+KNFAgAAQQwAAEkAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRlcnIudHh0VVQJAAPbeDxZ23g8WXV4CwAB
BPUBAAAEFAAAAO2WXWvbMBSG7/crdLOywWTrSLI+AmGENG3HuqbMLbsYo+jLialjGcdb138/JWWF
jsE6SllKh30j2Zz39cNrnTOdn5Tz4xn6MCvLyeFshOZ9vahbtByGbpTnTXSmWcb1MFKKEFSvURsH
ZJomXgWP7DWaOBfWazyN7dDHBk82T/BNjezF9NfiB2FwSzQ5fYecaTeVmmj8Ty2gMiPpgq1WXm3e
zU1X531Yx6990sm7PlRNvVgOWXf9doiXoR1D0EwJC5gRpzC3lGNTFQ4LX1RgJGhV8b2V+X5hFmFM
9uLW2ngj+ZJNXtKDdN8Kp52N9N72+y5WYVhGvx4fzs6yx8Xy75jf0YL7MpfKSekcw5WWFvOKW2w5
KKwM+ABaQ2WLPzC/Fb5hDs+I+Z2c35t5BdoTIQj23EFiTgy23lssqfAULFfKi7/L+aMzpwQkJgID
QVCMimJEaaYkIBdXmem6JmSfgn1fD9lJGK5if1m3i2w/fAtN7FahHT4zRpUcaUYU+4JOyvOPx2US
q2ObbxdJtA1uSGt0dHZ2esO4MnWTrL26nB6UQx/Matb3sd+PK1O3ZXn8BmGtgL3+vTe9u940yN31
xulOeJs+9V5WWaFkITmmwDXmJP3eCoDh4II1hjhTcHhYLzudl8/kYL03dKUMVT6NDUJYmaA7jS3T
HlNHpCZcCkmqh0E/mk32syfHRVsbgiQpfQIc5kKlJs8Kjal3yjjKwQbzwDCe/8/iXeYkHQCFcxRz
8GmY1cFhSyjDNLAgAw1cO7Fjw+wPUEsDBBQAAgAIAOx+ykr2KvaLowAAAHACAABQABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLW9yaWdpbi5hbnku
d29ya2VyLXN0ZGVyci50eHRVVAkAA9t4PFnbeDxZdXgLAAEE9QEAAAQUAAAAzc49DoIwGADQ3VN0
1ERqS/kprKAxkRBjMQ7GocKnaSgtKY1eX+PsARjf9kJC04AkASWIxnkc5yHDjHHU2gHLcdSAL3A/
KI9r8G/remWeuIQXaDsOYPyVsZCnecYIZzdUi/OpEjBNyprND4U1Blr/Ndo3zRFpKzv0kEpDh5Z9
sRPegRy2zllX2kEqI0S1RkHGKVstwn+3OJvvjSezvUU0msXtA1BLAwQUAAIACADtfspKUwRHidQC
AACYEgAAUwAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMv
Y29ycy1wcmVmbGlnaHQtc3RhdHVzLmFueS1zdGRlcnIudHh0VVQJAAPdeDxZ3Xg8WXV4CwABBPUB
AAAEFAAAAM2Xz2okRwyH73mKPvkmT/1RVakMJiyLNwSS7IIfwKikqrXJrGfwjMnm7aM+ZM+BglDM
padpmvqQ9NPXHz//8fj5t4ft94fHxw+/PNxtn/pVnrcPX37dhF9fT9fteGLdnq/X893h4EO5dfbz
d0TOHcb+7IHPL4e3fjm9v0m/HM5vfRxfvj5fb89//3w9/dlf7zF5cr4j9JITYOoKxGlArTEHKVEq
hZtv/P2Jv/Z7d8PH4+mvp+fO2t8u999hnOzF8OO9Nz+uni5Xvr5f7qNzt9uXf+9udpbz6fXSt5fL
tgNc3sUOdhnvx58+/g+0qTYsggVibDutnZ2aFBiupxypBN9wjtYvRMvR88i1QvVRAEdioMgNsA/P
gkIj0hxtWIgWRXsb3RiJdlqJQOgFsisj5ZJzHWmONi5Ea6wpKAWowcqKLiVoJTlIfmDxPrVKfY4W
F6IdnRiRBogntf7NDHX/W0PvVlwVjzxHm1aidc5Xhw5ERwckUWDMASj76jVEppDnaPNCtL1ZB3tb
Od1bE+MoESqPCjQCRmaVxmOOtixEG4svuRYD5VIABXfaMKCUhCOEFkgmNxCttIE4NEZm6HGnZXXA
wgNiq2q7uEWiOEOLS9mFqsQaiSFiRkANAs2VBtpopFZirCxztCvZhWjVQaYTimq1JQNtIs1qq80x
leGdztEuZRckrQ5NEFKIgGHP5GBz631tI/RU3Fwm41p2oYmYTJ66Mlkn2xqi5Bm0xiYDu9M85mhX
sgtq2eXBwcSi9j2YG1AIDmIPma2LU/WTc7uSXcj+NVBGsWlFcym1fdt8MG1ujZmlJ9enMjktlVIu
E2ZpzczRphVb71AJG2Qt1H2mwonnaFdKKXaUxAoM3XlnLkUeqtpCCja9saSY1bs52pVSSoJWF52C
usJ7bRlargQkVR03cbXoHO1KKRW41RglACdv+lhSBdZdH1tlu40YU5mj/a8p9Q9QSwMEFAACAAgA
7X7KSrYa9QWbAQAA3gUAAEwAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNo
L2FwaS9jb3JzL2NvcnMtcHJlZmxpZ2h0LmFueS1zdGRlcnIudHh0VVQJAAPdeDxZ3Xg8WXV4CwAB
BPUBAAAEFAAAAM3US4/TMBAA4Du/widu04ydcexUWqGoBBZpHxUt4oj83FSEJDResf33OLsXDpXg
gFaVb+Ox7E/jmc393e7+pmW37W7XfGzX7ENIrmPN9hNzZhjGxPrReNalNK2Lggu1wrz4WmvEIi65
hZkOxTHM4+PRhbmYjiH2h4curabTuzR+D8NVjVZZlAhCqBoolghakobAtXKSy1JyfPvDPH0zD+EK
V+w2pG707H170+5bdpjZ8gzT9+Ov4Jk9scbli2bYjEM6jj00yw68HJpXbzavIBLkg+AxQm1NBYSK
oHZGAXLFrRUZx80Z0fbL/iI5yuuac8KMUA5IGQMaSYCwNogYJXdnC7Rt9pvriwSVkawgqcChzSAq
FWijFRhfEplK1MKqM6C79utFcmSN5GPkoITmuYGQwMTSQi5UbiYeg8bqT87n8PMxzIl1wfhwZPEQ
es+eIOUYvMT4vzqvn9NfyelNVVeVikD5xwF5GUE7IqhyT5mIRku0f3Uu7w9Dgv1pCheplEaQjpUF
X3MCkrpaui2PQyT00lVl7dx/Gh6/AVBLAwQUAAIACADvfspKD/bh+MkCAAC/EwAAVQAcAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1yZWRpcmVjdC1w
cmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAkAA+F4PFnheDxZdXgLAAEE9QEAAAQUAAAA7Zfbjts2
EIbv+xS6ie/G5mFEDhcwCmOxaQu0TdF9gGA4HMZGXWtraZHk7UulSDZADCNAfNF2DQmiRB0w+PT/
M5zbV7/ev/r5rvvl7v5+88PdTfdSJ9l2m99+6oQPh2Hq9gOXbjtNDzerlXVxadpmb4iMWdX52RU/
7FZHHYfHo+i4ejhq3e/ebKflw/vv/+R3r/mNrs1iGv7Qw1rJBfHFggnGAvacIVPtIabUZ2tVHcvi
qGV3VJlejxNPj+PaG7vYD8LTbjis50Be+M0L97Ltn8JpM3NAbepDSG1sQbWjDMexDctlO3wKsZ1/
HuRChsfDtLbL7nf961HHqdsqFz12daf70r2Dt1663djNLHi/H95q6fL7biPtUyPcDofpOOxhM9+B
Hz+8OS6/u7001o9QZqr/sBQkqUIERbICkvVAVgUkMvammt5YXTz9gK+nOs/ut8M4fQvV/xrN6NHZ
GnoIxUZAFgNZXA+VCbUarioXoWn/hzTPWl6sFA3KUG3sAZOmJlPvGmfTs4shZg0ncLqr5b8UqUtE
GW2TJpMBzK4AhYrQt7za2+iKceWsSN3V8k80Z/2RYgZTqZ8TKAHVEIGdZcyMzl+G5rOzvFGDQUKC
bAMBuoCQQmHoybrESjmVcgKnv1r+S5Fm6xHFBYhVCqCv3OpS8GCox5hTJKf+rEj91fJPNFFZKDJB
NUUAhQU49gIlEnlMNSKnS9B8dpZ3rTQVnBf2GVsu9X0A4mTApiIl+GKw0Amc8Wr5E1Xehj5X35bz
Ibq2YqLSEqmv7dK74Dglx/GsSOPV8p9ZPmPNZAoUKwGwaIHUvN66JidBqic2fAmaz6/KB0SKqYCv
c8eUnYWU5gbKOa6OOKScTuCkq+VPiNQbjLVWiDYxYEA/i7Q1STF6F6MGF+WsSOlq+SeaPluxLYmC
LVhblUcDjGyhKTKTZE2C9hI0/wWW/xtQSwMECgAAAAAA837KSgAAAAAAAAAAAAAAAC4AHABpbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvVVQJAAPpeDxZqXs8WXV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACADyfspKzQ8g35sAAADGAAAASAAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9wYXJzaW5nLW5vc25pZmYtc3RkZXJyLnR4
dFVUCQAD6Hg8Weh4PFl1eAsAAQT1AQAABBQAAAA1jbEKwjAUAHe/4m2Z2nQs2aQGEawd6uAa01cT
CEnIe7X49xax63HcdcNtHK4aej2Ox7NWcPITxMQQkpmAbPGZwTAIx5yVlCFZE1wiVm3bNHJGtk7G
RNHPsyxIaSkWaSfVkjMWawhrQ54EPNGahXA7xD3eX3oN/MlIYAr+3iaEtOIEq8MI4lF1KTJGru6b
peDfFuAJXv6NsT58AVBLAwQUAAIACADzfspKGeE9XKwAAADqAgAAPwAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvbm9zbmlmZi9zY3JpcHQtc3RkZXJyLnR4dFVUCQAD6Xg8
Wel4PFl1eAsAAQT1AQAABBQAAADV0LEOgjAQxvHdp7iNCcpISIwxSIyJyICDay2HrWlawh0Cby8a
fQQG9sv/fvmy8lKV5xyKvKr2xzyFg6nBeQbrZQ2kOtMySIZAM7epENYrabUnTpMkjkWDrLRwnpxp
GtEh+b5TSOJJUTsFcEcle8I56P6t4lTkwFOLBLLD7ytprR+whkGjg+AWZt4xOg6v81UKv3gAhuBh
XuiiTbYgevexbUcxrli/5uEXs78BUEsDBBQAAgAIAPN+ykp0I+xorgAAAPYCAABDABwAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9ub3NuaWZmL3N0eWxlc2hlZXQtc3RkZXJy
LnR4dFVUCQAD6Xg8Wel4PFl1eAsAAQT1AQAABBQAAADVz70KwkAQBODep5gulTlLCYhIDCIYLc7C
9jw3XuDYC9n1J29vFF/Bwn6Y+aY87O1hV6GurF1tqgLr9gJOis71QhAdIkkgUjhFFlS7wpiYvIsh
iRbz+WxmGlIfDCfhtmlMT5JuvScxXiTvhgxn8u42lnFilNai3tYVdOhI4Hr6rLkY04MueARiZKdp
mViJdXocUwW+1RlawbW9E+eT8ufu5Vu4+G/90zz//MBv+C9QSwMECgAAAAAAE3/KSgAAAAAAAAAA
AAAAACUAHABpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQJAAMmeTxZqXs8
WXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAATf8pKAAAAAAAAAAAAAAAALwAcAGltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvVVQJAAMmeTxZqXs8WXV4CwABBPUB
AAAEFAAAAFBLAwQKAAAAAAATf8pKAAAAAAAAAAAAAAAANQAcAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvVVQJAAMmeTxZqXs8WXV4CwABBPUBAAAE
FAAAAFBLAwQKAAAAAAATf8pKAAAAAAAAAAAAAAAAQQAcAGltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMvVVQJAAMmeTxZqXs8WXV4
CwABBPUBAAAEFAAAAFBLAwQUAAIACAATf8pKb/ZzLD0CAADINwAAagAcAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMvZm9ybS12
YWxpZGF0aW9uLXJlcG9ydFZhbGlkaXR5LXN0ZGVyci50eHRVVAkAAyZ5PFkmeTxZdXgLAAEE9QEA
AAQUAAAA3du9btwwDADgvU/hPkAKipRE6RAUCDoVXYqiP0PRQdZPauBiH+5cpI9fZ+iWlRy4CoKF
DxJNibIRHN9BvHMwuXAK8UTpHRBNP/r8adm/9tv+5c+69uvD5fKTCJlPGTmEX9OPcl2X9fE0Pex7
f7rs075Nl2u/9XWf7r99/L705w/bul+387lfTxP85dGRCgBSh/fTtk73n89lH9v16Rjr9e44MrgA
R/fn38u5T+X/CGVfjgcst2lZj6bt8Wi9vX2Dr1q8oIW4mLH4BqqWIGiJmFQtUdDC3M1YUvNmLAVV
Y987IQuODh3IjGWErGmJIGRxNYKLTtUiNy8NfNW1oJilQqzBjCW52Ywls+4aI0FLqWzGUl1TtXjB
d3IeqrkyZjFLAGzOjMWjarxktpP3RS0x685Lkoz9EMxYCqOqJQta5prMWJrTPO87kDy/dPYmLIQB
EldVixO05IZmLLNqrc8BCloqdzOW1nRjnwQtQ7XWJ2pxUEDV4gUtiHYsxGzGEvysagmCllicGQsP
3TUWBS05NjOW0knVwoKWmrMZS+tD1ZIELcMHKxaEWTXvYxKsWwavGi8oWYNlHGYsKanGC4GgJbfZ
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
0j7b+uUS/PWDJm5wUQnffvPv/X0aX8toztaWXsVUd0ydCsdMQvxaNELcAFBLAwQUAAIACAA6f8pK
siFaXQ0BAAB9AwAAUQAcAGpzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVy
ZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1kaWZmLnR4dFVUCQADb3k8WXB5PFl1eAsA
AQT1AQAABBQAAADdkTFPw0AMhff8CqsTKLinSiAxpkCQEEVUpCLz9eI0V11yp7NPbf49LQWJgY0B
xOThe7afnxER1Kt3qSdWd1q0KutK1bR+tPJRbpJ1jXohR5oJbej8QGz75LT4qJwefRIUYsFInJyw
2rJqfK9C9OJlDISm03ZAo01nhw3urHRo+5Ai4YYE/W7AgzZQlBHZ+cO0qAPjFdI+kBFqprKXLM/z
P2xVG0navRstCsDL64vZDPJTKYoMlvOqguMG30J7dg6WYdKmwYj1w+SHGL/Dfr09ZPc7ML+fPyy+
Qu58cg2sCU6SKdSa4fOC6b9oOD2JkzHE3CbnxqWOTM0xGYmJMshgVVYruH1+Wi7KVZm9AVBLAwQU
AAIACAA6f8pKFpJEf9UAAADDBgAAVQAcAGpzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13
aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1leHBlY3RlZC50eHRVVAkA
A295PFlveTxZdXgLAAEE9QEAAAQUAAAA7ZWxagUhEEV7v+JilUDIP4SwpEnYhd0f8PnGaOKq6Ij4
93Efr0mbJs02A3LOvUzlbFS4oFnFsColCseDAnqs2NU3IeXIkXsiaKtcgNKaSqGhObZwe6qZ8EY8
t7DkmChzX31kcFapYATYEprqz0LMAaXe4k+3/ua8RyGCGjO70RkN5PKyrhL7sNQnDdNE72OjKy4d
cpvWDa/zx/I+bZMcneLQcew3subhEa5Amho0uxjkSU960pOe9A80Xr5I8z+x+6Ew1fu+qFzG/z8c
zpWE+HUEhPgBUEsDBBQAAgAIADp/ykrIlqAodAgAAIYkAABZABwAanMvZG9tL3Byb3RvdHlwZS1j
aGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy01LXBy
ZXR0eS1kaWZmLmh0bWxVVAkAA3B5PFlweTxZdXgLAAEE9QEAAAQUAAAA5Vptb+O4Ef6eX0Ek6KU9
RLId29nYzrrYzQt66F4bNEH3Y0FJVMQNJepEKrb32v/e4ZssyZLjw26BK7KHPUvkkHxm5pkXCnuV
yJQtj64SgiP4SYnEKExwIYh8f1rK2Ls8hWEhN4wsj+aMZs9naP5CBZUkQr8eIfgjyVp6EQl5gSXl
2RxlPCMLPRXwIiKFF3ApeTpHo3yNIngm0eLoP0dmO7tJyBkv5uhkOJ7pOf+OMnJD49jOBzh8fip4
mUWeE40v1X/1g8wJgjMaoZMoisxczDPpxTilbDNHKc+4yHFoAaa4eKIAeURSNDRDOQfltB4FYaDR
C9GAklEL6Xg87thf4Ex4ghQ0rk0K+pXoM+qHeozEco6G/tSNR1TkDMMmNAPLWIQrGskEFg+Hf7D4
cBTR7KlaabBZ16inpncsXJolAEpW4gl/IUVLo+l0uugzNiHGDL7yySc4S9jFMeMY1CjoUyKbnlNS
16A+Bl3cURxMTyWoOGypLHHAiBcSxhpaenrfhpVWCWjnaR8qqq0KnG+RPZBQ+a6XNHpxkzJtuljO
OrsDoYb52pxwu87BvbA/qEbOkK9+2hr2whM0IsFG/R9pqB8ZD5/vcSF9UHUe00JIL0woi3oNq457
gPVn+zYrSAquPXvlPHuGM78hnBcokQbtpo51wBZJQ8w8zOgTxIbkHWoVRDH9LziLGHHmsPsoE6r3
hBiHbvkcloVQrlGw2xGIA/BO6TwGZ1bEMcGj4e1D0eD5Lh2eCrJZtIjpT1/zlzEx8iV/1cx+XPC0
ZWybH9UZyup/K9OAFMAmUmeXGXXAd9OoZe1s1kiALly60qCL5Mlk0plu6t6vcozaaGpCwIRBlfAt
Dyw9uyhi4DboNLYJq6a4VrEz4Zgi0WuWPUkqL1R0KpjWgC6bWNY4RRqxCos8E616CuypX0GPguBn
Tw0YQDTFT6ThmTk6rwweMKysqARDSA2AAaDYJ9TWe+uVy8msN/fGJN4mAEUr2LEqj7Vo7lgaxVFz
KThb9IvPyGyxr6ZXO9ksU8dho6K/XEfRzgYoIqx/BZm9imbwI3oo85wXEiptYZkMRk1TkkmBfhzA
ebiUCTf2NtVYNTPAegk8DZ2n9AIt01P/KxkFBgMltLBLZxeO2CrdYMauHYJO6XNTy1K89lrlPYW+
wA6dD6u60z4a7L73nCqyq5BuHNOF0+c5MWXTW5HgmUpPFirsjCUMcOSfi0VNjYlV+kRILEvxsQyg
hlf10FfR0wlHLZGcswAXzXl3dMyIjtDtRMq/VqNVchqbOLZ9lHp03YJ67m8J+zLH3lZuS4uYronZ
x+bjYVMlH+sexITZbhVfUcgFRYtq1Z5fPZpFZA1Jao9q20JYg9Cll01GjfJ2abNYpmDagO0sTXBe
wNevAr3YAh0ZErsiZN40WPtcVTD7WgGuOrPG0TQucGoQtuKk2UbUYuS6J9Pu2mYDvSZf2VpPGDSO
0DMfUJguZndbetma3DOpDdGcq9rIaLc9bjbHdg9jvl0O97YEkcuz5pgPLim4q86wPvvoamTrTnLx
ziW0XZh7gqR22xEpNr18PedmvIDhRU+WsfqrFkx0HW70cHE97BJhOCBsjmOIsLOd5WZcb6ILcgaq
HqN/o+PFUVWIa+W7vZph6NB57MlNTjq3Ou5FZAVbV9yEMJ0gq2YUq2a0p0adpEQI13j02rnLLbXo
eNCJ+pBSCCUGGqIXyktxXY1AM/uVZNe1YtlV513L0S4x9eKicjmwVjPB5Xb7bplok8jY1cCD0Fhq
QI9DpIqJRrmwbV9P01evs0EJUZXV846r7xF9mcc8tDbkpVT5oh5+ASt1JbFTwJcYsEAFGzlF6sVS
7wI9zGNCzEkDW2mfAL/SQXIkYS4w0pZqAr1QrHKy/NlyAsAGBV+Bw6ETSDCstU0Rlb5qgio9Jhe2
i69aEfvusoNqZNXfYbOIuk867R4/pRHcsoxiykHCXb47Kgr0YVzgF7A9WIC06kr9prdT6ryRPzYt
0/bjh6v+HT44ubm5qYX0yeXdzd30rjM/QXPZzeLb29su1HOS5pChGs63bVpL0odHQNqI/NvZ5fDS
5q2QEVz8S7cH7iqgRvS1KVEiVwP71e1KhAXNwadF+P44kTIX88EAf8Fr/4nzJ1iUU6Goq8cGjAZi
8OWXkhSbwcif+Of2xYfW0v8ijpewr95viZo7hzwinvIhWYHcn8HTypnvJ5e1JQDKfigMeLSBH4gH
wI2FeH/qbgLqe2EyWg7+Cf6EnDW4wRIPbj8/DD6T4K9U2p+PJWXR4B9Qd7EgHs0ToImgaQkdNy8G
wBwwrycJZFy4zpdMgk5iEIGSecElVynYCxPIsF6Iw0Rd7VZUJh5N8xIiGqLH46vMA9kcCLvxBOO6
1OTCm3rQ95SY+XItQZtRU4naN6TT3Rl9t+8bV3d+JBJowqOWiLrwoMa3Iv1NFeqvk9BfCbatx+ly
cgk2B4FlQwyywQFCUNJPl/cfHh6QMhOPUfzHPyEq0A+/lFwu4jLT6pk3uwH4FfB+O+rZIahnvzPU
0+EBqHuEvgW1/qljr6WE06Wd3tXwMCKa+/WrRKzJ7bfR6AAb/ZAFIl/02+kKbvvLe1AJfvQz2M28
1a2nZ2hNStSekTOleuHBFwhVPV4f/k3sONgA52/dAOO3boDJWzfA9P/XADu5tpktoat8PVVaob02
2qM+PyShGhvB/WV5dzVQP/r5w0+fzFvDRmpAJLxkUU0UBQSZV2sZ9eijz1ggV418K/6bOPJ9lT9/
y8qP37Lyk7es/PT3pvz/tAX9Xneh6cUhtr14pT8XZRgSIeKSsc29+vctkerTZVGS73ybeHcI2nd7
mPB94RxykZzuuUg+3j48ouu//3z/6fbx9lv40/rRHxDgAq7/+dF/AVBLAwQUAAIACAA8f8pKWjaN
IvMAAAAdAgAAIAAcAGpzL2RvbS9yZWdyZXNzLTE1NzI0Ni1zdGRlcnIudHh0VVQJAAN0eTxZdHk8
WXV4CwABBPUBAAAEFAAAAM2RwUrDQBBA737FHO0lW2ta0Ftt8WLBQEAF8bDZnZCxm51lZ5PYv3eF
CIL17nXeG5jHcPNuXq/Lcn3zdgs7p0WgOtwN5OwTRiH2QALUB4c9+oQWyEPDqQO1DcGR0Sk7ol4M
Wyx0CGrHWfNJ1B5HdBwwqsrp1HLsRVHVscea+iGPOBZhJj/kev/w2xN7VPVJEvbqQE3U8aSqSKNO
eB91jxPHo6itCCaZeY1xJINStN/CeQ6Xy4+r1WpTro1ZLkB7+w/L8k7iv8PO4bkrZ23a5aKAR4/A
LaQOIU0MEzkHDcIgaAt47sh0kO/6evbgLbbk8/ziE1BLAwQUAAIACAA8f8pKUVL1UvQAAAAdAgAA
KAAcAGpzL2RvbS9yZW1vdmluZy1DZi1jaGFyYWN0ZXJzLXN0ZGVyci50eHRVVAkAA3R5PFl0eTxZ
dXgLAAEE9QEAAAQUAAAAzZFNS8QwEIbv/oo5upemq9sevO0HXlywUFBBPKTJlI6bZkImbd1/b4UK
guvd6/s8L8zLcPNuXm83m3L9dgd7p0WgOu4GcvYJoxB7IAHqg8MefUIL5KHh1IHahuDI6DQ7ol4M
W8x0CGrPs+aTqAOO6DhgVJXTqeXYi6KqY4819cMccczCQn7I9eHhtyf2pOqzJOzVkZqo41lVkUad
8D7qHieOJ1FbEUyy8BrjSAYla7+Fyxyu84/1TdEWhTH5CrS3/3DZ3En897BLeNllS1O2+SqDR4/A
LaQOIU0MEzkHDcIgaDN47sh0MN/19ezBW2zJz/nVJ1BLAwQKAAAAAAB7gMpKAAAAAAAAAAAAAAAA
BgAcAG1lZGlhL1VUCQAD2Xo8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgANX/KSkikDzr0
AAAAHQIAACEAHABtZWRpYS9hZG9wdC1ub2RlLWNyYXNoLXN0ZGVyci50eHRVVAkAA2V5PFlleTxZ
dXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2pqEHb7XFiwUDARXEw2Z3QsZudpadTWL/vStU
EKx3r+/7HsxjuHs3r+u6Xldvt7BzWgSaw91Ezj5hFGIPJEBjcDiiT2iBPHScBlDbEBwZnbIj6sWw
xUKHoHacNZ9E7XFGxwGjapxOPcdRFDUDe2xpnHLEsQhn8kNu9w+/PbFH1Z4k4agO1EUdT6qJNOuE
91GPuHA8itqKYJIzbzHOZFCK/lu4zOG6/Lip6kpvjClXoL39h8tyJ/Hfwy7h866ys5u+XBXw6BG4
hzQgpIVhIeegQ5gEbQHPA5kB8l1fz568xZ58zq8+AVBLAwQUAAIACAA2f8pKNGBiXPUAAAAdAgAA
KwAcAG1lZGlhL2F1ZGlvLWNvbmN1cnJlbnQtc3VwcG9ydGVkLXN0ZGVyci50eHRVVAkAA2d5PFln
eTxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2prFSb7XFiwUDARXEw2Z3QsZudpadTWr/
vREiCNa71/d9D+Yx3Lyb12VZLsu3W9g6LQLV/m4gZ58wCrEHEqA+OOzRJ7RAHhpOHahNCI6MTpMj
6sWwxUyHoLY8aT6J2uGIjgNGVTmdWo69KKo69lhTP0wRxyzM5Idc7x5+e2IPqj5Jwl7tqYk6nlQV
adQJ76Pu8cjxIGojgklmXmMcyaBk7bdwnsNl/nFVFOvrwph8Adrbf7hs6iT+e9g5PO+6Wa1Xbb7I
4NEjcAupQ0hHhiM5Bw3CIGgzeO7IdDDd9fXswVtsyU/5xSdQSwMEFAACAAgANn/KSsQ5rqX0AAAA
HQIAAC8AHABtZWRpYS9hdWRpby1jb250cm9scy1kby1ub3QtZmFkZS1vdXQtc3RkZXJyLnR4dFVU
CQADaHk8WWh5PFl1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaSzY1oQVvtcWLBQMBFcTDZndC
xm52lp1NYv+9ESII1rvX930P5jHcvJvXoiyL7dst7J0Wgep4N5CzTxiF2AMJUB8c9ugTWiAPDacO
1C4ER0an2RH1YthipkNQe541n0QdcETHAaOqnE4tx14UVR17rKkf5ohjFhbyQ64PD789sSdVnyVh
r47URB3Pqoo06oT3Ufc4cTyJ2olgkoXXGEcyKFn7LVzmcJ1/rG+KYlMak69Ae/sPl82dxH8Pu4SX
Xetts2nzVQaPHoFbSB1Cmhgmcg4ahEHQZvDckelgvuvr2YO32JKf86tPUEsDBBQAAgAIADd/ykq3
7mWn9gAAAB0CAAA6ABwAbWVkaWEvYXVkaW8tY29udHJvbHMtdGltZWxpbmUtaW4tbWVkaWEtZG9j
dW1lbnQtc3RkZXJyLnR4dFVUCQADaXk8WWl5PFl1eAsAAQT1AQAABBQAAADNkU1Lw0AQhu/+ijna
SzZtYg/e+oEXCwYCKoiHze6EjN3sLDubxP57I1YQrHev7/O8MC/DzZt5KcqyWL/ews5pEagO24Gc
fcQoxB5IgPrgsEef0AJ5aDh1oDYhODI6zY6oZ8MWMx2C2vGs+SRqjyM6DhhV5XRqOfaiqOrYY039
MEccs3AmP+R6f//bE3tU9UkS9upATdTxpKpIo054F3WPE8ejqI0IJjnzGuNIBiVrv4XLHK7z9+Wq
XOZoTL4A7e0/XDZ3Ev897BL+2lW0q5t1my8yePAI3ELqENLEMJFz0CAMgjaDp45MB/Ndn88evMWW
/JxffQBQSwMEFAACAAgAN3/KSgjz3sL1AAAAHQIAAB8AHABtZWRpYS9hdWRpby1kYXRhLXVybC1z
dGRlcnIudHh0VVQJAANpeTxZaXk8WXV4CwABBPUBAAAEFAAAAM2RTUvDQBCG7/6KOdpLtiFVWm/9
wIsFAwEVxMNmd0LGbnaWnU1i/70RIgjWu9f3eV6Yl+H63bwWq1WxebuDvdMiUB53PTn7hFGIPZAA
dcFhhz6hBfJQc2pBbUNwZHSaHFEvhi1mOgS150nzSdQBB3QcMKrS6dRw7ERR2bLHirp+ijhmYSY/
5Orw8NsTe1LVWRJ26kh11PGsykiDTngfdYcjx5OorQgmmXmFcSCDkjXfwmUO18uPPG9u1rkxywVo
b//hsqmT+O9hl/C8q9isb5vlIoNHj8ANpBYhjQwjOQc1Qi9oM3huybQw3fX17N5bbMhP+dUnUEsD
BBQAAgAIADh/ykrp4joT9QAAAB0CAAAeABwAbWVkaWEvYXVkaW8tcmVwYWludC1zdGRlcnIudHh0
VVQJAANseTxZbHk8WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNtUgrbfa4sWCgYAK4mGz
O0vGbnaWnU1j/70RKwjWe6/v+x7MY7h9N6/XVVXN325h7bUI1Nu7gbx9wiTEAUiA+uixx5DRAgVo
OXegVjF6MjpPjqgXwxYLHaNa86SFLGqDe/QcMana6+w49aKo7jhgQ/0wRZyKeCS/5Gbz8NcTu1PN
QTL2aktt0umg6kR7nfE+6R5HTjtRKxHMcuQNpj0ZlML9CKc5XJYf8ytdLhbGlDPQwZ7hsqmT+f9h
p/D3riUu3Y0rZwU8BgR2kDuEPDKM5D20CIOgLeC5I9PBdNfXs4dg0VGY8otPUEsDBBQAAgAIADh/
ykrCMayu9QAAAB0CAAA4ABwAbWVkaWEvYXV0by1wbGF5LWluLXNhbmRib3gtd2l0aC1hbGxvdy1z
Y3JpcHRzLXN0ZGVyci50eHRVVAkAA2x5PFlseTxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo5
2ku2MbGgt9rixYKBgAriYbM7IWM3O8vOJrH/3ggRBOvd6/u+B/MYbt7Na1GWZfF2CzunRaA63A3k
7BNGIfZAAtQHhz36hBbIQ8OpA7UNwZHRaXZEvRi2mOkQ1I5nzSdRexzRccCoKqdTy7EXRVXHHmvq
hznimIWF/JDr/cNvT+xR1SdJ2KsDNVHHk6oijTrhfdQ9ThyPorYimGThNcaRDErWfgvnOVyuP/K8
La6vjFmvQHv7D5fNncR/DzuHl1355mbTrlcZPHoEbiF1CGlimMg5aBAGQZvBc0emg/mur2cP3mJL
fs4vPgFQSwMECgAAAAAAe4DKSgAAAAAAAAAAAAAAAA8AHABtZWRpYS9jb250cm9scy9VVAkAA9l6
PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAHuAykoAAAAAAAAAAAAAAAAUABwAbWVkaWEv
Y29udHJvbHMvaXBhZC9VVAkAA9l6PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBBQAAgAIAHuAykqS
xd4z9AAAAB0CAABZABwAbWVkaWEvY29udHJvbHMvaXBhZC9jbG9zZS1wYWdlLXdpdGgtcGljdHVy
ZS1pbi1waWN0dXJlLXZpZGVvLWFzc2VydGlvbi1mYWlsdXJlLXN0ZGVyci50eHRVVAkAA9l6PFnZ
ejxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2bWkP3mqLFwsGAiqIh83uhEy72Vl2Non9
964QQbDevb7vezCP4eZk3tbbclO+38HeaRGojvcDOfuMUYg9kAD1wWGPPqEF8tBw6kDtQnBkdMqO
qFfDFgsdgtpz1nwSdcARHQeMqnI6tRx7UVR17LGmfsgRxyLM5IdcHx5/e2LPqr5Iwl4dqYk6XlQV
adQJH6LuceJ4FrUTwSQzrzGOZFCK9lu4zuG2/Fiu1na5MaZcgPb2Hy7LncR/D7uG513NymzbclHA
k0fgFlKHkCaGiZyDBmEQtAW8dGQ6yHd9PXvwFlvyOb/5BFBLAwQUAAIACAA5f8pK7Z/bIfQAAAAd
AgAAMAAcAG1lZGlhL2NvbnRyb2xzLXJpZ2h0LWNsaWNrLW9uLXRpbWViYXItc3RkZXJyLnR4dFVU
CQADbnk8WW55PFl1eAsAAQT1AQAABBQAAADNkU1LxDAQhu/+ijm6l6Z1Ww/e9gMvLlgoqCAe0mRK
x00zIZN23X9vhQqC693r+zwvzMtw+25e12VZVm93sHNaBOrDdiRnnzAKsQcSoCE4HNAntEAeWk49
qE0IjoxOsyPqxbDFTIegdjxrPona44SOA0ZVO506joMoqnv22NAwzhHHLCzkh9zsH357Yo+qOUvC
QR2ojTqeVR1p0gnvox7wxPEoaiOCSRbeYJzIoGTdt3CZw3X+URRYFZUx+Qq0t/9w2dxJ/PewS3jZ
tb4xt12+yuDRI3AHqUdIJ4YTOQctwihoM3juyfQw3/X17NFb7MjP+dUnUEsDBBQAAgAIADp/ykqD
JKKA8wAAAB0CAAA+ABwAbWVkaWEvY29udHJvbHMtc2hvdWxkLW5vdC10cmlnZ2VyLWlzb2xhdGVz
LWJsZW5kaW5nLXN0ZGVyci50eHRVVAkAA295PFlveTxZdXgLAAEE9QEAAAQUAAAAzZFBS8QwEIXv
/oo5upemrlXB27qLFxcsFFQQD2kypeMmmZBJW/ffW6GC4Hr3+r7vwTyG23fzellV1c3bLWydFoF6
fzeQs0+YhDgACZCPDj2GjBYoQMu5B7WJ0ZHReXZEvRi2WOgY1ZZnLWRROxzRccSkaqdzx8mLorrn
gA35YY44FXEhP+Rm9/DbE3tQzVEyerWnNul0VHWiUWe8T9rjxOkgaiOCWRbeYBrJoBTdt3Caw3n5
cbG+MqY1plyBDvYfLps7mf8edgovuzSur7tyVcBjQOAOco+QJ4aJnIMWYRC0BTz3ZHqY7/p69hAs
dhTm/OwTUEsDBBQAAgAIADp/ykpVDVhC9AAAAB0CAAAgABwAbWVkaWEvY29udHJvbHMtc3RyaWN0
LXN0ZGVyci50eHRVVAkAA295PFlveTxZdXgLAAEE9QEAAAQUAAAAzZFNS8QwEIbv/oo5upemS7uC
3vYDLy5YKKggHtJkSsdNMyGTtu6/t0IFwfXu9X2eF+ZluHk3r0VZlrdvd7B3WgSq424gZ58wCrEH
EqA+OOzRJ7RAHhpOHahtCI6MTrMj6sWwxUyHoPY8az6JOuCIjgNGVTmdWo69KKo69lhTP8wRxyws
5IdcHx5+e2JPqj5Lwl4dqYk6nlUVadQJ76PuceJ4ErUVwSQLrzGOZFCy9lu4zOE6/1ivcVMWxuQr
0N7+w2VzJ/Hfwy7hZVex0Tdtvsrg0SNwC6lDSBPDRM5BgzAI2gyeOzIdzHd9PXvwFlvyc371CVBL
AwQUAAIACAA6f8pK5H3ikvQAAAAdAgAAIgAcAG1lZGlhL2V2ZW50LXF1ZXVlLWNyYXNoLXN0ZGVy
ci50eHRVVAkAA3B5PFlweTxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2NbGCt9rixYKB
gAriYbM7IWM3O8vOJrH/3ggRBOvd6/u+B/MYbt7Na1GW18XbLeycFoHqcDeQs08YhdgDCVAfHPbo
E1ogDw2nDtQ2BEdGp9kR9WLYYqZDUDueNZ9E7XFExwGjqpxOLcdeFFUde6ypH+aIYxYW8kOu9w+/
PbFHVZ8kYa8O1EQdT6qKNOqE91H3OHE8itqKYJKF1xhHMihZ+y2c53CZf6yvmmJTGpOvQHv7D5fN
ncR/DzuHl13rm2bT5qsMHj0Ct5A6hDQxTOQcNAiDoM3guSPTwXzX17MHb7ElP+cXn1BLAwQUAAIA
CAA9f8pKhkbAjPQAAAAdAgAAJQAcAG1lZGlhL21lZGlhLWNvbnRyb2xzLWNsb25lLXN0ZGVyci50
eHRVVAkAA3V5PFl1eTxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2bUMO3mqLFwsGAiqI
h83uhEy72Vl2Non990aIIFjvXt/3PZjHcHMyb9uiKLfvd7B3WgSq4/1Azj5jFGIPJEB9cNijT2iB
PDScOlC7EBwZnWZH1Kthi5kOQe151nwSdcARHQeMqnI6tRx7UVR17LGmfpgjjllYyA+5Pjz+9sSe
VX2RhL06UhN1vKgq0qgTPkTd48TxLGongkkWXmMcyaBk7bdwncNt/rHeNEWhjclXoL39h8vmTuK/
h13Dy65NuS7bfJXBk0fgFlKHkCaGiZyDBmEQtBm8dGQ6mO/6evbgLbbk5/zmE1BLAwQUAAIACAA9
f8pKmEU3cvQAAAAdAgAAOQAcAG1lZGlhL21lZGlhLWNvbnRyb2xzLXNoYWRvdy1jb25zdHJ1Y3Rp
b24tY3Jhc2gtc3RkZXJyLnR4dFVUCQADdXk8WXV5PFl1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+
ijnaS7ZqbYu32uLFgoGACuJhszshYzc7y84msf/eFSII1nuv7/sezGO4/jBvN4vF8vb9DrZOi0C5
v+/J2WeMQuyBBKgLDjv0CS2Qh5pTC2oTgiOjU3ZEvRq2WOgQ1Jaz5pOoHQ7oOGBUpdOp4diJorJl
jxV1fY44FmEiv+Rq9/jXE3tQ1VESdmpPddTxqMpIg074EHWHI8eDqI0IJpl4hXEgg1I0P8JpDpfz
z6vrNa5WxsxnoL09w2W5k/j/YafwtMuscdnMZwU8eQRuILUIaWQYyTmoEXpBW8BLS6aFfNf3s3tv
sSGf84svUEsDBBQAAgAIAD1/ykot7oTNCwEAADoEAAA2ABwAbWVkaWEvbWVkaWEtZG9jdW1lbnQt
YXVkaW8tY29udHJvbHMtdmlzaWJsZS1zdGRlcnIudHh0VVQJAAN2eTxZdnk8WXV4CwABBPUBAAAE
FAAAAOWSwUrDQBCG7z7FHO0l27Shrd5qixcLBgIqiIfN7oSM3ewsO5vWvr0RWhCsJy+i1/m/gfmZ
j+tX8zwtitni5RpWTotAubnpydkHjELsgQSoCw479AktkIeaUwtqGYIjo9PAiHoybDHTIagVD5hP
ota4Q8cBoyqdTg3HThSVLXusqOuHEccsHJNPcLW++8qJ3arqIAk7taE66nhQZaSdTngbdYd7jltR
SxFMcswrjDsyKFlzAs7ncDl+yyfTej4zZjwC7e0vbDbsJP6+2Ln42OtqYWfNeJTBvUfgBlKLkPYM
e3IOaoRe0Gbw2JJpYbjr49m9t9iQH+YXfJJj/p/lyCeN/Yty5Hle/ECOd1BLAwQUAAIACABAf8pK
5bBWQAwBAAA6BAAAKgAcAG1lZGlhL21lZGlhLWRvY3VtZW50LWF1ZGlvLXNpemUtc3RkZXJyLnR4
dFVUCQADd3k8WXd5PFl1eAsAAQT1AQAABBQAAADlksFKw0AQhu8+xRztJbtJi1ZvtcWLBQMBFcTD
ZndCxm52ws6mtW9vhBYE68mL6HX+b2B+5uP61T5PZ7PL/OUalt6IQLm+Gci7B4xCHIAEqOs9dhgS
OqAANacW1KLvPVmTRkbUk2WHmel7teQRC0nUCrfouceoSm9Sw7ETRWXLASvqhnHEMesPySe4Wt19
5cRtVLWXhJ1aUx1N3Ksy0tYkvI2mwx3HjaiFCCY55BXGLVmUrDkCp3M412957go9tVZPwAT3C5uN
O4m/L3YqPvTSublo9CSD+4DADaQWIe0YduQ91AiDoMvgsSXbwnjXx7OH4LChMM7P+CiH/sdyFBrn
8z8oR6HtVfMDOd4BUEsDBBQAAgAIAEN/ykoYdOmK9AAAAB0CAAAtABwAbWVkaWEvbWVkaWEtZnVs
bHNjcmVlbi1sb29wLWlubGluZS1zdGRlcnIudHh0VVQJAAN+eTxZfnk8WXV4CwABBPUBAAAEFAAA
AM2RQUvDQBCF7/6KOdpLNtW2iLfa4sWCgYAK4mGzO0vGbnaWnU1i/70RIgjWu9f3fQ/mMdy8m9fr
1epm83YLO69FoDrc9eTtEyYhDkAC1EWPHYaMFihAw7kFtY3Rk9F5ckS9GLZY6BjVjictZFF7HNBz
xKQqr7Pj1ImiquWANXX9FHEq4kx+yPX+4bcn9qjqk2Ts1IGapNNJVYkGnfE+6Q5HTkdRWxHMMvMa
00AGpXDfwnkOl+XH8mptHRpTLkAH+w+XTZ3Mfw87h+ddZrneuHJRwGNAYAe5Rcgjw0jeQ4PQC9oC
nlsyLUx3fT27DxYdhSm/+ARQSwMEFAACAAgARH/KSqqgnNXzAAAAHQIAACEAHABtZWRpYS9tZWRp
YS1sb2FkLWV2ZW50LXN0ZGVyci50eHRVVAkAA395PFl/eTxZdXgLAAEE9QEAAAQUAAAAzZFNS8Qw
EIbv/oo5upemalH0th94ccFCQQXxkCZTOm6SCZm0df+9FSoIrnev7/O8MC/D7bt5vaqq2/LtDrZO
i0C93wzk7BMmIQ5AAuSjQ48howUK0HLuQa1jdGR0nh1RL4YtFjpGteVZC1nUDkd0HDGp2unccfKi
qO45YEN+mCNORVzID7nZPfz2xB5Uc5SMXu2pTTodVZ1o1Bnvk/Y4cTqIWotgloU3mEYyKEX3LZzm
cF5+XFxWxt4YU65AB/sPl82dzH8PO4WXXRrxuitXBTwGBO4g9wh5YpjIOWgRBkFbwHNPpof5rq9n
D8FiR2HOzz4BUEsDBAoAAAAAAE5/ykoAAAAAAAAAAAAAAAAMABwAbWVkaWEvdHJhY2svVVQJAAOU
eTxZqXs8WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABBf8pKdDp+TfQAAAAdAgAANQAcAG1lZGlh
L3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctaG9yaXpvbnRhbC1zdGRlcnIudHh0VVQJAAN6eTxZ
enk8WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNrUxgrfa4sWCgYAK4mGzOyFjNzvLziax
/94IEQTr3ev7vgfzGG7ezeumKG7Kt1vYOS0C1eFuIGefMAqxBxKgPjjs0Se0QB4aTh2obQiOjE6z
I+rFsMVMh6B2PGs+idrjiI4DRlU5nVqOvSiqOvZYUz/MEccsLOSHXO8ffntij6o+ScJeHaiJOp5U
FWnUCe+j7nHieBS1FcEkC68xjmRQsvZbOM/hMv9YX5nrQhuTr0B7+w+XzZ3Efw87h5ddm3Jdtvkq
g0ePwC2kDiFNDBM5Bw3CIGgzeO7IdDDf9fXswVtsyc/5xSdQSwMEFAACAAgAQn/KSovIfxjzAAAA
HQIAAC4AHABtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXJ0bC1zdGRlcnIudHh0VVQJ
AAN7eTxZe3k8WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNsUgxVtt8WLBQEAF8bDZnSXT
bnaWnU1i/70RIgjWu9f3fQ/mMdwezdtNVW3K9zvYeS0C9eF+IG+fMQlxABKgPnrsMWS0QAFazh2o
bYyejM6zI+rVsMVCx6h2PGshi9rjiJ4jJlV7nR2nXhTVHQdsqB/miFMRF/JDbvaPvz2xJ9WcJWOv
DtQmnc6qTjTqjA9J9zhxOonaimCWhTeYRjIohfsWLnO4Lj/Wa2c31phyBTrYf7hs7mT+e9glvOxq
dXXrylUBTwGBHeQOIU8ME3kPLcIgaAt46ch0MN/19ewhWHQU5vzqE1BLAwQUAAIACABCf8pK4nQ4
5vUAAAAdAgAAMwAcAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmctdmVydGljYWwtc3Rk
ZXJyLnR4dFVUCQADfHk8WXx5PFl1eAsAAQT1AQAABBQAAADNkUFLw0AQhe/+ijnaS7bREoO32uLF
goGACuJhszshYzc7y84msf/eCBEE693r+74H8xhu3s3r9WZTXr3dws5pEagOdwM5+4RRiD2QAPXB
YY8+oQXy0HDqQG1DcGR0mh1RL4YtZjoEteNZ80nUHkd0HDCqyunUcuxFUdWxx5r6YY44ZmEhP+R6
//DbE3tU9UkS9upATdTxpKpIo054H3WPE8ejqK0IJll4jXEkg5K138J5DpfrjzxvyyI3Zr0C7e0/
XDZ3Ev897BxedhU3ZdGuVxk8egRuIXUIaWKYyDloEAZBm8FzR6aD+a6vZw/eYkt+zi8+AVBLAwQU
AAIACABDf8pKtD6izvUAAAAdAgAANwAcAG1lZGlhL3RyYWNrL3RyYWNrLWN1ZS1yZW5kZXJpbmct
d2l0aC1wYWRkaW5nLXN0ZGVyci50eHRVVAkAA315PFl9eTxZdXgLAAEE9QEAAAQUAAAAzZFBS8NA
EIXv/oo52ks21tiKt9rixYKBgAriYbM7IWM3O8vOJrH/3ggRBOu91/d9D+YxXH+Yt+uiuC3e72Dr
tAiU+/uenH3GKMQeSIC64LBDn9ACeag5taA2ITgyOk2OqFfDFjMdgtrypPkkaocDOg4YVel0ajh2
oqhs2WNFXT9FHLMwk19ytXv864k9qOooCTu1pzrqeFRlpEEnfIi6w5HjQdRGBJPMvMI4kEHJmh/h
NIfL/PNquV7e5MbkC9DenuGyqZP4/2Gn8LwrX61XTb7I4MkjcAOpRUgjw0jOQY3QC9oMXloyLUx3
fT+79xYb8lN+8QVQSwMEFAACAAgARn/KSsHGCyv1AAAAHQIAACsAHABtZWRpYS90cmFjay90cmFj
ay1jdWVzLWN1ZWNoYW5nZS1zdGRlcnIudHh0VVQJAAODeTxZg3k8WXV4CwABBPUBAAAEFAAAAM2R
TUvDQBCG7/6KOdpLNsXYFm/9wIsFAwEVxMNmd0LGbnaWnU1i/70RIgjWu9f3eV6Yl+H63bzeFMVm
83YHe6dFoDzuenL2CaMQeyAB6oLDDn1CC+Sh5tSC2obgyOg0OaJeDFvMdAhqz5Pmk6gDDug4YFSl
06nh2ImismWPFXX9FHHMwkx+yNXh4bcn9qSqsyTs1JHqqONZlZEGnfA+6g5HjidRWxFMMvMK40AG
JWu+hcscrvOP5dKuV4Ux+QK0t/9w2dRJ/PewS3jedbuuV02+yODRI3ADqUVII8NIzkGN0AvaDJ5b
Mi1Md309u/cWG/JTfvUJUEsDBBQAAgAIAEl/ykrKO/YG9QAAAB0CAAAoABwAbWVkaWEvdHJhY2sv
dHJhY2stY3Vlcy1taXNzZWQtc3RkZXJyLnR4dFVUCQADink8WYp5PFl1eAsAAQT1AQAABBQAAADN
kUFLw0AQhe/+ijnaSzbaWK232uLFgoGACuJhszshYzc7y84msf/eCBEE693r+74H8xiu383rsijW
12+3sHVaBMr9XU/OPmEUYg8kQF1w2KFPaIE81JxaUJsQHBmdJkfUi2GLmQ5BbXnSfBK1wwEdB4yq
dDo1HDtRVLbssaKunyKOWZjJD7naPfz2xB5UdZSEndpTHXU8qjLSoBPeR93hyPEgaiOCSWZeYRzI
oGTNt3Caw3n+cXF5tbpZGpMvQHv7D5dNncR/DzuF513FWq+afJHBo0fgBlKLkEaGkZyDGqEXtBk8
t2RamO76enbvLTbkp/zsE1BLAwQUAAIACABNf8pKe9t3ivUAAAAdAgAASQAcAG1lZGlhL3RyYWNr
L3RyYWNrLWluLWJhbmQtZHVwbGljYXRlLXRyYWNrcy13aGVuLXNvdXJjZS1jaGFuZ2VzLXN0ZGVy
ci50eHRVVAkAA5J5PFmSeTxZdXgLAAEE9QEAAAQUAAAAzZFNS8NAEIbv/oo52ks2rW0Fb/3AiwUD
ARXEw2Z3QsZudpadTWr/vStEEKx3r+/zvDAvw827eb1ZrsrbtzvYOS0C1WE7kLNPGIXYAwlQHxz2
6BNaIA8Npw7UJgRHRqfsiHoxbLHQIagdZ80nUXsc0XHAqCqnU8uxF0VVxx5r6occcSzCRH7I9f7h
tyf2qOqzJOzVgZqo41lVkUad8D7qHk8cj6I2Iphk4jXGkQxK0X4Llzlclx/zxXxdojHlDLS3/3BZ
7iT+e9glPO1aLlbrtpwV8OgRuIXUIaQTw4mcgwZhELQFPHdkOsh3fT178BZb8jm/+gRQSwMEFAAC
AAgATn/KSiDFERX0AAAAHQIAACoAHABtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLXN0
ZGVyci50eHRVVAkAA5R5PFmUeTxZdXgLAAEE9QEAAAQUAAAAzZFBS8QwEIXv/oo5upem1irobd3F
iwsWCiqIhzSZ0nGTTMikW/ffW6GC4Hr3+r7vwTyGu3fzellflTdvt7BxWgSa3d1Izj5hEuIAJEA+
OvQYMlqgAB3nAdQ6RkdG59kR9WLYYqFjVBuetZBFbfGAjiMm1Tide05eFDUDB2zJj3PEqYgL+SG3
24ffnti9ao+S0asddUmno2oSHXTG+6Q9Tpz2otYimGXhLaYDGZSi/xZOczgvPy4qXVfWmHIFOth/
uGzuZP572Cm87Krq+rovVwU8BgTuIQ8IeWKYyDnoEEZBW8DzQGaA+a6vZ4/BYk9hzs8+AVBLAwQU
AAIACABHf8pKK0nsLgwBAAA6BAAAMAAcAG1lZGlhL3ZpZGVvLWNsaWNrLWRibGNraWNrLXN0YW5k
YWxvbmUtc3RkZXJyLnR4dFVUCQADhnk8WYZ5PFl1eAsAAQT1AQAABBQAAADlksFKAzEQhu8+xRzt
ZdNta1FvtcWLBRcWVBAP2WSWHZvNhEy2tW9vxBYE9eRF9Dr/NzA/83HzbB6ns9nF9OkSlk6LQLW+
GsjZO4xC7IEEqA8Oe/QJLZCHhlMHahGCI6NTZkQ9GLZY6BDUkjPmk6gVbtFxwKgqp1PLsRdFVcce
a+qHPOJYhEPyAa5XN585sRtV7yVhr9bURB33qoq01Qmvo+5xx3EjaiGCSQ55jXFLBqVoj8DXOZyO
X8pJU+rWmPEItLe/sFneSfx9sa/i91651XzejkcF3HoEbiF1CGnHsCPnoEEYBG0B9x2ZDvJdb88e
vMWWfJ6f8FGOyT+Wo7TnJf5BOUo7n579QI5XUEsDBBQAAgAIAEh/ykqmYnRp9QAAAB0CAAAqABwA
bWVkaWEvdmlkZW8tY29uY3VycmVudC1wbGF5YmFjay1zdGRlcnIudHh0VVQJAAOHeTxZh3k8WXV4
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
aW9zL21lZGlhL1VUCQADenk8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAQX/KSlx9ahH1
AAAAHQIAAGQAHABwbGF0Zm9ybS9pb3MvbWVkaWEvdmlkZW8tcGxheS1nbHlwaC1jb21wb3NpdGVk
LW91dHNpZGUtb3ZlcmZsb3ctc2Nyb2xsaW5nLXRvdWNoLWNvbnRhaW5lci1zdGRlcnIudHh0VVQJ
AAN6eTxZenk8WXV4CwABBPUBAAAEFAAAAM2RQUvDQBCF7/6KOdpLNsHQirfa4sWCgYAK4mGzO0vG
bnaWnU1q/70RKwjWu9f3fQ/mMdy9mZerul7Vrzew8VoEmt3tSN4+YhLiACRAQ/Q4YMhogQJ0nHtQ
6xg9GZ1nR9SzYYuFjlFteNZCFrXFCT1HTKrxOjtOgyhqeg7Y0jDOEacinsgPud3e//bE7lV7lIyD
2lGXdDqqJtGkM94lPeCB017UWgSznHiLaSKDUrhv4TyHy/K9qly5rIwpF6CD/YfL5k7mv4edw1+7
EFfXS1cuCngICOwg9wj5wHAg76FDGAVtAU89mR7muz6fPQaLjsKcX3wAUEsDBAoAAAAAAEF/ykoA
AAAAAAAAAAAAAAAZABwAcGxhdGZvcm0vaW9zL21lZGlhc3RyZWFtL1VUCQADenk8Wal7PFl1eAsA
AQT1AQAABBQAAABQSwMEFAACAAgAQX/KSox0y9f0AAAAHQIAAD8AHABwbGF0Zm9ybS9pb3MvbWVk
aWFzdHJlYW0vZ2V0VXNlck1lZGlhLXNpbmdsZS1jYXB0dXJlLXN0ZGVyci50eHRVVAkAA3p5PFl6
eTxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks21lCLt9rixYKBgAriYbM7S8ZudpadTWr/
vREiCNa71/d9D+Yx3L6b1+uqulm/3cLWaxGo93cDefuESYgDkAD10WOPIaMFCtBy7kBtYvRkdJ4c
US+GLRY6RrXlSQtZ1A5H9Bwxqdrr7Dj1oqjuOGBD/TBFnIo4kx9ys3v47Yk9qOYkGXu1pzbpdFJ1
olFnvE+6xyOng6iNCGaZeYNpJINSuG/hPIfL8uNqWVZrZ0y5AB3sP1w2dTL/Pewcnnct9WrlykUB
jwGBHeQOIR8ZjuQ9tAiDoC3guSPTwXTX17OHYNFRmPKLT1BLAwQUAAIACAC5fspKpCpxuqkCAADq
KQAAGgAcAHB5d2Vic29ja2V0LndzLmxvZy1lcnIudHh0VVQJAAN9eDxZRXc8WXV4CwABBPUBAAAE
FAAAAO3YW2/aMBiA4Xt+hdWbgpbGCTnnbge6TZ26Car2AlWWSb4UCxNntiljv34mtGuqdrtZqYZk
gYRykl/i5FFgOvT85MSLT3wP+VEeBXmQOl4wvEbT0Xj8dXyNCFlSVhPiXsFsIooF6AnIW5A5Gv0o
oNFM1IjVqJGiAKVYfYMkfF+B0qiSYpmj/nGe+8cOirwoCR3kmfegdyFpATNaLFB/KcyuEgqoNSoo
54hTpQd5D6FTxgEd4clGaVjiL2wmqdzgU0mXsBZyofC3jZ6L2q3u1+BLkMr0KDx0E8zZDDftHtul
brrbbI4cxFkNKMoyp5NP7tqJnkugpYlASAGv3IrVTM3vN/fvPh1UcGbCCS1LaQ4fvFJ1EIRt9eOq
h9rxbsUnWpcc5HtzRtWfkp32iE74peCrJSj8gWqKR1cTbOb9jGl8IQRXeFJI1miF1zBbMN1ssJ4z
WTZU6g1eipI0G7NFtdVYaTM+5aKGTnocD9t0Qky7JuR3tIP+Urj9/q91cuMoeb7w7iLov1ZI4sed
WX7IWFdmcLfgQsHLt+zmrlMxTIO2oh2vcy74ah+n4snwgbebjXa8h+HJdkdXwfYC4/1bBuvpWjIN
RFSVAp13F97MVlUFkij2E64HPZBSGL2mIylrgbbUvZNiAcYA1kCvN30iYug7WZoZEa/ejs8/n398
zsTHd1yOfNf7pxdrYpfKhqITVIgSUOiZWTC3paI3gE6FnLGyhPq52KHjedk++E7S1PJt+bZ8W74P
i28jYpgcEN9Ruhe+s8Dybfm2fFu+D4vv0Ele9v8If5i0SO9czKLMimhFtCJaEQ9IxNDbo4ixfUa0
IloRrYhWxHsRfSuiFdGKaEU8FBFjJ8z2+qvZPiNaEa2IVsSDETFxAj/dn4hpGlkRrYhWRCvifyni
L1BLAwQUAAIACAC1fspKRGJLuwcBAACPAgAAGgAcAHB5d2Vic29ja2V0LndzLmxvZy1vdXQudHh0
VVQJAAN2eDxZRXc8WXV4CwABBPUBAAAEFAAAALWQS2+CQBSF95PwH9gTy6NRlISFDyhGURQEyg6m
w/BouJQZM/6h/s8+l21iY3p2N/fcfOceL4oCVb/TZV3T5VDUHFd1R+VgAA4YnpmETj0d8idiyYIU
DHBLuISW0HUE8xo6S/7eSygkeJSQIvz0jOYYk55b8nYqnAex6eN4PVl4iXFJm3LsHGe0bG0JvVoS
khDy/jvFOAvdMndjYHQbRoVPTdPN7rOF8B7t327Sd/GqZjUTA3T0Y7wh7M8MnJ/SQ0uiwtRSMmB3
tSvMl3gvjPPBvgp2azFnfa6tJ01O1R0omz1Xl0LVA1/xkql95bd/oIFXNgez9Rn4R6VZOW0FgUJn
BvT0i/YGUEsDBAoAAAAAABR+ykoAAAAAAAAAAAAAAAAbABwAcHl3ZWJzb2NrZXQud3NzLmxvZy1l
cnIudHh0VVQJAANHdzxZR3c8WXV4CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAUfspKAAAAAAAAAAAA
AAAAGwAcAHB5d2Vic29ja2V0Lndzcy5sb2ctb3V0LnR4dFVUCQADR3c8WUd3PFl1eAsAAQT1AQAA
BBQAAABQSwMECgAAAAAAQ3/KSgAAAAAAAAAAAAAAAAoAHABxdWlja2xvb2svVVQJAAN+eTxZqXs8
WXV4CwABBPUBAAAEFAAAAFBLAwQUAAIACABCf8pK/2vvzfQAAAAdAgAAIQAcAHF1aWNrbG9vay9l
eGNlbC1sZWdhY3ktc3RkZXJyLnR4dFVUCQADe3k8WXt5PFl1eAsAAQT1AQAABBQAAADNkU1LxDAQ
hu/+ijm6l6buLi542w+8uGChoIJ4SJMpHTfNhEzauv/eCBUE17vX93lemJfh5t28rtbrzebtDvZO
i0B13A3k7BNGIfZAAtQHhz36hBbIQ8OpA7UNwZHRKTuiXgxbLHQIas9Z80nUAUd0HDCqyunUcuxF
UdWxx5r6IUccizCTH3J9ePjtiT2p+iwJe3WkJup4VlWkUSe8j7rHieNJ1FYEk8y8xjiSQSnab+Ey
h+vy42a5RLMyplyA9vYfLsudxH8Pu4TnXcbq27ZcFPDoEbiF1CGkiWEi56BBGARtAc8dmQ7yXV/P
HrzFlnzOrz4BUEsDBBQAAgAIAEJ/ykppfnEMjgAAAAwGAAAcABwAcXVpY2tsb29rL2tleW5vdGUt
c3RkZXJyLnR4dFVUCQADfHk8WXx5PFl1eAsAAQT1AQAABBQAAADtzjEOgjAUgOHdU7wL2FApiMQ4
WAkREwcdGIxDwUdsUnjNs3p+9RYmdvr/8WueE8gEZFZmRZmkAD2NwnjvULTYHWz4RtMUcApihy90
5MfPX1KllsUV1hUz8aYEXWtyxGdvetSMJmBrw/1oRoTBWIc3GIjhcaq3sK90Lld5Pl8IOWsiIAJ+
C6AiIAL+EPAGUEsDBBQAAgAIAEN/ykrWw/uHiAAAAAgEAAAcABwAcXVpY2tsb29rL251bWJlcnMt
c3RkZXJyLnR4dFVUCQADfXk8WX15PFl1eAsAAQT1AQAABBQAAADtzjEOwiAUgOHdU7wLSIoWrI1x
EJvGmjjo0ME40PoaSYBHED2/egoXpv8fv+7lgRfARS2quhAAIzmmQ7DIehyOJv2iyCf0ie3xjZaC
+/51WZar6gabJkaK2xpUq8hSvAQ9ooqoE/YmPU7aIUzaWLzDRBGe53YHh0ZJvpZyvmB81mVABmTA
vwEfUEsDBBQAAgAIAEN/ykrtb/VaiAAAAAgEAAAaABwAcXVpY2tsb29rL3BhZ2VzLXN0ZGVyci50
eHRVVAkAA355PFl+eTxZdXgLAAEE9QEAAAQUAAAA7c4xDsIgFIDh3VO8C0iKtliJcRCbxpo46NDB
OND6GkmARxA9v3oKF6b/H7/u5YEXwCtZ1bIQACM5pkOwyHocjib9osgn9Int8Y2Wgvv+dVmWq/oG
myZGilsJqlVkKV6CHlFF1Al7kx4n7RAmbSzeYaIIz3O7g0OjBF8LMV8wPusyIAMy4N+AD1BLAwQU
AAIACADqgMpKj8pSWnEpAADGrwAADAAcAHJlc3VsdHMuaHRtbFVUCQADqHs8Wah7PFl1eAsAAQT1
AQAABBQAAADNPWt3G7uN3/MrJkrbkWo97NykvfVDOamTNN7mdWxn226u12ckUdbEI406M/Kjt/7v
C4Dvx4ykJD1nb3eTiEOCIAgCIAiCh49ffTw+/8en19GsmmfDR4dldZ+x4aNRPrmPfn0UwX/zpLhK
F/vR7gH9nOaLqjdN5ml2vx+9ZdkNq9Jx0o3KZFH2SlakU6Nemf6L7Ud7e8vq4NHDIw51GP3egtzL
2LTaj54t7w7M0ipfikJoONsTTUyozxCq22Kv/5zNqc3S7mWUV1U+h2H0fxIVqmJ/kVftfsHKVVaV
vSK/7UTVRDS7naUV65XLZAx9LfLbIlk2tdqfpkVZ9fJpr7pfsjCMYp5kHMaEYNhtOqJRxe6qXlUA
OafQYj/K8ltWjJOSiaai2jKZTNLFFYx4eafoVM322XxZ3XcRI/qXW3tX1BPlvVs2uk6r3gpmDmYv
Y+MKMV0wTtnePP9X6BuA6I9hKhjMBv6dpAtWSHoDsWcsvZpVsrc+DFaSZJxnebEfXRXJvccnJdAn
YwVvY9BXNB0l4+urIl8tJj0BhejrV0+nRTJn3cgunF/JWUknQKfo591dyXIS3T/wIgfel0lSJT12
t0wWEzY5ak2TrGStCwFtkpbLLLk3KPOkyvNslEh6LPMyrdIcVtA0vWMT3iPx6lPZf8G7V7+JBZIs
vYJG9I3jNM3ypIJZ7AEmLHNnVi0gn07F1ShpP33+vBvpP3b7f+qI+nkxYQVnpDLP0klUprCsC/Nr
r0gm6arUK7LP6dEbrWBZLdbNkEF2EAYO1ffUuH1MNJ8oOqeLDLitN8ry8fWBLaGin6DhrpRUmvAF
y4BwNwKR8aooEbcJmyYwx4KbV0UB3GxzaYHTZX4Nj5pTyG1jVe3hlHoMkYxglCtJIOKJnpBPWMAF
455c2yQ9gQmSq1rWozpU5YpNwnU5+TiKJXS5ZJNesVoskK9YUmT3vTkry+SKWaPbJ9LyOXky2TV1
wa2YxlGeTdZOleLWn+yF5kmRBhhNXCJZ4VkteEc4mF+UhJA9iGHCWkAdl8klCVTjCz1f4jyWG8gn
WRWIu1g5vahxBLSZXBmKbk+ltOcQ7nrlLJnkt/yD/P8nP//884El30mfCK7LQR+loBn6T0tf3CDP
HTSyqRBWDeKmbthZMlJiS82vmFicq1k6mbCFSaJlnoKSKXrsBlZfaWomMQilYkzYgljCsPhJIlrD
ra4CqhuVFIrY2xIkedb7V57PPcatF/e75qretYTin/7wW5t/93a9mddFinZydoEP3C+ouFVxPRnr
hxmQ/U93NxHUJlOCLI6eQx1SQLugdPj/9f/4vNNASG0hGgPsTTN2Bz0aholX6qM1yhJXSyjGzWGc
oFIBTc5469k5jG6/BNkAUjSdg9Rs4AdbC4V7l0pyd/e3tpJ8pk2Tmu6GhgBrVDEhPuTAQMcB/Yjb
JOVxAc9hcVBHRVJydflEqBhQa2W12RKQ9vczx+hRv8XQn8uRox0pyp5pU21T40ZyWB2mw2j21N3g
wP+eoQHhNyw9MxrZ+iC0P5IT9kepxeVE92BZluMiz2gPcDgQOy2+44pSMCxXC7AZwMqGTqmwNVS1
oNq4SJfV8FE6jdq36QKWVx8xOwXVzYqOkOPyd3+ymi9flucg2NtAh0c3YI1eXZZVgowwXS3GOD3R
VZaPkuwMS9udR3yECP6xqCp3JPifKIqOjDKylIAnZudIov3oy0XX//axmuGSdL8Bda/vPyVlWdN2
lpRvq2opvpLJ7VU4QaZ9k6TZCnR5XSWkQWOdeVqWMKen3OD3MSnkh18f7A/lLF9lk/P86ipjhArU
qYqVA34KfQP4mmESc/0trWZnFay8AJ1g9bF8VdU01xxjkVLVeXik/yxYtSoWmg2AxxUnvHz16vL0
9dnnd+dn7XSxXFWSHSwWkZsiYAKqJPhYMKZk0agsxrBJWmXZpajf/1rmC2Jmp+pQYwB6K61e38GO
soSfbaSLxAGZFxie3UG/WA66vqxOsODjtB33Y7GNQc4V1Y6i3p7JvGLoX7B1N2q1Lg58utDHfrka
lRVKQNRWBK3TjZwvvJOdaK9zYVMRvy/DYxgMonPYj+dFUtyjVOxGwIg59BCdw2axHJwRPcoBl7rL
+wFocZj2S+KPAYgtgJ3j5rgcYJGg7OVtAaqp6C9hw49WcvSn533Z3ZuTv79/vR+dwiZnXOUFiP4o
uclBJQKw6Qo5HkY+ZSDyxww/gnye0Ugj2LVEyyIfwzYgWoCtXPYVfUOz9GXvop+xxRU0H0bPOy7R
sc6BSeggjF2HlPOkGs9YeUZeh7xoL/IJ2Oyl+GkKK/zSF9W9zs2PbdUaBKLVmhP9vd1lGFawaj1k
sFI2AuvXM2GahFkmuBH9OD2/X7IaqoC9AgqFPsKKIfi81Qf4p7ksEM01hO44olChHFhBixVXbRrZ
gs1B+xFMiZyDTp9XOQaUJ7yeDWGaF6+T8Yw+vUtx9c6APTOmBvuyAMOzD+xa5ehE64sGfbCRskAr
Fz9cRSe0I2yD2DJWq1g+q5JFyWqS5lGVXJWITvTy86uTj1xwv1DyiS9XEsAnQlQBvH4qpdQ7/V3K
K2yGy0tLLw/IY1eQYRvUaUUydnsA42ws2LOfF1dxh7c+sNouYcmniJwE8iJyGw76/f4gjvajONZt
EU9oJZrvUM9aIHp470TmgAexkA9i4A8RAyXsjApl+iswF0zqWXK+B51X1b2knqaZ1Y4IZvHsesAm
SDFQd3wmCBT8kvvVRAJ3fOBN214H/eUCp0NoJaA4d0EQjcFkjw2hIcHA1NEnPRSAGu1A6Qt0CifV
UXVXxZZYjQ8n6U00hp7LI9e1MTS+0UZ5GMMwaKwwVYcD+Do8xCLZP5RyNR7zycYCVOBOnSFvGtur
qkKLCOhGNlGb84xcWVsi2+LbetqdoCHXEj0e4laHV0kW8BUMIOotIlct75KQV/RTrEvjgOYNuLPX
ZFQl5Lpogyicg7QyrRHu2nuXLq5hwsV3vYz11z6hqGbU9wgaE2zD1CD+uWLFvRLPcT8ExOAgoyV+
O+ZOemS+eMfrzR6nainYG1epagCbrSxZlqy+iUnGdbUFLeuQRVwPDGqDCNcW+ml+i6LI1IMaThfk
GfpA445HOMOjb5qMPnRNpdUS+AkHQZ5/bgX79bt8V+GQINS2wMppKQvVooC9XMmqlxWIG5hX1o6t
E4fYasMx59CJ58/FcjuHnULRdrBIlkvY0789f/9OaHY85vPMp3RRsqJ6OfmajIGoWFvToKZCOx4x
EEXs9QLxI6gBrhGNYVVjGxRgWNNGsZkVjVVXrJv4wlStvN45Oc2PiMTa6tiIt6jpJlykgS1QSyD7
/rJ6urv3k+DhWi7n9RtZ0dCSmzIjbkENjcYlrmmuaeuD3fIBT/LxCmVYf1ww7INLtLZBUV7VkGcw
SJMUBybQY5ZlTVAnBlSs2wdxcQbDEvNkkfwlmHHUQtgQB1rn8v6RrmVtS+nlhwVybXIH2j+mmkII
tIqlT7iI2rTvhPLdA/jr0OxO4hKlOzuueZZxCW7U/pJe2FYY/+bYMSGJTXoPDEbH5xJCHmf9IOC3
wE+WPqaOrnxpwxVk3DFY58FezBZQy3QmmDMAIDUR/meKHj7PXdGqc6DYUJhQgr14E7EZ4G060guu
l6RTC5eJ6Da0RHgNtSy2kp719QyxBLPx32mZjjL20jJFjAXQIETcw2VEs3UR9S2zxtRXj2v6M5lk
nLGkOEGX/02StW0fjsUNso4x6RvUxl3lSh6U+DLG8CNu0LOBdmW40tpbowQaVA3ZhNSNnu7u7iqT
3dKO5f1i3Maf3Sgprko5rQDqnPvd2rJuGxCN8AeyX3bfRgKIRgfRQxc99g7z3PBJoi1QO19Wl8rC
NblHe6SPIqtS9O9/KwbSs58vsvuzWX77WTn+pG+z3fFcCwpWSKTiUuKRLBJSJw6p8E1hxeHhv1bK
r7R8zFsNJLyQascR1RjJdWNrAF8DybdfoLZlwoS3CyipQ4QJaZ1uBFrG2gsYegf0EfybKyAtcYmd
fXuqG30xgIA6uqgx1///DCK0gVg7DO6Q/1wydG3YLCdm+nHQn903na2Xk5TW3uMsH1O/IHDOuB+g
o70t0zRj+4MB39bv2mgY7pA/JyX7lFQzi5IjUahXdQhx164oGNI8R2KGByEraLkpO0JjbVZVS0DY
9RIFKu8c6b5eRO14AETPi4r2/vJDB30XgxHoL9gX1ACJobPV4npgeYJMD1AIzw3nB7bxA9v9oYn6
wI+75iCnYdJKdWLVQhIMuEO9LLNBa58XlUCWvad/7O/C//b2f3727Cf+ueu1ki3sBqBc7Mq3y8qs
inyUzfKy2v8Z6g7+xkZ/TSvVIsVDARBag9ufxuj97y2zpEIfT8/r0wHUsh0XUPs8/3z6rs0POQwm
RLJI/qPVmbEqumb3ePogqeS6hfmRR5UU/HSqDdXDvmAJ4AvUuEDvkH1WAqXa+ee7jFtiHbWgpYMx
lLSoHCHWrC85XFOxBNeSK/GDS1T0ZbFVA1l1Q1eaztj4+gwMEVaclKc8tKpNoRfb4mlsdlYF2jgE
pQ/TAgY8GdxahkAFc8IUZeuAclBg9ePfr3gonJLhrBrPEGI3+nUO+2XgwUXeG+dF2XoAA2zGFm0g
19HQYBpxJC2FJuAKzcVq70Zu7SRjRdVuvT0//wTGFlIKlDDsY0CPw282pwMpFom4tG60BIO2ZOSN
h96xXMYn4NqYRPw4sSWNPGdCcOqQwhavKE9kIhyJFCBAu7d8Mc7S8fVRq2EmWxGSnztIAwzJHY2x
YCnuZU2GhyXucnl3FJunelot8He7mqVlpzWMflk9/cOf9g4HWN91UYqq+IepVTg/vUGo1lYW0fqQ
3KRXCdg0FBGIJW3LjYKl2nPWNWDVUBJZjOv+P5NhFKasMVo7blINO+BuFSSobUw22HBH0EaSSBBa
z7KP9/9XnENHUmocn2hXDjOymtLfIui6rOViw99hcKgGhf58gkUc6vnL7ZqChWWnko0jhyPTUtju
r4UF3pamOOyQxtUqyayj/FJWs9wWKMN4ZfKVn/315FPs2kASLB36cauSfvfpTLkdR+ZRDjbgAGV1
/itYOeTwMRrXOXzsfv47yVZM9UMNLd+P4aPXw1A2pQFDHBZFv/ud1Rb/q2kcv3l58k4eMoH56rWL
TPhE4fPXfz+PoYvI/XDy/uVfXu/Ufqbzz7jjmAM0NnNmDRFUE4miqztH3Dz24C/aFHyTF7QaPo6+
Qn2TmUi68rAQ/rFvH6kaH2ZJeVlSlE2nzrNgB+P0l6tyZvYrNKfdyAxU8gxY6yNsKsg6UnNG1qLa
QjyymckeFS87sN3NxjLSNVUpdBd/enl2FmtqhK1r0KrlJTPk2SXaDppIBnBrhjdY9sbBlBwVcND7
k7Ozkw9/sZa3PnKfJ9cMZFSBqj6p0DXYM/Q9j8Yrlyn8CUo3AoHbE+u6uqsixBwXswmXN7mFeY1E
zzKmq1/DCHZIWIAPGhxfegbP82u2KOvlDj+lKEs2QZ4jZ9XHRXYviHqyOGVVocUWh/Zl94JI6KxO
8XGPf6QFHLtiVddRzTQrEqOIkAHknHbNTpkCYMVGjC2SUQacAODWDsPaztqg7UjA7YjtMBaNAvFR
i+CxLHU3OFYNTjAa9+bDFstZrAxQmRSYRTe5XBVhAw0E7TWM+mGL8R+fvjx7G9eTWgdrfheZz0/e
v/74+byhIzNqceOulHBz+MMIoAzA8k/vpQPZtDnkMUmTqy/ocletMfxgHQRVMW50hnFswn4wx+JJ
xVECb+KdJNGtoiMDQasGV4B3lXeupIS4GKrDrn4b0Pp8+nkDx6TBsj5GiQhMmo6X0IaUAhvjYtzT
pg1QcbD/XmSUEemgEzgvQERO9cGeE9tCh0HVPLNO/0SdrtkRxu50KRyEfiMej+wDNqelVnDYjv9a
32qSTqeyDf7bihMJyzm0kXic1eUSAwO1EUAD26kZGW/CO8SK2CMvi7bo+BbrbtjjrdXXrdWLMC/9
SAPiB6HU8WzRECTdyNxtCeslcmMP4tgzaLQK5UqkEw7aQ+gq5hUPq/wgWMN+xZjauuMvN+5dbaI8
/11AM6FurPmkB/L4KDQKEajizEiTI+2Tx/k9MKwo4LQvt5qKBF2MJ5hGsoK5Nwv3bPdgSBRjhawR
Lt9LqKNaQv0IYtXRiIdsuwR68EZms41/WWEznG3ccJ2VatnJ8AQHkxCpNwFuCWJLPh5sDWsdPxjG
jblMcXz2dorGeInll0tWjNVh7DYUk2gQ9DZOK/0LlM9vO3HHVzm1IkZvnB4L/4C9ObsUG5dLwtpw
/G5FrSVdDcCqrkgFOE54Ntju6QI26xjINMqTYvL59B3s1vmht8atdPfsGJUNhG616uNtjNbKVNrZ
Sa2AAQlpx5wzNIKEG8CSiSlSzYca9SInZNgE2+q2LFNYOtzEmYyxK+1JXWbEUk8kWcqBItWlKqSF
9ARW5i2Yj6erRXmEkvx3tM04QjaBhZ5P2OfTk+N8vswXGD0lcXMtX9yTnOa3tpvEchcIFXbIvbzf
6RMQHBXLOF3Eth12FLwwVjKFlXPneBx00nyPsvKRk9pENCXyymNDUWd4WBVDqdZl4WE1sVzKQdex
qa+5ZxRbGX4cw5V6FLobZAI48Pt3ggsbvEK18oK8BAEV5VkU5iU5L5hMYOUav3p4HW8HF0JG+A19
bDbWC7fJjakX+MUMU4BuKOcEHEHRraGYdjUSBYFIA3Q7AR46dfWFOSHY+RZzSA6ULrBokb6+SxzW
N/UoyGL3taFnbPBLuTMwtt1jHka6pdWu/GRmzByBcrxl+tKaITo26RNGB4uZlYPYsd0cP1vHlSoo
IKRooY5cqbGtPEYflMtiUb08lH0Lxv/e3us7aOB7fkDxIuixVsrBQssEfpgYh1rNxscX3cOFOI6d
gd7Mi3s6iQ32MABdAH+gghza4SW+5cPvmdFZqrhc1qUAvqpgjP/L9w7gNxHnR/+E6QsTnEwAw0ss
tYgGS+59OQBlPomoDgTu7kAX7FYpIwHiRdTW12KImzHMA6YB/rKlhLSgJXCK9ggdhGmikxoRNQ88
88rQfRhNKnE7cOKcia41flE/ODk4JwqJru4mGAwKremu+jE6SR3/oZi48GTl2OpyzJsdbDQh30cu
a3pqvLw0lBrXqz1uUP86CJMqu6fLVNYv8zlT4bCRCHP4VUXW8aMtfaTnRWHwYGqcnAzW4XG+WlSa
yPKeZ5N3VQRoUBoHaIyBCio6l0pcljdja614B6pNG7Ib98QYOzmW7Up7FWwWsyrnTEOB7r81FNcL
Wf026LEZmE+jd5yqNkh114JH07hbvisEPGPJhBXuHZ1KHINawc8W7XU7OQHaV04sQCCMqeUc6Uyt
Fe1im6s1AS8CrBXaEhie3F+9JTTfwgZNYOxFXMz2SNfxr3Rjsm0GgDjcKqM+OvuRUmJPWkYsUC8B
g0AFmUgqi8gSChaCClx1Yc8HQazlKDlSXb4tPFEXzeRCLipjISfdaGQs5ISkDAVyZQz3nTB57ZHY
5jx0jP2N8HXTXU7S+nQ3wZMltI3jeNBhGz+D71FRTPdhdciMu0vEtCj8zilvj3dOzVud9bNFZgQ1
U2peHzEnkwnFkSnLY8rXMQZCr+akCpDaVIciDHAeS5QB29hHxq1ejj0evdBJaSlH7zm7AWccAJiJ
syH2DNbIjH64qPIPA17bswMcN0rjhSVbB2HtwDFTfZSFgz1JG1tsfptNacG13Aw1foa1bNbghbA6
I5eAsQXfYhpNOG48minOPXhkQ/RIc/MQh7Wgw+FsDVrDxasOQGBW1cbFPWUwRmDTO9izsXkMpUrB
bSSHIreR/Fe8jngbToaz3fjWGYm+dWwcVpZfyeFRQQQFa0cYQuPX/ywe205cMl9mTE0c/QocwLgD
E4ECjUPTchsNMDCnx9lqwmRmJLGbHZBLXSYogqmjvm6Z+AztMGaIQoZkJZSWEgiXkjWsY/u9QhSw
nPjBJfJ460Wul91/Ztfr9uVtfbk/z6xC6lTlTWg8a61yClBUKVgc88lN21KC2cPspC2uh7tI521+
q8CBxQtBsSyzZMzag//98kv5y12ye7Hzb/Wv3wwwwFlc3QKG+q8VJjri6Y0wPTMxAzrbo3mySK7o
pnKf7pGc46DP8I4GbiN+fQDqGUX9S2h4C5MAAxL+9fLmKqKsbUctnr6OEjeKtHD479bwcJln91cY
6oiJGUGv7XZ3oz3843l3b7clm4NCzPafjMdjyp11c0VTZ3WO2fB+RO971P0e9r9N9yVdXTmW4cFH
2miXBmiCiDnzRWVk3ZFph/PKq5t7ko6qQNVp3qy++XaSG37H8lq6hQNs999apjttHKA5L226oKtr
mVdvdanruDWhkjvDr6bDn19mBXy9P2U3sNWiSErdnN+wR/bvi01d2Y4LUdMVz3So5YLzw3KD0EVq
plrYnvlQCwmM6TCY4EGwAcLegYY/HDzaeCT+nH0zAR6cu+nhMdsduvxpj07vZlHC0oV0vtdwXS3i
c00ShC+80YVNoofAsgQY4cWAl/Alpzj7dgJiLosrVomsDX++P6FZ5vfWhdoy0ikQaDo6EnJfAwwN
ZaZ2/XJNHvOd15EEpXzHejGZqR/46DbrjDtADG+8swWWO2AzZhgjWGHmYXVWeVSulnhJL8rYXTrO
r4pkOUvHhDWpjQVMl33r4JyH5dXxA3aox+w4oEbrGo9qGluh1FwpcRzZP9Hbf4MB/GU0uue7Odrk
ezJMzAKelHA0jjg+wTsP3NFCHsmmke46q1EMcn3bkd+WztR02yMNyBd7YkXtHoSuLWoghwYyL/Bs
QmUTDlhzRVDIaphAskMxgy8iBGUmYAsk0wi2M3FQDpdgRhJkZXNnb/lFxIIws2VgA9jc+9LKWoGG
UxVLPqzmI1uHqiW5hayokQJfzD6E18GTZZYMcDDnfv5j9JqZqLM6fJm4Pam1upbv5PNS2boQvWCk
8lb4UYVGq2QDq8bqwA7q0EZESE/V2xBS7krLUQF6ETVYmPtRre174ChLnfXpKGowGk3FpPAxRxnU
bEF1pq5+f8Jo/f/J87k22Y0iDIW7/bh4xTK6FMadx+b3S8zv/YZnTT2K/iDSJ1/zPeDf0KiG4p/x
DQSj/C1Z2FgfP/AvBG9it7PA/D6q6ffAB6A6sDtsAOEPigL/jo1TEcWVqyKry0pSl8bJODzR5w9W
gijKk+6kKbcCZNKK7A28ukxxOu3BL732l//9pXfx+84vGI420JGwRqpNTAm4EV5U1caJimLzsykg
HZgokDFfWJsw7XijNZsSMHd5pi7BN0DabmNjH079Hod65RKBx8i3TdAiOF5dzxaFuOfr30ou9VkX
tmPLu9hvMlN8GeDWukY8UT+OyEnVHwdpYNKZhzY2zYTd2JwSN5cNSQxrlfBpCS4RS6VUIq+cnY1O
6BZ9lfrAib6rQjnl7Lx1hP2rdDptTmyWfEGX0G+OWrhMWhdeLrofs4JD7x243CaPgdxyK0+TyGvp
jcUYiBFcrMdDLjQXkHuCocIjvJpNlz8OjAPREButkZ5G6IQdudz5kZCNyNyOH2YXMgpt/gmbh9+G
lg0Zg2wp5Zu0UBWXeUnaxs5atDqaFAmGv4rUa94ncwU6C9u93yXjto7Dp+FtnlH3wF8if8bnJEq/
OTAPfQKOAgMThnYKgBxZSuIMn9LA1L8ORCFOB9HTqGcPWoSS/x3Uty9qO7Vis8qXoW6ECK7v5x9u
P1w8645ClH9JkXA6/9kWkRrbPJOCYRxe3z4zcDv/fb4q2cdVFZTLdK2zT6+ssMk5SWK6C2oX9c0c
yydvTl++fx3XpEiBjfTJ1G0fpWXEk7/dsviGRXNEaUIHC/mUTowVZZqFsetzDMpaQwwa6eM0tuTD
MtdXPdneQ1WbbpGmmzUDc1ldJMHr2IkFZWq85jZGUGGdkqwZckMWnO8mpJM81FT0CjNTBao0pyao
6IXe04s2sDOqHaUPwIhMdfHAzGNOWVCMuR7oAHfUcMiau+sc73c6j48iS6M4DIs3ouqYKv8dZJMN
m8RmB8SWU0xSsx7qP0yo//ChgpAMAOUy0mDKx5omDilr9oquD6yR/Xk+ylASSc9P1WR/tpl7Z6mL
jyF1Qj6toNNqY+A1V7EbVLVaf8lk8hpzIqHHgSHcmKiBjBfbst2RRjpx9jpYQMR6UKAPNCR+ZmeG
gKlTOysuDNYYs9SInBq7mnj4EQvlAwLSpefHmV2BjhDxb9jjg9snx/mv7J6GaMliNzsYz841Z1UC
1VEo8IJylk4rq2RcFRkU1MjM8jaFbXXU5gkM+9Minx/PkuIY97SivfhpCRR8bTaK03jfYjN7MJf8
Lavz/A0+Ykshdg5bjoDdrg8coF83A/oBdt4bw7zeDOYnzF4IDLMx3GwzuO+SLcbPmmHytFHHmus2
AjpuBiqTaW4LtmoGy7MtbAt0uiXQN3xhNcB+8Feaz5whUxYXmtuOVeaAdg1jpKYHZ/z1qEg2CWEi
E4d7obOGqdCMaWbs9uhG449DXK7FzUjoS0z7MsqmUkSFCzWPe03nOz+UEqYE+Y9SwxUpP4YYP4Yt
DLDCq7M1O8ssnORHaEb6Yg0Kr81nUzxEREfNI2h3NnxkxUfEE9chJAIPXGwyHplXdL0wD3UafIHl
O7r15HKo00BqxB/ZpVAFdRxXaY5cN+GNqTElnC6/1KIf8nGO1ITJF3dUVJkIUzznB+zS/uRXDhZx
FV0v8tsoWdxXM3x+LxnhRoGgoHEWnVSiKmbAGyWj7D4a06UAjE/MI02BIkKoYAYTnP6j8DisqBNM
Y4t+OesChEM74fRVdb1VoTKkxh1+vIfnIwf2rV8DvHNRn8N0YmgUDZvub0i7+ovE8gLQ3Kt5TCzU
lYz1CfQ2geFVbKNOra2y3YAf274xmgVlp1+tjpcNDJDIo/yu6azdeqrWci/4cFznuVFjy4Mq8Yyr
17qf4hKNww/vxmvaWscP0yxP8HmbHkgKdWpX361x4hwfzp4OpbwgSh8OoORwWfCndi2KtWSG09eT
VMa4QkUz/r/euR1CxYyi/wEzaXhnnG2mCGm/Zvc8Ca3FufJelVHEA5/MEAC2TAqxS65FCvbYvQW7
xRdGAac+ZUXmiR1+WdBliij2uhJjtSbFwuRrni7aqnuB0kZ0MT1pwjEu3j13+xDmMCBKaOKz53HQ
vrPMKFdwkh2yjaWuGkWH0a7ME8gLhkeRaal7iclF1lTt8LTQ2tBgUj5B/clw4erCgIQUX9V9wbXe
EDU00eCbEQ7jRUrCRUrGSlLkRr21vsZYMZyd2xgNJFZ1uwZndZHfnopbVap6sxMVTAjZKC3x3jB3
coJ4yotJGbXTPuurZ+TRJrhJ2S2GJmLO7hxvO3zFuPbbZEEWA15zwzypeGwEP/FsQgxKPESuXmrv
B07wJBmXdAOEo4XO1QDJ6y/GHs+SRYPJZnNLrUffYADtvg0xd+D4Jl/Z3YzYGLXLLJ1M2IJepGKV
SRrFl/2N3qrBE6Yw62pDUSey+sZtsBWaCvOQz5crz2hx8fdeJasTWRutcy61ZFCuSXzDCdPgxgUV
BSq1LONu1OQUNRy5+upHE/3tjV69ClNNZZomrcgOnOvwiI/uSmYBIUZW/X1cYuW/8ee3y+RGhdio
J8gcPGsehwyPZpNhkOKLO04UfSOr6mOrWCfd+DUSynM/Qv14ED3Ix3+N8bi39kP7p7VCoK0j9Ezy
Sf+8RdJLTJyAh29O5udeTrXK2G2Ac1AnZUSb5uSt4qVZfNfeDBLAkBGBYX1CV9HBRhldeV3dyLps
i7194R/Air5QtTSr6vMZTA6tQVPs6hkMhqIFWHVSsXnbI2k3+q+zjx/6/MZUOr1vY4cqsAS2m3Ra
gCnS3XTJRcGzTzw+ilpnDNZ/Wt2/Loq8aDmZD2YY6QTVDbFgoUHPp9XN1NdSvl9kjw7LUQiZg7yq
G2TzcLYYjTcWrX0QIf9xTmAkjo0lW2sOWgVn0YSAFVyyNgF1+WyCdgBNk5saGFm1wWxPJ06qJ2pg
zxYVKYP+iPMfMJ7JZ6Gh+bLM/L55pMgTsQh68H0lF5+R+4GjDDKKI5ovxkIM++lFuNzmCS4/l+yD
2K+sl9gb7uSDHfFMmtvpBvvpzjA13TreOy+8+6ZNG/ee9WSOTluCrMsNisfXRmHQx8M/mVy5wYTT
9ppynTwRucb4BYFOpLOgfHHS9l10Ii/akV5CuWFFdZ5LWr0V2YIU84j8S24OW5HQqS5jclN604eO
/WTIf2i06fzqS1mMNxuuFfOoRbljN26AbF0gptH3h3zhdq/puCVt3HTrzd0Y6UpGZZ6B9Wu/jNM4
y+KVWruleggnNL8P270TC2vv1I7ZoVvMjnHK39qW4Wf8oYa/UGoKK3SIv9MdChuK9ulBbfftxk0Y
442o7qCkb6Uguo6C4U+O1WNNHzCYnKNlvEdmvknGA/vtGNnfxJ1gmFIdHUPpEUzYOkr2N3EndFdN
JM4K0bnuuXjT2V17IbUO4X4OfCbdXsGJcNMIUH6dTnP6+fXr8FumWUVP0yRuFDC90bBtjEJ58L08
z/TCZE2rpozOD4FXIIQ18h4MC0t/kqXRoDdNi0TCx39bnum2W4IvbJJHQbRTPkezNGRHUATTq/zW
iWN9XBdN+MTGjwe4igC9VKSZEDU48/ou7OYR2x54D/11kVoTGApMkDM4Y1uvE4kZ73rQJS+ZvIou
23TB8rUIYuYx8tymsXmtaEGXCfOpvxGlKHnD+cdzJr+1LzBslkTJOHAywWC+EDMVs7huaQrFx7Lc
SF5kS8P6AezseNuImbzZyPNw2Q+Fe8m4jIxTIm/ZkZ9/S9DSqGFkQ7aSbfF7UUZCLpFzi85YsE06
4UlIVFqrwsrfFVt5rtwvBAVlr/TZ9DhKraH4Xd+KB5m7zfg1Aavxd+c+NaiEgxG5Va0sXXXpuwKE
xrpbpHsRGdYCeV7soaU82w49tVSTesZBQuBZ1iIqEsZY+cdkNhiZEs9eGoEUMoGdD3KUJbCxlMcv
1mbgxCru7SNxt7DuHJO+S/lOP9xnZvi7xfww/1SmDCryOSUl0Ug5B1c4dut8kC8R114EgQkQPiXG
ttEav5USkT/YGXoVT9ezU5f6Wfow0/4aTk9h6EWxWlrySKb/aR0uhZiIgc1gfJOeeJ21x5IiuwcV
UZZoyA8RW5wsdpciw9PX/uFgOWzVIWA8S+XKdztpGZChriWoRn4oSo/G8WSsE5Xcyub5g0ZEeObU
b0GEWkKX9HckJgNxqE38JNeVAO6rxPqnsLpa6BkDxxqYtAJYeUD3IAY8+TflJ1eJub+1f/tdvDAG
s2QClqROrSizbbVVUMuC3XYQF2tL3DAr1mNiW86L2dZmEfxC13YojXsoDVk9Qs47kdviZDfveuTj
ae8Qt+XKyIP3rUxjva9nTNob/CAytrYl48xYNMUzKHxjOQIjTjztF9HTtPiQH+IT0CPfmsEc7Nf1
r+NtSeAACEVkxZdVTpSLYKMjxkhvn1ipBGsHZb7rae6ndLK05ZC/TJ2MUWpjcj0j8SsvvBQp+FpD
+zfX4EvLsOHGjQTK0FXtwKQyDdL6qSBa1mPthmAOW7qeCImRoV5iUzdTmlxocEWgTROBmOTaOHmI
v9mgPLl4mBjOBaI3HOqEM5jupL3rWuffnq3U2rJtdRLZlXkJ/HgWGbTSgKPzfoeNVL1/2LervdPE
eG3H1lNkrueltu+Qdd7Y+ebkddzeW1D2wff8+ceegRMDiiCQFpt/1MV9hYcD/kT98NEhZQ7IF1me
wD7FtgRbQ23E4m5Opr0Va1H7AkVFVY82SnmejZJC5pRu2cFzbgtRaZFXrDX8XDKS/Gk3+tqNrknu
Z5hmHmNHZCQrbMnh/8ZYwiOaqZqMM+7SrymJ1Sy54vJBdyml1NfkJuGU2L/J0wkMWee85lBfZpkV
QAxEkd3x/NfbAZX4BcDKT1sBBkqb/hX3WXjL69Qaiqo2dDlhpt9FzZrhcDGmjNoRIw8P+bkfAvBF
SSvCbJowajzsGeV3AFac7cmjM+ihOcChNaTcZxq23i9zBNYgZS3AzfEJnae1huKYiwNrQIDv4I5a
yMgyUjFKF6AswJzKpxHl+CRmFhGHTAYKcvunZZHVCHfcdgDWySNfWAY+qlMUKocD6tJgDL1mxD8f
KV4xVXJrqD4PKF/ro/8DUEsDBAoAAAAAAC+AykoAAAAAAAAAAAAAAAAIABwAcmV0cmllcy9VVAkA
A0l6PFmpezxZdXgLAAEE9QEAAAQUAAAAUEsDBAoAAAAAAC6AykoAAAAAAAAAAAAAAAANABwAcmV0
cmllcy9odHRwL1VUCQADSHo8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMECgAAAAAALoDKSgAAAAAA
AAAAAAAAABMAHAByZXRyaWVzL2h0dHAvdGVzdHMvVVQJAANIejxZqXs8WXV4CwABBPUBAAAEFAAA
AFBLAwQKAAAAAAAugMpKAAAAAAAAAAAAAAAAGwAcAHJldHJpZXMvaHR0cC90ZXN0cy9wcmVsb2Fk
L1VUCQADSHo8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgALoDKSgW8/n/0AAAAHQIAAEUA
HAByZXRyaWVzL2h0dHAvdGVzdHMvcHJlbG9hZC9zaW5nbGVfZG93bmxvYWRfcHJlbG9hZF9oZWFk
ZXJzLXN0ZGVyci50eHRVVAkAA0h6PFlIejxZdXgLAAEE9QEAAAQUAAAAzZFBS8NAEIXv/oo52ks2
2qrorbZ4sWAgoIJ42OxOyNjdnWVnk9h/b4QIgvXe6/u+B/MYbj7M23J1tbp5v4ON0yJQ7e57cvYZ
kxAHIAHy0aHHkNECBWg4d6DWMToyOk+OqFfDFgsdo9rwpIUsaosDOo6YVOV0bjl5UVR1HLAm308R
pyLO5Jdcbx//emL3qj5IRq921CSdDqpKNOiMD0l7HDntRa1FMMvMa0wDGZSi/RGOczgvPy8ub602
xpQL0MGe4LKpk/n/YcfwvKsxy+u2XBTwFBC4hdwh5JFhJOegQegFbQEvHZkOpru+n90Hiy2FKT/7
AlBLAwQKAAAAAAAvgMpKAAAAAAAAAAAAAAAACwAcAHJldHJpZXMvanMvVVQJAANJejxZqXs8WXV4
CwABBPUBAAAEFAAAAFBLAwQKAAAAAAAvgMpKAAAAAAAAAAAAAAAADwAcAHJldHJpZXMvanMvZG9t
L1VUCQADSXo8Wal7PFl1eAsAAQT1AQAABBQAAABQSwMEFAACAAgAL4DKSnFA4J/tAAAAJwcAAFsA
HAByZXRyaWVzL2pzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQt
b3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1hY3R1YWwudHh0VVQJAANJejxZSXo8WXV4CwABBPUB
AAAEFAAAAO2VwUrEMBRF9/mKS1YK0n8YpIow0kILs87UVxNNk5C8UPL3kxYFXbkWugmEc+4lvEXe
SIkTVq0YWoVAbruQQ/EZi/okhOjZcwmESSvjoKaJUqKqGdYwS8iR8Ezcra6PPlDkMljP4KhCQg2w
JqyqNEJ0Dinv8Ye9fzXWIhFB1TOa2ulnyP40DBJLtdQ7VXP21vqV3nAtkGM7jHjsXvtzO7aydopN
x/a+mp3v7mES5JzdxMY7edCDHvSgB/2DPp1ezj9p0j7b+uUS/PWDJm5wUQnffvPv/X0aX8toztaW
XsVUd0ydCsdMQvxaNELcAFBLAwQUAAIACAAvgMpKKReZfBEBAACNAwAAWQAcAHJldHJpZXMvanMv
ZG9tL3Byb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHkt
c2xvdC10cmFwcy01LWRpZmYudHh0VVQJAANJejxZSXo8WXV4CwABBPUBAAAEFAAAAN1RwUrDQBC9
5yuGnpQ4XQoKHlM1glixmGLP282k2bLJLjuztPl7U6vgwZsH0dM7vDdv3rxBRFCv3qWOWN1p0apc
V2pNm0crH3CTrKvVCznSTGhD63ti2yWnxUfl9OCToBALRuLkhFUkiXb027GqfadC9OJlCISm1bZH
o01r+y3urbRou5Ai4ZYE/b7HURsoyoDs/OgadWC8QjoEMkL1VA6S5Xn+ByJrI0m798BFAXh5fTGb
QX6CoshgOa8qOG7wDTRn52AZJk3qjVjfT35I43e03+zGDn+HzO/nD4uvJLc+uRo2BCfJFNaa4fOC
6b8YOD2JkzHE3CTnhqWOTPWxGYmJMshgVVYruH1+Wi7KVZm9AVBLAwQUAAIACAAvgMpKFpJEf9UA
AADDBgAAXQAcAHJldHJpZXMvanMvZG9tL3Byb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1w
dXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy01LWV4cGVjdGVkLnR4dFVUCQADSXo8WUl6
PFl1eAsAAQT1AQAABBQAAADtlbFqBSEQRXu/4mKVQMg/hLCkSdiF3R/w+cZo4qroiPj3cR+vSZsm
zTYDcs69TOVsVLigWcWwKiUKx4MCeqzY1Tch5ciReyJoq1yA0ppKoaE5tnB7qpnwRjy3sOSYKHNf
fWRwVqlgBNgSmurPQswBpd7iT7f+5rxHIYIaM7vRGQ3k8rKuEvuw1CcN00TvY6MrLh1ym9YNr/PH
8j5tkxyd4tBx7Dey5uERrkCaGjS7GORJT3rSk570DzRevkjzP7H7oTDV+76oXMb/PxzOlYT4dQSE
+AFQSwMEFAACAAgAL4DKSg958xB5CAAAjiQAAGEAHAByZXRyaWVzL2pzL2RvbS9wcm90b3R5cGUt
Y2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1w
cmV0dHktZGlmZi5odG1sVVQJAANJejxZSXo8WXV4CwABBPUBAAAEFAAAAOVabW/juBH+nl8hbNBL
e4hkO7azsZ11sZsX9NC9NmiC7seCkqiICSXqSCq299r/3uGbLMmS48NugSuyhz1L5JB8ZuaZFwp7
mcqMLo8uU4xi+MmwRF6UIi6w/HBSysS/OIFhITcUL4/mlOTPp978hQgicez9euTBH4nX0o9xxDiS
hOVzL2c5XuipkPEYcz9kUrJs7o2KtRfDM44XR/85MtvZTSJGGZ97x8PxTM8Ft4Tia5Ikdj5E0fMj
Z2Ue+040uVD/1Q8yJwhGSewdx3Fs5hKWSz9BGaGbuZexnIkCRRZghvgjAcgjnHlDM1QwUE7rwTEF
jV6wBpSOWkjH43HH/gLlwheYk6Q2KchXrM+oH+pTnMi5NwymbjwmoqAINiE5WMYiXJFYprB4OPyD
xYfimOSP1UqDzbpGPTW9Y+GSPAVQshJP2QvmLY2m0+miz9gYGzMEyief4SxhFyeUIVCDk8dUNj2n
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
0WWNb0DrLRt3c2HaMfGXy8+Pb19+e/rzXoj1cXn/+PT08v3Hx6f3ty/z3l/HM9GtA9uhdl/e3z99
f/z18untx/Pl05e3x/ffwDdIFzffEaaeXx+/nv2CGjvHX3w6+Jxe6TOJcJPsAO0bn95//Hylfv3x
9uXy6eXH8/Onb0/fLq1f0fzrkfdy39X92+PTi/4lMP39e4E1Vz/M1Z+fvl5eryvwqS8M+ASJUbVa
3GP//tfjnx/fv7w9ff/49OPt+dPTL2+P39b8eBYsO6T35fHLb5dPl79+f3q7fKViAx8iAX/TO0ru
6/D08t+f3i7PbAF+vvzyev276xIhhevN5rYnlKPcZ9fXb7+utDWwTnWHmBpxk8375QNR9057rju0
jfrj8eerov/8+OW/f317/fECJlBN7w/aTC3Rzq8/vj8/fXn8uO6bQybviJ3eu9AVzk4T729vl18Q
OelQ3gENnn59ua7Bp5fXQ2+efvm0/7TtmsvLNk20OqUyc3C0i3j8+rp96uXK1nXLffzt+o3rCF8v
K+W2JEWpfXO7zVey4pudefr2/fUNLltvi0o2bKP/67fnnZ/33y7Xpf/rdM0c/4Qj03r8+Hh7+vnH
x21mP79+/dudM+sKtV3h864Kp226fPv+8bddLz99ff2GvpNYp/pD6m2GjZl79PLIbdo/0uHa2kde
WwuGT18fPx7RBwpXKLJOH1/v3BuWTeR4BT4F8penj98+/Xi5vGyR2a+bSUMy6XZiK5wIZNUP1V6Y
isrEcXiwkyX/O5S5W6AWxjuqaL5dvr2+/a2R7D9++r7d2n5ct+L707cfzw0maZZ6YDPJediiofkI
Yn95ffm4vHz88vT8cbn13vv5+fXLf396/OX6V1eJXg+q98vL16vB+f9+XGUzq96ujoFTHCXHj8/P
r3/59O3y9enxqqFffmyATrMvEPwgX1vfxN3lgex8+vjt8vJpH+bHS/vVKYe8+v5wIr69fn365W+3
z01V5kofCExDQx10A39bo5Orpfj66fFr8yLmG+K6sokhMBy7YfW1v2PCpJy+vfJWsiS76VguCQGY
iA3aK5Jv/J0akgV6Qxg+dZ0mlBgB8nId+I1K7Pr7319f3i+7lL5eXv62FFKforc3qM39my+XP1/e
purgGSbDcbhqzEyHrgxQ4jhf6RdWAqFwMh1dUvvC36M2HSejFdM7sk5QIgTeotkY+3co9F1LReCh
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
dGMvcGVlci1jb25uZWN0aW9uLXJlbW90ZS1hdWRpby1tdXRlLXN0ZGVyci50eHRVVAkAA8l5PFnJ
eTxZdXgLAAEE9QEAAAQUAAAAs7Ozs1NIK0rMTQ3OrEp1zkjMS09NUbBVMDGwNOOywycJAFBLAwQU
AAIACAA5gMpKT8luNOkAAwALaE4AGQAcAHdwdHdrX3Byb2Nlc3NfbG9nLm91dC50eHRVVAkAA156
PFlIdzxZdXgLAAEE9QEAAAQUAAAA7P1pd9tItiCKfq9f4V7rOvvU6YJEYuDg9fzy2bLzZHZOvpaz
8/R6510tEAhKSIEACwBtqVb/+BfgIJEUCMS0IzZAVJ92yrLE2LFjz+OHj+//+I8338jMWsZ+MU+z
hVWQvMjf/EcaJbevivTVKievlmlWvHKnznDwtw98vzD820+//fB75c+ThGR+Uf5SQr69unr3Kkpe
Xf6vNF4tSH75wS/8y49/Xl/+SWY/R8X2P+9XURxefiYx8XNiRcu7NCF5tFjRT06zy9h/TFfF+uOt
jOSruMgvb74ti5uAZEVeA/kzJP4re+BOXs2i4tXn63evlln01S/Iq3vy+LeLi//xP/4H/XP9v/LL
b1n0BP3eD5Yo+O+A97gMfHrKxZIs/vvfrPJ/fzt9sz/yEsAgTebR7aq8Ypq8mmfpAhLPl+mSJHke
XwTz279d3ZHg/lVx5xf0D/IqI/9c0d96tfCL4I7k6+/l0W3iF6uM/O1699Wr9P5vV/SzonkUlFj9
QAo/ivM3f3u1/d81ySI/fvXbajEj2ZtXY8cZ2e6rfxs8zJzhbPL3p5/7X34chVHx+PSN8n+/pcWr
94Riibx59T9Xyavh4JVtv3Enb1z6xWA4fvUfv3558Qvv5gXJXpW/ENf/wvVq9hcJijcHnxCki0Wa
/OYvyKuj/7199fLZnn71P73B9KvzijwUFKP07fLDT93+83s/j4JXV/Sfi8yPEvrsr/52fMzVuzdf
Pv/xserXtwC/+pmS7k8hSUqsl0h98RnvvTcf3r8Zfnjjvn8zvnrjfXhju2/cj2+c8ZvR9M3Vxzfv
Bm/oOdPhm9GHN6P3b7zhm+noDf2tj++qzn23Ku5SykKPzSdTeo/CN6rOL//3IcrK13hzefXb25oH
2P0vX9Pbm8H7N87wzfvJ36ruU97ij9y/JVXo3yPmksqrfv9j+cohCWs/6Msv168oi5YM8JXSY4nD
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
dF9jZXJ0cy9sb2NhbGhvc3Qua2V5VVQFAANIdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA
FH7KSmpB5X/pCQAAOxIAABgAGAAAAAAAAQAAAKSBCSoAAF93cHRfY2VydHMvbG9jYWxob3N0LnBl
bVVUBQADSHc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAgAAABR+ykotQiCjBwAAAAcAAAARABgA
AAAAAAEAAACkgUQ0AABfd3B0X2NlcnRzL3NlcmlhbFVUBQADSHc8WXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAgAAABR+ykrTscZEBwAAAAcAAAAVABgAAAAAAAEAAACkgZY0AABfd3B0X2NlcnRzL3Nl
cmlhbC5vbGRVVAUAA0h3PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA5gMpKprS7wVdpAQDe
fw0ADgAYAAAAAAABAAAApIHsNAAAYWNjZXNzX2xvZy50eHRVVAUAA156PFl1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAABYfspKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UGLngEAYWNjZXNzaWJp
bGl0eS9VVAUAA8h3PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABYfspK+q8ujfQAAAAdAgAA
JQAYAAAAAAABAAAApIHTngEAYWNjZXNzaWJpbGl0eS9hcmlhLWN1cnJlbnQtc3RkZXJyLnR4dFVU
BQADyHc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFh+ykoAAAAAAAAAAAAAAAAcABgAAAAA
AAAAEADtQSagAQBhY2Nlc3NpYmlsaXR5L2lvcy1zaW11bGF0b3IvVVQFAAPIdzxZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAWH7KSjpZSOD1AAAAHQIAADMAGAAAAAAAAQAAAKSBfKABAGFjY2Vz
c2liaWxpdHkvaW9zLXNpbXVsYXRvci9hYmJyZXZpYXRpb24tc3RkZXJyLnR4dFVUBQADyHc8WXV4
CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFh+ykoAAAAAAAAAAAAAAAAaABgAAAAAAAAAEADtQd6h
AQBhY2Nlc3NpYmlsaXR5L3RleHQtbWFya2VyL1VUBQADyHc8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAFh+ykrbiJ0E8wAAAB0CAABWABgAAAAAAAEAAACkgTKiAQBhY2Nlc3NpYmlsaXR5L3Rl
eHQtbWFya2VyL2NoYXJhY3Rlci1vZmZzZXQtdmlzaWJsZS1wb3NpdGlvbi1jb252ZXJzaW9uLWhh
bmctc3RkZXJyLnR4dFVUBQADyHc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFl+ykoAAAAA
AAAAAAAAAAALABgAAAAAAAAAEADtQbWjAQBhbmltYXRpb25zL1VUBQADyXc8WXV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAAFl+ykoAAAAAAAAAAAAAAAAOABgAAAAAAAAAEADtQfqjAQBhbmltYXRp
b25zLzNkL1VUBQADyXc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFl+ykphxq6l9AAAAB0C
AAA2ABgAAAAAAAEAAACkgUKkAQBhbmltYXRpb25zLzNkL2NoYW5nZS10cmFuc2Zvcm0taW4tZW5k
LWV2ZW50LXN0ZGVyci50eHRVVAUAA8l3PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABYfspK
HQAX5/UAAAAdAgAAMAAYAAAAAAABAAAApIGmpQEAYW5pbWF0aW9ucy9DU1NLZXlmcmFtZXNSdWxl
LW5hbWUtbnVsbC1zdGRlcnIudHh0VVQFAAPIdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
WX7KSgAAAAAAAAAAAAAAABsAGAAAAAAAAAAQAO1BBacBAGFuaW1hdGlvbnMvZm9udC12YXJpYXRp
b25zL1VUBQADyXc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFl+ykqbcYZD9AAAAB0CAAAy
ABgAAAAAAAEAAACkgVqnAQBhbmltYXRpb25zL2ZvbnQtdmFyaWF0aW9ucy9mb250LXN0cmV0Y2gt
c3RkZXJyLnR4dFVUBQADyXc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFl+ykoAAAAAAAAA
AAAAAAAHABgAAAAAAAAAEADtQbqoAQBjYW52YXMvVVQFAAPJdzxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAWX7KSgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1B+6gBAGNhbnZhcy9waGlsaXAv
VVQFAAPJdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAWX7KSgAAAAAAAAAAAAAAABQAGAAA
AAAAAAAQAO1BQ6kBAGNhbnZhcy9waGlsaXAvdGVzdHMvVVQFAAPJdzxZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAWX7KSk2YD7L0AAAAHQIAADIAGAAAAAAAAQAAAKSBkakBAGNhbnZhcy9waGls
aXAvdGVzdHMvMmQuY2FudmFzLnJlZmVyZW5jZS1zdGRlcnIudHh0VVQFAAPJdzxZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAXH7KSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1B8aoBAGNvbXBv
c2l0aW5nL1VUBQADz3c8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFl+ykri3Dct8wAAAB0C
AAA4ABgAAAAAAAEAAACkgTerAQBjb21wb3NpdGluZy9hYnNvbHV0ZS1pbnNpZGUtb3V0LW9mLXZp
ZXctZml4ZWQtc3RkZXJyLnR4dFVUBQADyXc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFl+
ykoAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQZysAQBjb21wb3NpdGluZy9hbmltYXRpb24vVVQF
AAPJdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWX7KSn21SsT1AAAAHQIAAEIAGAAAAAAA
AQAAAKSB7KwBAGNvbXBvc2l0aW5nL2FuaW1hdGlvbi9hbmltYXRlZC1jb21wb3NpdGVkLWluc2lk
ZS1oaWRkZW4tc3RkZXJyLnR4dFVUBQADyXc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFl+
ykoAAAAAAAAAAAAAAAAdABgAAAAAAAAAEADtQV2uAQBjb21wb3NpdGluZy9iYWNrZ3JvdW5kLWNv
bG9yL1VUBQADync8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFl+ykoBpu9l8wAAAB0CAABL
ABgAAAAAAAEAAACkgbSuAQBjb21wb3NpdGluZy9iYWNrZ3JvdW5kLWNvbG9yL2JhY2tncm91bmQt
Y29sb3ItYWxwaGEtd2l0aC1vcGFjaXR5LXN0ZGVyci50eHRVVAUAA8p3PFl1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAABZfspKAAAAAAAAAAAAAAAAGAAYAAAAAAAAABAA7UEssAEAY29tcG9zaXRp
bmcvYmFja2dyb3VuZHMvVVQFAAPKdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAWX7KSjTK
mib1AAAAHQIAAEEAGAAAAAAAAQAAAKSBfrABAGNvbXBvc2l0aW5nL2JhY2tncm91bmRzL2ZpeGVk
LWJhY2tncm91bmQtb24tZGVzY2VuZGFudC1zdGRlcnIudHh0VVQFAAPKdzxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAWX7KSgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1B7rEBAGNvbXBvc2l0
aW5nL2NhbnZhcy9VVAUAA8p3PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABZfspKftbvvfMA
AAAdAgAARwAYAAAAAAABAAAApIE7sgEAY29tcG9zaXRpbmcvY2FudmFzL2FjY2VsZXJhdGVkLWNh
bnZhcy1jb21wb3NpdGluZy1zaXplLWxpbWl0LXN0ZGVyci50eHRVVAUAA8p3PFl1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAABcfspKAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UGvswEAY29tcG9z
aXRpbmcvdmlkZW8vVVQFAAPQdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXH7KSiE2fYbz
AAAAHQIAACMAGAAAAAAAAQAAAKSB+7MBAGNvbXBvc2l0aW5nL3ZpZGVvL3Bvc3Rlci1zdGRlcnIu
dHh0VVQFAAPPdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXH7KSlVD61rzAAAAHQIAADAA
GAAAAAAAAQAAAKSBS7UBAGNvbXBvc2l0aW5nL3ZpZGVvL3ZpZGVvLWJvcmRlci1yYWRpdXMtc3Rk
ZXJyLnR4dFVUBQAD0Hc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAFx+ykoAAAAAAAAAAAAA
AAARABgAAAAAAAAAEADtQai2AQBjb250ZW50ZmlsdGVyaW5nL1VUBQADz3c8WXV4CwABBPUBAAAE
FAAAAFBLAQIeAxQAAgAIAFx+ykrw/pH29AAAAB0CAAAwABgAAAAAAAEAAACkgfO2AQBjb250ZW50
ZmlsdGVyaW5nL2FsbG93LW1lZGlhLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA893PFl1eAsAAQT1
AQAABBQAAABQSwECHgMKAAAAAABcfspKAAAAAAAAAAAAAAAADAAYAAAAAAAAABAA7UFRuAEAY3Jl
ZGVudGlhbHMvVVQFAAPPdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXH7KSh/gwiTyAAAA
HQIAACEAGAAAAAAAAQAAAKSBl7gBAGNyZWRlbnRpYWxzL2lkbGhhcm5lc3Mtc3RkZXJyLnR4dFVU
BQADz3c8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGN+ykoAAAAAAAAAAAAAAAAHABgAAAAA
AAAAEADtQeS5AQBjcnlwdG8vVVQFAAPZdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAY37K
SgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BJboBAGNyeXB0by9zdWJ0bGUvVVQFAAPZdzxZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgACAAAAY37KSiXg0wgsAAAALAAAAD4AGAAAAAAAAQAAAKSBbboB
AGNyeXB0by9zdWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1tYWxmb3JtZWQtcGFyYW1ldGVycy1zdGRl
cnIudHh0VVQFAAPZdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAY37KSjA7uLFLAAAAaAAA
ADwAGAAAAAAAAQAAAKSBEbsBAGNyeXB0by9zdWJ0bGUvcnNhLWltcG9ydC1rZXktbWFsZm9ybWVk
LXBhcmFtZXRlcnMtc3RkZXJyLnR4dFVUBQAD2Xc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAA
AGF+ykoAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADtQdK7AQBjcnlwdG8vd29ya2Vycy9VVAUAA9Z3
PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABhfspKAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA
7UEbvAEAY3J5cHRvL3dvcmtlcnMvc3VidGxlL1VUBQAD1nc8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAgAAAGF+ykol4NMILAAAACwAAAAxABgAAAAAAAEAAACkgWu8AQBjcnlwdG8vd29ya2Vycy9z
dWJ0bGUvcnNhLWdlbmVyYXRlLWtleS1zdGRlcnIudHh0VVQFAAPWdzxZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAXH7KSgAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BAr0BAGNzczEvVVQFAAPQ
dzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAXH7KSgAAAAAAAAAAAAAAAAsAGAAAAAAAAAAQ
AO1BQb0BAGNzczEvYmFzaWMvVVQFAAPQdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAXH7K
SjpR3G/zAAAAHQIAACcAGAAAAAAAAQAAAKSBhr0BAGNzczEvYmFzaWMvY2xhc3NfYXNfc2VsZWN0
b3Itc3RkZXJyLnR4dFVUBQAD0Hc8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAGd+ykoAAAAA
AAAAAAAAAAAFABgAAAAAAAAAEADtQdq+AQBjc3MzL1VUBQAD4Xc8WXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAGd+ykoAAAAAAAAAAAAAAAAQABgAAAAAAAAAEADtQRm/AQBjc3MzL3NlbGVjdG9y
czMvVVQFAAPhdzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAZ37KSgAAAAAAAAAAAAAAABQA
GAAAAAAAAAAQAO1BY78BAGNzczMvc2VsZWN0b3JzMy94bWwvVVQFAAPhdzxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAZ37KSvj5ZBH1AAAAHQIAACwAGAAAAAAAAQAAAKSBsb8BAGNzczMvc2Vs
ZWN0b3JzMy94bWwvY3NzMy1tb2RzZWwtMS1zdGRlcnIudHh0VVQFAAPhdzxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAcX7KSgAAAAAAAAAAAAAAAAgAGAAAAAAAAAAQAO1BDMEBAGVkaXRpbmcv
VVQFAAP2dzxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAfX7KSgAAAAAAAAAAAAAAABIAGAAA
AAAAAAAQAO1BTsEBAGVkaXRpbmcvc2VsZWN0aW9uL1VUBQADDXg8WXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAHF+ykrAPbFo8wAAAB0CAAA3ABgAAAAAAAEAAACkgZrBAQBlZGl0aW5nL3NlbGVj
dGlvbi9jaGFyYWN0ZXItZ3JhbnVsYXJpdHktcmVjdC1zdGRlcnIudHh0VVQFAAP2dzxZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAcX7KSm1PuAjyAAAAHQIAADIAGAAAAAAAAQAAAKSB/sIBAGVk
aXRpbmcvc2VsZWN0aW9uL2NsZWFyLXNlbGVjdGlvbi1jcmFzaC1zdGRlcnIudHh0VVQFAAP2dzxZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAfX7KSpRUGcxjAAAAawAAAC0AGAAAAAAAAQAAAKSB
XMQBAGVkaXRpbmcvc2VsZWN0aW9uL3NlbGVjdC1jcmFzaC0wMDItc3RkZXJyLnR4dFVUBQADDXg8
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIANKAyko8OZpeuAkAAHYyAAANABgAAAAAAAEAAACk
gSbFAQBlcnJvcl9sb2cudHh0VVQFAAN8ezxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeoDK
SgAAAAAAAAAAAAAAAAUAGAAAAAAAAAAQAO1BJc8BAGZhc3QvVVQFAAPYejxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAgn7KSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BZM8BAGZhc3QvY2Fu
dmFzL1VUBQADFHg8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHx+ykps4H8AjQAAADQBAAAm
ABgAAAAAAAEAAACkgarPAQBmYXN0L2NhbnZhcy9jYW52YXMtbGluZURhc2gtc3RkZXJyLnR4dFVU
BQADC3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIJ+ykrnoCPc8wAAAB0CAAAnABgAAAAA
AAEAAACkgZfQAQBmYXN0L2NhbnZhcy9xdWFkcmF0aWNDdXJ2ZVRvLXN0ZGVyci50eHRVVAUAAxR4
PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACBfspKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA
7UHr0QEAZmFzdC9jc3MvVVQFAAMSeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAen7KSuYr
u2D0AAAAHQIAAC4AGAAAAAAAAQAAAKSBLtIBAGZhc3QvY3NzL2F0dHJpYnV0ZS1zZWxlY3Rvci1k
eW5hbWljLXN0ZGVyci50eHRVVAUAAwh4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACBfspK
2wjTQjsAAAA/AAAAKQAYAAAAAAABAAAApIGK0wEAZmFzdC9jc3MvY29tcGFyZS1jb250ZW50LXN0
eWxlLXN0ZGVyci50eHRVVAUAAxJ4PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACCfspKAAAA
AAAAAAAAAAAACQAYAAAAAAAAABAA7UEo1AEAZmFzdC9kb20vVVQFAAMUeDxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAgH7KSgAAAAAAAAAAAAAAABIAGAAAAAAAAAAQAO1Ba9QBAGZhc3QvZG9t
L0RvY3VtZW50L1VUBQADD3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIB+ykpFPFdw8wAA
AB0CAAAvABgAAAAAAAEAAACkgbfUAQBmYXN0L2RvbS9Eb2N1bWVudC94bWwtZG9jdW1lbnQtZm9j
dXMtc3RkZXJyLnR4dFVUBQADD3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIF+ykrRs/gu
9QAAAB0CAAAtABgAAAAAAAEAAACkgRPWAQBmYXN0L2RvbS9jcmVhdGVFbGVtZW50LXdpdGgtY29s
dW1uLXN0ZGVyci50eHRVVAUAAxJ4PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACCfspKAAAA
AAAAAAAAAAAAIAAYAAAAAAAAABAA7UFv1wEAZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFt
ZS9VVAUAAxR4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACCfspK4AbiBPQAAAAdAgAALgAY
AAAAAAABAAAApIHJ1wEAZmFzdC9kb20vZ2V0RWxlbWVudHNCeUNsYXNzTmFtZS8wMTAtc3RkZXJy
LnR4dFVUBQADFHg8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAIR+ykoAAAAAAAAAAAAAAAAO
ABgAAAAAAAAAEADtQSXZAQBmYXN0L2VuY29kaW5nL1VUBQADGHg8WXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAAIN+ykoAAAAAAAAAAAAAAAAZABgAAAAAAAAAEADtQW3ZAQBmYXN0L2VuY29kaW5n
L2R1bXBBc1RleHQvVVQFAAMVeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAg37KSs5Wuh/y
AAAAHQIAADEAGAAAAAAAAQAAAKSBwNkBAGZhc3QvZW5jb2RpbmcvZHVtcEFzVGV4dC91dGYtMTYt
bm8tYm9tLXN0ZGVyci50eHRVVAUAAxV4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACEfspK
AYSyRvQAAAAdAgAAJAAYAAAAAAABAAAApIEd2wEAZmFzdC9lbmNvZGluZy9pbnZhbGlkLXhtbC1z
dGRlcnIudHh0VVQFAAMYeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAiH7KSgAAAAAAAAAA
AAAAAAwAGAAAAAAAAAAQAO1Bb9wBAGZhc3QvZXZlbnRzL1VUBQADH3g8WXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAIh+ykrXOXU29QAAAB0CAAA/ABgAAAAAAAEAAACkgbXcAQBmYXN0L2V2ZW50
cy9tZWRpYS1mb2N1cy1pbi1zdGFuZGFsb25lLW1lZGlhLWRvY3VtZW50LXN0ZGVyci50eHRVVAUA
Ax94PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACNfspKAAAAAAAAAAAAAAAACwAYAAAAAAAA
ABAA7UEj3gEAZmFzdC9mb3Jtcy9VVAUAAyp4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACJ
fspKveDxlqoAAADoAAAAMwAYAAAAAAABAAAApIFo3gEAZmFzdC9mb3Jtcy9mb3JtLWFzc29jaWF0
ZWQtZWxlbWVudC1jcmFzaC1zdGRlcnIudHh0VVQFAAMheDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAjX7KSmYy3pqgAAAAzAAAADMAGAAAAAAAAQAAAKSBf98BAGZhc3QvZm9ybXMvaW50ZXJh
Y3RpdmUtdmFsaWRhdGlvbi1jYW5jZWwtc3RkZXJyLnR4dFVUBQADKng8WXV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAIl+ykoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQYzgAQBmYXN0L2ZyYW1l
cy9VVAUAAyJ4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACJfspK2wjTQjsAAAA/AAAALwAY
AAAAAAABAAAApIHS4AEAZmFzdC9mcmFtZXMvZnJhbWUtZGlzcGxheS1ub25lLWZvY3VzLXN0ZGVy
ci50eHRVVAUAAyJ4PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACNfspKAAAAAAAAAAAAAAAA
DAAYAAAAAAAAABAA7UF24QEAZmFzdC9pbWFnZXMvVVQFAAMqeDxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAjX7KSiGPvTgyAAAAMwAAACwAGAAAAAAAAQAAAKSBvOEBAGZhc3QvaW1hZ2VzL3Bk
Zi1hcy1pbWFnZS1jcm9wLWJveC1zdGRlcnIudHh0VVQFAAMqeDxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAjn7KSgAAAAAAAAAAAAAAAAwAGAAAAAAAAAAQAO1BVOIBAGZhc3QvbG9hZGVyL1VU
BQADK3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAIt+ykrbCNNCOwAAAD8AAABSABgAAAAA
AAEAAACkgZriAQBmYXN0L2xvYWRlci9kaXNwbGF5LWltYWdlLXVuc2V0LWNhbi1ibG9jay1pbWFn
ZS1hbmQtY2FuLXJlbG9hZC1pbi1wbGFjZS1zdGRlcnIudHh0VVQFAAMleDxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAi37KStsI00I7AAAAPwAAAFMAGAAAAAAAAQAAAKSBYeMBAGZhc3QvbG9h
ZGVyL2ltYWdlcy1lbmFibGVkLXVuc2V0LWNhbi1ibG9jay1pbWFnZS1hbmQtY2FuLXJlbG9hZC1p
bi1wbGFjZS1zdGRlcnIudHh0VVQFAAMmeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAjn7K
StsI00I7AAAAPwAAAC0AGAAAAAAAAQAAAKSBKeQBAGZhc3QvbG9hZGVyL3JlbG9hZC1wb2xpY3kt
ZGVsZWdhdGUtc3RkZXJyLnR4dFVUBQADK3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAJR+
ykoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQcvkAQBmYXN0L3BhcnNlci9VVAUAAzd4PFl1eAsA
AQT1AQAABBQAAABQSwECHgMUAAIACACRfspKZm2B0fQAAAAdAgAAMAAYAAAAAAABAAAApIER5QEA
ZmFzdC9wYXJzZXIvZXh0ZXJuYWwtZW50aXRpZXMtaW4teHNsdC1zdGRlcnIudHh0VVQFAAMyeDxZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAlH7KSgKVvQJjAAAAawAAADIAGAAAAAAAAQAAAKSB
b+YBAGZhc3QvcGFyc2VyL3N0cmlwLXNjcmlwdC1hdHRycy1vbi1pbnB1dC1zdGRlcnIudHh0VVQF
AAM3eDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAmH7KSgAAAAAAAAAAAAAAABAAGAAAAAAA
AAAQAO1BPucBAGZhc3Qvc2hhZG93LWRvbS9VVAUAA0B4PFl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACACYfspK0YB6VWMAAABrAAAAOQAYAAAAAAABAAAApIGI5wEAZmFzdC9zaGFkb3ctZG9tL3Nl
bGVjdGlvbi1hdC1zaGFkb3ctcm9vdC1jcmFzaC1zdGRlcnIudHh0VVQFAANAeDxZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DCgAAAAAAmX7KSgAAAAAAAAAAAAAAAAoAGAAAAAAAAAAQAO1BXugBAGZhc3Qv
dGV4dC9VVAUAA0J4PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACZfspKAAAAAAAAAAAAAAAA
GAAYAAAAAAAAABAA7UGi6AEAZmFzdC90ZXh0L2ludGVybmF0aW9uYWwvVVQFAANCeDxZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAm37KSgAAAAAAAAAAAAAAACgAGAAAAAAAAAAQAO1B9OgBAGZh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFnZS9VVAUAA0Z4PFl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACACZfspK+GZnkvIAAAAdAgAAUgAYAAAAAAABAAAApIFW6QEAZmFzdC90
ZXh0L2ludGVybmF0aW9uYWwvc3lzdGVtLWxhbmd1YWdlL2FyYWJpYy1nbHlwaC1jYWNoZS1maWxs
LWNvbWJpbmUtc3RkZXJyLnR4dFVUBQADQng8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJl+
ykq6tugw9AAAAB0CAABHABgAAAAAAAEAAACkgdTqAQBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9z
eXN0ZW0tbGFuZ3VhZ2UvZGVjbGFyYXRpdmUtbGFuZ3VhZ2Utc3RkZXJyLnR4dFVUBQADQng8WXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJp+ykqz8h0M9AAAAB0CAAA9ABgAAAAAAAEAAACkgUns
AQBmYXN0L3RleHQvaW50ZXJuYXRpb25hbC9zeXN0ZW0tbGFuZ3VhZ2UvaGFuLXF1b3Rlcy1zdGRl
cnIudHh0VVQFAANEeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAm37KSpOPjyrzAAAAHQIA
AFAAGAAAAAAAAQAAAKSBtO0BAGZhc3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFn
ZS9oaW5kaS1zeXN0ZW0tZm9udC1wdW5jdHVhdGlvbi1zdGRlcnIudHh0VVQFAANGeDxZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgAm37KStUJQcL0AAAAHQIAAEoAGAAAAAAAAQAAAKSBMe8BAGZh
c3QvdGV4dC9pbnRlcm5hdGlvbmFsL3N5c3RlbS1sYW5ndWFnZS9zeXN0ZW0tZm9udC1wdW5jdHVh
dGlvbi1zdGRlcnIudHh0VVQFAANGeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeoDKSgAA
AAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BqfABAGZhc3QvdGV4dC1hdXRvc2l6aW5nL1VUBQAD2Ho8
WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAHqAykoAAAAAAAAAAAAAAAAZABgAAAAAAAAAEADt
QfjwAQBmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvVVQFAAPYejxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAAeoDKSgAAAAAAAAAAAAAAAB4AGAAAAAAAAAAQAO1BS/EBAGZhc3QvdGV4dC1hdXRv
c2l6aW5nL2lvcy9pcGFkL1VUBQAD2Ho8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAHqAykoc
DXxu8wAAAB0CAABGABgAAAAAAAEAAACkgaPxAQBmYXN0L3RleHQtYXV0b3NpemluZy9pb3MvaXBh
ZC9wcm9ncmFtbWF0aWMtdGV4dC1zaXplLWFkanVzdC1zdGRlcnIudHh0VVQFAAPYejxZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAeoDKSgAAAAAAAAAAAAAAAA4AGAAAAAAAAAAQAO1BFvMBAGZh
c3Qvdmlld3BvcnQvVVQFAAPYejxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAeoDKSgAAAAAA
AAAAAAAAABIAGAAAAAAAAAAQAO1BXvMBAGZhc3Qvdmlld3BvcnQvaW9zL1VUBQAD2Ho8WXV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAHqAykoAAAAAAAAAAAAAAAAXABgAAAAAAAAAEADtQarzAQBm
YXN0L3ZpZXdwb3J0L2lvcy9pcGFkL1VUBQAD2Ho8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AHqAykpWfoyD9AAAAB0CAAA3ABgAAAAAAAEAAACkgfvzAQBmYXN0L3ZpZXdwb3J0L2lvcy9pcGFk
L3dpZHRoLWlzLWRldmljZS13aWR0aC1zdGRlcnIudHh0VVQFAAPYejxZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DCgAAAAAAnH7KSgAAAAAAAAAAAAAAABUAGAAAAAAAAAAQAO1BYPUBAGZhc3QvdmlzdWFs
LXZpZXdwb3J0L1VUBQADSHg8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAJx+ykpXpWdS9AAA
AB0CAABIABgAAAAAAAEAAACkga/1AQBmYXN0L3Zpc3VhbC12aWV3cG9ydC9jbGllbnQtcmVjdHMt
cmVsYXRpdmUtdG8tbGF5b3V0LXZpZXdwb3J0LXN0ZGVyci50eHRVVAUAA0h4PFl1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAACgfspKAAAAAAAAAAAAAAAACQAYAAAAAAAAABAA7UEl9wEAZmFzdC94
c2wvVVQFAANMeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAoH7KStnipKjyAAAAHQIAACUA
GAAAAAAAAQAAAKSBaPcBAGZhc3QveHNsL2RvY3VtZW50LWZ1bmN0aW9uLXN0ZGVyci50eHRVVAUA
A0t4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACgfspKTvsg+IgAAADnAAAAJQAYAAAAAAAB
AAAApIG5+AEAZmFzdC94c2wvdHJhbnNmb3JtLXhoci1kb2Mtc3RkZXJyLnR4dFVUBQADS3g8WXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAKB+ykr9oi5kjwAAAO4AAAAnABgAAAAAAAEAAACkgaD5
AQBmYXN0L3hzbC94c2x0LWJhZC1pbXBvcnQtdXJpLXN0ZGVyci50eHRVVAUAA0t4PFl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACACgfspKsrvGZ4cAAAA0AQAAJAAYAAAAAAABAAAApIGQ+gEAZmFz
dC94c2wveHNsdC1jb250ZW50VHlwZS1zdGRlcnIudHh0VVQFAANLeDxZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAoH7KSsLr9caMAAAAYAEAADQAGAAAAAAAAQAAAKSBdfsBAGZhc3QveHNsL3hz
bHQtdHJhbnNmb3JtLXRvLWZyYWdtZW50LWNyYXNoLXN0ZGVyci50eHRVVAUAA0x4PFl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADqgMpKZkecwY4BAABvAgAAEQAYAAAAAAABAAAApIFv/AEAZnVs
bF9yZXN1bHRzLmpzb25VVAUAA6h7PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACkfspKAAAA
AAAAAAAAAAAABQAYAAAAAAAAABAA7UFI/gEAaHR0cC9VVAUAA1N4PFl1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADAfspKAAAAAAAAAAAAAAAACwAYAAAAAAAAABAA7UGH/gEAaHR0cC90ZXN0cy9V
VAUAA4d4PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACkfspKAAAAAAAAAAAAAAAAEwAYAAAA
AAAAABAA7UHM/gEAaHR0cC90ZXN0cy9jb29raWVzL1VUBQADU3g8WXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIAKR+ykr1QUzixQEAACArAAA5ABgAAAAAAAEAAACkgRn/AQBodHRwL3Rlc3RzL2Nv
b2tpZXMvdGhpcmQtcGFydHktY29va2llLXJlbGF4aW5nLXN0ZGVyci50eHRVVAUAA1N4PFl1eAsA
AQT1AQAABBQAAABQSwECHgMKAAAAAACofspKAAAAAAAAAAAAAAAAEgAYAAAAAAAAABAA7UFRAQIA
aHR0cC90ZXN0cy9pbWFnZXMvVVQFAANbeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAqH7K
Sn0WGJxwAAAA1gAAAC4AGAAAAAAAAQAAAKSBnQECAGh0dHAvdGVzdHMvaW1hZ2VzL2hpZHBpLXNy
Y3NldC1jb3B5LXN0ZGVyci50eHRVVAUAA1t4PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADA
fspKAAAAAAAAAAAAAAAAEAAYAAAAAAAAABAA7UF1AgIAaHR0cC90ZXN0cy9taXNjL1VUBQADh3g8
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAMB+ykoVNTWSegAAALwAAAAqABgAAAAAAAEAAACk
gb8CAgBodHRwL3Rlc3RzL21pc2MveHNsdC1iYWQtaW1wb3J0LXN0ZGVyci50eHRVVAUAA4d4PFl1
eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAACqfspKAAAAAAAAAAAAAAAAFgAYAAAAAAAAABAA7UGd
AwIAaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL1VUBQADX3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAKp+ykrbCNNCOwAAAD8AAAA3ABgAAAAAAAEAAACkge0DAgBodHRwL3Rlc3RzL25hdmlnYXRp
b24vZmFsbGJhY2stYW5jaG9yLXJlbG9hZC1zdGRlcnIudHh0VVQFAANfeDxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAArX7KSgAAAAAAAAAAAAAAABMAGAAAAAAAAAAQAO1BmQQCAGh0dHAvdGVz
dHMvcHJlbG9hZC9VVAUAA2V4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACsfspK8ZM9Ea8A
AADjAAAAPQAYAAAAAAABAAAApIHmBAIAaHR0cC90ZXN0cy9wcmVsb2FkL3NpbmdsZV9kb3dubG9h
ZF9wcmVsb2FkX2hlYWRlcnMtYWN0dWFsLnR4dFVUBQADY3g8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIAKx+ykrl9KloMAEAAG4CAAA7ABgAAAAAAAEAAACkgQwGAgBodHRwL3Rlc3RzL3ByZWxv
YWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfaGVhZGVycy1kaWZmLnR4dFVUBQADY3g8WXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAKx+ykoltQyIdgAAAJIAAAA/ABgAAAAAAAEAAACkgbEHAgBo
dHRwL3Rlc3RzL3ByZWxvYWQvc2luZ2xlX2Rvd25sb2FkX3ByZWxvYWRfaGVhZGVycy1leHBlY3Rl
ZC50eHRVVAUAA2N4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACtfspKhJmvykAIAABJGwAA
QwAYAAAAAAABAAAApIGgCAIAaHR0cC90ZXN0cy9wcmVsb2FkL3NpbmdsZV9kb3dubG9hZF9wcmVs
b2FkX2hlYWRlcnMtcHJldHR5LWRpZmYuaHRtbFVUBQADZXg8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAMB+ykoAAAAAAAAAAAAAAAAUABgAAAAAAAAAEADtQV0RAgBodHRwL3Rlc3RzL3NlY3Vy
aXR5L1VUBQADiHg8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALx+ykoAAAAAAAAAAAAAAAAq
ABgAAAAAAAAAEADtQasRAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9VVAUAA4N4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACACrfspKdgCL33AAAABzAAAAVwAY
AAAAAAABAAAApIEPEgIAaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kv
ZGVmYXVsdC1zcmMtc3Rhci13ZWJzb2NrZXQtYWxsb3dlZC1zdGRlcnIudHh0VVQFAANieDxZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAr37KSgAAAAAAAAAAAAAAAEQAGAAAAAAAAAAQAO1BEBMC
AGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1
cmUtcmVxdWVzdHMvVVQFAANqeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAr37KSqRmFKyQ
AAAAnAAAAH4AGAAAAAAAAQAAAKSBjhMCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3Vy
aXR5UG9saWN5L3VwZ3JhZGUtaW5zZWN1cmUtcmVxdWVzdHMvdXBncmFkZS1yZWRpcmVjdC1odHRw
cy10by1odHRwLXNjcmlwdC1pbi1pZnJhbWUtc3RkZXJyLnR4dFVUBQADang8WXV4CwABBPUBAAAE
FAAAAFBLAQIeAwoAAAAAALF+ykoAAAAAAAAAAAAAAAA9ABgAAAAAAAAAEADtQdYUAgBodHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS91c2VyQWdlbnRTaGFkb3dET00vVVQF
AANueDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsX7KSq6ccozzAAAAHQIAAGsAGAAAAAAA
AQAAAKSBTRUCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3VzZXJB
Z2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYWxsb3dlZC1zdGRlcnIu
dHh0VVQFAANteDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsX7KSvkqN6z0AAAAHQIAAGsA
GAAAAAAAAQAAAKSB5RYCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxvY2tlZC1z
dGRlcnIudHh0VVQFAANueDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsX7KSh9XyAT1AAAA
HQIAAGwAGAAAAAAAAQAAAKSBfhgCAGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3VzZXJBZ2VudFNoYWRvd0RPTS9kZWZhdWx0LXNyYy1vYmplY3QtZGF0YS11cmwtYmxv
Y2tlZDMtc3RkZXJyLnR4dFVUBQADbng8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALt+ykpj
qqxsggAAAKgAAABAABgAAAAAAAEAAACkgRkaAgBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS94c2wtYWxsb3dlZC1zdGRlcnIudHh0VVQFAAOCeDxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAvH7KSmOqrGyCAAAAqAAAAFIAGAAAAAAAAQAAAKSBFRsCAGh0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC11bmFmZmVjdGVkLWJ5LXN0eWxl
LXNyYy0yLXN0ZGVyci50eHRVVAUAA4N4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADAfspK
YEtmEJEAAAD7AQAARQAYAAAAAAABAAAApIEjHAIAaHR0cC90ZXN0cy9zZWN1cml0eS94c3MtREVO
SUVELXhzbC1kb2N1bWVudC1zZWN1cml0eU9yaWdpbi1zdGRlcnIudHh0VVQFAAOIeDxZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DCgAAAAAAsn7KSgAAAAAAAAAAAAAAAA8AGAAAAAAAAAAQAO1BMx0CAGh0
dHAvdGVzdHMvc3NsL1VUBQADb3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALJ+ykoAAAAA
AAAAAAAAAAAcABgAAAAAAAAAEADtQXwdAgBodHRwL3Rlc3RzL3NzbC9taXhlZENvbnRlbnQvVVQF
AANveDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAsn7KSoFcIn3yAAAAHQIAADkAGAAAAAAA
AQAAAKSB0h0CAGh0dHAvdGVzdHMvc3NsL21peGVkQ29udGVudC9pbnNlY3VyZS13ZWJzb2NrZXQt
c3RkZXJyLnR4dFVUBQADb3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAALh+ykoAAAAAAAAA
AAAAAAAaABgAAAAAAAAAEADtQTcfAgBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L1VUBQADe3g8
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIALZ+ykpGYackNAEAAGQFAABOABgAAAAAAAEAAACk
gYsfAgBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLXByZWZsaWdodC1j
cmVkZW50aWFsLWFzeW5jLXN0ZGVyci50eHRVVAUAA3d4PFl1eAsAAQT1AQAABBQAAABQSwECHgMU
AAIACAC2fspKgBrE7UwBAADICgAATQAYAAAAAAABAAAApIFHIQIAaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9hY2Nlc3MtY29udHJvbC1wcmVmbGlnaHQtY3JlZGVudGlhbC1zeW5jLXN0ZGVyci50
eHRVVAUAA3d4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC2fspKFVr2jzMBAABkBQAASwAY
AAAAAAABAAAApIEaIwIAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1w
cmVmbGlnaHQtaGVhZGVycy1hc3luYy1zdGRlcnIudHh0VVQFAAN3eDxZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAuH7KSrFYWYchAQAAsgIAAEAAGAAAAAAAAQAAAKSB0iQCAGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvY3Jvc3Mtb3JpZ2luLWNvb2tpZS1zdG9yYWdlLXN0ZGVyci50eHRVVAUA
A3t4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAC4fspKpB/14RwBAACyAgAARgAYAAAAAAAB
AAAApIFtJgIAaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9jcm9zcy1vcmlnaW4tbm8tY3JlZGVu
dGlhbC1wcm9tcHQtc3RkZXJyLnR4dFVUBQADe3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
ABJ+ykpbBFgOogUAAE0QAAAKABgAAAAAAAEAAACkgQkoAgBodHRwZC5jb25mVVQFAANEdzxZdXgL
AAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA0n7KSgAAAAAAAAAAAAAAAAkAGAAAAAAAAAAQAO1B7y0C
AGltcG9ydGVkL1VUBQADrHg8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAANJ+ykoAAAAAAAAA
AAAAAAANABgAAAAAAAAAEADtQTIuAgBpbXBvcnRlZC93M2MvVVQFAAOseDxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAE3/KSgAAAAAAAAAAAAAAACAAGAAAAAAAAAAQAO1BeS4CAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvVVQFAAMmeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAA0n7KSgAAAAAAAAAAAAAAAC0AGAAAAAAAAAAQAO1B0y4CAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvV2ViQ3J5cHRvQVBJL1VUBQADrHg8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAON+ykoAAAAAAAAAAAAAAAA5ABgAAAAAAAAAEADtQTovAgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL1dlYkNyeXB0b0FQSS9nZW5lcmF0ZUtleS9VVAUAA8p4PFl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACADSfspKjzQacEQAAACgCQAAXAAYAAAAAAABAAAApIGtLwIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVy
ZXNfUlNBLU9BRVAud29ya2VyLXN0ZGVyci50eHRVVAUAA6x4PFl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADUfspKVALJsjYAAADAAgAAZQAYAAAAAAABAAAApIGHMAIAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvZmFpbHVyZXNfUlNBU1NB
LVBLQ1MxLXYxXzUud29ya2VyLXN0ZGVyci50eHRVVAUAA694PFl1eAsAAQT1AQAABBQAAABQSwEC
HgMUAAIACADgfspK4YKG6EkAAABgDAAAVwAYAAAAAAABAAAApIFcMQIAaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy9XZWJDcnlwdG9BUEkvZ2VuZXJhdGVLZXkvdGVzdF9mYWlsdXJlcy5o
dHRwcy1zdGRlcnIudHh0VVQFAAPDeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA4n7KSo80
GnBEAAAAoAkAAGAAGAAAAAAAAQAAAKSBNjICAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvV2ViQ3J5cHRvQVBJL2dlbmVyYXRlS2V5L3Rlc3RfZmFpbHVyZXNfUlNBLU9BRVAuaHR0cHMt
c3RkZXJyLnR4dFVUBQADx3g8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAON+ykpUAsmyNgAA
AMACAABpABgAAAAAAAEAAACkgRQzAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL1dl
YkNyeXB0b0FQSS9nZW5lcmF0ZUtleS90ZXN0X2ZhaWx1cmVzX1JTQVNTQS1QS0NTMS12MV81Lmh0
dHBzLXN0ZGVyci50eHRVVAUAA8p4PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADrfspKAAAA
AAAAAAAAAAAAKQAYAAAAAAAAABAA7UHtMwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy9lbmNvZGluZy9VVAUAA9l4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADrfspKLTmODfUA
AAAdAgAARwAYAAAAAAABAAAApIFQNAIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9l
bmNvZGluZy9zaW5nbGUtYnl0ZS1kZWNvZGVyLXN0ZGVyci50eHRVVAUAA9l4PFl1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAADyfspKAAAAAAAAAAAAAAAAJgAYAAAAAAAAABAA7UHGNQIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9VVAUAA+h4PFl1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAADtfspKAAAAAAAAAAAAAAAAKgAYAAAAAAAAABAA7UEmNgIAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvVVQFAAPeeDxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DCgAAAAAA7X7KSgAAAAAAAAAAAAAAADAAGAAAAAAAAAAQAO1BijYCAGltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Jhc2ljL1VUBQAD3ng8WXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIAO1+yko0TLb3kQAAAJ0AAABHABgAAAAAAAEAAACkgfQ2AgBpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9iYXNpYy9tb2RlLW5vLWNvcnMtc3RkZXJy
LnR4dFVUBQAD3ng8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAO1+ykqTNd4lkAAAAJ0AAABO
ABgAAAAAAAEAAACkgQY4AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL2Fw
aS9iYXNpYy9tb2RlLW5vLWNvcnMtd29ya2VyLXN0ZGVyci50eHRVVAUAA954PFl1eAsAAQT1AQAA
BBQAAABQSwECHgMKAAAAAADvfspKAAAAAAAAAAAAAAAALwAYAAAAAAAAABAA7UEeOQIAaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9VVAUAA+F4PFl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACADqfspKVvlrQ6sAAACoAwAASAAYAAAAAAABAAAApIGHOQIAaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLWJhc2ljLmFu
eS1zdGRlcnIudHh0VVQFAAPXeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA6n7KSsIANCCr
AAAAqAMAAE8AGAAAAAAAAQAAAKSBtDoCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
ZmV0Y2gvYXBpL2NvcnMvY29ycy1iYXNpYy5hbnkud29ya2VyLXN0ZGVyci50eHRVVAUAA9d4PFl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADrfspKj4PCl5oAAAA4AQAATwAYAAAAAAABAAAApIHo
OwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLW5v
LXByZWZsaWdodC5hbnktc3RkZXJyLnR4dFVUBQAD2ng8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAOt+ykpyzNYtmQAAADgBAABWABgAAAAAAAEAAACkgQs9AgBpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL2ZldGNoL2FwaS9jb3JzL2NvcnMtbm8tcHJlZmxpZ2h0LmFueS53b3JrZXIt
c3RkZXJyLnR4dFVUBQAD2ng8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAOx+ykrqofijRQIA
AEEMAABJABgAAAAAAAEAAACkgTQ+AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2Zl
dGNoL2FwaS9jb3JzL2NvcnMtb3JpZ2luLmFueS1zdGRlcnIudHh0VVQFAAPbeDxZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgA7H7KSvYq9oujAAAAcAIAAFAAGAAAAAAAAQAAAKSB/EACAGltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1vcmlnaW4uYW55
Lndvcmtlci1zdGRlcnIudHh0VVQFAAPbeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7X7K
SlMER4nUAgAAmBIAAFMAGAAAAAAAAQAAAKSBKUICAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvYXBpL2NvcnMvY29ycy1wcmVmbGlnaHQtc3RhdHVzLmFueS1zdGRlcnIudHh0
VVQFAAPdeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA7X7KSrYa9QWbAQAA3gUAAEwAGAAA
AAAAAQAAAKSBikUCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvZmV0Y2gvYXBpL2Nv
cnMvY29ycy1wcmVmbGlnaHQuYW55LXN0ZGVyci50eHRVVAUAA914PFl1eAsAAQT1AQAABBQAAABQ
SwECHgMUAAIACADvfspKD/bh+MkCAAC/EwAAVQAYAAAAAAABAAAApIGrRwIAaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRjaC9hcGkvY29ycy9jb3JzLXJlZGlyZWN0LXByZWZsaWdo
dC5hbnktc3RkZXJyLnR4dFVUBQAD4Xg8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAPN+ykoA
AAAAAAAAAAAAAAAuABgAAAAAAAAAEADtQQNLAgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL2ZldGNoL25vc25pZmYvVVQFAAPpeDxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgA8n7K
Ss0PIN+bAAAAxgAAAEgAGAAAAAAAAQAAAKSBa0sCAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvZmV0Y2gvbm9zbmlmZi9wYXJzaW5nLW5vc25pZmYtc3RkZXJyLnR4dFVUBQAD6Hg8WXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAPN+ykoZ4T1crAAAAOoCAAA/ABgAAAAAAAEAAACkgYhM
AgBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2ZldGNoL25vc25pZmYvc2NyaXB0LXN0
ZGVyci50eHRVVAUAA+l4PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACADzfspKdCPsaK4AAAD2
AgAAQwAYAAAAAAABAAAApIGtTQIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9mZXRj
aC9ub3NuaWZmL3N0eWxlc2hlZXQtc3RkZXJyLnR4dFVUBQAD6Xg8WXV4CwABBPUBAAAEFAAAAFBL
AQIeAwoAAAAAABN/ykoAAAAAAAAAAAAAAAAlABgAAAAAAAAAEADtQdhOAgBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvVVQFAAMmeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAA
AAAAE3/KSgAAAAAAAAAAAAAAAC8AGAAAAAAAAAAQAO1BN08CAGltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvVVQFAAMmeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
CgAAAAAAE3/KSgAAAAAAAAAAAAAAADUAGAAAAAAAAAAQAO1BoE8CAGltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvVVQFAAMmeTxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAE3/KSgAAAAAAAAAAAAAAAEEAGAAAAAAAAAAQAO1BD1ACAGltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvY29uc3RyYWludHMv
VVQFAAMmeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAE3/KSm/2cyw9AgAAyDcAAGoAGAAA
AAAAAQAAAKSBilACAGltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRp
Y3MvZm9ybXMvY29uc3RyYWludHMvZm9ybS12YWxpZGF0aW9uLXJlcG9ydFZhbGlkaXR5LXN0ZGVy
ci50eHRVVAUAAyZ5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAATf8pKAjMwMeoAAACQCQAA
ZAAYAAAAAAABAAAApIFrUwIAaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3Nl
bWFudGljcy9mb3Jtcy9jb25zdHJhaW50cy9mb3JtLXZhbGlkYXRpb24tdmFsaWRhdGUtc3RkZXJy
LnR4dFVUBQADJnk8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAACl/ykoAAAAAAAAAAAAAAAAW
ABgAAAAAAAAAEADtQfNUAgBpbnRlcnNlY3Rpb24tb2JzZXJ2ZXIvVVQFAANOeTxZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAKX/KSt6g+Gz0AAAAHQIAAEYAGAAAAAAAAQAAAKSBQ1UCAGludGVy
c2VjdGlvbi1vYnNlcnZlci9pbnRlcnNlY3Rpb24tb2JzZXJ2ZXItZW50cnktaW50ZXJmYWNlLXN0
ZGVyci50eHRVVAUAA055PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAAAqf8pKAAAAAAAAAAAA
AAAABwAYAAAAAAAAABAA7UG3VgIAanF1ZXJ5L1VUBQADT3k8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIACp/ykoCQrNU9QAAAB0CAAAcABgAAAAAAAEAAACkgfhWAgBqcXVlcnkvYXR0cmlidXRl
cy1zdGRlcnIudHh0VVQFAANPeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAOn/KSgAAAAAA
AAAAAAAAAAMAGAAAAAAAAAAQAO1BQ1gCAGpzL1VUBQADb3k8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAADx/ykoAAAAAAAAAAAAAAAAHABgAAAAAAAAAEADtQYBYAgBqcy9kb20vVVQFAAN0eTxZ
dXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOn/KSnFA4J/tAAAAJwcAAFMAGAAAAAAAAQAAAKSB
wVgCAGpzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXBy
b3BlcnR5LXNsb3QtdHJhcHMtNS1hY3R1YWwudHh0VVQFAANveTxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAOn/KSrIhWl0NAQAAfQMAAFEAGAAAAAAAAQAAAKSBO1oCAGpzL2RvbS9wcm90b3R5
cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMt
NS1kaWZmLnR4dFVUBQADb3k8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADp/ykoWkkR/1QAA
AMMGAABVABgAAAAAAAEAAACkgdNbAgBqcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0
aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtZXhwZWN0ZWQudHh0VVQFAANv
eTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAOn/KSsiWoCh0CAAAhiQAAFkAGAAAAAAAAQAA
AKSBN10CAGpzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3du
LXByb3BlcnR5LXNsb3QtdHJhcHMtNS1wcmV0dHktZGlmZi5odG1sVVQFAANweTxZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgAPH/KSlo2jSLzAAAAHQIAACAAGAAAAAAAAQAAAKSBPmYCAGpzL2Rv
bS9yZWdyZXNzLTE1NzI0Ni1zdGRlcnIudHh0VVQFAAN0eTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4D
FAACAAgAPH/KSlFS9VL0AAAAHQIAACgAGAAAAAAAAQAAAKSBi2cCAGpzL2RvbS9yZW1vdmluZy1D
Zi1jaGFyYWN0ZXJzLXN0ZGVyci50eHRVVAUAA3R5PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AAB7gMpKAAAAAAAAAAAAAAAABgAYAAAAAAAAABAA7UHhaAIAbWVkaWEvVVQFAAPZejxZdXgLAAEE
9QEAAAQUAAAAUEsBAh4DFAACAAgANX/KSkikDzr0AAAAHQIAACEAGAAAAAAAAQAAAKSBIWkCAG1l
ZGlhL2Fkb3B0LW5vZGUtY3Jhc2gtc3RkZXJyLnR4dFVUBQADZXk8WXV4CwABBPUBAAAEFAAAAFBL
AQIeAxQAAgAIADZ/yko0YGJc9QAAAB0CAAArABgAAAAAAAEAAACkgXBqAgBtZWRpYS9hdWRpby1j
b25jdXJyZW50LXN1cHBvcnRlZC1zdGRlcnIudHh0VVQFAANneTxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgANn/KSsQ5rqX0AAAAHQIAAC8AGAAAAAAAAQAAAKSBymsCAG1lZGlhL2F1ZGlvLWNv
bnRyb2xzLWRvLW5vdC1mYWRlLW91dC1zdGRlcnIudHh0VVQFAANoeTxZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAN3/KSrfuZaf2AAAAHQIAADoAGAAAAAAAAQAAAKSBJ20CAG1lZGlhL2F1ZGlv
LWNvbnRyb2xzLXRpbWVsaW5lLWluLW1lZGlhLWRvY3VtZW50LXN0ZGVyci50eHRVVAUAA2l5PFl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA3f8pKCPPewvUAAAAdAgAAHwAYAAAAAAABAAAApIGR
bgIAbWVkaWEvYXVkaW8tZGF0YS11cmwtc3RkZXJyLnR4dFVUBQADaXk8WXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADh/ykrp4joT9QAAAB0CAAAeABgAAAAAAAEAAACkgd9vAgBtZWRpYS9hdWRp
by1yZXBhaW50LXN0ZGVyci50eHRVVAUAA2x5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA4
f8pKwjGsrvUAAAAdAgAAOAAYAAAAAAABAAAApIEscQIAbWVkaWEvYXV0by1wbGF5LWluLXNhbmRi
b3gtd2l0aC1hbGxvdy1zY3JpcHRzLXN0ZGVyci50eHRVVAUAA2x5PFl1eAsAAQT1AQAABBQAAABQ
SwECHgMKAAAAAAB7gMpKAAAAAAAAAAAAAAAADwAYAAAAAAAAABAA7UGTcgIAbWVkaWEvY29udHJv
bHMvVVQFAAPZejxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAe4DKSgAAAAAAAAAAAAAAABQA
GAAAAAAAAAAQAO1B3HICAG1lZGlhL2NvbnRyb2xzL2lwYWQvVVQFAAPZejxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAe4DKSpLF3jP0AAAAHQIAAFkAGAAAAAAAAQAAAKSBKnMCAG1lZGlhL2Nv
bnRyb2xzL2lwYWQvY2xvc2UtcGFnZS13aXRoLXBpY3R1cmUtaW4tcGljdHVyZS12aWRlby1hc3Nl
cnRpb24tZmFpbHVyZS1zdGRlcnIudHh0VVQFAAPZejxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAOX/KSu2f2yH0AAAAHQIAADAAGAAAAAAAAQAAAKSBsXQCAG1lZGlhL2NvbnRyb2xzLXJpZ2h0
LWNsaWNrLW9uLXRpbWViYXItc3RkZXJyLnR4dFVUBQADbnk8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AxQAAgAIADp/ykqDJKKA8wAAAB0CAAA+ABgAAAAAAAEAAACkgQ92AgBtZWRpYS9jb250cm9scy1z
aG91bGQtbm90LXRyaWdnZXItaXNvbGF0ZXMtYmxlbmRpbmctc3RkZXJyLnR4dFVUBQADb3k8WXV4
CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIADp/ykpVDVhC9AAAAB0CAAAgABgAAAAAAAEAAACkgXp3
AgBtZWRpYS9jb250cm9scy1zdHJpY3Qtc3RkZXJyLnR4dFVUBQADb3k8WXV4CwABBPUBAAAEFAAA
AFBLAQIeAxQAAgAIADp/ykrkfeKS9AAAAB0CAAAiABgAAAAAAAEAAACkgch4AgBtZWRpYS9ldmVu
dC1xdWV1ZS1jcmFzaC1zdGRlcnIudHh0VVQFAANweTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAPX/KSoZGwIz0AAAAHQIAACUAGAAAAAAAAQAAAKSBGHoCAG1lZGlhL21lZGlhLWNvbnRyb2xz
LWNsb25lLXN0ZGVyci50eHRVVAUAA3V5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA9f8pK
mEU3cvQAAAAdAgAAOQAYAAAAAAABAAAApIFrewIAbWVkaWEvbWVkaWEtY29udHJvbHMtc2hhZG93
LWNvbnN0cnVjdGlvbi1jcmFzaC1zdGRlcnIudHh0VVQFAAN1eTxZdXgLAAEE9QEAAAQUAAAAUEsB
Ah4DFAACAAgAPX/KSi3uhM0LAQAAOgQAADYAGAAAAAAAAQAAAKSB0nwCAG1lZGlhL21lZGlhLWRv
Y3VtZW50LWF1ZGlvLWNvbnRyb2xzLXZpc2libGUtc3RkZXJyLnR4dFVUBQADdnk8WXV4CwABBPUB
AAAEFAAAAFBLAQIeAxQAAgAIAEB/ykrlsFZADAEAADoEAAAqABgAAAAAAAEAAACkgU1+AgBtZWRp
YS9tZWRpYS1kb2N1bWVudC1hdWRpby1zaXplLXN0ZGVyci50eHRVVAUAA3d5PFl1eAsAAQT1AQAA
BBQAAABQSwECHgMUAAIACABDf8pKGHTpivQAAAAdAgAALQAYAAAAAAABAAAApIG9fwIAbWVkaWEv
bWVkaWEtZnVsbHNjcmVlbi1sb29wLWlubGluZS1zdGRlcnIudHh0VVQFAAN+eTxZdXgLAAEE9QEA
AAQUAAAAUEsBAh4DFAACAAgARH/KSqqgnNXzAAAAHQIAACEAGAAAAAAAAQAAAKSBGIECAG1lZGlh
L21lZGlhLWxvYWQtZXZlbnQtc3RkZXJyLnR4dFVUBQADf3k8WXV4CwABBPUBAAAEFAAAAFBLAQIe
AwoAAAAAAE5/ykoAAAAAAAAAAAAAAAAMABgAAAAAAAAAEADtQWaCAgBtZWRpYS90cmFjay9VVAUA
A5R5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABBf8pKdDp+TfQAAAAdAgAANQAYAAAAAAAB
AAAApIGsggIAbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1ob3Jpem9udGFsLXN0ZGVy
ci50eHRVVAUAA3p5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABCf8pKi8h/GPMAAAAdAgAA
LgAYAAAAAAABAAAApIEPhAIAbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmluZy1ydGwtc3Rk
ZXJyLnR4dFVUBQADe3k8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEJ/ykridDjm9QAAAB0C
AAAzABgAAAAAAAEAAACkgWqFAgBtZWRpYS90cmFjay90cmFjay1jdWUtcmVuZGVyaW5nLXZlcnRp
Y2FsLXN0ZGVyci50eHRVVAUAA3x5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABDf8pKtD6i
zvUAAAAdAgAANwAYAAAAAAABAAAApIHMhgIAbWVkaWEvdHJhY2svdHJhY2stY3VlLXJlbmRlcmlu
Zy13aXRoLXBhZGRpbmctc3RkZXJyLnR4dFVUBQADfXk8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQA
AgAIAEZ/ykrBxgsr9QAAAB0CAAArABgAAAAAAAEAAACkgTKIAgBtZWRpYS90cmFjay90cmFjay1j
dWVzLWN1ZWNoYW5nZS1zdGRlcnIudHh0VVQFAAODeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgASX/KSso79gb1AAAAHQIAACgAGAAAAAAAAQAAAKSBjIkCAG1lZGlhL3RyYWNrL3RyYWNrLWN1
ZXMtbWlzc2VkLXN0ZGVyci50eHRVVAUAA4p5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABN
f8pKe9t3ivUAAAAdAgAASQAYAAAAAAABAAAApIHjigIAbWVkaWEvdHJhY2svdHJhY2staW4tYmFu
ZC1kdXBsaWNhdGUtdHJhY2tzLXdoZW4tc291cmNlLWNoYW5nZXMtc3RkZXJyLnR4dFVUBQADknk8
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAE5/ykogxREV9AAAAB0CAAAqABgAAAAAAAEAAACk
gVuMAgBtZWRpYS90cmFjay90cmFjay1pbi1iYW5kLXN0eWxlLXN0ZGVyci50eHRVVAUAA5R5PFl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABHf8pKK0nsLgwBAAA6BAAAMAAYAAAAAAABAAAApIGz
jQIAbWVkaWEvdmlkZW8tY2xpY2stZGJsY2tpY2stc3RhbmRhbG9uZS1zdGRlcnIudHh0VVQFAAOG
eTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgASH/KSqZidGn1AAAAHQIAACoAGAAAAAAAAQAA
AKSBKY8CAG1lZGlhL3ZpZGVvLWNvbmN1cnJlbnQtcGxheWJhY2stc3RkZXJyLnR4dFVUBQADh3k8
WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAEl/ykp10nQE9AAAAB0CAAA8ABgAAAAAAAEAAACk
gYKQAgBtZWRpYS92aWRlby1jb250cm9scy1jYXB0aW9ucy10cmFja21lbnUtbG9jYWxpemVkLXN0
ZGVyci50eHRVVAUAA4p5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABKf8pKALwP6vQAAAAd
AgAAOgAYAAAAAAABAAAApIHskQIAbWVkaWEvdmlkZW8tY29udHJvbHMtdG8tbm90LXNjcm9sbC1w
YWdlLW9uLWxvYWQtc3RkZXJyLnR4dFVUBQADi3k8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAI
AEx/ykqN6VY59AAAAB0CAAAlABgAAAAAAAEAAACkgVSTAgBtZWRpYS92aWRlby1kaXNwbGF5LXRv
Z2dsZS1zdGRlcnIudHh0VVQFAAOQeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgATX/KSmEP
F3YKAQAAOgQAACUAGAAAAAAAAQAAAKSBp5QCAG1lZGlhL3ZpZGVvLWRvY3VtZW50LXR5cGVzLXN0
ZGVyci50eHRVVAUAA5J5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABOf8pKvFX6HfMAAAAd
AgAAIwAYAAAAAAABAAAApIEQlgIAbWVkaWEvdmlkZW8tZW1wdHktc291cmNlLXN0ZGVyci50eHRV
VAUAA5R5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABPf8pK34BlE/QAAAAdAgAANAAYAAAA
AAABAAAApIFglwIAbWVkaWEvdmlkZW8tZW5kZWQtZXZlbnQtbmVnYXRpdmUtcGxheWJhY2stc3Rk
ZXJyLnR4dFVUBQADlXk8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFN/ykosdKei9AAAAB0C
AAAfABgAAAAAAAEAAACkgcKYAgBtZWRpYS92aWRlby1uby1hdWRpby1zdGRlcnIudHh0VVQFAAOe
eTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAVH/KSs6vxgjzAAAAHQIAACIAGAAAAAAAAQAA
AKSBD5oCAG1lZGlhL3ZpZGVvLW5vLWF1dG9wbGF5LXN0ZGVyci50eHRVVAUAA6B5PFl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABkf8pK4iaLO/QAAAAdAgAAJAAYAAAAAAABAAAApIFemwIAbWVk
aWEvdmlkZW8tdm9sdW1lLXNsaWRlci1zdGRlcnIudHh0VVQFAAO8eTxZdXgLAAEE9QEAAAQUAAAA
UEsBAh4DFAACAAgAZX/KSrR3h1n1AAAAHQIAACMAGAAAAAAAAQAAAKSBsJwCAG1lZGlhL3ZpZGVv
LXdpZHRoLWhlaWdodC1zdGRlcnIudHh0VVQFAAO9eTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAAC
AAgAZX/KSmqI+Rr1AAAAHQIAACQAGAAAAAAAAQAAAKSBAp4CAG1lZGlhL3ZpZGVvLXpvb20tY29u
dHJvbHMtc3RkZXJyLnR4dFVUBQADvnk8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGZ/ykru
y2GV9QAAAB0CAAAbABgAAAAAAAEAAACkgVWfAgBtZWRpYS92aWRlby16b29tLXN0ZGVyci50eHRV
VAUAA795PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABBf8pKAAAAAAAAAAAAAAAACQAYAAAA
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
AAAAAAAAAAAAAAAAGwAYAAAAAAAAABAA7UGJ2AIAcmV0cmllcy9odHRwL3Rlc3RzL3ByZWxvYWQv
VVQFAANIejxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgALoDKSgW8/n/0AAAAHQIAAEUAGAAA
AAAAAQAAAKSB3tgCAHJldHJpZXMvaHR0cC90ZXN0cy9wcmVsb2FkL3NpbmdsZV9kb3dubG9hZF9w
cmVsb2FkX2hlYWRlcnMtc3RkZXJyLnR4dFVUBQADSHo8WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoA
AAAAAC+AykoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQVHaAgByZXRyaWVzL2pzL1VUBQADSXo8
WXV4CwABBPUBAAAEFAAAAFBLAQIeAwoAAAAAAC+AykoAAAAAAAAAAAAAAAAPABgAAAAAAAAAEADt
QZbaAgByZXRyaWVzL2pzL2RvbS9VVAUAA0l6PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAv
gMpKcUDgn+0AAAAnBwAAWwAYAAAAAAABAAAApIHf2gIAcmV0cmllcy9qcy9kb20vcHJvdG90eXBl
LWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUt
YWN0dWFsLnR4dFVUBQADSXo8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC+AykopF5l8EQEA
AI0DAABZABgAAAAAAAEAAACkgWHcAgByZXRyaWVzL2pzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2Fj
aGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1kaWZmLnR4dFVU
BQADSXo8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAC+AykoWkkR/1QAAAMMGAABdABgAAAAA
AAEAAACkgQXeAgByZXRyaWVzL2pzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWlt
cHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1leHBlY3RlZC50eHRVVAUAA0l6PFl1
eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAAvgMpKD3nzEHkIAACOJAAAYQAYAAAAAAABAAAApIFx
3wIAcmV0cmllcy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0
LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtcHJldHR5LWRpZmYuaHRtbFVUBQADSXo8WXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAOqAykrOxnaK7skHAKgsKgAKABgAAAAAAAEAAACkgYXoAgBz
dGF0cy5qc29uVVQFAAOoezxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAZH/KSgAAAAAAAAAA
AAAAAAQAGAAAAAAAAAAQAO1Bt7IKAHN2Zy9VVAUAA7t5PFl1eAsAAQT1AQAABBQAAABQSwECHgMK
AAAAAABcf8pKAAAAAAAAAAAAAAAADQAYAAAAAAAAABAA7UH1sgoAc3ZnL2FzLWltYWdlL1VUBQAD
sHk8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAFx/ykrbCNNCOwAAAD8AAAA/ABgAAAAAAAEA
AACkgTyzCgBzdmcvYXMtaW1hZ2Uvc3ZnLWltYWdlLXdpdGgtZGF0YS11cmktaW1hZ2VzLWRpc2Fi
bGVkLXN0ZGVyci50eHRVVAUAA7B5PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAABkf8pKAAAA
AAAAAAAAAAAACQAYAAAAAAAAABAA7UHwswoAc3ZnL3RleHQvVVQFAAO7eTxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DFAACAAgAZH/KSrwHsF72AAAAHQIAADMAGAAAAAAAAQAAAKSBM7QKAHN2Zy90ZXh0
L2ZvcmVpZ25PYmplY3QtdGV4dC1jbGlwcGluZy1idWctc3RkZXJyLnR4dFVUBQADu3k8WXV4CwAB
BPUBAAAEFAAAAFBLAQIeAwoAAAAAAGp/ykoAAAAAAAAAAAAAAAAHABgAAAAAAAAAEADtQZa1CgB0
YWJsZXMvVVQFAAPHeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAan/KSgAAAAAAAAAAAAAA
AA8AGAAAAAAAAAAQAO1B17UKAHRhYmxlcy9tb3ppbGxhL1VUBQADx3k8WXV4CwABBPUBAAAEFAAA
AFBLAQIeAwoAAAAAAGp/ykoAAAAAAAAAAAAAAAAWABgAAAAAAAAAEADtQSC2CgB0YWJsZXMvbW96
aWxsYS9tYXJ2aW4vVVQFAAPHeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAan/KSkMJyA/0
AAAAHQIAADcAGAAAAAAAAQAAAKSBcLYKAHRhYmxlcy9tb3ppbGxhL21hcnZpbi94X2NhcHRpb25f
YWxpZ25fYm90dG9tLXN0ZGVyci50eHRVVAUAA8d5PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAA
AABpf8pKAAAAAAAAAAAAAAAAIQAYAAAAAAAAABAA7UHVtwoAdGFibGVzL21vemlsbGFfZXhwZWN0
ZWRfZmFpbHVyZXMvVVQFAAPGeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAAaX/KSgAAAAAA
AAAAAAAAACgAGAAAAAAAAAAQAO1BMLgKAHRhYmxlcy9tb3ppbGxhX2V4cGVjdGVkX2ZhaWx1cmVz
L21hcnZpbi9VVAUAA8Z5PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACABpf8pK3VXYffUAAAAd
AgAARwAYAAAAAAABAAAApIGSuAoAdGFibGVzL21vemlsbGFfZXhwZWN0ZWRfZmFpbHVyZXMvbWFy
dmluL3hfY2FwdGlvbl9hbGlnbl9sZWZ0LXN0ZGVyci50eHRVVAUAA8Z5PFl1eAsAAQT1AQAABBQA
AABQSwECHgMKAAAAAADKgMpKAAAAAAAAAAAAAAAADgAYAAAAAAAAABAA7UEIugoAdGlsZWQtZHJh
d2luZy9VVAUAA2x7PFl1eAsAAQT1AQAABBQAAABQSwECHgMKAAAAAADKgMpKAAAAAAAAAAAAAAAA
EgAYAAAAAAAAABAA7UFQugoAdGlsZWQtZHJhd2luZy9pb3MvVVQFAANsezxZdXgLAAEE9QEAAAQU
AAAAUEsBAh4DCgAAAAAAyoDKSgAAAAAAAAAAAAAAABoAGAAAAAAAAAAQAO1BnLoKAHRpbGVkLWRy
YXdpbmcvaW9zL2lwaG9uZTcvVVQFAANsezxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DFAACAAgAyoDK
SldIEOXzAAAAHQIAAEIAGAAAAAAAAQAAAKSB8LoKAHRpbGVkLWRyYXdpbmcvaW9zL2lwaG9uZTcv
Y29tcG9zaXRpbmctbGF5ZXJzLWRlZXAtY29sb3Itc3RkZXJyLnR4dFVUBQADbHs8WXV4CwABBPUB
AAAEFAAAAFBLAQIeAwoAAAAAAGl/ykoAAAAAAAAAAAAAAAALABgAAAAAAAAAEADtQV+8CgB3ZWJh
cmNoaXZlL1VUBQADxXk8WXV4CwABBPUBAAAEFAAAAFBLAQIeAxQAAgAIAGl/ykrbCNNCOwAAAD8A
AAA6ABgAAAAAAAEAAACkgaS8CgB3ZWJhcmNoaXZlL3Rlc3QtbGluay1yZWwtc3VicmVzb3VyY2Ut
YmVmb3JlbG9hZC1zdGRlcnIudHh0VVQFAAPFeTxZdXgLAAEE9QEAAAQUAAAAUEsBAh4DCgAAAAAA
a3/KSgAAAAAAAAAAAAAAAAcAGAAAAAAAAAAQAO1BU70KAHdlYnJ0Yy9VVAUAA8l5PFl1eAsAAQT1
AQAABBQAAABQSwECHgMUAAIACABqf8pKJC7ImSIAAAB0AAAALgAYAAAAAAABAAAApIGUvQoAd2Vi
cnRjL3BlZXItY29ubmVjdGlvbi1hdWRpby11bm11dGUtc3RkZXJyLnR4dFVUBQADyHk8WXV4CwAB
BPUBAAAEFAAAAFBLAQIeAxQAAgAIAGt/ykrKtAlcIgAAADoAAAAzABgAAAAAAAEAAACkgR6+CgB3
ZWJydGMvcGVlci1jb25uZWN0aW9uLXJlbW90ZS1hdWRpby1tdXRlLXN0ZGVyci50eHRVVAUAA8l5
PFl1eAsAAQT1AQAABBQAAABQSwECHgMUAAIACAA5gMpKT8luNOkAAwALaE4AGQAYAAAAAAABAAAA
pIGtvgoAd3B0d2tfcHJvY2Vzc19sb2cub3V0LnR4dFVUBQADXno8WXV4CwABBPUBAAAEFAAAAFBL
BQYAAAAAMwEzARiGAADpvw0AAAA=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312586</attachid>
            <date>2017-06-10 19:02:19 -0700</date>
            <delta_ts>2017-06-11 11:22:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173229-20170610190246.patch</filename>
            <type>text/plain</type>
            <size>241919</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE5NSBAQAorMjAxNy0wNi0xMCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlLWltcGxlbWVudCBH
ZXRPd25Qcm9wZXJ0eVNsb3RbQnlJbmRleF0gZ2VuZXJhdGlvbiB0byBtb3JlIGNsb3NlbHkgZm9s
bG93IFdlYklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczMjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoK
KyAgICAgICAgUmVtb3ZlIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgd2hpY2ggaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL0lETFR5cGVzLmg6CisgICAg
ICAgIEFkZCBuZXcgSURMIHR5cGUsIElETERPTVdpbmRvd1NoZWxsLCB0byByZXByZXNlbnQgdGhl
IG1hcHBpbmcgZnJvbSBGcmFtZSAtPiBKU0RPTVdpbmRvd1NoZWxsLAorICAgICAgICBzaW5jZSB0
aGVyZSBpcyBubyBJREwgZmlsZSBmb3IgRE9NV2luZG93U2hlbGwuCisKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oOgorICAgICAgICAoV2ViQ29yZTo6aXNW
aXNpYmxlTmFtZWRQcm9wZXJ0eSk6CisgICAgICAgIEFkZCBPdmVycmlkZUJ1aWx0aW5zIGVudW0g
YXMgcmVxdWVzdGVkIGJ5IGEgcHJldmlvdXMgcmV2aWV3IChhbmQgSSBmb3Jnb3QgYWRkcmVzcykg
YW5kIGFkb3B0IGl0CisgICAgICAgIGluIGlzVmlzaWJsZU5hbWVkUHJvcGVydHksIHN3aXRjaCB0
byBWTUlucXVpcnkgYXMgd2UgdXNlIGVsc2V3aGVyZSBhbmQgYWRkIGEgbWlzc2luZyBGSVhNRS4K
KworICAgICAgICAoV2ViQ29yZTo6YWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHkpOgorICAgICAg
ICBBZGQgdmFyaWF0aW9uIG9mIGlzVmlzaWJsZU5hbWVkUHJvcGVydHkgdGhhdCB0YWtlcyBhIGZ1
bmN0b3IgYW5kIHJldHVybnMgZWl0aGVyIHRoZSB2YWx1ZSB0aGUKKyAgICAgICAgZnVuY3RvciBy
ZXR1cm5zLCBvciBzdGQ6Om51bGxvcHQuIFRoaXMgYWxsb3dzIGdldE93blByb3BlcnR5U2xvdCB0
byBhdm9pZCBkb2luZyB0d28gbG9va3VwcyBmb3IKKyAgICAgICAgcHJvcGVydHksIG9uY2UgaW4g
dGhlIG5hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGhtIGFuZCBhZ2FpbiB3aGVuIGl0
IG5lZWRzIHRoZSB2YWx1ZS4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFz
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmg6CisgICAgICAg
ICogYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHA6CisgICAgICAgICogYmluZGluZ3Mv
anMvSlNET01XaW5kb3dTaGVsbC5oOgorICAgICAgICBTdGFuZGFyZGl6ZSB0b0pTIGZ1bmN0aW9u
cyB0byBtYXRjaCBnZW5lcmF0ZWQgY29kZSAoaGF2ZSBvbmUgdGhhdCB0YWtlcyBhIHJlZmVyZW5j
ZSwgYW5kIGRvZXMgdGhlCisgICAgICAgIGNhc3QsIGFuZCBvbmUgdGhhdCB0YWtlcyBhIHBvaW50
ZXIsIGRvZXMgYSBudWxsIGNoZWNrIGFuZCBjYWxscyB0aGUgb25lIHRoYXQgdGFrZXMgYSByZWZl
cmVuY2UpLgorICAgICAgICAKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpKU0hUTUxEb2N1bWVudDo6Z2V0T3duUHJvcGVy
dHlTbG90KTouCisgICAgICAgIFVwZGF0ZSB0byB1c2UgdGhlIGltcGxlbWVudGF0aW9uIG5hbWVk
SXRlbSAod2hpY2ggaXMgYWxzbyB1c2VkIGJ5IHRoZSBnZW5lcmF0ZWQgZ2V0T3duUHJvcGVydHlT
bG90QnlJbmRleCkKKyAgICAgICAgYW5kIG1hdGNoIHRoZSB1cGRhdGVkIGJpbmRpbmdzIHJ1bGVz
LiBUaGlzIGNhbm5vdCB5ZXQgYmUgZ2VuZXJhdGVkIGR1ZSB0byB0aGUgb2RkIGNhc2Ugb2YgdGhl
ICdvcGVuJworICAgICAgICBwcm9wZXJ0eSByZXF1aXJpbmcgY3VzdG9tIHRyZWF0bWVudC4gSSB0
cmllZCByZW1vdmluZyB0aGlzLCBidXQgaXQgY2F1c2UgdGVzdHMgdG8gZmFpbCBpbiBhIHdheSB0
aGF0IGluZGljYXRlZAorICAgICAgICB0aGF0IGFjY2Vzc2luZyB0aGUgbGV4aWNhbCBnbG9iYWwg
b2JqZWN0IGluIHRoZSBvcGVuIGltcGxlbWVudGF0aW9uIHdhcyBub3Qgd29ya2luZyBjb3JyZWN0
bHkuCisKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20u
Y3BwOiBSZW1vdmVkLgorICAgICAgICBOb3cgZ2VuZXJhdGVkLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtOgorICAgICAgICAoSXNCdWlsdGluVHlwZSk6Cisg
ICAgICAgIEFkZGVkIERPTVdpbmRvd1NoZWxsIGFzIGEgYnVpbHRpbiB0eXBlLgorCisgICAgICAg
ICogYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG06CisgICAgICAgIChBZGRUb0lu
Y2x1ZGVzRm9ySURMVHlwZSk6CisgICAgICAgIEFkZCB0aGUgbmVjZXNzYXJ5IGluY2x1ZGVzIHdo
ZW4gdXNpbmcgRE9NV2luZG93U2hlbGwuCisKKyAgICAgICAgKEdlbmVyYXRlSW5kZXhlZEdldHRl
cik6CisgICAgICAgIEFkZCBkZXNjcmlwdGlvbiBmcm9tIHRoZSBzcGVjIGFuZCBjaGFuZ2UgdG8g
cmV0dXJuIHRoZSBjb21wdXRlZCB2YWx1ZXMgcmF0aGVyIHRoYW4KKyAgICAgICAgcHJpbnQgdGhl
bSB0byB0aGUgb3V0cHV0IGFycmF5LiBUaGlzIHdpbGwgYmUgdXNlZnVsIGZvciBzb21lIGNsaWVu
dHMgZ29pbmcgZm9yd2FyZCwKKyAgICAgICAgd2hvIG9ubHkgd2FudCB0aGUgYXR0cmlidXRlcy4K
KworICAgICAgICAoR2VuZXJhdGVOYW1lZEdldHRlcik6CisgICAgICAgIEFkZCBkZXNjcmlwdGlv
biBmcm9tIHRoZSBzcGVjIGFuZCBjaGFuZ2UgdG8gcmV0dXJuIHRoZSBjb21wdXRlZCB2YWx1ZXMg
cmF0aGVyIHRoYW4KKyAgICAgICAgcHJpbnQgdGhlbSB0byB0aGUgb3V0cHV0IGFycmF5LiBUaGlz
IHdpbGwgYmUgdXNlZnVsIGZvciBzb21lIGNsaWVudHMgZ29pbmcgZm9yd2FyZCwKKyAgICAgICAg
d2hvIG9ubHkgd2FudCB0aGUgYXR0cmlidXRlcy4gQWxzbyBncmVhdGx5IHNpbXBsaWZpZXMgdGhp
bmdzIGFzIFtDdXN0b21OYW1lZEdldHRlcl1zCisgICAgICAgIGFyZSBubyBsb25nZXIgbmVlZGVk
L3N1cHBvcnRlZCBhbmQgdGhlIGV4Y2VwdGlvbiAvIG51bGwgdmFsdWUgY2hlY2tzIGFyZSBwZXJm
b3JtZWQKKyAgICAgICAgZWxzZXdoZXJlLgorCisgICAgICAgIChHZW5lcmF0ZU5hbWVkR2V0dGVy
TGFtYmRhKToKKyAgICAgICAgVGhpcyBnZW5lcmF0ZXMgYSBsYW1iZGEgZnVuY3RvciBmb3IgdXNl
IGluIGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5KC4uLikuIEl0CisgICAgICAgIGhhbmRsZXMg
Y2FsbGluZyB0aGUgbmFtZWQgZ2V0dGVyIGltcGxlbWVudGF0aW9uLCBhbmQgdHJhbnNmb3JtaW5n
IHRoZSByZXN1bHQgaW50bworICAgICAgICBhbiBvbmUgdGhhdCBjYW4gYmUgcmVhc29uZWQgYWJv
dXQgYnkgYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHksIHNwZWNpZmljYWxseSwKKyAgICAgICAg
Y29udmVydGluZyBpdCBmcm9tIHVzaW5nIElETCdzIG5vdGlvbiBvZiBudWxsYWJpbGl0eSB0byBz
dGQ6Om9wdGlvbmFsLiAKKworICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3QpOgor
ICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToKKyAgICAgICAgQWRk
IHNwZWMgYW5ub3RhdGlvbnMgYW5kIHVzZSBoZWxwZXIgZnVuY3Rpb25zLiAKKworICAgICAgICAo
R2VuZXJhdGVHZXRPd25Qcm9wZXJ0eU5hbWVzKToKKyAgICAgICAgQWRkIEZJWE1FIGFib3V0IHN1
cHBvcnRpbmcgbm9uLWNvbnRpZ3VvdXMgaW5kaWNlcyAoc2hvdWxkIHRoYXQgZXZlciBjb21lIHVw
KQorICAgICAgICBhbmQgdXNlIEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIGJhc2Us
IHRvIGdldCB0aGUgZGVmYXVsdCBnZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGltcGxlbWVu
dGF0aW9uLgorCisgICAgICAgIChHZW5lcmF0ZVB1dCk6CisgICAgICAgIFVzZSBKU09iamVjdCBl
eHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgcHV0IGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIChHZW5lcmF0ZVB1dEJ5SW5kZXgpOgorICAgICAgICBVc2Ug
SlNPYmplY3QgZXhwbGljaXRseSwgcmF0aGVyIHRoYW4gYmFzZSwgdG8gZ2V0IHRoZSBkZWZhdWx0
IHB1dEJ5SW5kZXggaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRlRGVmaW5lT3du
UHJvcGVydHkpOgorICAgICAgICBVc2UgSlNPYmplY3QgZXhwbGljaXRseSwgcmF0aGVyIHRoYW4g
YmFzZSwgdG8gZ2V0IHRoZSBkZWZhdWx0IGdldE93blByb3BlcnR5U2xvdC9kZWZpbmVPd25Qcm9w
ZXJ0eQorICAgICAgICBpbXBsZW1lbnRhdGlvbnMuCisKKyAgICAgICAgKEdlbmVyYXRlRGVsZXRl
UHJvcGVydHlDb21tb24pOgorICAgICAgICBBZG9wdCBuZXcgT3ZlcnJpZGVCdWlsdGlucyBlbnVt
LgorCisgICAgICAgIChHZW5lcmF0ZURlbGV0ZVByb3BlcnR5RGVmaW5pdGlvbik6CisgICAgICAg
IFVzZSBKU09iamVjdCBleHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRl
ZmF1bHQgZGVsZXRlUHJvcGVydHkgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRl
RGVsZXRlUHJvcGVydHlCeUluZGV4RGVmaW5pdGlvbik6CisgICAgICAgIFVzZSBKU09iamVjdCBl
eHBsaWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgZGVsZXRlUHJv
cGVydHlCeUluZGV4IGltcGxlbWVudGF0aW9uLgorCisgICAgICAgIChJbnN0YW5jZU92ZXJyaWRl
c0dldE93blByb3BlcnR5U2xvdCk6CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRHZXR0ZXJd
IHVzZS4KKyAKKyAgICAgICAgKEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgUmVtb3ZlIFtDdXN0
b21OYW1lZEdldHRlcl0gdXNlIGFuZCBtZXJnZSBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXggaW50bworICAgICAgICBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3Bl
cnR5U2xvdC4gU3BlY2lmeWluZyBlaXRoZXIgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdF0gIG9y
CisgICAgICAgIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4XSB3aWxsIG5vdyBkZWNs
YXJlIGJvdGggaG9va3MuCisgICAgICAgIAorICAgICAgICAoR2VuZXJhdGVJbXBsZW1lbnRhdGlv
bik6CisgICAgICAgIFJlbmFtZSBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkvR2VuZXJh
dGVHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4Qm9keSB0byByZW1vdmUgdGhlICdCb2R5JywKKyAg
ICAgICAgYW5kIHByZWRpY2F0ZSB0aGVpciBnZW5lcmF0aW9uIHB1cmVseSBvbiBJbnN0YW5jZU92
ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCBhcyBub3RlZCBmb3IgdGhlIAorICAgICAgICByZWFz
b25zIGFib3ZlLgorCisgICAgICAgIChHZXRCYXNlSURMVHlwZSk6CisgICAgICAgIEFkZCBtYXBw
aW5nIG9mIERPTVdpbmRvd1NoZWxsIC0+IElETERPTVdpbmRvd1NoZWxsLgorCisgICAgICAgIChO
YXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNTdGF0ZSk6CisgICAgICAgIFJlcXVpcmUgRXhl
Y1N0YXRlIGZvciBET01XaW5kb3dTaGVsbCBjb252ZXJzaW9uLgorCisgICAgICAgIChOYXRpdmVU
b0pTVmFsdWVET01Db252ZXJ0TmVlZHNHbG9iYWxPYmplY3QpOgorICAgICAgICBSZXF1aXJlIERP
TUdsb2JhbE9iamVjdCBmb3IgRE9NV2luZG93U2hlbGwgY29udmVyc2lvbi4gKFdoaWxlIHRoaXMg
aXMgbm90IHN0cmljdGx5IG5lY2Vzc2FyeSwKKyAgICAgICAgc2luY2UgdGhlIGdsb2JhbCBvYmpl
Y3Qgd2lsbCBiZSBpZ25vcmUsIHNpbmNlIHdlIGFyZSBtb2RlbGluZyBET01XaW5kb3dTaGVsbCBh
cyBpbnRlcmZhY2UsIGl0CisgICAgICAgIGlzIGhlbHBmdWwgZm9yIHRoaXMgdG8gYmUgY29uc2lz
dGVudCByaWdodCBub3cuIFdlIGNhbiByZS12aXNpdCB0aGlzIGxhdGVyIHNob3VsZCBpdCBhIHBy
b2JsZW0pLgorCisgICAgICAgIChHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkpOiBEZWxl
dGVkLgorICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5QnlJbmRleCk6IERl
bGV0ZWQuCisgICAgICAgIChJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgpOiBEZWxldGVkLgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
Lmpzb246CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRHZXR0ZXJdLgorCisgICAgICAgICog
ZG9tL0V4Y2VwdGlvbk9yLmg6CisgICAgICAgIChXZWJDb3JlOjpFeGNlcHRpb25PcjxSZXR1cm5U
eXBlPjo6cmV0dXJuVmFsdWUpOgorICAgICAgICBBZGQgYSBmdW5jdGlvbiB0byBwZWVrIGF0IHRo
ZSByZXR1cm4gdmFsdWUKKworICAgICAgICAqIGh0bWwvSFRNTERvY3VtZW50Lmg6CisgICAgICAg
ICogaHRtbC9IVE1MRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50
OjpjbGVhcik6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmNhcHR1cmVFdmVudHMp
OgorICAgICAgICAoV2ViQ29yZTo6SFRNTERvY3VtZW50OjpyZWxlYXNlRXZlbnRzKToKKyAgICAg
ICAgTW92ZSBjbGVhciB1cCB0byBiZSB3aXRoIHRoZSBvdGhlciBvYnNvbGV0ZSBuby1vcCBmdW5j
dGlvbnMuIEFkZCBzcGVjIGFubm90YXRpb25zCisgICAgICAgIHRvIGNsZWFyIHVwIGFueSBjb25m
dXNpb24gYWJvdXQgd2h5IHRoZXkgYXJlIG5vLW9wcy4KKworICAgICAgICAoV2ViQ29yZTo6SFRN
TERvY3VtZW50OjpuYW1lZEl0ZW0pOgorICAgICAgICBBZGQgaW1wbGVtZW50YXRpb24gb2YgbmFt
ZWRJdGVtIGJhc2VkIG9uIHRoZSBvbmUgdGhhdCB3YXMgaW4gSlNET01IVE1MRG9jdW1lbnRDdXN0
b20uY3BwLgorCisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OnN1cHBvcnRlZFByb3Bl
cnR5TmFtZXMpOgorICAgICAgICBBZGQgc3R1YiB2ZXJzaW9uIG9mIHN1cHBvcnRlZFByb3BlcnR5
TmFtZXMgd2l0aCB0aGUgYWxnb3JpdGhtIHdlIG5lZWQgdG8gaW1wbGVtZW50LgorICAgICAgICBJ
IGRvbid0IHdhbnQgdG8gY2hhbmdlIGJlaGF2aW9yIGluIHRoaXMgcGF0Y2gsIGFuZCBzaW5jZSB3
ZSBoYXZlIG5vdCBlbnVtZXJhdGVkIHRoZQorICAgICAgICBwcm9wZXJ0aWVzIG9mIGRvY3VtZW50
IGluIHRoZSBwYXN0LCBJIGxlZnQgdGhpcyB1bmltcGxlbWVudGVkIGZvciBub3cuCisKKyAgICAg
ICAgKiBodG1sL0hUTUxEb2N1bWVudC5pZGw6CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRH
ZXR0ZXJdIGFuZCBhZGQgbmFtZWQgZ2V0dGVyLgorCisgICAgICAgICogaHRtbC9IVE1MRnJhbWVT
ZXRFbGVtZW50Lmg6CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNldEVsZW1lbnQ6Om5hbWVkSXRlbSk6CisgICAgICAg
IEFkZCBuYW1lZCBnZXR0ZXIgYmFzZWQgb24gdGhlIGltcGxlbWVudGF0aW9uIGluIEpTSFRNTEZy
YW1lU2V0RWxlbWVudEN1c3RvbS5jcHAuCisKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxGcmFtZVNl
dEVsZW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMpOgorICAgICAgICBBcyBub3RlZCBhYm92
ZSwgSSBkb24ndCB3YW50IHRvIGNoYW5nZSBiZWhhdmlvciB3aXRoIHRoaXMgY2hhbmdlLCBzbyBJ
IGhhdmUgbGVmdCB0aGlzIHVuaW1wbGVtZW50ZWQKKyAgICAgICAgZm9yIG5vdy4gSG93ZXZlciwg
d2UgbWF5IG5vdCB3YW50IHRvIGltcGxlbWVudCBpdCBhdCBhbGwsIGFzIHRoaXMgbmFtZWQgZ2V0
dGVyIGlzIG5vdCBzcGVjaWZpZWQgYW5kCisgICAgICAgIGF0IGxlYXN0IEZpcmVmb3ggZG9lcyBu
b3Qgc3VwcG9ydCBpdC4KKworICAgICAgICAqIGh0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGw6
CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRHZXR0ZXJdIGFuZCBhZGQgbmFtZWQgZ2V0dGVy
LgorCisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6CisgICAgICAgICogYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5j
cHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRl
cldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIuY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHA6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHA6Cisg
ICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1
aWx0aW5zLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9k
ZS5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE92ZXJyaWRlQnVpbHRp
bnMuY3BwOgorICAgICAgICBVcGRhdGUgdGVzdCByZXN1bHRzLgorCisgICAgICAgICogYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcDogUmVtb3ZlZC4K
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaDogUmVtb3ZlZC4KKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmlkbDogUmVtb3ZlZC4KKyAgICAgICAgUmVtb3ZlIHRlc3Qgb2YgW0N1c3Rv
bU5hbWVkR2V0dGVyXSB3aGljaCBubyBsb25nZXIgZXhpc3RzLiAKKwogMjAxNy0wNi0xMCAgRGFu
IEJlcm5zdGVpbiAgPG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIFJldmVydGVkIHIyMTgwNTYg
YmVjYXVzZSBpdCBtYWRlIHRoZSBJREUgcmVpbmRleCBjb25zdGFudGx5LgpJbmRleDogU291cmNl
L1dlYkNvcmUvQ01ha2VMaXN0cy50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvQ01h
a2VMaXN0cy50eHQJKHJldmlzaW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL0NNYWtlTGlz
dHMudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0xMTg2LDcgKzExODYsNiBAQCBzZXQoV2ViQ29yZV9T
T1VSQ0VTCiAgICAgYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCiAgICAgYmlu
ZGluZ3MvanMvSlNIVE1MRWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0hUTUxF
bWJlZEVsZW1lbnRDdXN0b20uY3BwCi0gICAgYmluZGluZ3MvanMvSlNIVE1MRnJhbWVTZXRFbGVt
ZW50Q3VzdG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20u
Y3BwCiAgICAgYmluZGluZ3MvanMvSlNIVE1MVGVtcGxhdGVFbGVtZW50Q3VzdG9tLmNwcAogICAg
IGJpbmRpbmdzL2pzL0pTSGlzdG9yeUN1c3RvbS5jcHAKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL1dl
YkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvago9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oJKHJldmlzaW9uIDIxODA1NykK
KysrIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagkod29y
a2luZyBjb3B5KQpAQCAtNTg0Niw3ICs1ODQ2LDYgQEAKIAkJQkNEMEUwRkEwRTk3MkMzNTAwMjY1
REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEJDRDBFMEY3MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdp
bi5jcHAgKi87IH07CiAJCUJDRDBFMEZCMEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdp
bi5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEMEUw
RjgwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQkNEMEUwRkMwRTk3MkMzNTAwMjY1REVB
IC8qIFNlY3VyaXR5T3JpZ2luSGFzaC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQkNEMEUwRjkwRTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2lu
SGFzaC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07Ci0J
CUJDRDQxQUJCMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20u
Y3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNENDFB
QkEwQzA2MERFODAwQzBFNDQ2IC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgKi87
IH07CiAJCUJDRDUzMzY0MEVENjg0ODkwMDg4NzQ2OCAvKiBDYWNoZWRTY3JpcHRTb3VyY2VQcm92
aWRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNE
NTMzNjMwRUQ2ODQ4OTAwODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi87
IH07CiAJCUJDRDlDMjYyMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRvd0N1c3RvbS5jcHAg
aW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q5QzI1RTBD
MTdBQTY3MDA1QzkwQTIgLyogSlNET01XaW5kb3dDdXN0b20uY3BwICovOyB9OwogCQlCQ0Q5QzI2
NDBDMTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBK
U05vZGVDdXN0b20uY3BwICovOyB9OwpAQCAtMTQzNDksNyArMTQzNDgsNiBAQAogCQlCQ0QwRTBG
NzBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3BwICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jcHAuY3BwOyBwYXRoID0gU2VjdXJpdHlPcmlnaW4uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0QwRTBGODBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4u
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gU2VjdXJpdHlPcmlnaW4uaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEMEUwRjkwRTk3MkMzNTAwMjY1REVBIC8qIFNl
Y3VyaXR5T3JpZ2luSGFzaC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNv
ZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBTZWN1
cml0eU9yaWdpbkhhc2guaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKLQkJQkNENDFBQkEw
QzA2MERFODAwQzBFNDQ2IC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gMzA7IGxhc3RLbm93bkZpbGVU
eXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3Vz
dG9tLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNENTMzNjMwRUQ2ODQ4OTAw
ODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmMuaDsgcGF0aCA9IENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmg7IHNvdXJjZVRyZWUg
PSAiPGdyb3VwPiI7IH07CiAJCUJDRDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdpbmRv
d0N1c3RvbS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0g
MzA7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gSlNET01X
aW5kb3dDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlCQ0Q5QzI2MDBD
MTdBQTY3MDA1QzkwQTIgLyogSlNOb2RlQ3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2Rl
LmNwcC5jcHA7IHBhdGggPSBKU05vZGVDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjM2NTIsNyArMjM2NTAsNiBAQAogCQkJCUJDNTE1ODBBMEMwM0Q0MDQwMDhCQjBF
RSAvKiBKU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkM1ODIzRjQwQzBBOThERjAw
NTNGMUI1IC8qIEpTSFRNTEVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUJDNkQ0NEJEMEMwN0VG
QjYwMDcyRDJDOSAvKiBKU0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3BwICovLAotCQkJCUJDRDQx
QUJBMEMwNjBERTgwMEMwRTQ0NiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwICov
LAogCQkJCUJDMzA1Q0EzMEMwNzgxQkIwMENEMjBGMCAvKiBKU0hUTUxPYmplY3RFbGVtZW50Q3Vz
dG9tLmNwcCAqLywKIAkJCQlENkY3OTYwQzE2NkZGRUNFMDA3NkREMTggLyogSlNIVE1MVGVtcGxh
dGVFbGVtZW50Q3VzdG9tLmNwcCAqLywKIAkJCQk3QTc0RUNCQzEwMTgzOURBMDBCRjkzOUUgLyog
SlNJbnNwZWN0b3JGcm9udGVuZEhvc3RDdXN0b20uY3BwICovLApAQCAtMzIwMzEsNyArMzIwMjgs
NiBAQAogCQkJCUE4RDA2NEZCMEEyM0MwQ0MwMDVFNzIwMyAvKiBKU0hUTUxGb3JtRWxlbWVudC5j
cHAgaW4gU291cmNlcyAqLywKIAkJCQlCQzQ5MThDNjBCRkVBMDUwMDA5RDYzMTYgLyogSlNIVE1M
RnJhbWVFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJDOTI2RjgwMEMwNTUyNDcwMDgy
Nzc2QiAvKiBKU0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCi0JCQkJQkNE
NDFBQkIwQzA2MERFODAwQzBFNDQ2IC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAg
aW4gU291cmNlcyAqLywKIAkJCQlBODBFN0IxNDBBMTlENjA2MDA3RkI4QzUgLyogSlNIVE1MSGVh
ZEVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFBMkUwQTFDREFCNDAwQjQyQjI1
IC8qIEpTSFRNTEhlYWRpbmdFbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCTFBRTJBQTMw
MEExQ0RBQjQwMEI0MkIyNSAvKiBKU0hUTUxIUkVsZW1lbnQuY3BwIGluIFNvdXJjZXMgKi8sCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9JRExUeXBlcy5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgJKHJldmlzaW9uIDIxODA1NykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL0lETFR5cGVzLmgJKHdvcmtpbmcgY29weSkKQEAgLTQ1LDEw
ICs0NSwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZT4gY2xhc3MgU3Ryb25nOwogCiBuYW1lc3BhY2Ug
V2ViQ29yZSB7CiAKK2NsYXNzIERPTVByb21pc2U7CitjbGFzcyBGcmFtZTsKIGNsYXNzIElEQktl
eTsKIGNsYXNzIElEQktleURhdGE7CiBjbGFzcyBJREJWYWx1ZTsKLWNsYXNzIERPTVByb21pc2U7
CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CiBzdHJ1Y3QgSURMVHlwZSB7CkBAIC0yNDUsNiArMjQ2
LDggQEAgc3RydWN0IElETElEQlZhbHVlIDogSURMV3JhcHBlcjxJREJWYWx1ZQogc3RydWN0IElE
TFdlYkdMQW55IDogSURMVHlwZTxXZWJHTEFueT4geyB9OwogI2VuZGlmCiAKK3VzaW5nIElETERP
TVdpbmRvd1NoZWxsID0gSURMSW50ZXJmYWNlPEZyYW1lPjsKKwogLy8gTm9uLVdlYklETCBjb252
ZW5pZW5jZSB0eXBlIGFsaWFzZXMKIAogdXNpbmcgSURMQnVmZmVyU291cmNlID0gSURMVW5pb248
SURMSW50ZXJmYWNlPEpTQzo6QXJyYXlCdWZmZXJWaWV3PiwgSURMSW50ZXJmYWNlPEpTQzo6QXJy
YXlCdWZmZXI+PjsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTQmluZGluZ3NB
bGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNC
aW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzEs
NyArNzEsNiBAQAogI2luY2x1ZGUgIkpTSFRNTERvY3VtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRl
ICJKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0hUTUxFbWJlZEVsZW1lbnRD
dXN0b20uY3BwIgotI2luY2x1ZGUgIkpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAiCiAj
aW5jbHVkZSAiSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1M
VGVtcGxhdGVFbGVtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJKU0hpc3RvcnlDdXN0b20uY3Bw
IgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01BYnN0cmFjdE9wZXJhdGlv
bnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFic3Ry
YWN0T3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiwx
MCArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gSW1wbGVtZW50YXRpb25zIG9mIHRo
ZSBhYnN0cmFjdCBvcGVyYXRpb25zIGRlZmluZWQgYXQKIC8vIGh0dHBzOi8vaGV5Y2FtLmdpdGh1
Yi5pby93ZWJpZGwvI2xlZ2FjeS1wbGF0Zm9ybS1vYmplY3QtYWJzdHJhY3Qtb3BzCiAKK2VudW0g
Y2xhc3MgT3ZlcnJpZGVCdWlsdGlucyB7CisgICAgTm8sCisgICAgWWVzCit9OwogCiAvLyBBbiBp
bXBsZW1lbnRhdGlvbiBvZiB0aGUgJ25hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkgYWxnb3JpdGht
JwogLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZGZuLW5hbWVkLXByb3BlcnR5
LXZpc2liaWxpdHkKLXRlbXBsYXRlPGJvb2wgb3ZlcnJpZGVCdWlsdGlucywgY2xhc3MgSlNDbGFz
cz4KK3RlbXBsYXRlPE92ZXJyaWRlQnVpbHRpbnMgb3ZlcnJpZGVCdWlsdGlucywgY2xhc3MgSlND
bGFzcz4KIHN0YXRpYyBib29sIGlzVmlzaWJsZU5hbWVkUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUm
IHN0YXRlLCBKU0NsYXNzJiB0aGlzT2JqZWN0LCBKU0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUpCiB7CiAgICAgLy8gRklYTUU6IEl0IHNlZW1zIHVuZm9ydHVuYXRlIHRoYXQgaGF2ZSB0byBk
byB0d28gbG9va3VwcyBmb3IgdGhlIHByb3BlcnR5IG5hbWUsCkBAIC01NSwxNyArNTksMTggQEAg
c3RhdGljIGJvb2wgaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eShKU0M6OgogICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgCiAgICAgLy8gMi4gSWYgTyBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVkIFAs
IHRoZW4gcmV0dXJuIGZhbHNlLgotICAgIEpTQzo6UHJvcGVydHlTbG90IHNsb3QgeyAmdGhpc09i
amVjdCwgSlNDOjpQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6R2V0T3duUHJvcGVy
dHkgfTsKKyAgICBKU0M6OlByb3BlcnR5U2xvdCBzbG90IHsgJnRoaXNPYmplY3QsIEpTQzo6UHJv
cGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAgIGlmIChKU0M6
OkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoJnRoaXNPYmplY3QsICZzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIAogICAgIC8vIDMuIElm
IE8gaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgdGhhdCBoYXMgdGhlIFtPdmVycmlkZUJ1aWx0aW5z
XSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4gcmV0dXJuIHRydWUuCi0gICAgaWYgKG92ZXJyaWRl
QnVpbHRpbnMpCisgICAgaWYgKG92ZXJyaWRlQnVpbHRpbnMgPT0gT3ZlcnJpZGVCdWlsdGluczo6
WWVzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIDQuIEluaXRpYWxpemUgcHJvdG90
eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQcm90b3R5cGVdXSBwcm9wZXJ0
eSBvZiBPLgogICAgIC8vIDUuIFdoaWxlIHByb3RvdHlwZSBpcyBub3QgbnVsbDoKICAgICAvLyAg
ICAxLiBJZiBwcm90b3R5cGUgaXMgbm90IGEgbmFtZWQgcHJvcGVydGllcyBvYmplY3QsIGFuZCBw
cm90b3R5cGUgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCBQLCB0aGVuIHJldHVybiBmYWxzZS4K
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGNoZWNraW5nIGZvciAnbmFtZWQgcHJvcGVydGllcyBv
YmplY3QnLgogICAgIC8vICAgIDIuIFNldCBwcm90b3R5cGUgdG8gYmUgdGhlIHZhbHVlIG9mIHRo
ZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHByb3RvdHlwZS4KICAgICBhdXRv
IHByb3RvdHlwZSA9IHRoaXNPYmplY3QuZ2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgaWYgKHBy
b3RvdHlwZS5pc09iamVjdCgpICYmIEpTQzo6YXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVy
dHlTbG90KCZzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKQEAgLTc1LDQgKzgwLDQ0IEBAIHN0
YXRpYyBib29sIGlzVmlzaWJsZU5hbWVkUHJvcGVydHkoSlNDOjoKICAgICByZXR1cm4gdHJ1ZTsK
IH0KIAorLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlICduYW1lZCBwcm9wZXJ0eSB2aXNpYmls
aXR5IGFsZ29yaXRobScgYXVnbWVudGVkIHRvIHJlcGxhY2UgdGhlCisvLyAnc3VwcG9ydGVkIHBy
b3BlcnR5IG5hbWUnIGNoZWNrIHdpdGggZGlyZWN0IGFjY2VzcyB0byB0aGUgaW1wbGVtZW50YXRp
b24gdmFsdWUgcmV0dXJuZWQKKy8vIGZvciB0aGUgcHJvcGVydHkgbmFtZSwgdmlhIHBhc3NlZCBp
biBmdW5jdG9yLiBUaGlzIGFsbG93cyB1cyB0byBhdm9pZCB0d28gbG9va2luZyB1cCB0aGUKKy8v
IHRoZSBwcm9wZXJ0eSBuYW1lIHR3aWNlOyBvbmNlIGZvciAnbmFtZWQgcHJvcGVydHkgdmlzaWJp
bGl0eSBhbGdvcml0aG0nIGNoZWNrLCBhbmQgdGhlbgorLy8gYWdhaW4gd2hlbiB0aGUgdmFsdWUg
aXMgbmVlZGVkLgordGVtcGxhdGU8T3ZlcnJpZGVCdWlsdGlucyBvdmVycmlkZUJ1aWx0aW5zLCBj
bGFzcyBKU0NsYXNzLCBjbGFzcyBGdW5jdG9yPgorc3RhdGljIGF1dG8gYWNjZXNzVmlzaWJsZU5h
bWVkUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0NsYXNzJiB0aGlzT2JqZWN0LCBK
U0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEZ1bmN0b3ImJiBpdGVtQWNjZXNzb3IpIC0+
IGRlY2x0eXBlKGl0ZW1BY2Nlc3Nvcih0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKQoreworICAg
IC8vIE5PVEU6IFdoaWxlIGl0IGlzIG5vdCBzcGVjaWZpZWQsIGEgU3ltYm9sIGNhbiBuZXZlciBi
ZSBhICdzdXBwb3J0ZWQgcHJvcGVydHkKKyAgICAvLyBuYW1lJyBzbyB3ZSBjaGVjayB0aGF0IGZp
cnN0LgorICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkKKyAgICAgICAgcmV0dXJuIHN0
ZDo6bnVsbG9wdDsKKworICAgIC8vIDEuIElmIFAgaXMgbm90IGEgc3VwcG9ydGVkIHByb3BlcnR5
IG5hbWUgb2YgTywgdGhlbiByZXR1cm4gZmFsc2UuCisgICAgYXV0byByZXN1bHQgPSBpdGVtQWNj
ZXNzb3IodGhpc09iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICBpZiAoIXJlc3VsdCkKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIDIuIElmIE8gaGFzIGFuIG93biBwcm9w
ZXJ0eSBuYW1lZCBQLCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICBKU0M6OlByb3BlcnR5U2xvdCBz
bG90IHsgJnRoaXNPYmplY3QsIEpTQzo6UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6
OlZNSW5xdWlyeSB9OworICAgIGlmIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
JnRoaXNPYmplY3QsICZzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICAgICAgcmV0dXJu
IHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIDMuIElmIE8gaW1wbGVtZW50cyBhbiBpbnRlcmZhY2Ug
dGhhdCBoYXMgdGhlIFtPdmVycmlkZUJ1aWx0aW5zXSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4g
cmV0dXJuIHRydWUuCisgICAgaWYgKG92ZXJyaWRlQnVpbHRpbnMgPT0gT3ZlcnJpZGVCdWlsdGlu
czo6WWVzKQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAgLy8gNC4gSW5pdGlhbGl6ZSBw
cm90b3R5cGUgdG8gYmUgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHBy
b3BlcnR5IG9mIE8uCisgICAgLy8gNS4gV2hpbGUgcHJvdG90eXBlIGlzIG5vdCBudWxsOgorICAg
IC8vICAgIDEuIElmIHByb3RvdHlwZSBpcyBub3QgYSBuYW1lZCBwcm9wZXJ0aWVzIG9iamVjdCwg
YW5kIHByb3RvdHlwZSBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVkIFAsIHRoZW4gcmV0dXJuIGZh
bHNlLgorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY2hlY2tpbmcgZm9yICduYW1lZCBwcm9wZXJ0
aWVzIG9iamVjdCcuCisgICAgLy8gICAgMi4gU2V0IHByb3RvdHlwZSB0byBiZSB0aGUgdmFsdWUg
b2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkgb2YgcHJvdG90eXBlLgorICAg
IGF1dG8gcHJvdG90eXBlID0gdGhpc09iamVjdC5nZXRQcm90b3R5cGVEaXJlY3QoKTsKKyAgICBp
ZiAocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgSlNDOjphc09iamVjdChwcm90b3R5cGUpLT5nZXRQ
cm9wZXJ0eVNsb3QoJnN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgLy8gNi4gUmV0dXJuIHRydWUuCisgICAgcmV0dXJuIHJlc3Vs
dDsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dC
YXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd0Jhc2UuY3BwCShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yNDcsMzAgKzI0Nywz
MCBAQCBKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRvd0Jhc2U6OnNoZWxsCiAKIC8vIEpTRE9N
R2xvYmFsT2JqZWN0KiBpcyBpZ25vcmVkLCBhY2Nlc3NpbmcgYSB3aW5kb3cgaW4gYW55IGNvbnRl
eHQgd2lsbAogLy8gdXNlIHRoYXQgRE9NV2luZG93J3MgcHJvdG90eXBlIGNoYWluLgotSlNWYWx1
ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqLCBET01XaW5kb3cmIGRv
bVdpbmRvdykKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVj
dCosIERPTVdpbmRvdyYgZG9tV2luZG93KQogewotICAgIHJldHVybiB0b0pTKGV4ZWMsIGRvbVdp
bmRvdyk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsIGRvbVdpbmRvdyk7CiB9CiAKLUpTVmFsdWUg
dG9KUyhFeGVjU3RhdGUqIGV4ZWMsIERPTVdpbmRvdyYgZG9tV2luZG93KQorSlNWYWx1ZSB0b0pT
KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmplY3QqLCBGcmFtZSYgZnJhbWUp
CiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9tV2luZG93LmZyYW1lKCk7Ci0gICAgaWYgKCFmcmFt
ZSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCku
d2luZG93U2hlbGwoY3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICByZXR1cm4gdG9KUyhzdGF0ZSwg
ZnJhbWUpOwogfQogCi1KU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRvdyhGcmFtZSogZnJhbWUsIERP
TVdyYXBwZXJXb3JsZCYgd29ybGQpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBzdGF0ZSwgRE9N
V2luZG93JiBkb21XaW5kb3cpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7
Ci0gICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS53aW5kb3dTaGVsbCh3b3JsZCktPndpbmRvdygp
OworICAgIHJldHVybiB0b0pTKHN0YXRlLCBkb21XaW5kb3cuZnJhbWUoKSk7Cit9CisKK0pTRE9N
V2luZG93KiB0b0pTRE9NV2luZG93KEZyYW1lJiBmcmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3Js
ZCkKK3sKKyAgICByZXR1cm4gZnJhbWUuc2NyaXB0KCkud2luZG93U2hlbGwod29ybGQpLT53aW5k
b3coKTsKIH0KIAogSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coSlNDOjpWTSYgdm0sIEpTVmFs
dWUgdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgpKQotICAgICAgICByZXR1cm4g
MDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICB3aGlsZSAoIXZhbHVlLmlzTnVsbCgp
KSB7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVjdCh2YWx1ZSk7CkBAIC0yODEs
NyArMjgxLDcgQEAgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3coSlNDOjpWTSYgdm0sIAogICAg
ICAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU0RPTVdpbmRvd1NoZWxsKj4ob2JqZWN0KS0+d2luZG93
KCk7CiAgICAgICAgIHZhbHVlID0gb2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICB9
Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9CiAKIERPTVdpbmRvdyYgaW5j
dW1iZW50RE9NV2luZG93KEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaAkod29ya2luZyBjb3B5KQpA
QCAtODUsMTYgKzg1LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgSlNET01XaW5k
b3dTaGVsbCogbV9zaGVsbDsKICAgICB9OwogCi0gICAgLy8gUmV0dXJucyBhIEpTRE9NV2luZG93
IG9yIGpzTnVsbCgpCi0gICAgLy8gSlNET01HbG9iYWxPYmplY3QqIGlzIGlnbm9yZWQsIGFjY2Vz
c2luZyBhIHdpbmRvdyBpbiBhbnkgY29udGV4dCB3aWxsCi0gICAgLy8gdXNlIHRoYXQgRE9NV2lu
ZG93J3MgcHJvdG90eXBlIGNoYWluLgorICAgIC8vIFRoZSBmb2xsb3dpbmcgcmV0dXJuIGEgSlNE
T01XaW5kb3dTaGVsbCBvciBqc051bGwoKQorICAgIC8vIEpTRE9NR2xvYmFsT2JqZWN0KiBpcyBp
Z25vcmVkLCBhY2Nlc3NpbmcgYSB3aW5kb3cgaW4gYW55IGNvbnRleHQgd2lsbCB1c2UgdGhhdCBE
T01XaW5kb3cncyBwcm90b3R5cGUgY2hhaW4uCiAgICAgV0VCQ09SRV9FWFBPUlQgSlNDOjpKU1Zh
bHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIERPTVdpbmRvdyYp
OwotICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogZXhlYywgSlNE
T01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NV2luZG93KiB3aW5kb3cpIHsgcmV0dXJu
IHdpbmRvdyA/IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAqd2luZG93KSA6IEpTQzo6anNOdWxs
KCk7IH0KKyAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBET01XaW5kb3cqIHdpbmRvdykgeyBy
ZXR1cm4gd2luZG93ID8gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCAqd2luZG93KSA6IEpTQzo6
anNOdWxsKCk7IH0KKyAgICBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEpTRE9N
R2xvYmFsT2JqZWN0KiwgRnJhbWUmKTsKKyAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBGcmFt
ZSogZnJhbWUpIHsgcmV0dXJuIGZyYW1lID8gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCAqZnJh
bWUpIDogSlNDOjpqc051bGwoKTsgfQogICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0
YXRlKiwgRE9NV2luZG93Jik7Ci0gICAgaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhl
Y1N0YXRlKiBleGVjLCBET01XaW5kb3cqIHdpbmRvdykgeyByZXR1cm4gd2luZG93ID8gdG9KUyhl
eGVjLCAqd2luZG93KSA6IEpTQzo6anNOdWxsKCk7IH0KKyAgICBpbmxpbmUgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBET01XaW5kb3cqIHdpbmRvdykgeyByZXR1cm4g
d2luZG93ID8gdG9KUyhzdGF0ZSwgKndpbmRvdykgOiBKU0M6OmpzTnVsbCgpOyB9CiAKLSAgICAv
LyBSZXR1cm5zIEpTRE9NV2luZG93IG9yIDAKLSAgICBKU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRv
dyhGcmFtZSosIERPTVdyYXBwZXJXb3JsZCYpOworICAgIC8vIFRoZSBmb2xsb3dpbmcgcmV0dXJu
IGEgSlNET01XaW5kb3cgb3IgbnVsbHB0ci4KKyAgICBKU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRv
dyhGcmFtZSYsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIGlubGluZSBKU0RPTVdpbmRvdyogdG9K
U0RPTVdpbmRvdyhGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIHsgcmV0dXJu
IGZyYW1lID8gdG9KU0RPTVdpbmRvdygqZnJhbWUsIHdvcmxkKSA6IG51bGxwdHI7IH0KICAgICBX
RUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRvdyhKU0M6OlZNJiwgSlNDOjpK
U1ZhbHVlKTsKIAogICAgIC8vIERPTVdpbmRvdyBhc3NvY2lhdGVkIHdpdGggZ2xvYmFsIG9iamVj
dCBvZiB0aGUgIm1vc3QtcmVjZW50bHktZW50ZXJlZCBhdXRob3IgZnVuY3Rpb24gb3Igc2NyaXB0
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxs
LmNwcAkocmV2aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01XaW5kb3dTaGVsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTExOCwxOCArMTE4LDE0IEBAIERP
TVdpbmRvdyogSlNET01XaW5kb3dTaGVsbDo6dG9XcmFwcGVkKFYKIC8vIENvbnZlcnNpb24gbWV0
aG9kcwogLy8gLS0tLQogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBGcmFtZSogZnJh
bWUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAg
aWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIHJldHVybiBmcmFtZS0+
c2NyaXB0KCkud2luZG93U2hlbGwoY3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICByZXR1cm4gZnJh
bWUuc2NyaXB0KCkud2luZG93U2hlbGwoY3VycmVudFdvcmxkKGV4ZWMpKTsKIH0KIAotSlNET01X
aW5kb3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lKiBmcmFtZSwgRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKK0pTRE9NV2luZG93U2hlbGwqIHRvSlNET01XaW5kb3dTaGVsbChGcmFtZSYg
ZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS53aW5kb3dTaGVsbCh3b3Js
ZCk7CisgICAgcmV0dXJuIGZyYW1lLnNjcmlwdCgpLndpbmRvd1NoZWxsKHdvcmxkKTsKIH0KIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMv
SlNET01XaW5kb3dTaGVsbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L2pzL0pTRE9NV2luZG93U2hlbGwuaAkocmV2aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNCw0
NCArMzQsNDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0gICAgY2xhc3MgRnJhbWU7Citj
bGFzcyBGcmFtZTsKIAotICAgIGNsYXNzIEpTRE9NV2luZG93U2hlbGwgOiBwdWJsaWMgSlNDOjpK
U1Byb3h5IHsKLSAgICAgICAgdHlwZWRlZiBKU0M6OkpTUHJveHkgQmFzZTsKLSAgICBwdWJsaWM6
Ci0gICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CisvLyBGSVhNRTogUmVuYW1l
IHRvIEpTV2luZG93UHJveHkgdG8gbWF0Y2ggSFRNTCBzcGVjIG5hbWluZy4KK2NsYXNzIEpTRE9N
V2luZG93U2hlbGwgOiBwdWJsaWMgSlNDOjpKU1Byb3h5IHsKKyAgICB0eXBlZGVmIEpTQzo6SlNQ
cm94eSBCYXNlOworcHVibGljOgorICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7CiAK
LSAgICAgICAgSlNET01XaW5kb3cqIHdpbmRvdygpIGNvbnN0IHsgcmV0dXJuIEpTQzo6anNDYXN0
PEpTRE9NV2luZG93Kj4odGFyZ2V0KCkpOyB9Ci0gICAgICAgIHZvaWQgc2V0V2luZG93KEpTQzo6
Vk0mLCBKU0RPTVdpbmRvdyopOwotICAgICAgICB2b2lkIHNldFdpbmRvdyhSZWZQdHI8RE9NV2lu
ZG93PiYmKTsKKyAgICBKU0RPTVdpbmRvdyogd2luZG93KCkgY29uc3QgeyByZXR1cm4gSlNDOjpq
c0Nhc3Q8SlNET01XaW5kb3cqPih0YXJnZXQoKSk7IH0KKyAgICB2b2lkIHNldFdpbmRvdyhKU0M6
OlZNJiwgSlNET01XaW5kb3cqKTsKKyAgICB2b2lkIHNldFdpbmRvdyhSZWZQdHI8RE9NV2luZG93
PiYmKTsKIAotICAgICAgICBERUNMQVJFX0lORk87CisgICAgREVDTEFSRV9JTkZPOwogCi0gICAg
ICAgIERPTVdpbmRvdyYgd3JhcHBlZCgpIGNvbnN0OwotICAgICAgICBzdGF0aWMgV0VCQ09SRV9F
WFBPUlQgRE9NV2luZG93KiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNPYmplY3QqKTsKKyAg
ICBET01XaW5kb3cmIHdyYXBwZWQoKSBjb25zdDsKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQg
RE9NV2luZG93KiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpTQzo6SlNPYmplY3QqKTsKIAotICAgICAg
ICBzdGF0aWMgSlNET01XaW5kb3dTaGVsbCogY3JlYXRlKEpTQzo6Vk0mIHZtLCBSZWZQdHI8RE9N
V2luZG93PiYmIHdpbmRvdywgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldv
cmxkJiB3b3JsZCkKLSAgICAgICAgewotICAgICAgICAgICAgSlNET01XaW5kb3dTaGVsbCogc2hl
bGwgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTRE9NV2luZG93U2hlbGw+KHZt
LmhlYXApKSBKU0RPTVdpbmRvd1NoZWxsKHZtLCBzdHJ1Y3R1cmUsIHdvcmxkKTsKLSAgICAgICAg
ICAgIHNoZWxsLT5maW5pc2hDcmVhdGlvbih2bSwgV1RGTW92ZSh3aW5kb3cpKTsKLSAgICAgICAg
ICAgIHJldHVybiBzaGVsbDsgCi0gICAgICAgIH0KKyAgICBzdGF0aWMgSlNET01XaW5kb3dTaGVs
bCogY3JlYXRlKEpTQzo6Vk0mIHZtLCBSZWZQdHI8RE9NV2luZG93PiYmIHdpbmRvdywgSlNDOjpT
dHJ1Y3R1cmUqIHN0cnVjdHVyZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKKyAgICB7CisgICAg
ICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRl
Q2VsbDxKU0RPTVdpbmRvd1NoZWxsPih2bS5oZWFwKSkgSlNET01XaW5kb3dTaGVsbCh2bSwgc3Ry
dWN0dXJlLCB3b3JsZCk7CisgICAgICAgIHNoZWxsLT5maW5pc2hDcmVhdGlvbih2bSwgV1RGTW92
ZSh3aW5kb3cpKTsKKyAgICAgICAgcmV0dXJuIHNoZWxsOworICAgIH0KIAotICAgICAgICBzdGF0
aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU1Zh
bHVlIHByb3RvdHlwZSkgCi0gICAgICAgIHsKLSAgICAgICAgICAgIHJldHVybiBKU0M6OlN0cnVj
dHVyZTo6Y3JlYXRlKHZtLCAwLCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpQdXJlRm9y
d2FyZGluZ1Byb3h5VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgICAgICB9Cisg
ICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgMCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6UHVyZUZvcndh
cmRpbmdQcm94eVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CiAKLSAgICAg
ICAgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCgpIHsgcmV0dXJuIG1fd29ybGQ7IH0KKyAgICBET01X
cmFwcGVyV29ybGQmIHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZDsgfQogCi0gICAgcHJvdGVjdGVk
OgotICAgICAgICBKU0RPTVdpbmRvd1NoZWxsKEpTQzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIERP
TVdyYXBwZXJXb3JsZCYpOwotICAgICAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBS
ZWZQdHI8RE9NV2luZG93PiYmKTsKK3Byb3RlY3RlZDoKKyAgICBKU0RPTVdpbmRvd1NoZWxsKEpT
Qzo6Vk0mLCBKU0M6OlN0cnVjdHVyZSosIERPTVdyYXBwZXJXb3JsZCYpOworICAgIHZvaWQgZmlu
aXNoQ3JlYXRpb24oSlNDOjpWTSYsIFJlZlB0cjxET01XaW5kb3c+JiYpOwogCi0gICAgICAgIFJl
ZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Ci0gICAgfTsKKyAgICBSZWY8RE9NV3JhcHBlcldv
cmxkPiBtX3dvcmxkOworfTsKIAotICAgIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgRnJhbWUqKTsKLSAgICBKU0RPTVdpbmRvd1NoZWxsKiB0b0pTRE9NV2luZG93U2hlbGwoRnJh
bWUqLCBET01XcmFwcGVyV29ybGQmKTsKK0pTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRl
KiwgRnJhbWUmKTsKK2lubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3Rh
dGUsIEZyYW1lKiBmcmFtZSkgeyByZXR1cm4gZnJhbWUgPyB0b0pTKHN0YXRlLCAqZnJhbWUpIDog
SlNDOjpqc051bGwoKTsgfQorCitKU0RPTVdpbmRvd1NoZWxsKiB0b0pTRE9NV2luZG93U2hlbGwo
RnJhbWUmLCBET01XcmFwcGVyV29ybGQmKTsKK2lubGluZSBKU0RPTVdpbmRvd1NoZWxsKiB0b0pT
RE9NV2luZG93U2hlbGwoRnJhbWUqIGZyYW1lLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKSB7IHJl
dHVybiBmcmFtZSA/IHRvSlNET01XaW5kb3dTaGVsbCgqZnJhbWUsIHdvcmxkKSA6IG51bGxwdHI7
IH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2JpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcAkocmV2aXNpb24gMjE4MDU3
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1MRG9jdW1lbnRDdXN0b20uY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0yNiw3ICsyNiw5IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAj
aW5jbHVkZSAiSlNIVE1MRG9jdW1lbnQuaCIKIAorI2luY2x1ZGUgIkZyYW1lLmgiCiAjaW5jbHVk
ZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9u
cy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5jbHVkZSAiSlNIVE1MQ29s
bGVjdGlvbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgpAQCAtNTUsNTAgKzU3LDI4
IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2IKIAogYm9vbCBKU0hU
TUxEb2N1bWVudDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5U2xvdCYgc2xvdCkK
IHsKLSAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU0hUTUxEb2N1bWVudCo+KG9iamVj
dCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7Ci0KKyAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTSFRNTERvY3VtZW50Kj4ob2JqZWN0KTsKKyAg
ICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgCiAg
ICAgaWYgKHByb3BlcnR5TmFtZSA9PSAib3BlbiIpIHsKLSAgICAgICAgaWYgKEJhc2U6OmdldE93
blByb3BlcnR5U2xvdCgmdGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisg
ICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgc2xv
dC5zZXRDdXN0b20oJnRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERlbGV0ZSB8IERvbnRFbnVt
LCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNIVE1MRG9jdW1lbnRQcm90b3R5cGVG
dW5jdGlvbk9wZW4sIDI+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQotCi0gICAgSlNW
YWx1ZSB2YWx1ZTsKLSAgICBpZiAodGhpc09iamVjdC5uYW1lR2V0dGVyKHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKCZ0aGlzT2JqZWN0LCBSZWFk
T25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgdmFsdWUpOworICAgICAgICBzbG90LnNldEN1
c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgbm9uQ2Fj
aGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzSFRNTERvY3VtZW50UHJvdG90eXBlRnVuY3Rpb25P
cGVuLCAyPik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3QoJnRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwotfQotCi1ib29sIEpTSFRNTERvY3VtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogc3Rh
dGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUmIHZhbHVlKQotewotICAgIGF1
dG8mIGRvY3VtZW50ID0gd3JhcHBlZCgpOwotCi0gICAgYXV0byogYXRvbWljUHJvcGVydHlOYW1l
ID0gcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKTsKLSAgICBpZiAoIWF0b21pY1Byb3BlcnR5TmFt
ZSB8fCAhZG9jdW1lbnQuaGFzRG9jdW1lbnROYW1lZEl0ZW0oKmF0b21pY1Byb3BlcnR5TmFtZSkp
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChVTkxJS0VMWShkb2N1bWVudC5kb2N1
bWVudE5hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVtZW50cygqYXRvbWljUHJvcGVydHlOYW1l
KSkpIHsKLSAgICAgICAgYXV0byBjb2xsZWN0aW9uID0gZG9jdW1lbnQuZG9jdW1lbnROYW1lZEl0
ZW1zKGF0b21pY1Byb3BlcnR5TmFtZSk7Ci0gICAgICAgIEFTU0VSVChjb2xsZWN0aW9uLT5sZW5n
dGgoKSA+IDEpOwotICAgICAgICB2YWx1ZSA9IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCgpLCBj
b2xsZWN0aW9uKTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMVW5pb248SURMRE9NV2lu
ZG93U2hlbGwsIElETEludGVyZmFjZTxFbGVtZW50PiwgSURMSW50ZXJmYWNlPEhUTUxDb2xsZWN0
aW9uPj47CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1
dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qu
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQor
ICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9u
VHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1l
ZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6
WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7
CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8R2V0dGVy
SURMVHlwZT4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUobmFt
ZWRQcm9wZXJ0eS52YWx1ZSgpKSkpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0KLSAg
ICBhdXRvJiBlbGVtZW50ID0gKmRvY3VtZW50LmRvY3VtZW50TmFtZWRJdGVtKCphdG9taWNQcm9w
ZXJ0eU5hbWUpOwotICAgIGlmIChVTkxJS0VMWShpczxIVE1MSUZyYW1lRWxlbWVudD4oZWxlbWVu
dCkpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVt
ZW50PihlbGVtZW50KS5jb250ZW50RnJhbWUoKSkgewotICAgICAgICAgICAgdmFsdWUgPSB0b0pT
KHN0YXRlLCBmcmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAg
IH0KLQotICAgIHZhbHVlID0gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0KCksIGVsZW1lbnQpOwot
ICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIC8vIEN1c3RvbSBhdHRy
aWJ1dGVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVs
ZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pz
L0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAJKHJldmlzaW9uIDIxODA1NykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAJ
KG5vbmV4aXN0ZW50KQpAQCAtMSw1NiArMCwwIEBACi0vKgotICogQ29weXJpZ2h0IChDKSAyMDA3
LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
LSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3Vy
Y2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICBub3RpY2UsIHRo
aXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCi0gKiAy
LiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3Zl
IGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Ig
b3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KLSAqCi0gKiBU
SElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElOQy4gYGBBUyBJUycnIEFORCBBTlkK
LSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElN
SVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFO
RCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBPU0UgQVJFIERJU0NMQUlNRUQuICBJ
TiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBDT05UUklCVVRPUlMgQkUgTElBQkxF
IEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwKLSAqIEVYRU1Q
TEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRF
RCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExP
U1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9O
KSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQotICogT0YgTElBQklMSVRZLCBXSEVU
SEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCi0gKiAoSU5DTFVESU5H
IE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBV
U0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJ
VFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRlICJjb25maWcuaCIKLSNpbmNsdWRl
ICJKU0hUTUxGcmFtZVNldEVsZW1lbnQuaCIKLQotI2luY2x1ZGUgIkRvY3VtZW50LmgiCi0jaW5j
bHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCi0j
aW5jbHVkZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgotI2luY2x1ZGUgIkpTRE9NV2luZG93Lmgi
Ci0jaW5jbHVkZSAiSlNET01XaW5kb3dTaGVsbC5oIgotI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWJvb2wg
SlNIVE1MRnJhbWVTZXRFbGVtZW50OjpuYW1lR2V0dGVyKEV4ZWNTdGF0ZSogZXhlYywgUHJvcGVy
dHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSYgdmFsdWUpCi17Ci0gICAgYXV0byogZnJhbWVF
bGVtZW50ID0gd3JhcHBlZCgpLmNoaWxkcmVuKCktPm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0
b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICBpZiAoIWlzPEhUTUxGcmFtZUVsZW1lbnQ+
KGZyYW1lRWxlbWVudCkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChhdXRvKiBk
b2N1bWVudCA9IGRvd25jYXN0PEhUTUxGcmFtZUVsZW1lbnQ+KCpmcmFtZUVsZW1lbnQpLmNvbnRl
bnREb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChKU0RPTVdpbmRvd1NoZWxsKiB3aW5kb3cgPSB0
b0pTRE9NV2luZG93U2hlbGwoZG9jdW1lbnQtPmZyYW1lKCksIGN1cnJlbnRXb3JsZChleGVjKSkp
IHsKLSAgICAgICAgICAgIHZhbHVlID0gd2luZG93OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwotfQotCi19IC8vIG5hbWVzcGFj
ZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCl9fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3Zu
OmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBw
cm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJh
dG9yLnBtCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29k
ZUdlbmVyYXRvci5wbQkocmV2aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9yLnBtCSh3b3JraW5nIGNvcHkpCkBAIC05MDIsNiArOTAy
LDcgQEAgc3ViIElzQnVpbHRpblR5cGUKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAi
UHJvbWlzZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3Jp
cHRWYWx1ZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZl
ciI7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvd1NoZWxsIjsKICAg
ICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiYW55IjsKICAgICByZXR1cm4gMSBpZiAkdHlw
ZS0+bmFtZSBlcSAib2JqZWN0IjsKIApJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDIxODA1NykKKysrIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3b3JraW5n
IGNvcHkpCkBAIC0yOTYsNyArMjk2LDcgQEAgc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExUeXBlCiAg
ICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBlKTsKICAg
ICByZXR1cm4gaWYgJHR5cGUtPm5hbWUgZXEgImFueSI7CiAgICAgcmV0dXJuIGlmICR0eXBlLT5u
YW1lIGVxICJvYmplY3QiOwotCisgICAgCiAgICAgaWYgKCR0eXBlLT5pc1VuaW9uKSB7CiAgICAg
ICAgIEFkZFRvSW5jbHVkZXMoIjx3dGYvVmFyaWFudC5oPiIsICRpbmNsdWRlc1JlZiwgJGNvbmRp
dGlvbmFsKTsKIApAQCAtMzM1LDYgKzMzNSwxMiBAQCBzdWIgQWRkVG9JbmNsdWRlc0ZvcklETFR5
cGUKICAgICAgICAgQWRkVG9JbmNsdWRlcygkdHlwZS0+bmFtZSAuICIuaCIsICRpbmNsdWRlc1Jl
ZiwgJGNvbmRpdGlvbmFsKTsKICAgICAgICAgcmV0dXJuOwogICAgIH0KKyAgICAKKyAgICBpZiAo
JHR5cGUtPm5hbWUgZXEgIkRPTVdpbmRvd1NoZWxsIikgeworICAgICAgICBBZGRUb0luY2x1ZGVz
KCJKUyIgLiAkdHlwZS0+bmFtZSAuICIuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlvbmFsKTsK
KyAgICAgICAgQWRkVG9JbmNsdWRlcygiRnJhbWUuaCIsICRpbmNsdWRlc1JlZiwgJGNvbmRpdGlv
bmFsKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KIH0KIAogc3ViIEFkZFRvSW1wbEluY2x1ZGVz
CkBAIC00MDYsMTcyICs0MTIsMzA3IEBAIHN1YiBTaG91bGRVc2VHbG9iYWxPYmplY3RQcm90b3R5
cGUKIAogc3ViIEdlbmVyYXRlSW5kZXhlZEdldHRlcgogewotICAgIG15ICgkb3V0cHV0QXJyYXks
ICRpbmRlbnQsICRpbnRlcmZhY2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKSA9IEBfOworICAg
IG15ICgkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgJGluZGV4RXhwcmVzc2lv
bikgPSBAXzsKKyAgICAKKyAgICAjIE5PVEU6IFRoaXMgYWJzdHJhY3RseSBpbXBsZW1lbnRzIHN0
ZXBzIDEuMi4xIC0gMS4yLjggb2YgdGhlIExlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJvcGVy
dHkKKyAgICAjICAgICAgIGFsZ29yaXRobS4gUmV0dXJpbmcgdGhlIGNvbnZlcnNpb24gZXhwcmVz
c2lvbiBhbmQgYXR0cmlidXRlcyBleHByZXNzaW9uIGZvciB1c2UKKyAgICAjICAgICAgIGJ5IHRo
ZSBjYWxsZXIuCisgICAgCisgICAgIyAxLjIuMSBMZXQgb3BlcmF0aW9uIGJlIHRoZSBvcGVyYXRp
b24gdXNlZCB0byBkZWNsYXJlIHRoZSBpbmRleGVkIHByb3BlcnR5IGdldHRlci4KKyAgICAjIDEu
Mi4yIExldCB2YWx1ZSBiZSBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgorICAgICMgMS4yLjMg
SWYgb3BlcmF0aW9uIHdhcyBkZWZpbmVkIHdpdGhvdXQgYW4gaWRlbnRpZmllciwgdGhlbiBzZXQg
dmFsdWUgdG8gdGhlIHJlc3VsdAorICAgICMgICAgICAgb2YgcGVyZm9ybWluZyB0aGUgc3RlcHMg
bGlzdGVkIGluIHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRpb24gdG8gZGV0ZXJtaW5lIHRoZQorICAg
ICMgICAgICAgdmFsdWUgb2YgYW4gaW5kZXhlZCBwcm9wZXJ0eSB3aXRoIGluZGV4IGFzIHRoZSBp
bmRleC4KKyAgICAjIDEuMi40IE90aGVyd2lzZSwgb3BlcmF0aW9uIHdhcyBkZWZpbmVkIHdpdGgg
YW4gaWRlbnRpZmllci4gU2V0IHZhbHVlIHRvIHRoZSByZXN1bHQKKyAgICAjICAgICAgIG9mIHBl
cmZvcm1pbmcgdGhlIHN0ZXBzIGxpc3RlZCBpbiB0aGUgZGVzY3JpcHRpb24gb2Ygb3BlcmF0aW9u
IHdpdGggaW5kZXggYXMKKyAgICAjICAgICAgIHRoZSBvbmx5IGFyZ3VtZW50IHZhbHVlLgorICAg
ICMgMS4yLjUgTGV0IGRlc2MgYmUgYSBuZXdseSBjcmVhdGVkIFByb3BlcnR5IERlc2NyaXB0b3Ig
d2l0aCBubyBmaWVsZHMuCisgICAgIyAxLjIuNiBTZXQgZGVzYy5bW1ZhbHVlXV0gdG8gdGhlIHJl
c3VsdCBvZiBjb252ZXJ0aW5nIHZhbHVlIHRvIGFuIEVDTUFTY3JpcHQgdmFsdWUuCisgICAgIyAx
LjIuNyBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHdpdGggYW4gaW5kZXhlZCBwcm9wZXJ0
eSBzZXR0ZXIsIHRoZW4gc2V0CisgICAgIyAgICAgICBkZXNjLltbV3JpdGFibGVdXSB0byB0cnVl
LCBvdGhlcndpc2Ugc2V0IGl0IHRvIGZhbHNlLgorICAgICMgMS4yLjggUmV0dXJuIGRlc2MuCiAg
ICAgCiAgICAgbXkgQGF0dHJpYnV0ZXMgPSAoKTsKICAgICBwdXNoKEBhdHRyaWJ1dGVzLCAiUmVh
ZE9ubHkiKSBpZiAhR2V0SW5kZXhlZFNldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKSAmJiAhJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRTZXR0ZXJ9OwotCisgICAg
CiAgICAgbXkgJGF0dHJpYnV0ZVN0cmluZyA9ICgoQGF0dHJpYnV0ZXMgPiAwKSA/IGpvaW4oIiB8
ICIsIEBhdHRyaWJ1dGVzKSA6ICIwIik7CiAKICAgICBteSAkaW5kZXhlZEdldHRlckZ1bmN0aW9u
TmFtZSA9ICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBs
ZW1lbnRlZEFzfSB8fCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbi0+bmFtZSB8fCAiaXRlbSI7Ci0g
ICAgbXkgJG5hdGl2ZVRvSlNDb252ZXJzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdQb2ludGVy
cygkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgJGludGVyZmFjZSwgInRoaXNPYmplY3QtPndyYXBw
ZWQoKS4ke2luZGV4ZWRHZXR0ZXJGdW5jdGlvbk5hbWV9KGluZGV4KSIsICIqdGhpc09iamVjdC0+
Z2xvYmFsT2JqZWN0KCkiKTsKLQotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgJHtuYXRpdmVUb0pT
Q29udmVyc2lvbn0pO1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gInJl
dHVybiB0cnVlO1xuIik7CisgICAgbXkgJG5hdGl2ZVRvSlNDb252ZXJzaW9uID0gTmF0aXZlVG9K
U1ZhbHVlVXNpbmdQb2ludGVycygkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgJGludGVyZmFjZSwg
InRoaXNPYmplY3QtPndyYXBwZWQoKS4ke2luZGV4ZWRHZXR0ZXJGdW5jdGlvbk5hbWV9KCR7aW5k
ZXhFeHByZXNzaW9ufSkiLCAiKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpIik7CisgICAgCisg
ICAgcmV0dXJuICgkbmF0aXZlVG9KU0NvbnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpOwogfQog
CiBzdWIgR2VuZXJhdGVOYW1lZEdldHRlcgogewotICAgIG15ICgkb3V0cHV0QXJyYXksICRpbmRl
bnQsICRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbikgPSBAXzsKLQorICAgIG15ICgk
aW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICRuYW1lZFByb3BlcnR5RXhwcmVzc2lv
bikgPSBAXzsKKyAgICAKKyAgICAjIE5PVEU6IFRoaXMgYWJzdHJhY3RseSBpbXBsZW1lbnRzIHN0
ZXBzIDIuMSAtIDIuMTAgb2YgdGhlIExlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJvcGVydHkK
KyAgICAjICAgICAgIGFsZ29yaXRobS4gUmV0dXJpbmcgdGhlIGNvbnZlcnNpb24gZXhwcmVzc2lv
biBhbmQgYXR0cmlidXRlcyBleHByZXNzaW9uIGZvciB1c2UKKyAgICAjICAgICAgIGJ5IHRoZSBj
YWxsZXIuCisgICAgCisgICAgIyAyLjEgIExldCBvcGVyYXRpb24gYmUgdGhlIG9wZXJhdGlvbiB1
c2VkIHRvIGRlY2xhcmUgdGhlIG5hbWVkIHByb3BlcnR5IGdldHRlci4KKyAgICAjIDIuMiAgTGV0
IHZhbHVlIGJlIGFuIHVuaW5pdGlhbGl6ZWQgdmFyaWFibGUuCisgICAgIyAyLjMgIElmIG9wZXJh
dGlvbiB3YXMgZGVmaW5lZCB3aXRob3V0IGFuIGlkZW50aWZpZXIsIHRoZW4gc2V0IHZhbHVlIHRv
IHRoZSByZXN1bHQKKyAgICAjICAgICAgb2YgcGVyZm9ybWluZyB0aGUgc3RlcHMgbGlzdGVkIGlu
IHRoZSBpbnRlcmZhY2UgZGVzY3JpcHRpb24gdG8gZGV0ZXJtaW5lIHRoZQorICAgICMgICAgICB2
YWx1ZSBvZiBhIG5hbWVkIHByb3BlcnR5IHdpdGggUCBhcyB0aGUgbmFtZS4KKyAgICAjIDIuNCAg
T3RoZXJ3aXNlLCBvcGVyYXRpb24gd2FzIGRlZmluZWQgd2l0aCBhbiBpZGVudGlmaWVyLiBTZXQg
dmFsdWUgdG8gdGhlIHJlc3VsdAorICAgICMgICAgICBvZiBwZXJmb3JtaW5nIHRoZSBzdGVwcyBs
aXN0ZWQgaW4gdGhlIGRlc2NyaXB0aW9uIG9mIG9wZXJhdGlvbiB3aXRoIFAgYXMgdGhlCisgICAg
IyAgICAgIG9ubHkgYXJndW1lbnQgdmFsdWUuLgorICAgICMgMi41ICBMZXQgZGVzYyBiZSBhIG5l
d2x5IGNyZWF0ZWQgUHJvcGVydHkgRGVzY3JpcHRvciB3aXRoIG5vIGZpZWxkcy4KKyAgICAjIDIu
NiAgU2V0IGRlc2MuW1tWYWx1ZV1dIHRvIHRoZSByZXN1bHQgb2YgY29udmVydGluZyB2YWx1ZSB0
byBhbiBFQ01BU2NyaXB0IHZhbHVlLgorICAgICMgMi43ICBJZiBPIGltcGxlbWVudHMgYW4gaW50
ZXJmYWNlIHdpdGggYSBuYW1lZCBwcm9wZXJ0eSBzZXR0ZXIsIHRoZW4gc2V0IGRlc2MuW1tXcml0
YWJsZV1dCisgICAgIyAgICAgIHRvIHRydWUsIG90aGVyd2lzZSBzZXQgaXQgdG8gZmFsc2UuCisg
ICAgIyAyLjggIElmIE8gaW1wbGVtZW50cyBhbiBpbnRlcmZhY2Ugd2l0aCB0aGUgW0xlZ2FjeVVu
ZW51bWVyYWJsZU5hbWVkUHJvcGVydGllc10KKyAgICAjICAgICAgZXh0ZW5kZWQgYXR0cmlidXRl
LCB0aGVuIHNldCBkZXNjLltbRW51bWVyYWJsZV1dIHRvIGZhbHNlLCBvdGhlcndpc2Ugc2V0IGl0
CisgICAgIyAgICAgIHRvIHRydWUuCisgICAgIyAyLjkgIFNldCBkZXNjLltbQ29uZmlndXJhYmxl
XV0gdG8gdHJ1ZS4KKyAgICAjIDIuMTAgUmV0dXJuIGRlc2MuCisgICAgCiAgICAgbXkgQGF0dHJp
YnV0ZXMgPSAoKTsKICAgICBwdXNoKEBhdHRyaWJ1dGVzLCAiUmVhZE9ubHkiKSBpZiAhR2V0TmFt
ZWRTZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfTsKICAgICBwdXNoKEBhdHRyaWJ1dGVzLCAiRG9u
dEVudW0iKSBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntMZWdhY3lVbmVudW1l
cmFibGVOYW1lZFByb3BlcnRpZXN9OwotCisgICAgCiAgICAgbXkgJGF0dHJpYnV0ZVN0cmluZyA9
ICgoQGF0dHJpYnV0ZXMgPiAwKSA/IGpvaW4oIiB8ICIsIEBhdHRyaWJ1dGVzKSA6ICIwIik7Cisg
ICAgbXkgJG5hdGl2ZVRvSlNDb252ZXJzaW9uID0gTmF0aXZlVG9KU1ZhbHVlVXNpbmdQb2ludGVy
cygkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICRpbnRlcmZhY2UsICRuYW1lZFByb3BlcnR5RXhwcmVz
c2lvbiwgIip0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSIpOworICAgIAorICAgIHJldHVybiAo
JG5hdGl2ZVRvSlNDb252ZXJzaW9uLCAkYXR0cmlidXRlU3RyaW5nKTsKK30KIAotICAgIGlmICgk
aW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn0pIHsKLSAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIkpTVmFsdWUgdmFsdWU7XG4iKTsK
LSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImlmICh0aGlzT2JqZWN0LT5u
YW1lR2V0dGVyKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKSkge1xuIik7Ci0gICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICIgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCAke2F0dHJpYnV0ZVN0cmluZ30sIHZhbHVlKTtcbiIpOworc3ViIEdlbmVyYXRlTmFtZWRHZXR0
ZXJMYW1iZGEKK3sKKyAgICBteSAoJG91dHB1dEFycmF5LCAkaW50ZXJmYWNlLCAkbmFtZWRHZXR0
ZXJPcGVyYXRpb24sICRuYW1lZEdldHRlckZ1bmN0aW9uTmFtZSwgJElETFR5cGUpID0gQF87Cisg
ICAgCisgICAgIyBOT1RFOiBOYW1lZCBnZXR0ZXJzIGFyZSBsaXR0bGUgb2RkLiBUbyBhdm9pZCBk
b2luZyBkdXBsaWNhdGUgbG9va3VwcyAob25jZSB3aGVuIGNoZWNraW5nIGlmCisgICAgIyAgICAg
ICB0aGUgcHJvcGVydHkgbmFtZSBpcyBhICdzdXBwb3J0ZWQgcHJvcGVydHkgbmFtZScgYW5kIG9u
Y2UgdG8gZ2V0IHRoZSB2YWx1ZSkgd2Ugc2lnbmFsCisgICAgIyAgICAgICB0aGF0IGEgcHJvcGVy
dHkgaXMgc3VwcG9ydGVkIGJ5IHdoZXRoZXIgb3Igbm90IGl0IGlzICdudWxsJyAod2hlcmUgd2hh
dCBudWxsIG1lYW5zIGlzCisgICAgIyAgICAgICBkZXBlbmRhbnQgb24gdGhlIElETCB0eXBlKS4g
VGhpcyBpcyBiYXNlZCBvbiB0aGUgYXNzdW1wdGlvbiB0aGF0IG5vIG5hbWVkIGdldHRlciB3aWxs
CisgICAgIyAgICAgICBldmVyIGFjdHVhbGx5IHdhbnQgdG8gcmV0dXJuIG51bGwgYXMgYW4gYWN0
dWFsIHJldHVybiB2YWx1ZSwgd2hpY2ggc2VlbXMgbGlrZSBhbiBvaworICAgICMgICAgICAgYXNz
dW1wdGlvbiB0byBtYWtlIChzaG91bGQgaXQgdHVybiBvdXQgdGhpcyBkb2Vzbid0IGhvbGQgaW4g
dGhlIGZ1dHVyZSwgd2UgaGF2ZSBsb3RzCisgICAgIyAgICAgICBvZiBvcHRpb25zOyBkbyB0d28g
bG9va3VwcywgYWRkIGFuIGV4dHJhIGxheWVyIG9mIHN0ZDo6b3B0aW9uYWwsIGV0Yy4pLgorICAg
IAorICAgIG15ICRyZXN1bHRUeXBlID0gInR5cGVuYW1lICR7SURMVHlwZX06OkltcGxlbWVudGF0
aW9uVHlwZSI7CisgICAgJHJlc3VsdFR5cGUgPSAiRXhjZXB0aW9uT3I8IiAuICRyZXN1bHRUeXBl
IC4gIj4iIGlmICRuYW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5
VGhyb3dFeGNlcHRpb259OworICAgIG15ICRyZXR1cm5UeXBlID0gInN0ZDo6b3B0aW9uYWw8IiAu
ICRyZXN1bHRUeXBlIC4gIj4iOworICAgIAorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBh
dXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5h
bWUpIC0+ICR7cmV0dXJuVHlwZX0ge1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLiR7bmFtZWRHZXR0ZXJGdW5j
dGlvbk5hbWV9KHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpO1xuIik7
CisgICAgCisgICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57TWF5VGhyb3dFeGNlcHRpb259KSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgICAgICByZXR1cm4gJHtyZXN1bHRUeXBlfSB7IHJlc3VsdC5yZWxl
YXNlRXhjZXB0aW9uKCkgfTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
ICAgIGlmICghJHtJRExUeXBlfTo6aXNOdWxsVmFsdWUocmVzdWx0LnJldHVyblZhbHVlKCkpKVxu
Iik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiAke3Jl
c3VsdFR5cGV9IHsgJHtJRExUeXBlfTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdC5y
ZWxlYXNlUmV0dXJuVmFsdWUoKSkgfTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7XG4iKTsKICAgICB9IGVsc2UgewotICAgICAg
ICBteSAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWUgPSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0ltcGxlbWVudGVkQXN9IHx8ICRuYW1lZEdldHRlck9wZXJhdGlv
bi0+bmFtZSB8fCAibmFtZWRJdGVtIjsKLSAgICAgICAgbXkgJGl0ZW1WYXJpYWJsZSA9ICJpdGVt
IjsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImF1dG8gaXRlbSA9IHRo
aXNPYmplY3QtPndyYXBwZWQoKS4ke25hbWVkR2V0dGVyRnVuY3Rpb25OYW1lfShwcm9wZXJ0eU5h
bWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTtcbiIpOwotCi0gICAgICAgIGlmICgkbmFt
ZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9u
fSkgewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gImlmIChpdGVt
Lmhhc0V4Y2VwdGlvbigpKSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
JGluZGVudCAuICIgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0
ZS0+dm0oKSk7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAu
ICIgICAgcHJvcGFnYXRlRXhjZXB0aW9uKCpzdGF0ZSwgdGhyb3dTY29wZSwgaXRlbS5yZWxlYXNl
RXhjZXB0aW9uKCkpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRl
bnQgLiAiICAgIHJldHVybiB0cnVlO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICRpbmRlbnQgLiAifVxuXG4iKTsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
JGluZGVudCAuICJhdXRvIGl0ZW1WYWx1ZSA9IGl0ZW0ucmVsZWFzZVJldHVyblZhbHVlKCk7XG4i
KTsKLQotICAgICAgICAgICAgJGl0ZW1WYXJpYWJsZSA9ICJpdGVtVmFsdWUiOwotICAgICAgICB9
Ci0KLSAgICAgICAgbXkgJElETFR5cGUgPSBHZXRJRExUeXBlKCRpbnRlcmZhY2UsICRuYW1lZEdl
dHRlck9wZXJhdGlvbi0+dHlwZSk7Ci0gICAgICAgIG15ICRuYXRpdmVUb0pTQ29udmVyc2lvbiA9
IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRlcnMoJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkaW50
ZXJmYWNlLCAkaXRlbVZhcmlhYmxlLCAiKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpIiwgMSk7
Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJpZiAoISR7SURMVHlwZX06
OmlzTnVsbFZhbHVlKCR7aXRlbVZhcmlhYmxlfSkpIHtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgJHthdHRy
aWJ1dGVTdHJpbmd9LCAke25hdGl2ZVRvSlNDb252ZXJzaW9ufSk7XG4iKTsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoISR7SURMVHlwZX06OmlzTnVsbFZhbHVlKHJl
c3VsdCkpXG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0
dXJuICR7cmVzdWx0VHlwZX0geyAke0lETFR5cGV9OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
cmVzdWx0KSB9O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0
dXJuIHN0ZDo6bnVsbG9wdDtcbiIpOwogICAgIH0KLSAgICAKLSAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICRpbmRlbnQgLiAiICAgIHJldHVybiB0cnVlO1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFy
cmF5LCAkaW5kZW50IC4gIn1cbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9O1xu
Iik7CiB9CiAKLXN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHkKKyMgaHR0cHM6Ly9o
ZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jbGVnYWN5LXBsYXRmb3JtLW9iamVjdC1nZXRvd25wcm9w
ZXJ0eQorc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90CiB7CiAgICAgbXkgKCRvdXRwdXRB
cnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSkgPSBAXzsKICAgICAKICAgICByZXR1cm4gaWYg
JGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90
fTsKICAgICAKLSAgICBteSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXROYW1lZEdldHRlck9w
ZXJhdGlvbigkaW50ZXJmYWNlKTsKLSAgICBteSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiA9IEdl
dEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7Ci0gICAgCi0gICAgbXkgJG93blBy
b3BlcnR5Q2hlY2sgPSBzdWIgewotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYg
KEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
LCBzbG90KSlcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVy
biB0cnVlO1xuIik7Ci0gICAgfTsKLQotICAgICMgRklYTUU6IEFzIHBlciB0aGUgV2ViIElETCBz
cGVjaWZpY2F0aW9uLCB0aGUgcHJvdG90eXBlIGNoZWNrIGlzIHN1cHBvc2VkIHRvIHNraXAgIm5h
bWVkIHByb3BlcnRpZXMgb2JqZWN0cyI6Ci0gICAgIyBodHRwczovL2hleWNhbS5naXRodWIuaW8v
d2ViaWRsLyNkZm4tbmFtZWQtcHJvcGVydHktdmlzaWJpbGl0eQotICAgICMgaHR0cHM6Ly9oZXlj
YW0uZ2l0aHViLmlvL3dlYmlkbC8jZGZuLW5hbWVkLXByb3BlcnRpZXMtb2JqZWN0Ci0gICAgbXkg
JHByb3RvdHlwZUNoZWNrID0gc3ViIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTtcbiIpOwot
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYg
anNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1l
KSlcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBmYWxz
ZTtcblxuIik7Ci0gICAgfTsKLQogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjbGFz
c05hbWV9OjpnZXRPd25Qcm9wZXJ0eVNsb3QoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBz
dGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KVxuIik7
CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtc
biIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4iKTsKLQotCisgICAgCisgICAgbXkgJG5hbWVkR2V0
dGVyT3BlcmF0aW9uID0gR2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CisgICAg
bXkgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uKCRp
bnRlcmZhY2UpOworICAgIAorICAgIGlmICgoJG5hbWVkR2V0dGVyT3BlcmF0aW9uICYmICRuYW1l
ZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259
KSB8fCAoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24gJiYgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24t
PmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufSkpIHsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NP
UEUoc3RhdGUtPnZtKCkpO1xuIik7CisgICAgfQorICAgIAorICAgICMgTk9URTogVGhlIGFsb2dp
dGhtIGZvciBbW0dldE93blByb3BlcnR5XV0gY29udGFpbnMgb25seSB0aGUgZm9sbG93aW5nIHN0
ZXA6CisgICAgIyAxLiBSZXR1cm4gTGVnYWN5UGxhdGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0eShP
LCBQLCBmYWxzZSkuCisgICAgCisgICAgIyBUaGVyZWZvcmUsIHRoZSBmb2xsb3dpbmcgc3RlcHMg
YXJlIGZyb20gdGhlIExlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJvcGVydHkgYWxnb3JpdGht
CisgICAgIyBodHRwczovL2hleWNhbS5naXRodWIuaW8vd2ViaWRsLyNMZWdhY3lQbGF0Zm9ybU9i
amVjdEdldE93blByb3BlcnR5CisgICAgCisgICAgIyAxLiBJZiBPIHN1cHBvcnRzIGluZGV4ZWQg
cHJvcGVydGllcyBhbmQgUCBpcyBhbiBhcnJheSBpbmRleCBwcm9wZXJ0eSBuYW1lLCB0aGVuOgog
ICAgIGlmICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbikgewotICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUp
O1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAob3B0aW9uYWxJbmRl
eCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpIHtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGF1dG8gaW5k
ZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7XG4iKTsKLSAgICAgICAgR2VuZXJhdGVJbmRleGVk
R2V0dGVyKCRvdXRwdXRBcnJheSwgIiAgICAgICAgIiwgJGludGVyZmFjZSwgJGluZGV4ZWRHZXR0
ZXJPcGVyYXRpb24pOworICAgICAgICAjIDEuMS4gTGV0IGluZGV4IGJlIHRoZSByZXN1bHQgb2Yg
Y2FsbGluZyBUb1VpbnQzMihQKS4KKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlm
IChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7XG4iKTsKKyAgICAgICAg
CisgICAgICAgICMgMS4yLiBJZiBpbmRleCBpcyBhIHN1cHBvcnRlZCBwcm9wZXJ0eSBpbmRleCwg
dGhlbjoKKyAgICAgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgc3VwcG9ydCBub24tY29udGlndW91
cyBpbmRpY2VzLgorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGlmIChpbmRl
eC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7XG4iKTsKKyAgICAg
ICAgCisgICAgICAgICMgTk9URTogR2VuZXJhdGVJbmRleGVkR2V0dGVyIGltcGxlbWVudHMgc3Rl
cHMgMS4yLjEgLSAxLjIuOC4KKyAgICAgICAgCisgICAgICAgIG15ICgkbmF0aXZlVG9KU0NvbnZl
cnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVJbmRleGVkR2V0dGVyKCRpbnRlcmZh
Y2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLCAiaW5kZXgudmFsdWUoKSIpOworICAgICAgICAK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgYXV0byB2YWx1ZSA9ICR7
bmF0aXZlVG9KU0NvbnZlcnNpb259O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpO1xuIikg
aWYgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93
RXhjZXB0aW9ufTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgJHthdHRyaWJ1dGVTdHJpbmd9LCB2YWx1
ZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0dXJu
IHRydWU7XG4iKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAg
ICAgfVxuIik7CisgICAgICAgIAorICAgICAgICAjIDEuMy4gU2V0IGlnbm9yZU5hbWVkUHJvcHMg
dG8gdHJ1ZS4KKyAgICAgICAgIyBOT1RFOiBTZXR0aW5nIGlnbm9yZU5hbWVkUHJvcHMgaGFzIHRo
ZSBlZmZlY3Qgb2Ygc2tpcHBpbmcgc3RlcCAyLCBzbyB3ZSBjYW4gZWFybHkgcmV0dXJuIGhlcmUK
KyAgICAgICAgIyAgICAgICByYXRoZXIgdGhhbiBnb2luZyB0aHJvdWdoIHRoZSBwYWNlcyBvZiBo
YXZpbmcgYW4gYWN0dWFsIGlnbm9yZU5hbWVkUHJvcHMgdXBkYXRlLgorICAgICAgICBpZiAoJG5h
bWVkR2V0dGVyT3BlcmF0aW9uIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1
c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9KSB7CisgICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlT
bG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7XG4iKTsKKyAgICAgICAgfQog
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuIik7CiAgICAgfQotCi0gICAgbXkg
JGhhc05hbWVkR2V0dGVyID0gJG5hbWVkR2V0dGVyT3BlcmF0aW9uIHx8ICRpbnRlcmZhY2UtPmV4
dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkR2V0dGVyfTsKLSAgICBpZiAoJGhhc05hbWVk
R2V0dGVyKSB7Ci0gICAgICAgIGlmICghJGNvZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRB
dHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSkgewotICAgICAgICAgICAg
JiRvd25Qcm9wZXJ0eUNoZWNrKCk7Ci0gICAgICAgICAgICAmJHByb3RvdHlwZUNoZWNrKCk7Ci0g
ICAgICAgIH0KLSAgICAgICAgaWYgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKSB7Ci0gICAgICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKCFvcHRpb25hbEluZGV4ICYmIHRoaXNP
YmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkp
IHtcbiIpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5
TmFtZS5pc1N5bWJvbCgpKSB7XG4iKTsKLSAgICAgICAgfQotICAgICAgICBHZW5lcmF0ZU5hbWVk
R2V0dGVyKCRvdXRwdXRBcnJheSwgIiAgICAgICAgIiwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVy
T3BlcmF0aW9uKTsKKyAgICAKKyAgICAjIDIuIElmIE8gc3VwcG9ydHMgbmFtZWQgcHJvcGVydGll
cywgdGhlIHJlc3VsdCBvZiBydW5uaW5nIHRoZSBuYW1lZCBwcm9wZXJ0eSB2aXNpYmlsaXR5Cisg
ICAgIyAgICBhbGdvcml0aG0gd2l0aCBwcm9wZXJ0eSBuYW1lIFAgYW5kIG9iamVjdCBPIGlzIHRy
dWUsIGFuZCBpZ25vcmVOYW1lZFByb3BzIGlzIGZhbHNlLCB0aGVuOgorICAgIGlmICgkbmFtZWRH
ZXR0ZXJPcGVyYXRpb24pIHsKKyAgICAgICAgIyBOT1RFOiBpZ25vcmVOYW1lZFByb3BzIGlzIGd1
YXJlbnRlZWQgdG8gYmUgZmFsc2UgaGVyZSwgYXMgaXQgaXMgaW5pdGlhbGx5IGZhbHNlLCBhbmQg
bmV2ZXIgc2V0CisgICAgICAgICMgICAgICAgdG8gdHJ1ZSwgZHVlIHRvIHRoZSBlYXJseSByZXR1
cm4gaW4gc3RlcCAxLjMKKyAgICAgICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQWJzdHJhY3RP
cGVyYXRpb25zLmgiKTsKKyAgICAgICAgICAgICAgICAKKyAgICAgICAgbXkgJG5hbWVkR2V0dGVy
RnVuY3Rpb25OYW1lID0gJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntJbXBsZW1lbnRlZEFzfSB8fCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPm5hbWUgfHwgIm5hbWVk
SXRlbSI7CisgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZUV4Y2x1ZGluZ051bGxhYmls
aXR5KCRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbi0+dHlwZSk7CisgICAgICAgIAor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9ICR7
SURMVHlwZX07XG4iKTsKKyAgICAgICAgCisgICAgICAgIEdlbmVyYXRlTmFtZWRHZXR0ZXJMYW1i
ZGEoJG91dHB1dEFycmF5LCAkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICRuYW1l
ZEdldHRlckZ1bmN0aW9uTmFtZSwgIkdldHRlcklETFR5cGUiKTsKKyAgICAgICAgCisgICAgICAg
IG15ICRvdmVycmlkZUJ1aWx0aW4gPSAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRlZEF0
dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpID8gIk92ZXJyaWRlQnVpbHRp
bnM6OlllcyIgOiAiT3ZlcnJpZGVCdWlsdGluczo6Tm8iOworICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFBy
b3BlcnR5PCR7b3ZlcnJpZGVCdWlsdGlufT4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBnZXR0ZXJGdW5jdG9yKSkge1xuIik7CisgICAgICAgIAorICAgICAgICAjIE5PVEU6IEdl
bmVyYXRlTmFtZWRHZXR0ZXIgaW1wbGVtZW50cyBzdGVwcyAyLjEgLSAyLjEwLgorICAgICAgICAK
KyAgICAgICAgbXkgKCRuYXRpdmVUb0pTQ29udmVyc2lvbiwgJGF0dHJpYnV0ZVN0cmluZykgPSBH
ZW5lcmF0ZU5hbWVkR2V0dGVyKCRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbiwgIldU
Rk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSIpOworICAgICAgICAKKyAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgICAgICBhdXRvIHZhbHVlID0gJHtuYXRpdmVUb0pTQ29udmVyc2lv
bn07XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBSRVRVUk5fSUZf
RVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtcbiIpIGlmICRuYW1lZEdldHRlck9wZXJhdGlv
bi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNlcHRpb259OworICAgICAgICAKKyAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsICR7YXR0cmlidXRlU3RyaW5nfSwgdmFsdWUpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKICAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIH1cbiIpOwogICAgIH0KLQorICAgIAogICAgIGlmICgkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9y
fSkgewogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKHRoaXNPYmplY3QtPmdl
dE93blByb3BlcnR5U2xvdERlbGVnYXRlKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKVxuIik7
CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsK
ICAgICB9Ci0KLSAgICBpZiAoISRoYXNOYW1lZEdldHRlciB8fCAkY29kZUdlbmVyYXRvci0+SW5o
ZXJpdHNFeHRlbmRlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpKSB7
Ci0gICAgICAgICYkb3duUHJvcGVydHlDaGVjaygpOwotICAgIH0KLQotICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICByZXR1cm4gZmFsc2U7XG4iKTsKKyAgICAKKyAgICAjIDMuIFJldHVybiBP
cmRpbmFyeUdldE93blByb3BlcnR5KE8sIFApLgorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpO1xuIik7CisgICAgCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxu
XG4iKTsKIH0KIAotc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keUJ5SW5kZXgKKyMg
aHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jbGVnYWN5LXBsYXRmb3JtLW9iamVjdC1n
ZXRvd25wcm9wZXJ0eQorc3ViIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90QnlJbmRleAogewog
ICAgIG15ICgkb3V0cHV0QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05hbWUpID0gQF87CiAgICAg
CiAgICAgcmV0dXJuIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXh9OwotICAgIAotICAgIG15ICRuYW1lZEdldHRlck9wZXJh
dGlvbiA9IEdldE5hbWVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOwotICAgIG15ICRpbmRl
eGVkR2V0dGVyT3BlcmF0aW9uID0gR2V0SW5kZXhlZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNl
KTsKKworICAgICMgU2luayB0aGUgaW50LXRvLXN0cmluZyBjb252ZXJzaW9uIHRoYXQgaGFwcGVu
cyB3aGVuIHdlIGNyZWF0ZSBhIFByb3BlcnR5TmFtZQorICAgICMgdG8gdGhlIHBvaW50IHdoZXJl
IHdlIGFjdHVhbGx5IG5lZWQgaXQuCisgICAgbXkgJGRpZEdlbmVyYXRlUHJvcGVydHlOYW1lID0g
MDsKKyAgICBteSAkcHJvcGVydHlOYW1lR2VuZXJhdGlvbiA9IHN1YiB7CisgICAgICAgIHJldHVy
biBpZiAkZGlkR2VuZXJhdGVQcm9wZXJ0eU5hbWU7CisgICAgICAgIAorICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0
YXRlLCBpbmRleCk7XG4iKTsKKyAgICAgICAgJGRpZEdlbmVyYXRlUHJvcGVydHlOYW1lID0gMTsK
KyAgICB9OwogICAgIAogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgImJvb2wgJHtjbGFzc05hbWV9
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
c3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpXG4iKTsKICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDwke2NsYXNzTmFtZX0qPihvYmplY3QpO1xuIik7CiAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTtcbiIpOwogICAgIAotICAgICMgU2luayB0aGUgaW50LXRvLXN0cmluZyBj
b252ZXJzaW9uIHRoYXQgaGFwcGVucyB3aGVuIHdlIGNyZWF0ZSBhIFByb3BlcnR5TmFtZQotICAg
ICMgdG8gdGhlIHBvaW50IHdoZXJlIHdlIGFjdHVhbGx5IG5lZWQgaXQuCi0gICAgbXkgJGdlbmVy
YXRlZFByb3BlcnR5TmFtZSA9IDA7Ci0gICAgbXkgJHByb3BlcnR5TmFtZUdlbmVyYXRpb24gPSBz
dWIgewotICAgICAgICBpZiAoJGdlbmVyYXRlZFByb3BlcnR5TmFtZSkgewotICAgICAgICAgICAg
cmV0dXJuOwotICAgICAgICB9Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTtcbiIp
OwotICAgICAgICAkZ2VuZXJhdGVkUHJvcGVydHlOYW1lID0gMTsKLSAgICB9OworICAgIG15ICRu
YW1lZEdldHRlck9wZXJhdGlvbiA9IEdldE5hbWVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2Up
OworICAgIG15ICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uID0gR2V0SW5kZXhlZEdldHRlck9wZXJh
dGlvbigkaW50ZXJmYWNlKTsKKyAgICAKKyAgICBpZiAoKCRuYW1lZEdldHRlck9wZXJhdGlvbiAm
JiAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhj
ZXB0aW9ufSkgfHwgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uICYmICRpbmRleGVkR2V0dGVyT3Bl
cmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pKSB7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RI
Uk9XX1NDT1BFKHN0YXRlLT52bSgpKTtcbiIpOworICAgIH0KKyAgICAKKyAgICAjIE5PVEU6IFRo
ZSBhbG9naXRobSBmb3IgW1tHZXRPd25Qcm9wZXJ0eV1dIGNvbnRhaW5zIG9ubHkgdGhlIGZvbGxv
d2luZyBzdGVwOgorICAgICMgMS4gUmV0dXJuIExlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJv
cGVydHkoTywgUCwgZmFsc2UpLgorICAgIAorICAgICMgVGhlcmVmb3JlLCB0aGUgZm9sbG93aW5n
IHN0ZXBzIGFyZSBmcm9tIHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blByb3BlcnR5IGFs
Z29yaXRobQorICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jTGVnYWN5UGxh
dGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0eQogICAgIAorICAgICMgMS4gSWYgTyBzdXBwb3J0cyBp
bmRleGVkIHByb3BlcnRpZXMgYW5kIFAgaXMgYW4gYXJyYXkgaW5kZXggcHJvcGVydHkgbmFtZSwg
dGhlbjoKICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24pIHsKLSAgICAgICAgcHVzaChA
JG91dHB1dEFycmF5LCAiICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubGVuZ3RoKCkpKSB7XG4iKTsKLSAgICAgICAgR2VuZXJhdGVJbmRleGVkR2V0dGVyKCRvdXRw
dXRBcnJheSwgIiAgICAgICAgIiwgJGludGVyZmFjZSwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24p
OworICAgICAgICAjIDEuMS4gTGV0IGluZGV4IGJlIHRoZSByZXN1bHQgb2YgY2FsbGluZyBUb1Vp
bnQzMihQKS4KKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChMSUtFTFkoaW5k
ZXggPD0gTUFYX0FSUkFZX0lOREVYKSkge1xuIik7CisgICAgICAgIAorICAgICAgICAjIDEuMi4g
SWYgaW5kZXggaXMgYSBzdXBwb3J0ZWQgcHJvcGVydHkgaW5kZXgsIHRoZW46CisgICAgICAgICMg
RklYTUU6IFRoaXMgc2hvdWxkIHN1cHBvcnQgbm9uLWNvbnRpZ3VvdXMgaW5kaWNlcy4KKyAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubGVuZ3RoKCkpIHtcbiIpOworICAgICAgICAKKyAgICAgICAgIyBOT1RFOiBHZW5l
cmF0ZUluZGV4ZWRHZXR0ZXIgaW1wbGVtZW50cyBzdGVwcyAxLjIuMSAtIDEuMi44LgorICAgICAg
ICAKKyAgICAgICAgbXkgKCRuYXRpdmVUb0pTQ29udmVyc2lvbiwgJGF0dHJpYnV0ZVN0cmluZykg
PSBHZW5lcmF0ZUluZGV4ZWRHZXR0ZXIoJGludGVyZmFjZSwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRp
b24sICJpbmRleCIpOworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICAgICAgYXV0byB2YWx1ZSA9ICR7bmF0aXZlVG9KU0NvbnZlcnNpb259O1xuIik7CisgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04o
dGhyb3dTY29wZSwgZmFsc2UpO1xuIikgaWYgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVu
ZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufTsKKyAgICAgICAgCisgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
JHthdHRyaWJ1dGVTdHJpbmd9LCB2YWx1ZSk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFy
cmF5LCAiICAgICAgICAgICAgcmV0dXJuIHRydWU7XG4iKTsKKyAgICAgICAgCisgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgfVxuIik7CisgICAgICAgIAorICAgICAgICAjIDEu
My4gU2V0IGlnbm9yZU5hbWVkUHJvcHMgdG8gdHJ1ZS4KKyAgICAgICAgIyBOT1RFOiBTZXR0aW5n
IGlnbm9yZU5hbWVkUHJvcHMgaGFzIHRoZSBlZmZlY3Qgb2Ygc2tpcHBpbmcgc3RlcCAyLCBzbyB3
ZSBjYW4gZWFybHkgcmV0dXJuIGhlcmUKKyAgICAgICAgIyAgICAgICByYXRoZXIgdGhhbiBnb2lu
ZyB0aHJvdWdoIHRoZSBwYWNlcyBvZiBoYXZpbmcgYW4gYWN0dWFsIGlnbm9yZU5hbWVkUHJvcHMg
dXBkYXRlLgorICAgICAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uIHx8ICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0
b3J9KSB7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwg
c2xvdCk7XG4iKTsKKyAgICAgICAgfQogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
fVxuIik7CiAgICAgfQotCi0gICAgIyBJbmRleGluZyBhbiBvYmplY3Qgd2l0aCBhbiBpbnRlZ2Vy
IHRoYXQgaXMgbm90IGEgc3VwcG9ydGVkIHByb3BlcnR5IGluZGV4IHNob3VsZCBub3QgY2FsbCB0
aGUgbmFtZWQgcHJvcGVydHkgZ2V0dGVyLgotICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlv
L3dlYmlkbC8jaWRsLWluZGV4ZWQtcHJvcGVydGllcwotICAgIGlmICghJGluZGV4ZWRHZXR0ZXJP
cGVyYXRpb24gJiYgKCRuYW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn0pKSB7CisgICAgCisgICAgIyAyLiBJZiBP
IHN1cHBvcnRzIG5hbWVkIHByb3BlcnRpZXMsIHRoZSByZXN1bHQgb2YgcnVubmluZyB0aGUgbmFt
ZWQgcHJvcGVydHkgdmlzaWJpbGl0eQorICAgICMgICAgYWxnb3JpdGhtIHdpdGggcHJvcGVydHkg
bmFtZSBQIGFuZCBvYmplY3QgTyBpcyB0cnVlLCBhbmQgaWdub3JlTmFtZWRQcm9wcyBpcyBmYWxz
ZSwgdGhlbjoKKyAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uKSB7CisgICAgICAgICMgTk9U
RTogaWdub3JlTmFtZWRQcm9wcyBpcyBndWFyZW50ZWVkIHRvIGJlIGZhbHNlIGhlcmUsIGFzIGl0
IGlzIGluaXRpYWxseSBmYWxzZSwgYW5kIG5ldmVyIHNldAorICAgICAgICAjICAgICAgIHRvIHRy
dWUsIGR1ZSB0byB0aGUgZWFybHkgcmV0dXJuIGluIHN0ZXAgMS4zCisgICAgICAgIEFkZFRvSW1w
bEluY2x1ZGVzKCJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIik7CisgICAgICAgICAgICAgICAg
CiAgICAgICAgICYkcHJvcGVydHlOYW1lR2VuZXJhdGlvbigpOwotICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkge1xu
Iik7Ci0gICAgICAgIEdlbmVyYXRlTmFtZWRHZXR0ZXIoJG91dHB1dEFycmF5LCAiICAgICAgICAi
LCAkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24pOworICAgICAgICAKKyAgICAgICAg
bXkgJG5hbWVkR2V0dGVyRnVuY3Rpb25OYW1lID0gJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8fCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24t
Pm5hbWUgfHwgIm5hbWVkSXRlbSI7CisgICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZUV4
Y2x1ZGluZ051bGxhYmlsaXR5KCRpbnRlcmZhY2UsICRuYW1lZEdldHRlck9wZXJhdGlvbi0+dHlw
ZSk7CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgdXNpbmcgR2V0
dGVySURMVHlwZSA9ICR7SURMVHlwZX07XG4iKTsKKyAgICAgICAgCisgICAgICAgIEdlbmVyYXRl
TmFtZWRHZXR0ZXJMYW1iZGEoJG91dHB1dEFycmF5LCAkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJP
cGVyYXRpb24sICRuYW1lZEdldHRlckZ1bmN0aW9uTmFtZSwgIkdldHRlcklETFR5cGUiKTsKKyAg
ICAgICAgCisgICAgICAgIG15ICRvdmVycmlkZUJ1aWx0aW4gPSAkY29kZUdlbmVyYXRvci0+SW5o
ZXJpdHNFeHRlbmRlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpID8g
Ik92ZXJyaWRlQnVpbHRpbnM6OlllcyIgOiAiT3ZlcnJpZGVCdWlsdGluczo6Tm8iOworICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vz
c1Zpc2libGVOYW1lZFByb3BlcnR5PCR7b3ZlcnJpZGVCdWlsdGlufT4oKnN0YXRlLCAqdGhpc09i
amVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkge1xuIik7CisgICAgICAgIAorICAg
ICAgICAjIE5PVEU6IEdlbmVyYXRlTmFtZWRHZXR0ZXIgaW1wbGVtZW50cyBzdGVwcyAyLjEgLSAy
LjEwLgorICAgICAgICAKKyAgICAgICAgbXkgKCRuYXRpdmVUb0pTQ29udmVyc2lvbiwgJGF0dHJp
YnV0ZVN0cmluZykgPSBHZW5lcmF0ZU5hbWVkR2V0dGVyKCRpbnRlcmZhY2UsICRuYW1lZEdldHRl
ck9wZXJhdGlvbiwgIldURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSIpOworCisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgYXV0byB2YWx1ZSA9ICR7bmF0aXZlVG9KU0Nv
bnZlcnNpb259O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgUkVU
VVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKSBpZiAkbmFtZWRHZXR0ZXJP
cGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufTsKKyAgICAg
ICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCAke2F0dHJpYnV0ZVN0cmluZ30sIHZhbHVlKTtcbiIpOworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAgICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKICAgICB9Ci0KKyAgICAKICAgICBpZiAoJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVz
Y3JpcHRvcn0pIHsKICAgICAgICAgJiRwcm9wZXJ0eU5hbWVHZW5lcmF0aW9uKCk7CisgICAgCiAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAodGhpc09iamVjdC0+Z2V0T3duUHJv
cGVydHlTbG90RGVsZWdhdGUoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKICAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwogICAgIH0K
LQotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVy
dHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpO1xuIik7CisgICAg
CisgICAgIyAzLiBSZXR1cm4gT3JkaW5hcnlHZXRPd25Qcm9wZXJ0eShPLCBQKS4KKyAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RC
eUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTtcbiIpOworICAgIAogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiB9CiAKQEAgLTU4OCwxMCArNzI5LDExIEBAIHN1YiBH
ZW5lcmF0ZUdldE93blByb3BlcnR5TmFtZXMKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ2b2lk
ICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRp
b25Nb2RlIG1vZGUpXG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ7XG4iKTsKICAgICBw
dXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDwke2NsYXNz
TmFtZX0qPihvYmplY3QpO1xuIik7Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTtcbiIpOwotCisgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBp
bmZvKCkpO1xuIik7CisgICAgCiAgICAgIyAxLiBJZiB0aGUgb2JqZWN0IHN1cHBvcnRzIGluZGV4
ZWQgcHJvcGVydGllcywgdGhlbiB0aGUgb2JqZWN04oCZcyBzdXBwb3J0ZWQKICAgICAjICAgIHBy
b3BlcnR5IGluZGljZXMgYXJlIGVudW1lcmF0ZWQgZmlyc3QsIGluIG51bWVyaWNhbCBvcmRlci4K
KyAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBzdXBwb3J0IG5vbi1jb250aWd1b3VzIGluZGljZXMu
CiAgICAgaWYgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKSB7CiAgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kpXG4iKTsKICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0
YXRlLCBpKSk7XG4iKTsKQEAgLTYxNiw3ICs3NTgsNyBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9w
ZXJ0eU5hbWVzCiAgICAgCiAgICAgIyAzLiBGaW5hbGx5LCBhbnkgZW51bWVyYWJsZSBvd24gcHJv
cGVydGllcyBvciBwcm9wZXJ0aWVzIGZyb20gdGhlIG9iamVjdOKAmXMKICAgICAjICAgIHByb3Rv
dHlwZSBjaGFpbiBhcmUgdGhlbiBlbnVtZXJhdGVkLCBpbiBubyBkZWZpbmVkIG9yZGVyLgotICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTtcbiIpOworICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1c
blxuIik7CiB9CiAKQEAgLTcyMCw3ICs4NjIsNyBAQCBzdWIgR2VuZXJhdGVQdXQKICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gcHV0UmVzdWx0O1xuXG4iKTsKICAg
ICB9CiAgICAgCi0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBCYXNlOjpwdXQo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7
XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7
XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQogCkBAIC03NTYsNyAr
ODk4LDcgQEAgc3ViIEdlbmVyYXRlUHV0QnlJbmRleAogICAgIH0KICAgICAKICAgICBpZiAoJG5h
bWVkU2V0dGVyT3BlcmF0aW9uKSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTtc
biIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7XG4iKTsKICAgICAgICAgICAgICAgICAK
ICAgICAgICAgbXkgJGFkZGl0aW9uYWxJbmRlbnQgPSAiIjsKICAgICAgICAgaWYgKCEkb3ZlcnJp
ZGVCdWlsdGlucykgewpAQCAtNzc2LDcgKzkxOCw3IEBAIHN1YiBHZW5lcmF0ZVB1dEJ5SW5kZXgK
ICAgICAKICAgICBhc3NlcnQoIlVzaW5nIGJvdGggYSBuYW1lZCBwcm9wZXJ0eSBzZXR0ZXIgYW5k
IFtDdXN0b21OYW1lZFNldHRlcl0gdG9nZXRoZXIgaXMgbm90IHN1cHBvcnRlZC4iKSBpZiAkbmFt
ZWRTZXR0ZXJPcGVyYXRpb24gJiYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3Vz
dG9tTmFtZWRTZXR0ZXJ9OwogICAgIGlmICgkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMt
PntDdXN0b21OYW1lZFNldHRlcn0pIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgp
O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTtcbiIpOwogICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgUHV0UHJvcGVydHlTbG90IHNsb3QodGhpc09iamVjdCwgc2hvdWxk
VGhyb3cpO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBib29sIHB1dFJl
c3VsdCA9IGZhbHNlO1xuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAo
dGhpc09iamVjdC0+cHV0RGVsZWdhdGUoc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHNsb3Qs
IHB1dFJlc3VsdCkpXG4iKTsKQEAgLTc4NCw3ICs5MjYsNyBAQCBzdWIgR2VuZXJhdGVQdXRCeUlu
ZGV4CiAgICAgfQogICAgIAogICAgIGlmICghJGVsbGlkZXNDYWxsc1RvQmFzZSkgewotICAgICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwg
c3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpO1xuIik7CisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUs
IGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpO1xuIik7CiAgICAgfQogICAgIAogICAgIHB1c2go
QCRvdXRwdXRBcnJheSwgIn1cblxuIik7CkBAIC04ODIsMTEgKzEwMjQsMTEgQEAgc3ViIEdlbmVy
YXRlRGVmaW5lT3duUHJvcGVydHkKICAgICAgICAgIyAgICBkb2VzIG5vdCBoYXZlIGFuIG93biBw
cm9wZXJ0eSBuYW1lZCBQLCB0aGVuOgogICAgICAgICBteSAkb3ZlcnJpZGVCdWlsdGlucyA9ICRj
b2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVy
cmlkZUJ1aWx0aW5zIik7CiAgICAgICAgIGlmICghJG92ZXJyaWRlQnVpbHRpbnMpIHsKLSAgICAg
ICAgICAgICMgRklYTUU6IElzIEJhc2U6OmdldE93blByb3BlcnR5U2xvdCB0aGUgcmlnaHQgZnVu
Y3Rpb24gdG8gY2FsbD8gSXMgdGhlcmUgYSBmdW5jdGlvbiB0aGF0IHdpbGwKKyAgICAgICAgICAg
ICMgRklYTUU6IElzIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QgdGhlIHJpZ2h0IGZ1bmN0
aW9uIHRvIGNhbGw/IElzIHRoZXJlIGEgZnVuY3Rpb24gdGhhdCB3aWxsCiAgICAgICAgICAgICAj
ICAgICAgICBvbmx5IGxvb2sgYXQgdGhlIGFjdHVhbCBwcm9wZXJ0aWVzLCBhbmQgbm90IGNhbGwg
aW50byBvdXIgaW1wbGVtZW50YXRpb24gb2YgdGhlCiAgICAgICAgICAgICAjICAgICAgICBbW0dl
dE93blByb3BlcnR5XV0gaG9vaz8KICAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGFk
ZGl0aW9uYWxJbmRlbnQuICIgICAgICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwg
UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9O1xuIik7Ci0gICAg
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50LiAiICAgICAgICBp
ZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkge1xuIik7CisgICAgICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRhZGRp
dGlvbmFsSW5kZW50LiAiICAgICAgICBpZiAoIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHtcbiIpOwogICAgICAgICAg
ICAgJGFkZGl0aW9uYWxJbmRlbnQgLj0gIiAgICAiOwogICAgICAgICB9CiAgICAgICAgIGlmICgh
JG5hbWVkU2V0dGVyT3BlcmF0aW9uKSB7CkBAIC05MjksNyArMTA3MSw3IEBAIHN1YiBHZW5lcmF0
ZURlZmluZU93blByb3BlcnR5CiAgICAgCiAgICAgIyA0LiBSZXR1cm4gT3JkaW5hcnlEZWZpbmVP
d25Qcm9wZXJ0eShPLCBQLCBEZXNjKS4KICAgICAjIEZJWE1FOiBEb2VzIHRoaXMgZG8gdGhlIHNh
bWUgdGhpbmc/Ci0gICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBCYXNlOjpkZWZp
bmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVz
Y3JpcHRvciwgc2hvdWxkVGhyb3cpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
IHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTtcbiIpOwogICAgIAog
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7CiB9CkBAIC05NDksNyArMTA5MSw3IEBA
IHN1YiBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9uCiAgICAgYXNzZXJ0KCJOYW1lZCBwcm9w
ZXJ0eSBkZWxldGVycyBhcmUgbm90IGFsbG93ZWQgb24gZ2xvYmFsIG9iamVjdCBpbnRlcmZhY2Vz
LiIpIGlmIElzR2xvYmFsT3JQcmltYXJ5R2xvYmFsSW50ZXJmYWNlKCRpbnRlcmZhY2UpOwogCiAg
ICAgQWRkVG9JbXBsSW5jbHVkZXMoIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiLCAkY29uZGl0
aW9uYWwpOwotICAgIG15ICRvdmVycmlkZUJ1aWx0aW4gPSAkY29kZUdlbmVyYXRvci0+SW5oZXJp
dHNFeHRlbmRlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpID8gInRy
dWUiIDogImZhbHNlIjsKKyAgICBteSAkb3ZlcnJpZGVCdWlsdGluID0gJGNvZGVHZW5lcmF0b3It
PkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMi
KSA/ICJPdmVycmlkZUJ1aWx0aW5zOjpZZXMiIDogIk92ZXJyaWRlQnVpbHRpbnM6Ok5vIjsKICAg
ICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8JHtv
dmVycmlkZUJ1aWx0aW59Pigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHtcbiIp
OwogCiAgICAgaWYgKCRvcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e0NFUmVhY3Rpb25z
fSkgewpAQCAtMTAyOSw5ICsxMTcxLDkgQEAgc3ViIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlEZWZp
bml0aW9uCiAgICAgIyBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9uIGltcGxlbWVudHMgc3Rl
cCAyLgogICAgIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlDb21tb24oJG91dHB1dEFycmF5LCAkaW50
ZXJmYWNlLCAkY2xhc3NOYW1lLCAkb3BlcmF0aW9uLCAkY29uZGl0aW9uYWwpOwogCi0gICAgIyBG
SVhNRTogSW5zdGVhZCBvZiBjYWxsaW5nIGRvd24gQmFzZTo6ZGVsZXRlUHJvcGVydHksIHBlcmhh
cHMgd2Ugc2hvdWxkIGltcGxlbWVudAorICAgICMgRklYTUU6IEluc3RlYWQgb2YgY2FsbGluZyBk
b3duIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSwgcGVyaGFwcyB3ZSBzaG91bGQgaW1wbGVtZW50
CiAgICAgIyB0aGUgcmVtYWluZWQgb2YgdGhlIGFsZ29yaXRobSBvdXJzZWx2ZXMuCi0gICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBz
dGF0ZSwgcHJvcGVydHlOYW1lKTtcbiIpOworICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBy
ZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUp
O1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKIH0KIApAQCAtMTA2NCw3
ICsxMjA2LDcgQEAgc3ViIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlCeUluZGV4RGVmaW5pdAogICAg
ICAgICAjIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlDb21tb24gaW1wbGVtZW50cyBzdGVwIDIuCiAg
ICAgICAgIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlDb21tb24oJG91dHB1dEFycmF5LCAkaW50ZXJm
YWNlLCAkY2xhc3NOYW1lLCAkb3BlcmF0aW9uLCAkY29uZGl0aW9uYWwpOwogCi0gICAgICAgICMg
RklYTUU6IEluc3RlYWQgb2YgY2FsbGluZyBkb3duIEJhc2U6OmRlbGV0ZVByb3BlcnR5QnlJbmRl
eCwgcGVyaGFwcyB3ZSBzaG91bGQgaW1wbGVtZW50CisgICAgICAgICMgRklYTUU6IEluc3RlYWQg
b2YgY2FsbGluZyBkb3duIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgsIHBlcmhhcHMg
d2Ugc2hvdWxkIGltcGxlbWVudAogICAgICAgICAjIHRoZSByZW1haW5lZGVyIG9mIHRoZSBhbGdv
cml0bSAoc3RlcHMgMyBhbmQgNCkgb3Vyc2VsdmVzLgogICAgICAgICAKICAgICAgICAgIyAzLiBJ
ZiBPIGhhcyBhbiBvd24gcHJvcGVydHkgd2l0aCBuYW1lIFAsIHRoZW46CkBAIC0xMDcyLDcgKzEy
MTQsNyBAQCBzdWIgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUJ5SW5kZXhEZWZpbml0CiAgICAgICAg
ICMgICAgMi4gT3RoZXJ3aXNlLCByZW1vdmUgdGhlIHByb3BlcnR5IGZyb20gTy4KICAgICAgICAg
IyAzLiBSZXR1cm4gdHJ1ZS4KICAgICAgICAgCi0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRl
eCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7XG4iKTsKICAgICB9
CiAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwpAQCAtMTU0MSwxNyArMTY4Myw3
IEBAIHN1YiBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdAogewogICAgIG15ICRp
bnRlcmZhY2UgPSBzaGlmdDsKICAgICByZXR1cm4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1
dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90fQotICAgICAgICB8fCAkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn0KLSAgICAgICAgfHwgJGludGVy
ZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVz
Y3JpcHRvcn0KLSAgICAgICAgfHwgR2V0SW5kZXhlZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNl
KQotICAgICAgICB8fCBHZXROYW1lZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKLX0KLQot
c3ViIEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleAotewotICAgIG15
ICRpbnRlcmZhY2UgPSBzaGlmdDsKLSAgICByZXR1cm4gJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRy
aWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QnlJbmRleH0KLSAgICAgICAgfHwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9CisgICAgICAg
IHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXh9CiAgICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+
e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9CiAgICAgICAgIHx8IEdldElu
ZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSkKICAgICAgICAgfHwgR2V0TmFtZWRHZXR0
ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CkBAIC0yMjcwLDggKzI0MDIsOCBAQCBzdWIgR2VuZXJh
dGVIZWFkZXIKICAgICBteSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXROYW1lZEdldHRlck9w
ZXJhdGlvbigkaW50ZXJmYWNlKTsKICAgICBteSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiA9IEdl
dEluZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CiAKLSAgICAjIEZJWE1FOiBXaHkg
ZG9lc24ndCB0aGlzIGFsc28gaW5jbHVkZSBJbmRleGVkIEdldHRlcnMsIHtDdXN0b21HZXRPd25Q
cm9wZXJ0eVNsb3R9IGFuZCB7Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVzY3JpcHRvcn0K
LSAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0
cmlidXRlcy0+e0N1c3RvbU5hbWVkR2V0dGVyfSkgeworICAgICMgRklYTUU6IFdoeSBkb2Vzbid0
IHRoaXMgYWxzbyBpbmNsdWRlIEluZGV4ZWQgR2V0dGVycywgW0N1c3RvbUdldE93blByb3BlcnR5
U2xvdF0gYW5kIFtDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yXQorICAgIGlm
ICgkbmFtZWRHZXR0ZXJPcGVyYXRpb24pIHsKICAgICAgICAgaWYgKCRjb2RlR2VuZXJhdG9yLT5J
bmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVycmlkZUJ1aWx0aW5zIikp
IHsKICAgICAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpHZXRPd25Qcm9wZXJ0eVNsb3RJ
c0ltcHVyZSJ9ID0gMTsKICAgICAgICAgfSBlbHNlIHsKQEAgLTIyODQsOSArMjQxNiw2IEBAIHN1
YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmIChJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5
U2xvdCgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIHN0
YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2JqZWN0KiwgSlNDOjpFeGVjU3Rh
dGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgICAg
ICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6T3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90In0gPSAx
OwotICAgIH0KLSAgICAKLSAgICBpZiAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KCRpbnRlcmZhY2UpKSB7CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIg
ICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU0M6OkpTT2JqZWN0Kiwg
SlNDOjpFeGVjU3RhdGUqLCB1bnNpZ25lZCBwcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7XG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6OkludGVyY2VwdHNHZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5ndGhJc05vdFplcm8ifSA9IDE7CiAgICAgfQpA
QCAtMjUzOSwxMSArMjY2OCw3IEBAIHN1YiBHZW5lcmF0ZUhlYWRlcgogICAgIGlmICgkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNj
cmlwdG9yfSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wgZ2V0T3du
UHJvcGVydHlTbG90RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwg
SlNDOjpQcm9wZXJ0eVNsb3QmKTtcbiIpOwogICAgIH0KLQotICAgIGlmICgkaW50ZXJmYWNlLT5l
eHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn0pIHsKLSAgICAgICAgcHVzaChA
aGVhZGVyQ29udGVudCwgIiAgICBib29sIG5hbWVHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6
OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVlJik7XG4iKTsKLSAgICB9Ci0KKyAgICAKICAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRTZXR0ZXJ9KSB7
CiAgICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBwdXREZWxlZ2F0ZShKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFsdWUsIEpTQzo6UHV0UHJv
cGVydHlTbG90JiwgYm9vbCYgcHV0UmVzdWx0KTtcbiIpOwogICAgIH0KQEAgLTM3OTgsNyArMzky
Myw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAgICAgICAgICBteSAkcnVudGlt
ZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nID0gR2VuZXJhdGVSdW50aW1lRW5hYmxlQ29uZGl0aW9u
YWxTdHJpbmcoJG9wZXJhdGlvbk9yQXR0cmlidXRlKTsKICAgICAgICAgICAgIG15ICRuYW1lID0g
JG9wZXJhdGlvbk9yQXR0cmlidXRlLT5uYW1lOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRl
bnQsICIgICAgaWYgKCEke3J1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZ30pIHtcbiIpOwot
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIElkZW50aWZpZXIgcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPihcIiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsKKyAgICAgICAg
ICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oXCIk
bmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBs
Q29udGVudCwgIiAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpO1xuIik7CiAgICAgICAg
ICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7XG4iKTsK
ICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgIH1cbiIpOwpAQCAtMzgyMCw3ICsz
OTQ1LDcgQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICAgICAgICAgICAgICBteSAk
bmFtZSA9ICRvcGVyYXRpb25PckF0dHJpYnV0ZS0+bmFtZTsKIAogICAgICAgICAgICAgICAgIHB1
c2goQGltcGxDb250ZW50LCAiICAgIGlmICghY29udGV4dCB8fCAhZG93bmNhc3Q8RG9jdW1lbnQ+
KCpjb250ZXh0KS5zZXR0aW5ncygpLiR7ZW5hYmxlRnVuY3Rpb259KCkpIHtcbiIpOwotICAgICAg
ICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikpO1xuIik7CisgICAgICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPihc
IiRuYW1lXCIpLCBzdHJsZW4oXCIkbmFtZVwiKSk7XG4iKTsKICAgICAgICAgICAgICAgICBwdXNo
KEBpbXBsQ29udGVudCwgIiAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3Bl
KHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpO1xuIik7CiAg
ICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEpTT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUp
O1xuIik7CiAgICAgICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgfVxuIik7CkBA
IC00MDMzLDExICs0MTU4LDggQEAgc3ViIEdlbmVyYXRlSW1wbGVtZW50YXRpb24KICAgICB9CiAK
ICAgICBpZiAoSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QoJGludGVyZmFjZSkp
IHsKLSAgICAgICAgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCb2R5KFxAaW1wbENvbnRlbnQs
ICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOwotICAgIH0KLSAgICAKLSAgICBpZiAoSW5zdGFuY2VP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KCRpbnRlcmZhY2UpKSB7Ci0gICAgICAg
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keUJ5SW5kZXgoXEBpbXBsQ29udGVudCwgJGlu
dGVyZmFjZSwgJGNsYXNzTmFtZSk7CisgICAgICAgIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90
KFxAaW1wbENvbnRlbnQsICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOworICAgICAgICBHZW5lcmF0
ZUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoXEBpbXBsQ29udGVudCwgJGludGVyZmFjZSwgJGNs
YXNzTmFtZSk7CiAgICAgfQogICAgIAogICAgIGlmIChJbnN0YW5jZU92ZXJyaWRlc0dldE93blBy
b3BlcnR5TmFtZXMoJGludGVyZmFjZSkpIHsKQEAgLTU5NTksNyArNjA4MSw4IEBAIHN1YiBHZXRC
YXNlSURMVHlwZQogICAgICAgICAiSlNPTiIgPT4gIklETEpTT04iLAogICAgICAgICAiU2VyaWFs
aXplZFNjcmlwdFZhbHVlIiA9PiAiSURMU2VyaWFsaXplZFNjcmlwdFZhbHVlPFNlcmlhbGl6ZWRT
Y3JpcHRWYWx1ZT4iLAogICAgICAgICAiWFBhdGhOU1Jlc29sdmVyIiA9PiAiSURMWFBhdGhOU1Jl
c29sdmVyPFhQYXRoTlNSZXNvbHZlcj4iLAotCisgICAgICAgICJET01XaW5kb3dTaGVsbCIgPT4g
IklETERPTVdpbmRvd1NoZWxsIiwKKyAgICAgICAgCiAgICAgICAgICMgQ29udmVuaWVuY2UgdHlw
ZSBhbGlhc2VzCiAgICAgICAgICJCdWZmZXJTb3VyY2UiID0+ICJJRExCdWZmZXJTb3VyY2UiLAog
ICAgICk7CkBAIC02MTE1LDExICs2MjM4LDEyIEBAIHN1YiBOYXRpdmVUb0pTVmFsdWVET01Db252
ZXJ0TmVlZHNTdGF0ZQogICAgIHJldHVybiAxIGlmICRjb2RlR2VuZXJhdG9yLT5Jc0RpY3Rpb25h
cnlUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNJbnRlcmZh
Y2VUeXBlKCR0eXBlKTsKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNUeXBlZEFy
cmF5VHlwZSgkdHlwZSk7CisgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIkRPTVdpbmRv
d1NoZWxsIjsKICAgICByZXR1cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiRGF0ZSI7CiAgICAgcmV0
dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIkpTT04iOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5u
YW1lIGVxICJTZXJpYWxpemVkU2NyaXB0VmFsdWUiOwogICAgIHJldHVybiAxIGlmICR0eXBlLT5u
YW1lIGVxICJYUGF0aE5TUmVzb2x2ZXIiOwotCisgICAgCiAgICAgcmV0dXJuIDA7CiB9CiAKQEAg
LTYxNDUsNiArNjI2OSw3IEBAIHN1YiBOYXRpdmVUb0pTVmFsdWVET01Db252ZXJ0TmVlZHNHbG9i
YWwKICAgICByZXR1cm4gMSBpZiAkY29kZUdlbmVyYXRvci0+SXNEaWN0aW9uYXJ5VHlwZSgkdHlw
ZSk7CiAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzSW50ZXJmYWNlVHlwZSgkdHlw
ZSk7CiAgICAgcmV0dXJuIDEgaWYgJGNvZGVHZW5lcmF0b3ItPklzVHlwZWRBcnJheVR5cGUoJHR5
cGUpOworICAgIHJldHVybiAxIGlmICR0eXBlLT5uYW1lIGVxICJET01XaW5kb3dTaGVsbCI7CiAg
ICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CiAg
ICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5hbWUgZXEgIlhQYXRoTlNSZXNvbHZlciI7CiAKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5qc29uCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvSURMQXR0cmlidXRlcy5q
c29uCShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L0lETEF0dHJpYnV0ZXMuanNvbgkod29ya2luZyBjb3B5KQpAQCAtMTEzLDkgKzExMyw2IEBACiAg
ICAgICAgICJDdXN0b21Jc1JlYWNoYWJsZSI6IHsKICAgICAgICAgICAgICJjb250ZXh0c0FsbG93
ZWQiOiBbImludGVyZmFjZSJdCiAgICAgICAgIH0sCi0gICAgICAgICJDdXN0b21OYW1lZEdldHRl
ciI6IHsKLSAgICAgICAgICAgICJjb250ZXh0c0FsbG93ZWQiOiBbImludGVyZmFjZSJdCi0gICAg
ICAgIH0sCiAgICAgICAgICJDdXN0b21OYW1lZEdldHRlck9uUHJvdG90eXBlIjogewogICAgICAg
ICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRsCShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmlkbAko
bm9uZXhpc3RlbnQpCkBAIC0xLDM0ICswLDAgQEAKLS8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTEg
R29vZ2xlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBh
bmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zdHJBcmcsIHdpdGggb3Igd2l0aG91dAot
ICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2lu
ZyBjb25kaXRpb25zCi0gKiBhcmUgbWV0OgotICoKLSAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Yg
c291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4K
LSAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhl
IGFib3ZlIGNvcHlyaWdodAotICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMg
YW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKLSAqICAgICBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgot
ICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBu
YW1lcyBvZgotICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBv
ciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKLSAqICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0
aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCi0gKgotICogVEhJUyBTT0ZU
V0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFO
RCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVzdHJBcmcsIElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAotICogV0FSUkFOVElFUyBPRiBNRVJDSEFO
VEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQotICogRElT
Q0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBM
SUFCTEUgRk9SIEFOWQotICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwg
RVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKLSAqIChJTkNMVURJTkcsIEJVVCBO
T1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNF
UzsKLSAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJV
UFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAotICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFks
IFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKLSAqIChJTkNM
VURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0Yg
VEhFIFVTRSBPRgotICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NT
SUJJTElUWSBPRiBTVUNIIERBTUFHRS4KLSAqLwotCi1bCi0gICAgQ3VzdG9tTmFtZWRHZXR0ZXIK
LV0gaW50ZXJmYWNlIFRlc3RDdXN0b21OYW1lZEdldHRlciB7Ci0gICAgdm9pZCBhbm90aGVyRnVu
Y3Rpb24oRE9NU3RyaW5nIHN0cik7Ci19OwotCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21O
YW1lZEdldHRlci5jcHAJKHJldmlzaW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAJKG5vbmV4aXN0
ZW50KQpAQCAtMSwyNzkgKzAsMCBAQAotLyoKLSAgICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUg
V2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0gICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVy
YXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4gRE8gTk9UIE1PRElGWSEKLQotICAgIFRoaXMg
bGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IK
LSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZv
dW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlv
dXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4KLQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0
cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdpbGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRI
T1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0g
ICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAg
U2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUg
ZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdO
VSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGli
cmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElCLiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRo
ZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlm
dGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCi0qLwotCi0jaW5jbHVk
ZSAiY29uZmlnLmgiCi0jaW5jbHVkZSAiSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCIKLQotI2lu
Y2x1ZGUgIkpTRE9NQmluZGluZy5oIgotI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25z
dHJ1Y3RhYmxlLmgiCi0jaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCi0jaW5jbHVkZSAiSlNET01F
eGNlcHRpb25IYW5kbGluZy5oIgotI2luY2x1ZGUgIkpTRE9NT3BlcmF0aW9uLmgiCi0jaW5jbHVk
ZSAiSlNET01XcmFwcGVyQ2FjaGUuaCIKLSNpbmNsdWRlIDxydW50aW1lL0Z1bmN0aW9uUHJvdG90
eXBlLmg+Ci0jaW5jbHVkZSA8d3RmL0dldFB0ci5oPgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwot
Ci1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLS8vIEZ1bmN0aW9ucwotCi1KU0M6OkVuY29kZWRKU1Zh
bHVlIEpTQ19IT1NUX0NBTEwganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bkFub3RoZXJGdW5jdGlvbihKU0M6OkV4ZWNTdGF0ZSopOwotCi0vLyBBdHRyaWJ1dGVzCi0KLUpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6
OkV4ZWNTdGF0ZSosIEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6UHJvcGVydHlOYW1lKTsKLWJv
b2wgc2V0SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihKU0M6OkV4ZWNTdGF0ZSos
IEpTQzo6RW5jb2RlZEpTVmFsdWUsIEpTQzo6RW5jb2RlZEpTVmFsdWUpOwotCi1jbGFzcyBKU1Rl
c3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSA6IHB1YmxpYyBKU0M6OkpTTm9uRmluYWxPYmpl
Y3QgewotcHVibGljOgotICAgIHVzaW5nIEJhc2UgPSBKU0M6OkpTTm9uRmluYWxPYmplY3Q7Ci0g
ICAgc3RhdGljIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKiBjcmVhdGUoSlNDOjpW
TSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6U3RydWN0dXJlKiBz
dHJ1Y3R1cmUpCi0gICAgewotICAgICAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlw
ZSogcHRyID0gbmV3IChOb3ROdWxsLCBKU0M6OmFsbG9jYXRlQ2VsbDxKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlclByb3RvdHlwZT4odm0uaGVhcCkpIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90
eXBlKHZtLCBnbG9iYWxPYmplY3QsIHN0cnVjdHVyZSk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3Jl
YXRpb24odm0pOwotICAgICAgICByZXR1cm4gcHRyOwotICAgIH0KLQotICAgIERFQ0xBUkVfSU5G
TzsKLSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVjdHVyZShKU0M6OlZNJiB2
bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6OkpTVmFsdWUgcHJvdG90
eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJlOjpjcmVhdGUodm0sIGds
b2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6T2JqZWN0VHlwZSwgU3Ry
dWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQotcHJpdmF0ZToKLSAgICBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlclByb3RvdHlwZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCos
IEpTQzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUpCi0gICAgICAgIDogSlNDOjpKU05vbkZpbmFsT2Jq
ZWN0KHZtLCBzdHJ1Y3R1cmUpCi0gICAgewotICAgIH0KLQotICAgIHZvaWQgZmluaXNoQ3JlYXRp
b24oSlNDOjpWTSYpOwotfTsKLQotdXNpbmcgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1
Y3RvciA9IEpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlPEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyPjsKLQotdGVtcGxhdGU8PiBKU1ZhbHVlIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29u
c3RydWN0b3I6OnByb3RvdHlwZUZvclN0cnVjdHVyZShKU0M6OlZNJiB2bSwgY29uc3QgSlNET01H
bG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBVTlVTRURfUEFSQU0odm0pOwotICAg
IHJldHVybiBnbG9iYWxPYmplY3QuZnVuY3Rpb25Qcm90b3R5cGUoKTsKLX0KLQotdGVtcGxhdGU8
PiB2b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3I6OmluaXRpYWxpemVQcm9w
ZXJ0aWVzKFZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVjdCkKLXsKLSAgICBw
dXREaXJlY3Qodm0sIHZtLnByb3BlcnR5TmFtZXMtPnByb3RvdHlwZSwgSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI6OnByb3RvdHlwZSh2bSwgZ2xvYmFsT2JqZWN0KSwgRG9udERlbGV0ZSB8IFJlYWRP
bmx5IHwgRG9udEVudW0pOwotICAgIHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+bmFt
ZSwganNOb250cml2aWFsU3RyaW5nKCZ2bSwgU3RyaW5nKEFTQ0lJTGl0ZXJhbCgiVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyIikpKSwgUmVhZE9ubHkgfCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZt
LCB2bS5wcm9wZXJ0eU5hbWVzLT5sZW5ndGgsIGpzTnVtYmVyKDApLCBSZWFkT25seSB8IERvbnRF
bnVtKTsKLX0KLQotdGVtcGxhdGU8PiBjb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXJDb25zdHJ1Y3Rvcjo6c19pbmZvID0geyAiVGVzdEN1c3RvbU5hbWVkR2V0dGVyIiwgJkJh
c2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RD
dXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKSB9OwotCi0vKiBIYXNoIHRhYmxlIGZvciBwcm90
b3R5cGUgKi8KLQotc3RhdGljIGNvbnN0IEhhc2hUYWJsZVZhbHVlIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyUHJvdG90eXBlVGFibGVWYWx1ZXNbXSA9Ci17Ci0gICAgeyAiY29uc3RydWN0b3IiLCBE
b250RW51bSwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19jYXN0PFByb3BlcnR5U2xv
dDo6R2V0VmFsdWVGdW5jPihqc1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKSwgKGlu
dHB0cl90KSBzdGF0aWNfY2FzdDxQdXRQcm9wZXJ0eVNsb3Q6OlB1dFZhbHVlRnVuYz4oc2V0SlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcikgfSB9LAotICAgIHsgImFub3RoZXJGdW5j
dGlvbiIsIEpTQzo6RnVuY3Rpb24sIE5vSW50cmluc2ljLCB7IChpbnRwdHJfdClzdGF0aWNfY2Fz
dDxOYXRpdmVGdW5jdGlvbj4oanNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bkFub3RoZXJGdW5jdGlvbiksIChpbnRwdHJfdCkgKDEpIH0gfSwKLX07Ci0KLWNvbnN0IENsYXNz
SW5mbyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6c19pbmZvID0geyAiVGVzdEN1
c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlIiwgJkJhc2U6OnNfaW5mbywgbnVsbHB0ciwgbnVsbHB0
ciwgQ1JFQVRFX01FVEhPRF9UQUJMRShKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSkg
fTsKLQotdm9pZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6ZmluaXNoQ3JlYXRp
b24oVk0mIHZtKQotewotICAgIEJhc2U6OmZpbmlzaENyZWF0aW9uKHZtKTsKLSAgICByZWlmeVN0
YXRpY1Byb3BlcnRpZXModm0sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlVGFibGVW
YWx1ZXMsICp0aGlzKTsKLX0KLQotY29uc3QgQ2xhc3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCAmQmFzZTo6c19pbmZvLCBu
dWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0
dGVyKSB9OwotCi1KU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6SlNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIoU3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3Qs
IFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYgaW1wbCkKLSAgICA6IEpTRE9NV3JhcHBlcjxU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KHN0cnVjdHVyZSwgZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKQotewotfQotCi12b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpmaW5pc2hDcmVhdGlv
bihWTSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIEFTU0VSVChp
bmhlcml0cyh2bSwgaW5mbygpKSk7Ci0KLX0KLQotSlNPYmplY3QqIEpTVGVzdEN1c3RvbU5hbWVk
R2V0dGVyOjpjcmVhdGVQcm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFs
T2JqZWN0KQotewotICAgIHJldHVybiBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZTo6
Y3JlYXRlKHZtLCAmZ2xvYmFsT2JqZWN0LCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlw
ZTo6Y3JlYXRlU3RydWN0dXJlKHZtLCAmZ2xvYmFsT2JqZWN0LCBnbG9iYWxPYmplY3Qub2JqZWN0
UHJvdG90eXBlKCkpKTsKLX0KLQotSlNPYmplY3QqIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpw
cm90b3R5cGUoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAg
IHJldHVybiBnZXRET01Qcm90b3R5cGU8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KHZtLCBnbG9i
YWxPYmplY3QpOwotfQotCi1KU1ZhbHVlIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRDb25z
dHJ1Y3RvcihWTSYgdm0sIGNvbnN0IEpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QpCi17Ci0g
ICAgcmV0dXJuIGdldERPTUNvbnN0cnVjdG9yPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3Ry
dWN0b3I+KHZtLCAqanNDYXN0PGNvbnN0IEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0
KSk7Ci19Ci0KLXZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmRlc3Ryb3koSlNDOjpKU0Nl
bGwqIGNlbGwpCi17Ci0gICAgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHRoaXNPYmplY3QgPSBz
dGF0aWNfY2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KGNlbGwpOwotICAgIHRoaXNPYmpl
Y3QtPkpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp+SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoKTsK
LX0KLQotYm9vbCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0T3duUHJvcGVydHlTbG90KEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5h
bWUsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0
PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlw
ZURpcmVjdCgpOwotICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+
KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVy
biBmYWxzZTsKLQotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYg
IXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIEpTVmFsdWUgdmFsdWU7Ci0gICAg
ICAgIGlmICh0aGlzT2JqZWN0LT5uYW1lR2V0dGVyKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
KSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFs
dWUpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0
dXJuIGZhbHNlOwotfQotCi1ib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2ln
bmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCi17Ci0gICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlz
T2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZTsK
LSAgICAgICAgaWYgKHRoaXNPYmplY3QtPm5hbWVHZXR0ZXIoc3RhdGUsIHByb3BlcnR5TmFtZSwg
dmFsdWUpKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5
LCB2YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAg
ICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0
ZSwgaW5kZXgsIHNsb3QpOwotfQotCi10ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlciogSURMT3BlcmF0aW9uPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPjo6Y2FzdChFeGVj
U3RhdGUmIHN0YXRlKQotewotICAgIHJldHVybiBqc0R5bmFtaWNEb3duY2FzdDxKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcio+KHN0YXRlLnZtKCksIHN0YXRlLnRoaXNWYWx1ZSgpKTsKLX0KLQotRW5j
b2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUq
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKLXsKLSAgICBW
TSYgdm0gPSBzdGF0ZS0+dm0oKTsKLSAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9X
X1NDT1BFKHZtKTsKLSAgICBhdXRvKiBwcm90b3R5cGUgPSBqc0R5bmFtaWNEb3duY2FzdDxKU1Rl
c3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZSo+KHZtLCBKU1ZhbHVlOjpkZWNvZGUodGhpc1Zh
bHVlKSk7Ci0gICAgaWYgKFVOTElLRUxZKCFwcm90b3R5cGUpKQotICAgICAgICByZXR1cm4gdGhy
b3dWTVR5cGVFcnJvcihzdGF0ZSwgdGhyb3dTY29wZSk7Ci0gICAgcmV0dXJuIEpTVmFsdWU6OmVu
Y29kZShKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6Z2V0Q29uc3RydWN0b3Ioc3RhdGUtPnZtKCks
IHByb3RvdHlwZS0+Z2xvYmFsT2JqZWN0KCkpKTsKLX0KLQotYm9vbCBzZXRKU1Rlc3RDdXN0b21O
YW1lZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRo
aXNWYWx1ZSwgRW5jb2RlZEpTVmFsdWUgZW5jb2RlZFZhbHVlKQotewotICAgIFZNJiB2bSA9IHN0
YXRlLT52bSgpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUodm0p
OwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlzVmFsdWUpKTsKLSAg
ICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpIHsKLSAgICAgICAgdGhyb3dWTVR5cGVFcnJvcihz
dGF0ZSwgdGhyb3dTY29wZSk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKLSAgICB9Ci0gICAgLy8g
U2hhZG93aW5nIGEgYnVpbHQtaW4gY29uc3RydWN0b3IKLSAgICByZXR1cm4gcHJvdG90eXBlLT5w
dXREaXJlY3Qoc3RhdGUtPnZtKCksIHN0YXRlLT5wcm9wZXJ0eU5hbWVzKCkuY29uc3RydWN0b3Is
IEpTVmFsdWU6OmRlY29kZShlbmNvZGVkVmFsdWUpKTsKLX0KLQotc3RhdGljIGlubGluZSBKU0M6
OkVuY29kZWRKU1ZhbHVlIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlRnVuY3Rpb25B
bm90aGVyRnVuY3Rpb25Cb2R5KEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgdHlwZW5hbWUgSURMT3Bl
cmF0aW9uPEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPjo6Q2xhc3NQYXJhbWV0ZXIgY2FzdGVkVGhp
cywgSlNDOjpUaHJvd1Njb3BlJiB0aHJvd1Njb3BlKQotewotICAgIFVOVVNFRF9QQVJBTShzdGF0
ZSk7Ci0gICAgVU5VU0VEX1BBUkFNKHRocm93U2NvcGUpOwotICAgIGF1dG8mIGltcGwgPSBjYXN0
ZWRUaGlzLT53cmFwcGVkKCk7Ci0gICAgaWYgKFVOTElLRUxZKHN0YXRlLT5hcmd1bWVudENvdW50
KCkgPCAxKSkKLSAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihzdGF0ZSwgdGhyb3dTY29wZSwg
Y3JlYXRlTm90RW5vdWdoQXJndW1lbnRzRXJyb3Ioc3RhdGUpKTsKLSAgICBhdXRvIHN0ciA9IGNv
bnZlcnQ8SURMRE9NU3RyaW5nPigqc3RhdGUsIHN0YXRlLT51bmNoZWNrZWRBcmd1bWVudCgwKSk7
Ci0gICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBlbmNvZGVkSlNWYWx1ZSgpKTsK
LSAgICBpbXBsLmFub3RoZXJGdW5jdGlvbihXVEZNb3ZlKHN0cikpOwotICAgIHJldHVybiBKU1Zh
bHVlOjplbmNvZGUoanNVbmRlZmluZWQoKSk7Ci19Ci0KLUVuY29kZWRKU1ZhbHVlIEpTQ19IT1NU
X0NBTEwganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlvbkFub3RoZXJGdW5j
dGlvbihFeGVjU3RhdGUqIHN0YXRlKQotewotICAgIHJldHVybiBJRExPcGVyYXRpb248SlNUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXI+OjpjYWxsPGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBl
RnVuY3Rpb25Bbm90aGVyRnVuY3Rpb25Cb2R5Pigqc3RhdGUsICJhbm90aGVyRnVuY3Rpb24iKTsK
LX0KLQotYm9vbCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyOjppc1JlYWNoYWJsZUZyb21P
cGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+IGhhbmRsZSwgdm9pZCosIFNsb3RW
aXNpdG9yJiB2aXNpdG9yKQotewotICAgIFVOVVNFRF9QQVJBTShoYW5kbGUpOwotICAgIFVOVVNF
RF9QQVJBTSh2aXNpdG9yKTsKLSAgICByZXR1cm4gZmFsc2U7Ci19Ci0KLXZvaWQgSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXJPd25lcjo6ZmluYWxpemUoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiBo
YW5kbGUsIHZvaWQqIGNvbnRleHQpCi17Ci0gICAgYXV0byoganNUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXIgPSBzdGF0aWNfY2FzdDxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcio+KGhhbmRsZS5zbG90KCkt
PmFzQ2VsbCgpKTsKLSAgICBhdXRvJiB3b3JsZCA9ICpzdGF0aWNfY2FzdDxET01XcmFwcGVyV29y
bGQqPihjb250ZXh0KTsKLSAgICB1bmNhY2hlV3JhcHBlcih3b3JsZCwgJmpzVGVzdEN1c3RvbU5h
bWVkR2V0dGVyLT53cmFwcGVkKCksIGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyKTsKLX0KLQotI2lm
IEVOQUJMRShCSU5ESU5HX0lOVEVHUklUWSkKLSNpZiBQTEFURk9STShXSU4pCi0jcHJhZ21hIHdh
cm5pbmcoZGlzYWJsZTogNDQ4MykKLWV4dGVybiAiQyIgeyBleHRlcm4gdm9pZCAoKmNvbnN0IF9f
aWRlbnRpZmllcigiPz9fN1Rlc3RDdXN0b21OYW1lZEdldHRlckBXZWJDb3JlQEA2QkAiKVtdKSgp
OyB9Ci0jZWxzZQotZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkKiBfWlRWTjdXZWJDb3JlMjFUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJFW107IH0KLSNlbmRpZgotI2VuZGlmCi0KLUpTQzo6SlNWYWx1ZSB0
b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqIGdsb2Jh
bE9iamVjdCwgUmVmPFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQotewotCi0jaWYgRU5B
QkxFKEJJTkRJTkdfSU5URUdSSVRZKQotICAgIHZvaWQqIGFjdHVhbFZUYWJsZVBvaW50ZXIgPSAq
KHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPihpbXBsLnB0cigpKSk7Ci0jaWYgUExBVEZPUk0oV0lO
KQotICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9IHJlaW50ZXJwcmV0X2Nhc3Q8dm9p
ZCo+KF9faWRlbnRpZmllcigiPz9fN1Rlc3RDdXN0b21OYW1lZEdldHRlckBXZWJDb3JlQEA2QkAi
KSk7Ci0jZWxzZQotICAgIHZvaWQqIGV4cGVjdGVkVlRhYmxlUG9pbnRlciA9ICZfWlRWTjdXZWJD
b3JlMjFUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJFWzJdOwotI2lmIENPTVBJTEVSKENMQU5HKQotICAg
IC8vIElmIHRoaXMgZmFpbHMgVGVzdEN1c3RvbU5hbWVkR2V0dGVyIGRvZXMgbm90IGhhdmUgYSB2
dGFibGUsIHNvIHlvdSBuZWVkIHRvIGFkZCB0aGUKLSAgICAvLyBJbXBsZW1lbnRhdGlvbkxhY2tz
VlRhYmxlIGF0dHJpYnV0ZSB0byB0aGUgaW50ZXJmYWNlIGRlZmluaXRpb24KLSAgICBzdGF0aWNf
YXNzZXJ0KF9faXNfcG9seW1vcnBoaWMoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKSwgIlRlc3RDdXN0
b21OYW1lZEdldHRlciBpcyBub3QgcG9seW1vcnBoaWMiKTsKLSNlbmRpZgotI2VuZGlmCi0gICAg
Ly8gSWYgeW91IGhpdCB0aGlzIGFzc2VydGlvbiB5b3UgZWl0aGVyIGhhdmUgYSB1c2UgYWZ0ZXIg
ZnJlZSBidWcsIG9yCi0gICAgLy8gVGVzdEN1c3RvbU5hbWVkR2V0dGVyIGhhcyBzdWJjbGFzc2Vz
LiBJZiBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgaGFzIHN1YmNsYXNzZXMgdGhhdCBnZXQgcGFzc2Vk
Ci0gICAgLy8gdG8gdG9KUygpIHdlIGN1cnJlbnRseSByZXF1aXJlIFRlc3RDdXN0b21OYW1lZEdl
dHRlciB5b3UgdG8gb3B0IG91dCBvZiBiaW5kaW5nIGhhcmRlbmluZwotICAgIC8vIGJ5IGFkZGlu
ZyB0aGUgU2tpcFZUYWJsZVZhbGlkYXRpb24gYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgSURM
IGRlZmluaXRpb24KLSAgICBSRUxFQVNFX0FTU0VSVChhY3R1YWxWVGFibGVQb2ludGVyID09IGV4
cGVjdGVkVlRhYmxlUG9pbnRlcik7Ci0jZW5kaWYKLSAgICByZXR1cm4gY3JlYXRlV3JhcHBlcjxU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBsKSk7Ci19Ci0K
LUpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmpl
Y3QqIGdsb2JhbE9iamVjdCwgVGVzdEN1c3RvbU5hbWVkR2V0dGVyJiBpbXBsKQotewotICAgIHJl
dHVybiB3cmFwKHN0YXRlLCBnbG9iYWxPYmplY3QsIGltcGwpOwotfQotCi1UZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXIqIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjp0b1dyYXBwZWQoSlNDOjpWTSYgdm0s
IEpTQzo6SlNWYWx1ZSB2YWx1ZSkKLXsKLSAgICBpZiAoYXV0byogd3JhcHBlciA9IGpzRHluYW1p
Y0Rvd25jYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4odm0sIHZhbHVlKSkKLSAgICAgICAg
cmV0dXJuICZ3cmFwcGVyLT53cmFwcGVkKCk7Ci0gICAgcmV0dXJuIG51bGxwdHI7Ci19Ci0KLX0K
ClByb3BlcnR5IGNoYW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46
ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLUxGClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVy
dHkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oCShyZXZpc2lvbiAyMTgw
NTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuaAkobm9uZXhpc3RlbnQpCkBAIC0xLDkwICswLDAgQEAKLS8qCi0gICAg
VGhpcyBmaWxlIGlzIHBhcnQgb2YgdGhlIFdlYktpdCBvcGVuIHNvdXJjZSBwcm9qZWN0LgotICAg
IFRoaXMgZmlsZSBoYXMgYmVlbiBnZW5lcmF0ZWQgYnkgZ2VuZXJhdGUtYmluZGluZ3MucGwuIERP
IE5PVCBNT0RJRlkhCi0KLSAgICBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNh
biByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCi0gICAgbW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBv
ZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMKLSAgICBMaWNlbnNlIGFzIHB1Ymxpc2hl
ZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKLSAgICB2ZXJzaW9uIDIg
b2YgdGhlIExpY2Vuc2UsIG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCi0K
LSAgICBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3aWxs
IGJlIHVzZWZ1bCwKLSAgICBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0
aGUgaW1wbGllZCB3YXJyYW50eSBvZgotICAgIE1FUkNIQU5UQUJJTElUWSBvciBGSVRORVNTIEZP
UiBBIFBBUlRJQ1VMQVIgUFVSUE9TRS4gIFNlZSB0aGUgR05VCi0gICAgTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCi0KLSAgICBZb3Ugc2hvdWxkIGhhdmUg
cmVjZWl2ZWQgYSBjb3B5IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNl
Ci0gICAgYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KLSAgICB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMu
LCA1MSBGcmFua2xpbiBTdHJlZXQsIEZpZnRoIEZsb29yLAotICAgIEJvc3RvbiwgTUEgMDIxMTAt
MTMwMSwgVVNBLgotKi8KLQotI3ByYWdtYSBvbmNlCi0KLSNpbmNsdWRlICJKU0RPTVdyYXBwZXIu
aCIKLSNpbmNsdWRlICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaCIKLSNpbmNsdWRlIDx3dGYvTmV2
ZXJEZXN0cm95ZWQuaD4KLQotbmFtZXNwYWNlIFdlYkNvcmUgewotCi1jbGFzcyBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlciA6IHB1YmxpYyBKU0RPTVdyYXBwZXI8VGVzdEN1c3RvbU5hbWVkR2V0dGVy
PiB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTRE9NV3JhcHBlcjxUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI+OwotICAgIHN0YXRpYyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogY3JlYXRlKEpT
Qzo6U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3Qs
IFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYgaW1wbCkKLSAgICB7Ci0gICAgICAgIEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxs
PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyPihnbG9iYWxPYmplY3QtPnZtKCkuaGVhcCkpIEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyKHN0cnVjdHVyZSwgKmdsb2JhbE9iamVjdCwgV1RGTW92ZShpbXBs
KSk7Ci0gICAgICAgIHB0ci0+ZmluaXNoQ3JlYXRpb24oZ2xvYmFsT2JqZWN0LT52bSgpKTsKLSAg
ICAgICAgcmV0dXJuIHB0cjsKLSAgICB9Ci0KLSAgICBzdGF0aWMgSlNDOjpKU09iamVjdCogY3Jl
YXRlUHJvdG90eXBlKEpTQzo6Vk0mLCBKU0RPTUdsb2JhbE9iamVjdCYpOwotICAgIHN0YXRpYyBK
U0M6OkpTT2JqZWN0KiBwcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7Ci0g
ICAgc3RhdGljIFRlc3RDdXN0b21OYW1lZEdldHRlciogdG9XcmFwcGVkKEpTQzo6Vk0mLCBKU0M6
OkpTVmFsdWUpOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdChKU0M6OkpTT2Jq
ZWN0KiwgSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpQcm9wZXJ0eVNs
b3QmKTsKLSAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIHVuc2lnbmVkIHByb3BlcnR5TmFtZSwgSlNDOjpQcm9w
ZXJ0eVNsb3QmKTsKLSAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpTQzo6SlNDZWxsKik7Ci0KLSAg
ICBERUNMQVJFX0lORk87Ci0KLSAgICBzdGF0aWMgSlNDOjpTdHJ1Y3R1cmUqIGNyZWF0ZVN0cnVj
dHVyZShKU0M6OlZNJiB2bSwgSlNDOjpKU0dsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU0M6
OkpTVmFsdWUgcHJvdG90eXBlKQotICAgIHsKLSAgICAgICAgcmV0dXJuIEpTQzo6U3RydWN0dXJl
OjpjcmVhdGUodm0sIGdsb2JhbE9iamVjdCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6
T2JqZWN0VHlwZSwgU3RydWN0dXJlRmxhZ3MpLCBpbmZvKCkpOwotICAgIH0KLQotICAgIHN0YXRp
YyBKU0M6OkpTVmFsdWUgZ2V0Q29uc3RydWN0b3IoSlNDOjpWTSYsIGNvbnN0IEpTQzo6SlNHbG9i
YWxPYmplY3QqKTsKLXB1YmxpYzoKLSAgICBzdGF0aWMgY29uc3QgdW5zaWduZWQgU3RydWN0dXJl
RmxhZ3MgPSBKU0M6OkdldE93blByb3BlcnR5U2xvdElzSW1wdXJlRm9yUHJvcGVydHlBYnNlbmNl
IHwgSlNDOjpJbnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3Ro
SXNOb3RaZXJvIHwgSlNDOjpPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNsb3QgfCBCYXNlOjpTdHJ1
Y3R1cmVGbGFnczsKLXByb3RlY3RlZDoKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcihKU0M6
OlN0cnVjdHVyZSosIEpTRE9NR2xvYmFsT2JqZWN0JiwgUmVmPFRlc3RDdXN0b21OYW1lZEdldHRl
cj4mJik7Ci0KLSAgICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mKTsKLSAgICBib29sIG5h
bWVHZXR0ZXIoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1ZhbHVl
Jik7Ci19OwotCi1jbGFzcyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlck93bmVyIDogcHVibGljIEpT
Qzo6V2Vha0hhbmRsZU93bmVyIHsKLXB1YmxpYzoKLSAgICB2aXJ0dWFsIGJvb2wgaXNSZWFjaGFi
bGVGcm9tT3BhcXVlUm9vdHMoSlNDOjpIYW5kbGU8SlNDOjpVbmtub3duPiwgdm9pZCogY29udGV4
dCwgSlNDOjpTbG90VmlzaXRvciYpOwotICAgIHZpcnR1YWwgdm9pZCBmaW5hbGl6ZShKU0M6Okhh
bmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250ZXh0KTsKLX07Ci0KLWlubGluZSBKU0M6Oldl
YWtIYW5kbGVPd25lciogd3JhcHBlck93bmVyKERPTVdyYXBwZXJXb3JsZCYsIFRlc3RDdXN0b21O
YW1lZEdldHRlciopCi17Ci0gICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyT3duZXI+IG93bmVyOwotICAgIHJldHVybiAmb3duZXIuZ2V0KCk7Ci19Ci0KLWlu
bGluZSB2b2lkKiB3cmFwcGVyS2V5KFRlc3RDdXN0b21OYW1lZEdldHRlciogd3JhcHBhYmxlT2Jq
ZWN0KQotewotICAgIHJldHVybiB3cmFwcGFibGVPYmplY3Q7Ci19Ci0KLUpTQzo6SlNWYWx1ZSB0
b0pTKEpTQzo6RXhlY1N0YXRlKiwgSlNET01HbG9iYWxPYmplY3QqLCBUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXImKTsKLWlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSogc3RhdGUs
IEpTRE9NR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIFRlc3RDdXN0b21OYW1lZEdldHRlciog
aW1wbCkgeyByZXR1cm4gaW1wbCA/IHRvSlMoc3RhdGUsIGdsb2JhbE9iamVjdCwgKmltcGwpIDog
SlNDOjpqc051bGwoKTsgfQotSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVj
U3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFJlZjxUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+JiYp
OwotaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTTmV3bHlDcmVhdGVkKEpTQzo6RXhlY1N0YXRlKiBz
dGF0ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgUmVmUHRyPFRlc3RDdXN0b21O
YW1lZEdldHRlcj4mJiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KU05ld2x5Q3JlYXRlZChzdGF0
ZSwgZ2xvYmFsT2JqZWN0LCBpbXBsLnJlbGVhc2VOb25OdWxsKCkpIDogSlNDOjpqc051bGwoKTsg
fQotCi10ZW1wbGF0ZTw+IHN0cnVjdCBKU0RPTVdyYXBwZXJDb252ZXJ0ZXJUcmFpdHM8VGVzdEN1
c3RvbU5hbWVkR2V0dGVyPiB7Ci0gICAgdXNpbmcgV3JhcHBlckNsYXNzID0gSlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXI7Ci0gICAgdXNpbmcgVG9XcmFwcGVkUmV0dXJuVHlwZSA9IFRlc3RDdXN0b21O
YW1lZEdldHRlcio7Ci19OwotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFu
Z2VzIG9uOiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIuaApfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTEg
KzAsMCAjIwotTEYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEV2ZW50VGFyZ2V0LmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0RXZlbnRUYXJnZXQuY3BwCShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNU
ZXN0RXZlbnRUYXJnZXQuaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKQEAgLTEzNCw0OCAr
MTM1LDY2IEBAIGJvb2wgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldE93blByb3BlcnR5U2wKIHsKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4ob2JqZWN0KTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAg
YXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChv
cHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1
ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElE
TEludGVyZmFjZTxOb2RlPj4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRo
aXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsK
LSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1
ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90
by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3Rh
dGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghb3B0
aW9uYWxJbmRleCAmJiB0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3Bl
cnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1l
KSk7Ci0gICAgICAgIGlmICghSURMSW50ZXJmYWNlPE5vZGU+Ojppc051bGxWYWx1ZShpdGVtKSkg
ewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJ
RExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBp
dGVtKSk7CisgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsK
KyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETEludGVyZmFjZTxOb2RlPj4o
KnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgUmVhZE9ubHksIHZhbHVlKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAg
ICB9CisgICAgICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAg
ICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMSW50ZXJmYWNlPE5vZGU+OworICAgIGF1dG8gZ2V0
dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4g
c3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+
IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0o
cHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICgh
R2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0
eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBl
OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zp
c2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUg
PSB0b0pTPElETEludGVyZmFjZTxOb2RlPj4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2Jq
ZWN0KCksIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7
CisgICAgfQorICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0RXZlbnRUYXJnZXQ6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEV2ZW50VGFyZ2V0Kj4ob2JqZWN0KTsKICAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VM
WShpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+
KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqZWN0LT53cmFwcGVk
KCkuaXRlbShpbmRleCkpKTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRF
WCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgp
KSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpz
dGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
aXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFk
T25seSwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3Rh
dGUsIGluZGV4LCBzbG90KTsKKyAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETElu
dGVyZmFjZTxOb2RlPjsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09i
amVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhp
c09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJl
c3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJl
c3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChh
dXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1
aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5j
dG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpz
dGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHku
dmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2
YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwor
ICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0
YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0RXZlbnRUYXJnZXQ6OmdldE93blBy
b3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlO
YW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihvYmplY3QpOwotICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50
OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUs
IGkpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6Omdl
dE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUp
OworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZXMsIG1vZGUpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RFdmVudFRhcmdl
dCogSURMT3BlcmF0aW9uPEpTVGVzdEV2ZW50VGFyZ2V0Pjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdl
bmVyYXRlSXNSZWFjaGFibGUuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlLmNwcAkocmV2aXNp
b24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05OSw3ICs5OSw3
IEBAIHZvaWQgSlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZVByb3RvdHlwZToKICAgICBCYXNlOjpm
aW5pc2hDcmVhdGlvbih2bSk7CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3RH
ZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKICAgICBpZiAo
IWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0
aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oImFTZWNyZXRBdHRyaWJ1dGUiKSwgc3RybGVuKCJhU2VjcmV0QXR0cmli
dXRlIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImFTZWNyZXRBdHRyaWJ1dGUi
KSwgc3RybGVuKCJhU2VjcmV0QXR0cmlidXRlIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVy
dHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZp
Z3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxP
YmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHJldmlzaW9u
IDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTM2LDM1
ICsxMzYsMzcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZQogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlO
YW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9w
dGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAw
LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShp
bmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJz
ZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0aGlz
T2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0
b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRl
eC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQotICAgIGlm
IChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKKyAgICBy
ZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBz
dGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmpl
Y3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsK
LSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkg
ewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICBy
ZXR1cm4gdHJ1ZTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsK
KyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Cisg
ICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09i
amVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhp
c09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93
blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2
b2lkIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHBy
b3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcio+KG9iamVjdCk7Ci0g
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291
bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdElu
ZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3Rh
dGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMTgwLDcgKzE4Miw3IEBAIGJvb2wgSlNUZXN0SW5k
ZXhlZFNldHRlck5vSWRlbnRpZmllcjo6cHUKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQog
Ci0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2
YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAog
Ym9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCeUluZGV4KEpTQ2VsbCog
Y2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJv
b2wgc2hvdWxkVGhyb3cpCkBAIC0xOTYsNyArMTk4LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyOjpwdQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBy
ZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRU
aHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRl
eCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyTm9J
ZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0
b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIxNiw3ICsyMTgs
NyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlCiAKICAgICBQcm9w
ZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9y
OwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAg
cmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1By
b3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2
aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTEzNiwzNSArMTM2LDM3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW8KIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNl
SW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbElu
ZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKLSAgICAgICAg
YXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1
dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4
LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAg
IGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFw
cGVkKCkuaXRlbShpbmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9
CiAgICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVy
biBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8IHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
aXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKExJS0VMWShpbmRl
eCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSk7Cisg
ICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAg
ICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3Rh
dGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb246OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9k
ZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlz
T2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBwcm9w
ZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7Ci0gICAgQmFzZTo6Z2V0
T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7
CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhj
ZXB0aW9uOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5
U2xvdCkKQEAgLTE4MCw3ICsxODIsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNl
OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5
U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhl
ZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhy
b3cpCkBAIC0xOTYsNyArMTk4LDcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpbwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6
cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNo
b3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRp
b246OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUs
IFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgcHJv
cGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjE2LDcgKzIxOCw3IEBAIGJv
b2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW8KIAogICAgIFByb3BlcnR5RGVz
Y3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAg
bmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4g
QmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQ
cm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRl
ZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlE
ZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVu
Y29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9uIDIx
ODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDIsMzUg
KzE0MiwzNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6CiB7CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50
aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5
TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwg
dGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBv
cHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
MCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0o
aW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFy
c2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0g
dG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5k
ZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2
YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQogICAgIH0KLSAgICBp
ZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+
KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZv
KCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAg
ICAgIHJldHVybiB0cnVlOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVY
KSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkp
IHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9
CiAKIHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9i
amVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZv
ciAodW5zaWduZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgp
OyBpIDwgY291bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6
ZnJvbShzdGF0ZSwgaSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29s
IEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwg
UHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0xODYsNyArMTg4LDcgQEAgYm9v
bCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OgogICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6
cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNs
b3QpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0QnlJ
bmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1Zh
bHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMjAyLDcgKzIwNCw3IEBAIGJvb2wgSlNU
ZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjoKICAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2
YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxs
LCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0SW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQ
cm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykK
QEAgLTIyMiw3ICsyMjQsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmll
cjo6CiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJv
cGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFi
bGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiB0ZW1w
bGF0ZTw+IGlubGluZSBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJh
dGlvbjxKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYg
c3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0SW50ZXJmYWNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcAkocmV2aXNpb24gMjE4MDU3KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEludGVyZmFjZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTQxNiw3ICs0MTYsNyBAQCBib29sIEpTVGVzdEludGVyZmFj
ZTo6cHV0KEpTQ2VsbCogY2VsbCwgCiAgICAgaWYgKHRoaXNPYmplY3QtPnB1dERlbGVnYXRlKHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QsIHB1dFJlc3VsdCkpCiAg
ICAgICAgIHJldHVybiBwdXRSZXN1bHQ7CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJl
dHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVl
LCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdEludGVyZmFjZTo6cHV0QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVl
IHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtNDI0LDEzICs0MjQsMTMgQEAgYm9vbCBKU1Rl
c3RJbnRlcmZhY2U6OnB1dEJ5SW5kZXgoSlNDZWxsKgogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0SW50ZXJmYWNlKj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHV0UHJvcGVydHlTbG90IHNs
b3QodGhpc09iamVjdCwgc2hvdWxkVGhyb3cpOwogICAgIGJvb2wgcHV0UmVzdWx0ID0gZmFsc2U7
CiAgICAgaWYgKHRoaXNPYmplY3QtPnB1dERlbGVnYXRlKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBzbG90LCBwdXRSZXN1bHQpKQogICAgICAgICByZXR1cm4gcHV0UmVzdWx0OwogCi0gICAg
cmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxk
VGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5k
ZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdElu
dGVyZmFjZSogSURMQXR0cmlidXRlPEpTVGVzdEludGVyZmFjZT46OmNhc3QoRXhlY1N0YXRlJiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRp
Zmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHJldmlz
aW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmgiCiAKKyNpbmNsdWRlICJKU0RPTUFi
c3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUg
IkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01Db252
ZXJ0LmgiCkBAIC0xMzYsNDggKzEzNyw2NiBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlck5vSWRlbnRpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5k
ZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYg
b3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7
Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOwot
ICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVl
IHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3Rv
LmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0
ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFvcHRp
b25hbEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVy
dHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3Jh
cHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
KTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAg
ICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIGl0ZW0pKTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlO
YW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9
Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJp
bmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8g
cHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6Oklt
cGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3Jh
cHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUp
KTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAg
ICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07Cisg
ICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFBy
b3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+
KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAg
ICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFt
ZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
MCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0
ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcio+
KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZv
KCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7CisgICAg
aWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAgIGlmIChpbmRl
eCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2
YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5p
dGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZh
bHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAgIHJldHVy
biBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRl
eCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7
CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJv
cGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxl
bWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBl
ZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsK
KyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAg
ICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7
IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAg
ICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3Bl
cnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpz
dGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAg
ICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQ
cm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwg
dmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRp
b25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3Vu
dCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kpCiAgICAg
ICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTsKICAgICBm
b3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQ
cm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZy
b21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1v
ZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6
cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBA
IC0yMDUsNyArMjI0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50
aQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4g
SlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0
UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lk
ZW50aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNp
Z25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIyMSw3ICsy
NDAsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpCiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhp
c09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9Owog
ICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7
CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+
Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkgewpAQCAtMjMyLDcg
KzI1MSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2Vs
bCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVj
dDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9
CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVP
d25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3Jp
cHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTI1Miw3ICsyNzEsNyBAQCBib29sIEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpCiAKICAgICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5
bWJvbCgpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVy
dHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwotICAgICAgICBpZiAoIUJh
c2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBz
bG90KSkgeworICAgICAgICBpZiAoIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGlmICghcHJv
cGVydHlEZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1
cm4gZmFsc2U7CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1ND
T1BFKHN0YXRlLT52bSgpKTsKQEAgLTI2NSw3ICsyODQsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5k
SW5kZXhlZFNldHRlck5vSWRlbnRpCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVy
dHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3Jp
cHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blBy
b3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9y
LCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxk
VGhyb3cpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlv
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2
aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgiCiAKKyNpbmNs
dWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5o
IgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVk
ZSAiSlNET01Db252ZXJ0LmgiCkBAIC0xMzYsNDggKzEzNyw2NiBAQCBib29sIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2Fz
dDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7
CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAg
IGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAo
b3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFs
dWUoKTsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0
cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0
cnVlOwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qo
KTsKLSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90bykt
Pmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7
Ci0KLSAgICBpZiAoIW9wdGlvbmFsSW5kZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0g
aW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0g
PSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFs
dWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFy
c2VJbmRleChwcm9wZXJ0eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0g
dG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5k
ZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2
YWx1ZSk7CiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHNsb3QpOwogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNpbmcgR2V0dGVySURM
VHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYg
dGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUg
R2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZh
bHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAg
IGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVy
cmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0
ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0K
KyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
clRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3Jh
cHBlZCgpLml0ZW0oaW5kZXgpKSk7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlf
SU5ERVgpKSB7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5n
dGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3Rh
dGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVl
OworICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdl
dHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10g
KGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5
cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRv
IHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0
b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjpp
c051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklE
TFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZy
b21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
fTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVy
dHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3Ry
aW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09i
amVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lk
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9w
ZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5n
RXhjZXB0aW9uKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGlu
Zm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFk
ZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5h
bWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAg
ICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9w
ZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlO
YW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6cHV0KEpTQ2VsbCogY2Vs
bCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2
YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0yMDUsNyArMjI0LDcg
QEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogICAgICAgICB9CiAg
ICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsK
IH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6
cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4
LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMjIxLDcgKzI0MCw3IEBAIGJv
b2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKICAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQ
cm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1
ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAo
IShwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0
eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMzIsNyArMjUxLDcgQEAg
Ym9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwg
aW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUlu
ZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBK
U1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVmaW5lT3duUHJv
cGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHBy
b3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3Is
IGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yNTIsNyArMjcxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFu
ZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogCiAgICAgaWYgKCFwcm9wZXJ0eU5hbWUuaXNTeW1ib2wo
KSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xv
dDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAgaWYgKCFCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkp
IHsKKyAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5
RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZh
bHNlOwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShz
dGF0ZS0+dm0oKSk7CkBAIC0yNjUsNyArMjg0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJUaHJvd2luZwogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVz
Y3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iu
c2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0
eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hv
dWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93
KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0
aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24g
MjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmgiCiAKKyNpbmNsdWRlICJKU0RPTUFi
c3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUg
IkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01Db252
ZXJ0LmgiCkBAIC0xNDQsNDggKzE0NSw2NiBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNl
dHRlcldpdGhJZGVuCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJ
bmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAm
JiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkp
IHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFs
dWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJv
dG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0
YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW9w
dGlvbmFsSW5kZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgaXRlbSkpOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0
eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgudmFsdWUoKSkpOwor
ICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAg
IH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0
cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0
byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisg
ICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25U
eXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVk
UHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpO
bz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgewor
ICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShu
YW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
c3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJ
RExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7
CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7CisgICAgICAgIGlm
IChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAg
YXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3Qs
IDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CisgICAgICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRl
LCBpbmRleCwgc2xvdCk7CisgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01T
dHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1
dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qu
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQor
ICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9u
VHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07
CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1l
ZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6
Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsK
KyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUo
bmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBz
bG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2Jq
ZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBF
bnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNpZ25lZCBp
ID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsg
KytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBp
KSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCku
c3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVu
dGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRP
d25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
KyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlO
YW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9w
ZXJ0eVNsb3QpCkBAIC0yMTMsNyArMjMyLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRT
ZXR0ZXJXaXRoSWRlbgogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
LCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4
ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0
ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93
KQpAQCAtMjI5LDcgKzI0OCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0
aElkZW4KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHJvcGVydHlT
bG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6
Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LT5nZXRQcm90
b3R5cGVEaXJlY3QoKTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBhc09iamVj
dChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkp
KSB7CkBAIC0yNDAsNyArMjU5LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6
cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNo
b3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBz
dGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9y
JiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yNjAsNyArMjc5LDcg
QEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogCiAgICAgaWYgKCFw
cm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewogICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRo
aXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsK
LSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAg
ICAgICAgICBpZiAoIXByb3BlcnR5RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAg
ICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0g
REVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yNzMsNyArMjkyLDcgQEAgYm9v
bCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbgogCiAgICAgUHJvcGVydHlEZXNj
cmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBu
ZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBC
YXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1By
b3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVm
aW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURl
c2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1l
ZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3Bw
CShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM1LDU0ICsxMzUsNTggQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6
OmdldAogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVy
Tm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlz
T2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExU
eXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0
aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBH
ZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQg
PSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJp
bmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFs
dWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJ
bXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFi
bGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAg
aWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJy
aWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRl
ckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0
YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwot
ICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAg
ICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1By
b3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAg
ICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUu
aXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAg
ICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAg
fQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5
U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVz
dE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRE
ZWxldGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNz
SW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
OwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9NU3Ry
aW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9
CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7
CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRl
ckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0
ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7
CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHBy
b3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdl
dHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlw
ZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6
ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6
bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNp
YmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVj
dCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0g
dG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkp
KTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwor
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5k
ZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6Z2V0
T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9w
ZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZp
ZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsK
ICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBw
b3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blBy
b3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAg
IEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6ZGVs
ZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lKQogewogICAgIGF1dG8mIHRoaXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllcio+KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4oKnN0
YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5hbWVk
UHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVy
dHlOYW1lKSkgewogICAgICAgICByZXR1cm4gaW1wbC5kZWxldGVOYW1lZFByb3BlcnR5KHByb3Bl
cnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6
ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIEpT
T2JqZWN0OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsKIH0KIAog
Ym9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmRlbGV0ZVByb3BlcnR5QnlJbmRl
eChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4KQpAQCAtMTkw
LDEwICsxOTQsMTAgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXI6OmRlbAog
ICAgIGF1dG8mIHRoaXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllcio+KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKICAg
ICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAg
ICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVC
dWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAg
ICByZXR1cm4gaW1wbC5kZWxldGVOYW1lZFByb3BlcnR5KHByb3BlcnR5TmFtZVRvU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eUJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHJldmlz
aW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEzNSw1MSArMTM1LDU1IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRp
b24KIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJ
RExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRv
JiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxs
VmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVs
bGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07Cisg
ICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92
ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdl
dHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwotICAgIEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsK
LSAgICBpZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhh
c1Byb3BlcnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0K
LSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5h
bWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVk
KCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwot
ICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAg
ICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAg
ICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQ
cm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlz
T2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhp
c09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0
ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0
b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShz
dGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7Cisg
ICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVy
dHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgp
Lm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAg
ICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAg
ICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdl
dHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5
ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0
ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAg
YXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9w
ZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9u
bHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xv
dCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVj
dCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJv
d2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRp
b25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhp
c09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1l
KSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRE
ZWxldGVyVGhyb3dpbmdFeGNlcHRpb246OmRlbGV0ZVByb3BlcnR5KEpTQ2VsbCogY2VsbCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSkKIHsKICAgICBhdXRvJiB0
aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+
KGNlbGwpOwogICAgIGF1dG8mIGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKLSAgICBpZiAo
aXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0
eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGlu
czo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBhdXRv
IHJlc3VsdCA9IGltcGwuZGVsZXRlTmFtZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKICAgICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewogICAg
ICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0o
KSk7CkBAIC0xODksNyArMTkzLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4
Y2VwdGlvbgogCiAgICAgICAgIHJldHVybiByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAg
ICAgfQotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVy
dHlOYW1lKTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRl
LCBwcm9wZXJ0eU5hbWUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhj
ZXB0aW9uOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBpbmRleCkKQEAgLTE5Nyw3ICsyMDEsNyBAQCBib29sIEpTVGVzdE5hbWVk
RGVsZXRlclRocm93aW5nRXhjZXB0aW9uCiAgICAgYXV0byYgdGhpc09iamVjdCA9ICpqc0Nhc3Q8
SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsKICAgICBhdXRvJiBp
bXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CiAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKGlzVmlzaWJsZU5hbWVkUHJvcGVy
dHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkgeworICAgIGlmIChp
c1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsIHRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgYXV0byByZXN1bHQgPSBpbXBsLmRlbGV0
ZU5hbWVkUHJvcGVydHkocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAg
ICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpIHsKICAgICAgICAgICAgIGF1dG8gdGhyb3dT
Y29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjA3LDcgKzIxMSw3
IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24KIAogICAgICAgICBy
ZXR1cm4gcmVzdWx0LnJlbGVhc2VSZXR1cm5WYWx1ZSgpOwogICAgIH0KLSAgICByZXR1cm4gQmFz
ZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7CisgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsKIH0K
IAogRW5jb2RlZEpTVmFsdWUganNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb25Db25z
dHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3Bl
cnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJ
ZGVudGlmaWVyLmNwcAkocmV2aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTQxLDU1ICsxNDEsNTkgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSWRlbnRpZmllcjo6ZwogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3du
UHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAg
IHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5j
dG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9w
dGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAg
ICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJ
RExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1l
IEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJh
Y3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxv
cHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5h
bWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHBy
b3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8
SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7Cisg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3Rv
dHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVj
dCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJl
dHVybiBmYWxzZTsKLQotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkg
JiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNP
YmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJv
cGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVt
KSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXI6OmdldE93blByb3Bl
cnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWdu
ZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0g
anNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBB
U1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAg
aWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0
ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWlj
U3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxs
VmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVh
ZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJl
dHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0
cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0
byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisg
ICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25U
eXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVk
UHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpO
bz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgewor
ICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShu
YW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0
dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGlu
ZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3Qs
IEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVt
ZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5h
bWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1l
ZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIGF1dG8mIHRo
aXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4oY2Vs
bCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwotICAgIGlmIChpc1Zp
c2libGVOYW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpO
bz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgIGltcGwubmFt
ZWREZWxldGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgICAgICBy
ZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGNlbGws
IHN0YXRlLCBwcm9wZXJ0eU5hbWUpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxl
dGVyV2l0aElkZW50aWZpZXI6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4KQpAQCAtMTk3LDExICsyMDEsMTEgQEAgYm9v
bCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6ZAogICAgIGF1dG8mIHRoaXNPYmpl
Y3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKj4oY2VsbCk7CiAg
ICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwogICAgIGF1dG8gcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmIChpc1Zpc2libGVO
YW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsK
KyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0
YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgIGltcGwubmFtZWREZWxl
dGVyKHByb3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxs
LCBzdGF0ZSwgaW5kZXgpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KGNlbGwsIHN0YXRlLCBpbmRleCk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyKiBJRExPcGVyYXRpb248SlNUZXN0TmFtZWREZWxldGVy
V2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4
ZWRHZXR0ZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHJldmlz
aW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTEzNyw0OCArMTM3LDY2IEBAIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0
ZXIKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRl
eChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgu
dmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRv
IGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgfQot
ICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUgcHJvdG8g
PSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJvdG8uaXNPYmpl
Y3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRlLCBwcm9w
ZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW9wdGlvbmFsSW5k
ZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUu
aXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAg
ICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIGl0ZW0pKTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlO
YW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKICAg
ICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURM
RE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0
LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExU
eXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0
KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0
KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8g
bmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRp
bnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3Ip
KSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZN
b3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNT
dGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGlu
ZGV4KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkgeworICAg
ICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAg
ICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0
LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlz
T2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5h
bWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURM
VHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYg
dGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUg
R2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZh
bHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAg
IGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVy
cmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0
ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09i
amVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lk
IEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyKj4ob2JqZWN0
KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Cisg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1
bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkg
PCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9t
KHN0YXRlLCBpKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVz
LmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBC
YXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVz
LCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRl
LCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRo
SW5kZXhlZEdldHRlcjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0
YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQpAQCAtMTg3LDEwICsyMDUsMTAgQEAgYm9v
bCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcgogICAgIGF1dG8mIGltcGwgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKTsKICAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJv
cGVydHlOYW1lKSkKICAgICAgICAgcmV0dXJuICFpbXBsLmlzU3VwcG9ydGVkUHJvcGVydHlJbmRl
eChpbmRleC52YWx1ZSgpKTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxmYWxzZT4o
KnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYgKGlzVmlzaWJsZU5h
bWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJv
cGVydHlOYW1lKSkgewogICAgICAgICByZXR1cm4gaW1wbC5kZWxldGVOYW1lZFByb3BlcnR5KHBy
b3BlcnR5TmFtZVRvU3RyaW5nKHByb3BlcnR5TmFtZSkpOwogICAgIH0KLSAgICByZXR1cm4gQmFz
ZTo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsKIH0K
IAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdldHRlcjo6ZGVsZXRlUHJvcGVy
dHlCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAJ
KHJldmlzaW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVz
dC9KUy9KU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1l
ZFNldHRlck5vSWRlbnRpZmllci5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlv
bnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTM0
LDQ0ICsxMzUsNDggQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0Twog
ewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJ
RExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmpl
Y3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklE
TFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNP
YmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1
bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1
bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0
byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWls
dGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rv
cikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdU
Rk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHBy
b3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlz
T2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwg
cHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmpl
Y3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsK
LSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9w
ZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExE
T01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAg
ICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlm
aWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0
byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcio+KG9i
amVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwg
aW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkpIHsKLSAg
ICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01T
dHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVu
dGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElE
TERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVj
dCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURM
VHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09i
amVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3Vs
dCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50
YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3Vs
dCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRv
IG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0
aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9y
KSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RG
TW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlz
T2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1
cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5k
ZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRl
eChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0
aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFt
ZWRTZXR0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5
TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwot
ICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFBy
b3BlcnR5U2xvdCkKQEAgLTE5MSw3ICsxOTYsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9J
ZGVudGlmaWVyOjpwdXQoCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3Qp
OworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVy
Tm9JZGVudGlmaWVyOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwg
dW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0xOTks
NyArMjA0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllcjo6cHV0QgogICAg
IGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXIq
PihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8o
KSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3Rh
dGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3Rh
dGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5
U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBKU1ZhbHVlIHByb3Rv
dHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlmICghKHByb3Rv
dHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdChz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIxMCw3ICsyMTUsNyBAQCBib29sIEpT
VGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCCiAgICAgICAgIHJldHVybiB0cnVlOwog
ICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwg
dmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2Vs
bCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9w
ZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAg
LTIyMCw3ICsyMjUsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZp
CiAKICAgICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CiAgICAgICAgIFByb3BlcnR5
U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6
OlZNSW5xdWlyeSB9OwotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlz
T2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICBpZiAoIUpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwg
c2xvdCkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlzRGF0YURlc2Ny
aXB0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBhdXRv
IHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTIzMyw3
ICsyMzgsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpkZWZpCiAKICAg
ICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNj
cmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7
Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJu
IEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNvZGVkSlNWYWx1
ZSBqc1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3Rh
dGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2
aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFt
ZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9w
ZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpA
QCAtMTM0LDQ0ICsxMzUsNDggQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0
aW9uOgogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
Uyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
dGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVy
SURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0
byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5h
bWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVz
dWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWlj
U3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVs
bFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlw
ZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51
bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9Owor
ICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxP
dmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBn
ZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IEpTVmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBp
ZiAocHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3Bl
cnR5KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBp
ZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNT
eW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFt
ZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAg
ICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRl
bSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCog
b2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBz
bG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJU
aHJvd2luZ0V4Y2VwdGlvbio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
Uyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0lu
Zm8oKSA9PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBl
ZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsK
LSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3Rh
dGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0
byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNp
bmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3Ig
PSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9u
YWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAg
IGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFt
ZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5
cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0
dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZh
bHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsK
KyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQ
cm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVy
dHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExE
T01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0
aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAK
IHZvaWQgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlO
YW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJh
eSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4ob2Jq
ZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7
CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9y
IChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJv
cGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5h
bWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2Rl
KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpwdXQoSlND
ZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBK
U1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTE5MSw3
ICsxOTYsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAgICAg
ICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVj
dDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0
eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnB1
dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwg
SlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTE5OSw3ICsyMDQsNyBAQCBib29s
IEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4oY2VsbCk7CiAg
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogCi0gICAg
SWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7
CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7
CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlz
T2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmpl
Y3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMTAsNyArMjE1LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uOgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAg
ICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91
bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBp
bmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlclRo
cm93aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVj
U3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURl
c2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTIyMCw3
ICsyMjUsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAKICAg
ICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBz
bG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5x
dWlyeSB9OwotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICBpZiAoIUpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkp
IHsKICAgICAgICAgICAgIGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3Io
KSkKICAgICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBhdXRvIHRocm93
U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTIzMyw3ICsyMzgs
NyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAKICAgICBQcm9w
ZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9y
OwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAg
cmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1By
b3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rl
c3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0
ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2Uv
V2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0
cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAy
MTgwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIx
LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNldHRlcldp
dGhJZGVudGlmaWVyLmgiCiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgog
I2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RD
b25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCkBAIC0xNDAsNDQgKzE0
MSw0OCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdlCiB7CiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
Kj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGlu
Zm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9N
U3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBh
dXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0
LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkK
KyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlv
blR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9
OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFt
ZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6
Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7
CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3Zl
KG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9
IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90by5pc09iamVj
dCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3Bl
cnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICh0aGlzT2JqZWN0LT5j
bGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAg
ICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlO
YW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3Ry
aW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlz
T2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
c3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byog
dGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyKj4ob2Jq
ZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7
Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBp
bmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAg
ICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5
TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0
cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURM
RE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0
LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExU
eXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2Jq
ZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVy
dHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0
KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRh
dGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0
KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8g
bmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRp
bnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3Ip
KSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZN
b3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVy
biBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRl
eCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhJZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNP
YmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3Bl
cnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkp
OwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFBy
b3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYg
cHV0UHJvcGVydHlTbG90KQpAQCAtMTk3LDcgKzIwMiw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoSWRlbnRpZmllcjo6cHUKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNl
OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5
U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
c3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpA
QCAtMjA1LDcgKzIxMCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6
cHUKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElk
ZW50aWZpZXIqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmpl
Y3QsIGluZm8oKSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3Qs
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBKU1Zh
bHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlm
ICghKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3Bl
cnR5U2xvdChzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIxNiw3ICsyMjEsNyBA
QCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OnB1CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRl
LCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2Jq
ZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3Vs
ZFRocm93KQpAQCAtMjI2LDcgKzIzMSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcjo6ZGUKIAogICAgIGlmICghcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKICAgICAg
ICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFs
TWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVy
dHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAg
IGlmICghSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eURlc2NyaXB0b3Iu
aXNEYXRhRGVzY3JpcHRvcigpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAg
ICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkp
OwpAQCAtMjM5LDcgKzI0NCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmll
cjo6ZGUKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBw
cm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3Vy
YWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJh
dGlvbjxKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0
YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMuY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhP
dmVycmlkZUJ1aWx0aW5zLmNwcAkocmV2aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29u
ZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5o
IgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJKU0RP
TUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJsZS5o
IgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTM0LDQwICsxMzUsNDggQEAgYm9vbCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aQogewogICAgIGF1dG8qIHRoaXNPYmpl
Y3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucyo+KG9iamVj
dCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwot
ICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFt
ZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0g
ICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRl
LCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAg
ICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7Cisg
ICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVy
dHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgp
Lm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAg
ICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAg
ICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdl
dHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAg
IHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5
ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6WWVzPigqc3Rh
dGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAg
IGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJv
cGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZh
bHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnM6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRl
QnVpbHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0g
aW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1l
ZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAg
IGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVt
KSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRl
cklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1
dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVu
YW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJl
c3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21p
Y1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051
bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5
cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21O
dWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsK
KyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8
T3ZlcnJpZGVCdWlsdGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmlu
Zz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAg
ICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmpl
Y3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9w
ZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBK
U1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBw
cm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnMqPihvYmpl
Y3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3Ig
KGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9w
ZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21T
dHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFt
ZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUp
OwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnM6OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMTgz
LDcgKzE5Miw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGkKICAg
ICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dCh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKKyAgICBy
ZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1
ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVy
cmlkZUJ1aWx0aW5zOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwg
dW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wpCkBAIC0xOTEsNyArMjAwLDcgQEAg
Ym9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aQogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucyo+KGNl
bGwpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsK
IAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwg
aW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwg
aW5kZXgpOwogICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUt
PnZtKCkpOwogICAgIGF1dG8gbmF0aXZlVmFsdWUgPSBjb252ZXJ0PElETERPTVN0cmluZz4oKnN0
YXRlLCB2YWx1ZSk7CiAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCB0cnVlKTsK
QEAgLTIxNiw3ICsyMjUsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVp
bHRpCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJv
cGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFi
bGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7Cisg
ICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiBFbmNv
ZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zQ29uc3RydWN0
b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5h
bWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAJKHJldmlzaW9uIDIxODA1NykKKysrIFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZv
cmdhYmxlUHJvcGVydGllcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNp
bmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdh
YmxlUHJvcGVydGllcy5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIK
ICNpbmNsdWRlICJKU0RPTUF0dHJpYnV0ZS5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgog
I2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCkBAIC0xNTgsNDQg
KzE1OSw0OCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiB7CiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdh
YmxlUHJvcGVydGllcyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0
aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhp
c09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURM
VHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYg
dGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUg
R2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0
ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3Ry
aW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZh
bHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxh
YmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAg
IGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVy
cmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0
ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRW
YWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIEpT
VmFsdWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAo
cHJvdG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5
KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAo
dGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1i
b2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJ
dGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBp
ZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkp
OwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJu
IGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xv
dCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmpl
Y3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3Bl
cnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkp
IHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4
KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0
dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4g
c3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+
IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0o
cHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICgh
R2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0
eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBl
OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zp
c2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUg
PSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUo
KSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBz
bG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGll
czo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRl
LCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUp
CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcGVydGllcyo+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhF
UklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
b2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVj
dC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlO
YW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0g
ICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3Rh
dGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5
U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMjE1LDcgKzIyMCw3IEBAIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3AKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVy
biBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFBy
b3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0
TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXM6OnB1dEJ5SW5kZXgoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9v
bCBzaG91bGRUaHJvdykKQEAgLTIyMyw3ICsyMjgsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVy
V2l0aFVuZm9yZ2FibGVQcm9wCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyo+KGNlbGwpOwogICAgIEFTU0VSVF9H
Q19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKIAotICAgIElkZW50aWZpZXIg
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFByb3Bl
cnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5
cGU6OlZNSW5xdWlyeSB9OwogICAgIEpTVmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVjdC0+Z2V0
UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgaWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNP
YmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKSkgewpAQCAtMjM0LDcgKzIzOSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5m
b3JnYWJsZVByb3AKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJh
c2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwor
ICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVl
LCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJs
ZVByb3BlcnRpZXM6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3Jp
cHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjUwLDcgKzI1
NSw3IEBAIHN0YXRpYyBib29sIGlzVW5mb3JnZWFibGVQcm9wZXJ0eU5hbWUoUHIKIAogICAgICAg
ICBpZiAoIWlzVW5mb3JnZWFibGVQcm9wZXJ0eU5hbWUocHJvcGVydHlOYW1lKSkgewogICAgICAg
ICAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVy
bmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgICAgICBpZiAoIUJhc2U6OmdldE93
blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewor
ICAgICAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICAgICAgaWYgKCFwcm9w
ZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKQogICAgICAgICAgICAgICAgICAgICBy
ZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9U
SFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yNjQsNyArMjY5LDcgQEAgc3RhdGljIGJvb2wg
aXNVbmZvcmdlYWJsZVByb3BlcnR5TmFtZShQcgogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5l
d1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0
eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZp
bmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVz
Y3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJv
cGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3Is
IHNob3VsZFRocm93KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqIElETEF0dHJpYnV0ZTxKU1Rlc3ROYW1lZFNldHRlcldp
dGhVbmZvcmdhYmxlUHJvcGVydGllcz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSwgRW5jb2RlZEpT
VmFsdWUgdGhpc1ZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJp
ZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5k
T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlzaW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxl
UHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2
ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zLmgiCiAKKyNpbmNs
dWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRl
LmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rv
ck5vdENvbnN0cnVjdGFibGUuaCIKQEAgLTE1OCw0MCArMTU5LDQ4IEBAIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3AKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVC
dWlsdGlucyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkg
JiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNP
YmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJv
cGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVt
KSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfQotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJ
RExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmpl
Y3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklE
TFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNP
YmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1
bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1
bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0
byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWls
dGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0
b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBX
VEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZh
bHNlOworICAgIH0KKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNp
Z25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVy
cmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRo
aXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygp
ID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAg
ICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwg
aXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBH
ZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtd
IChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0
eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0
byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9B
dG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6
aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJ
RExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVG
cm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAg
IH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3Bl
cnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlz
T2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZv
aWQgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1
aWx0aW5zOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSog
c3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUg
bW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVy
V2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyo+KG9iamVjdCk7Ci0g
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYg
cHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFt
ZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhz
dGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlz
T2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93
blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAK
IGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5h
bWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3Bl
cnR5U2xvdCkKQEAgLTIwNyw3ICsyMTYsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBC
YXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3Bl
cnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFt
ZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zOjpwdXRC
eUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpT
VmFsdWUgdmFsdWUsIGJvb2wpCkBAIC0yMTUsNyArMjI0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcAogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5z
Kj4oY2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZv
KCkpOwogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0
YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0
YXRlLCBpbmRleCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShz
dGF0ZS0+dm0oKSk7CiAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIHZhbHVlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRy
dWUpOwpAQCAtMjQ3LDcgKzI1Niw3IEBAIHN0YXRpYyBib29sIGlzVW5mb3JnZWFibGVQcm9wZXJ0
eU5hbWUoUHIKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3Ig
PSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZp
Z3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93
KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAK
IHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzQW5kT3ZlcnJpZGVCdWlsdGlucyogSURMQXR0cmlidXRlPEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucz46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlKQpJbmRleDogU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcAkocmV2
aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5vZGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNDMsMzkgKzE0MywzOSBAQCB2b2lk
IEpTVGVzdE5vZGVQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uCiAgICAgQmFzZTo6ZmluaXNoQ3Jl
YXRpb24odm0pOwogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0Tm9kZVByb3Rv
dHlwZVRhYmxlVmFsdWVzLCAqdGhpcyk7CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmpl
Y3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVD
b250ZXh0KCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVy
Ojpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxh
dGVTZWNyZXRSZXN1bHQiKSwgc3RybGVuKCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7CisgICAg
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50
ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IiksIHN0cmxl
bigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3Vy
YWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmpl
Y3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2Fz
dDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29u
dGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0
IExDaGFyKj4oImdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJnZXRTZWNyZXRCb29sZWFuIikp
OworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImdldFNlY3JldEJvb2xlYW4iKSwgc3Ry
bGVuKCJnZXRTZWNyZXRCb29sZWFuIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNpZiBFTkFCTEUoVEVTVF9G
RUFUVVJFKQogICAgIGlmICghKGpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVj
dCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSAmJiBSdW50
aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgp
KSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInRlc3RGZWF0dXJlR2V0
U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpKTsK
KyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xl
YW4iKSwgc3RybGVuKCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSk7CiAgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAg
fQogI2VuZGlmCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLmRvbUl0ZXJhdG9yRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlO
YW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3Qg
TENoYXIqPigiZW50cmllcyIpLCBzdHJsZW4oImVudHJpZXMiKSk7CisgICAgICAgIGF1dG8gcHJv
cGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8
Y29uc3QgTENoYXIqPigiZW50cmllcyIpLCBzdHJsZW4oImVudHJpZXMiKSk7CiAgICAgICAgIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9k
ZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5
KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAg
fQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21J
dGVyYXRvckVuYWJsZWQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImtleXMiKSwgc3RybGVuKCJrZXlzIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImtleXMiKSwgc3RybGVuKCJrZXlzIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIVJ1bnRpbWVF
bmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsK
LSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ2YWx1ZXMiKSwgc3RybGVuKCJ2
YWx1ZXMiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigidmFsdWVzIiksIHN0cmxl
bigidmFsdWVzIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAg
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhl
YygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVy
ZXM6OnNoYXJlZEZlYXR1cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKLSAgICAgICAgSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJmb3JFYWNoIiksIHN0cmxlbigiZm9yRWFjaCIpKTsK
KyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwg
cmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJmb3JFYWNoIiksIHN0cmxlbigiZm9yRWFj
aCIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6
RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVj
dDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJv
cGVydHlOYW1lKTsKICAgICB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAkocmV2aXNpb24gMjE4MDU3KQorKysg
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE9iai5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTE4NjcsNDEgKzE4NjcsNDEgQEAgdm9pZCBKU1Rlc3RPYmpQcm90b3R5
cGU6OmZpbmlzaENyZWF0aW9uKAogICAgIHJlaWZ5U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0
T2JqUHJvdG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJF
KQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0
RmVhdHVyZUVuYWJsZWQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4o
ImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKSwgc3RybGVuKCJlbmFibGVkQXRSdW50aW1lT3Bl
cmF0aW9uIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21T
dHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRp
bWVPcGVyYXRpb24iKSwgc3RybGVuKCJlbmFibGVkQXRSdW50aW1lT3BlcmF0aW9uIikpOwogICAg
ICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9w
ZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQ
cm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUp
OwogICAgIH0KICNlbmRpZgogICAgIGlmICghKHdvcmxkRm9yRE9NT2JqZWN0KHRoaXMpLnNvbWVX
b3JsZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZl
YXR1cmVFbmFibGVkKCkpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
ZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdoZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKSwgc3RybGVu
KCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpKTsKKyAg
ICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1
bnRpbWVGZWF0dXJlRW5hYmxlZCIpLCBzdHJsZW4oImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVu
UnVudGltZUZlYXR1cmVFbmFibGVkIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2Rl
U2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJs
ZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3Qo
KS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICAgICBpZiAoIXdvcmxkRm9y
RE9NT2JqZWN0KHRoaXMpLnNvbWVXb3JsZCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigid29ybGRTcGVjaWZpY01ldGhvZCIpLCBzdHJsZW4oIndvcmxkU3BlY2lmaWNN
ZXRob2QiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigid29ybGRTcGVjaWZpY01l
dGhvZCIpLCBzdHJsZW4oIndvcmxkU3BlY2lmaWNNZXRob2QiKSk7CiAgICAgICAgIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdu
b3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMs
IGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAg
IGlmICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRF
eGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgIElkZW50aWZp
ZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0
X2Nhc3Q8Y29uc3QgTENoYXIqPigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0IiksIHN0cmxlbigiY2Fs
Y3VsYXRlU2VjcmV0UmVzdWx0IikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNh
bGN1bGF0ZVNlY3JldFJlc3VsdCIpLCBzdHJsZW4oImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpKTsK
ICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlO
YW1lKTsKICAgICB9CiAgICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxP
YmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkpIHsK
LSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJnZXRTZWNyZXRCb29sZWFuIiks
IHN0cmxlbigiZ2V0U2VjcmV0Qm9vbGVhbiIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJnZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigiZ2V0U2VjcmV0Qm9vbGVhbiIpKTsKICAg
ICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJv
cGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRl
UHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1l
KTsKICAgICB9CiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIShqc0Nhc3Q8SlNE
T01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlwdEV4ZWN1dGlvbkNvbnRleHQo
KS0+aXNTZWN1cmVDb250ZXh0KCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVh
dHVyZXMoKS50ZXN0RmVhdHVyZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJ0ZXN0
RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVzdEZlYXR1cmVHZXRT
ZWNyZXRCb29sZWFuIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2Nv
cGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAg
ICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFs
RXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KICNlbmRpZgogI2lmIEVOQUJMRShURVNUX0ZF
QVRVUkUpCiAgICAgaWYgKCEoUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS50ZXN0RmVhdHVyZUVuYWJsZWQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLnRlc3RGZWF0dXJlMUVuYWJsZWQoKSkpIHsKLSAgICAgICAgSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiksIHN0cmxlbigiZW5h
YmxlZEF0UnVudGltZUF0dHJpYnV0ZSIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJlbmFibGVkQXRSdW50aW1lQXR0cmlidXRlIiksIHN0cmxlbigiZW5hYmxlZEF0UnVudGltZUF0
dHJpYnV0ZSIpKTsKICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZt
LCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBK
U09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMo
KSwgcHJvcGVydHlOYW1lKTsKICAgICB9CkBAIC0xOTEwLDE0ICsxOTEwLDE0IEBAIHZvaWQgSlNU
ZXN0T2JqUHJvdG90eXBlOjpmaW5pc2hDcmVhdGlvbigKICAgICBBU1NFUlQoIWNvbnRleHQgfHwg
Y29udGV4dC0+aXNEb2N1bWVudCgpKTsKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlm
ICghY29udGV4dCB8fCAhZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5zZXR0aW5ncygpLnRl
c3RTZXR0aW5nRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdP
cGVyYXRpb24iKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0
dGluZ09wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdPcGVyYXRpb24iKSk7CiAg
ICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdC5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7
CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1RfRkVBVFVSRSkKICAgICBpZiAoIWNvbnRl
eHQgfHwgIWRvd25jYXN0PERvY3VtZW50PigqY29udGV4dCkuc2V0dGluZ3MoKS50ZXN0U2V0dGlu
Z0VuYWJsZWQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJs
ZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRl
IikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmco
JnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRCeVNldHRpbmdBdHRy
aWJ1dGUiKSwgc3RybGVuKCJlbmFibGVkQnlTZXR0aW5nQXR0cmlidXRlIikpOwogICAgICAgICBW
TTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0
eSh0aGlzLCBnbG9iYWxPYmplY3QuZ2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0K
QEAgLTE5NzEsMzUgKzE5NzEsMzcgQEAgYm9vbCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5U2xv
dChKU09iagogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4ob2Jq
ZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7
Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAg
IGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRl
eC52YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0
b0pTPElETE51bGxhYmxlPElETERPTVN0cmluZz4+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLm51bGxhYmxlU3RyaW5nU3BlY2lhbE1ldGhvZChpbmRleCkpKTsKLSAgICAgICAgcmV0dXJu
IHRydWU7CisgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsK
KyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETE51bGxhYmxlPElETERPTVN0
cmluZz4+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLm51bGxhYmxlU3RyaW5nU3BlY2lh
bE1ldGhvZChpbmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQogICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RPYmo6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0
ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlz
T2JqZWN0ID0ganNDYXN0PEpTVGVzdE9iaio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpKSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oKnN0
YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKGlu
ZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1B
WF9BUlJBWV9JTkRFWCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExOdWxsYWJs
ZTxJRExET01TdHJpbmc+Pigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5udWxsYWJsZVN0
cmluZ1NwZWNpYWxNZXRob2QoaW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0K
IAogdm9pZCBKU1Rlc3RPYmo6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1l
cmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0
T2JqKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7
CiAgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCku
bGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVu
dGlmaWVyOjpmcm9tKHN0YXRlLCBpKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9
CiAKIHN0YXRpYyBpbmxpbmUgRW5jb2RlZEpTVmFsdWUgY2FsbEpTVGVzdE9iajEoRXhlY1N0YXRl
KiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHAJKHJldmlz
aW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE92ZXJyaWRlQnVpbHRpbnMu
aCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNE
T01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUu
aCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKQEAgLTE0MSw0MCArMTQyLDQ4IEBAIGJvb2wg
SlNUZXN0T3ZlcnJpZGVCdWlsdGluczo6Z2V0T3duUHJvcGUKIHsKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VS
VF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAodGhpc09i
amVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkg
ewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHBy
b3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlE
TEludGVyZmFjZTxOb2RlPjo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigq
c3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgaXRlbSkpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3Bl
cnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2lu
ZyBHZXR0ZXJJRExUeXBlID0gSURMSW50ZXJmYWNlPE5vZGU+OworICAgIGF1dG8gZ2V0dGVyRnVu
Y3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpv
cHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAg
ICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVy
SURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRy
YWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxs
b3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVO
YW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9K
UzxJRExJbnRlcmZhY2U8Tm9kZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgp
LCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVl
KHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAg
IHJldHVybiBmYWxzZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rl
c3RPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNs
b3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0
aW5zKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3Qs
IGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
KHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8o
KSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVt
KHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAo
IUlETEludGVyZmFjZTxOb2RlPjo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+
Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgaXRlbSkpOwotICAgICAgICAg
ICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURM
SW50ZXJmYWNlPE5vZGU+OworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlz
T2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0
ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUo
cmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBs
ZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
cmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYg
KGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRl
QnVpbHRpbnM6Olllcz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJG
dW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+
KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBXVEZNb3ZlKG5hbWVkUHJvcGVy
dHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5
LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3Qp
OworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3Qs
IHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0T3ZlcnJpZGVCdWlsdGluczo6
Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQ
cm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKj4o
b2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8o
KSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAg
Zm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVk
UHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09i
amVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBt
b2RlKTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0T3ZlcnJpZGVCdWlsdGlucyogSURM
T3BlcmF0aW9uPEpTVGVzdE92ZXJyaWRlQnVpbHRpbnM+OjpjYXN0KEV4ZWNTdGF0ZSYgc3RhdGUp
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uT3IuaAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uT3IuaAkocmV2aXNpb24gMjE4MDU3KQorKysgU291
cmNlL1dlYkNvcmUvZG9tL0V4Y2VwdGlvbk9yLmgJKHdvcmtpbmcgY29weSkKQEAgLTQwLDggKzQw
LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRXhjZXB0aW9uKCkgY29uc3Q7CiAgICAgY29uc3Qg
RXhjZXB0aW9uJiBleGNlcHRpb24oKSBjb25zdDsKICAgICBFeGNlcHRpb24mJiByZWxlYXNlRXhj
ZXB0aW9uKCk7CisgICAgY29uc3QgUmV0dXJuVHlwZSYgcmV0dXJuVmFsdWUoKSBjb25zdDsKICAg
ICBSZXR1cm5UeXBlJiYgcmVsZWFzZVJldHVyblZhbHVlKCk7Ci0KKyAgICAKIHByaXZhdGU6CiAg
ICAgRXhwZWN0ZWQ8UmV0dXJuVHlwZSwgRXhjZXB0aW9uPiBtX3ZhbHVlOwogfTsKQEAgLTU0LDgg
KzU1LDkgQEAgcHVibGljOgogICAgIGJvb2wgaGFzRXhjZXB0aW9uKCkgY29uc3Q7CiAgICAgY29u
c3QgRXhjZXB0aW9uJiBleGNlcHRpb24oKSBjb25zdDsKICAgICBFeGNlcHRpb24mJiByZWxlYXNl
RXhjZXB0aW9uKCk7CisgICAgY29uc3QgUmV0dXJuUmVmZXJlbmNlVHlwZSYgcmV0dXJuVmFsdWUo
KSBjb25zdDsKICAgICBSZXR1cm5SZWZlcmVuY2VUeXBlJiByZWxlYXNlUmV0dXJuVmFsdWUoKTsK
LQorICAgIAogcHJpdmF0ZToKICAgICBFeGNlcHRpb25PcjxSZXR1cm5SZWZlcmVuY2VUeXBlKj4g
bV92YWx1ZTsKIH07CkBAIC05NSwxNCArOTcsMTkgQEAgdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJu
VHlwZT4gaW5saW5lIGJvbwogICAgIHJldHVybiAhbV92YWx1ZS5oYXNWYWx1ZSgpOwogfQogCit0
ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUgY29uc3QgRXhjZXB0aW9uJiBFeGNl
cHRpb25PcjxSZXR1cm5UeXBlPjo6ZXhjZXB0aW9uKCkgY29uc3QKK3sKKyAgICByZXR1cm4gbV92
YWx1ZS5lcnJvcigpOworfQorCiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBpbmxpbmUg
RXhjZXB0aW9uJiYgRXhjZXB0aW9uT3I8UmV0dXJuVHlwZT46OnJlbGVhc2VFeGNlcHRpb24oKQog
ewogICAgIHJldHVybiBXVEZNb3ZlKG1fdmFsdWUuZXJyb3IoKSk7CiB9CiAKLXRlbXBsYXRlPHR5
cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBjb25zdCBFeGNlcHRpb24mIEV4Y2VwdGlvbk9yPFJl
dHVyblR5cGU+OjpleGNlcHRpb24oKSBjb25zdAordGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuVHlw
ZT4gaW5saW5lIGNvbnN0IFJldHVyblR5cGUmIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZXR1
cm5WYWx1ZSgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIG1fdmFsdWUuZXJyb3IoKTsKKyAgICByZXR1
cm4gbV92YWx1ZS52YWx1ZSgpOwogfQogCiB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5UeXBlPiBp
bmxpbmUgUmV0dXJuVHlwZSYmIEV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZWxlYXNlUmV0dXJu
VmFsdWUoKQpAQCAtMTM1LDYgKzE0MiwxMSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5SZWZl
cmVuY2VUeXBlPiBpCiAgICAgcmV0dXJuIG1fdmFsdWUucmVsZWFzZUV4Y2VwdGlvbigpOwogfQog
Cit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5SZWZlcmVuY2VUeXBlPiBpbmxpbmUgY29uc3QgUmV0
dXJuUmVmZXJlbmNlVHlwZSYgRXhjZXB0aW9uT3I8UmV0dXJuUmVmZXJlbmNlVHlwZSY+OjpyZXR1
cm5WYWx1ZSgpIGNvbnN0Cit7CisgICAgcmV0dXJuICptX3ZhbHVlLnJldHVyblZhbHVlKCk7Cit9
CisKIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblJlZmVyZW5jZVR5cGU+IGlubGluZSBSZXR1cm5S
ZWZlcmVuY2VUeXBlJiBFeGNlcHRpb25PcjxSZXR1cm5SZWZlcmVuY2VUeXBlJj46OnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpCiB7CiAgICAgcmV0dXJuICptX3ZhbHVlLnJlbGVhc2VSZXR1cm5WYWx1ZSgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmNwcAkocmV2aXNpb24gMjE4MDU3
KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC02NSwxMSArNjUsMTMgQEAKICNpbmNsdWRlICJGcmFtZVRyZWUuaCIKICNpbmNsdWRlICJG
cmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MQm9keUVsZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1M
Q29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIkhUTUxEb2N1bWVudFBhcnNlci5oIgogI2luY2x1ZGUg
IkhUTUxFbGVtZW50RmFjdG9yeS5oIgogI2luY2x1ZGUgIkhUTUxGcmFtZU93bmVyRWxlbWVudC5o
IgogI2luY2x1ZGUgIkhUTUxGcmFtZVNldEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSHRtbEVs
ZW1lbnQuaCIKKyNpbmNsdWRlICJIVE1MSUZyYW1lRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxO
YW1lcy5oIgogI2luY2x1ZGUgIkhhc2hUb29scy5oIgogI2luY2x1ZGUgIlNjcmlwdENvbnRyb2xs
ZXIuaCIKQEAgLTE3NCwxMiArMTc2LDE5IEBAIHZvaWQgSFRNTERvY3VtZW50OjpzZXRWbGlua0Nv
bG9yKGNvbnN0IFMKICAgICAgICAgYm9keUVsZW1lbnQtPnNldEF0dHJpYnV0ZVdpdGhvdXRTeW5j
aHJvbml6YXRpb24odmxpbmtBdHRyLCB2YWx1ZSk7CiB9CiAKK3ZvaWQgSFRNTERvY3VtZW50Ojpj
bGVhcigpCit7CisgICAgLy8gUGVyIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlw
YWdlL29ic29sZXRlLmh0bWwjZG9tLWRvY3VtZW50LWNsZWFyLCB0aGlzIG1ldGhvZCBkb2VzIG5v
dGhpbmcuCit9CisKIHZvaWQgSFRNTERvY3VtZW50OjpjYXB0dXJlRXZlbnRzKCkKIHsKKyAgICAv
LyBQZXIgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xldGUuaHRt
bCNkb20tZG9jdW1lbnQtY2FwdHVyZWV2ZW50cywgdGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLgog
fQogCiB2b2lkIEhUTUxEb2N1bWVudDo6cmVsZWFzZUV2ZW50cygpCiB7CisgICAgLy8gUGVyIGh0
dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL29ic29sZXRlLmh0bWwjZG9tLWRv
Y3VtZW50LXJlbGVhc2VldmVudHMsIHRoaXMgbWV0aG9kIGRvZXMgbm90aGluZy4KIH0KIAogUmVm
PERvY3VtZW50UGFyc2VyPiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZVBhcnNlcigpCkBAIC0xODcsMTAg
KzE5Niw2IEBAIFJlZjxEb2N1bWVudFBhcnNlcj4gSFRNTERvY3VtZW50OjpjcmVhdGUKICAgICBy
ZXR1cm4gSFRNTERvY3VtZW50UGFyc2VyOjpjcmVhdGUoKnRoaXMpOwogfQogCi0vLyAtLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLQotLy8gbm90IHBhcnQgb2YgdGhlIERPTQotLy8gLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0K
LQogc3RhdGljIHZvaWQgYWRkTG9jYWxOYW1lVG9TZXQoSGFzaFNldDxBdG9taWNTdHJpbmdJbXBs
Kj4qIHNldCwgY29uc3QgUXVhbGlmaWVkTmFtZSYgcU5hbWUpCiB7CiAgICAgc2V0LT5hZGQocU5h
bWUubG9jYWxOYW1lKCkuaW1wbCgpKTsKQEAgLTI1MSw2ICsyNTYsNDcgQEAgc3RhdGljIEhhc2hT
ZXQ8QXRvbWljU3RyaW5nSW1wbCo+KiBjcmVhdAogICAgIHJldHVybiBhdHRyU2V0OwogfQogCisv
LyBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9kb20uaHRtbCNkb20tZG9j
dW1lbnQtbmFtZWRpdGVtCitzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8UmVmUHRyPEZyYW1lPiwgUmVm
UHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gSFRNTERvY3VtZW50OjpuYW1l
ZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lLmlzTnVsbCgp
IHx8ICFoYXNEb2N1bWVudE5hbWVkSXRlbSgqbmFtZS5pbXBsKCkpKQorICAgICAgICByZXR1cm4g
c3RkOjpudWxsb3B0OworCisgICAgaWYgKFVOTElLRUxZKGRvY3VtZW50TmFtZWRJdGVtQ29udGFp
bnNNdWx0aXBsZUVsZW1lbnRzKCpuYW1lLmltcGwoKSkpKSB7CisgICAgICAgIGF1dG8gY29sbGVj
dGlvbiA9IGRvY3VtZW50TmFtZWRJdGVtcyhuYW1lKTsKKyAgICAgICAgQVNTRVJUKGNvbGxlY3Rp
b24tPmxlbmd0aCgpID4gMSk7CisgICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxGcmFtZT4s
IFJlZlB0cjxFbGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8SFRNTENv
bGxlY3Rpb24+IHsgV1RGTW92ZShjb2xsZWN0aW9uKSB9IH07CisgICAgfQorCisgICAgYXV0byYg
ZWxlbWVudCA9ICpkb2N1bWVudE5hbWVkSXRlbSgqbmFtZS5pbXBsKCkpOworICAgIGlmIChVTkxJ
S0VMWShpczxIVE1MSUZyYW1lRWxlbWVudD4oZWxlbWVudCkpKSB7CisgICAgICAgIGlmIChhdXRv
KiBmcmFtZSA9IGRvd25jYXN0PEhUTUxJRnJhbWVFbGVtZW50PihlbGVtZW50KS5jb250ZW50RnJh
bWUoKSkKKyAgICAgICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxF
bGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8RnJhbWU+IHsgZnJhbWUg
fSB9OworICAgIH0KKworICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxGcmFtZT4sIFJlZlB0cjxF
bGVtZW50PiwgUmVmUHRyPEhUTUxDb2xsZWN0aW9uPj4geyBSZWZQdHI8RWxlbWVudD4geyAmZWxl
bWVudCB9IH07Cit9CisKK1ZlY3RvcjxBdG9taWNTdHJpbmc+IEhUTUxEb2N1bWVudDo6c3VwcG9y
dGVkUHJvcGVydHlOYW1lcygpIGNvbnN0Cit7CisgICAgLy8gaHR0cHM6Ly9odG1sLnNwZWMud2hh
dHdnLm9yZy9tdWx0aXBhZ2UvZG9tLmh0bWwjZG9tLWRvY3VtZW50LW5hbWVkSXRlbS13aGljaAor
ICAgIC8vCisgICAgLy8gLi4uIFRoZSBzdXBwb3J0ZWQgcHJvcGVydHkgbmFtZXMgb2YgYSBEb2N1
bWVudCBvYmplY3QgZG9jdW1lbnQgYXQgYW55IG1vbWVudCBjb25zaXN0IG9mIHRoZSBmb2xsb3dp
bmcsIGluCisgICAgLy8gdHJlZSBvcmRlciBhY2NvcmRpbmcgdG8gdGhlIGVsZW1lbnQgdGhhdCBj
b250cmlidXRlZCB0aGVtLCBpZ25vcmluZyBsYXRlciBkdXBsaWNhdGVzLCBhbmQgd2l0aCB2YWx1
ZXMgZnJvbQorICAgIC8vIGlkIGF0dHJpYnV0ZXMgY29taW5nIGJlZm9yZSB2YWx1ZXMgZnJvbSBu
YW1lIGF0dHJpYnV0ZXMgd2hlbiB0aGUgc2FtZSBlbGVtZW50IGNvbnRyaWJ1dGVzIGJvdGg6Cisg
ICAgLy8KKyAgICAvLyAtIHRoZSB2YWx1ZSBvZiB0aGUgbmFtZSBjb250ZW50IGF0dHJpYnV0ZSBm
b3IgYWxsIGFwcGxldCwgZXhwb3NlZCBlbWJlZCwgZm9ybSwgaWZyYW1lLCBpbWcsIGFuZCBleHBv
c2VkCisgICAgLy8gICBvYmplY3QgZWxlbWVudHMgdGhhdCBoYXZlIGEgbm9uLWVtcHR5IG5hbWUg
Y29udGVudCBhdHRyaWJ1dGUgYW5kIGFyZSBpbiBhIGRvY3VtZW50IHRyZWUgd2l0aCBkb2N1bWVu
dAorICAgIC8vICAgYXMgdGhlaXIgcm9vdDsKKyAgICAvLyAtIHRoZSB2YWx1ZSBvZiB0aGUgaWQg
Y29udGVudCBhdHRyaWJ1dGUgZm9yIGFsbCBhcHBsZXQgYW5kIGV4cG9zZWQgb2JqZWN0IGVsZW1l
bnRzIHRoYXQgaGF2ZSBhIG5vbi1lbXB0eQorICAgIC8vICAgaWQgY29udGVudCBhdHRyaWJ1dGUg
YW5kIGFyZSBpbiBhIGRvY3VtZW50IHRyZWUgd2l0aCBkb2N1bWVudCBhcyB0aGVpciByb290OyBh
bmQKKyAgICAvLyAtIHRoZSB2YWx1ZSBvZiB0aGUgaWQgY29udGVudCBhdHRyaWJ1dGUgZm9yIGFs
bCBpbWcgZWxlbWVudHMgdGhhdCBoYXZlIGJvdGggYSBub24tZW1wdHkgaWQgY29udGVudCBhdHRy
aWJ1dGUKKyAgICAvLyAgIGFuZCBhIG5vbi1lbXB0eSBuYW1lIGNvbnRlbnQgYXR0cmlidXRlLCBh
bmQgYXJlIGluIGEgZG9jdW1lbnQgdHJlZSB3aXRoIGRvY3VtZW50IGFzIHRoZWlyIHJvb3QuCisK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50LgorICAgIHJldHVybiB7IH07Cit9CisKIHZvaWQgSFRN
TERvY3VtZW50OjphZGREb2N1bWVudE5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmdJbXBsJiBu
YW1lLCBFbGVtZW50JiBpdGVtKQogewogICAgIG1fZG9jdW1lbnROYW1lZEl0ZW0uYWRkKG5hbWUs
IGl0ZW0sICp0aGlzKTsKQEAgLTI3OSwxMyArMzI1LDYgQEAgYm9vbCBIVE1MRG9jdW1lbnQ6Omlz
Q2FzZVNlbnNpdGl2ZUF0dHJpYgogICAgIHJldHVybiAhaXNQb3NzaWJsZUhUTUxBdHRyIHx8ICFo
dG1sQ2FzZUluc2Vuc2l0aXZlQXR0cmlidXRlc1NldC0+Y29udGFpbnMoYXR0cmlidXRlTmFtZS5s
b2NhbE5hbWUoKS5pbXBsKCkpOwogfQogCi12b2lkIEhUTUxEb2N1bWVudDo6Y2xlYXIoKQotewot
ICAgIC8vIEZJWE1FOiBUaGlzIGRvZXMgbm90aGluZywgYW5kIHRoYXQgc2VlbXMgdW5saWtlbHkg
dG8gYmUgY29ycmVjdC4KLSAgICAvLyBXZSd2ZSBsb25nIGhhZCBhIGNvbW1lbnQgc2F5aW5nIHRo
YXQgSUUgZG9lc24ndCBzdXBwb3J0IHRoaXMuCi0gICAgLy8gQnV0IEkgZG8gc2VlIGl0IGluIHRo
ZSBkb2N1bWVudGF0aW9uIGZvciBNb3ppbGxhLgotfQotCiBib29sIEhUTUxEb2N1bWVudDo6aXNG
cmFtZVNldCgpIGNvbnN0CiB7CiAgICAgaWYgKCFkb2N1bWVudEVsZW1lbnQoKSkKSW5kZXg6IFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAkocmV2aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dl
YkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNTMsMTEgKzUzLDEz
IEBAIHB1YmxpYzoKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldExpbmtDb2xvcihjb25zdCBT
dHJpbmcmKTsKICAgICBXRUJDT1JFX0VYUE9SVCBjb25zdCBBdG9taWNTdHJpbmcmIHZsaW5rQ29s
b3IoKSBjb25zdDsKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFZsaW5rQ29sb3IoY29uc3Qg
U3RyaW5nJik7Ci0KKyAgICAKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNsZWFyKCk7Ci0KICAg
ICBXRUJDT1JFX0VYUE9SVCB2b2lkIGNhcHR1cmVFdmVudHMoKTsKICAgICBXRUJDT1JFX0VYUE9S
VCB2b2lkIHJlbGVhc2VFdmVudHMoKTsKKyAgICAKKyAgICBzdGQ6Om9wdGlvbmFsPFZhcmlhbnQ8
UmVmUHRyPEZyYW1lPiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4g
bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpOworICAgIFZlY3RvcjxBdG9taWNTdHJpbmc+
IHN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdDsKIAogICAgIEVsZW1lbnQqIGRvY3VtZW50
TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZ0ltcGwmIG5hbWUpIGNvbnN0IHsgcmV0dXJuIG1f
ZG9jdW1lbnROYW1lZEl0ZW0uZ2V0RWxlbWVudEJ5RG9jdW1lbnROYW1lZEl0ZW0obmFtZSwgKnRo
aXMpOyB9CiAgICAgYm9vbCBoYXNEb2N1bWVudE5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmdJ
bXBsJiBuYW1lKSBjb25zdCB7IHJldHVybiBtX2RvY3VtZW50TmFtZWRJdGVtLmNvbnRhaW5zKG5h
bWUpOyB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuaWRsCShyZXZpc2lvbiAy
MTgwNTcpCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJKHdvcmtpbmcg
Y29weSkKQEAgLTIwLDcgKzIwLDYgQEAKIAogWwogICAgIEN1c3RvbUdldE93blByb3BlcnR5U2xv
dCwKLSAgICBDdXN0b21OYW1lZEdldHRlciwKICAgICBDdXN0b21Ub0pTT2JqZWN0LAogICAgIE5l
d0ltcHVyZVByb3BlcnR5RmlyZXNXYXRjaHBvaW50cywKICAgICBPdmVycmlkZUJ1aWx0aW5zLApA
QCAtMjksMTEgKzI4LDEyIEBACiAgICAgdm9pZCBjbG9zZSgpOwogICAgIFtDRVJlYWN0aW9ucywg
Q3VzdG9tXSB2b2lkIHdyaXRlKG9wdGlvbmFsIERPTVN0cmluZyB0ZXh0KTsKICAgICBbQ0VSZWFj
dGlvbnMsIEN1c3RvbV0gdm9pZCB3cml0ZWxuKG9wdGlvbmFsIERPTVN0cmluZyB0ZXh0KTsKLQor
ICAgIAorICAgIGdldHRlciAoRE9NV2luZG93U2hlbGwgb3IgRWxlbWVudCBvciBIVE1MQ29sbGVj
dGlvbikgKERPTVN0cmluZyBuYW1lKTsKKyAgICAKICAgICBbQ3VzdG9tLCBSZXBsYWNlYWJsZV0g
cmVhZG9ubHkgYXR0cmlidXRlIEhUTUxBbGxDb2xsZWN0aW9uIGFsbDsKIAogICAgIHZvaWQgY2xl
YXIoKTsKLQogICAgIHZvaWQgY2FwdHVyZUV2ZW50cygpOwogICAgIHZvaWQgcmVsZWFzZUV2ZW50
cygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5j
cHAJKHJldmlzaW9uIDIxODA1NykKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0
RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJG
cmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZyYW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRl
ICJIVE1MRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAi
TGVuZ3RoLmgiCiAjaW5jbHVkZSAiTW91c2VFdmVudC5oIgpAQCAtMjI2LDQgKzIyOCwyNCBAQCB2
b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnJlbW92ZWRGcm9tKENvCiAgICAgfQogfQogCitGcmFt
ZSogSFRNTEZyYW1lU2V0RWxlbWVudDo6bmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYgbmFt
ZSkKK3sKKyAgICBhdXRvKiBmcmFtZUVsZW1lbnQgPSBjaGlsZHJlbigpLT5uYW1lZEl0ZW0obmFt
ZSk7CisgICAgaWYgKCFpczxIVE1MRnJhbWVFbGVtZW50PihmcmFtZUVsZW1lbnQpKQorICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKKworICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PEhU
TUxGcmFtZUVsZW1lbnQ+KCpmcmFtZUVsZW1lbnQpLmNvbnRlbnREb2N1bWVudCgpKSB7CisgICAg
ICAgIGlmIChhdXRvKiBmcmFtZSA9IGRvY3VtZW50LT5mcmFtZSgpKQorICAgICAgICAgICAgcmV0
dXJuIGZyYW1lOworICAgIH0KKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworVmVjdG9yPEF0b21p
Y1N0cmluZz4gSFRNTEZyYW1lU2V0RWxlbWVudDo6c3VwcG9ydGVkUHJvcGVydHlOYW1lcygpIGNv
bnN0Cit7CisgICAgLy8gTk9URTogTGVmdCBlbXB0eSBhcyBubyBzcGVjaWZpY2F0aW9uIGRlZmlu
ZXMgdGhpcyBuYW1lZCBnZXR0ZXIgYW5kIHdlCisgICAgLy8gICAgICAgaGF2ZSBub3QgaGlzdG9y
aWNhbGx5IGV4cG9zZWQgdGhlc2UgbmFtZWQgaXRlbXMgZm9yIGVudW1lcmF0aW9uLgorICAgIHJl
dHVybiB7IH07Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5oCShyZXZpc2lvbiAyMTgwNTcpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAt
NDUsNiArNDUsOSBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3RoKiBjb2xMZW5ndGhzKCkgY29u
c3QgeyByZXR1cm4gbV9jb2xMZW5ndGhzLmdldCgpOyB9CiAKICAgICBzdGF0aWMgSFRNTEZyYW1l
U2V0RWxlbWVudCogZmluZENvbnRhaW5pbmcoRWxlbWVudCogZGVzY2VuZGFudCk7CisgICAgCisg
ICAgVmVjdG9yPEF0b21pY1N0cmluZz4gc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0Owor
ICAgIEZyYW1lKiBuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJik7CiAKIHByaXZhdGU6CiAg
ICAgSFRNTEZyYW1lU2V0RWxlbWVudChjb25zdCBRdWFsaWZpZWROYW1lJiwgRG9jdW1lbnQmKTsK
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbAkocmV2
aXNpb24gMjE4MDU3KQorKysgU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50
LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTgsOSArMTgsNyBAQAogICogQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCiAgKi8KIAotWwotICAgIEN1c3RvbU5hbWVkR2V0dGVyCi1dIGludGVyZmFj
ZSBIVE1MRnJhbWVTZXRFbGVtZW50IDogSFRNTEVsZW1lbnQgeworaW50ZXJmYWNlIEhUTUxGcmFt
ZVNldEVsZW1lbnQgOiBIVE1MRWxlbWVudCB7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01T
dHJpbmcgY29sczsKICAgICBbUmVmbGVjdF0gYXR0cmlidXRlIERPTVN0cmluZyByb3dzOwogCkBA
IC0zNyw2ICszNSwxMCBAQAogICAgIFtOb3RFbnVtZXJhYmxlLCBXaW5kb3dFdmVudEhhbmRsZXIs
IENvbmRpdGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBhdHRyaWJ1dGUgRXZlbnRIYW5k
bGVyIG9ud2Via2l0d2lsbHJldmVhbGxlZnQ7CiAgICAgW05vdEVudW1lcmFibGUsIFdpbmRvd0V2
ZW50SGFuZGxlciwgQ29uZGl0aW9uYWw9V0lMTF9SRVZFQUxfRURHRV9FVkVOVFNdIGF0dHJpYnV0
ZSBFdmVudEhhbmRsZXIgb253ZWJraXR3aWxscmV2ZWFscmlnaHQ7CiAgICAgW05vdEVudW1lcmFi
bGUsIFdpbmRvd0V2ZW50SGFuZGxlciwgQ29uZGl0aW9uYWw9V0lMTF9SRVZFQUxfRURHRV9FVkVO
VFNdIGF0dHJpYnV0ZSBFdmVudEhhbmRsZXIgb253ZWJraXR3aWxscmV2ZWFsdG9wOworICAgIAor
ICAgIC8vIE5vbi1zdGFuZGFyZCBuYW1lZCBnZXR0ZXIKKyAgICAvLyBGSVhNRTogVGhpcyBpcyBu
b3QgaW4gdGhlIHN0YW5kYXJkLCBjYW4gd2UgcmVtb3ZlIHRoaXM/CisgICAgZ2V0dGVyIERPTVdp
bmRvd1NoZWxsIChET01TdHJpbmcgbmFtZSk7CiB9OwogCiBIVE1MRnJhbWVTZXRFbGVtZW50IGlt
cGxlbWVudHMgV2luZG93RXZlbnRIYW5kbGVyczsKSW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxv
Zwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODA1NykK
KysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDE3LTA2LTEwICBTYW0gV2VpbmlnICA8c2FtQHdlYmtpdC5vcmc+CisKKyAgICAgICAgW1dl
YklETF0gUmUtaW1wbGVtZW50IEdldE93blByb3BlcnR5U2xvdFtCeUluZGV4XSBnZW5lcmF0aW9u
IHRvIG1vcmUgY2xvc2VseSBmb2xsb3cgV2ViSURMCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNzMyMjkKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JP
RFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxEb2N1bWVudC9kb2N1bWVudC1z
cGVjaWFsLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0OgorICAgICAgICBVcGRhdGUgcmVzdWx0cy4g
VGhlc2Ugbm93IG1hdGNoIEZpcmVmb3guCisgICAgICAgIAorICAgICAgICAqIGpzL2RvbS9kZmct
cHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90
LXRyYXBzLTQtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9kZmctcHJvdG90eXBlLWNo
YWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIGpzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRo
LWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNC1leHBlY3RlZC50eHQ6CisgICAg
ICAgICoganMvZG9tL3Byb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24t
cHJvcGVydHktc2xvdC10cmFwcy01LXNob3J0LWV4cGVjdGVkLnR4dDoKKyAgICAgICAgVGhlc2Ug
dGVzdHMgbm93IGZhaWwsIGJ1dCBJIGJlbGlldmUgaXQgaXMgYSBwcm9ncmVzc2lvbiwgYXMgdGhl
IHRoZWlyIGZhaWx1cmUgbWF0Y2hlcyBGaXJlZm94CisgICAgICAgIGFuZCB0aGV5IHdlcmUgb25s
eSBwYXNzaW5nIGR1ZSB0byBIVE1MRG9jdW1lbnQncyBuYW1lZCBnZXR0ZXIgbm90IGJlaW5nIGlt
cGxlbWVudGVkIGNvcnJlY3RseS4KKwogMjAxNy0wNi0wOSAgQnJhZHkgRWlkc29uICA8YmVpZHNv
bkBhcHBsZS5jb20+CiAKICAgICAgICAgQ3Jhc2ggd2hlbiBJbmRleGVkREIncyBnZXRBbGwgaXMg
dXNlZCBpbnNpZGUgYSBXZWIgV29ya2VyLgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TERvY3VtZW50L2RvY3VtZW50LXNwZWNpYWwtcHJvcGVydGllcy1leHBlY3RlZC50eHQKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTERvY3VtZW50L2RvY3VtZW50LXNwZWNp
YWwtcHJvcGVydGllcy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxODA1NykKKysrIExheW91dFRl
c3RzL2Zhc3QvZG9tL0hUTUxEb2N1bWVudC9kb2N1bWVudC1zcGVjaWFsLXByb3BlcnRpZXMtZXhw
ZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC02OCw2ICs2OCw2IEBAIE51bWVyaWMgMTI6IHVu
ZGVmaW5lZAogTnVtZXJpYyAxMzogdW5kZWZpbmVkCiAKIENvbmZsaWN0aW5nIGltYWdlOiBzaW5n
bGUgSU1HKG5hbWUpCi1Db25mbGljdGluZyBpbWFnZSAoY3VzdG9tIHByb3BlcnR5KTogc2luZ2xl
IElNRyhuYW1lKQotQ29uZmxpY3RpbmcgaWZyYW1lOiBzaW5nbGUgV0lORE9XCitDb25mbGljdGlu
ZyBpbWFnZSAoY3VzdG9tIHByb3BlcnR5KTogc2luZ2xlIE9USEVSCitDb25mbGljdGluZyBpZnJh
bWU6IHNpbmdsZSBPVEhFUgogCkluZGV4OiBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHJl
dmlzaW9uIDIxODA1NykKKysrIExheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cJKHdv
cmtpbmcgY29weSkKQEAgLTEsMyArMSwxMyBAQAorMjAxNy0wNi0xMCAgU2FtIFdlaW5pZyAgPHNh
bUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlLWltcGxlbWVudCBHZXRPd25Qcm9w
ZXJ0eVNsb3RbQnlJbmRleF0gZ2VuZXJhdGlvbiB0byBtb3JlIGNsb3NlbHkgZm9sbG93IFdlYklE
TAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTczMjI5
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudC9mb3Jt
LW5hbWVkaXRlbS1leHBlY3RlZC50eHQ6CisgICAgICAgIFVwZGF0ZSByZXN1bHRzIGZvciBtb3Jl
IHBhc3NpbmcgdGVzdHMuCisKIDIwMTctMDYtMDkgIEZyZWRlcmljIFdhbmcgIDxmd2FuZ0BpZ2Fs
aWEuY29tPgogCiAgICAgICAgIEFkZCBmbGFnIGFsbG93LXBvcHVwcy10by1lc2NhcGUtc2FuZGJv
eCB0byBpZnJhbWUgc2FuZGJveApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9ybS1lbGVtZW50L2Zvcm0t
bmFtZWRpdGVtLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1mb3JtLWVs
ZW1lbnQvZm9ybS1uYW1lZGl0ZW0tZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgwNTcpCisrKyBM
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNz
L2Zvcm1zL3RoZS1mb3JtLWVsZW1lbnQvZm9ybS1uYW1lZGl0ZW0tZXhwZWN0ZWQudHh0CSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMiwxMiArMTIsOSBAQCBQQVNTIE5hbWVkIGl0ZW1zIG91dHNpZGUgdGhl
IGZvcm0gc2hvdWxkCiBQQVNTIFRoZSBmb3JtIGF0dHJpYnV0ZSBzaG91bGQgYmUgdGFrZW4gaW50
byBhY2NvdW50IGZvciBuYW1lZCBnZXR0ZXJzIChzaW5nbGUgZWxlbWVudCkgCiBQQVNTIFRoZSBm
b3JtIGF0dHJpYnV0ZSBzaG91bGQgYmUgdGFrZW4gaW50byBhY2NvdW50IGZvciBuYW1lZCBnZXR0
ZXJzIChtdWx0aXBsZSBlbGVtZW50cykgCiBQQVNTIElucHV0IHNob3VsZCBvbmx5IGJlIGEgbmFt
ZWQgcHJvcGVydHkgb24gdGhlIGlubmVybW9zdCBmb3JtIHRoYXQgY29udGFpbnMgaXQgCi1GQUlM
IFRyeWluZyB0byBzZXQgYW4gZXhwYW5kbyB0aGF0IHdvdWxkIHNoYWRvdyBhbiBhbHJlYWR5LWV4
aXN0aW5nIG5hbWVkIHByb3BlcnR5IGFzc2VydF90aHJvd3M6IGZ1bmN0aW9uICJmdW5jdGlvbiAo
KSB7Ci0gICAgInVzZSBzdHJpY3QiOwotICAgIGZvcm1bImwxIl0gPSA1OwotICB9IiBkaWQgbm90
IHRocm93Ci1GQUlMIFRyeWluZyB0byBzZXQgYW4gZXhwYW5kbyB0aGF0IHNoYWRvd3MgYSBuYW1l
ZCBwcm9wZXJ0eSB0aGF0IGdldHMgYWRkZWQgbGF0ZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQg
KG51bWJlcikgNSBidXQgZ290IChvYmplY3QpIEVsZW1lbnQgbm9kZSA8aW5wdXQgbmFtZT0ibmV3
LW5hbWUiPjwvaW5wdXQ+Ci1GQUlMIFRyeWluZyB0byBzZXQgYSBub24tY29uZmlndXJhYmxlIGV4
cGFuZG8gdGhhdCBzaGFkb3dzIGEgbmFtZWQgcHJvcGVydHkgdGhhdCBnZXRzIGFkZGVkIGxhdGVy
IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChudW1iZXIpIDUgYnV0IGdvdCAob2JqZWN0KSBFbGVt
ZW50IG5vZGUgPGlucHV0IG5hbWU9Im5ldy1uYW1lMiI+PC9pbnB1dD4KK0ZBSUwgVHJ5aW5nIHRv
IHNldCBhbiBleHBhbmRvIHRoYXQgd291bGQgc2hhZG93IGFuIGFscmVhZHktZXhpc3RpbmcgbmFt
ZWQgcHJvcGVydHkgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKG9iamVjdCkgRWxlbWVudCBub2Rl
IDxidXR0b24gbmFtZT0ibDEiPjwvYnV0dG9uPiBidXQgZ290IChudW1iZXIpIDUKK1BBU1MgVHJ5
aW5nIHRvIHNldCBhbiBleHBhbmRvIHRoYXQgc2hhZG93cyBhIG5hbWVkIHByb3BlcnR5IHRoYXQg
Z2V0cyBhZGRlZCBsYXRlciAKK1BBU1MgVHJ5aW5nIHRvIHNldCBhIG5vbi1jb25maWd1cmFibGUg
ZXhwYW5kbyB0aGF0IHNoYWRvd3MgYSBuYW1lZCBwcm9wZXJ0eSB0aGF0IGdldHMgYWRkZWQgbGF0
ZXIgCiBQQVNTIFBhc3QgbmFtZXMgbWFwIHNob3VsZCB3b3JrIGNvcnJlY3RseSAKICAgIAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAKSW5kZXg6IExheW91dFRlc3RzL2pzL2RvbS9kZmct
cHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90
LXRyYXBzLTQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9k
ZmctcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1z
bG90LXRyYXBzLTQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgwNTcpCisrKyBMYXlvdXRUZXN0
cy9qcy9kb20vZGZnLXByb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24t
cHJvcGVydHktc2xvdC10cmFwcy00LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNCw3
ICs0LDcgQEAgT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQQogCiAKIFBB
U1MgdHlwZW9mIGYoKSBpcyAiZnVuY3Rpb24iIG9uIGFsbCBpdGVyYXRpb25zIGluY2x1ZGluZyBh
ZnRlciBERkcgdGllci11cC4KLVBBU1MgdHlwZW9mIGYoKSBpcyAib2JqZWN0IgorRkFJTCB0eXBl
b2YgZigpIHNob3VsZCBiZSBvYmplY3QuIFdhcyBmdW5jdGlvbi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKIAogVEVTVCBDT01QTEVURQpJbmRleDogTGF5b3V0VGVzdHMvanMvZG9t
L2RmZy1wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5
LXNsb3QtdHJhcHMtNS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMv
ZG9tL2RmZy1wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3Bl
cnR5LXNsb3QtdHJhcHMtNS1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxODA1NykKKysrIExheW91
dFRlc3RzL2pzL2RvbS9kZmctcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0
LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBA
IC00LDcgKzQsNyBAQCBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBCiAK
IAogUEFTUyB0eXBlb2YgZigpIGlzICJmdW5jdGlvbiIgb24gYWxsIGl0ZXJhdGlvbnMgaW5jbHVk
aW5nIGFmdGVyIERGRyB0aWVyLXVwLgotUEFTUyB0eXBlb2YgZigpIGlzICJvYmplY3QiCitGQUlM
IHR5cGVvZiBmKCkgc2hvdWxkIGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9uLgogUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9q
cy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0
eS1zbG90LXRyYXBzLTQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pz
L2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5
LXNsb3QtdHJhcHMtNC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxODA1NykKKysrIExheW91dFRl
c3RzL2pzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXBy
b3BlcnR5LXNsb3QtdHJhcHMtNC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTM4LDEx
ICszOCwxMSBAQCBQQVNTIHR5cGVvZiBmKCkgaXMgImZ1bmN0aW9uIgogUEFTUyB0eXBlb2YgZigp
IGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIGYoKSBpcyAiZnVuY3Rpb24iCiBQQVNTIHR5cGVv
ZiBmKCkgaXMgImZ1bmN0aW9uIgotUEFTUyB0eXBlb2YgZigpIGlzICJvYmplY3QiCi1QQVNTIHR5
cGVvZiBmKCkgaXMgIm9iamVjdCIKLVBBU1MgdHlwZW9mIGYoKSBpcyAib2JqZWN0IgotUEFTUyB0
eXBlb2YgZigpIGlzICJvYmplY3QiCi1QQVNTIHR5cGVvZiBmKCkgaXMgIm9iamVjdCIKK0ZBSUwg
dHlwZW9mIGYoKSBzaG91bGQgYmUgb2JqZWN0LiBXYXMgZnVuY3Rpb24uCitGQUlMIHR5cGVvZiBm
KCkgc2hvdWxkIGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9uLgorRkFJTCB0eXBlb2YgZigpIHNob3Vs
ZCBiZSBvYmplY3QuIFdhcyBmdW5jdGlvbi4KK0ZBSUwgdHlwZW9mIGYoKSBzaG91bGQgYmUgb2Jq
ZWN0LiBXYXMgZnVuY3Rpb24uCitGQUlMIHR5cGVvZiBmKCkgc2hvdWxkIGJlIG9iamVjdC4gV2Fz
IGZ1bmN0aW9uLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBM
RVRFCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0
aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtZXhwZWN0ZWQudHh0Cj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRo
LWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1leHBlY3RlZC50eHQJKHJldmlz
aW9uIDIxODA1NykKKysrIExheW91dFRlc3RzL2pzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGlu
Zy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTQ4LDExICs0OCwxMSBAQCBQQVNTIHR5cGVvZiBmKCkgaXMgImZ1
bmN0aW9uIgogUEFTUyB0eXBlb2YgZigpIGlzICJmdW5jdGlvbiIKIFBBU1MgdHlwZW9mIGYoKSBp
cyAiZnVuY3Rpb24iCiBQQVNTIHR5cGVvZiBmKCkgaXMgImZ1bmN0aW9uIgotUEFTUyB0eXBlb2Yg
ZigpIGlzICJvYmplY3QiCi1QQVNTIHR5cGVvZiBmKCkgaXMgIm9iamVjdCIKLVBBU1MgdHlwZW9m
IGYoKSBpcyAib2JqZWN0IgotUEFTUyB0eXBlb2YgZigpIGlzICJvYmplY3QiCi1QQVNTIHR5cGVv
ZiBmKCkgaXMgIm9iamVjdCIKK0ZBSUwgdHlwZW9mIGYoKSBzaG91bGQgYmUgb2JqZWN0LiBXYXMg
ZnVuY3Rpb24uCitGQUlMIHR5cGVvZiBmKCkgc2hvdWxkIGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9u
LgorRkFJTCB0eXBlb2YgZigpIHNob3VsZCBiZSBvYmplY3QuIFdhcyBmdW5jdGlvbi4KK0ZBSUwg
dHlwZW9mIGYoKSBzaG91bGQgYmUgb2JqZWN0LiBXYXMgZnVuY3Rpb24uCitGQUlMIHR5cGVvZiBm
KCkgc2hvdWxkIGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9uLgogUEFTUyBzdWNjZXNzZnVsbHlQYXJz
ZWQgaXMgdHJ1ZQogCiBURVNUIENPTVBMRVRFCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vcHJv
dG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRy
YXBzLTUtc2hvcnQtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2pzL2Rv
bS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNs
b3QtdHJhcHMtNS1zaG9ydC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDIxODA1NykKKysrIExheW91
dFRlc3RzL2pzL2RvbS9wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3du
LXByb3BlcnR5LXNsb3QtdHJhcHMtNS1zaG9ydC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTgsMTEgKzgsMTEgQEAgUEFTUyB0eXBlb2YgZigpIGlzICJmdW5jdGlvbiIKIFBBU1MgdHlw
ZW9mIGYoKSBpcyAiZnVuY3Rpb24iCiBQQVNTIHR5cGVvZiBmKCkgaXMgImZ1bmN0aW9uIgogUEFT
UyB0eXBlb2YgZigpIGlzICJmdW5jdGlvbiIKLVBBU1MgdHlwZW9mIGYoKSBpcyAib2JqZWN0Igot
UEFTUyB0eXBlb2YgZigpIGlzICJvYmplY3QiCi1QQVNTIHR5cGVvZiBmKCkgaXMgIm9iamVjdCIK
LVBBU1MgdHlwZW9mIGYoKSBpcyAib2JqZWN0IgotUEFTUyB0eXBlb2YgZigpIGlzICJvYmplY3Qi
CitGQUlMIHR5cGVvZiBmKCkgc2hvdWxkIGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9uLgorRkFJTCB0
eXBlb2YgZigpIHNob3VsZCBiZSBvYmplY3QuIFdhcyBmdW5jdGlvbi4KK0ZBSUwgdHlwZW9mIGYo
KSBzaG91bGQgYmUgb2JqZWN0LiBXYXMgZnVuY3Rpb24uCitGQUlMIHR5cGVvZiBmKCkgc2hvdWxk
IGJlIG9iamVjdC4gV2FzIGZ1bmN0aW9uLgorRkFJTCB0eXBlb2YgZigpIHNob3VsZCBiZSBvYmpl
Y3QuIFdhcyBmdW5jdGlvbi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKIAogVEVT
VCBDT01QTEVURQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>312609</attachid>
            <date>2017-06-11 11:22:55 -0700</date>
            <delta_ts>2017-06-12 12:50:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-173229-20170611112324.patch</filename>
            <type>text/plain</type>
            <size>237601</size>
            <attacher name="Sam Weinig">sam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3MyBAQAorMjAxNy0wNi0xMCAgU2FtIFdl
aW5pZyAgPHNhbUB3ZWJraXQub3JnPgorCisgICAgICAgIFtXZWJJRExdIFJlLWltcGxlbWVudCBH
ZXRPd25Qcm9wZXJ0eVNsb3RbQnlJbmRleF0gZ2VuZXJhdGlvbiB0byBtb3JlIGNsb3NlbHkgZm9s
bG93IFdlYklETAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTczMjI5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2o6CisgICAgICAgICogQ01ha2VM
aXN0cy50eHQ6CisgICAgICAgICogYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcDoK
KyAgICAgICAgUmVtb3ZlIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgd2hpY2ggaXMg
bm8gbG9uZ2VyIG5lZWRlZC4KKworICAgICAgICAqIGJpbmRpbmdzL2pzL0pTRE9NQWJzdHJhY3RP
cGVyYXRpb25zLmg6CisgICAgICAgIChXZWJDb3JlOjppc1Zpc2libGVOYW1lZFByb3BlcnR5KToK
KyAgICAgICAgQWRkIE92ZXJyaWRlQnVpbHRpbnMgZW51bSBhcyByZXF1ZXN0ZWQgYnkgYSBwcmV2
aW91cyByZXZpZXcgKGFuZCBJIGZvcmdvdCBhZGRyZXNzKSBhbmQgYWRvcHQgaXQKKyAgICAgICAg
aW4gaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eSwgc3dpdGNoIHRvIFZNSW5xdWlyeSBhcyB3ZSB1c2Ug
ZWxzZXdoZXJlIGFuZCBhZGQgYSBtaXNzaW5nIEZJWE1FLgorCisgICAgICAgIChXZWJDb3JlOjph
Y2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eSk6CisgICAgICAgIEFkZCB2YXJpYXRpb24gb2YgaXNW
aXNpYmxlTmFtZWRQcm9wZXJ0eSB0aGF0IHRha2VzIGEgZnVuY3RvciBhbmQgcmV0dXJucyBlaXRo
ZXIgdGhlIHZhbHVlIHRoZQorICAgICAgICBmdW5jdG9yIHJldHVybnMsIG9yIHN0ZDo6bnVsbG9w
dC4gVGhpcyBhbGxvd3MgZ2V0T3duUHJvcGVydHlTbG90IHRvIGF2b2lkIGRvaW5nIHR3byBsb29r
dXBzIGZvcgorICAgICAgICBwcm9wZXJ0eSwgb25jZSBpbiB0aGUgbmFtZWQgcHJvcGVydHkgdmlz
aWJpbGl0eSBhbGdvcml0aG0gYW5kIGFnYWluIHdoZW4gaXQgbmVlZHMgdGhlIHZhbHVlLgorCisg
ICAgICAgICogYmluZGluZ3MvanMvSlNET01XaW5kb3dCYXNlLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuaDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdp
bmRvd1NoZWxsLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9qcy9KU0RPTVdpbmRvd1NoZWxsLmg6
CisgICAgICAgIFN0YW5kYXJkaXplIHRvSlMgZnVuY3Rpb25zIHRvIG1hdGNoIGdlbmVyYXRlZCBj
b2RlIChoYXZlIG9uZSB0aGF0IHRha2VzIGEgcmVmZXJlbmNlLCBhbmQgZG9lcyB0aGUKKyAgICAg
ICAgY2FzdCwgYW5kIG9uZSB0aGF0IHRha2VzIGEgcG9pbnRlciwgZG9lcyBhIG51bGwgY2hlY2sg
YW5kIGNhbGxzIHRoZSBvbmUgdGhhdCB0YWtlcyBhIHJlZmVyZW5jZSkuCisgICAgICAgIAorICAg
ICAgICAqIGJpbmRpbmdzL2pzL0pTSFRNTERvY3VtZW50Q3VzdG9tLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkpTSFRNTERvY3VtZW50OjpnZXRPd25Qcm9wZXJ0eVNsb3QpOi4KKyAgICAgICAgVXBk
YXRlIHRvIHVzZSB0aGUgaW1wbGVtZW50YXRpb24gbmFtZWRJdGVtICh3aGljaCBpcyBhbHNvIHVz
ZWQgYnkgdGhlIGdlbmVyYXRlZCBnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KQorICAgICAgICBh
bmQgbWF0Y2ggdGhlIHVwZGF0ZWQgYmluZGluZ3MgcnVsZXMuIFRoaXMgY2Fubm90IHlldCBiZSBn
ZW5lcmF0ZWQgZHVlIHRvIHRoZSBvZGQgY2FzZSBvZiB0aGUgJ29wZW4nCisgICAgICAgIHByb3Bl
cnR5IHJlcXVpcmluZyBjdXN0b20gdHJlYXRtZW50LiBJIHRyaWVkIHJlbW92aW5nIHRoaXMsIGJ1
dCBpdCBjYXVzZSB0ZXN0cyB0byBmYWlsIGluIGEgd2F5IHRoYXQgaW5kaWNhdGVkCisgICAgICAg
IHRoYXQgYWNjZXNzaW5nIHRoZSBsZXhpY2FsIGdsb2JhbCBvYmplY3QgaW4gdGhlIG9wZW4gaW1w
bGVtZW50YXRpb24gd2FzIG5vdCB3b3JraW5nIGNvcnJlY3RseS4KKworICAgICAgICAqIGJpbmRp
bmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHA6IFJlbW92ZWQuCisgICAgICAg
IE5vdyBnZW5lcmF0ZWQuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0NvZGVHZW5lcmF0
b3JKUy5wbToKKyAgICAgICAgKEdlbmVyYXRlSW5kZXhlZEdldHRlcik6CisgICAgICAgIEFkZCBk
ZXNjcmlwdGlvbiBmcm9tIHRoZSBzcGVjIGFuZCBjaGFuZ2UgdG8gcmV0dXJuIHRoZSBjb21wdXRl
ZCB2YWx1ZXMgcmF0aGVyIHRoYW4KKyAgICAgICAgcHJpbnQgdGhlbSB0byB0aGUgb3V0cHV0IGFy
cmF5LiBUaGlzIHdpbGwgYmUgdXNlZnVsIGZvciBzb21lIGNsaWVudHMgZ29pbmcgZm9yd2FyZCwK
KyAgICAgICAgd2hvIG9ubHkgd2FudCB0aGUgYXR0cmlidXRlcy4KKworICAgICAgICAoR2VuZXJh
dGVOYW1lZEdldHRlcik6CisgICAgICAgIEFkZCBkZXNjcmlwdGlvbiBmcm9tIHRoZSBzcGVjIGFu
ZCBjaGFuZ2UgdG8gcmV0dXJuIHRoZSBjb21wdXRlZCB2YWx1ZXMgcmF0aGVyIHRoYW4KKyAgICAg
ICAgcHJpbnQgdGhlbSB0byB0aGUgb3V0cHV0IGFycmF5LiBUaGlzIHdpbGwgYmUgdXNlZnVsIGZv
ciBzb21lIGNsaWVudHMgZ29pbmcgZm9yd2FyZCwKKyAgICAgICAgd2hvIG9ubHkgd2FudCB0aGUg
YXR0cmlidXRlcy4gQWxzbyBncmVhdGx5IHNpbXBsaWZpZXMgdGhpbmdzIGFzIFtDdXN0b21OYW1l
ZEdldHRlcl1zCisgICAgICAgIGFyZSBubyBsb25nZXIgbmVlZGVkL3N1cHBvcnRlZCBhbmQgdGhl
IGV4Y2VwdGlvbiAvIG51bGwgdmFsdWUgY2hlY2tzIGFyZSBwZXJmb3JtZWQKKyAgICAgICAgZWxz
ZXdoZXJlLgorCisgICAgICAgIChHZW5lcmF0ZU5hbWVkR2V0dGVyTGFtYmRhKToKKyAgICAgICAg
VGhpcyBnZW5lcmF0ZXMgYSBsYW1iZGEgZnVuY3RvciBmb3IgdXNlIGluIGFjY2Vzc1Zpc2libGVO
YW1lZFByb3BlcnR5KC4uLikuIEl0CisgICAgICAgIGhhbmRsZXMgY2FsbGluZyB0aGUgbmFtZWQg
Z2V0dGVyIGltcGxlbWVudGF0aW9uLCBhbmQgdHJhbnNmb3JtaW5nIHRoZSByZXN1bHQgaW50bwor
ICAgICAgICBhbiBvbmUgdGhhdCBjYW4gYmUgcmVhc29uZWQgYWJvdXQgYnkgYWNjZXNzVmlzaWJs
ZU5hbWVkUHJvcGVydHksIHNwZWNpZmljYWxseSwKKyAgICAgICAgY29udmVydGluZyBpdCBmcm9t
IHVzaW5nIElETCdzIG5vdGlvbiBvZiBudWxsYWJpbGl0eSB0byBzdGQ6Om9wdGlvbmFsLiAKKwor
ICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3QpOgorICAgICAgICAoR2VuZXJhdGVH
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KToKKyAgICAgICAgQWRkIHNwZWMgYW5ub3RhdGlvbnMg
YW5kIHVzZSBoZWxwZXIgZnVuY3Rpb25zLiAKKworICAgICAgICAoR2VuZXJhdGVHZXRPd25Qcm9w
ZXJ0eU5hbWVzKToKKyAgICAgICAgQWRkIEZJWE1FIGFib3V0IHN1cHBvcnRpbmcgbm9uLWNvbnRp
Z3VvdXMgaW5kaWNlcyAoc2hvdWxkIHRoYXQgZXZlciBjb21lIHVwKQorICAgICAgICBhbmQgdXNl
IEpTT2JqZWN0IGV4cGxpY2l0bHksIHJhdGhlciB0aGFuIGJhc2UsIHRvIGdldCB0aGUgZGVmYXVs
dCBnZXRPd25Qcm9wZXJ0eU5hbWVzCisgICAgICAgIGltcGxlbWVudGF0aW9uLgorCisgICAgICAg
IChHZW5lcmF0ZVB1dCk6CisgICAgICAgIFVzZSBKU09iamVjdCBleHBsaWNpdGx5LCByYXRoZXIg
dGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgcHV0IGltcGxlbWVudGF0aW9uLgorCisgICAg
ICAgIChHZW5lcmF0ZVB1dEJ5SW5kZXgpOgorICAgICAgICBVc2UgSlNPYmplY3QgZXhwbGljaXRs
eSwgcmF0aGVyIHRoYW4gYmFzZSwgdG8gZ2V0IHRoZSBkZWZhdWx0IHB1dEJ5SW5kZXggaW1wbGVt
ZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRlRGVmaW5lT3duUHJvcGVydHkpOgorICAgICAg
ICBVc2UgSlNPYmplY3QgZXhwbGljaXRseSwgcmF0aGVyIHRoYW4gYmFzZSwgdG8gZ2V0IHRoZSBk
ZWZhdWx0IGdldE93blByb3BlcnR5U2xvdC9kZWZpbmVPd25Qcm9wZXJ0eQorICAgICAgICBpbXBs
ZW1lbnRhdGlvbnMuCisKKyAgICAgICAgKEdlbmVyYXRlRGVsZXRlUHJvcGVydHlDb21tb24pOgor
ICAgICAgICBBZG9wdCBuZXcgT3ZlcnJpZGVCdWlsdGlucyBlbnVtLgorCisgICAgICAgIChHZW5l
cmF0ZURlbGV0ZVByb3BlcnR5RGVmaW5pdGlvbik6CisgICAgICAgIFVzZSBKU09iamVjdCBleHBs
aWNpdGx5LCByYXRoZXIgdGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgZGVsZXRlUHJvcGVy
dHkgaW1wbGVtZW50YXRpb24uCisKKyAgICAgICAgKEdlbmVyYXRlRGVsZXRlUHJvcGVydHlCeUlu
ZGV4RGVmaW5pdGlvbik6CisgICAgICAgIFVzZSBKU09iamVjdCBleHBsaWNpdGx5LCByYXRoZXIg
dGhhbiBiYXNlLCB0byBnZXQgdGhlIGRlZmF1bHQgZGVsZXRlUHJvcGVydHlCeUluZGV4IGltcGxl
bWVudGF0aW9uLgorCisgICAgICAgIChJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xv
dCk6CisgICAgICAgIFJlbW92ZSBbQ3VzdG9tTmFtZWRHZXR0ZXJdIHVzZS4KKyAKKyAgICAgICAg
KEdlbmVyYXRlSGVhZGVyKToKKyAgICAgICAgUmVtb3ZlIFtDdXN0b21OYW1lZEdldHRlcl0gdXNl
IGFuZCBtZXJnZSBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdEJ5SW5kZXggaW50
bworICAgICAgICBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdC4gU3BlY2lmeWlu
ZyBlaXRoZXIgW0N1c3RvbUdldE93blByb3BlcnR5U2xvdF0gb3IKKyAgICAgICAgW0N1c3RvbUdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXhdIHdpbGwgbm93IGRlY2xhcmUgYm90aCBob29rcy4KKyAg
ICAgICAgCisgICAgICAgIChHZW5lcmF0ZUltcGxlbWVudGF0aW9uKToKKyAgICAgICAgUmVuYW1l
IEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keS9HZW5lcmF0ZUdldE93blByb3BlcnR5U2xv
dEJ5SW5kZXhCb2R5IHRvIHJlbW92ZSB0aGUgJ0JvZHknLAorICAgICAgICBhbmQgcHJlZGljYXRl
IHRoZWlyIGdlbmVyYXRpb24gcHVyZWx5IG9uIEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVy
dHlTbG90IGFzIG5vdGVkIGZvciB0aGUgCisgICAgICAgIHJlYXNvbnMgYWJvdmUuCisKKyAgICAg
ICAgKEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9keSk6IERlbGV0ZWQuCisgICAgICAgIChH
ZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHlCeUluZGV4KTogRGVsZXRlZC4KKyAgICAgICAg
KEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleCk6IERlbGV0ZWQuCisK
KyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL0lETEF0dHJpYnV0ZXMuanNvbjoKKyAgICAgICAg
UmVtb3ZlIFtDdXN0b21OYW1lZEdldHRlcl0uCisKKyAgICAgICAgKiBkb20vRXhjZXB0aW9uT3Iu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkV4Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpyZXR1cm5WYWx1
ZSk6CisgICAgICAgIEFkZCBhIGZ1bmN0aW9uIHRvIHBlZWsgYXQgdGhlIHJldHVybiB2YWx1ZQor
CisgICAgICAgICogaHRtbC9IVE1MRG9jdW1lbnQuaDoKKyAgICAgICAgKiBodG1sL0hUTUxEb2N1
bWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6OmNsZWFyKToKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6Y2FwdHVyZUV2ZW50cyk6CisgICAgICAgIChXZWJD
b3JlOjpIVE1MRG9jdW1lbnQ6OnJlbGVhc2VFdmVudHMpOgorICAgICAgICBNb3ZlIGNsZWFyIHVw
IHRvIGJlIHdpdGggdGhlIG90aGVyIG9ic29sZXRlIG5vLW9wIGZ1bmN0aW9ucy4gQWRkIHNwZWMg
YW5ub3RhdGlvbnMKKyAgICAgICAgdG8gY2xlYXIgdXAgYW55IGNvbmZ1c2lvbiBhYm91dCB3aHkg
dGhleSBhcmUgbm8tb3BzLgorCisgICAgICAgIChXZWJDb3JlOjpIVE1MRG9jdW1lbnQ6Om5hbWVk
SXRlbSk6CisgICAgICAgIEFkZCBpbXBsZW1lbnRhdGlvbiBvZiBuYW1lZEl0ZW0gYmFzZWQgb24g
dGhlIG9uZSB0aGF0IHdhcyBpbiBKU0RPTUhUTUxEb2N1bWVudEN1c3RvbS5jcHAuCisKKyAgICAg
ICAgKFdlYkNvcmU6OkhUTUxEb2N1bWVudDo6c3VwcG9ydGVkUHJvcGVydHlOYW1lcyk6CisgICAg
ICAgIEFkZCBzdHViIHZlcnNpb24gb2Ygc3VwcG9ydGVkUHJvcGVydHlOYW1lcyB3aXRoIHRoZSBh
bGdvcml0aG0gd2UgbmVlZCB0byBpbXBsZW1lbnQuCisgICAgICAgIEkgZG9uJ3Qgd2FudCB0byBj
aGFuZ2UgYmVoYXZpb3IgaW4gdGhpcyBwYXRjaCwgYW5kIHNpbmNlIHdlIGhhdmUgbm90IGVudW1l
cmF0ZWQgdGhlCisgICAgICAgIHByb3BlcnRpZXMgb2YgZG9jdW1lbnQgaW4gdGhlIHBhc3QsIEkg
bGVmdCB0aGlzIHVuaW1wbGVtZW50ZWQgZm9yIG5vdy4KKworICAgICAgICAqIGh0bWwvSFRNTERv
Y3VtZW50LmlkbDoKKyAgICAgICAgUmVtb3ZlIFtDdXN0b21OYW1lZEdldHRlcl0gYW5kIGFkZCBu
YW1lZCBnZXR0ZXIuCisKKyAgICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaDoKKyAg
ICAgICAgKiBodG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6
SFRNTEZyYW1lU2V0RWxlbWVudDo6bmFtZWRJdGVtKToKKyAgICAgICAgQWRkIG5hbWVkIGdldHRl
ciBiYXNlZCBvbiB0aGUgaW1wbGVtZW50YXRpb24gaW4gSlNIVE1MRnJhbWVTZXRFbGVtZW50Q3Vz
dG9tLmNwcC4KKworICAgICAgICAoV2ViQ29yZTo6SFRNTEZyYW1lU2V0RWxlbWVudDo6c3VwcG9y
dGVkUHJvcGVydHlOYW1lcyk6CisgICAgICAgIEFzIG5vdGVkIGFib3ZlLCBJIGRvbid0IHdhbnQg
dG8gY2hhbmdlIGJlaGF2aW9yIHdpdGggdGhpcyBjaGFuZ2UsIHNvIEkgaGF2ZSBsZWZ0IHRoaXMg
dW5pbXBsZW1lbnRlZAorICAgICAgICBmb3Igbm93LiBIb3dldmVyLCB3ZSBtYXkgbm90IHdhbnQg
dG8gaW1wbGVtZW50IGl0IGF0IGFsbCwgYXMgdGhpcyBuYW1lZCBnZXR0ZXIgaXMgbm90IHNwZWNp
ZmllZCBhbmQKKyAgICAgICAgYXQgbGVhc3QgRmlyZWZveCBkb2VzIG5vdCBzdXBwb3J0IGl0Lgor
CisgICAgICAgICogaHRtbC9IVE1MRnJhbWVTZXRFbGVtZW50LmlkbDoKKyAgICAgICAgUmVtb3Zl
IFtDdXN0b21OYW1lZEdldHRlcl0gYW5kIGFkZCBuYW1lZCBnZXR0ZXIuCisKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3BwOgorICAgICAgICAq
IGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
LmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNlLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwOgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVk
RGVsZXRlck5vSWRlbnRpZmllci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcDoKKyAgICAgICAgKiBi
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIu
Y3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSW5kZXhlZEdldHRlci5jcHA6CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0
L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHA6
CisgICAgICAgICogYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aElkZW50aWZpZXIuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zLmNwcDoKKyAgICAgICAgKiBiaW5kaW5n
cy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRp
ZXMuY3BwOgorICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuY3BwOgorICAg
ICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROb2RlLmNwcDoKKyAgICAgICAg
KiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcDoKKyAgICAgICAgKiBiaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T3ZlcnJpZGVCdWlsdGlucy5jcHA6CisgICAgICAg
IFVwZGF0ZSB0ZXN0IHJlc3VsdHMuCisKKyAgICAgICAgKiBiaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuY3BwOiBSZW1vdmVkLgorICAgICAgICAqIGJpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oOiBSZW1vdmVkLgor
ICAgICAgICAqIGJpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRs
OiBSZW1vdmVkLgorICAgICAgICBSZW1vdmUgdGVzdCBvZiBbQ3VzdG9tTmFtZWRHZXR0ZXJdIHdo
aWNoIG5vIGxvbmdlciBleGlzdHMuIAorCiAyMDE3LTA2LTExICBUaW0gSG9ydG9uICA8dGltb3Ro
eV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKHIyMTc4NzApOiBOdWxs
IGRlcmVmIHVuZGVyIFBhZ2VPdmVybGF5Q29udHJvbGxlcjo6dW5pbnN0YWxsUGFnZU92ZXJsYXkg
dXNpbmcgZmluZCBpbiBwYWdlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9DTWFrZUxpc3RzLnR4dAkocmV2aXNpb24gMjE4
MDcwKQorKysgU291cmNlL1dlYkNvcmUvQ01ha2VMaXN0cy50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTExODYsNyArMTE4Niw2IEBAIHNldChXZWJDb3JlX1NPVVJDRVMKICAgICBiaW5kaW5ncy9qcy9K
U0hUTUxEb2N1bWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0hUTUxFbGVtZW50Q3Vz
dG9tLmNwcAogICAgIGJpbmRpbmdzL2pzL0pTSFRNTEVtYmVkRWxlbWVudEN1c3RvbS5jcHAKLSAg
ICBiaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGlu
Z3MvanMvSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAKICAgICBiaW5kaW5ncy9qcy9KU0hU
TUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwCiAgICAgYmluZGluZ3MvanMvSlNIaXN0b3J5Q3Vz
dG9tLmNwcApJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5w
Ynhwcm9qCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3By
b2plY3QucGJ4cHJvagkocmV2aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCSh3b3JraW5nIGNvcHkpCkBAIC01ODQ2LDcgKzU4
NDYsNiBAQAogCQlCQ0QwRTBGQTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW4uY3Bw
IGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQkNEMEUwRjcw
RTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmNwcCAqLzsgfTsKIAkJQkNEMEUwRkIw
RTk3MkMzNTAwMjY1REVBIC8qIFNlY3VyaXR5T3JpZ2luLmggaW4gSGVhZGVycyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QwRTBGODBFOTcyQzM1MDAyNjVERUEgLyogU2Vj
dXJpdHlPcmlnaW4uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9
OyB9OwogCQlCQ0QwRTBGQzBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmgg
aW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0QwRTBGOTBF
OTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi87IHNldHRpbmdzID0ge0FU
VFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKLQkJQkNENDFBQkIwQzA2MERFODAwQzBFNDQ2
IC8qIEpTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgaW4gU291cmNlcyAqLyA9IHtpc2Eg
PSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q0MUFCQTBDMDYwREU4MDBDMEU0NDYgLyogSlNI
VE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCAqLzsgfTsKIAkJQkNENTMzNjQwRUQ2ODQ4OTAw
ODg3NDY4IC8qIENhY2hlZFNjcmlwdFNvdXJjZVByb3ZpZGVyLmggaW4gSGVhZGVycyAqLyA9IHtp
c2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyog
Q2FjaGVkU2NyaXB0U291cmNlUHJvdmlkZXIuaCAqLzsgfTsKIAkJQkNEOUMyNjIwQzE3QUE2NzAw
NUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovID0ge2lzYSA9IFBC
WEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEJDRDlDMjVFMEMxN0FBNjcwMDVDOTBBMiAvKiBKU0RPTVdp
bmRvd0N1c3RvbS5jcHAgKi87IH07CiAJCUJDRDlDMjY0MEMxN0FBNjcwMDVDOTBBMiAvKiBKU05v
ZGVDdXN0b20uY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQkNEOUMyNjAwQzE3QUE2NzAwNUM5MEEyIC8qIEpTTm9kZUN1c3RvbS5jcHAgKi87IH07CkBA
IC0xNDM0OSw3ICsxNDM0OCw2IEBACiAJCUJDRDBFMEY3MEU5NzJDMzUwMDI2NURFQSAvKiBTZWN1
cml0eU9yaWdpbi5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBTZWN1
cml0eU9yaWdpbi5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDBFMEY4MEU5
NzJDMzUwMDI2NURFQSAvKiBTZWN1cml0eU9yaWdpbi5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZl
cmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5j
Lmg7IHBhdGggPSBTZWN1cml0eU9yaWdpbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlCQ0QwRTBGOTBFOTcyQzM1MDAyNjVERUEgLyogU2VjdXJpdHlPcmlnaW5IYXNoLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5
cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IFNlY3VyaXR5T3JpZ2luSGFzaC5oOyBzb3VyY2VU
cmVlID0gIjxncm91cD4iOyB9OwotCQlCQ0Q0MUFCQTBDMDYwREU4MDBDMEU0NDYgLyogSlNIVE1M
RnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7
IHBhdGggPSBKU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwOyBzb3VyY2VUcmVlID0gIjxn
cm91cD4iOyB9OwogCQlCQ0Q1MzM2MzBFRDY4NDg5MDA4ODc0NjggLyogQ2FjaGVkU2NyaXB0U291
cmNlUHJvdmlkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2Rpbmcg
PSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ2FjaGVkU2Ny
aXB0U291cmNlUHJvdmlkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkNEOUMy
NUUwQzE3QUE2NzAwNUM5MEEyIC8qIEpTRE9NV2luZG93Q3VzdG9tLmNwcCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSAzMDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBKU0RPTVdpbmRvd0N1c3RvbS5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CiAJCUJDRDlDMjYwMEMxN0FBNjcwMDVDOTBBMiAvKiBKU05vZGVD
dXN0b20uY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDMw
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IEpTTm9kZUN1
c3RvbS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzY1Miw3ICsyMzY1MCw2
IEBACiAJCQkJQkM1MTU4MEEwQzAzRDQwNDAwOEJCMEVFIC8qIEpTSFRNTERvY3VtZW50Q3VzdG9t
LmNwcCAqLywKIAkJCQlCQzU4MjNGNDBDMEE5OERGMDA1M0YxQjUgLyogSlNIVE1MRWxlbWVudEN1
c3RvbS5jcHAgKi8sCiAJCQkJQkM2RDQ0QkQwQzA3RUZCNjAwNzJEMkM5IC8qIEpTSFRNTEVtYmVk
RWxlbWVudEN1c3RvbS5jcHAgKi8sCi0JCQkJQkNENDFBQkEwQzA2MERFODAwQzBFNDQ2IC8qIEpT
SFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAgKi8sCiAJCQkJQkMzMDVDQTMwQzA3ODFCQjAw
Q0QyMEYwIC8qIEpTSFRNTE9iamVjdEVsZW1lbnRDdXN0b20uY3BwICovLAogCQkJCUQ2Rjc5NjBD
MTY2RkZFQ0UwMDc2REQxOCAvKiBKU0hUTUxUZW1wbGF0ZUVsZW1lbnRDdXN0b20uY3BwICovLAog
CQkJCTdBNzRFQ0JDMTAxODM5REEwMEJGOTM5RSAvKiBKU0luc3BlY3RvckZyb250ZW5kSG9zdEN1
c3RvbS5jcHAgKi8sCkBAIC0zMjAzMSw3ICszMjAyOCw2IEBACiAJCQkJQThEMDY0RkIwQTIzQzBD
QzAwNUU3MjAzIC8qIEpTSFRNTEZvcm1FbGVtZW50LmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUJD
NDkxOEM2MEJGRUEwNTAwMDlENjMxNiAvKiBKU0hUTUxGcmFtZUVsZW1lbnQuY3BwIGluIFNvdXJj
ZXMgKi8sCiAJCQkJQkM5MjZGODAwQzA1NTI0NzAwODI3NzZCIC8qIEpTSFRNTEZyYW1lU2V0RWxl
bWVudC5jcHAgaW4gU291cmNlcyAqLywKLQkJCQlCQ0Q0MUFCQjBDMDYwREU4MDBDMEU0NDYgLyog
SlNIVE1MRnJhbWVTZXRFbGVtZW50Q3VzdG9tLmNwcCBpbiBTb3VyY2VzICovLAogCQkJCUE4MEU3
QjE0MEExOUQ2MDYwMDdGQjhDNSAvKiBKU0hUTUxIZWFkRWxlbWVudC5jcHAgaW4gU291cmNlcyAq
LywKIAkJCQkxQUUyQUEyRTBBMUNEQUI0MDBCNDJCMjUgLyogSlNIVE1MSGVhZGluZ0VsZW1lbnQu
Y3BwIGluIFNvdXJjZXMgKi8sCiAJCQkJMUFFMkFBMzAwQTFDREFCNDAwQjQyQjI1IC8qIEpTSFRN
TEhSRWxlbWVudC5jcHAgaW4gU291cmNlcyAqLywKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL2pzL0pTQmluZGluZ3NBbGxJbk9uZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkocmV2aXNpb24gMjE4MDcwKQor
KysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNCaW5kaW5nc0FsbEluT25lLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNzEsNyArNzEsNiBAQAogI2luY2x1ZGUgIkpTSFRNTERvY3VtZW50Q3Vz
dG9tLmNwcCIKICNpbmNsdWRlICJKU0hUTUxFbGVtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U0hUTUxFbWJlZEVsZW1lbnRDdXN0b20uY3BwIgotI2luY2x1ZGUgIkpTSFRNTEZyYW1lU2V0RWxl
bWVudEN1c3RvbS5jcHAiCiAjaW5jbHVkZSAiSlNIVE1MT2JqZWN0RWxlbWVudEN1c3RvbS5jcHAi
CiAjaW5jbHVkZSAiSlNIVE1MVGVtcGxhdGVFbGVtZW50Q3VzdG9tLmNwcCIKICNpbmNsdWRlICJK
U0hpc3RvcnlDdXN0b20uY3BwIgpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNE
T01BYnN0cmFjdE9wZXJhdGlvbnMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCShyZXZpc2lvbiAyMTgwNzApCisrKyBT
b3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMiwxMCArMzIsMTQgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gSW1w
bGVtZW50YXRpb25zIG9mIHRoZSBhYnN0cmFjdCBvcGVyYXRpb25zIGRlZmluZWQgYXQKIC8vIGh0
dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2xlZ2FjeS1wbGF0Zm9ybS1vYmplY3QtYWJz
dHJhY3Qtb3BzCiAKK2VudW0gY2xhc3MgT3ZlcnJpZGVCdWlsdGlucyB7CisgICAgTm8sCisgICAg
WWVzCit9OwogCiAvLyBBbiBpbXBsZW1lbnRhdGlvbiBvZiB0aGUgJ25hbWVkIHByb3BlcnR5IHZp
c2liaWxpdHkgYWxnb3JpdGhtJwogLy8gaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8j
ZGZuLW5hbWVkLXByb3BlcnR5LXZpc2liaWxpdHkKLXRlbXBsYXRlPGJvb2wgb3ZlcnJpZGVCdWls
dGlucywgY2xhc3MgSlNDbGFzcz4KK3RlbXBsYXRlPE92ZXJyaWRlQnVpbHRpbnMgb3ZlcnJpZGVC
dWlsdGlucywgY2xhc3MgSlNDbGFzcz4KIHN0YXRpYyBib29sIGlzVmlzaWJsZU5hbWVkUHJvcGVy
dHkoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0NsYXNzJiB0aGlzT2JqZWN0LCBKU0M6OlByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgLy8gRklYTUU6IEl0IHNlZW1zIHVuZm9ydHVu
YXRlIHRoYXQgaGF2ZSB0byBkbyB0d28gbG9va3VwcyBmb3IgdGhlIHByb3BlcnR5IG5hbWUsCkBA
IC01NSwxNyArNTksMTggQEAgc3RhdGljIGJvb2wgaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eShKU0M6
OgogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgCiAgICAgLy8gMi4gSWYgTyBoYXMgYW4gb3du
IHByb3BlcnR5IG5hbWVkIFAsIHRoZW4gcmV0dXJuIGZhbHNlLgotICAgIEpTQzo6UHJvcGVydHlT
bG90IHNsb3QgeyAmdGhpc09iamVjdCwgSlNDOjpQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6R2V0T3duUHJvcGVydHkgfTsKKyAgICBKU0M6OlByb3BlcnR5U2xvdCBzbG90IHsgJnRo
aXNPYmplY3QsIEpTQzo6UHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWly
eSB9OwogICAgIGlmIChKU0M6OkpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QoJnRoaXNPYmpl
Y3QsICZzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIAogICAgIC8vIDMuIElmIE8gaW1wbGVtZW50cyBhbiBpbnRlcmZhY2UgdGhhdCBoYXMgdGhl
IFtPdmVycmlkZUJ1aWx0aW5zXSBleHRlbmRlZCBhdHRyaWJ1dGUsIHRoZW4gcmV0dXJuIHRydWUu
Ci0gICAgaWYgKG92ZXJyaWRlQnVpbHRpbnMpCisgICAgaWYgKG92ZXJyaWRlQnVpbHRpbnMgPT0g
T3ZlcnJpZGVCdWlsdGluczo6WWVzKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAogICAgIC8vIDQu
IEluaXRpYWxpemUgcHJvdG90eXBlIHRvIGJlIHRoZSB2YWx1ZSBvZiB0aGUgaW50ZXJuYWwgW1tQ
cm90b3R5cGVdXSBwcm9wZXJ0eSBvZiBPLgogICAgIC8vIDUuIFdoaWxlIHByb3RvdHlwZSBpcyBu
b3QgbnVsbDoKICAgICAvLyAgICAxLiBJZiBwcm90b3R5cGUgaXMgbm90IGEgbmFtZWQgcHJvcGVy
dGllcyBvYmplY3QsIGFuZCBwcm90b3R5cGUgaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCBQLCB0
aGVuIHJldHVybiBmYWxzZS4KKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGNoZWNraW5nIGZvciAn
bmFtZWQgcHJvcGVydGllcyBvYmplY3QnLgogICAgIC8vICAgIDIuIFNldCBwcm90b3R5cGUgdG8g
YmUgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5hbCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIHBy
b3RvdHlwZS4KICAgICBhdXRvIHByb3RvdHlwZSA9IHRoaXNPYmplY3QuZ2V0UHJvdG90eXBlRGly
ZWN0KCk7CiAgICAgaWYgKHByb3RvdHlwZS5pc09iamVjdCgpICYmIEpTQzo6YXNPYmplY3QocHJv
dG90eXBlKS0+Z2V0UHJvcGVydHlTbG90KCZzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKQEAg
LTc1LDQgKzgwLDQ0IEBAIHN0YXRpYyBib29sIGlzVmlzaWJsZU5hbWVkUHJvcGVydHkoSlNDOjoK
ICAgICByZXR1cm4gdHJ1ZTsKIH0KIAorLy8gQW4gaW1wbGVtZW50YXRpb24gb2YgdGhlICduYW1l
ZCBwcm9wZXJ0eSB2aXNpYmlsaXR5IGFsZ29yaXRobScgYXVnbWVudGVkIHRvIHJlcGxhY2UgdGhl
CisvLyAnc3VwcG9ydGVkIHByb3BlcnR5IG5hbWUnIGNoZWNrIHdpdGggZGlyZWN0IGFjY2VzcyB0
byB0aGUgaW1wbGVtZW50YXRpb24gdmFsdWUgcmV0dXJuZWQKKy8vIGZvciB0aGUgcHJvcGVydHkg
bmFtZSwgdmlhIHBhc3NlZCBpbiBmdW5jdG9yLiBUaGlzIGFsbG93cyB1cyB0byBhdm9pZCB0d28g
bG9va2luZyB1cCB0aGUKKy8vIHRoZSBwcm9wZXJ0eSBuYW1lIHR3aWNlOyBvbmNlIGZvciAnbmFt
ZWQgcHJvcGVydHkgdmlzaWJpbGl0eSBhbGdvcml0aG0nIGNoZWNrLCBhbmQgdGhlbgorLy8gYWdh
aW4gd2hlbiB0aGUgdmFsdWUgaXMgbmVlZGVkLgordGVtcGxhdGU8T3ZlcnJpZGVCdWlsdGlucyBv
dmVycmlkZUJ1aWx0aW5zLCBjbGFzcyBKU0NsYXNzLCBjbGFzcyBGdW5jdG9yPgorc3RhdGljIGF1
dG8gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHkoSlNDOjpFeGVjU3RhdGUmIHN0YXRlLCBKU0Ns
YXNzJiB0aGlzT2JqZWN0LCBKU0M6OlByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEZ1bmN0b3Im
JiBpdGVtQWNjZXNzb3IpIC0+IGRlY2x0eXBlKGl0ZW1BY2Nlc3Nvcih0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUpKQoreworICAgIC8vIE5PVEU6IFdoaWxlIGl0IGlzIG5vdCBzcGVjaWZpZWQsIGEg
U3ltYm9sIGNhbiBuZXZlciBiZSBhICdzdXBwb3J0ZWQgcHJvcGVydHkKKyAgICAvLyBuYW1lJyBz
byB3ZSBjaGVjayB0aGF0IGZpcnN0LgorICAgIGlmIChwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIDEuIElmIFAgaXMgbm90IGEg
c3VwcG9ydGVkIHByb3BlcnR5IG5hbWUgb2YgTywgdGhlbiByZXR1cm4gZmFsc2UuCisgICAgYXV0
byByZXN1bHQgPSBpdGVtQWNjZXNzb3IodGhpc09iamVjdCwgcHJvcGVydHlOYW1lKTsKKyAgICBp
ZiAoIXJlc3VsdCkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIDIuIElm
IE8gaGFzIGFuIG93biBwcm9wZXJ0eSBuYW1lZCBQLCB0aGVuIHJldHVybiBmYWxzZS4KKyAgICBK
U0M6OlByb3BlcnR5U2xvdCBzbG90IHsgJnRoaXNPYmplY3QsIEpTQzo6UHJvcGVydHlTbG90OjpJ
bnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OworICAgIGlmIChKU0M6OkpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3QoJnRoaXNPYmplY3QsICZzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KSkKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKworICAgIC8vIDMuIElmIE8gaW1wbGVt
ZW50cyBhbiBpbnRlcmZhY2UgdGhhdCBoYXMgdGhlIFtPdmVycmlkZUJ1aWx0aW5zXSBleHRlbmRl
ZCBhdHRyaWJ1dGUsIHRoZW4gcmV0dXJuIHRydWUuCisgICAgaWYgKG92ZXJyaWRlQnVpbHRpbnMg
PT0gT3ZlcnJpZGVCdWlsdGluczo6WWVzKQorICAgICAgICByZXR1cm4gcmVzdWx0OworCisgICAg
Ly8gNC4gSW5pdGlhbGl6ZSBwcm90b3R5cGUgdG8gYmUgdGhlIHZhbHVlIG9mIHRoZSBpbnRlcm5h
bCBbW1Byb3RvdHlwZV1dIHByb3BlcnR5IG9mIE8uCisgICAgLy8gNS4gV2hpbGUgcHJvdG90eXBl
IGlzIG5vdCBudWxsOgorICAgIC8vICAgIDEuIElmIHByb3RvdHlwZSBpcyBub3QgYSBuYW1lZCBw
cm9wZXJ0aWVzIG9iamVjdCwgYW5kIHByb3RvdHlwZSBoYXMgYW4gb3duIHByb3BlcnR5IG5hbWVk
IFAsIHRoZW4gcmV0dXJuIGZhbHNlLgorICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgY2hlY2tpbmcg
Zm9yICduYW1lZCBwcm9wZXJ0aWVzIG9iamVjdCcuCisgICAgLy8gICAgMi4gU2V0IHByb3RvdHlw
ZSB0byBiZSB0aGUgdmFsdWUgb2YgdGhlIGludGVybmFsIFtbUHJvdG90eXBlXV0gcHJvcGVydHkg
b2YgcHJvdG90eXBlLgorICAgIGF1dG8gcHJvdG90eXBlID0gdGhpc09iamVjdC5nZXRQcm90b3R5
cGVEaXJlY3QoKTsKKyAgICBpZiAocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgSlNDOjphc09iamVj
dChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3QoJnN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3Qp
KQorICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgLy8gNi4gUmV0dXJuIHRydWUu
CisgICAgcmV0dXJuIHJlc3VsdDsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3MvanMvSlNET01XaW5kb3dCYXNlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCShyZXZpc2lvbiAyMTgwNzApCisrKyBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2UuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yNDcsMzAgKzI0NywzMCBAQCBKU0RPTVdpbmRvd1NoZWxsKiBKU0RPTVdpbmRvd0Jhc2U6
OnNoZWxsCiAKIC8vIEpTRE9NR2xvYmFsT2JqZWN0KiBpcyBpZ25vcmVkLCBhY2Nlc3NpbmcgYSB3
aW5kb3cgaW4gYW55IGNvbnRleHQgd2lsbAogLy8gdXNlIHRoYXQgRE9NV2luZG93J3MgcHJvdG90
eXBlIGNoYWluLgotSlNWYWx1ZSB0b0pTKEV4ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmpl
Y3QqLCBET01XaW5kb3cmIGRvbVdpbmRvdykKK0pTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRl
LCBKU0RPTUdsb2JhbE9iamVjdCosIERPTVdpbmRvdyYgZG9tV2luZG93KQogewotICAgIHJldHVy
biB0b0pTKGV4ZWMsIGRvbVdpbmRvdyk7CisgICAgcmV0dXJuIHRvSlMoc3RhdGUsIGRvbVdpbmRv
dyk7CiB9CiAKLUpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIGV4ZWMsIERPTVdpbmRvdyYgZG9tV2lu
ZG93KQorSlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0ZSwgSlNET01HbG9iYWxPYmpl
Y3QqLCBGcmFtZSYgZnJhbWUpCiB7Ci0gICAgRnJhbWUqIGZyYW1lID0gZG9tV2luZG93LmZyYW1l
KCk7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwotICAgIHJldHVy
biBmcmFtZS0+c2NyaXB0KCkud2luZG93U2hlbGwoY3VycmVudFdvcmxkKGV4ZWMpKTsKKyAgICBy
ZXR1cm4gdG9KUyhzdGF0ZSwgZnJhbWUpOwogfQogCi1KU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRv
dyhGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCitKU1ZhbHVlIHRvSlMoRXhl
Y1N0YXRlKiBzdGF0ZSwgRE9NV2luZG93JiBkb21XaW5kb3cpCiB7Ci0gICAgaWYgKCFmcmFtZSkK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQoKS53aW5kb3dTaGVs
bCh3b3JsZCktPndpbmRvdygpOworICAgIHJldHVybiB0b0pTKHN0YXRlLCBkb21XaW5kb3cuZnJh
bWUoKSk7Cit9CisKK0pTRE9NV2luZG93KiB0b0pTRE9NV2luZG93KEZyYW1lJiBmcmFtZSwgRE9N
V3JhcHBlcldvcmxkJiB3b3JsZCkKK3sKKyAgICByZXR1cm4gZnJhbWUuc2NyaXB0KCkud2luZG93
U2hlbGwod29ybGQpLT53aW5kb3coKTsKIH0KIAogSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3co
SlNDOjpWTSYgdm0sIEpTVmFsdWUgdmFsdWUpCiB7CiAgICAgaWYgKCF2YWx1ZS5pc09iamVjdCgp
KQotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKICAgICB3aGls
ZSAoIXZhbHVlLmlzTnVsbCgpKSB7CiAgICAgICAgIEpTT2JqZWN0KiBvYmplY3QgPSBhc09iamVj
dCh2YWx1ZSk7CkBAIC0yODEsNyArMjgxLDcgQEAgSlNET01XaW5kb3cqIHRvSlNET01XaW5kb3co
SlNDOjpWTSYgdm0sIAogICAgICAgICAgICAgcmV0dXJuIGpzQ2FzdDxKU0RPTVdpbmRvd1NoZWxs
Kj4ob2JqZWN0KS0+d2luZG93KCk7CiAgICAgICAgIHZhbHVlID0gb2JqZWN0LT5nZXRQcm90b3R5
cGVEaXJlY3QoKTsKICAgICB9Ci0gICAgcmV0dXJuIDA7CisgICAgcmV0dXJuIG51bGxwdHI7CiB9
CiAKIERPTVdpbmRvdyYgaW5jdW1iZW50RE9NV2luZG93KEV4ZWNTdGF0ZSogZXhlYykKSW5kZXg6
IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93QmFzZS5oCShyZXZpc2lv
biAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RPTVdpbmRvd0Jhc2Uu
aAkod29ya2luZyBjb3B5KQpAQCAtODUsMTYgKzg1LDE4IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgSlNET01XaW5kb3dTaGVsbCogbV9zaGVsbDsKICAgICB9OwogCi0gICAgLy8gUmV0
dXJucyBhIEpTRE9NV2luZG93IG9yIGpzTnVsbCgpCi0gICAgLy8gSlNET01HbG9iYWxPYmplY3Qq
IGlzIGlnbm9yZWQsIGFjY2Vzc2luZyBhIHdpbmRvdyBpbiBhbnkgY29udGV4dCB3aWxsCi0gICAg
Ly8gdXNlIHRoYXQgRE9NV2luZG93J3MgcHJvdG90eXBlIGNoYWluLgorICAgIC8vIFRoZSBmb2xs
b3dpbmcgcmV0dXJuIGEgSlNET01XaW5kb3dTaGVsbCBvciBqc051bGwoKQorICAgIC8vIEpTRE9N
R2xvYmFsT2JqZWN0KiBpcyBpZ25vcmVkLCBhY2Nlc3NpbmcgYSB3aW5kb3cgaW4gYW55IGNvbnRl
eHQgd2lsbCB1c2UgdGhhdCBET01XaW5kb3cncyBwcm90b3R5cGUgY2hhaW4uCiAgICAgV0VCQ09S
RV9FWFBPUlQgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9i
amVjdCosIERPTVdpbmRvdyYpOwotICAgIGlubGluZSBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6OkV4
ZWNTdGF0ZSogZXhlYywgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgRE9NV2luZG93
KiB3aW5kb3cpIHsgcmV0dXJuIHdpbmRvdyA/IHRvSlMoZXhlYywgZ2xvYmFsT2JqZWN0LCAqd2lu
ZG93KSA6IEpTQzo6anNOdWxsKCk7IH0KKyAgICBpbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlND
OjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBET01X
aW5kb3cqIHdpbmRvdykgeyByZXR1cm4gd2luZG93ID8gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0
LCAqd2luZG93KSA6IEpTQzo6anNOdWxsKCk7IH0KKyAgICBKU0M6OkpTVmFsdWUgdG9KUyhKU0M6
OkV4ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgRnJhbWUmKTsKKyAgICBpbmxpbmUgSlND
OjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCog
Z2xvYmFsT2JqZWN0LCBGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGZyYW1lID8gdG9KUyhzdGF0ZSwg
Z2xvYmFsT2JqZWN0LCAqZnJhbWUpIDogSlNDOjpqc051bGwoKTsgfQogICAgIEpTQzo6SlNWYWx1
ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgRE9NV2luZG93Jik7Ci0gICAgaW5saW5lIEpTQzo6SlNW
YWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBleGVjLCBET01XaW5kb3cqIHdpbmRvdykgeyByZXR1
cm4gd2luZG93ID8gdG9KUyhleGVjLCAqd2luZG93KSA6IEpTQzo6anNOdWxsKCk7IH0KKyAgICBp
bmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBET01XaW5kb3cq
IHdpbmRvdykgeyByZXR1cm4gd2luZG93ID8gdG9KUyhzdGF0ZSwgKndpbmRvdykgOiBKU0M6Ompz
TnVsbCgpOyB9CiAKLSAgICAvLyBSZXR1cm5zIEpTRE9NV2luZG93IG9yIDAKLSAgICBKU0RPTVdp
bmRvdyogdG9KU0RPTVdpbmRvdyhGcmFtZSosIERPTVdyYXBwZXJXb3JsZCYpOworICAgIC8vIFRo
ZSBmb2xsb3dpbmcgcmV0dXJuIGEgSlNET01XaW5kb3cgb3IgbnVsbHB0ci4KKyAgICBKU0RPTVdp
bmRvdyogdG9KU0RPTVdpbmRvdyhGcmFtZSYsIERPTVdyYXBwZXJXb3JsZCYpOworICAgIGlubGlu
ZSBKU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRvdyhGcmFtZSogZnJhbWUsIERPTVdyYXBwZXJXb3Js
ZCYgd29ybGQpIHsgcmV0dXJuIGZyYW1lID8gdG9KU0RPTVdpbmRvdygqZnJhbWUsIHdvcmxkKSA6
IG51bGxwdHI7IH0KICAgICBXRUJDT1JFX0VYUE9SVCBKU0RPTVdpbmRvdyogdG9KU0RPTVdpbmRv
dyhKU0M6OlZNJiwgSlNDOjpKU1ZhbHVlKTsKIAogICAgIC8vIERPTVdpbmRvdyBhc3NvY2lhdGVk
IHdpdGggZ2xvYmFsIG9iamVjdCBvZiB0aGUgIm1vc3QtcmVjZW50bHktZW50ZXJlZCBhdXRob3Ig
ZnVuY3Rpb24gb3Igc2NyaXB0CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0RP
TVdpbmRvd1NoZWxsLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9q
cy9KU0RPTVdpbmRvd1NoZWxsLmNwcAkocmV2aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEx
OCwxOCArMTE4LDE0IEBAIERPTVdpbmRvdyogSlNET01XaW5kb3dTaGVsbDo6dG9XcmFwcGVkKFYK
IC8vIENvbnZlcnNpb24gbWV0aG9kcwogLy8gLS0tLQogCi1KU1ZhbHVlIHRvSlMoRXhlY1N0YXRl
KiBleGVjLCBGcmFtZSogZnJhbWUpCitKU1ZhbHVlIHRvSlMoRXhlY1N0YXRlKiBleGVjLCBGcmFt
ZSYgZnJhbWUpCiB7Ci0gICAgaWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIGpzTnVsbCgpOwot
ICAgIHJldHVybiBmcmFtZS0+c2NyaXB0KCkud2luZG93U2hlbGwoY3VycmVudFdvcmxkKGV4ZWMp
KTsKKyAgICByZXR1cm4gZnJhbWUuc2NyaXB0KCkud2luZG93U2hlbGwoY3VycmVudFdvcmxkKGV4
ZWMpKTsKIH0KIAotSlNET01XaW5kb3dTaGVsbCogdG9KU0RPTVdpbmRvd1NoZWxsKEZyYW1lKiBm
cmFtZSwgRE9NV3JhcHBlcldvcmxkJiB3b3JsZCkKK0pTRE9NV2luZG93U2hlbGwqIHRvSlNET01X
aW5kb3dTaGVsbChGcmFtZSYgZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCiB7Ci0gICAg
aWYgKCFmcmFtZSkKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgcmV0dXJuIGZyYW1lLT5zY3JpcHQo
KS53aW5kb3dTaGVsbCh3b3JsZCk7CisgICAgcmV0dXJuIGZyYW1lLnNjcmlwdCgpLndpbmRvd1No
ZWxsKHdvcmxkKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpJbmRleDogU291cmNlL1dl
YkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTRE9NV2luZG93U2hlbGwuaAkocmV2aXNpb24gMjE4MDcw
KQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNET01XaW5kb3dTaGVsbC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zNCw0NCArMzQsNTEgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi0g
ICAgY2xhc3MgRnJhbWU7CitjbGFzcyBGcmFtZTsKIAotICAgIGNsYXNzIEpTRE9NV2luZG93U2hl
bGwgOiBwdWJsaWMgSlNDOjpKU1Byb3h5IHsKLSAgICAgICAgdHlwZWRlZiBKU0M6OkpTUHJveHkg
QmFzZTsKLSAgICBwdWJsaWM6Ci0gICAgICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDZWxsKik7
CisvLyBGSVhNRTogUmVuYW1lIHRvIEpTRE9NV2luZG93UHJveHkgb3IgSlNXaW5kb3dQcm94eSB0
byBtYXRjaCBIVE1MIHNwZWMgbmFtaW5nLiAoaHR0cHM6Ly93ZWJraXQub3JnL2IvODA3MzMpCitj
bGFzcyBKU0RPTVdpbmRvd1NoZWxsIDogcHVibGljIEpTQzo6SlNQcm94eSB7CisgICAgdHlwZWRl
ZiBKU0M6OkpTUHJveHkgQmFzZTsKK3B1YmxpYzoKKyAgICBzdGF0aWMgdm9pZCBkZXN0cm95KEpT
Q2VsbCopOworCisgICAgSlNET01XaW5kb3cqIHdpbmRvdygpIGNvbnN0IHsgcmV0dXJuIEpTQzo6
anNDYXN0PEpTRE9NV2luZG93Kj4odGFyZ2V0KCkpOyB9CisgICAgdm9pZCBzZXRXaW5kb3coSlND
OjpWTSYsIEpTRE9NV2luZG93Kik7CisgICAgdm9pZCBzZXRXaW5kb3coUmVmUHRyPERPTVdpbmRv
dz4mJik7CisKKyAgICBERUNMQVJFX0lORk87CisKKyAgICBET01XaW5kb3cmIHdyYXBwZWQoKSBj
b25zdDsKKyAgICBzdGF0aWMgV0VCQ09SRV9FWFBPUlQgRE9NV2luZG93KiB0b1dyYXBwZWQoSlND
OjpWTSYsIEpTQzo6SlNPYmplY3QqKTsKKworICAgIHN0YXRpYyBKU0RPTVdpbmRvd1NoZWxsKiBj
cmVhdGUoSlNDOjpWTSYgdm0sIFJlZlB0cjxET01XaW5kb3c+JiYgd2luZG93LCBKU0M6OlN0cnVj
dHVyZSogc3RydWN0dXJlLCBET01XcmFwcGVyV29ybGQmIHdvcmxkKQorICAgIHsKKyAgICAgICAg
SlNET01XaW5kb3dTaGVsbCogc2hlbGwgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxs
PEpTRE9NV2luZG93U2hlbGw+KHZtLmhlYXApKSBKU0RPTVdpbmRvd1NoZWxsKHZtLCBzdHJ1Y3R1
cmUsIHdvcmxkKTsKKyAgICAgICAgc2hlbGwtPmZpbmlzaENyZWF0aW9uKHZtLCBXVEZNb3ZlKHdp
bmRvdykpOworICAgICAgICByZXR1cm4gc2hlbGw7CisgICAgfQorCisgICAgc3RhdGljIEpTQzo6
U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUoSlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSBwcm90
b3R5cGUpCisgICAgeworICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
MCwgcHJvdG90eXBlLCBKU0M6OlR5cGVJbmZvKEpTQzo6UHVyZUZvcndhcmRpbmdQcm94eVR5cGUs
IFN0cnVjdHVyZUZsYWdzKSwgaW5mbygpKTsKKyAgICB9CisKKyAgICBET01XcmFwcGVyV29ybGQm
IHdvcmxkKCkgeyByZXR1cm4gbV93b3JsZDsgfQorCitwcm90ZWN0ZWQ6CisgICAgSlNET01XaW5k
b3dTaGVsbChKU0M6OlZNJiwgSlNDOjpTdHJ1Y3R1cmUqLCBET01XcmFwcGVyV29ybGQmKTsKKyAg
ICB2b2lkIGZpbmlzaENyZWF0aW9uKEpTQzo6Vk0mLCBSZWZQdHI8RE9NV2luZG93PiYmKTsKKwor
ICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Cit9OworCisvLyBKU0RPTVdpbmRvd1No
ZWxsIGlzIGEgbGl0dGxlIG9kZCBpbiB0aGF0IGl0J3Mgbm90IGEgdHJhZGl0aW9uYWwgd3JhcHBl
ciBhbmQgaGFzIG5vIGJhY2sgcG9pbnRlci4gSXQKKy8vIGlzIGhvd2V2ZXIgc3Ryb25nbHkgb3du
ZWQgYnkgRnJhbWUgKHZpYSBpdHMgU2NyaXB0Q29udHJvbGxlciksIGFuZCB0aGVyZWZvcmUsIHRv
IGdldCB0aGUgSlNET01XaW5kb3dTaGVsbAorLy8gYSBGcmFtZSBpcyBwYXNzZWQuCitKU0M6OkpT
VmFsdWUgdG9KUyhKU0M6OkV4ZWNTdGF0ZSosIEZyYW1lJik7CitpbmxpbmUgSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBGcmFtZSogZnJhbWUpIHsgcmV0dXJuIGZyYW1l
ID8gdG9KUyhzdGF0ZSwgKmZyYW1lKSA6IEpTQzo6anNOdWxsKCk7IH0KIAotICAgICAgICBKU0RP
TVdpbmRvdyogd2luZG93KCkgY29uc3QgeyByZXR1cm4gSlNDOjpqc0Nhc3Q8SlNET01XaW5kb3cq
Pih0YXJnZXQoKSk7IH0KLSAgICAgICAgdm9pZCBzZXRXaW5kb3coSlNDOjpWTSYsIEpTRE9NV2lu
ZG93Kik7Ci0gICAgICAgIHZvaWQgc2V0V2luZG93KFJlZlB0cjxET01XaW5kb3c+JiYpOwotCi0g
ICAgICAgIERFQ0xBUkVfSU5GTzsKLQotICAgICAgICBET01XaW5kb3cmIHdyYXBwZWQoKSBjb25z
dDsKLSAgICAgICAgc3RhdGljIFdFQkNPUkVfRVhQT1JUIERPTVdpbmRvdyogdG9XcmFwcGVkKEpT
Qzo6Vk0mLCBKU0M6OkpTT2JqZWN0Kik7Ci0KLSAgICAgICAgc3RhdGljIEpTRE9NV2luZG93U2hl
bGwqIGNyZWF0ZShKU0M6OlZNJiB2bSwgUmVmUHRyPERPTVdpbmRvdz4mJiB3aW5kb3csIEpTQzo6
U3RydWN0dXJlKiBzdHJ1Y3R1cmUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpCi0gICAgICAgIHsK
LSAgICAgICAgICAgIEpTRE9NV2luZG93U2hlbGwqIHNoZWxsID0gbmV3IChOb3ROdWxsLCBKU0M6
OmFsbG9jYXRlQ2VsbDxKU0RPTVdpbmRvd1NoZWxsPih2bS5oZWFwKSkgSlNET01XaW5kb3dTaGVs
bCh2bSwgc3RydWN0dXJlLCB3b3JsZCk7Ci0gICAgICAgICAgICBzaGVsbC0+ZmluaXNoQ3JlYXRp
b24odm0sIFdURk1vdmUod2luZG93KSk7Ci0gICAgICAgICAgICByZXR1cm4gc2hlbGw7IAotICAg
ICAgICB9Ci0KLSAgICAgICAgc3RhdGljIEpTQzo6U3RydWN0dXJlKiBjcmVhdGVTdHJ1Y3R1cmUo
SlNDOjpWTSYgdm0sIEpTQzo6SlNWYWx1ZSBwcm90b3R5cGUpIAotICAgICAgICB7Ci0gICAgICAg
ICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwgMCwgcHJvdG90eXBlLCBKU0M6
OlR5cGVJbmZvKEpTQzo6UHVyZUZvcndhcmRpbmdQcm94eVR5cGUsIFN0cnVjdHVyZUZsYWdzKSwg
aW5mbygpKTsKLSAgICAgICAgfQotCi0gICAgICAgIERPTVdyYXBwZXJXb3JsZCYgd29ybGQoKSB7
IHJldHVybiBtX3dvcmxkOyB9Ci0KLSAgICBwcm90ZWN0ZWQ6Ci0gICAgICAgIEpTRE9NV2luZG93
U2hlbGwoSlNDOjpWTSYsIEpTQzo6U3RydWN0dXJlKiwgRE9NV3JhcHBlcldvcmxkJik7Ci0gICAg
ICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYsIFJlZlB0cjxET01XaW5kb3c+JiYpOwot
Ci0gICAgICAgIFJlZjxET01XcmFwcGVyV29ybGQ+IG1fd29ybGQ7Ci0gICAgfTsKLQotICAgIEpT
Qzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiwgRnJhbWUqKTsKLSAgICBKU0RPTVdpbmRv
d1NoZWxsKiB0b0pTRE9NV2luZG93U2hlbGwoRnJhbWUqLCBET01XcmFwcGVyV29ybGQmKTsKK0pT
RE9NV2luZG93U2hlbGwqIHRvSlNET01XaW5kb3dTaGVsbChGcmFtZSYsIERPTVdyYXBwZXJXb3Js
ZCYpOworaW5saW5lIEpTRE9NV2luZG93U2hlbGwqIHRvSlNET01XaW5kb3dTaGVsbChGcmFtZSog
ZnJhbWUsIERPTVdyYXBwZXJXb3JsZCYgd29ybGQpIHsgcmV0dXJuIGZyYW1lID8gdG9KU0RPTVdp
bmRvd1NoZWxsKCpmcmFtZSwgd29ybGQpIDogbnVsbHB0cjsgfQogCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1
c3RvbS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3MvanMvSlNIVE1M
RG9jdW1lbnRDdXN0b20uY3BwCShyZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qcy9KU0hUTUxEb2N1bWVudEN1c3RvbS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTI2
LDcgKzI2LDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU0hUTUxEb2N1bWVu
dC5oIgogCi0jaW5jbHVkZSAiSFRNTElGcmFtZUVsZW1lbnQuaCIKKyNpbmNsdWRlICJKU0RPTUFi
c3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NV2luZG93Q3VzdG9tLmgiCiAjaW5j
bHVkZSAiSlNIVE1MQ29sbGVjdGlvbi5oIgogI2luY2x1ZGUgIlNlZ21lbnRlZFN0cmluZy5oIgpA
QCAtNTUsNTAgKzU1LDI4IEBAIEpTVmFsdWUgdG9KUyhFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUds
b2IKIAogYm9vbCBKU0hUTUxEb2N1bWVudDo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3Bl
cnR5U2xvdCYgc2xvdCkKIHsKLSAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2FzdDxKU0hUTUxE
b2N1bWVudCo+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3Qs
IGluZm8oKSk7Ci0KKyAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTSFRNTERvY3VtZW50
Kj4ob2JqZWN0KTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGlu
Zm8oKSk7CisgICAgCiAgICAgaWYgKHByb3BlcnR5TmFtZSA9PSAib3BlbiIpIHsKLSAgICAgICAg
aWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCgmdGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgc2xvdCkpCisgICAgICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCiAgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgc2xvdC5zZXRDdXN0b20oJnRoaXNPYmplY3QsIFJlYWRPbmx5IHwgRG9udERl
bGV0ZSB8IERvbnRFbnVtLCBub25DYWNoaW5nU3RhdGljRnVuY3Rpb25HZXR0ZXI8anNIVE1MRG9j
dW1lbnRQcm90b3R5cGVGdW5jdGlvbk9wZW4sIDI+KTsKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgfQotCi0gICAgSlNWYWx1ZSB2YWx1ZTsKLSAgICBpZiAodGhpc09iamVjdC5uYW1lR2V0dGVy
KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKCZ0
aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBEb250RW51bSwgdmFsdWUpOworICAg
ICAgICBzbG90LnNldEN1c3RvbSh0aGlzT2JqZWN0LCBSZWFkT25seSB8IERvbnREZWxldGUgfCBE
b250RW51bSwgbm9uQ2FjaGluZ1N0YXRpY0Z1bmN0aW9uR2V0dGVyPGpzSFRNTERvY3VtZW50UHJv
dG90eXBlRnVuY3Rpb25PcGVuLCAyPik7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAot
ICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QoJnRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpOwotfQotCi1ib29sIEpTSFRNTERvY3VtZW50OjpuYW1lR2V0dGVy
KEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUmIHZh
bHVlKQotewotICAgIGF1dG8mIGRvY3VtZW50ID0gd3JhcHBlZCgpOwotCi0gICAgYXV0byogYXRv
bWljUHJvcGVydHlOYW1lID0gcHJvcGVydHlOYW1lLnB1YmxpY05hbWUoKTsKLSAgICBpZiAoIWF0
b21pY1Byb3BlcnR5TmFtZSB8fCAhZG9jdW1lbnQuaGFzRG9jdW1lbnROYW1lZEl0ZW0oKmF0b21p
Y1Byb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmIChVTkxJS0VM
WShkb2N1bWVudC5kb2N1bWVudE5hbWVkSXRlbUNvbnRhaW5zTXVsdGlwbGVFbGVtZW50cygqYXRv
bWljUHJvcGVydHlOYW1lKSkpIHsKLSAgICAgICAgYXV0byBjb2xsZWN0aW9uID0gZG9jdW1lbnQu
ZG9jdW1lbnROYW1lZEl0ZW1zKGF0b21pY1Byb3BlcnR5TmFtZSk7Ci0gICAgICAgIEFTU0VSVChj
b2xsZWN0aW9uLT5sZW5ndGgoKSA+IDEpOwotICAgICAgICB2YWx1ZSA9IHRvSlMoc3RhdGUsIGds
b2JhbE9iamVjdCgpLCBjb2xsZWN0aW9uKTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURM
VW5pb248SURMSW50ZXJmYWNlPERPTVdpbmRvdz4sIElETEludGVyZmFjZTxFbGVtZW50PiwgSURM
SW50ZXJmYWNlPEhUTUxDb2xsZWN0aW9uPj47CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10g
KGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5
cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRv
IHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0
b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjpp
c051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklE
TFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZy
b21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAg
fTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVy
dHk8T3ZlcnJpZGVCdWlsdGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5h
bWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwg
UmVhZE9ubHksIHRvSlM8R2V0dGVySURMVHlwZT4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFs
T2JqZWN0KCksIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSkpOwogICAgICAgICByZXR1
cm4gdHJ1ZTsKICAgICB9Ci0KLSAgICBhdXRvJiBlbGVtZW50ID0gKmRvY3VtZW50LmRvY3VtZW50
TmFtZWRJdGVtKCphdG9taWNQcm9wZXJ0eU5hbWUpOwotICAgIGlmIChVTkxJS0VMWShpczxIVE1M
SUZyYW1lRWxlbWVudD4oZWxlbWVudCkpKSB7Ci0gICAgICAgIGlmIChhdXRvKiBmcmFtZSA9IGRv
d25jYXN0PEhUTUxJRnJhbWVFbGVtZW50PihlbGVtZW50KS5jb250ZW50RnJhbWUoKSkgewotICAg
ICAgICAgICAgdmFsdWUgPSB0b0pTKHN0YXRlLCBmcmFtZSk7Ci0gICAgICAgICAgICByZXR1cm4g
dHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLQotICAgIHZhbHVlID0gdG9KUyhzdGF0ZSwgZ2xvYmFs
T2JqZWN0KCksIGVsZW1lbnQpOwotICAgIHJldHVybiB0cnVlOworICAgIHJldHVybiBKU09iamVj
dDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7
CiB9CiAKIC8vIEN1c3RvbSBhdHRyaWJ1dGVzCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5n
cy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZyYW1lU2V0RWxlbWVudEN1c3RvbS5jcHAJKHJl
dmlzaW9uIDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL2pzL0pTSFRNTEZyYW1l
U2V0RWxlbWVudEN1c3RvbS5jcHAJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NiArMCwwIEBACi0vKgot
ICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KLSAqCi0gKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKLSAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwotICogYXJlIG1ldDoKLSAqIDEuIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0Ci0gKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93
aW5nIGRpc2NsYWltZXIuCi0gKiAyLiBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAotICogICAgbm90aWNlLCB0aGlzIGxpc3Qg
b2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAg
ZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRp
c3RyaWJ1dGlvbi4KLSAqCi0gKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIElO
Qy4gYGBBUyBJUycnIEFORCBBTlkKLSAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFCi0gKiBJTVBMSUVEIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIKLSAqIFBVUlBP
U0UgQVJFIERJU0NMQUlNRUQuICBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBJTkMuIE9SCi0gKiBD
T05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwKLSAqIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywKLSAqIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUg
R09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLCBEQVRBLCBPUgotICogUFJPRklUUzsgT1Ig
QlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZIFRIRU9SWQot
ICogT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBP
UiBUT1JUCi0gKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElO
IEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKLSAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURW
SVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuIAotICovCi0KLSNpbmNsdWRl
ICJjb25maWcuaCIKLSNpbmNsdWRlICJKU0hUTUxGcmFtZVNldEVsZW1lbnQuaCIKLQotI2luY2x1
ZGUgIkRvY3VtZW50LmgiCi0jaW5jbHVkZSAiSFRNTENvbGxlY3Rpb24uaCIKLSNpbmNsdWRlICJI
VE1MRnJhbWVFbGVtZW50LmgiCi0jaW5jbHVkZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgotI2lu
Y2x1ZGUgIkpTRE9NV2luZG93LmgiCi0jaW5jbHVkZSAiSlNET01XaW5kb3dTaGVsbC5oIgotI2lu
Y2x1ZGUgIkpTRE9NQmluZGluZy5oIgotCi11c2luZyBuYW1lc3BhY2UgSlNDOwotCi1uYW1lc3Bh
Y2UgV2ViQ29yZSB7Ci0KLWJvb2wgSlNIVE1MRnJhbWVTZXRFbGVtZW50OjpuYW1lR2V0dGVyKEV4
ZWNTdGF0ZSogZXhlYywgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSYgdmFsdWUp
Ci17Ci0gICAgYXV0byogZnJhbWVFbGVtZW50ID0gd3JhcHBlZCgpLmNoaWxkcmVuKCktPm5hbWVk
SXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICBpZiAo
IWlzPEhUTUxGcmFtZUVsZW1lbnQ+KGZyYW1lRWxlbWVudCkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmIChhdXRvKiBkb2N1bWVudCA9IGRvd25jYXN0PEhUTUxGcmFtZUVsZW1lbnQ+
KCpmcmFtZUVsZW1lbnQpLmNvbnRlbnREb2N1bWVudCgpKSB7Ci0gICAgICAgIGlmIChKU0RPTVdp
bmRvd1NoZWxsKiB3aW5kb3cgPSB0b0pTRE9NV2luZG93U2hlbGwoZG9jdW1lbnQtPmZyYW1lKCks
IGN1cnJlbnRXb3JsZChleGVjKSkpIHsKLSAgICAgICAgICAgIHZhbHVlID0gd2luZG93OwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KLSAgICB9Ci0gICAgcmV0dXJuIGZhbHNl
OwotfQotCi19IC8vIG5hbWVzcGFjZSBXZWJDb3JlCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9qcy9KU0hUTUxGcmFtZVNldEVsZW1lbnRDdXN0b20uY3BwCl9f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCwwICMjCi1uYXRpdmUKXCBO
byBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0KPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy9Db2RlR2VuZXJhdG9ySlMucG0JKHJldmlzaW9uIDIxODA3MCkK
KysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvQ29kZUdlbmVyYXRvckpTLnBtCSh3
b3JraW5nIGNvcHkpCkBAIC0yOTYsNyArMjk2LDcgQEAgc3ViIEFkZFRvSW5jbHVkZXNGb3JJRExU
eXBlCiAgICAgcmV0dXJuIGlmICRjb2RlR2VuZXJhdG9yLT5Jc1R5cGVkQXJyYXlUeXBlKCR0eXBl
KTsKICAgICByZXR1cm4gaWYgJHR5cGUtPm5hbWUgZXEgImFueSI7CiAgICAgcmV0dXJuIGlmICR0
eXBlLT5uYW1lIGVxICJvYmplY3QiOwotCisgICAgCiAgICAgaWYgKCR0eXBlLT5pc1VuaW9uKSB7
CiAgICAgICAgIEFkZFRvSW5jbHVkZXMoIjx3dGYvVmFyaWFudC5oPiIsICRpbmNsdWRlc1JlZiwg
JGNvbmRpdGlvbmFsKTsKIApAQCAtNDA2LDE3MiArNDA2LDMwNyBAQCBzdWIgU2hvdWxkVXNlR2xv
YmFsT2JqZWN0UHJvdG90eXBlCiAKIHN1YiBHZW5lcmF0ZUluZGV4ZWRHZXR0ZXIKIHsKLSAgICBt
eSAoJG91dHB1dEFycmF5LCAkaW5kZW50LCAkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRlck9wZXJh
dGlvbikgPSBAXzsKKyAgICBteSAoJGludGVyZmFjZSwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24s
ICRpbmRleEV4cHJlc3Npb24pID0gQF87CisgICAgCisgICAgIyBOT1RFOiBUaGlzIGFic3RyYWN0
bHkgaW1wbGVtZW50cyBzdGVwcyAxLjIuMSAtIDEuMi44IG9mIHRoZSBMZWdhY3lQbGF0Zm9ybU9i
amVjdEdldE93blByb3BlcnR5CisgICAgIyAgICAgICBhbGdvcml0aG0uIFJldHVyaW5nIHRoZSBj
b252ZXJzaW9uIGV4cHJlc3Npb24gYW5kIGF0dHJpYnV0ZXMgZXhwcmVzc2lvbiBmb3IgdXNlCisg
ICAgIyAgICAgICBieSB0aGUgY2FsbGVyLgorICAgIAorICAgICMgMS4yLjEgTGV0IG9wZXJhdGlv
biBiZSB0aGUgb3BlcmF0aW9uIHVzZWQgdG8gZGVjbGFyZSB0aGUgaW5kZXhlZCBwcm9wZXJ0eSBn
ZXR0ZXIuCisgICAgIyAxLjIuMiBMZXQgdmFsdWUgYmUgYW4gdW5pbml0aWFsaXplZCB2YXJpYWJs
ZS4KKyAgICAjIDEuMi4zIElmIG9wZXJhdGlvbiB3YXMgZGVmaW5lZCB3aXRob3V0IGFuIGlkZW50
aWZpZXIsIHRoZW4gc2V0IHZhbHVlIHRvIHRoZSByZXN1bHQKKyAgICAjICAgICAgIG9mIHBlcmZv
cm1pbmcgdGhlIHN0ZXBzIGxpc3RlZCBpbiB0aGUgaW50ZXJmYWNlIGRlc2NyaXB0aW9uIHRvIGRl
dGVybWluZSB0aGUKKyAgICAjICAgICAgIHZhbHVlIG9mIGFuIGluZGV4ZWQgcHJvcGVydHkgd2l0
aCBpbmRleCBhcyB0aGUgaW5kZXguCisgICAgIyAxLjIuNCBPdGhlcndpc2UsIG9wZXJhdGlvbiB3
YXMgZGVmaW5lZCB3aXRoIGFuIGlkZW50aWZpZXIuIFNldCB2YWx1ZSB0byB0aGUgcmVzdWx0Cisg
ICAgIyAgICAgICBvZiBwZXJmb3JtaW5nIHRoZSBzdGVwcyBsaXN0ZWQgaW4gdGhlIGRlc2NyaXB0
aW9uIG9mIG9wZXJhdGlvbiB3aXRoIGluZGV4IGFzCisgICAgIyAgICAgICB0aGUgb25seSBhcmd1
bWVudCB2YWx1ZS4KKyAgICAjIDEuMi41IExldCBkZXNjIGJlIGEgbmV3bHkgY3JlYXRlZCBQcm9w
ZXJ0eSBEZXNjcmlwdG9yIHdpdGggbm8gZmllbGRzLgorICAgICMgMS4yLjYgU2V0IGRlc2MuW1tW
YWx1ZV1dIHRvIHRoZSByZXN1bHQgb2YgY29udmVydGluZyB2YWx1ZSB0byBhbiBFQ01BU2NyaXB0
IHZhbHVlLgorICAgICMgMS4yLjcgSWYgTyBpbXBsZW1lbnRzIGFuIGludGVyZmFjZSB3aXRoIGFu
IGluZGV4ZWQgcHJvcGVydHkgc2V0dGVyLCB0aGVuIHNldAorICAgICMgICAgICAgZGVzYy5bW1dy
aXRhYmxlXV0gdG8gdHJ1ZSwgb3RoZXJ3aXNlIHNldCBpdCB0byBmYWxzZS4KKyAgICAjIDEuMi44
IFJldHVybiBkZXNjLgogICAgIAogICAgIG15IEBhdHRyaWJ1dGVzID0gKCk7CiAgICAgcHVzaChA
YXR0cmlidXRlcywgIlJlYWRPbmx5IikgaWYgIUdldEluZGV4ZWRTZXR0ZXJPcGVyYXRpb24oJGlu
dGVyZmFjZSkgJiYgISRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVk
U2V0dGVyfTsKLQorICAgIAogICAgIG15ICRhdHRyaWJ1dGVTdHJpbmcgPSAoKEBhdHRyaWJ1dGVz
ID4gMCkgPyBqb2luKCIgfCAiLCBAYXR0cmlidXRlcykgOiAiMCIpOwogCiAgICAgbXkgJGluZGV4
ZWRHZXR0ZXJGdW5jdGlvbk5hbWUgPSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRB
dHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24tPm5h
bWUgfHwgIml0ZW0iOwotICAgIG15ICRuYXRpdmVUb0pTQ29udmVyc2lvbiA9IE5hdGl2ZVRvSlNW
YWx1ZVVzaW5nUG9pbnRlcnMoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24sICRpbnRlcmZhY2UsICJ0
aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtpbmRleGVkR2V0dGVyRnVuY3Rpb25OYW1lfShpbmRleCki
LCAiKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpIik7Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICRpbmRlbnQgLiAic2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAke2F0dHJpYnV0ZVN0cmlu
Z30sICR7bmF0aXZlVG9KU0NvbnZlcnNpb259KTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRBcnJh
eSwgJGluZGVudCAuICJyZXR1cm4gdHJ1ZTtcbiIpOworICAgIG15ICRuYXRpdmVUb0pTQ29udmVy
c2lvbiA9IE5hdGl2ZVRvSlNWYWx1ZVVzaW5nUG9pbnRlcnMoJGluZGV4ZWRHZXR0ZXJPcGVyYXRp
b24sICRpbnRlcmZhY2UsICJ0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtpbmRleGVkR2V0dGVyRnVu
Y3Rpb25OYW1lfSgke2luZGV4RXhwcmVzc2lvbn0pIiwgIip0aGlzT2JqZWN0LT5nbG9iYWxPYmpl
Y3QoKSIpOworICAgIAorICAgIHJldHVybiAoJG5hdGl2ZVRvSlNDb252ZXJzaW9uLCAkYXR0cmli
dXRlU3RyaW5nKTsKIH0KIAogc3ViIEdlbmVyYXRlTmFtZWRHZXR0ZXIKIHsKLSAgICBteSAoJG91
dHB1dEFycmF5LCAkaW5kZW50LCAkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24pID0g
QF87Ci0KKyAgICBteSAoJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRQ
cm9wZXJ0eUV4cHJlc3Npb24pID0gQF87CisgICAgCisgICAgIyBOT1RFOiBUaGlzIGFic3RyYWN0
bHkgaW1wbGVtZW50cyBzdGVwcyAyLjEgLSAyLjEwIG9mIHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVj
dEdldE93blByb3BlcnR5CisgICAgIyAgICAgICBhbGdvcml0aG0uIFJldHVyaW5nIHRoZSBjb252
ZXJzaW9uIGV4cHJlc3Npb24gYW5kIGF0dHJpYnV0ZXMgZXhwcmVzc2lvbiBmb3IgdXNlCisgICAg
IyAgICAgICBieSB0aGUgY2FsbGVyLgorICAgIAorICAgICMgMi4xICBMZXQgb3BlcmF0aW9uIGJl
IHRoZSBvcGVyYXRpb24gdXNlZCB0byBkZWNsYXJlIHRoZSBuYW1lZCBwcm9wZXJ0eSBnZXR0ZXIu
CisgICAgIyAyLjIgIExldCB2YWx1ZSBiZSBhbiB1bmluaXRpYWxpemVkIHZhcmlhYmxlLgorICAg
ICMgMi4zICBJZiBvcGVyYXRpb24gd2FzIGRlZmluZWQgd2l0aG91dCBhbiBpZGVudGlmaWVyLCB0
aGVuIHNldCB2YWx1ZSB0byB0aGUgcmVzdWx0CisgICAgIyAgICAgIG9mIHBlcmZvcm1pbmcgdGhl
IHN0ZXBzIGxpc3RlZCBpbiB0aGUgaW50ZXJmYWNlIGRlc2NyaXB0aW9uIHRvIGRldGVybWluZSB0
aGUKKyAgICAjICAgICAgdmFsdWUgb2YgYSBuYW1lZCBwcm9wZXJ0eSB3aXRoIFAgYXMgdGhlIG5h
bWUuCisgICAgIyAyLjQgIE90aGVyd2lzZSwgb3BlcmF0aW9uIHdhcyBkZWZpbmVkIHdpdGggYW4g
aWRlbnRpZmllci4gU2V0IHZhbHVlIHRvIHRoZSByZXN1bHQKKyAgICAjICAgICAgb2YgcGVyZm9y
bWluZyB0aGUgc3RlcHMgbGlzdGVkIGluIHRoZSBkZXNjcmlwdGlvbiBvZiBvcGVyYXRpb24gd2l0
aCBQIGFzIHRoZQorICAgICMgICAgICBvbmx5IGFyZ3VtZW50IHZhbHVlLi4KKyAgICAjIDIuNSAg
TGV0IGRlc2MgYmUgYSBuZXdseSBjcmVhdGVkIFByb3BlcnR5IERlc2NyaXB0b3Igd2l0aCBubyBm
aWVsZHMuCisgICAgIyAyLjYgIFNldCBkZXNjLltbVmFsdWVdXSB0byB0aGUgcmVzdWx0IG9mIGNv
bnZlcnRpbmcgdmFsdWUgdG8gYW4gRUNNQVNjcmlwdCB2YWx1ZS4KKyAgICAjIDIuNyAgSWYgTyBp
bXBsZW1lbnRzIGFuIGludGVyZmFjZSB3aXRoIGEgbmFtZWQgcHJvcGVydHkgc2V0dGVyLCB0aGVu
IHNldCBkZXNjLltbV3JpdGFibGVdXQorICAgICMgICAgICB0byB0cnVlLCBvdGhlcndpc2Ugc2V0
IGl0IHRvIGZhbHNlLgorICAgICMgMi44ICBJZiBPIGltcGxlbWVudHMgYW4gaW50ZXJmYWNlIHdp
dGggdGhlIFtMZWdhY3lVbmVudW1lcmFibGVOYW1lZFByb3BlcnRpZXNdCisgICAgIyAgICAgIGV4
dGVuZGVkIGF0dHJpYnV0ZSwgdGhlbiBzZXQgZGVzYy5bW0VudW1lcmFibGVdXSB0byBmYWxzZSwg
b3RoZXJ3aXNlIHNldCBpdAorICAgICMgICAgICB0byB0cnVlLgorICAgICMgMi45ICBTZXQgZGVz
Yy5bW0NvbmZpZ3VyYWJsZV1dIHRvIHRydWUuCisgICAgIyAyLjEwIFJldHVybiBkZXNjLgorICAg
IAogICAgIG15IEBhdHRyaWJ1dGVzID0gKCk7CiAgICAgcHVzaChAYXR0cmlidXRlcywgIlJlYWRP
bmx5IikgaWYgIUdldE5hbWVkU2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpICYmICEkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZFNldHRlcn07CiAgICAgcHVzaChA
YXR0cmlidXRlcywgIkRvbnRFbnVtIikgaWYgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVz
LT57TGVnYWN5VW5lbnVtZXJhYmxlTmFtZWRQcm9wZXJ0aWVzfTsKLQorICAgIAogICAgIG15ICRh
dHRyaWJ1dGVTdHJpbmcgPSAoKEBhdHRyaWJ1dGVzID4gMCkgPyBqb2luKCIgfCAiLCBAYXR0cmli
dXRlcykgOiAiMCIpOworICAgIG15ICRuYXRpdmVUb0pTQ29udmVyc2lvbiA9IE5hdGl2ZVRvSlNW
YWx1ZVVzaW5nUG9pbnRlcnMoJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkaW50ZXJmYWNlLCAkbmFt
ZWRQcm9wZXJ0eUV4cHJlc3Npb24sICIqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCkiKTsKKyAg
ICAKKyAgICByZXR1cm4gKCRuYXRpdmVUb0pTQ29udmVyc2lvbiwgJGF0dHJpYnV0ZVN0cmluZyk7
Cit9CiAKLSAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFt
ZWRHZXR0ZXJ9KSB7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJKU1Zh
bHVlIHZhbHVlO1xuIik7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJp
ZiAodGhpc09iamVjdC0+bmFtZUdldHRlcihzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSkpIHtc
biIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgJHthdHRyaWJ1dGVTdHJpbmd9LCB2YWx1ZSk7XG4iKTsKK3N1YiBH
ZW5lcmF0ZU5hbWVkR2V0dGVyTGFtYmRhCit7CisgICAgbXkgKCRvdXRwdXRBcnJheSwgJGludGVy
ZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWUsICRJ
RExUeXBlKSA9IEBfOworICAgIAorICAgICMgTk9URTogTmFtZWQgZ2V0dGVycyBhcmUgbGl0dGxl
IG9kZC4gVG8gYXZvaWQgZG9pbmcgZHVwbGljYXRlIGxvb2t1cHMgKG9uY2Ugd2hlbiBjaGVja2lu
ZyBpZgorICAgICMgICAgICAgdGhlIHByb3BlcnR5IG5hbWUgaXMgYSAnc3VwcG9ydGVkIHByb3Bl
cnR5IG5hbWUnIGFuZCBvbmNlIHRvIGdldCB0aGUgdmFsdWUpIHdlIHNpZ25hbAorICAgICMgICAg
ICAgdGhhdCBhIHByb3BlcnR5IGlzIHN1cHBvcnRlZCBieSB3aGV0aGVyIG9yIG5vdCBpdCBpcyAn
bnVsbCcgKHdoZXJlIHdoYXQgbnVsbCBtZWFucyBpcworICAgICMgICAgICAgZGVwZW5kYW50IG9u
IHRoZSBJREwgdHlwZSkuIFRoaXMgaXMgYmFzZWQgb24gdGhlIGFzc3VtcHRpb24gdGhhdCBubyBu
YW1lZCBnZXR0ZXIgd2lsbAorICAgICMgICAgICAgZXZlciBhY3R1YWxseSB3YW50IHRvIHJldHVy
biBudWxsIGFzIGFuIGFjdHVhbCByZXR1cm4gdmFsdWUsIHdoaWNoIHNlZW1zIGxpa2UgYW4gb2sK
KyAgICAjICAgICAgIGFzc3VtcHRpb24gdG8gbWFrZSAoc2hvdWxkIGl0IHR1cm4gb3V0IHRoaXMg
ZG9lc24ndCBob2xkIGluIHRoZSBmdXR1cmUsIHdlIGhhdmUgbG90cworICAgICMgICAgICAgb2Yg
b3B0aW9uczsgZG8gdHdvIGxvb2t1cHMsIGFkZCBhbiBleHRyYSBsYXllciBvZiBzdGQ6Om9wdGlv
bmFsLCBldGMuKS4KKyAgICAKKyAgICBteSAkcmVzdWx0VHlwZSA9ICJ0eXBlbmFtZSAke0lETFR5
cGV9OjpJbXBsZW1lbnRhdGlvblR5cGUiOworICAgICRyZXN1bHRUeXBlID0gIkV4Y2VwdGlvbk9y
PCIgLiAkcmVzdWx0VHlwZSAuICI+IiBpZiAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVk
QXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufTsKKyAgICBteSAkcmV0dXJuVHlwZSA9ICJz
dGQ6Om9wdGlvbmFsPCIgLiAkcmVzdWx0VHlwZSAuICI+IjsKKyAgICAKKyAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3Qs
IGF1dG8gcHJvcGVydHlOYW1lKSAtPiAke3JldHVyblR5cGV9IHtcbiIpOworICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS4k
e25hbWVkR2V0dGVyRnVuY3Rpb25OYW1lfShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTtcbiIpOworICAgIAorICAgIGlmICgkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4
dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9ufSkgeworICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgICAgIGlmIChyZXN1bHQuaGFzRXhjZXB0aW9uKCkpXG4iKTsKKyAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICAgICAgcmV0dXJuICR7cmVzdWx0VHlw
ZX0geyByZXN1bHQucmVsZWFzZUV4Y2VwdGlvbigpIH07XG4iKTsKKyAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgICAgICBpZiAoISR7SURMVHlwZX06OmlzTnVsbFZhbHVlKHJlc3VsdC5y
ZXR1cm5WYWx1ZSgpKSlcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAg
ICAgICByZXR1cm4gJHtyZXN1bHRUeXBlfSB7ICR7SURMVHlwZX06OmV4dHJhY3RWYWx1ZUZyb21O
dWxsYWJsZShyZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCkpIH07XG4iKTsKKyAgICAgICAgcHVz
aChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0O1xuIik7CiAgICAg
fSBlbHNlIHsKLSAgICAgICAgbXkgJG5hbWVkR2V0dGVyRnVuY3Rpb25OYW1lID0gJG5hbWVkR2V0
dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntJbXBsZW1lbnRlZEFzfSB8fCAkbmFt
ZWRHZXR0ZXJPcGVyYXRpb24tPm5hbWUgfHwgIm5hbWVkSXRlbSI7Ci0gICAgICAgIG15ICRpdGVt
VmFyaWFibGUgPSAiaXRlbSI7Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAu
ICJhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkuJHtuYW1lZEdldHRlckZ1bmN0aW9u
TmFtZX0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7XG4iKTsKLQot
ICAgICAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntN
YXlUaHJvd0V4Y2VwdGlvbn0pIHsKLSAgICAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgJGlu
ZGVudCAuICJpZiAoaXRlbS5oYXNFeGNlcHRpb24oKSkge1xuIik7Ci0gICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVf
VEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpO1xuIik7Ci0gICAgICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICRpbmRlbnQgLiAiICAgIHByb3BhZ2F0ZUV4Y2VwdGlvbigqc3RhdGUsIHRocm93U2Nv
cGUsIGl0ZW0ucmVsZWFzZUV4Y2VwdGlvbigpKTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwotICAgICAgICAgICAg
cHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIn1cblxuIik7Ci0gICAgICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAiYXV0byBpdGVtVmFsdWUgPSBpdGVtLnJlbGVhc2VS
ZXR1cm5WYWx1ZSgpO1xuIik7Ci0KLSAgICAgICAgICAgICRpdGVtVmFyaWFibGUgPSAiaXRlbVZh
bHVlIjsKLSAgICAgICAgfQotCi0gICAgICAgIG15ICRJRExUeXBlID0gR2V0SURMVHlwZSgkaW50
ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPnR5cGUpOwotICAgICAgICBteSAkbmF0aXZl
VG9KU0NvbnZlcnNpb24gPSBOYXRpdmVUb0pTVmFsdWVVc2luZ1BvaW50ZXJzKCRuYW1lZEdldHRl
ck9wZXJhdGlvbiwgJGludGVyZmFjZSwgJGl0ZW1WYXJpYWJsZSwgIip0aGlzT2JqZWN0LT5nbG9i
YWxPYmplY3QoKSIsIDEpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICRpbmRlbnQgLiAi
aWYgKCEke0lETFR5cGV9Ojppc051bGxWYWx1ZSgke2l0ZW1WYXJpYWJsZX0pKSB7XG4iKTsKLSAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgJHtuYXRpdmVUb0pTQ29udmVyc2lvbn0pO1xu
Iik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKCEke0lETFR5cGV9
Ojppc051bGxWYWx1ZShyZXN1bHQpKVxuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwg
IiAgICAgICAgICAgIHJldHVybiAke3Jlc3VsdFR5cGV9IHsgJHtJRExUeXBlfTo6ZXh0cmFjdFZh
bHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7XG4iKTsKICAgICB9Ci0gICAgCi0gICAg
cHVzaChAJG91dHB1dEFycmF5LCAkaW5kZW50IC4gIiAgICByZXR1cm4gdHJ1ZTtcbiIpOwotICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgJGluZGVudCAuICJ9XG4iKTsKKyAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgfTtcbiIpOwogfQogCi1zdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RC
b2R5CisjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2xlZ2FjeS1wbGF0Zm9ybS1v
YmplY3QtZ2V0b3ducHJvcGVydHkKK3N1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdAogewog
ICAgIG15ICgkb3V0cHV0QXJyYXksICRpbnRlcmZhY2UsICRjbGFzc05hbWUpID0gQF87CiAgICAg
CiAgICAgcmV0dXJuIGlmICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdl
dE93blByb3BlcnR5U2xvdH07CiAgICAgCi0gICAgbXkgJG5hbWVkR2V0dGVyT3BlcmF0aW9uID0g
R2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7Ci0gICAgbXkgJGluZGV4ZWRHZXR0
ZXJPcGVyYXRpb24gPSBHZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOwotICAg
IAotICAgIG15ICRvd25Qcm9wZXJ0eUNoZWNrID0gc3ViIHsKLSAgICAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpXG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIpOwotICAgIH07Ci0KLSAgICAjIEZJWE1FOiBBcyBw
ZXIgdGhlIFdlYiBJREwgc3BlY2lmaWNhdGlvbiwgdGhlIHByb3RvdHlwZSBjaGVjayBpcyBzdXBw
b3NlZCB0byBza2lwICJuYW1lZCBwcm9wZXJ0aWVzIG9iamVjdHMiOgotICAgICMgaHR0cHM6Ly9o
ZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8jZGZuLW5hbWVkLXByb3BlcnR5LXZpc2liaWxpdHkKLSAg
ICAjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2Rmbi1uYW1lZC1wcm9wZXJ0aWVz
LW9iamVjdAotICAgIG15ICRwcm90b3R5cGVDaGVjayA9IHN1YiB7Ci0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBl
RGlyZWN0KCk7XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChwcm90
by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3Rh
dGUsIHByb3BlcnR5TmFtZSkpXG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAg
ICAgICByZXR1cm4gZmFsc2U7XG5cbiIpOwotICAgIH07Ci0KICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICJib29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90KEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIFByb3BlcnR5
U2xvdCYgc2xvdClcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIntcbiIpOwogICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PCR7Y2xhc3NO
YW1lfSo+KG9iamVjdCk7XG4iKTsKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpO1xuIik7Ci0KLQorICAgIAor
ICAgIG15ICRuYW1lZEdldHRlck9wZXJhdGlvbiA9IEdldE5hbWVkR2V0dGVyT3BlcmF0aW9uKCRp
bnRlcmZhY2UpOworICAgIG15ICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uID0gR2V0SW5kZXhlZEdl
dHRlck9wZXJhdGlvbigkaW50ZXJmYWNlKTsKKyAgICAKKyAgICBpZiAoKCRuYW1lZEdldHRlck9w
ZXJhdGlvbiAmJiAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01h
eVRocm93RXhjZXB0aW9ufSkgfHwgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uICYmICRpbmRleGVk
R2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0p
KSB7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBhdXRvIHRocm93U2NvcGUgPSBE
RUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTtcbiIpOworICAgIH0KKyAgICAKKyAgICAj
IE5PVEU6IFRoZSBhbG9naXRobSBmb3IgW1tHZXRPd25Qcm9wZXJ0eV1dIGNvbnRhaW5zIG9ubHkg
dGhlIGZvbGxvd2luZyBzdGVwOgorICAgICMgMS4gUmV0dXJuIExlZ2FjeVBsYXRmb3JtT2JqZWN0
R2V0T3duUHJvcGVydHkoTywgUCwgZmFsc2UpLgorICAgIAorICAgICMgVGhlcmVmb3JlLCB0aGUg
Zm9sbG93aW5nIHN0ZXBzIGFyZSBmcm9tIHRoZSBMZWdhY3lQbGF0Zm9ybU9iamVjdEdldE93blBy
b3BlcnR5IGFsZ29yaXRobQorICAgICMgaHR0cHM6Ly9oZXljYW0uZ2l0aHViLmlvL3dlYmlkbC8j
TGVnYWN5UGxhdGZvcm1PYmplY3RHZXRPd25Qcm9wZXJ0eQorICAgIAorICAgICMgMS4gSWYgTyBz
dXBwb3J0cyBpbmRleGVkIHByb3BlcnRpZXMgYW5kIFAgaXMgYW4gYXJyYXkgaW5kZXggcHJvcGVy
dHkgbmFtZSwgdGhlbjoKICAgICBpZiAoJGluZGV4ZWRHZXR0ZXJPcGVyYXRpb24pIHsKLSAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5k
ZXgocHJvcGVydHlOYW1lKTtcbiIpOwotICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
aWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+
d3JhcHBlZCgpLmxlbmd0aCgpKSB7XG4iKTsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpO1xuIik7Ci0gICAgICAg
IEdlbmVyYXRlSW5kZXhlZEdldHRlcigkb3V0cHV0QXJyYXksICIgICAgICAgICIsICRpbnRlcmZh
Y2UsICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKTsKKyAgICAgICAgIyAxLjEuIExldCBpbmRleCBi
ZSB0aGUgcmVzdWx0IG9mIGNhbGxpbmcgVG9VaW50MzIoUCkuCisgICAgICAgIHB1c2goQCRvdXRw
dXRBcnJheSwgIiAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkg
e1xuIik7CisgICAgICAgIAorICAgICAgICAjIDEuMi4gSWYgaW5kZXggaXMgYSBzdXBwb3J0ZWQg
cHJvcGVydHkgaW5kZXgsIHRoZW46CisgICAgICAgICMgRklYTUU6IFRoaXMgc2hvdWxkIHN1cHBv
cnQgbm9uLWNvbnRpZ3VvdXMgaW5kaWNlcy4KKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KSkge1xuIik7CisgICAgICAgIAorICAgICAgICAjIE5PVEU6IEdlbmVyYXRlSW5kZXhlZEdldHRl
ciBpbXBsZW1lbnRzIHN0ZXBzIDEuMi4xIC0gMS4yLjguCisgICAgICAgIAorICAgICAgICBteSAo
JG5hdGl2ZVRvSlNDb252ZXJzaW9uLCAkYXR0cmlidXRlU3RyaW5nKSA9IEdlbmVyYXRlSW5kZXhl
ZEdldHRlcigkaW50ZXJmYWNlLCAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiwgImluZGV4LnZhbHVl
KCkiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAg
IGF1dG8gdmFsdWUgPSAke25hdGl2ZVRvSlNDb252ZXJzaW9ufTtcbiIpOworICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2Nv
cGUsIGZhbHNlKTtcbiIpIGlmICRpbmRleGVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsICR7YXR0cmli
dXRlU3RyaW5nfSwgdmFsdWUpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgICAgIHJldHVybiB0cnVlO1xuIik7CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgICAgIH1cbiIpOworICAgICAgICAKKyAgICAgICAgIyAxLjMuIFNldCBp
Z25vcmVOYW1lZFByb3BzIHRvIHRydWUuCisgICAgICAgICMgTk9URTogU2V0dGluZyBpZ25vcmVO
YW1lZFByb3BzIGhhcyB0aGUgZWZmZWN0IG9mIHNraXBwaW5nIHN0ZXAgMiwgc28gd2UgY2FuIGVh
cmx5IHJldHVybiBoZXJlCisgICAgICAgICMgICAgICAgcmF0aGVyIHRoYW4gZ29pbmcgdGhyb3Vn
aCB0aGUgcGFjZXMgb2YgaGF2aW5nIGFuIGFjdHVhbCBpZ25vcmVOYW1lZFByb3BzIHVwZGF0ZS4K
KyAgICAgICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJmYWNlLT5leHRlbmRl
ZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfSkgewor
ICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpO1xu
Iik7CisgICAgICAgIH0KICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIH1cbiIpOwog
ICAgIH0KLQotICAgIG15ICRoYXNOYW1lZEdldHRlciA9ICRuYW1lZEdldHRlck9wZXJhdGlvbiB8
fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn07Ci0g
ICAgaWYgKCRoYXNOYW1lZEdldHRlcikgewotICAgICAgICBpZiAoISRjb2RlR2VuZXJhdG9yLT5J
bmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJPdmVycmlkZUJ1aWx0aW5zIikp
IHsKLSAgICAgICAgICAgICYkb3duUHJvcGVydHlDaGVjaygpOwotICAgICAgICAgICAgJiRwcm90
b3R5cGVDaGVjaygpOwotICAgICAgICB9Ci0gICAgICAgIGlmICgkaW5kZXhlZEdldHRlck9wZXJh
dGlvbikgewotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICghb3B0aW9u
YWxJbmRleCAmJiB0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5
TmFtZS5pc1N5bWJvbCgpKSB7XG4iKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHB1
c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5m
bygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkge1xuIik7Ci0gICAgICAgIH0KLSAgICAg
ICAgR2VuZXJhdGVOYW1lZEdldHRlcigkb3V0cHV0QXJyYXksICIgICAgICAgICIsICRpbnRlcmZh
Y2UsICRuYW1lZEdldHRlck9wZXJhdGlvbik7CisgICAgCisgICAgIyAyLiBJZiBPIHN1cHBvcnRz
IG5hbWVkIHByb3BlcnRpZXMsIHRoZSByZXN1bHQgb2YgcnVubmluZyB0aGUgbmFtZWQgcHJvcGVy
dHkgdmlzaWJpbGl0eQorICAgICMgICAgYWxnb3JpdGhtIHdpdGggcHJvcGVydHkgbmFtZSBQIGFu
ZCBvYmplY3QgTyBpcyB0cnVlLCBhbmQgaWdub3JlTmFtZWRQcm9wcyBpcyBmYWxzZSwgdGhlbjoK
KyAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uKSB7CisgICAgICAgICMgTk9URTogaWdub3Jl
TmFtZWRQcm9wcyBpcyBndWFyZW50ZWVkIHRvIGJlIGZhbHNlIGhlcmUsIGFzIGl0IGlzIGluaXRp
YWxseSBmYWxzZSwgYW5kIG5ldmVyIHNldAorICAgICAgICAjICAgICAgIHRvIHRydWUsIGR1ZSB0
byB0aGUgZWFybHkgcmV0dXJuIGluIHN0ZXAgMS4zCisgICAgICAgIEFkZFRvSW1wbEluY2x1ZGVz
KCJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIik7CisgICAgICAgICAgICAgICAgCisgICAgICAg
IG15ICRuYW1lZEdldHRlckZ1bmN0aW9uTmFtZSA9ICRuYW1lZEdldHRlck9wZXJhdGlvbi0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJG5hbWVkR2V0dGVyT3BlcmF0aW9u
LT5uYW1lIHx8ICJuYW1lZEl0ZW0iOworICAgICAgICBteSAkSURMVHlwZSA9IEdldElETFR5cGVF
eGNsdWRpbmdOdWxsYWJpbGl0eSgkaW50ZXJmYWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24tPnR5
cGUpOworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHVzaW5nIEdl
dHRlcklETFR5cGUgPSAke0lETFR5cGV9O1xuIik7CisgICAgICAgIAorICAgICAgICBHZW5lcmF0
ZU5hbWVkR2V0dGVyTGFtYmRhKCRvdXRwdXRBcnJheSwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVy
T3BlcmF0aW9uLCAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWUsICJHZXR0ZXJJRExUeXBlIik7Cisg
ICAgICAgIAorICAgICAgICBteSAkb3ZlcnJpZGVCdWlsdGluID0gJGNvZGVHZW5lcmF0b3ItPklu
aGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRlQnVpbHRpbnMiKSA/
ICJPdmVycmlkZUJ1aWx0aW5zOjpZZXMiIDogIk92ZXJyaWRlQnVpbHRpbnM6Ok5vIjsKKyAgICAg
ICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nl
c3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTwke292ZXJyaWRlQnVpbHRpbn0+KCpzdGF0ZSwgKnRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHtcbiIpOworICAgICAgICAKKyAg
ICAgICAgIyBOT1RFOiBHZW5lcmF0ZU5hbWVkR2V0dGVyIGltcGxlbWVudHMgc3RlcHMgMi4xIC0g
Mi4xMC4KKyAgICAgICAgCisgICAgICAgIG15ICgkbmF0aXZlVG9KU0NvbnZlcnNpb24sICRhdHRy
aWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVOYW1lZEdldHRlcigkaW50ZXJmYWNlLCAkbmFtZWRHZXR0
ZXJPcGVyYXRpb24sICJXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkiKTsKKyAgICAgICAg
CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgYXV0byB2YWx1ZSA9ICR7bmF0
aXZlVG9KU0NvbnZlcnNpb259O1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICAgICAgUkVUVVJOX0lGX0VYQ0VQVElPTih0aHJvd1Njb3BlLCBmYWxzZSk7XG4iKSBpZiAkbmFt
ZWRHZXR0ZXJPcGVyYXRpb24tPmV4dGVuZGVkQXR0cmlidXRlcy0+e01heVRocm93RXhjZXB0aW9u
fTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCAke2F0dHJpYnV0ZVN0cmluZ30sIHZhbHVlKTtcbiIpOworICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJldHVybiB0cnVlO1xuIik7CiAgICAg
ICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICB9XG4iKTsKICAgICB9Ci0KKyAgICAKICAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJvcGVydHlT
bG90QW5kRGVzY3JpcHRvcn0pIHsKICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlm
ICh0aGlzT2JqZWN0LT5nZXRPd25Qcm9wZXJ0eVNsb3REZWxlZ2F0ZShzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSlcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIHJl
dHVybiB0cnVlO1xuIik7CiAgICAgfQotCi0gICAgaWYgKCEkaGFzTmFtZWRHZXR0ZXIgfHwgJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJy
aWRlQnVpbHRpbnMiKSkgewotICAgICAgICAmJG93blByb3BlcnR5Q2hlY2soKTsKLSAgICB9Ci0K
LSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIGZhbHNlO1xuIik7CisgICAgCisg
ICAgIyAzLiBSZXR1cm4gT3JkaW5hcnlHZXRPd25Qcm9wZXJ0eShPLCBQKS4KKyAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTtcbiIpOworICAgIAogICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIn1cblxuIik7CiB9CiAKLXN1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xv
dEJvZHlCeUluZGV4CisjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2xlZ2FjeS1w
bGF0Zm9ybS1vYmplY3QtZ2V0b3ducHJvcGVydHkKK3N1YiBHZW5lcmF0ZUdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgKIHsKICAgICBteSAoJG91dHB1dEFycmF5LCAkaW50ZXJmYWNlLCAkY2xhc3NO
YW1lKSA9IEBfOwogICAgIAogICAgIHJldHVybiBpZiAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJp
YnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4fTsKLSAgICAKLSAgICBteSAk
bmFtZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXROYW1lZEdldHRlck9wZXJhdGlvbigkaW50ZXJmYWNl
KTsKLSAgICBteSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiA9IEdldEluZGV4ZWRHZXR0ZXJPcGVy
YXRpb24oJGludGVyZmFjZSk7CisKKyAgICAjIFNpbmsgdGhlIGludC10by1zdHJpbmcgY29udmVy
c2lvbiB0aGF0IGhhcHBlbnMgd2hlbiB3ZSBjcmVhdGUgYSBQcm9wZXJ0eU5hbWUKKyAgICAjIHRv
IHRoZSBwb2ludCB3aGVyZSB3ZSBhY3R1YWxseSBuZWVkIGl0LgorICAgIG15ICRkaWRHZW5lcmF0
ZVByb3BlcnR5TmFtZSA9IDA7CisgICAgbXkgJHByb3BlcnR5TmFtZUdlbmVyYXRpb24gPSBzdWIg
eworICAgICAgICByZXR1cm4gaWYgJGRpZEdlbmVyYXRlUHJvcGVydHlOYW1lOworICAgICAgICAK
KyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpO1xuIik7CisgICAgICAgICRkaWRHZW5lcmF0ZVBy
b3BlcnR5TmFtZSA9IDE7CisgICAgfTsKICAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJi
b29sICR7Y2xhc3NOYW1lfTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2Jq
ZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90
KVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1
dEFycmF5LCAiICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2Jq
ZWN0KTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7XG4iKTsKICAgICAKLSAgICAjIFNpbmsgdGhl
IGludC10by1zdHJpbmcgY29udmVyc2lvbiB0aGF0IGhhcHBlbnMgd2hlbiB3ZSBjcmVhdGUgYSBQ
cm9wZXJ0eU5hbWUKLSAgICAjIHRvIHRoZSBwb2ludCB3aGVyZSB3ZSBhY3R1YWxseSBuZWVkIGl0
LgotICAgIG15ICRnZW5lcmF0ZWRQcm9wZXJ0eU5hbWUgPSAwOwotICAgIG15ICRwcm9wZXJ0eU5h
bWVHZW5lcmF0aW9uID0gc3ViIHsKLSAgICAgICAgaWYgKCRnZW5lcmF0ZWRQcm9wZXJ0eU5hbWUp
IHsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0
YXRlLCBpbmRleCk7XG4iKTsKLSAgICAgICAgJGdlbmVyYXRlZFByb3BlcnR5TmFtZSA9IDE7Ci0g
ICAgfTsKKyAgICBteSAkbmFtZWRHZXR0ZXJPcGVyYXRpb24gPSBHZXROYW1lZEdldHRlck9wZXJh
dGlvbigkaW50ZXJmYWNlKTsKKyAgICBteSAkaW5kZXhlZEdldHRlck9wZXJhdGlvbiA9IEdldElu
ZGV4ZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CisgICAgCisgICAgaWYgKCgkbmFtZWRH
ZXR0ZXJPcGVyYXRpb24gJiYgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn0pIHx8ICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbiAmJiAk
aW5kZXhlZEdldHRlck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57TWF5VGhyb3dFeGNl
cHRpb259KSkgeworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgYXV0byB0aHJvd1Nj
b3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7XG4iKTsKKyAgICB9CisgICAg
CisgICAgIyBOT1RFOiBUaGUgYWxvZ2l0aG0gZm9yIFtbR2V0T3duUHJvcGVydHldXSBjb250YWlu
cyBvbmx5IHRoZSBmb2xsb3dpbmcgc3RlcDoKKyAgICAjIDEuIFJldHVybiBMZWdhY3lQbGF0Zm9y
bU9iamVjdEdldE93blByb3BlcnR5KE8sIFAsIGZhbHNlKS4KKyAgICAKKyAgICAjIFRoZXJlZm9y
ZSwgdGhlIGZvbGxvd2luZyBzdGVwcyBhcmUgZnJvbSB0aGUgTGVnYWN5UGxhdGZvcm1PYmplY3RH
ZXRPd25Qcm9wZXJ0eSBhbGdvcml0aG0KKyAgICAjIGh0dHBzOi8vaGV5Y2FtLmdpdGh1Yi5pby93
ZWJpZGwvI0xlZ2FjeVBsYXRmb3JtT2JqZWN0R2V0T3duUHJvcGVydHkKICAgICAKKyAgICAjIDEu
IElmIE8gc3VwcG9ydHMgaW5kZXhlZCBwcm9wZXJ0aWVzIGFuZCBQIGlzIGFuIGFycmF5IGluZGV4
IHByb3BlcnR5IG5hbWUsIHRoZW46CiAgICAgaWYgKCRpbmRleGVkR2V0dGVyT3BlcmF0aW9uKSB7
Ci0gICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhp
c09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkge1xuIik7Ci0gICAgICAgIEdlbmVyYXRlSW5k
ZXhlZEdldHRlcigkb3V0cHV0QXJyYXksICIgICAgICAgICIsICRpbnRlcmZhY2UsICRpbmRleGVk
R2V0dGVyT3BlcmF0aW9uKTsKKyAgICAgICAgIyAxLjEuIExldCBpbmRleCBiZSB0aGUgcmVzdWx0
IG9mIGNhbGxpbmcgVG9VaW50MzIoUCkuCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHtcbiIpOworICAgICAgICAK
KyAgICAgICAgIyAxLjIuIElmIGluZGV4IGlzIGEgc3VwcG9ydGVkIHByb3BlcnR5IGluZGV4LCB0
aGVuOgorICAgICAgICAjIEZJWE1FOiBUaGlzIHNob3VsZCBzdXBwb3J0IG5vbi1jb250aWd1b3Vz
IGluZGljZXMuCisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgaWYgKGluZGV4
IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7XG4iKTsKKyAgICAgICAgCisgICAg
ICAgICMgTk9URTogR2VuZXJhdGVJbmRleGVkR2V0dGVyIGltcGxlbWVudHMgc3RlcHMgMS4yLjEg
LSAxLjIuOC4KKyAgICAgICAgCisgICAgICAgIG15ICgkbmF0aXZlVG9KU0NvbnZlcnNpb24sICRh
dHRyaWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVJbmRleGVkR2V0dGVyKCRpbnRlcmZhY2UsICRpbmRl
eGVkR2V0dGVyT3BlcmF0aW9uLCAiaW5kZXgiKTsKKyAgICAgICAgCisgICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICAgICAgICAgIGF1dG8gdmFsdWUgPSAke25hdGl2ZVRvSlNDb252ZXJz
aW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBSRVRV
Uk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGZhbHNlKTtcbiIpIGlmICRpbmRleGVkR2V0dGVy
T3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4Y2VwdGlvbn07CisgICAg
ICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsICR7YXR0cmlidXRlU3RyaW5nfSwgdmFsdWUpO1xuIik7CisgICAgICAg
IHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuIik7CisgICAg
ICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIH1cbiIpOworICAgICAg
ICAKKyAgICAgICAgIyAxLjMuIFNldCBpZ25vcmVOYW1lZFByb3BzIHRvIHRydWUuCisgICAgICAg
ICMgTk9URTogU2V0dGluZyBpZ25vcmVOYW1lZFByb3BzIGhhcyB0aGUgZWZmZWN0IG9mIHNraXBw
aW5nIHN0ZXAgMiwgc28gd2UgY2FuIGVhcmx5IHJldHVybiBoZXJlCisgICAgICAgICMgICAgICAg
cmF0aGVyIHRoYW4gZ29pbmcgdGhyb3VnaCB0aGUgcGFjZXMgb2YgaGF2aW5nIGFuIGFjdHVhbCBp
Z25vcmVOYW1lZFByb3BzIHVwZGF0ZS4KKyAgICAgICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlv
biB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0
eVNsb3RBbmREZXNjcmlwdG9yfSkgeworICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAi
ICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0
LCBzdGF0ZSwgaW5kZXgsIHNsb3QpO1xuIik7CisgICAgICAgIH0KICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAiICAgIH1cbiIpOwogICAgIH0KLQotICAgICMgSW5kZXhpbmcgYW4gb2JqZWN0
IHdpdGggYW4gaW50ZWdlciB0aGF0IGlzIG5vdCBhIHN1cHBvcnRlZCBwcm9wZXJ0eSBpbmRleCBz
aG91bGQgbm90IGNhbGwgdGhlIG5hbWVkIHByb3BlcnR5IGdldHRlci4KLSAgICAjIGh0dHBzOi8v
aGV5Y2FtLmdpdGh1Yi5pby93ZWJpZGwvI2lkbC1pbmRleGVkLXByb3BlcnRpZXMKLSAgICBpZiAo
ISRpbmRleGVkR2V0dGVyT3BlcmF0aW9uICYmICgkbmFtZWRHZXR0ZXJPcGVyYXRpb24gfHwgJGlu
dGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9KSkgeworICAg
IAorICAgICMgMi4gSWYgTyBzdXBwb3J0cyBuYW1lZCBwcm9wZXJ0aWVzLCB0aGUgcmVzdWx0IG9m
IHJ1bm5pbmcgdGhlIG5hbWVkIHByb3BlcnR5IHZpc2liaWxpdHkKKyAgICAjICAgIGFsZ29yaXRo
bSB3aXRoIHByb3BlcnR5IG5hbWUgUCBhbmQgb2JqZWN0IE8gaXMgdHJ1ZSwgYW5kIGlnbm9yZU5h
bWVkUHJvcHMgaXMgZmFsc2UsIHRoZW46CisgICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlvbikg
eworICAgICAgICAjIE5PVEU6IGlnbm9yZU5hbWVkUHJvcHMgaXMgZ3VhcmVudGVlZCB0byBiZSBm
YWxzZSBoZXJlLCBhcyBpdCBpcyBpbml0aWFsbHkgZmFsc2UsIGFuZCBuZXZlciBzZXQKKyAgICAg
ICAgIyAgICAgICB0byB0cnVlLCBkdWUgdG8gdGhlIGVhcmx5IHJldHVybiBpbiBzdGVwIDEuMwor
ICAgICAgICBBZGRUb0ltcGxJbmNsdWRlcygiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIpOwor
ICAgICAgICAgICAgICAgIAogICAgICAgICAmJHByb3BlcnR5TmFtZUdlbmVyYXRpb24oKTsKLSAg
ICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8o
KSA9PSBpbmZvKCkpIHtcbiIpOwotICAgICAgICBHZW5lcmF0ZU5hbWVkR2V0dGVyKCRvdXRwdXRB
cnJheSwgIiAgICAgICAgIiwgJGludGVyZmFjZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uKTsKKyAg
ICAgICAgCisgICAgICAgIG15ICRuYW1lZEdldHRlckZ1bmN0aW9uTmFtZSA9ICRuYW1lZEdldHRl
ck9wZXJhdGlvbi0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57SW1wbGVtZW50ZWRBc30gfHwgJG5hbWVk
R2V0dGVyT3BlcmF0aW9uLT5uYW1lIHx8ICJuYW1lZEl0ZW0iOworICAgICAgICBteSAkSURMVHlw
ZSA9IEdldElETFR5cGVFeGNsdWRpbmdOdWxsYWJpbGl0eSgkaW50ZXJmYWNlLCAkbmFtZWRHZXR0
ZXJPcGVyYXRpb24tPnR5cGUpOworICAgICAgICAKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAiICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSAke0lETFR5cGV9O1xuIik7CisgICAgICAgIAor
ICAgICAgICBHZW5lcmF0ZU5hbWVkR2V0dGVyTGFtYmRhKCRvdXRwdXRBcnJheSwgJGludGVyZmFj
ZSwgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLCAkbmFtZWRHZXR0ZXJGdW5jdGlvbk5hbWUsICJHZXR0
ZXJJRExUeXBlIik7CisgICAgICAgIAorICAgICAgICBteSAkb3ZlcnJpZGVCdWlsdGluID0gJGNv
ZGVHZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJy
aWRlQnVpbHRpbnMiKSA/ICJPdmVycmlkZUJ1aWx0aW5zOjpZZXMiIDogIk92ZXJyaWRlQnVpbHRp
bnM6Ok5vIjsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChhdXRvIG5hbWVk
UHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTwke292ZXJyaWRlQnVpbHRpbn0+
KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHtcbiIp
OworICAgICAgICAKKyAgICAgICAgIyBOT1RFOiBHZW5lcmF0ZU5hbWVkR2V0dGVyIGltcGxlbWVu
dHMgc3RlcHMgMi4xIC0gMi4xMC4KKyAgICAgICAgCisgICAgICAgIG15ICgkbmF0aXZlVG9KU0Nv
bnZlcnNpb24sICRhdHRyaWJ1dGVTdHJpbmcpID0gR2VuZXJhdGVOYW1lZEdldHRlcigkaW50ZXJm
YWNlLCAkbmFtZWRHZXR0ZXJPcGVyYXRpb24sICJXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUo
KSkiKTsKKworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAgIGF1dG8gdmFsdWUg
PSAke25hdGl2ZVRvSlNDb252ZXJzaW9ufTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJy
YXksICIgICAgICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwgZmFsc2UpO1xuIikg
aWYgJG5hbWVkR2V0dGVyT3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntNYXlUaHJvd0V4
Y2VwdGlvbn07CisgICAgICAgIAorICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgICAg
IHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgJHthdHRyaWJ1dGVTdHJpbmd9LCB2YWx1ZSk7XG4i
KTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgICAgICByZXR1cm4gdHJ1ZTtcbiIp
OwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgfVxuIik7CiAgICAgfQotCisgICAg
CiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blBy
b3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9KSB7CiAgICAgICAgICYkcHJvcGVydHlOYW1lR2VuZXJh
dGlvbigpOworICAgIAogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgaWYgKHRoaXNP
YmplY3QtPmdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpKVxuIik7CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHRy
dWU7XG4iKTsKICAgICB9Ci0KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBz
bG90KTtcbiIpOworICAgIAorICAgICMgMy4gUmV0dXJuIE9yZGluYXJ5R2V0T3duUHJvcGVydHko
TywgUCkuCisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7XG4iKTsK
KyAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQogCkBAIC01ODgsMTAg
KzcyMywxMSBAQCBzdWIgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eU5hbWVzCiAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAidm9pZCAke2NsYXNzTmFtZX06OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmpl
Y3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5
TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKVxuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5
LCAie1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8JHtjbGFzc05hbWV9Kj4ob2JqZWN0KTtcbiIpOwotICAgIHB1c2goQCRvdXRwdXRB
cnJheSwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7
XG4iKTsKLQorICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKG9iamVjdCwgaW5mbygpKTtcbiIpOworICAgIAogICAgICMgMS4gSWYgdGhlIG9iamVj
dCBzdXBwb3J0cyBpbmRleGVkIHByb3BlcnRpZXMsIHRoZW4gdGhlIG9iamVjdOKAmXMgc3VwcG9y
dGVkCiAgICAgIyAgICBwcm9wZXJ0eSBpbmRpY2VzIGFyZSBlbnVtZXJhdGVkIGZpcnN0LCBpbiBu
dW1lcmljYWwgb3JkZXIuCisgICAgIyBGSVhNRTogVGhpcyBzaG91bGQgc3VwcG9ydCBub24tY29u
dGlndW91cyBpbmRpY2VzLgogICAgIGlmICgkaW5kZXhlZEdldHRlck9wZXJhdGlvbikgewogICAg
ICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgZm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQg
PSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBjb3VudDsgKytpKVxuIik7CiAg
ICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpO1xuIik7CkBAIC02MTYsNyArNzUyLDcgQEAgc3ViIEdl
bmVyYXRlR2V0T3duUHJvcGVydHlOYW1lcwogICAgIAogICAgICMgMy4gRmluYWxseSwgYW55IGVu
dW1lcmFibGUgb3duIHByb3BlcnRpZXMgb3IgcHJvcGVydGllcyBmcm9tIHRoZSBvYmplY3TigJlz
CiAgICAgIyAgICBwcm90b3R5cGUgY2hhaW4gYXJlIHRoZW4gZW51bWVyYXRlZCwgaW4gbm8gZGVm
aW5lZCBvcmRlci4KLSAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgQmFzZTo6Z2V0T3duUHJv
cGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7XG4iKTsK
KyAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFt
ZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7XG4iKTsKICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQogCkBAIC03MjAsNyArODU2LDcgQEAgc3ViIEdlbmVy
YXRlUHV0CiAgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICAgICAgcmV0dXJuIHB1dFJl
c3VsdDtcblxuIik7CiAgICAgfQogICAgIAotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBy
ZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpO1xuIik7CisgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVy
biBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpO1xuIik7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsK
IH0KIApAQCAtNzU2LDcgKzg5Miw3IEBAIHN1YiBHZW5lcmF0ZVB1dEJ5SW5kZXgKICAgICB9CiAg
ICAgCiAgICAgaWYgKCRuYW1lZFNldHRlck9wZXJhdGlvbikgewotICAgICAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
KHN0YXRlLCBpbmRleCk7XG4iKTsKKyAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGF1
dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpO1xuIik7CiAg
ICAgICAgICAgICAgICAgCiAgICAgICAgIG15ICRhZGRpdGlvbmFsSW5kZW50ID0gIiI7CiAgICAg
ICAgIGlmICghJG92ZXJyaWRlQnVpbHRpbnMpIHsKQEAgLTc3Niw3ICs5MTIsNyBAQCBzdWIgR2Vu
ZXJhdGVQdXRCeUluZGV4CiAgICAgCiAgICAgYXNzZXJ0KCJVc2luZyBib3RoIGEgbmFtZWQgcHJv
cGVydHkgc2V0dGVyIGFuZCBbQ3VzdG9tTmFtZWRTZXR0ZXJdIHRvZ2V0aGVyIGlzIG5vdCBzdXBw
b3J0ZWQuIikgaWYgJG5hbWVkU2V0dGVyT3BlcmF0aW9uICYmICRpbnRlcmZhY2UtPmV4dGVuZGVk
QXR0cmlidXRlcy0+e0N1c3RvbU5hbWVkU2V0dGVyfTsKICAgICBpZiAoJGludGVyZmFjZS0+ZXh0
ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRTZXR0ZXJ9KSB7Ci0gICAgICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b20oc3RhdGUsIGluZGV4KTtcbiIpOworICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAg
YXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7XG4iKTsK
ICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIFB1dFByb3BlcnR5U2xvdCBzbG90KHRo
aXNPYmplY3QsIHNob3VsZFRocm93KTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXks
ICIgICAgYm9vbCBwdXRSZXN1bHQgPSBmYWxzZTtcbiIpOwogICAgICAgICBwdXNoKEAkb3V0cHV0
QXJyYXksICIgICAgaWYgKHRoaXNPYmplY3QtPnB1dERlbGVnYXRlKHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBzbG90LCBwdXRSZXN1bHQpKVxuIik7CkBAIC03ODQsNyArOTIwLDcgQEAgc3Vi
IEdlbmVyYXRlUHV0QnlJbmRleAogICAgIH0KICAgICAKICAgICBpZiAoISRlbGxpZGVzQ2FsbHNU
b0Jhc2UpIHsKLSAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIHJldHVybiBCYXNlOjpw
dXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTtcbiIpOwor
ICAgICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUlu
ZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTtcbiIpOwogICAgIH0K
ICAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwpAQCAtODgyLDExICsxMDE4
LDExIEBAIHN1YiBHZW5lcmF0ZURlZmluZU93blByb3BlcnR5CiAgICAgICAgICMgICAgZG9lcyBu
b3QgaGF2ZSBhbiBvd24gcHJvcGVydHkgbmFtZWQgUCwgdGhlbjoKICAgICAgICAgbXkgJG92ZXJy
aWRlQnVpbHRpbnMgPSAkY29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRlZEF0dHJpYnV0ZSgk
aW50ZXJmYWNlLCAiT3ZlcnJpZGVCdWlsdGlucyIpOwogICAgICAgICBpZiAoISRvdmVycmlkZUJ1
aWx0aW5zKSB7Ci0gICAgICAgICAgICAjIEZJWE1FOiBJcyBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNs
b3QgdGhlIHJpZ2h0IGZ1bmN0aW9uIHRvIGNhbGw/IElzIHRoZXJlIGEgZnVuY3Rpb24gdGhhdCB3
aWxsCisgICAgICAgICAgICAjIEZJWE1FOiBJcyBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90
IHRoZSByaWdodCBmdW5jdGlvbiB0byBjYWxsPyBJcyB0aGVyZSBhIGZ1bmN0aW9uIHRoYXQgd2ls
bAogICAgICAgICAgICAgIyAgICAgICAgb25seSBsb29rIGF0IHRoZSBhY3R1YWwgcHJvcGVydGll
cywgYW5kIG5vdCBjYWxsIGludG8gb3VyIGltcGxlbWVudGF0aW9uIG9mIHRoZQogICAgICAgICAg
ICAgIyAgICAgICAgW1tHZXRPd25Qcm9wZXJ0eV1dIGhvb2s/CiAgICAgICAgICAgICBwdXNoKEAk
b3V0cHV0QXJyYXksICRhZGRpdGlvbmFsSW5kZW50LiAiICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xv
dCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVp
cnkgfTtcbiIpOwotICAgICAgICAgICAgcHVzaChAJG91dHB1dEFycmF5LCAkYWRkaXRpb25hbElu
ZGVudC4gIiAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHtcbiIpOworICAgICAgICAgICAgcHVzaChAJG91
dHB1dEFycmF5LCAkYWRkaXRpb25hbEluZGVudC4gIiAgICAgICAgaWYgKCFKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7
XG4iKTsKICAgICAgICAgICAgICRhZGRpdGlvbmFsSW5kZW50IC49ICIgICAgIjsKICAgICAgICAg
fQogICAgICAgICBpZiAoISRuYW1lZFNldHRlck9wZXJhdGlvbikgewpAQCAtOTI5LDcgKzEwNjUs
NyBAQCBzdWIgR2VuZXJhdGVEZWZpbmVPd25Qcm9wZXJ0eQogICAgIAogICAgICMgNC4gUmV0dXJu
IE9yZGluYXJ5RGVmaW5lT3duUHJvcGVydHkoTywgUCwgRGVzYykuCiAgICAgIyBGSVhNRTogRG9l
cyB0aGlzIGRvIHRoZSBzYW1lIHRoaW5nPwotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICBy
ZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
LCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTtcbiIpOworICAgIHB1c2goQCRv
dXRwdXRBcnJheSwgIiAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJv
dyk7XG4iKTsKICAgICAKICAgICBwdXNoKEAkb3V0cHV0QXJyYXksICJ9XG5cbiIpOwogfQpAQCAt
OTQ5LDcgKzEwODUsNyBAQCBzdWIgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1vbgogICAgIGFz
c2VydCgiTmFtZWQgcHJvcGVydHkgZGVsZXRlcnMgYXJlIG5vdCBhbGxvd2VkIG9uIGdsb2JhbCBv
YmplY3QgaW50ZXJmYWNlcy4iKSBpZiBJc0dsb2JhbE9yUHJpbWFyeUdsb2JhbEludGVyZmFjZSgk
aW50ZXJmYWNlKTsKIAogICAgIEFkZFRvSW1wbEluY2x1ZGVzKCJKU0RPTUFic3RyYWN0T3BlcmF0
aW9ucy5oIiwgJGNvbmRpdGlvbmFsKTsKLSAgICBteSAkb3ZlcnJpZGVCdWlsdGluID0gJGNvZGVH
ZW5lcmF0b3ItPkluaGVyaXRzRXh0ZW5kZWRBdHRyaWJ1dGUoJGludGVyZmFjZSwgIk92ZXJyaWRl
QnVpbHRpbnMiKSA/ICJ0cnVlIiA6ICJmYWxzZSI7CisgICAgbXkgJG92ZXJyaWRlQnVpbHRpbiA9
ICRjb2RlR2VuZXJhdG9yLT5Jbmhlcml0c0V4dGVuZGVkQXR0cmlidXRlKCRpbnRlcmZhY2UsICJP
dmVycmlkZUJ1aWx0aW5zIikgPyAiT3ZlcnJpZGVCdWlsdGluczo6WWVzIiA6ICJPdmVycmlkZUJ1
aWx0aW5zOjpObyI7CiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAiICAgIGlmIChpc1Zpc2libGVO
YW1lZFByb3BlcnR5PCR7b3ZlcnJpZGVCdWlsdGlufT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUpKSB7XG4iKTsKIAogICAgIGlmICgkb3BlcmF0aW9uLT5leHRlbmRlZEF0dHJpYnV0
ZXMtPntDRVJlYWN0aW9uc30pIHsKQEAgLTEwMjksOSArMTE2NSw5IEBAIHN1YiBHZW5lcmF0ZURl
bGV0ZVByb3BlcnR5RGVmaW5pdGlvbgogICAgICMgR2VuZXJhdGVEZWxldGVQcm9wZXJ0eUNvbW1v
biBpbXBsZW1lbnRzIHN0ZXAgMi4KICAgICBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9uKCRv
dXRwdXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlvbiwgJGNvbmRpdGlv
bmFsKTsKIAotICAgICMgRklYTUU6IEluc3RlYWQgb2YgY2FsbGluZyBkb3duIEJhc2U6OmRlbGV0
ZVByb3BlcnR5LCBwZXJoYXBzIHdlIHNob3VsZCBpbXBsZW1lbnQKKyAgICAjIEZJWE1FOiBJbnN0
ZWFkIG9mIGNhbGxpbmcgZG93biBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHksIHBlcmhhcHMgd2Ug
c2hvdWxkIGltcGxlbWVudAogICAgICMgdGhlIHJlbWFpbmVkIG9mIHRoZSBhbGdvcml0aG0gb3Vy
c2VsdmVzLgotICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAgICByZXR1cm4gQmFzZTo6ZGVsZXRl
UHJvcGVydHkoY2VsbCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7XG4iKTsKKyAgICBwdXNoKEAkb3V0
cHV0QXJyYXksICIgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0
ZSwgcHJvcGVydHlOYW1lKTtcbiIpOwogICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIn1cblxuIik7
CiB9CiAKQEAgLTEwNjQsNyArMTIwMCw3IEBAIHN1YiBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5QnlJ
bmRleERlZmluaXQKICAgICAgICAgIyBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9uIGltcGxl
bWVudHMgc3RlcCAyLgogICAgICAgICBHZW5lcmF0ZURlbGV0ZVByb3BlcnR5Q29tbW9uKCRvdXRw
dXRBcnJheSwgJGludGVyZmFjZSwgJGNsYXNzTmFtZSwgJG9wZXJhdGlvbiwgJGNvbmRpdGlvbmFs
KTsKIAotICAgICAgICAjIEZJWE1FOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZG93biBCYXNlOjpkZWxl
dGVQcm9wZXJ0eUJ5SW5kZXgsIHBlcmhhcHMgd2Ugc2hvdWxkIGltcGxlbWVudAorICAgICAgICAj
IEZJWE1FOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZG93biBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHlC
eUluZGV4LCBwZXJoYXBzIHdlIHNob3VsZCBpbXBsZW1lbnQKICAgICAgICAgIyB0aGUgcmVtYWlu
ZWRlciBvZiB0aGUgYWxnb3JpdG0gKHN0ZXBzIDMgYW5kIDQpIG91cnNlbHZlcy4KICAgICAgICAg
CiAgICAgICAgICMgMy4gSWYgTyBoYXMgYW4gb3duIHByb3BlcnR5IHdpdGggbmFtZSBQLCB0aGVu
OgpAQCAtMTA3Miw3ICsxMjA4LDcgQEAgc3ViIEdlbmVyYXRlRGVsZXRlUHJvcGVydHlCeUluZGV4
RGVmaW5pdAogICAgICAgICAjICAgIDIuIE90aGVyd2lzZSwgcmVtb3ZlIHRoZSBwcm9wZXJ0eSBm
cm9tIE8uCiAgICAgICAgICMgMy4gUmV0dXJuIHRydWUuCiAgICAgICAgIAotICAgICAgICBwdXNo
KEAkb3V0cHV0QXJyYXksICIgICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChj
ZWxsLCBzdGF0ZSwgaW5kZXgpO1xuIik7CisgICAgICAgIHB1c2goQCRvdXRwdXRBcnJheSwgIiAg
ICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5k
ZXgpO1xuIik7CiAgICAgfQogCiAgICAgcHVzaChAJG91dHB1dEFycmF5LCAifVxuXG4iKTsKQEAg
LTE1NDEsMTcgKzE2NzcsNyBAQCBzdWIgSW5zdGFuY2VPdmVycmlkZXNHZXRPd25Qcm9wZXJ0eVNs
b3QKIHsKICAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7CiAgICAgcmV0dXJuICRpbnRlcmZhY2Ut
PmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdH0KLSAgICAgICAg
fHwgJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9Ci0g
ICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blBy
b3BlcnR5U2xvdEFuZERlc2NyaXB0b3J9Ci0gICAgICAgIHx8IEdldEluZGV4ZWRHZXR0ZXJPcGVy
YXRpb24oJGludGVyZmFjZSkKLSAgICAgICAgfHwgR2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGlu
dGVyZmFjZSk7Ci19Ci0KLXN1YiBJbnN0YW5jZU92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgKLXsKLSAgICBteSAkaW50ZXJmYWNlID0gc2hpZnQ7Ci0gICAgcmV0dXJuICRpbnRlcmZh
Y2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbUdldE93blByb3BlcnR5U2xvdEJ5SW5kZXh9
Ci0gICAgICAgIHx8ICRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3RvbU5hbWVk
R2V0dGVyfQorICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0
b21HZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4fQogICAgICAgICB8fCAkaW50ZXJmYWNlLT5leHRl
bmRlZEF0dHJpYnV0ZXMtPntDdXN0b21HZXRPd25Qcm9wZXJ0eVNsb3RBbmREZXNjcmlwdG9yfQog
ICAgICAgICB8fCBHZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpCiAgICAgICAg
IHx8IEdldE5hbWVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOwpAQCAtMjI3MCw4ICsyMzk2
LDggQEAgc3ViIEdlbmVyYXRlSGVhZGVyCiAgICAgbXkgJG5hbWVkR2V0dGVyT3BlcmF0aW9uID0g
R2V0TmFtZWRHZXR0ZXJPcGVyYXRpb24oJGludGVyZmFjZSk7CiAgICAgbXkgJGluZGV4ZWRHZXR0
ZXJPcGVyYXRpb24gPSBHZXRJbmRleGVkR2V0dGVyT3BlcmF0aW9uKCRpbnRlcmZhY2UpOwogCi0g
ICAgIyBGSVhNRTogV2h5IGRvZXNuJ3QgdGhpcyBhbHNvIGluY2x1ZGUgSW5kZXhlZCBHZXR0ZXJz
LCB7Q3VzdG9tR2V0T3duUHJvcGVydHlTbG90fSBhbmQge0N1c3RvbUdldE93blByb3BlcnR5U2xv
dEFuZERlc2NyaXB0b3J9Ci0gICAgaWYgKCRuYW1lZEdldHRlck9wZXJhdGlvbiB8fCAkaW50ZXJm
YWNlLT5leHRlbmRlZEF0dHJpYnV0ZXMtPntDdXN0b21OYW1lZEdldHRlcn0pIHsKKyAgICAjIEZJ
WE1FOiBXaHkgZG9lc24ndCB0aGlzIGFsc28gaW5jbHVkZSBJbmRleGVkIEdldHRlcnMsIFtDdXN0
b21HZXRPd25Qcm9wZXJ0eVNsb3RdIGFuZCBbQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90QW5kRGVz
Y3JpcHRvcl0KKyAgICBpZiAoJG5hbWVkR2V0dGVyT3BlcmF0aW9uKSB7CiAgICAgICAgIGlmICgk
Y29kZUdlbmVyYXRvci0+SW5oZXJpdHNFeHRlbmRlZEF0dHJpYnV0ZSgkaW50ZXJmYWNlLCAiT3Zl
cnJpZGVCdWlsdGlucyIpKSB7CiAgICAgICAgICAgICAkc3RydWN0dXJlRmxhZ3N7IkpTQzo6R2V0
T3duUHJvcGVydHlTbG90SXNJbXB1cmUifSA9IDE7CiAgICAgICAgIH0gZWxzZSB7CkBAIC0yMjg0
LDkgKzI0MTAsNiBAQCBzdWIgR2VuZXJhdGVIZWFkZXIKICAgICBpZiAoSW5zdGFuY2VPdmVycmlk
ZXNHZXRPd25Qcm9wZXJ0eVNsb3QoJGludGVyZmFjZSkpIHsKICAgICAgICAgcHVzaChAaGVhZGVy
Q29udGVudCwgIiAgICBzdGF0aWMgYm9vbCBnZXRPd25Qcm9wZXJ0eVNsb3QoSlNDOjpKU09iamVj
dCosIEpTQzo6RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90
Jik7XG4iKTsKICAgICAgICAgJHN0cnVjdHVyZUZsYWdzeyJKU0M6Ok92ZXJyaWRlc0dldE93blBy
b3BlcnR5U2xvdCJ9ID0gMTsKLSAgICB9Ci0gICAgCi0gICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVz
R2V0T3duUHJvcGVydHlTbG90QnlJbmRleCgkaW50ZXJmYWNlKSkgewogICAgICAgICBwdXNoKEBo
ZWFkZXJDb250ZW50LCAiICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgo
SlNDOjpKU09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBK
U0M6OlByb3BlcnR5U2xvdCYpO1xuIik7CiAgICAgICAgICRzdHJ1Y3R1cmVGbGFnc3siSlNDOjpJ
bnRlcmNlcHRzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleEV2ZW5XaGVuTGVuZ3RoSXNOb3RaZXJv
In0gPSAxOwogICAgIH0KQEAgLTI1MzksMTEgKzI2NjIsNyBAQCBzdWIgR2VuZXJhdGVIZWFkZXIK
ICAgICBpZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tR2V0T3duUHJv
cGVydHlTbG90QW5kRGVzY3JpcHRvcn0pIHsKICAgICAgICAgcHVzaChAaGVhZGVyQ29udGVudCwg
IiAgICBib29sIGdldE93blByb3BlcnR5U2xvdERlbGVnYXRlKEpTQzo6RXhlY1N0YXRlKiwgSlND
OjpQcm9wZXJ0eU5hbWUsIEpTQzo6UHJvcGVydHlTbG90Jik7XG4iKTsKICAgICB9Ci0KLSAgICBp
ZiAoJGludGVyZmFjZS0+ZXh0ZW5kZWRBdHRyaWJ1dGVzLT57Q3VzdG9tTmFtZWRHZXR0ZXJ9KSB7
Ci0gICAgICAgIHB1c2goQGhlYWRlckNvbnRlbnQsICIgICAgYm9vbCBuYW1lR2V0dGVyKEpTQzo6
RXhlY1N0YXRlKiwgSlNDOjpQcm9wZXJ0eU5hbWUsIEpTQzo6SlNWYWx1ZSYpO1xuIik7Ci0gICAg
fQotCisgICAgCiAgICAgaWYgKCRpbnRlcmZhY2UtPmV4dGVuZGVkQXR0cmlidXRlcy0+e0N1c3Rv
bU5hbWVkU2V0dGVyfSkgewogICAgICAgICBwdXNoKEBoZWFkZXJDb250ZW50LCAiICAgIGJvb2wg
cHV0RGVsZWdhdGUoSlNDOjpFeGVjU3RhdGUqLCBKU0M6OlByb3BlcnR5TmFtZSwgSlNDOjpKU1Zh
bHVlLCBKU0M6OlB1dFByb3BlcnR5U2xvdCYsIGJvb2wmIHB1dFJlc3VsdCk7XG4iKTsKICAgICB9
CkBAIC0zNzk4LDcgKzM5MTcsNyBAQCBzdWIgR2VuZXJhdGVJbXBsZW1lbnRhdGlvbgogICAgICAg
ICAgICAgbXkgJHJ1bnRpbWVFbmFibGVDb25kaXRpb25hbFN0cmluZyA9IEdlbmVyYXRlUnVudGlt
ZUVuYWJsZUNvbmRpdGlvbmFsU3RyaW5nKCRvcGVyYXRpb25PckF0dHJpYnV0ZSk7CiAgICAgICAg
ICAgICBteSAkbmFtZSA9ICRvcGVyYXRpb25PckF0dHJpYnV0ZS0+bmFtZTsKICAgICAgICAgICAg
IHB1c2goQGltcGxDb250ZW50LCAiICAgIGlmICghJHtydW50aW1lRW5hYmxlQ29uZGl0aW9uYWxT
dHJpbmd9KSB7XG4iKTsKLSAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikp
O1xuIik7CisgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRuYW1lXCIpKTtcbiIpOwogICAgICAg
ICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVT
Y29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxl
KTtcbiIpOwogICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIEpTT2JqZWN0
OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9w
ZXJ0eU5hbWUpO1xuIik7CiAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICB9XG4i
KTsKQEAgLTM4MjAsNyArMzkzOSw3IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVudGF0aW9uCiAgICAg
ICAgICAgICAgICAgbXkgJG5hbWUgPSAkb3BlcmF0aW9uT3JBdHRyaWJ1dGUtPm5hbWU7CiAKICAg
ICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICBpZiAoIWNvbnRleHQgfHwgIWRv
d25jYXN0PERvY3VtZW50PigqY29udGV4dCkuc2V0dGluZ3MoKS4ke2VuYWJsZUZ1bmN0aW9ufSgp
KSB7XG4iKTsKLSAgICAgICAgICAgICAgICBwdXNoKEBpbXBsQ29udGVudCwgIiAgICAgICAgSWRl
bnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRl
cnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KFwiJG5hbWVcIiksIHN0cmxlbihcIiRuYW1lXCIpKTtc
biIpOworICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oXCIkbmFtZVwiKSwgc3RybGVuKFwiJG5hbWVcIikpO1xuIik7CiAgICAg
ICAgICAgICAgICAgcHVzaChAaW1wbENvbnRlbnQsICIgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50LCAiICAgICAg
ICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMo
KSwgcHJvcGVydHlOYW1lKTtcbiIpOwogICAgICAgICAgICAgICAgIHB1c2goQGltcGxDb250ZW50
LCAiICAgIH1cbiIpOwpAQCAtNDAzMywxMSArNDE1Miw4IEBAIHN1YiBHZW5lcmF0ZUltcGxlbWVu
dGF0aW9uCiAgICAgfQogCiAgICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlT
bG90KCRpbnRlcmZhY2UpKSB7Ci0gICAgICAgIEdlbmVyYXRlR2V0T3duUHJvcGVydHlTbG90Qm9k
eShcQGltcGxDb250ZW50LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKTsKLSAgICB9Ci0gICAgCi0g
ICAgaWYgKEluc3RhbmNlT3ZlcnJpZGVzR2V0T3duUHJvcGVydHlTbG90QnlJbmRleCgkaW50ZXJm
YWNlKSkgewotICAgICAgICBHZW5lcmF0ZUdldE93blByb3BlcnR5U2xvdEJvZHlCeUluZGV4KFxA
aW1wbENvbnRlbnQsICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOworICAgICAgICBHZW5lcmF0ZUdl
dE93blByb3BlcnR5U2xvdChcQGltcGxDb250ZW50LCAkaW50ZXJmYWNlLCAkY2xhc3NOYW1lKTsK
KyAgICAgICAgR2VuZXJhdGVHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KFxAaW1wbENvbnRlbnQs
ICRpbnRlcmZhY2UsICRjbGFzc05hbWUpOwogICAgIH0KICAgICAKICAgICBpZiAoSW5zdGFuY2VP
dmVycmlkZXNHZXRPd25Qcm9wZXJ0eU5hbWVzKCRpbnRlcmZhY2UpKSB7CkBAIC02MTE5LDcgKzYy
MzUsNyBAQCBzdWIgTmF0aXZlVG9KU1ZhbHVlRE9NQ29udmVydE5lZWRzU3RhdGUKICAgICByZXR1
cm4gMSBpZiAkdHlwZS0+bmFtZSBlcSAiSlNPTiI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5h
bWUgZXEgIlNlcmlhbGl6ZWRTY3JpcHRWYWx1ZSI7CiAgICAgcmV0dXJuIDEgaWYgJHR5cGUtPm5h
bWUgZXEgIlhQYXRoTlNSZXNvbHZlciI7Ci0KKyAgICAKICAgICByZXR1cm4gMDsKIH0KIApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVzLmpzb24KPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy9JRExBdHRyaWJ1dGVz
Lmpzb24JKHJldmlzaW9uIDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvSURMQXR0cmlidXRlcy5qc29uCSh3b3JraW5nIGNvcHkpCkBAIC0xMTMsOSArMTEzLDYgQEAK
ICAgICAgICAgIkN1c3RvbUlzUmVhY2hhYmxlIjogewogICAgICAgICAgICAgImNvbnRleHRzQWxs
b3dlZCI6IFsiaW50ZXJmYWNlIl0KICAgICAgICAgfSwKLSAgICAgICAgIkN1c3RvbU5hbWVkR2V0
dGVyIjogewotICAgICAgICAgICAgImNvbnRleHRzQWxsb3dlZCI6IFsiaW50ZXJmYWNlIl0KLSAg
ICAgICAgfSwKICAgICAgICAgIkN1c3RvbU5hbWVkR2V0dGVyT25Qcm90b3R5cGUiOiB7CiAgICAg
ICAgICAgICAiY29udGV4dHNBbGxvd2VkIjogWyJpbnRlcmZhY2UiXQogICAgICAgICB9LApJbmRl
eDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L1Rlc3RDdXN0b21OYW1lZEdl
dHRlci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L1Rlc3RDdXN0b21OYW1lZEdldHRlci5pZGwJKHJldmlzaW9uIDIxODA3MCkKKysrIFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9UZXN0Q3VzdG9tTmFtZWRHZXR0ZXIuaWRs
CShub25leGlzdGVudCkKQEAgLTEsMzQgKzAsMCBAQAotLyoKLSAqIENvcHlyaWdodCAoQykgMjAx
MSBHb29nbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgotICoKLSAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXN0ckFyZywgd2l0aCBvciB3aXRob3V0
Ci0gKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKLSAqIGFyZSBtZXQ6Ci0gKgotICogMS4gIFJlZGlzdHJpYnV0aW9ucyBv
ZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90
aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVy
LgotICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0
aGUgYWJvdmUgY29weXJpZ2h0Ci0gKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9u
cyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQotICogICAgIGRvY3VtZW50YXRp
b24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24u
Ci0gKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhl
IG5hbWVzIG9mCi0gKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNl
IG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAotICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3
aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KLSAqCi0gKiBUSElTIFNP
RlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIg
QU5EIEFOWQotICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRXN0ckFyZywgSU5DTFVESU5H
LCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECi0gKiBXQVJSQU5USUVTIE9GIE1FUkNI
QU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCi0gKiBE
SVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJF
IExJQUJMRSBGT1IgQU5ZCi0gKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFM
LCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUwotICogKElOQ0xVRElORywgQlVU
IE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJ
Q0VTOwotICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVS
UlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECi0gKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElU
WSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAotICogKElO
Q0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBP
RiBUSEUgVVNFIE9GCi0gKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBP
U1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgotICovCi0KLVsKLSAgICBDdXN0b21OYW1lZEdldHRl
cgotXSBpbnRlcmZhY2UgVGVzdEN1c3RvbU5hbWVkR2V0dGVyIHsKLSAgICB2b2lkIGFub3RoZXJG
dW5jdGlvbihET01TdHJpbmcgc3RyKTsKLX07Ci0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRp
bmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RDdXN0b21OYW1lZEdldHRlci5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyLmNwcAkocmV2aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcAkobm9uZXhp
c3RlbnQpCkBAIC0xLDI3OSArMCwwIEBACi0vKgotICAgIFRoaXMgZmlsZSBpcyBwYXJ0IG9mIHRo
ZSBXZWJLaXQgb3BlbiBzb3VyY2UgcHJvamVjdC4KLSAgICBUaGlzIGZpbGUgaGFzIGJlZW4gZ2Vu
ZXJhdGVkIGJ5IGdlbmVyYXRlLWJpbmRpbmdzLnBsLiBETyBOT1QgTU9ESUZZIQotCi0gICAgVGhp
cyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9v
cgotICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljCi0gICAgTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUgU29mdHdhcmUg
Rm91bmRhdGlvbjsgZWl0aGVyCi0gICAgdmVyc2lvbiAyIG9mIHRoZSBMaWNlbnNlLCBvciAoYXQg
eW91ciBvcHRpb24pIGFueSBsYXRlciB2ZXJzaW9uLgotCi0gICAgVGhpcyBsaWJyYXJ5IGlzIGRp
c3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCi0gICAgYnV0IFdJ
VEhPVVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YK
LSAgICBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu
ICBTZWUgdGhlIEdOVQotICAgIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9y
ZSBkZXRhaWxzLgotCi0gICAgWW91IHNob3VsZCBoYXZlIHJlY2VpdmVkIGEgY29weSBvZiB0aGUg
R05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZQotICAgIGFsb25nIHdpdGggdGhpcyBs
aWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRvCi0gICAg
dGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbiwgSW5jLiwgNTEgRnJhbmtsaW4gU3RyZWV0LCBG
aWZ0aCBGbG9vciwKLSAgICBCb3N0b24sIE1BIDAyMTEwLTEzMDEsIFVTQS4KLSovCi0KLSNpbmNs
dWRlICJjb25maWcuaCIKLSNpbmNsdWRlICJKU1Rlc3RDdXN0b21OYW1lZEdldHRlci5oIgotCi0j
aW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCi0jaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENv
bnN0cnVjdGFibGUuaCIKLSNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKLSNpbmNsdWRlICJKU0RP
TUV4Y2VwdGlvbkhhbmRsaW5nLmgiCi0jaW5jbHVkZSAiSlNET01PcGVyYXRpb24uaCIKLSNpbmNs
dWRlICJKU0RPTVdyYXBwZXJDYWNoZS5oIgotI2luY2x1ZGUgPHJ1bnRpbWUvRnVuY3Rpb25Qcm90
b3R5cGUuaD4KLSNpbmNsdWRlIDx3dGYvR2V0UHRyLmg+Ci0KLXVzaW5nIG5hbWVzcGFjZSBKU0M7
Ci0KLW5hbWVzcGFjZSBXZWJDb3JlIHsKLQotLy8gRnVuY3Rpb25zCi0KLUpTQzo6RW5jb2RlZEpT
VmFsdWUgSlNDX0hPU1RfQ0FMTCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0
aW9uQW5vdGhlckZ1bmN0aW9uKEpTQzo6RXhlY1N0YXRlKik7Ci0KLS8vIEF0dHJpYnV0ZXMKLQot
SlNDOjpFbmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpT
Qzo6RXhlY1N0YXRlKiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpQcm9wZXJ0eU5hbWUpOwot
Ym9vbCBzZXRKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEpTQzo6RXhlY1N0YXRl
KiwgSlNDOjpFbmNvZGVkSlNWYWx1ZSwgSlNDOjpFbmNvZGVkSlNWYWx1ZSk7Ci0KLWNsYXNzIEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlIDogcHVibGljIEpTQzo6SlNOb25GaW5hbE9i
amVjdCB7Ci1wdWJsaWM6Ci0gICAgdXNpbmcgQmFzZSA9IEpTQzo6SlNOb25GaW5hbE9iamVjdDsK
LSAgICBzdGF0aWMgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUqIGNyZWF0ZShKU0M6
OlZNJiB2bSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgSlNDOjpTdHJ1Y3R1cmUq
IHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90
eXBlKiBwdHIgPSBuZXcgKE5vdE51bGwsIEpTQzo6YWxsb2NhdGVDZWxsPEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyUHJvdG90eXBlPih2bS5oZWFwKSkgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90
b3R5cGUodm0sIGdsb2JhbE9iamVjdCwgc3RydWN0dXJlKTsKLSAgICAgICAgcHRyLT5maW5pc2hD
cmVhdGlvbih2bSk7Ci0gICAgICAgIHJldHVybiBwdHI7Ci0gICAgfQotCi0gICAgREVDTEFSRV9J
TkZPOwotICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3RydWN0dXJlKEpTQzo6Vk0m
IHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpTQzo6SlNWYWx1ZSBwcm90
b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1cmU6OmNyZWF0ZSh2bSwg
Z2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlNDOjpPYmplY3RUeXBlLCBT
dHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci0gICAgfQotCi1wcml2YXRlOgotICAgIEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0
KiwgSlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSkKLSAgICAgICAgOiBKU0M6OkpTTm9uRmluYWxP
YmplY3Qodm0sIHN0cnVjdHVyZSkKLSAgICB7Ci0gICAgfQotCi0gICAgdm9pZCBmaW5pc2hDcmVh
dGlvbihKU0M6OlZNJik7Ci19OwotCi11c2luZyBKU1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0
cnVjdG9yID0gSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGU8SlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI+OwotCi10ZW1wbGF0ZTw+IEpTVmFsdWUgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJD
b25zdHJ1Y3Rvcjo6cHJvdG90eXBlRm9yU3RydWN0dXJlKEpTQzo6Vk0mIHZtLCBjb25zdCBKU0RP
TUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAgIFVOVVNFRF9QQVJBTSh2bSk7Ci0g
ICAgcmV0dXJuIGdsb2JhbE9iamVjdC5mdW5jdGlvblByb3RvdHlwZSgpOwotfQotCi10ZW1wbGF0
ZTw+IHZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25zdHJ1Y3Rvcjo6aW5pdGlhbGl6ZVBy
b3BlcnRpZXMoVk0mIHZtLCBKU0RPTUdsb2JhbE9iamVjdCYgZ2xvYmFsT2JqZWN0KQotewotICAg
IHB1dERpcmVjdCh2bSwgdm0ucHJvcGVydHlOYW1lcy0+cHJvdG90eXBlLCBKU1Rlc3RDdXN0b21O
YW1lZEdldHRlcjo6cHJvdG90eXBlKHZtLCBnbG9iYWxPYmplY3QpLCBEb250RGVsZXRlIHwgUmVh
ZE9ubHkgfCBEb250RW51bSk7Ci0gICAgcHV0RGlyZWN0KHZtLCB2bS5wcm9wZXJ0eU5hbWVzLT5u
YW1lLCBqc05vbnRyaXZpYWxTdHJpbmcoJnZtLCBTdHJpbmcoQVNDSUlMaXRlcmFsKCJUZXN0Q3Vz
dG9tTmFtZWRHZXR0ZXIiKSkpLCBSZWFkT25seSB8IERvbnRFbnVtKTsKLSAgICBwdXREaXJlY3Qo
dm0sIHZtLnByb3BlcnR5TmFtZXMtPmxlbmd0aCwganNOdW1iZXIoMCksIFJlYWRPbmx5IHwgRG9u
dEVudW0pOwotfQotCi10ZW1wbGF0ZTw+IGNvbnN0IENsYXNzSW5mbyBKU1Rlc3RDdXN0b21OYW1l
ZEdldHRlckNvbnN0cnVjdG9yOjpzX2luZm8gPSB7ICJUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIiLCAm
QmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxscHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IpIH07Ci0KLS8qIEhhc2ggdGFibGUgZm9yIHBy
b3RvdHlwZSAqLwotCi1zdGF0aWMgY29uc3QgSGFzaFRhYmxlVmFsdWUgSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXJQcm90b3R5cGVUYWJsZVZhbHVlc1tdID0KLXsKLSAgICB7ICJjb25zdHJ1Y3RvciIs
IERvbnRFbnVtLCBOb0ludHJpbnNpYywgeyAoaW50cHRyX3Qpc3RhdGljX2Nhc3Q8UHJvcGVydHlT
bG90OjpHZXRWYWx1ZUZ1bmM+KGpzVGVzdEN1c3RvbU5hbWVkR2V0dGVyQ29uc3RydWN0b3IpLCAo
aW50cHRyX3QpIHN0YXRpY19jYXN0PFB1dFByb3BlcnR5U2xvdDo6UHV0VmFsdWVGdW5jPihzZXRK
U1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKSB9IH0sCi0gICAgeyAiYW5vdGhlckZ1
bmN0aW9uIiwgSlNDOjpGdW5jdGlvbiwgTm9JbnRyaW5zaWMsIHsgKGludHB0cl90KXN0YXRpY19j
YXN0PE5hdGl2ZUZ1bmN0aW9uPihqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0
aW9uQW5vdGhlckZ1bmN0aW9uKSwgKGludHB0cl90KSAoMSkgfSB9LAotfTsKLQotY29uc3QgQ2xh
c3NJbmZvIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpzX2luZm8gPSB7ICJUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGUiLCAmQmFzZTo6c19pbmZvLCBudWxscHRyLCBudWxs
cHRyLCBDUkVBVEVfTUVUSE9EX1RBQkxFKEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBl
KSB9OwotCi12b2lkIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlOjpmaW5pc2hDcmVh
dGlvbihWTSYgdm0pCi17Ci0gICAgQmFzZTo6ZmluaXNoQ3JlYXRpb24odm0pOwotICAgIHJlaWZ5
U3RhdGljUHJvcGVydGllcyh2bSwgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVUYWJs
ZVZhbHVlcywgKnRoaXMpOwotfQotCi1jb25zdCBDbGFzc0luZm8gSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXI6OnNfaW5mbyA9IHsgIlRlc3RDdXN0b21OYW1lZEdldHRlciIsICZCYXNlOjpzX2luZm8s
IG51bGxwdHIsIG51bGxwdHIsIENSRUFURV9NRVRIT0RfVEFCTEUoSlNUZXN0Q3VzdG9tTmFtZWRH
ZXR0ZXIpIH07Ci0KLUpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpKU1Rlc3RDdXN0b21OYW1lZEdl
dHRlcihTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QmIGdsb2JhbE9iamVj
dCwgUmVmPFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQotICAgIDogSlNET01XcmFwcGVy
PFRlc3RDdXN0b21OYW1lZEdldHRlcj4oc3RydWN0dXJlLCBnbG9iYWxPYmplY3QsIFdURk1vdmUo
aW1wbCkpCi17Ci19Ci0KLXZvaWQgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmZpbmlzaENyZWF0
aW9uKFZNJiB2bSkKLXsKLSAgICBCYXNlOjpmaW5pc2hDcmVhdGlvbih2bSk7Ci0gICAgQVNTRVJU
KGluaGVyaXRzKHZtLCBpbmZvKCkpKTsKLQotfQotCi1KU09iamVjdCogSlNUZXN0Q3VzdG9tTmFt
ZWRHZXR0ZXI6OmNyZWF0ZVByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9i
YWxPYmplY3QpCi17Ci0gICAgcmV0dXJuIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBl
OjpjcmVhdGUodm0sICZnbG9iYWxPYmplY3QsIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90
eXBlOjpjcmVhdGVTdHJ1Y3R1cmUodm0sICZnbG9iYWxPYmplY3QsIGdsb2JhbE9iamVjdC5vYmpl
Y3RQcm90b3R5cGUoKSkpOwotfQotCi1KU09iamVjdCogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6
OnByb3RvdHlwZShWTSYgdm0sIEpTRE9NR2xvYmFsT2JqZWN0JiBnbG9iYWxPYmplY3QpCi17Ci0g
ICAgcmV0dXJuIGdldERPTVByb3RvdHlwZTxKU1Rlc3RDdXN0b21OYW1lZEdldHRlcj4odm0sIGds
b2JhbE9iamVjdCk7Ci19Ci0KLUpTVmFsdWUgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldENv
bnN0cnVjdG9yKFZNJiB2bSwgY29uc3QgSlNHbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCkKLXsK
LSAgICByZXR1cm4gZ2V0RE9NQ29uc3RydWN0b3I8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJDb25z
dHJ1Y3Rvcj4odm0sICpqc0Nhc3Q8Y29uc3QgSlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmpl
Y3QpKTsKLX0KLQotdm9pZCBKU1Rlc3RDdXN0b21OYW1lZEdldHRlcjo6ZGVzdHJveShKU0M6OkpT
Q2VsbCogY2VsbCkKLXsKLSAgICBKU1Rlc3RDdXN0b21OYW1lZEdldHRlciogdGhpc09iamVjdCA9
IHN0YXRpY19jYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4oY2VsbCk7Ci0gICAgdGhpc09i
amVjdC0+SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6On5KU1Rlc3RDdXN0b21OYW1lZEdldHRlcigp
OwotfQotCi1ib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRPd25Qcm9wZXJ0eVNsb3Qo
SlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5
TmFtZSwgUHJvcGVydHlTbG90JiBzbG90KQotewotICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nh
c3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90
eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0
Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0
dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAm
JiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgSlNWYWx1ZSB2YWx1ZTsKLSAg
ICAgICAgaWYgKHRoaXNPYmplY3QtPm5hbWVHZXR0ZXIoc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFs
dWUpKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2
YWx1ZSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBy
ZXR1cm4gZmFsc2U7Ci19Ci0KLWJvb2wgSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5z
aWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKLXsKLSAgICBhdXRvKiB0aGlzT2JqZWN0
ID0ganNDYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRo
aXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBKU1ZhbHVlIHZhbHVl
OwotICAgICAgICBpZiAodGhpc09iamVjdC0+bmFtZUdldHRlcihzdGF0ZSwgcHJvcGVydHlOYW1l
LCB2YWx1ZSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9u
bHksIHZhbHVlKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQot
ICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0
YXRlLCBpbmRleCwgc2xvdCk7Ci19Ci0KLXRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEN1c3RvbU5h
bWVkR2V0dGVyKiBJRExPcGVyYXRpb248SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+OjpjYXN0KEV4
ZWNTdGF0ZSYgc3RhdGUpCi17Ci0gICAgcmV0dXJuIGpzRHluYW1pY0Rvd25jYXN0PEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyKj4oc3RhdGUudm0oKSwgc3RhdGUudGhpc1ZhbHVlKCkpOwotfQotCi1F
bmNvZGVkSlNWYWx1ZSBqc1Rlc3RDdXN0b21OYW1lZEdldHRlckNvbnN0cnVjdG9yKEV4ZWNTdGF0
ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQotewotICAg
IFZNJiB2bSA9IHN0YXRlLT52bSgpOwotICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhS
T1dfU0NPUEUodm0pOwotICAgIGF1dG8qIHByb3RvdHlwZSA9IGpzRHluYW1pY0Rvd25jYXN0PEpT
VGVzdEN1c3RvbU5hbWVkR2V0dGVyUHJvdG90eXBlKj4odm0sIEpTVmFsdWU6OmRlY29kZSh0aGlz
VmFsdWUpKTsKLSAgICBpZiAoVU5MSUtFTFkoIXByb3RvdHlwZSkpCi0gICAgICAgIHJldHVybiB0
aHJvd1ZNVHlwZUVycm9yKHN0YXRlLCB0aHJvd1Njb3BlKTsKLSAgICByZXR1cm4gSlNWYWx1ZTo6
ZW5jb2RlKEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyOjpnZXRDb25zdHJ1Y3RvcihzdGF0ZS0+dm0o
KSwgcHJvdG90eXBlLT5nbG9iYWxPYmplY3QoKSkpOwotfQotCi1ib29sIHNldEpTVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwgRW5jb2RlZEpTVmFsdWUg
dGhpc1ZhbHVlLCBFbmNvZGVkSlNWYWx1ZSBlbmNvZGVkVmFsdWUpCi17Ci0gICAgVk0mIHZtID0g
c3RhdGUtPnZtKCk7Ci0gICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRSh2
bSk7Ci0gICAgYXV0byogcHJvdG90eXBlID0ganNEeW5hbWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJQcm90b3R5cGUqPih2bSwgSlNWYWx1ZTo6ZGVjb2RlKHRoaXNWYWx1ZSkpOwot
ICAgIGlmIChVTkxJS0VMWSghcHJvdG90eXBlKSkgewotICAgICAgICB0aHJvd1ZNVHlwZUVycm9y
KHN0YXRlLCB0aHJvd1Njb3BlKTsKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIH0KLSAgICAv
LyBTaGFkb3dpbmcgYSBidWlsdC1pbiBjb25zdHJ1Y3RvcgotICAgIHJldHVybiBwcm90b3R5cGUt
PnB1dERpcmVjdChzdGF0ZS0+dm0oKSwgc3RhdGUtPnByb3BlcnR5TmFtZXMoKS5jb25zdHJ1Y3Rv
ciwgSlNWYWx1ZTo6ZGVjb2RlKGVuY29kZWRWYWx1ZSkpOwotfQotCi1zdGF0aWMgaW5saW5lIEpT
Qzo6RW5jb2RlZEpTVmFsdWUganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5cGVGdW5jdGlv
bkFub3RoZXJGdW5jdGlvbkJvZHkoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCB0eXBlbmFtZSBJRExP
cGVyYXRpb248SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+OjpDbGFzc1BhcmFtZXRlciBjYXN0ZWRU
aGlzLCBKU0M6OlRocm93U2NvcGUmIHRocm93U2NvcGUpCi17Ci0gICAgVU5VU0VEX1BBUkFNKHN0
YXRlKTsKLSAgICBVTlVTRURfUEFSQU0odGhyb3dTY29wZSk7Ci0gICAgYXV0byYgaW1wbCA9IGNh
c3RlZFRoaXMtPndyYXBwZWQoKTsKLSAgICBpZiAoVU5MSUtFTFkoc3RhdGUtPmFyZ3VtZW50Q291
bnQoKSA8IDEpKQotICAgICAgICByZXR1cm4gdGhyb3dWTUVycm9yKHN0YXRlLCB0aHJvd1Njb3Bl
LCBjcmVhdGVOb3RFbm91Z2hBcmd1bWVudHNFcnJvcihzdGF0ZSkpOwotICAgIGF1dG8gc3RyID0g
Y29udmVydDxJRExET01TdHJpbmc+KCpzdGF0ZSwgc3RhdGUtPnVuY2hlY2tlZEFyZ3VtZW50KDAp
KTsKLSAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIGVuY29kZWRKU1ZhbHVlKCkp
OwotICAgIGltcGwuYW5vdGhlckZ1bmN0aW9uKFdURk1vdmUoc3RyKSk7Ci0gICAgcmV0dXJuIEpT
VmFsdWU6OmVuY29kZShqc1VuZGVmaW5lZCgpKTsKLX0KLQotRW5jb2RlZEpTVmFsdWUgSlNDX0hP
U1RfQ0FMTCBqc1Rlc3RDdXN0b21OYW1lZEdldHRlclByb3RvdHlwZUZ1bmN0aW9uQW5vdGhlckZ1
bmN0aW9uKEV4ZWNTdGF0ZSogc3RhdGUpCi17Ci0gICAgcmV0dXJuIElETE9wZXJhdGlvbjxKU1Rl
c3RDdXN0b21OYW1lZEdldHRlcj46OmNhbGw8anNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXJQcm90b3R5
cGVGdW5jdGlvbkFub3RoZXJGdW5jdGlvbkJvZHk+KCpzdGF0ZSwgImFub3RoZXJGdW5jdGlvbiIp
OwotfQotCi1ib29sIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXI6OmlzUmVhY2hhYmxlRnJv
bU9wYXF1ZVJvb3RzKEpTQzo6SGFuZGxlPEpTQzo6VW5rbm93bj4gaGFuZGxlLCB2b2lkKiwgU2xv
dFZpc2l0b3ImIHZpc2l0b3IpCi17Ci0gICAgVU5VU0VEX1BBUkFNKGhhbmRsZSk7Ci0gICAgVU5V
U0VEX1BBUkFNKHZpc2l0b3IpOwotICAgIHJldHVybiBmYWxzZTsKLX0KLQotdm9pZCBKU1Rlc3RD
dXN0b21OYW1lZEdldHRlck93bmVyOjpmaW5hbGl6ZShKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+
IGhhbmRsZSwgdm9pZCogY29udGV4dCkKLXsKLSAgICBhdXRvKiBqc1Rlc3RDdXN0b21OYW1lZEdl
dHRlciA9IHN0YXRpY19jYXN0PEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKj4oaGFuZGxlLnNsb3Qo
KS0+YXNDZWxsKCkpOwotICAgIGF1dG8mIHdvcmxkID0gKnN0YXRpY19jYXN0PERPTVdyYXBwZXJX
b3JsZCo+KGNvbnRleHQpOwotICAgIHVuY2FjaGVXcmFwcGVyKHdvcmxkLCAmanNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXItPndyYXBwZWQoKSwganNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIpOwotfQotCi0j
aWYgRU5BQkxFKEJJTkRJTkdfSU5URUdSSVRZKQotI2lmIFBMQVRGT1JNKFdJTikKLSNwcmFnbWEg
d2FybmluZyhkaXNhYmxlOiA0NDgzKQotZXh0ZXJuICJDIiB7IGV4dGVybiB2b2lkICgqY29uc3Qg
X19pZGVudGlmaWVyKCI/P183VGVzdEN1c3RvbU5hbWVkR2V0dGVyQFdlYkNvcmVAQDZCQCIpW10p
KCk7IH0KLSNlbHNlCi1leHRlcm4gIkMiIHsgZXh0ZXJuIHZvaWQqIF9aVFZON1dlYkNvcmUyMVRl
c3RDdXN0b21OYW1lZEdldHRlckVbXTsgfQotI2VuZGlmCi0jZW5kaWYKLQotSlNDOjpKU1ZhbHVl
IHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xv
YmFsT2JqZWN0LCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0dGVyPiYmIGltcGwpCi17Ci0KLSNpZiBF
TkFCTEUoQklORElOR19JTlRFR1JJVFkpCi0gICAgdm9pZCogYWN0dWFsVlRhYmxlUG9pbnRlciA9
ICoocmVpbnRlcnByZXRfY2FzdDx2b2lkKio+KGltcGwucHRyKCkpKTsKLSNpZiBQTEFURk9STShX
SU4pCi0gICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gcmVpbnRlcnByZXRfY2FzdDx2
b2lkKj4oX19pZGVudGlmaWVyKCI/P183VGVzdEN1c3RvbU5hbWVkR2V0dGVyQFdlYkNvcmVAQDZC
QCIpKTsKLSNlbHNlCi0gICAgdm9pZCogZXhwZWN0ZWRWVGFibGVQb2ludGVyID0gJl9aVFZON1dl
YkNvcmUyMVRlc3RDdXN0b21OYW1lZEdldHRlckVbMl07Ci0jaWYgQ09NUElMRVIoQ0xBTkcpCi0g
ICAgLy8gSWYgdGhpcyBmYWlscyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgZG9lcyBub3QgaGF2ZSBh
IHZ0YWJsZSwgc28geW91IG5lZWQgdG8gYWRkIHRoZQotICAgIC8vIEltcGxlbWVudGF0aW9uTGFj
a3NWVGFibGUgYXR0cmlidXRlIHRvIHRoZSBpbnRlcmZhY2UgZGVmaW5pdGlvbgotICAgIHN0YXRp
Y19hc3NlcnQoX19pc19wb2x5bW9ycGhpYyhUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIpLCAiVGVzdEN1
c3RvbU5hbWVkR2V0dGVyIGlzIG5vdCBwb2x5bW9ycGhpYyIpOwotI2VuZGlmCi0jZW5kaWYKLSAg
ICAvLyBJZiB5b3UgaGl0IHRoaXMgYXNzZXJ0aW9uIHlvdSBlaXRoZXIgaGF2ZSBhIHVzZSBhZnRl
ciBmcmVlIGJ1Zywgb3IKLSAgICAvLyBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIgaGFzIHN1YmNsYXNz
ZXMuIElmIFRlc3RDdXN0b21OYW1lZEdldHRlciBoYXMgc3ViY2xhc3NlcyB0aGF0IGdldCBwYXNz
ZWQKLSAgICAvLyB0byB0b0pTKCkgd2UgY3VycmVudGx5IHJlcXVpcmUgVGVzdEN1c3RvbU5hbWVk
R2V0dGVyIHlvdSB0byBvcHQgb3V0IG9mIGJpbmRpbmcgaGFyZGVuaW5nCi0gICAgLy8gYnkgYWRk
aW5nIHRoZSBTa2lwVlRhYmxlVmFsaWRhdGlvbiBhdHRyaWJ1dGUgdG8gdGhlIGludGVyZmFjZSBJ
REwgZGVmaW5pdGlvbgotICAgIFJFTEVBU0VfQVNTRVJUKGFjdHVhbFZUYWJsZVBvaW50ZXIgPT0g
ZXhwZWN0ZWRWVGFibGVQb2ludGVyKTsKLSNlbmRpZgotICAgIHJldHVybiBjcmVhdGVXcmFwcGVy
PFRlc3RDdXN0b21OYW1lZEdldHRlcj4oZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGltcGwpKTsKLX0K
LQotSlNDOjpKU1ZhbHVlIHRvSlMoSlNDOjpFeGVjU3RhdGUqIHN0YXRlLCBKU0RPTUdsb2JhbE9i
amVjdCogZ2xvYmFsT2JqZWN0LCBUZXN0Q3VzdG9tTmFtZWRHZXR0ZXImIGltcGwpCi17Ci0gICAg
cmV0dXJuIHdyYXAoc3RhdGUsIGdsb2JhbE9iamVjdCwgaW1wbCk7Ci19Ci0KLVRlc3RDdXN0b21O
YW1lZEdldHRlciogSlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI6OnRvV3JhcHBlZChKU0M6OlZNJiB2
bSwgSlNDOjpKU1ZhbHVlIHZhbHVlKQotewotICAgIGlmIChhdXRvKiB3cmFwcGVyID0ganNEeW5h
bWljRG93bmNhc3Q8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqPih2bSwgdmFsdWUpKQotICAgICAg
ICByZXR1cm4gJndyYXBwZXItPndyYXBwZWQoKTsKLSAgICByZXR1cm4gbnVsbHB0cjsKLX0KLQot
fQoKUHJvcGVydHkgY2hhbmdlcyBvbjogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmNwcApfX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCkRlbGV0ZWQ6IHN2
bjplb2wtc3R5bGUKIyMgLTEgKzAsMCAjIwotTEYKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9w
ZXJ0eQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEN1c3RvbU5hbWVkR2V0dGVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGlu
Z3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEN1c3RvbU5hbWVkR2V0dGVyLmgJKHJldmlzaW9uIDIx
ODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5oCShub25leGlzdGVudCkKQEAgLTEsOTAgKzAsMCBAQAotLyoKLSAg
ICBUaGlzIGZpbGUgaXMgcGFydCBvZiB0aGUgV2ViS2l0IG9wZW4gc291cmNlIHByb2plY3QuCi0g
ICAgVGhpcyBmaWxlIGhhcyBiZWVuIGdlbmVyYXRlZCBieSBnZW5lcmF0ZS1iaW5kaW5ncy5wbC4g
RE8gTk9UIE1PRElGWSEKLQotICAgIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKLSAgICBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1z
IG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwotICAgIExpY2Vuc2UgYXMgcHVibGlz
aGVkIGJ5IHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb247IGVpdGhlcgotICAgIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
LQotICAgIFRoaXMgbGlicmFyeSBpcyBkaXN0cmlidXRlZCBpbiB0aGUgaG9wZSB0aGF0IGl0IHdp
bGwgYmUgdXNlZnVsLAotICAgIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCi0gICAgTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1Mg
Rk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFLiAgU2VlIHRoZSBHTlUKLSAgICBMaWJyYXJ5IEdlbmVy
YWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0YWlscy4KLQotICAgIFlvdSBzaG91bGQgaGF2
ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vu
c2UKLSAgICBhbG9uZyB3aXRoIHRoaXMgbGlicmFyeTsgc2VlIHRoZSBmaWxlIENPUFlJTkcuTElC
LiAgSWYgbm90LCB3cml0ZSB0bwotICAgIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIElu
Yy4sIDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCi0gICAgQm9zdG9uLCBNQSAwMjEx
MC0xMzAxLCBVU0EuCi0qLwotCi0jcHJhZ21hIG9uY2UKLQotI2luY2x1ZGUgIkpTRE9NV3JhcHBl
ci5oIgotI2luY2x1ZGUgIlRlc3RDdXN0b21OYW1lZEdldHRlci5oIgotI2luY2x1ZGUgPHd0Zi9O
ZXZlckRlc3Ryb3llZC5oPgotCi1uYW1lc3BhY2UgV2ViQ29yZSB7Ci0KLWNsYXNzIEpTVGVzdEN1
c3RvbU5hbWVkR2V0dGVyIDogcHVibGljIEpTRE9NV3JhcHBlcjxUZXN0Q3VzdG9tTmFtZWRHZXR0
ZXI+IHsKLXB1YmxpYzoKLSAgICB1c2luZyBCYXNlID0gSlNET01XcmFwcGVyPFRlc3RDdXN0b21O
YW1lZEdldHRlcj47Ci0gICAgc3RhdGljIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiBjcmVhdGUo
SlNDOjpTdHJ1Y3R1cmUqIHN0cnVjdHVyZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVj
dCwgUmVmPFRlc3RDdXN0b21OYW1lZEdldHRlcj4mJiBpbXBsKQotICAgIHsKLSAgICAgICAgSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIqIHB0ciA9IG5ldyAoTm90TnVsbCwgSlNDOjphbGxvY2F0ZUNl
bGw8SlNUZXN0Q3VzdG9tTmFtZWRHZXR0ZXI+KGdsb2JhbE9iamVjdC0+dm0oKS5oZWFwKSkgSlNU
ZXN0Q3VzdG9tTmFtZWRHZXR0ZXIoc3RydWN0dXJlLCAqZ2xvYmFsT2JqZWN0LCBXVEZNb3ZlKGlt
cGwpKTsKLSAgICAgICAgcHRyLT5maW5pc2hDcmVhdGlvbihnbG9iYWxPYmplY3QtPnZtKCkpOwot
ICAgICAgICByZXR1cm4gcHRyOwotICAgIH0KLQotICAgIHN0YXRpYyBKU0M6OkpTT2JqZWN0KiBj
cmVhdGVQcm90b3R5cGUoSlNDOjpWTSYsIEpTRE9NR2xvYmFsT2JqZWN0Jik7Ci0gICAgc3RhdGlj
IEpTQzo6SlNPYmplY3QqIHByb3RvdHlwZShKU0M6OlZNJiwgSlNET01HbG9iYWxPYmplY3QmKTsK
LSAgICBzdGF0aWMgVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB0b1dyYXBwZWQoSlNDOjpWTSYsIEpT
Qzo6SlNWYWx1ZSk7Ci0gICAgc3RhdGljIGJvb2wgZ2V0T3duUHJvcGVydHlTbG90KEpTQzo6SlNP
YmplY3QqLCBKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OlByb3BlcnR5
U2xvdCYpOwotICAgIHN0YXRpYyBib29sIGdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNDOjpK
U09iamVjdCosIEpTQzo6RXhlY1N0YXRlKiwgdW5zaWduZWQgcHJvcGVydHlOYW1lLCBKU0M6OlBy
b3BlcnR5U2xvdCYpOwotICAgIHN0YXRpYyB2b2lkIGRlc3Ryb3koSlNDOjpKU0NlbGwqKTsKLQot
ICAgIERFQ0xBUkVfSU5GTzsKLQotICAgIHN0YXRpYyBKU0M6OlN0cnVjdHVyZSogY3JlYXRlU3Ry
dWN0dXJlKEpTQzo6Vk0mIHZtLCBKU0M6OkpTR2xvYmFsT2JqZWN0KiBnbG9iYWxPYmplY3QsIEpT
Qzo6SlNWYWx1ZSBwcm90b3R5cGUpCi0gICAgewotICAgICAgICByZXR1cm4gSlNDOjpTdHJ1Y3R1
cmU6OmNyZWF0ZSh2bSwgZ2xvYmFsT2JqZWN0LCBwcm90b3R5cGUsIEpTQzo6VHlwZUluZm8oSlND
OjpPYmplY3RUeXBlLCBTdHJ1Y3R1cmVGbGFncyksIGluZm8oKSk7Ci0gICAgfQotCi0gICAgc3Rh
dGljIEpTQzo6SlNWYWx1ZSBnZXRDb25zdHJ1Y3RvcihKU0M6OlZNJiwgY29uc3QgSlNDOjpKU0ds
b2JhbE9iamVjdCopOwotcHVibGljOgotICAgIHN0YXRpYyBjb25zdCB1bnNpZ25lZCBTdHJ1Y3R1
cmVGbGFncyA9IEpTQzo6R2V0T3duUHJvcGVydHlTbG90SXNJbXB1cmVGb3JQcm9wZXJ0eUFic2Vu
Y2UgfCBKU0M6OkludGVyY2VwdHNHZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4RXZlbldoZW5MZW5n
dGhJc05vdFplcm8gfCBKU0M6Ok92ZXJyaWRlc0dldE93blByb3BlcnR5U2xvdCB8IEJhc2U6OlN0
cnVjdHVyZUZsYWdzOwotcHJvdGVjdGVkOgotICAgIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyKEpT
Qzo6U3RydWN0dXJlKiwgSlNET01HbG9iYWxPYmplY3QmLCBSZWY8VGVzdEN1c3RvbU5hbWVkR2V0
dGVyPiYmKTsKLQotICAgIHZvaWQgZmluaXNoQ3JlYXRpb24oSlNDOjpWTSYpOwotICAgIGJvb2wg
bmFtZUdldHRlcihKU0M6OkV4ZWNTdGF0ZSosIEpTQzo6UHJvcGVydHlOYW1lLCBKU0M6OkpTVmFs
dWUmKTsKLX07Ci0KLWNsYXNzIEpTVGVzdEN1c3RvbU5hbWVkR2V0dGVyT3duZXIgOiBwdWJsaWMg
SlNDOjpXZWFrSGFuZGxlT3duZXIgewotcHVibGljOgotICAgIHZpcnR1YWwgYm9vbCBpc1JlYWNo
YWJsZUZyb21PcGFxdWVSb290cyhKU0M6OkhhbmRsZTxKU0M6OlVua25vd24+LCB2b2lkKiBjb250
ZXh0LCBKU0M6OlNsb3RWaXNpdG9yJik7Ci0gICAgdmlydHVhbCB2b2lkIGZpbmFsaXplKEpTQzo6
SGFuZGxlPEpTQzo6VW5rbm93bj4sIHZvaWQqIGNvbnRleHQpOwotfTsKLQotaW5saW5lIEpTQzo6
V2Vha0hhbmRsZU93bmVyKiB3cmFwcGVyT3duZXIoRE9NV3JhcHBlcldvcmxkJiwgVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyKikKLXsKLSAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8SlNUZXN0Q3VzdG9t
TmFtZWRHZXR0ZXJPd25lcj4gb3duZXI7Ci0gICAgcmV0dXJuICZvd25lci5nZXQoKTsKLX0KLQot
aW5saW5lIHZvaWQqIHdyYXBwZXJLZXkoVGVzdEN1c3RvbU5hbWVkR2V0dGVyKiB3cmFwcGFibGVP
YmplY3QpCi17Ci0gICAgcmV0dXJuIHdyYXBwYWJsZU9iamVjdDsKLX0KLQotSlNDOjpKU1ZhbHVl
IHRvSlMoSlNDOjpFeGVjU3RhdGUqLCBKU0RPTUdsb2JhbE9iamVjdCosIFRlc3RDdXN0b21OYW1l
ZEdldHRlciYpOwotaW5saW5lIEpTQzo6SlNWYWx1ZSB0b0pTKEpTQzo6RXhlY1N0YXRlKiBzdGF0
ZSwgSlNET01HbG9iYWxPYmplY3QqIGdsb2JhbE9iamVjdCwgVGVzdEN1c3RvbU5hbWVkR2V0dGVy
KiBpbXBsKSB7IHJldHVybiBpbXBsID8gdG9KUyhzdGF0ZSwgZ2xvYmFsT2JqZWN0LCAqaW1wbCkg
OiBKU0M6OmpzTnVsbCgpOyB9Ci1KU0M6OkpTVmFsdWUgdG9KU05ld2x5Q3JlYXRlZChKU0M6OkV4
ZWNTdGF0ZSosIEpTRE9NR2xvYmFsT2JqZWN0KiwgUmVmPFRlc3RDdXN0b21OYW1lZEdldHRlcj4m
Jik7Ci1pbmxpbmUgSlNDOjpKU1ZhbHVlIHRvSlNOZXdseUNyZWF0ZWQoSlNDOjpFeGVjU3RhdGUq
IHN0YXRlLCBKU0RPTUdsb2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBSZWZQdHI8VGVzdEN1c3Rv
bU5hbWVkR2V0dGVyPiYmIGltcGwpIHsgcmV0dXJuIGltcGwgPyB0b0pTTmV3bHlDcmVhdGVkKHN0
YXRlLCBnbG9iYWxPYmplY3QsIGltcGwucmVsZWFzZU5vbk51bGwoKSkgOiBKU0M6OmpzTnVsbCgp
OyB9Ci0KLXRlbXBsYXRlPD4gc3RydWN0IEpTRE9NV3JhcHBlckNvbnZlcnRlclRyYWl0czxUZXN0
Q3VzdG9tTmFtZWRHZXR0ZXI+IHsKLSAgICB1c2luZyBXcmFwcGVyQ2xhc3MgPSBKU1Rlc3RDdXN0
b21OYW1lZEdldHRlcjsKLSAgICB1c2luZyBUb1dyYXBwZWRSZXR1cm5UeXBlID0gVGVzdEN1c3Rv
bU5hbWVkR2V0dGVyKjsKLX07Ci0KLX0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKClByb3BlcnR5IGNo
YW5nZXMgb246IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RD
dXN0b21OYW1lZEdldHRlci5oCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAt
MSArMCwwICMjCi1MRgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0RXZlbnRUYXJnZXQuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RFdmVudFRhcmdldC5jcHAJKHJldmlzaW9uIDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RFdmVudFRhcmdldC5jcHAJKHdvcmtpbmcg
Y29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJK
U1Rlc3RFdmVudFRhcmdldC5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMu
aCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9y
Tm90Q29uc3RydWN0YWJsZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTM0LDQ4
ICsxMzUsNjYgQEAgYm9vbCBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0T3duUHJvcGVydHlTbAogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihvYmplY3Qp
OwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAg
ICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYg
KG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3Jh
cHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZh
bHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8
SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwg
dGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVl
OwotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1Zh
bHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHBy
b3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShz
dGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKCFv
cHRpb25hbEluZGV4ICYmIHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJv
cGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+
d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5h
bWUpKTsKLSAgICAgICAgaWYgKCFJRExJbnRlcmZhY2U8Tm9kZT46OmlzTnVsbFZhbHVlKGl0ZW0p
KSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pT
PElETEludGVyZmFjZTxOb2RlPj4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCks
IGl0ZW0pKTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkg
eworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5n
dGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+
Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxPYmplY3QoKSwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLml0ZW0oaW5kZXgudmFsdWUoKSkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlz
T2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAg
ICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOwor
ICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExJbnRlcmZhY2U8Tm9kZT47CisgICAgYXV0byBn
ZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAt
PiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYg
KCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJu
IHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5
cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNz
VmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1
ZSA9IHRvSlM8SURMSW50ZXJmYWNlPE5vZGU+Pigqc3RhdGUsICp0aGlzT2JqZWN0LT5nbG9iYWxP
YmplY3QoKSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5z
ZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1
ZTsKKyAgICB9CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RFdmVudFRhcmdl
dDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0RXZlbnRUYXJnZXQqPihvYmplY3QpOwogICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElL
RUxZKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0b0pTPElETEludGVyZmFjZTxOb2Rl
Pj4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5pdGVtKGluZGV4KSkpOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lO
REVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETEludGVyZmFjZTxOb2RlPj4o
KnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJl
YWRPbmx5LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAgICAgfQorICAg
ICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURM
SW50ZXJmYWNlPE5vZGU+OworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlz
T2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0
ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0
aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmco
cHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUo
cmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBs
ZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUo
cmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYg
KGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRl
QnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1
bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETEludGVyZmFjZTxOb2RlPj4o
KnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUobmFtZWRQcm9wZXJ0
eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7
CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwg
c3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RFdmVudFRhcmdldDo6Z2V0T3du
UHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0
eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAg
YXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RFdmVudFRhcmdldCo+KG9iamVjdCk7Ci0g
ICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFT
U0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWdu
ZWQgaSA9IDAsIGNvdW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291
bnQ7ICsraSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0
ZSwgaSkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBl
ZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQo
SWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6
Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9k
ZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIHRlbXBsYXRlPD4gaW5saW5lIEpTVGVzdEV2ZW50VGFy
Z2V0KiBJRExPcGVyYXRpb248SlNUZXN0RXZlbnRUYXJnZXQ+OjpjYXN0KEV4ZWNTdGF0ZSYgc3Rh
dGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0
R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmlu
ZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEdlbmVyYXRlSXNSZWFjaGFibGUuY3BwCShyZXZp
c2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMv
SlNUZXN0R2VuZXJhdGVJc1JlYWNoYWJsZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTk5LDcgKzk5
LDcgQEAgdm9pZCBKU1Rlc3RHZW5lcmF0ZUlzUmVhY2hhYmxlUHJvdG90eXBlOgogICAgIEJhc2U6
OmZpbmlzaENyZWF0aW9uKHZtKTsKICAgICByZWlmeVN0YXRpY1Byb3BlcnRpZXModm0sIEpTVGVz
dEdlbmVyYXRlSXNSZWFjaGFibGVQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogICAgIGlm
ICghanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVj
dXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIg
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nh
c3Q8Y29uc3QgTENoYXIqPigiYVNlY3JldEF0dHJpYnV0ZSIpLCBzdHJsZW4oImFTZWNyZXRBdHRy
aWJ1dGUiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0
cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiYVNlY3JldEF0dHJpYnV0
ZSIpLCBzdHJsZW4oImFTZWNyZXRBdHRyaWJ1dGUiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9w
ZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29u
ZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2Jh
bE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQpJbmRleDogU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2aXNp
b24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pT
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMzYs
MzUgKzEzNiwzNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmdlCiB7
CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmpl
Y3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0
eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRvIGluZGV4ID0g
b3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3Qs
IDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVt
KGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBh
cnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRo
aXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9
IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGlu
ZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwg
dmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9Ci0gICAg
aWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0dXJuIGZhbHNlOworICAg
IHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmll
cjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcio+KG9i
amVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OwotICAgIGlmIChMSUtFTFkoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkp
KSB7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKSk7Ci0gICAgICAg
IHJldHVybiB0cnVlOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0gTUFYX0FSUkFZX0lOREVYKSkg
eworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsK
KyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlz
T2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICAg
ICAgfQogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0
aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAK
IHZvaWQgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1l
cyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYg
cHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyKj4ob2JqZWN0KTsK
LSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yICh1bnNp
Z25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCk7IGkgPCBj
b3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tKHN0
YXRlLCBpKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFt
ZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0
SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBz
dGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0xODAsNyArMTgyLDcgQEAgYm9vbCBKU1Rlc3RJ
bmRleGVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdQogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQog
CiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxs
KiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwg
Ym9vbCBzaG91bGRUaHJvdykKQEAgLTE5Niw3ICsxOTgsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRT
ZXR0ZXJOb0lkZW50aWZpZXI6OnB1CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAg
IHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3Vs
ZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGlu
ZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJO
b0lkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0
ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3Jp
cHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjE2LDcgKzIx
OCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6ZGUKIAogICAgIFBy
b3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0
b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAg
ICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3
UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24uY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Nj
cmlwdHMvdGVzdC9KUy9KU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCShy
ZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0SW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5
KQpAQCAtMTM2LDM1ICsxMzYsMzcgQEAgYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpbwogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFy
c2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFs
SW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAg
ICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZh
bHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAo
YXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkgeworICAgICAgICBpZiAoaW5k
ZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAgICAgICAg
ICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndy
YXBwZWQoKS5pdGVtKGluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAg
IH0KICAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgcmV0
dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoTElLRUxZKGluZGV4IDwgdGhpc09i
amVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSkgewotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNP
YmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQo
KS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKKyAgICBpZiAoTElLRUxZKGlu
ZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVj
dC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJ
RExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKTsK
KyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6Omdl
dE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBz
dGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVyYXRpb25N
b2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RJbmRleGVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1Rf
SU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IHRo
aXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIHBy
b3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTsKLSAgICBCYXNlOjpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2Rl
KTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdF
eGNlcHRpb246OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVy
dHlTbG90KQpAQCAtMTgwLDcgKzE4Miw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlclRocm93
aW5nRXhjZXB0aW8KICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJh
c2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVy
dHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RJbmRl
eGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVj
U3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRU
aHJvdykKQEAgLTE5Niw3ICsxOTgsNyBAQCBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2lu
Z0V4Y2VwdGlvCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNl
OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAg
ICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwg
c2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbjo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0
ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBw
cm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMTYsNyArMjE4LDcgQEAg
Ym9vbCBKU1Rlc3RJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpbwogCiAgICAgUHJvcGVydHlE
ZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAg
ICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVy
biBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5l
d1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6
ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0
eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAogRW5jb2RlZEpTVmFsdWUganNUZXN0SW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBzdGF0ZSwg
RW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3VyY2UvV2Vi
Q29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkocmV2aXNpb24g
MjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVz
dEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0Miwz
NSArMTQyLDM3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjoKIHsK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRl
bnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJbmRleCA9IHBhcnNlSW5kZXgocHJvcGVy
dHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAmJiBvcHRpb25hbEluZGV4LnZhbHVlKCkg
PCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKLSAgICAgICAgYXV0byBpbmRleCA9
IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRl
bShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKGF1dG8gaW5kZXggPSBw
YXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUg
PSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShp
bmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAs
IHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAgICAgICB9CiAgICAgfQotICAg
IGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRp
Zmllcjo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3Rh
dGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
Kj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGlu
Zm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5n
dGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAg
ICAgICAgcmV0dXJuIHRydWU7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5E
RVgpKSB7CisgICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUs
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOwor
ICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsK
IH0KIAogdm9pZCBKU1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldE93blByb3Bl
cnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1l
QXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8q
IHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4o
b2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8o
KSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMCwgY291bnQgPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3Ro
KCk7IGkgPCBjb3VudDsgKytpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVy
Ojpmcm9tKHN0YXRlLCBpKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJv
b2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpwdXQoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVl
LCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTE4Niw3ICsxODgsNyBAQCBi
b29sIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6CiAgICAgICAgIHJldHVybiB0
cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0
OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5
U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpwdXRC
eUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpT
VmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMDIsNyArMjA0LDcgQEAgYm9vbCBK
U1Rlc3RJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OgogICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgs
IHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNl
bGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3RJ
bmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBv
YmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0
IFByb3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93
KQpAQCAtMjIyLDcgKzIyNCw3IEBAIGJvb2wgSlNUZXN0SW5kZXhlZFNldHRlcldpdGhJZGVudGlm
aWVyOjoKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBw
cm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3Vy
YWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIHRl
bXBsYXRlPD4gaW5saW5lIEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3Bl
cmF0aW9uPEpTVGVzdEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhlY1N0YXRl
JiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9K
U1Rlc3RJbnRlcmZhY2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdz
L3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RJbnRlcmZhY2UuY3BwCShyZXZpc2lvbiAyMTgwNzApCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0SW50ZXJmYWNl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDE2LDcgKzQxNiw3IEBAIGJvb2wgSlNUZXN0SW50ZXJm
YWNlOjpwdXQoSlNDZWxsKiBjZWxsLCAKICAgICBpZiAodGhpc09iamVjdC0+cHV0RGVsZWdhdGUo
c3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCwgcHV0UmVzdWx0KSkK
ICAgICAgICAgcmV0dXJuIHB1dFJlc3VsdDsKIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAg
cmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFs
dWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0SW50ZXJmYWNlOjpwdXRCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFs
dWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC00MjQsMTMgKzQyNCwxMyBAQCBib29sIEpT
VGVzdEludGVyZmFjZTo6cHV0QnlJbmRleChKU0NlbGwqCiAgICAgYXV0byogdGhpc09iamVjdCA9
IGpzQ2FzdDxKU1Rlc3RJbnRlcmZhY2UqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQdXRQcm9wZXJ0eVNsb3Qg
c2xvdCh0aGlzT2JqZWN0LCBzaG91bGRUaHJvdyk7CiAgICAgYm9vbCBwdXRSZXN1bHQgPSBmYWxz
ZTsKICAgICBpZiAodGhpc09iamVjdC0+cHV0RGVsZWdhdGUoc3RhdGUsIHByb3BlcnR5TmFtZSwg
dmFsdWUsIHNsb3QsIHB1dFJlc3VsdCkpCiAgICAgICAgIHJldHVybiBwdXRSZXN1bHQ7CiAKLSAg
ICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91
bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBp
bmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0
SW50ZXJmYWNlKiBJRExBdHRyaWJ1dGU8SlNUZXN0SW50ZXJmYWNlPjo6Y2FzdChFeGVjU3RhdGUm
IHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVu
dGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkocmV2
aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllci5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rl
c3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXIuaCIKIAorI2luY2x1ZGUgIkpTRE9N
QWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnZlcnQuaCIKQEAgLTEzNiw0OCArMTM3LDY2IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyTm9JZGVudGkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGF1dG8gb3B0aW9uYWxJ
bmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKTsKLSAgICBpZiAob3B0aW9uYWxJbmRleCAm
JiBvcHRpb25hbEluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkp
IHsKLSAgICAgICAgYXV0byBpbmRleCA9IG9wdGlvbmFsSW5kZXgudmFsdWUoKTsKLSAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFs
dWUgcHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJv
dG8uaXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0
YXRlLCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAoIW9w
dGlvbmFsSW5kZXggJiYgdGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9w
ZXJ0eU5hbWUuaXNTeW1ib2woKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAg
ICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgaXRlbSkpOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0
eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgudmFsdWUoKSkpOwor
ICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICAgICAgfQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6Omdl
dE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogICAg
IH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0
cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0
byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6
SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53
cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFt
ZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisg
ICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25U
eXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsK
KyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVk
UHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpO
bz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgewor
ICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShu
YW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0
LCAwLCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOworICAgIH0KKyAgICByZXR1cm4gSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNs
b3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcjo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
Kj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGlu
Zm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5n
dGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKKyAg
ICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsKKyAgICAgICAgaWYgKGlu
ZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRv
IHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgp
Lml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwg
dmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0
dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGlu
ZGV4LCBzbG90KTsKKyAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmlu
ZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBw
cm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1w
bGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFw
cGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
OworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAg
ICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBl
IHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAg
ICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJv
cGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4o
KnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAg
ICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1l
ZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAw
LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3Qp
OworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3Qs
IHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlck5vSWRlbnRpZmllcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpF
Q1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAodW5zaWduZWQgaSA9IDAsIGNv
dW50ID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpOyBpIDwgY291bnQ7ICsraSkKICAg
ICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaSkpOwogICAg
IGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRl
ZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6
ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVy
dHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNP
YmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywg
bW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGlmaWVy
OjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVy
dHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkK
QEAgLTIwNSw3ICsyMjQsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5vSWRl
bnRpCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVy
biBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBw
dXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlck5v
SWRlbnRpZmllcjo6cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVu
c2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMjIxLDcg
KzI0MCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGkKICAgICAg
ICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0
aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07
CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3Qo
KTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBhc09iamVjdChwcm90b3R5cGUp
LT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpKSB7CkBAIC0yMzIs
NyArMjUxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aQogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0QnlJbmRleChj
ZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsK
IH0KIAogYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlZmlu
ZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNj
cmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjUyLDcgKzI3MSw3IEBAIGJvb2wgSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyTm9JZGVudGkKIAogICAgIGlmICghcHJvcGVydHlOYW1lLmlz
U3ltYm9sKCkpIHsKICAgICAgICAgUHJvcGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9w
ZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgIGlmICgh
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUs
IHNsb3QpKSB7CisgICAgICAgIGlmICghSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlz
T2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgewogICAgICAgICAgICAgaWYgKCFw
cm9wZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRvcigpKQogICAgICAgICAgICAgICAgIHJl
dHVybiBmYWxzZTsKICAgICAgICAgICAgIGF1dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1df
U0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjY1LDcgKzI4NCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRB
bmRJbmRleGVkU2V0dGVyTm9JZGVudGkKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9w
ZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNj
cmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3du
UHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0
b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91
bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
ck5vSWRlbnRpZmllckNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0
aW9uLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rl
c3QvSlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCShy
ZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVk
ZSAiSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uaCIKIAorI2lu
Y2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5n
LmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNs
dWRlICJKU0RPTUNvbnZlcnQuaCIKQEAgLTEzNiw0OCArMTM3LDY2IEBAIGJvb2wgSlNUZXN0TmFt
ZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmcKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganND
YXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0
KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0g
ICAgYXV0byBvcHRpb25hbEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlm
IChvcHRpb25hbEluZGV4ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5sZW5ndGgoKSkgewotICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52
YWx1ZSgpOwotICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9N
U3RyaW5nPigqc3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xv
dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJu
IHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVj
dCgpOwotICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3Rv
KS0+aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxz
ZTsKLQotICAgIGlmICghb3B0aW9uYWxJbmRleCAmJiB0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9
PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRl
bSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxW
YWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0
b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7CisgICAgaWYgKGF1dG8gaW5kZXggPSBw
YXJzZUluZGV4KHByb3BlcnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUg
PSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShp
bmRleC52YWx1ZSgpKSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAs
IHZhbHVlKTsKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgc2xvdCk7CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICB1c2luZyBHZXR0ZXJJ
RExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRv
JiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxs
VmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVs
bGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07Cisg
ICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92
ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdl
dHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAg
fQorICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0
dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53
cmFwcGVkKCkuaXRlbShpbmRleCkpKTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJB
WV9JTkRFWCkpIHsKKyAgICAgICAgaWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxl
bmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRy
dWU7CisgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNs
b3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICB9CisgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcg
R2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBb
XSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8
dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1
dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRv
QXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6
OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVl
RnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAg
ICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlz
T2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZv
aWQgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93blBy
b3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlO
YW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1
dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyVGhyb3dp
bmdFeGNlcHRpb24qPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhp
c09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwg
aW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMu
YWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5
TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAg
ICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHBy
b3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwg
c3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpT
VGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpwdXQoSlNDZWxsKiBj
ZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVl
IHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFByb3BlcnR5U2xvdCkKQEAgLTIwNSw3ICsyMjQs
NyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nCiAgICAgICAgIH0K
ICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3Qp
OwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9u
OjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5k
ZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yMjEsNyArMjQwLDcgQEAg
Ym9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJvd2luZwogICAgICAgICByZXR1cm4g
dHJ1ZTsKICAgICB9CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6
OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3Qs
IFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBKU1Zh
bHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlm
ICghKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3Bl
cnR5U2xvdChzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIzMiw3ICsyNTEsNyBA
QCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nCiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRl
LCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29s
IEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpkZWZpbmVPd25Q
cm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUg
cHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0b3ImIHByb3BlcnR5RGVzY3JpcHRv
ciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTI1Miw3ICsyNzEsNyBAQCBib29sIEpTVGVzdE5hbWVk
QW5kSW5kZXhlZFNldHRlclRocm93aW5nCiAKICAgICBpZiAoIXByb3BlcnR5TmFtZS5pc1N5bWJv
bCgpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVydHlT
bG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwotICAgICAgICBpZiAoIUJhc2U6
OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KSkgeworICAgICAgICBpZiAoIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgIGlmICghcHJvcGVy
dHlEZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkKICAgICAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHN0YXRlLT52bSgpKTsKQEAgLTI2NSw3ICsyODQsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlclRocm93aW5nCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3IgbmV3UHJvcGVydHlE
ZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3BlcnR5RGVzY3JpcHRv
ci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRlZmluZU93blByb3Bl
cnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBz
aG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Qcm9wZXJ0eShvYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhy
b3cpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbkNvbnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVl
IHRoaXNWYWx1ZSwgUHJvcGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVy
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCShyZXZpc2lv
biAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0
TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIuaCIKIAorI2luY2x1ZGUgIkpTRE9N
QWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVk
ZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNv
bnZlcnQuaCIKQEAgLTE0NCw0OCArMTQ1LDY2IEBAIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVk
U2V0dGVyV2l0aElkZW4KIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgYXV0byBvcHRpb25h
bEluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0eU5hbWUpOwotICAgIGlmIChvcHRpb25hbEluZGV4
ICYmIG9wdGlvbmFsSW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgo
KSkgewotICAgICAgICBhdXRvIGluZGV4ID0gb3B0aW9uYWxJbmRleC52YWx1ZSgpOwotICAgICAg
ICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUs
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICB9Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNW
YWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChw
cm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHko
c3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICgh
b3B0aW9uYWxJbmRleCAmJiB0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXBy
b3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewot
ICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmlu
Zz4oKnN0YXRlLCBpdGVtKSk7CisgICAgaWYgKGF1dG8gaW5kZXggPSBwYXJzZUluZGV4KHByb3Bl
cnR5TmFtZSkpIHsKKyAgICAgICAgaWYgKGluZGV4LnZhbHVlKCkgPCB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0
cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleC52YWx1ZSgpKSk7
CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgICAgICB9CisgICAgICAgIHJldHVybiBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiAg
ICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9N
U3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBh
dXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0
LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkK
KyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlv
blR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9
OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFt
ZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6
Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7
CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3Zl
KG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQorICAgIHJldHVybiBK
U09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwg
c2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVu
dGlmaWVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmpl
Y3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pT
PElETERPTVN0cmluZz4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkuaXRlbShpbmRleCkp
KTsKKyAgICBpZiAoTElLRUxZKGluZGV4IDw9IE1BWF9BUlJBWV9JTkRFWCkpIHsKKyAgICAgICAg
aWYgKGluZGV4IDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAg
ICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3Jh
cHBlZCgpLml0ZW0oaW5kZXgpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVj
dCwgMCwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7CisgICAgICAgIH0KKyAgICAg
ICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3Rh
dGUsIGluZGV4LCBzbG90KTsKKyAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlm
aWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERP
TVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwg
YXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlw
ZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVj
dC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5
TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkp
CisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRp
b25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkg
fTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5h
bWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5z
OjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkg
eworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92
ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2Jq
ZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4g
QmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgs
IHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChv
YmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRBbmRJbmRl
eGVkU2V0dGVyV2l0aElkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9i
amVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMs
IEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8
SlNUZXN0TmFtZWRBbmRJbmRleGVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwotICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NF
UlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKHVuc2lnbmVk
IGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsgaSA8IGNvdW50
OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb20oc3RhdGUs
IGkpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElk
ZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6Omdl
dE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUp
OworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldp
dGhJZGVudGlmaWVyOjpwdXQoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0
eU5hbWUgcHJvcGVydHlOYW1lLCBKU1ZhbHVlIHZhbHVlLCBQdXRQcm9wZXJ0eVNsb3QmIHB1dFBy
b3BlcnR5U2xvdCkKQEAgLTIxMyw3ICsyMzIsNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhl
ZFNldHRlcldpdGhJZGVuCiAgICAgICAgIH0KICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3Qp
OworICAgIHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5h
bWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5k
ZXhlZFNldHRlcldpdGhJZGVudGlmaWVyOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0
YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhy
b3cpCkBAIC0yMjksNyArMjQ4LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZEFuZEluZGV4ZWRTZXR0ZXJX
aXRoSWRlbgogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICBJZGVudGlmaWVyIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKICAgICBQcm9wZXJ0
eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJuYWxNZXRob2RUeXBl
OjpWTUlucXVpcnkgfTsKICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHRoaXNPYmplY3QtPmdldFBy
b3RvdHlwZURpcmVjdCgpOwogICAgIGlmICghKHByb3RvdHlwZS5pc09iamVjdCgpICYmIGFzT2Jq
ZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdChzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KSkpIHsKQEAgLTI0MCw3ICsyNTksNyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRl
cldpdGhJZGVuCiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAotICAgIHJldHVybiBCYXNl
OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNob3VsZFRocm93KTsKKyAg
ICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4LCB2YWx1ZSwg
c2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJ
ZGVudGlmaWVyOjpkZWZpbmVPd25Qcm9wZXJ0eShKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUq
IHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lLCBjb25zdCBQcm9wZXJ0eURlc2NyaXB0
b3ImIHByb3BlcnR5RGVzY3JpcHRvciwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTI2MCw3ICsyNzks
NyBAQCBib29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVuCiAKICAgICBpZiAo
IXByb3BlcnR5TmFtZS5pc1N5bWJvbCgpKSB7CiAgICAgICAgIFByb3BlcnR5U2xvdCBzbG90IHsg
dGhpc09iamVjdCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9
OwotICAgICAgICBpZiAoIUJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkgeworICAgICAgICBpZiAoIUpTT2JqZWN0OjpnZXRPd25Q
cm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAg
ICAgICAgICAgIGlmICghcHJvcGVydHlEZXNjcmlwdG9yLmlzRGF0YURlc2NyaXB0b3IoKSkKICAg
ICAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUg
PSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTI3Myw3ICsyOTIsNyBAQCBi
b29sIEpTVGVzdE5hbWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVuCiAKICAgICBQcm9wZXJ0eURl
c2NyaXB0b3IgbmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAg
IG5ld1Byb3BlcnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJu
IEJhc2U6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3
UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpk
ZWZpbmVPd25Qcm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5
RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RO
YW1lZEFuZEluZGV4ZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3BlcmF0aW9uPEpTVGVzdE5h
bWVkQW5kSW5kZXhlZFNldHRlcldpdGhJZGVudGlmaWVyPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRl
KQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5h
bWVkRGVsZXRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllci5j
cHAJKHJldmlzaW9uIDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMv
dGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXIuY3BwCSh3b3JraW5nIGNvcHkp
CkBAIC0xMzUsNTQgKzEzNSw1OCBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmll
cjo6Z2V0CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZERlbGV0
ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklE
TFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8m
IHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1l
IEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3Vs
dCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0
cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxW
YWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6
OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxs
YWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAg
ICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3Zl
cnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0
dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigq
c3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0
VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7
Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwot
ICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFz
UHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQot
ICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFt
ZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0g
ICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAg
ICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVy
dHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNU
ZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpT
T2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0
eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1l
ZERlbGV0ZXJOb0lkZW50aWZpZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xh
c3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndy
YXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1l
KSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAg
ICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExET01T
dHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAg
IH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4
KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0
dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4g
c3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+
IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0o
cHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICgh
R2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0
eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBl
OjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3Rk
OjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zp
c2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2Jq
ZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUg
PSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUo
KSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7
CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJl
dHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpn
ZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFBy
b3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRp
Zmllcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0
LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkp
OwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1
cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3du
UHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7Cisg
ICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyTm9JZGVudGlmaWVyOjpk
ZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFt
ZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgYXV0byYgdGhpc09iamVjdCA9ICpqc0Nhc3Q8SlNUZXN0
TmFtZWREZWxldGVyTm9JZGVudGlmaWVyKj4oY2VsbCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNP
YmplY3Qud3JhcHBlZCgpOwotICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PGZhbHNlPigq
c3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxlTmFt
ZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUpKSB7CiAgICAgICAgIHJldHVybiBpbXBsLmRlbGV0ZU5hbWVkUHJvcGVydHkocHJv
cGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgfQotICAgIHJldHVybiBCYXNl
OjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1cm4g
SlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOwogfQog
CiBib29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6ZGVsZXRlUHJvcGVydHlCeUlu
ZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgpCkBAIC0x
OTAsMTAgKzE5NCwxMCBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlck5vSWRlbnRpZmllcjo6ZGVs
CiAgICAgYXV0byYgdGhpc09iamVjdCA9ICpqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyTm9JZGVu
dGlmaWVyKj4oY2VsbCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwog
ICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwot
ICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUsIHRoaXNPYmplY3Qs
IHByb3BlcnR5TmFtZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlk
ZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAg
ICAgIHJldHVybiBpbXBsLmRlbGV0ZU5hbWVkUHJvcGVydHkocHJvcGVydHlOYW1lVG9TdHJpbmco
cHJvcGVydHlOYW1lKSk7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpkZWxldGVQcm9wZXJ0eUJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmRlbGV0ZVBy
b3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBq
c1Rlc3ROYW1lZERlbGV0ZXJOb0lkZW50aWZpZXJDb25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0YXRl
LCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2lu
Z0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkocmV2
aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM1LDUxICsxMzUsNTUgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2Vw
dGlvbgogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVy
VGhyb3dpbmdFeGNlcHRpb24qPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRl
cklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1
dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVu
YW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJl
c3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21p
Y1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051
bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5
cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21O
dWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsK
KyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8
T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwg
Z2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5n
Pigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Qu
c2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRy
dWU7Ci0gICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgp
OwotICAgIGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+
aGFzUHJvcGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsK
LQotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5
TmFtZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBw
ZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7
Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAg
ICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0K
ICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJv
cGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wg
SlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb246OmdldE93blByb3BlcnR5U2xvdEJ5
SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgs
IFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpT
VGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRf
R0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRo
aXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0
aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5n
KHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUo
aXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0
cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
KHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsK
KyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9w
ZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVk
KCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwor
ICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAg
ICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsg
R2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVy
dHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0
YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAg
ICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFBy
b3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFk
T25seSwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJh
c2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBz
bG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2Jq
ZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkRGVsZXRlclRo
cm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJh
dGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5h
bWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0
aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBw
cm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5h
bWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1l
ZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6ZGVsZXRlUHJvcGVydHkoSlNDZWxsKiBjZWxsLCBF
eGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWUgcHJvcGVydHlOYW1lKQogewogICAgIGF1dG8m
IHRoaXNPYmplY3QgPSAqanNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5nRXhjZXB0aW9u
Kj4oY2VsbCk7CiAgICAgYXV0byYgaW1wbCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpOwotICAgIGlm
IChpc1Zpc2libGVOYW1lZFByb3BlcnR5PGZhbHNlPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3Bl
cnR5TmFtZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0
aW5zOjpObz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgIGF1
dG8gcmVzdWx0ID0gaW1wbC5kZWxldGVOYW1lZFByb3BlcnR5KHByb3BlcnR5TmFtZVRvU3RyaW5n
KHByb3BlcnR5TmFtZSkpOwogICAgICAgICBpZiAocmVzdWx0Lmhhc0V4Y2VwdGlvbigpKSB7CiAg
ICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BFKHN0YXRlLT52
bSgpKTsKQEAgLTE4OSw3ICsxOTMsNyBAQCBib29sIEpTVGVzdE5hbWVkRGVsZXRlclRocm93aW5n
RXhjZXB0aW9uCiAKICAgICAgICAgcmV0dXJuIHJlc3VsdC5yZWxlYXNlUmV0dXJuVmFsdWUoKTsK
ICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkoY2VsbCwgc3Rh
dGUsIHByb3BlcnR5TmFtZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyVGhyb3dpbmdF
eGNlcHRpb246OmRlbGV0ZVByb3BlcnR5QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
c3RhdGUsIHVuc2lnbmVkIGluZGV4KQpAQCAtMTk3LDcgKzIwMSw3IEBAIGJvb2wgSlNUZXN0TmFt
ZWREZWxldGVyVGhyb3dpbmdFeGNlcHRpb24KICAgICBhdXRvJiB0aGlzT2JqZWN0ID0gKmpzQ2Fz
dDxKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbio+KGNlbGwpOwogICAgIGF1dG8m
IGltcGwgPSB0aGlzT2JqZWN0LndyYXBwZWQoKTsKICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAoaXNWaXNpYmxlTmFtZWRQcm9w
ZXJ0eTxmYWxzZT4oKnN0YXRlLCB0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUpKSB7CisgICAgaWYg
KGlzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgdGhp
c09iamVjdCwgcHJvcGVydHlOYW1lKSkgewogICAgICAgICBhdXRvIHJlc3VsdCA9IGltcGwuZGVs
ZXRlTmFtZWRQcm9wZXJ0eShwcm9wZXJ0eU5hbWVUb1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKICAg
ICAgICAgaWYgKHJlc3VsdC5oYXNFeGNlcHRpb24oKSkgewogICAgICAgICAgICAgYXV0byB0aHJv
d1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0oKSk7CkBAIC0yMDcsNyArMjEx
LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbgogCiAgICAgICAg
IHJldHVybiByZXN1bHQucmVsZWFzZVJldHVyblZhbHVlKCk7CiAgICAgfQotICAgIHJldHVybiBC
YXNlOjpkZWxldGVQcm9wZXJ0eUJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgpOwog
fQogCiBFbmNvZGVkSlNWYWx1ZSBqc1Rlc3ROYW1lZERlbGV0ZXJUaHJvd2luZ0V4Y2VwdGlvbkNv
bnN0cnVjdG9yKEV4ZWNTdGF0ZSogc3RhdGUsIEVuY29kZWRKU1ZhbHVlIHRoaXNWYWx1ZSwgUHJv
cGVydHlOYW1lKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0
aElkZW50aWZpZXIuY3BwCShyZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5k
aW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC0xNDEsNTUgKzE0MSw1OSBAQCBib29sIEpTVGVzdE5hbWVkRGVs
ZXRlcldpdGhJZGVudGlmaWVyOjpnCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dD
X09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRP
d25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisg
ICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1
bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6
b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7Cisg
ICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRl
cklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5h
bWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0
cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVs
bG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxl
TmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwg
cHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5jdG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9K
UzxJRExET01TdHJpbmc+KCpzdGF0ZSwgV1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsK
KyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3RvID0gdGhpc09iamVjdC0+Z2V0UHJv
dG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2JqZWN0KCkgJiYganNDYXN0PEpTT2Jq
ZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJvcGVydHlOYW1lKSkKLSAgICAgICAg
cmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8o
KSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhp
c09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0
ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB0
b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSWRlbnRpZmllcjo6Z2V0T3duUHJv
cGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNp
Z25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3Qg
PSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwogICAg
IEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVu
dGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAg
ICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8g
aXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9t
aWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051
bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBS
ZWFkT25seSwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAg
cmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9N
U3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBh
dXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0
LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlO
YW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkK
KyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlv
blR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9
OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1dG8gbmFt
ZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6
Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7
CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3Zl
KG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmpl
Y3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICBy
ZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlzT2JqZWN0LCBzdGF0ZSwg
aW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90QnlJ
bmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZvaWQgSlNUZXN0TmFtZWRE
ZWxldGVyV2l0aElkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVj
dCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVu
dW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNU
ZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNU
X0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAg
IHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5
TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5h
bWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4
ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCiB7CiAgICAgYXV0byYg
dGhpc09iamVjdCA9ICpqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihj
ZWxsKTsKICAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7Ci0gICAgaWYgKGlz
VmlzaWJsZU5hbWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlO
YW1lKSkgeworICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6
Ok5vPigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgaW1wbC5u
YW1lZERlbGV0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgICAg
IHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHkoY2Vs
bCwgc3RhdGUsIHByb3BlcnR5TmFtZSk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9w
ZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZERl
bGV0ZXJXaXRoSWRlbnRpZmllcjo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KEpTQ2VsbCogY2VsbCwg
RXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgpCkBAIC0xOTcsMTEgKzIwMSwxMSBAQCBi
b29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJZGVudGlmaWVyOjpkCiAgICAgYXV0byYgdGhpc09i
amVjdCA9ICpqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqPihjZWxsKTsK
ICAgICBhdXRvJiBpbXBsID0gdGhpc09iamVjdC53cmFwcGVkKCk7CiAgICAgYXV0byBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKGlzVmlzaWJs
ZU5hbWVkUHJvcGVydHk8ZmFsc2U+KCpzdGF0ZSwgdGhpc09iamVjdCwgcHJvcGVydHlOYW1lKSkg
eworICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigq
c3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKICAgICAgICAgaW1wbC5uYW1lZERl
bGV0ZXIocHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgICAgIHJldHVy
biB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6ZGVsZXRlUHJvcGVydHlCeUluZGV4KGNl
bGwsIHN0YXRlLCBpbmRleCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eUJ5
SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4KTsKIH0KIAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0
TmFtZWREZWxldGVyV2l0aElkZW50aWZpZXIqIElETE9wZXJhdGlvbjxKU1Rlc3ROYW1lZERlbGV0
ZXJXaXRoSWRlbnRpZmllcj46OmNhc3QoRXhlY1N0YXRlJiBzdGF0ZSkKSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5k
ZXhlZEdldHRlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2Ny
aXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAkocmV2
aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTM3LDQ4ICsxMzcsNjYgQEAgYm9vbCBKU1Rlc3ROYW1lZERlbGV0ZXJXaXRoSW5kZXhlZEdl
dHRlcgogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVy
V2l0aEluZGV4ZWRHZXR0ZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUlu
ZGV4KHByb3BlcnR5TmFtZSk7Ci0gICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRl
eC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1
dG8gaW5kZXggPSBvcHRpb25hbEluZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgUmVhZE9ubHksIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSkpOwotICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICB9
Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCBzbG90KSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgSlNWYWx1ZSBwcm90
byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlmIChwcm90by5pc09i
amVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVydHkoc3RhdGUsIHBy
b3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlmICghb3B0aW9uYWxJ
bmRleCAmJiB0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFt
ZS5pc1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0g
ICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExET01TdHJpbmc+
KCpzdGF0ZSwgaXRlbSkpOworICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChwcm9wZXJ0
eU5hbWUpKSB7CisgICAgICAgIGlmIChpbmRleC52YWx1ZSgpIDwgdGhpc09iamVjdC0+d3JhcHBl
ZCgpLmxlbmd0aCgpKSB7CisgICAgICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJp
bmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0oaW5kZXgudmFsdWUoKSkpOwor
ICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOwog
ICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgICAgIH0KKyAgICAgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KTsKICAgICB9Ci0gICAgcmV0dXJuIGZhbHNlOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJ
RExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmpl
Y3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklE
TFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNP
YmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1
bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1
bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0
byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWls
dGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rv
cikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdU
Rk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfQor
ICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4
ZWRHZXR0ZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhl
Y1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVk
R2V0dGVyKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmpl
Y3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25s
eSwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLml0ZW0o
aW5kZXgpKSk7CisgICAgaWYgKExJS0VMWShpbmRleCA8PSBNQVhfQVJSQVlfSU5ERVgpKSB7Cisg
ICAgICAgIGlmIChpbmRleCA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkgeworICAg
ICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIHRoaXNPYmpl
Y3QtPndyYXBwZWQoKS5pdGVtKGluZGV4KSk7CisgICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CisgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgICAgfQorICAgICAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIH0KKyAgICBhdXRvIHByb3BlcnR5
TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJ
RExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRv
JiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxs
VmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVs
bGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07Cisg
ICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92
ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdl
dHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIFJlYWRPbmx5LCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVl
OwogICAgIH0KLSAgICByZXR1cm4gQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleCh0aGlz
T2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3du
UHJvcGVydHlTbG90QnlJbmRleChvYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CiB9CiAKIHZv
aWQgSlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXI6OmdldE93blByb3BlcnR5TmFt
ZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWREZWxldGVyV2l0aEluZGV4ZWRHZXR0ZXIqPihvYmpl
Y3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsK
KyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBmb3Ig
KHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKTsg
aSA8IGNvdW50OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZy
b20oc3RhdGUsIGkpKTsKICAgICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3Qt
PndyYXBwZWQoKS5zdXBwb3J0ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFt
ZXMuYWRkKElkZW50aWZpZXI6OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAg
IEJhc2U6OmdldE93blByb3BlcnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZXMsIG1vZGUpOworICAgIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3Rh
dGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldp
dGhJbmRleGVkR2V0dGVyOjpkZWxldGVQcm9wZXJ0eShKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSog
c3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUpCkBAIC0xODcsMTAgKzIwNSwxMCBAQCBi
b29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyCiAgICAgYXV0byYgaW1wbCA9
IHRoaXNPYmplY3Qud3JhcHBlZCgpOwogICAgIGlmIChhdXRvIGluZGV4ID0gcGFyc2VJbmRleChw
cm9wZXJ0eU5hbWUpKQogICAgICAgICByZXR1cm4gIWltcGwuaXNTdXBwb3J0ZWRQcm9wZXJ0eUlu
ZGV4KGluZGV4LnZhbHVlKCkpOwotICAgIGlmIChpc1Zpc2libGVOYW1lZFByb3BlcnR5PGZhbHNl
Pigqc3RhdGUsIHRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSkpIHsKKyAgICBpZiAoaXNWaXNpYmxl
TmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpObz4oKnN0YXRlLCB0aGlzT2JqZWN0LCBw
cm9wZXJ0eU5hbWUpKSB7CiAgICAgICAgIHJldHVybiBpbXBsLmRlbGV0ZU5hbWVkUHJvcGVydHko
cHJvcGVydHlOYW1lVG9TdHJpbmcocHJvcGVydHlOYW1lKSk7CiAgICAgfQotICAgIHJldHVybiBC
YXNlOjpkZWxldGVQcm9wZXJ0eShjZWxsLCBzdGF0ZSwgcHJvcGVydHlOYW1lKTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KGNlbGwsIHN0YXRlLCBwcm9wZXJ0eU5hbWUpOwog
fQogCiBib29sIEpTVGVzdE5hbWVkRGVsZXRlcldpdGhJbmRleGVkR2V0dGVyOjpkZWxldGVQcm9w
ZXJ0eUJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRl
eCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUv
YmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNw
cAkocmV2aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90
ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5h
bWVkU2V0dGVyTm9JZGVudGlmaWVyLmgiCiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0
aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3Ry
dWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCkBAIC0x
MzQsNDQgKzEzNSw0OCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpnZXRP
CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRl
bnRpZmllcio+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2Jq
ZWN0LCBpbmZvKCkpOwotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9
IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09i
amVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhp
c09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJl
c3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJl
c3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChh
dXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1
aWx0aW5zOjpObz4oKnN0YXRlLCAqdGhpc09iamVjdCwgcHJvcGVydHlOYW1lLCBnZXR0ZXJGdW5j
dG9yKSkgeworICAgICAgICBhdXRvIHZhbHVlID0gdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwg
V1RGTW92ZShuYW1lZFByb3BlcnR5LnZhbHVlKCkpKTsKKyAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCAwLCB2YWx1ZSk7CiAgICAgICAgIHJldHVybiB0cnVlOwotICAgIEpTVmFsdWUg
cHJvdG8gPSB0aGlzT2JqZWN0LT5nZXRQcm90b3R5cGVEaXJlY3QoKTsKLSAgICBpZiAocHJvdG8u
aXNPYmplY3QoKSAmJiBqc0Nhc3Q8SlNPYmplY3QqPihwcm90byktPmhhc1Byb3BlcnR5KHN0YXRl
LCBwcm9wZXJ0eU5hbWUpKQotICAgICAgICByZXR1cm4gZmFsc2U7Ci0KLSAgICBpZiAodGhpc09i
amVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpICYmICFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkg
ewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHBy
b3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlE
TERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFs
dWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAg
ICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIGZhbHNl
OworICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50
aWZpZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBh
dXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyKj4o
b2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8o
KSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSkgewot
ICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFwcGVkKCkubmFtZWRJdGVtKHByb3Bl
cnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwotICAgICAgICBpZiAoIUlETERP
TVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpzdGF0ZSwgaXRlbSkpOwotICAgICAg
ICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1c2luZyBHZXR0ZXJJRExUeXBlID0g
SURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRvJiB0aGlzT2Jq
ZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFtZSBHZXR0ZXJJ
RExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1bHQgPSB0aGlz
T2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJv
cGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxsVmFsdWUocmVz
dWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1l
bnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVsbGFibGUocmVz
dWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07CisgICAgaWYgKGF1
dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92ZXJyaWRlQnVp
bHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0
b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBX
VEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJl
dHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBp
bmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUlu
ZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3ROYW1lZFNl
dHRlck5vSWRlbnRpZmllcjo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51bWVy
YXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RO
YW1lZFNldHRlck5vSWRlbnRpZmllcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9J
TkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJ
VFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09i
amVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVy
dHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7
Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVy
dHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXI6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3Bl
cnR5TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0
UHJvcGVydHlTbG90KQpAQCAtMTkxLDcgKzE5Niw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJO
b0lkZW50aWZpZXI6OnB1dCgKICAgICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpw
dXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xv
dCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5
TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJOb0lkZW50aWZpZXI6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRl
LCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCBzaG91bGRUaHJvdykKQEAgLTE5
OSw3ICsyMDQsNyBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyOjpwdXRCCiAg
ICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlck5vSWRlbnRpZmll
cio+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5m
bygpKTsKIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShz
dGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShz
dGF0ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVjdCwgUHJvcGVy
dHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAgIEpTVmFsdWUgcHJv
dG90eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAgaWYgKCEocHJv
dG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJvcGVydHlTbG90
KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkgewpAQCAtMjEwLDcgKzIxNSw3IEBAIGJvb2wg
SlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OnB1dEIKICAgICAgICAgcmV0dXJuIHRydWU7
CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUsIGluZGV4
LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0QnlJbmRleChj
ZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJvb2wgSlNUZXN0
TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmpl
Y3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFBy
b3BlcnR5RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpA
QCAtMjIwLDcgKzIyNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRl
ZmkKIAogICAgIGlmICghcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKICAgICAgICAgUHJvcGVy
dHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlw
ZTo6Vk1JbnF1aXJ5IH07Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAgIGlmICghSlNP
YmplY3Q6OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1l
LCBzbG90KSkgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVz
Y3JpcHRvcigpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGF1
dG8gdGhyb3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjMz
LDcgKzIzOCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJOb0lkZW50aWZpZXI6OmRlZmkKIAog
ICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURl
c2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVl
KTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1
cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFt
ZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRKU1Zh
bHVlIGpzVGVzdE5hbWVkU2V0dGVyTm9JZGVudGlmaWVyQ29uc3RydWN0b3IoRXhlY1N0YXRlKiBz
dGF0ZSwgRW5jb2RlZEpTVmFsdWUgdGhpc1ZhbHVlLCBQcm9wZXJ0eU5hbWUpCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJv
d2luZ0V4Y2VwdGlvbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvYmluZGluZ3Mv
c2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24uY3BwCShy
ZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbi5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3RO
YW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uLmgiCiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0
T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpTRE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9N
Q29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxlLmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0Lmgi
CkBAIC0xMzQsNDQgKzEzNSw0OCBAQCBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNl
cHRpb246CiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xv
dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0
ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChh
dXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBl
bmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byBy
ZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9t
aWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNO
dWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExU
eXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9t
TnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07
CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5
PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUs
IGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmlu
Zz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90
LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgSlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAg
IGlmIChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJv
cGVydHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAg
IGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5p
c1N5bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5u
YW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAg
ICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBp
dGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICBy
ZXR1cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0
KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3Qm
IHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRl
clRocm93aW5nRXhjZXB0aW9uKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVS
SVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNz
SW5mbygpID09IGluZm8oKSkgewotICAgICAgICBhdXRvIGl0ZW0gPSB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkp
OwotICAgICAgICBpZiAoIUlETERPTVN0cmluZzo6aXNOdWxsVmFsdWUoaXRlbSkpIHsKLSAgICAg
ICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdG9KUzxJRExET01TdHJpbmc+KCpz
dGF0ZSwgaXRlbSkpOwotICAgICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAgICAgIH0KKyAgICBh
dXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKKyAgICB1
c2luZyBHZXR0ZXJJRExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3Rv
ciA9IFtdIChhdXRvJiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRp
b25hbDx0eXBlbmFtZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAg
ICAgYXV0byByZXN1bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlO
YW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURM
VHlwZTo6aXNOdWxsVmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBH
ZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0
VmFsdWVGcm9tTnVsbGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0
OworICAgIH07CisgICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1l
ZFByb3BlcnR5PE92ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9w
ZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElE
TERPTVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJu
IHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4
KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0Ojpn
ZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0K
IAogdm9pZCBKU1Rlc3ROYW1lZFNldHRlclRocm93aW5nRXhjZXB0aW9uOjpnZXRPd25Qcm9wZXJ0
eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZUFy
cmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkKIHsKICAgICBhdXRvKiB0
aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihv
YmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAgICBm
b3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0ZWRQ
cm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6OmZy
b21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3BlcnR5
TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpTT2Jq
ZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1v
ZGUpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb246OnB1dChK
U0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUs
IEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJvcGVydHlTbG90KQpAQCAtMTkx
LDcgKzE5Niw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKICAg
ICAgICAgfQogICAgIH0KIAotICAgIHJldHVybiBCYXNlOjpwdXQodGhpc09iamVjdCwgc3RhdGUs
IHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3BlcnR5U2xvdCk7CisgICAgcmV0dXJuIEpTT2Jq
ZWN0OjpwdXQodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgdmFsdWUsIHB1dFByb3Bl
cnR5U2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjo6
cHV0QnlJbmRleChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4
LCBKU1ZhbHVlIHZhbHVlLCBib29sIHNob3VsZFRocm93KQpAQCAtMTk5LDcgKzIwNCw3IEBAIGJv
b2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKICAgICBhdXRvKiB0aGlzT2Jq
ZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb24qPihjZWxsKTsK
ICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CiAKLSAg
ICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4
KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4
KTsKICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50
ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKICAgICBKU1ZhbHVlIHByb3RvdHlwZSA9IHRo
aXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwogICAgIGlmICghKHByb3RvdHlwZS5pc09i
amVjdCgpICYmIGFzT2JqZWN0KHByb3RvdHlwZSktPmdldFByb3BlcnR5U2xvdChzdGF0ZSwgcHJv
cGVydHlOYW1lLCBzbG90KSkpIHsKQEAgLTIxMCw3ICsyMTUsNyBAQCBib29sIEpTVGVzdE5hbWVk
U2V0dGVyVGhyb3dpbmdFeGNlcHRpb246CiAgICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KIAot
ICAgIHJldHVybiBCYXNlOjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFsdWUsIHNo
b3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dEJ5SW5kZXgoY2VsbCwgc3RhdGUs
IGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVy
VGhyb3dpbmdFeGNlcHRpb246OmRlZmluZU93blByb3BlcnR5KEpTT2JqZWN0KiBvYmplY3QsIEV4
ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5TmFtZSBwcm9wZXJ0eU5hbWUsIGNvbnN0IFByb3BlcnR5
RGVzY3JpcHRvciYgcHJvcGVydHlEZXNjcmlwdG9yLCBib29sIHNob3VsZFRocm93KQpAQCAtMjIw
LDcgKzIyNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKIAog
ICAgIGlmICghcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKICAgICAgICAgUHJvcGVydHlTbG90
IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9kVHlwZTo6Vk1J
bnF1aXJ5IH07Ci0gICAgICAgIGlmICghQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7CisgICAgICAgIGlmICghSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90
KSkgewogICAgICAgICAgICAgaWYgKCFwcm9wZXJ0eURlc2NyaXB0b3IuaXNEYXRhRGVzY3JpcHRv
cigpKQogICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgICAgIGF1dG8gdGhy
b3dTY29wZSA9IERFQ0xBUkVfVEhST1dfU0NPUEUoc3RhdGUtPnZtKCkpOwpAQCAtMjMzLDcgKzIz
OCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJUaHJvd2luZ0V4Y2VwdGlvbjoKIAogICAgIFBy
b3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBwcm9wZXJ0eURlc2NyaXB0
b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3VyYWJsZSh0cnVlKTsKLSAg
ICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlO
YW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKKyAgICByZXR1cm4gSlNP
YmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3
UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEVuY29kZWRKU1ZhbHVlIGpz
VGVzdE5hbWVkU2V0dGVyVGhyb3dpbmdFeGNlcHRpb25Db25zdHJ1Y3RvcihFeGVjU3RhdGUqIHN0
YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5TmFtZSkKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3Jp
cHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllci5jcHAJKHJldmlzaW9u
IDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiAr
MjEsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVy
V2l0aElkZW50aWZpZXIuaCIKIAorI2luY2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgi
CiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgiCiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5v
dENvbnN0cnVjdGFibGUuaCIKICNpbmNsdWRlICJKU0RPTUNvbnZlcnQuaCIKQEAgLTE0MCw0NCAr
MTQxLDQ4IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6Z2UKIHsKICAg
ICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXIqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwg
aW5mbygpKTsKLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0
YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExE
T01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3Qs
IGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5
cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmpl
Y3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0
eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQp
KQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0
aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQp
IH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBu
YW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGlu
czo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rvcikp
IHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1v
dmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09i
amVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICBKU1ZhbHVlIHByb3Rv
ID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7Ci0gICAgaWYgKHByb3RvLmlzT2Jq
ZWN0KCkgJiYganNDYXN0PEpTT2JqZWN0Kj4ocHJvdG8pLT5oYXNQcm9wZXJ0eShzdGF0ZSwgcHJv
cGVydHlOYW1lKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotCi0gICAgaWYgKHRoaXNPYmplY3Qt
PmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAg
ICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0
eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01T
dHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRo
aXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAg
ICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CiAgICAgfQotICAgIHJldHVybiBmYWxzZTsKKyAg
ICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9w
ZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZp
ZXI6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYgc2xvdCkKIHsKICAgICBhdXRv
KiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXIqPihv
YmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUs
IGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0g
ICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVy
dHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9N
U3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJ
RExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmpl
Y3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklE
TFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNP
YmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9w
ZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1
bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVu
dGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1
bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0
byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWls
dGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3Rv
cikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdU
Rk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0
dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGlu
ZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkU2V0
dGVyV2l0aElkZW50aWZpZXI6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwg
RXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1l
cmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0
TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcio+KG9iamVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVD
VF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5I
RVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZvciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhp
c09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJv
cGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJvbVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1l
KSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlOYW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmplY3Q6OmdldE93blByb3BlcnR5TmFtZXMob2Jq
ZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwg
UHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90
JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0xOTcsNyArMjAyLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNl
dHRlcldpdGhJZGVudGlmaWVyOjpwdQogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0dXJuIEJh
c2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVy
dHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJv
cGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1l
ZFNldHRlcldpdGhJZGVudGlmaWVyOjpwdXRCeUluZGV4KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRl
KiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIEpTVmFsdWUgdmFsdWUsIGJvb2wgc2hvdWxkVGhyb3cp
CkBAIC0yMDUsNyArMjEwLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlmaWVy
OjpwdQogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRo
SWRlbnRpZmllcio+KGNlbGwpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09i
amVjdCwgaW5mbygpKTsKIAotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwogICAgIFByb3BlcnR5U2xvdCBzbG90IHsgdGhpc09iamVj
dCwgUHJvcGVydHlTbG90OjpJbnRlcm5hbE1ldGhvZFR5cGU6OlZNSW5xdWlyeSB9OwogICAgIEpT
VmFsdWUgcHJvdG90eXBlID0gdGhpc09iamVjdC0+Z2V0UHJvdG90eXBlRGlyZWN0KCk7CiAgICAg
aWYgKCEocHJvdG90eXBlLmlzT2JqZWN0KCkgJiYgYXNPYmplY3QocHJvdG90eXBlKS0+Z2V0UHJv
cGVydHlTbG90KHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSkgewpAQCAtMjE2LDcgKzIyMSw3
IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6cHUKICAgICAgICAgcmV0
dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJuIEJhc2U6OnB1dEJ5SW5kZXgoY2VsbCwgc3Rh
dGUsIGluZGV4LCB2YWx1ZSwgc2hvdWxkVGhyb3cpOworICAgIHJldHVybiBKU09iamVjdDo6cHV0
QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7CiB9CiAKIGJv
b2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllcjo6ZGVmaW5lT3duUHJvcGVydHkoSlNP
YmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgY29uc3QgUHJvcGVydHlEZXNjcmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hv
dWxkVGhyb3cpCkBAIC0yMjYsNyArMjMxLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJ
ZGVudGlmaWVyOjpkZQogCiAgICAgaWYgKCFwcm9wZXJ0eU5hbWUuaXNTeW1ib2woKSkgewogICAg
ICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50ZXJu
YWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAgaWYgKCFCYXNlOjpnZXRPd25Qcm9w
ZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKKyAgICAg
ICAgaWYgKCFKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBw
cm9wZXJ0eU5hbWUsIHNsb3QpKSB7CiAgICAgICAgICAgICBpZiAoIXByb3BlcnR5RGVzY3JpcHRv
ci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
ICAgICAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0ZS0+dm0o
KSk7CkBAIC0yMzksNyArMjQ0LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhJZGVudGlm
aWVyOjpkZQogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRvciA9
IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29uZmln
dXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhyb3cp
OworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0KIAog
dGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoSWRlbnRpZmllciogSURMT3Bl
cmF0aW9uPEpTVGVzdE5hbWVkU2V0dGVyV2l0aElkZW50aWZpZXI+OjpjYXN0KEV4ZWNTdGF0ZSYg
c3RhdGUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNU
ZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucy5jcHAKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0
aE92ZXJyaWRlQnVpbHRpbnMuY3BwCShyZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVC
dWlsdGlucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJj
b25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5z
LmgiCiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5oIgogI2luY2x1ZGUgIkpT
RE9NQmluZGluZy5oIgogI2luY2x1ZGUgIkpTRE9NQ29uc3RydWN0b3JOb3RDb25zdHJ1Y3RhYmxl
LmgiCiAjaW5jbHVkZSAiSlNET01Db252ZXJ0LmgiCkBAIC0xMzQsNDAgKzEzNSw0OCBAQCBib29s
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpCiB7CiAgICAgYXV0byogdGhpc09i
amVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKj4ob2Jq
ZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7
Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8oKSAmJiAhcHJvcGVydHlO
YW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBl
ZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsK
LSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAg
ICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3Rh
dGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAgfQot
ICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVjdCwgc3RhdGUsIHByb3Bl
cnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9IElETERPTVN0cmluZzsK
KyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9w
ZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVk
KCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOwor
ICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAg
ICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsg
R2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAg
ICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVy
dHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1aWx0aW5zOjpZZXM+KCpz
dGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAg
ICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQ
cm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwg
dmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4gZmFsc2U7CisgICAgfQor
ICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJp
ZGVCdWlsdGluczo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBF
eGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewog
ICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJp
ZGVCdWlsdGlucyo+KG9iamVjdCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlz
T2JqZWN0LCBpbmZvKCkpOwotICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmll
cjo6ZnJvbShzdGF0ZSwgaW5kZXgpOwotICAgIGlmICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9
PSBpbmZvKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhpc09iamVjdC0+d3JhcHBlZCgpLm5h
bWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKLSAgICAg
ICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0ZW0pKSB7Ci0gICAgICAgICAgICBz
bG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIGl0
ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9CisgICAgYXV0byBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgdXNpbmcgR2V0
dGVySURMVHlwZSA9IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAo
YXV0byYgdGhpc09iamVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlw
ZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8g
cmVzdWx0ID0gdGhpc09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRv
bWljU3RyaW5nKHByb3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6Omlz
TnVsbFZhbHVlKHJlc3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURM
VHlwZTo6SW1wbGVtZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJv
bU51bGxhYmxlKHJlc3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9
OworICAgIGlmIChhdXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0
eTxPdmVycmlkZUJ1aWx0aW5zOjpZZXM+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFt
ZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3Ry
aW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNs
b3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
ICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgodGhpc09i
amVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blBy
b3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwogfQogCiB2b2lk
IEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blByb3BlcnR5TmFt
ZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkm
IHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9kZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGlucyo+KG9i
amVjdCk7Ci0gICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OworICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMob2JqZWN0LCBpbmZvKCkpOwogICAgIGZv
ciAoYXV0byYgcHJvcGVydHlOYW1lIDogdGhpc09iamVjdC0+d3JhcHBlZCgpLnN1cHBvcnRlZFBy
b3BlcnR5TmFtZXMoKSkKICAgICAgICAgcHJvcGVydHlOYW1lcy5hZGQoSWRlbnRpZmllcjo6ZnJv
bVN0cmluZyhzdGF0ZSwgcHJvcGVydHlOYW1lKSk7Ci0gICAgQmFzZTo6Z2V0T3duUHJvcGVydHlO
YW1lcyh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9kZSk7CisgICAgSlNPYmpl
Y3Q6OmdldE93blByb3BlcnR5TmFtZXMob2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lcywgbW9k
ZSk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVCdWlsdGluczo6cHV0
KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFt
ZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVydHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0x
ODMsNyArMTkyLDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4gQmFzZTo6cHV0KHRoaXNP
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZhbHVlLCBwdXRQcm9wZXJ0eVNsb3QpOworICAg
IHJldHVybiBKU09iamVjdDo6cHV0KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHZh
bHVlLCBwdXRQcm9wZXJ0eVNsb3QpOwogfQogCiBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92
ZXJyaWRlQnVpbHRpbnM6OnB1dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRl
LCB1bnNpZ25lZCBpbmRleCwgSlNWYWx1ZSB2YWx1ZSwgYm9vbCkKQEAgLTE5MSw3ICsyMDAsNyBA
QCBib29sIEpTVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpCiAgICAgYXV0byogdGhp
c09iamVjdCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhPdmVycmlkZUJ1aWx0aW5zKj4o
Y2VsbCk7CiAgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkp
OwogCi0gICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7CisgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRl
LCBpbmRleCk7CiAgICAgYXV0byB0aHJvd1Njb3BlID0gREVDTEFSRV9USFJPV19TQ09QRShzdGF0
ZS0+dm0oKSk7CiAgICAgYXV0byBuYXRpdmVWYWx1ZSA9IGNvbnZlcnQ8SURMRE9NU3RyaW5nPigq
c3RhdGUsIHZhbHVlKTsKICAgICBSRVRVUk5fSUZfRVhDRVBUSU9OKHRocm93U2NvcGUsIHRydWUp
OwpAQCAtMjE2LDcgKzIyNSw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoT3ZlcnJpZGVC
dWlsdGkKIAogICAgIFByb3BlcnR5RGVzY3JpcHRvciBuZXdQcm9wZXJ0eURlc2NyaXB0b3IgPSBw
cm9wZXJ0eURlc2NyaXB0b3I7CiAgICAgbmV3UHJvcGVydHlEZXNjcmlwdG9yLnNldENvbmZpZ3Vy
YWJsZSh0cnVlKTsKLSAgICByZXR1cm4gQmFzZTo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBz
dGF0ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsK
KyAgICByZXR1cm4gSlNPYmplY3Q6OmRlZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHBy
b3BlcnR5TmFtZSwgbmV3UHJvcGVydHlEZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CiB9CiAKIEVu
Y29kZWRKU1ZhbHVlIGpzVGVzdE5hbWVkU2V0dGVyV2l0aE92ZXJyaWRlQnVpbHRpbnNDb25zdHJ1
Y3RvcihFeGVjU3RhdGUqIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUsIFByb3BlcnR5
TmFtZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllcy5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVy
V2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAkocmV2aXNpb24gMjE4MDcwKQorKysgU291cmNl
L1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVu
Zm9yZ2FibGVQcm9wZXJ0aWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjEsNiArMjEsNyBAQAog
I2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9y
Z2FibGVQcm9wZXJ0aWVzLmgiCiAKKyNpbmNsdWRlICJKU0RPTUFic3RyYWN0T3BlcmF0aW9ucy5o
IgogI2luY2x1ZGUgIkpTRE9NQXR0cmlidXRlLmgiCiAjaW5jbHVkZSAiSlNET01CaW5kaW5nLmgi
CiAjaW5jbHVkZSAiSlNET01Db25zdHJ1Y3Rvck5vdENvbnN0cnVjdGFibGUuaCIKQEAgLTE1OCw0
NCArMTU5LDQ4IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3AKIHsK
ICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9y
Z2FibGVQcm9wZXJ0aWVzKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRT
KHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKEJhc2U6OmdldE93blByb3BlcnR5U2xvdCh0
aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KSkKKyAgICB1c2luZyBHZXR0ZXJJ
RExUeXBlID0gSURMRE9NU3RyaW5nOworICAgIGF1dG8gZ2V0dGVyRnVuY3RvciA9IFtdIChhdXRv
JiB0aGlzT2JqZWN0LCBhdXRvIHByb3BlcnR5TmFtZSkgLT4gc3RkOjpvcHRpb25hbDx0eXBlbmFt
ZSBHZXR0ZXJJRExUeXBlOjpJbXBsZW1lbnRhdGlvblR5cGU+IHsKKyAgICAgICAgYXV0byByZXN1
bHQgPSB0aGlzT2JqZWN0LndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNT
dHJpbmcocHJvcGVydHlOYW1lKSk7CisgICAgICAgIGlmICghR2V0dGVySURMVHlwZTo6aXNOdWxs
VmFsdWUocmVzdWx0KSkKKyAgICAgICAgICAgIHJldHVybiB0eXBlbmFtZSBHZXR0ZXJJRExUeXBl
OjpJbXBsZW1lbnRhdGlvblR5cGUgeyBHZXR0ZXJJRExUeXBlOjpleHRyYWN0VmFsdWVGcm9tTnVs
bGFibGUocmVzdWx0KSB9OworICAgICAgICByZXR1cm4gc3RkOjpudWxsb3B0OworICAgIH07Cisg
ICAgaWYgKGF1dG8gbmFtZWRQcm9wZXJ0eSA9IGFjY2Vzc1Zpc2libGVOYW1lZFByb3BlcnR5PE92
ZXJyaWRlQnVpbHRpbnM6Ok5vPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdl
dHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERPTVN0cmluZz4o
KnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAgICBzbG90LnNl
dFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0gICAg
SlNWYWx1ZSBwcm90byA9IHRoaXNPYmplY3QtPmdldFByb3RvdHlwZURpcmVjdCgpOwotICAgIGlm
IChwcm90by5pc09iamVjdCgpICYmIGpzQ2FzdDxKU09iamVjdCo+KHByb3RvKS0+aGFzUHJvcGVy
dHkoc3RhdGUsIHByb3BlcnR5TmFtZSkpCi0gICAgICAgIHJldHVybiBmYWxzZTsKLQotICAgIGlm
ICh0aGlzT2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5
bWJvbCgpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1l
ZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAg
IGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRlLCBpdGVt
KSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQogICAgIH0KLSAgICByZXR1
cm4gZmFsc2U7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3Qob2JqZWN0
LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCBzbG90KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllczo6Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09i
amVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlT
bG90JiBzbG90KQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19P
QkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3Bl
cnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09i
amVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNP
YmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJv
cGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVt
KSkgewotICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAg
ICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5k
ZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBn
ZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAt
PiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlw
ZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRl
bShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYg
KCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJu
IHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5
cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBz
dGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNz
VmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6Tm8+KCpzdGF0ZSwgKnRoaXNP
YmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVuY3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1
ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUsIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1
ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgMCwgdmFsdWUpOworICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5
U2xvdEJ5SW5kZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4g
SlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgs
IHNsb3QpOwogfQogCiB2b2lkIEpTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0
aWVzOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3Rh
dGUsIFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9k
ZSkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE5hbWVkU2V0dGVyV2l0
aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4ob2JqZWN0KTsKLSAgICBBU1NFUlRfR0NfT0JKRUNUX0lO
SEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAgQVNTRVJUX0dDX09CSkVDVF9JTkhFUklU
UyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRvJiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2Jq
ZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpKQogICAgICAgICBwcm9wZXJ0
eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5nKHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsK
LSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0
eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3Qs
IHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllczo6cHV0KEpTQ2VsbCogY2VsbCwgRXhlY1N0YXRlKiBz
dGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgSlNWYWx1ZSB2YWx1ZSwgUHV0UHJvcGVy
dHlTbG90JiBwdXRQcm9wZXJ0eVNsb3QpCkBAIC0yMTUsNyArMjIwLDcgQEAgYm9vbCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcAogICAgICAgICB9CiAgICAgfQogCi0gICAgcmV0
dXJuIEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0
UHJvcGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rl
c3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllczo6cHV0QnlJbmRleChKU0NlbGwq
IGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIHVuc2lnbmVkIGluZGV4LCBKU1ZhbHVlIHZhbHVlLCBi
b29sIHNob3VsZFRocm93KQpAQCAtMjIzLDcgKzIyOCw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3AKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVz
dE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzKj4oY2VsbCk7CiAgICAgQVNTRVJU
X0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwogCi0gICAgSWRlbnRpZmll
ciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CisgICAgYXV0
byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tKHN0YXRlLCBpbmRleCk7CiAgICAgUHJv
cGVydHlTbG90IHNsb3QgeyB0aGlzT2JqZWN0LCBQcm9wZXJ0eVNsb3Q6OkludGVybmFsTWV0aG9k
VHlwZTo6Vk1JbnF1aXJ5IH07CiAgICAgSlNWYWx1ZSBwcm90b3R5cGUgPSB0aGlzT2JqZWN0LT5n
ZXRQcm90b3R5cGVEaXJlY3QoKTsKICAgICBpZiAoIShwcm90b3R5cGUuaXNPYmplY3QoKSAmJiBh
c09iamVjdChwcm90b3R5cGUpLT5nZXRQcm9wZXJ0eVNsb3Qoc3RhdGUsIHByb3BlcnR5TmFtZSwg
c2xvdCkpKSB7CkBAIC0yMzQsNyArMjM5LDcgQEAgYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhV
bmZvcmdhYmxlUHJvcAogICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKLSAgICByZXR1cm4g
QmFzZTo6cHV0QnlJbmRleChjZWxsLCBzdGF0ZSwgaW5kZXgsIHZhbHVlLCBzaG91bGRUaHJvdyk7
CisgICAgcmV0dXJuIEpTT2JqZWN0OjpwdXRCeUluZGV4KGNlbGwsIHN0YXRlLCBpbmRleCwgdmFs
dWUsIHNob3VsZFRocm93KTsKIH0KIAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdh
YmxlUHJvcGVydGllczo6ZGVmaW5lT3duUHJvcGVydHkoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0
YXRlKiBzdGF0ZSwgUHJvcGVydHlOYW1lIHByb3BlcnR5TmFtZSwgY29uc3QgUHJvcGVydHlEZXNj
cmlwdG9yJiBwcm9wZXJ0eURlc2NyaXB0b3IsIGJvb2wgc2hvdWxkVGhyb3cpCkBAIC0yNTAsNyAr
MjU1LDcgQEAgc3RhdGljIGJvb2wgaXNVbmZvcmdlYWJsZVByb3BlcnR5TmFtZShQcgogCiAgICAg
ICAgIGlmICghaXNVbmZvcmdlYWJsZVByb3BlcnR5TmFtZShwcm9wZXJ0eU5hbWUpKSB7CiAgICAg
ICAgICAgICBQcm9wZXJ0eVNsb3Qgc2xvdCB7IHRoaXNPYmplY3QsIFByb3BlcnR5U2xvdDo6SW50
ZXJuYWxNZXRob2RUeXBlOjpWTUlucXVpcnkgfTsKLSAgICAgICAgICAgIGlmICghQmFzZTo6Z2V0
T3duUHJvcGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKSB7
CisgICAgICAgICAgICBpZiAoIUpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpIHsKICAgICAgICAgICAgICAgICBpZiAoIXBy
b3BlcnR5RGVzY3JpcHRvci5pc0RhdGFEZXNjcmlwdG9yKCkpCiAgICAgICAgICAgICAgICAgICAg
IHJldHVybiBmYWxzZTsKICAgICAgICAgICAgICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJF
X1RIUk9XX1NDT1BFKHN0YXRlLT52bSgpKTsKQEAgLTI2NCw3ICsyNjksNyBAQCBzdGF0aWMgYm9v
bCBpc1VuZm9yZ2VhYmxlUHJvcGVydHlOYW1lKFByCiAKICAgICBQcm9wZXJ0eURlc2NyaXB0b3Ig
bmV3UHJvcGVydHlEZXNjcmlwdG9yID0gcHJvcGVydHlEZXNjcmlwdG9yOwogICAgIG5ld1Byb3Bl
cnR5RGVzY3JpcHRvci5zZXRDb25maWd1cmFibGUodHJ1ZSk7Ci0gICAgcmV0dXJuIEJhc2U6OmRl
ZmluZU93blByb3BlcnR5KG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgbmV3UHJvcGVydHlE
ZXNjcmlwdG9yLCBzaG91bGRUaHJvdyk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpkZWZpbmVPd25Q
cm9wZXJ0eShvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRv
ciwgc2hvdWxkVGhyb3cpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3ROYW1lZFNldHRl
cldpdGhVbmZvcmdhYmxlUHJvcGVydGllcyogSURMQXR0cmlidXRlPEpTVGVzdE5hbWVkU2V0dGVy
V2l0aFVuZm9yZ2FibGVQcm9wZXJ0aWVzPjo6Y2FzdChFeGVjU3RhdGUmIHN0YXRlLCBFbmNvZGVk
SlNWYWx1ZSB0aGlzVmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRz
L3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVy
cmlkZUJ1aWx0aW5zLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9z
Y3JpcHRzL3Rlc3QvSlMvSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNB
bmRPdmVycmlkZUJ1aWx0aW5zLmNwcAkocmV2aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNv
cmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5hbWVkU2V0dGVyV2l0aFVuZm9yZ2Fi
bGVQcm9wZXJ0aWVzQW5kT3ZlcnJpZGVCdWlsdGlucy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIx
LDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb25maWcuaCIKICNpbmNsdWRlICJKU1Rlc3ROYW1lZFNl
dHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnMuaCIKIAorI2lu
Y2x1ZGUgIkpTRE9NQWJzdHJhY3RPcGVyYXRpb25zLmgiCiAjaW5jbHVkZSAiSlNET01BdHRyaWJ1
dGUuaCIKICNpbmNsdWRlICJKU0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVj
dG9yTm90Q29uc3RydWN0YWJsZS5oIgpAQCAtMTU4LDQwICsxNTksNDggQEAgYm9vbCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcAogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBq
c0Nhc3Q8SlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlk
ZUJ1aWx0aW5zKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNP
YmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKHRoaXNPYmplY3QtPmNsYXNzSW5mbygpID09IGluZm8o
KSAmJiAhcHJvcGVydHlOYW1lLmlzU3ltYm9sKCkpIHsKLSAgICAgICAgYXV0byBpdGVtID0gdGhp
c09iamVjdC0+d3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhw
cm9wZXJ0eU5hbWUpKTsKLSAgICAgICAgaWYgKCFJRExET01TdHJpbmc6OmlzTnVsbFZhbHVlKGl0
ZW0pKSB7Ci0gICAgICAgICAgICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHRvSlM8SURM
RE9NU3RyaW5nPigqc3RhdGUsIGl0ZW0pKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAg
ICAgICB9Ci0gICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCisgICAgdXNpbmcgR2V0dGVySURMVHlwZSA9
IElETERPTVN0cmluZzsKKyAgICBhdXRvIGdldHRlckZ1bmN0b3IgPSBbXSAoYXV0byYgdGhpc09i
amVjdCwgYXV0byBwcm9wZXJ0eU5hbWUpIC0+IHN0ZDo6b3B0aW9uYWw8dHlwZW5hbWUgR2V0dGVy
SURMVHlwZTo6SW1wbGVtZW50YXRpb25UeXBlPiB7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gdGhp
c09iamVjdC53cmFwcGVkKCkubmFtZWRJdGVtKHByb3BlcnR5TmFtZVRvQXRvbWljU3RyaW5nKHBy
b3BlcnR5TmFtZSkpOworICAgICAgICBpZiAoIUdldHRlcklETFR5cGU6OmlzTnVsbFZhbHVlKHJl
c3VsdCkpCisgICAgICAgICAgICByZXR1cm4gdHlwZW5hbWUgR2V0dGVySURMVHlwZTo6SW1wbGVt
ZW50YXRpb25UeXBlIHsgR2V0dGVySURMVHlwZTo6ZXh0cmFjdFZhbHVlRnJvbU51bGxhYmxlKHJl
c3VsdCkgfTsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bnVsbG9wdDsKKyAgICB9OworICAgIGlmIChh
dXRvIG5hbWVkUHJvcGVydHkgPSBhY2Nlc3NWaXNpYmxlTmFtZWRQcm9wZXJ0eTxPdmVycmlkZUJ1
aWx0aW5zOjpZZXM+KCpzdGF0ZSwgKnRoaXNPYmplY3QsIHByb3BlcnR5TmFtZSwgZ2V0dGVyRnVu
Y3RvcikpIHsKKyAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMRE9NU3RyaW5nPigqc3RhdGUs
IFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUo
dGhpc09iamVjdCwgMCwgdmFsdWUpOwogICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICByZXR1cm4g
ZmFsc2U7CisgICAgfQorICAgIHJldHVybiBKU09iamVjdDo6Z2V0T3duUHJvcGVydHlTbG90KG9i
amVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCk7CiB9CiAKIGJvb2wgSlNUZXN0TmFtZWRT
ZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Q
cm9wZXJ0eVNsb3RCeUluZGV4KEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUsIHVu
c2lnbmVkIGluZGV4LCBQcm9wZXJ0eVNsb3QmIHNsb3QpCiB7CiAgICAgYXV0byogdGhpc09iamVj
dCA9IGpzQ2FzdDxKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92
ZXJyaWRlQnVpbHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFMo
dGhpc09iamVjdCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50
aWZpZXI6OmZyb20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZv
KCkgPT0gaW5mbygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5uYW1lZEl0ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0g
ICAgICAgIGlmICghSURMRE9NU3RyaW5nOjppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAg
ICAgc2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCAwLCB0b0pTPElETERPTVN0cmluZz4oKnN0YXRl
LCBpdGVtKSk7Ci0gICAgICAgICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8g
cHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5n
IEdldHRlcklETFR5cGUgPSBJRExET01TdHJpbmc7CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0g
W10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFs
PHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBh
dXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVU
b0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBl
Ojppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRl
cklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1
ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7Cisg
ICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJv
cGVydHk8T3ZlcnJpZGVCdWlsdGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0
eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETERP
TVN0cmluZz4oKnN0YXRlLCBXVEZNb3ZlKG5hbWVkUHJvcGVydHkudmFsdWUoKSkpOworICAgICAg
ICBzbG90LnNldFZhbHVlKHRoaXNPYmplY3QsIDAsIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRy
dWU7CiAgICAgfQotICAgIHJldHVybiBCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRo
aXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xvdCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRP
d25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAog
dm9pZCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRl
QnVpbHRpbnM6OmdldE93blByb3BlcnR5TmFtZXMoSlNPYmplY3QqIG9iamVjdCwgRXhlY1N0YXRl
KiBzdGF0ZSwgUHJvcGVydHlOYW1lQXJyYXkmIHByb3BlcnR5TmFtZXMsIEVudW1lcmF0aW9uTW9k
ZSBtb2RlKQogewogICAgIGF1dG8qIHRoaXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0TmFtZWRTZXR0
ZXJXaXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKj4ob2JqZWN0KTsK
LSAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7CisgICAg
QVNTRVJUX0dDX09CSkVDVF9JTkhFUklUUyhvYmplY3QsIGluZm8oKSk7CiAgICAgZm9yIChhdXRv
JiBwcm9wZXJ0eU5hbWUgOiB0aGlzT2JqZWN0LT53cmFwcGVkKCkuc3VwcG9ydGVkUHJvcGVydHlO
YW1lcygpKQogICAgICAgICBwcm9wZXJ0eU5hbWVzLmFkZChJZGVudGlmaWVyOjpmcm9tU3RyaW5n
KHN0YXRlLCBwcm9wZXJ0eU5hbWUpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVzKHRo
aXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6Z2V0
T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKIH0K
IAogYm9vbCBKU1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJy
aWRlQnVpbHRpbnM6OnB1dChKU0NlbGwqIGNlbGwsIEV4ZWNTdGF0ZSogc3RhdGUsIFByb3BlcnR5
TmFtZSBwcm9wZXJ0eU5hbWUsIEpTVmFsdWUgdmFsdWUsIFB1dFByb3BlcnR5U2xvdCYgcHV0UHJv
cGVydHlTbG90KQpAQCAtMjA3LDcgKzIxNiw3IEBAIGJvb2wgSlNUZXN0TmFtZWRTZXR0ZXJXaXRo
VW5mb3JnYWJsZVByb3AKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCi0gICAgcmV0dXJu
IEJhc2U6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwgcHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJv
cGVydHlTbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OnB1dCh0aGlzT2JqZWN0LCBzdGF0ZSwg
cHJvcGVydHlOYW1lLCB2YWx1ZSwgcHV0UHJvcGVydHlTbG90KTsKIH0KIAogYm9vbCBKU1Rlc3RO
YW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRpbnM6OnB1
dEJ5SW5kZXgoSlNDZWxsKiBjZWxsLCBFeGVjU3RhdGUqIHN0YXRlLCB1bnNpZ25lZCBpbmRleCwg
SlNWYWx1ZSB2YWx1ZSwgYm9vbCkKQEAgLTIxNSw3ICsyMjQsNyBAQCBib29sIEpTVGVzdE5hbWVk
U2V0dGVyV2l0aFVuZm9yZ2FibGVQcm9wCiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxK
U1Rlc3ROYW1lZFNldHRlcldpdGhVbmZvcmdhYmxlUHJvcGVydGllc0FuZE92ZXJyaWRlQnVpbHRp
bnMqPihjZWxsKTsKICAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGlu
Zm8oKSk7CiAKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20o
c3RhdGUsIGluZGV4KTsKKyAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb20o
c3RhdGUsIGluZGV4KTsKICAgICBhdXRvIHRocm93U2NvcGUgPSBERUNMQVJFX1RIUk9XX1NDT1BF
KHN0YXRlLT52bSgpKTsKICAgICBhdXRvIG5hdGl2ZVZhbHVlID0gY29udmVydDxJRExET01TdHJp
bmc+KCpzdGF0ZSwgdmFsdWUpOwogICAgIFJFVFVSTl9JRl9FWENFUFRJT04odGhyb3dTY29wZSwg
dHJ1ZSk7CkBAIC0yNDcsNyArMjU2LDcgQEAgc3RhdGljIGJvb2wgaXNVbmZvcmdlYWJsZVByb3Bl
cnR5TmFtZShQcgogCiAgICAgUHJvcGVydHlEZXNjcmlwdG9yIG5ld1Byb3BlcnR5RGVzY3JpcHRv
ciA9IHByb3BlcnR5RGVzY3JpcHRvcjsKICAgICBuZXdQcm9wZXJ0eURlc2NyaXB0b3Iuc2V0Q29u
ZmlndXJhYmxlKHRydWUpOwotICAgIHJldHVybiBCYXNlOjpkZWZpbmVPd25Qcm9wZXJ0eShvYmpl
Y3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIG5ld1Byb3BlcnR5RGVzY3JpcHRvciwgc2hvdWxkVGhy
b3cpOworICAgIHJldHVybiBKU09iamVjdDo6ZGVmaW5lT3duUHJvcGVydHkob2JqZWN0LCBzdGF0
ZSwgcHJvcGVydHlOYW1lLCBuZXdQcm9wZXJ0eURlc2NyaXB0b3IsIHNob3VsZFRocm93KTsKIH0K
IAogdGVtcGxhdGU8PiBpbmxpbmUgSlNUZXN0TmFtZWRTZXR0ZXJXaXRoVW5mb3JnYWJsZVByb3Bl
cnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zKiBJRExBdHRyaWJ1dGU8SlNUZXN0TmFtZWRTZXR0ZXJX
aXRoVW5mb3JnYWJsZVByb3BlcnRpZXNBbmRPdmVycmlkZUJ1aWx0aW5zPjo6Y2FzdChFeGVjU3Rh
dGUmIHN0YXRlLCBFbmNvZGVkSlNWYWx1ZSB0aGlzVmFsdWUpCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0Tm9kZS5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pTL0pTVGVzdE5vZGUuY3BwCShy
ZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3Qv
SlMvSlNUZXN0Tm9kZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE0MywzOSArMTQzLDM5IEBAIHZv
aWQgSlNUZXN0Tm9kZVByb3RvdHlwZTo6ZmluaXNoQ3JlYXRpb24KICAgICBCYXNlOjpmaW5pc2hD
cmVhdGlvbih2bSk7CiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rlc3ROb2RlUHJv
dG90eXBlVGFibGVWYWx1ZXMsICp0aGlzKTsKICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9i
amVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3Vy
ZUNvbnRleHQoKSkgewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZp
ZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImNhbGN1
bGF0ZVNlY3JldFJlc3VsdCIpLCBzdHJsZW4oImNhbGN1bGF0ZVNlY3JldFJlc3VsdCIpKTsKKyAg
ICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVp
bnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSwgc3Ry
bGVuKCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0
eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmln
dXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9i
amVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghanND
YXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2JqZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25D
b250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVy
dHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgTENoYXIqPigiZ2V0U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oImdldFNlY3JldEJvb2xlYW4i
KSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmluZygm
dm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZ2V0U2VjcmV0Qm9vbGVhbiIpLCBz
dHJsZW4oImdldFNlY3JldEJvb2xlYW4iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJh
YmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVj
dCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2lmIEVOQUJMRShURVNU
X0ZFQVRVUkUpCiAgICAgaWYgKCEoanNDYXN0PEpTRE9NR2xvYmFsT2JqZWN0Kj4oZ2xvYmFsT2Jq
ZWN0KCkpLT5zY3JpcHRFeGVjdXRpb25Db250ZXh0KCktPmlzU2VjdXJlQ29udGV4dCgpICYmIFJ1
bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1cmVzKCkudGVzdEZlYXR1cmVFbmFibGVk
KCkpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigidGVzdEZlYXR1cmVH
ZXRTZWNyZXRCb29sZWFuIiksIHN0cmxlbigidGVzdEZlYXR1cmVHZXRTZWNyZXRCb29sZWFuIikp
OworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9v
bGVhbiIpLCBzdHJsZW4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpKTsKICAgICAgICAg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAg
ICB9CiAjZW5kaWYKICAgICBpZiAoIVJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJlZEZlYXR1
cmVzKCkuZG9tSXRlcmF0b3JFbmFibGVkKCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0
eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25z
dCBMQ2hhcio+KCJlbnRyaWVzIiksIHN0cmxlbigiZW50cmllcyIpKTsKKyAgICAgICAgYXV0byBw
cm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2Fz
dDxjb25zdCBMQ2hhcio+KCJlbnRyaWVzIiksIHN0cmxlbigiZW50cmllcyIpKTsKICAgICAgICAg
Vk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlN
b2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVy
dHkodGhpcywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAg
ICB9CiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLmRv
bUl0ZXJhdG9yRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
Pigia2V5cyIpLCBzdHJsZW4oImtleXMiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
Pigia2V5cyIpLCBzdHJsZW4oImtleXMiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJh
YmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVj
dCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghUnVudGlt
ZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkg
ewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oInZhbHVlcyIpLCBzdHJsZW4o
InZhbHVlcyIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ2YWx1ZXMiKSwgc3Ry
bGVuKCJ2YWx1ZXMiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29w
ZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAg
ICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxF
eGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5kb21JdGVyYXRvckVuYWJsZWQoKSkgewotICAgICAgICBJ
ZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWlu
dGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImZvckVhY2giKSwgc3RybGVuKCJmb3JFYWNoIikp
OworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZt
LCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImZvckVhY2giKSwgc3RybGVuKCJmb3JF
YWNoIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZN
OjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2Jq
ZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBw
cm9wZXJ0eU5hbWUpOwogICAgIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2JpbmRpbmdzL3Njcmlw
dHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2Jp
bmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPYmouY3BwCShyZXZpc2lvbiAyMTgwNzApCisr
KyBTb3VyY2UvV2ViQ29yZS9iaW5kaW5ncy9zY3JpcHRzL3Rlc3QvSlMvSlNUZXN0T2JqLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMTg2Nyw0MSArMTg2Nyw0MSBAQCB2b2lkIEpTVGVzdE9ialByb3Rv
dHlwZTo6ZmluaXNoQ3JlYXRpb24oCiAgICAgcmVpZnlTdGF0aWNQcm9wZXJ0aWVzKHZtLCBKU1Rl
c3RPYmpQcm90b3R5cGVUYWJsZVZhbHVlcywgKnRoaXMpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRV
UkUpCiAgICAgaWYgKCFSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJlcygpLnRl
c3RGZWF0dXJlRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0g
SWRlbnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIq
PigiZW5hYmxlZEF0UnVudGltZU9wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVP
cGVyYXRpb24iKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJv
bVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEF0UnVu
dGltZU9wZXJhdGlvbiIpLCBzdHJsZW4oImVuYWJsZWRBdFJ1bnRpbWVPcGVyYXRpb24iKSk7CiAg
ICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVBy
b3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0
ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFt
ZSk7CiAgICAgfQogI2VuZGlmCiAgICAgaWYgKCEod29ybGRGb3JET01PYmplY3QodGhpcykuc29t
ZVdvcmxkKCkgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMoKS50ZXN0
RmVhdHVyZUVuYWJsZWQoKSkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUgPSBJ
ZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+
KCJlbmFibGVkSW5TcGVjaWZpY1dvcmxkV2hlblJ1bnRpbWVGZWF0dXJlRW5hYmxlZCIpLCBzdHJs
ZW4oImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVuUnVudGltZUZlYXR1cmVFbmFibGVkIikpOwor
ICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCBy
ZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRJblNwZWNpZmljV29ybGRXaGVu
UnVudGltZUZlYXR1cmVFbmFibGVkIiksIHN0cmxlbigiZW5hYmxlZEluU3BlY2lmaWNXb3JsZFdo
ZW5SdW50aW1lRmVhdHVyZUVuYWJsZWQiKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1v
ZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJh
YmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVj
dCgpLT5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogICAgIGlmICghd29ybGRG
b3JET01PYmplY3QodGhpcykuc29tZVdvcmxkKCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9w
ZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBMQ2hhcio+KCJ3b3JsZFNwZWNpZmljTWV0aG9kIiksIHN0cmxlbigid29ybGRTcGVjaWZp
Y01ldGhvZCIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9t
U3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJ3b3JsZFNwZWNpZmlj
TWV0aG9kIiksIHN0cmxlbigid29ybGRTcGVjaWZpY01ldGhvZCIpKTsKICAgICAgICAgVk06OkRl
bGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRlUHJvcGVydHlNb2RlOjpJ
Z25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVsZXRlUHJvcGVydHkodGhp
cywgZ2xvYmFsT2JqZWN0KCktPmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1lKTsKICAgICB9CiAg
ICAgaWYgKCFqc0Nhc3Q8SlNET01HbG9iYWxPYmplY3QqPihnbG9iYWxPYmplY3QoKSktPnNjcmlw
dEV4ZWN1dGlvbkNvbnRleHQoKS0+aXNTZWN1cmVDb250ZXh0KCkpIHsKLSAgICAgICAgSWRlbnRp
ZmllciBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnBy
ZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJjYWxjdWxhdGVTZWNyZXRSZXN1bHQiKSwgc3RybGVuKCJj
YWxjdWxhdGVTZWNyZXRSZXN1bHQiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigi
Y2FsY3VsYXRlU2VjcmV0UmVzdWx0IiksIHN0cmxlbigiY2FsY3VsYXRlU2VjcmV0UmVzdWx0Iikp
OwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxl
dGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0Ojpk
ZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0
eU5hbWUpOwogICAgIH0KICAgICBpZiAoIWpzQ2FzdDxKU0RPTUdsb2JhbE9iamVjdCo+KGdsb2Jh
bE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4dCgpLT5pc1NlY3VyZUNvbnRleHQoKSkg
ewotICAgICAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJp
bmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFyKj4oImdldFNlY3JldEJvb2xlYW4i
KSwgc3RybGVuKCJnZXRTZWNyZXRCb29sZWFuIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFt
ZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExD
aGFyKj4oImdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJnZXRTZWNyZXRCb29sZWFuIikpOwog
ICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUodm0sIFZNOjpEZWxldGVQ
cm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAgIEpTT2JqZWN0OjpkZWxl
dGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhlYygpLCBwcm9wZXJ0eU5h
bWUpOwogICAgIH0KICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghKGpzQ2FzdDxK
U0RPTUdsb2JhbE9iamVjdCo+KGdsb2JhbE9iamVjdCgpKS0+c2NyaXB0RXhlY3V0aW9uQ29udGV4
dCgpLT5pc1NlY3VyZUNvbnRleHQoKSAmJiBSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRG
ZWF0dXJlcygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpKSkgewotICAgICAgICBJZGVudGlmaWVyIHBy
b3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0
PGNvbnN0IExDaGFyKj4oInRlc3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpLCBzdHJsZW4oInRl
c3RGZWF0dXJlR2V0U2VjcmV0Qm9vbGVhbiIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJ0ZXN0RmVhdHVyZUdldFNlY3JldEJvb2xlYW4iKSwgc3RybGVuKCJ0ZXN0RmVhdHVyZUdl
dFNlY3JldEJvb2xlYW4iKSk7CiAgICAgICAgIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBz
Y29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAg
ICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3BlcnR5KHRoaXMsIGdsb2JhbE9iamVjdCgpLT5nbG9i
YWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAgfQogI2VuZGlmCiAjaWYgRU5BQkxFKFRFU1Rf
RkVBVFVSRSkKICAgICBpZiAoIShSdW50aW1lRW5hYmxlZEZlYXR1cmVzOjpzaGFyZWRGZWF0dXJl
cygpLnRlc3RGZWF0dXJlRW5hYmxlZCgpICYmIFJ1bnRpbWVFbmFibGVkRmVhdHVyZXM6OnNoYXJl
ZEZlYXR1cmVzKCkudGVzdEZlYXR1cmUxRW5hYmxlZCgpKSkgewotICAgICAgICBJZGVudGlmaWVy
IHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9j
YXN0PGNvbnN0IExDaGFyKj4oImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKSwgc3RybGVuKCJl
bmFibGVkQXRSdW50aW1lQXR0cmlidXRlIikpOworICAgICAgICBhdXRvIHByb3BlcnR5TmFtZSA9
IElkZW50aWZpZXI6OmZyb21TdHJpbmcoJnZtLCByZWludGVycHJldF9jYXN0PGNvbnN0IExDaGFy
Kj4oImVuYWJsZWRBdFJ1bnRpbWVBdHRyaWJ1dGUiKSwgc3RybGVuKCJlbmFibGVkQXRSdW50aW1l
QXR0cmlidXRlIikpOwogICAgICAgICBWTTo6RGVsZXRlUHJvcGVydHlNb2RlU2NvcGUgc2NvcGUo
dm0sIFZNOjpEZWxldGVQcm9wZXJ0eU1vZGU6Oklnbm9yZUNvbmZpZ3VyYWJsZSk7CiAgICAgICAg
IEpTT2JqZWN0OjpkZWxldGVQcm9wZXJ0eSh0aGlzLCBnbG9iYWxPYmplY3QoKS0+Z2xvYmFsRXhl
YygpLCBwcm9wZXJ0eU5hbWUpOwogICAgIH0KQEAgLTE5MTAsMTQgKzE5MTAsMTQgQEAgdm9pZCBK
U1Rlc3RPYmpQcm90b3R5cGU6OmZpbmlzaENyZWF0aW9uKAogICAgIEFTU0VSVCghY29udGV4dCB8
fCBjb250ZXh0LT5pc0RvY3VtZW50KCkpOwogI2lmIEVOQUJMRShURVNUX0ZFQVRVUkUpCiAgICAg
aWYgKCFjb250ZXh0IHx8ICFkb3duY2FzdDxEb2N1bWVudD4oKmNvbnRleHQpLnNldHRpbmdzKCku
dGVzdFNldHRpbmdFbmFibGVkKCkpIHsKLSAgICAgICAgSWRlbnRpZmllciBwcm9wZXJ0eU5hbWUg
PSBJZGVudGlmaWVyOjpmcm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hh
cio+KCJlbmFibGVkQnlTZXR0aW5nT3BlcmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEJ5U2V0dGlu
Z09wZXJhdGlvbiIpKTsKKyAgICAgICAgYXV0byBwcm9wZXJ0eU5hbWUgPSBJZGVudGlmaWVyOjpm
cm9tU3RyaW5nKCZ2bSwgcmVpbnRlcnByZXRfY2FzdDxjb25zdCBMQ2hhcio+KCJlbmFibGVkQnlT
ZXR0aW5nT3BlcmF0aW9uIiksIHN0cmxlbigiZW5hYmxlZEJ5U2V0dGluZ09wZXJhdGlvbiIpKTsK
ICAgICAgICAgVk06OkRlbGV0ZVByb3BlcnR5TW9kZVNjb3BlIHNjb3BlKHZtLCBWTTo6RGVsZXRl
UHJvcGVydHlNb2RlOjpJZ25vcmVDb25maWd1cmFibGUpOwogICAgICAgICBKU09iamVjdDo6ZGVs
ZXRlUHJvcGVydHkodGhpcywgZ2xvYmFsT2JqZWN0Lmdsb2JhbEV4ZWMoKSwgcHJvcGVydHlOYW1l
KTsKICAgICB9CiAjZW5kaWYKICNpZiBFTkFCTEUoVEVTVF9GRUFUVVJFKQogICAgIGlmICghY29u
dGV4dCB8fCAhZG93bmNhc3Q8RG9jdW1lbnQ+KCpjb250ZXh0KS5zZXR0aW5ncygpLnRlc3RTZXR0
aW5nRW5hYmxlZCgpKSB7Ci0gICAgICAgIElkZW50aWZpZXIgcHJvcGVydHlOYW1lID0gSWRlbnRp
Zmllcjo6ZnJvbVN0cmluZygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5h
YmxlZEJ5U2V0dGluZ0F0dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1
dGUiKSk7CisgICAgICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRlbnRpZmllcjo6ZnJvbVN0cmlu
Zygmdm0sIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgTENoYXIqPigiZW5hYmxlZEJ5U2V0dGluZ0F0
dHJpYnV0ZSIpLCBzdHJsZW4oImVuYWJsZWRCeVNldHRpbmdBdHRyaWJ1dGUiKSk7CiAgICAgICAg
IFZNOjpEZWxldGVQcm9wZXJ0eU1vZGVTY29wZSBzY29wZSh2bSwgVk06OkRlbGV0ZVByb3BlcnR5
TW9kZTo6SWdub3JlQ29uZmlndXJhYmxlKTsKICAgICAgICAgSlNPYmplY3Q6OmRlbGV0ZVByb3Bl
cnR5KHRoaXMsIGdsb2JhbE9iamVjdC5nbG9iYWxFeGVjKCksIHByb3BlcnR5TmFtZSk7CiAgICAg
fQpAQCAtMTk3MSwzNSArMTk3MSwzNyBAQCBib29sIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlT
bG90KEpTT2JqCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rlc3RPYmoqPihv
YmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5mbygp
KTsKLSAgICBhdXRvIG9wdGlvbmFsSW5kZXggPSBwYXJzZUluZGV4KHByb3BlcnR5TmFtZSk7Ci0g
ICAgaWYgKG9wdGlvbmFsSW5kZXggJiYgb3B0aW9uYWxJbmRleC52YWx1ZSgpIDwgdGhpc09iamVj
dC0+d3JhcHBlZCgpLmxlbmd0aCgpKSB7Ci0gICAgICAgIGF1dG8gaW5kZXggPSBvcHRpb25hbElu
ZGV4LnZhbHVlKCk7Ci0gICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9ubHks
IHRvSlM8SURMTnVsbGFibGU8SURMRE9NU3RyaW5nPj4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubnVsbGFibGVTdHJpbmdTcGVjaWFsTWV0aG9kKGluZGV4KSkpOwotICAgICAgICByZXR1
cm4gdHJ1ZTsKKyAgICBpZiAoYXV0byBpbmRleCA9IHBhcnNlSW5kZXgocHJvcGVydHlOYW1lKSkg
eworICAgICAgICBpZiAoaW5kZXgudmFsdWUoKSA8IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5n
dGgoKSkgeworICAgICAgICAgICAgYXV0byB2YWx1ZSA9IHRvSlM8SURMTnVsbGFibGU8SURMRE9N
U3RyaW5nPj4oKnN0YXRlLCB0aGlzT2JqZWN0LT53cmFwcGVkKCkubnVsbGFibGVTdHJpbmdTcGVj
aWFsTWV0aG9kKGluZGV4LnZhbHVlKCkpKTsKKyAgICAgICAgICAgIHNsb3Quc2V0VmFsdWUodGhp
c09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKKyAgICAgICAgICAgIHJldHVybiB0cnVlOworICAg
ICAgICB9CiAgICAgfQotICAgIGlmIChCYXNlOjpnZXRPd25Qcm9wZXJ0eVNsb3QodGhpc09iamVj
dCwgc3RhdGUsIHByb3BlcnR5TmFtZSwgc2xvdCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotICAg
IHJldHVybiBmYWxzZTsKKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3BlcnR5U2xvdChv
YmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpTVGVzdE9iajo6
Z2V0T3duUHJvcGVydHlTbG90QnlJbmRleChKU09iamVjdCogb2JqZWN0LCBFeGVjU3RhdGUqIHN0
YXRlLCB1bnNpZ25lZCBpbmRleCwgUHJvcGVydHlTbG90JiBzbG90KQogewogICAgIGF1dG8qIHRo
aXNPYmplY3QgPSBqc0Nhc3Q8SlNUZXN0T2JqKj4ob2JqZWN0KTsKICAgICBBU1NFUlRfR0NfT0JK
RUNUX0lOSEVSSVRTKHRoaXNPYmplY3QsIGluZm8oKSk7Ci0gICAgaWYgKExJS0VMWShpbmRleCA8
IHRoaXNPYmplY3QtPndyYXBwZWQoKS5sZW5ndGgoKSkpIHsKLSAgICAgICAgc2xvdC5zZXRWYWx1
ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExOdWxsYWJsZTxJRExET01TdHJpbmc+Pigq
c3RhdGUsIHRoaXNPYmplY3QtPndyYXBwZWQoKS5udWxsYWJsZVN0cmluZ1NwZWNpYWxNZXRob2Qo
aW5kZXgpKSk7Ci0gICAgICAgIHJldHVybiB0cnVlOworICAgIGlmIChMSUtFTFkoaW5kZXggPD0g
TUFYX0FSUkFZX0lOREVYKSkgeworICAgICAgICBpZiAoaW5kZXggPCB0aGlzT2JqZWN0LT53cmFw
cGVkKCkubGVuZ3RoKCkpIHsKKyAgICAgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETE51bGxh
YmxlPElETERPTVN0cmluZz4+KCpzdGF0ZSwgdGhpc09iamVjdC0+d3JhcHBlZCgpLm51bGxhYmxl
U3RyaW5nU3BlY2lhbE1ldGhvZChpbmRleCkpOworICAgICAgICAgICAgc2xvdC5zZXRWYWx1ZSh0
aGlzT2JqZWN0LCBSZWFkT25seSwgdmFsdWUpOworICAgICAgICAgICAgcmV0dXJuIHRydWU7Cisg
ICAgICAgIH0KICAgICB9Ci0gICAgcmV0dXJuIEJhc2U6OmdldE93blByb3BlcnR5U2xvdEJ5SW5k
ZXgodGhpc09iamVjdCwgc3RhdGUsIGluZGV4LCBzbG90KTsKKyAgICByZXR1cm4gSlNPYmplY3Q6
OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgob2JqZWN0LCBzdGF0ZSwgaW5kZXgsIHNsb3QpOwog
fQogCiB2b2lkIEpTVGVzdE9iajo6Z2V0T3duUHJvcGVydHlOYW1lcyhKU09iamVjdCogb2JqZWN0
LCBFeGVjU3RhdGUqIHN0YXRlLCBQcm9wZXJ0eU5hbWVBcnJheSYgcHJvcGVydHlOYW1lcywgRW51
bWVyYXRpb25Nb2RlIG1vZGUpCiB7CiAgICAgYXV0byogdGhpc09iamVjdCA9IGpzQ2FzdDxKU1Rl
c3RPYmoqPihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgaW5mbygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygp
KTsKICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwLCBjb3VudCA9IHRoaXNPYmplY3QtPndyYXBwZWQo
KS5sZW5ndGgoKTsgaSA8IGNvdW50OyArK2kpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElk
ZW50aWZpZXI6OmZyb20oc3RhdGUsIGkpKTsKLSAgICBCYXNlOjpnZXRPd25Qcm9wZXJ0eU5hbWVz
KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsKKyAgICBKU09iamVjdDo6
Z2V0T3duUHJvcGVydHlOYW1lcyhvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWVzLCBtb2RlKTsK
IH0KIAogc3RhdGljIGlubGluZSBFbmNvZGVkSlNWYWx1ZSBjYWxsSlNUZXN0T2JqMShFeGVjU3Rh
dGUqIHN0YXRlKQpJbmRleDogU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2JpbmRpbmdzL3NjcmlwdHMvdGVzdC9KUy9KU1Rlc3RPdmVycmlkZUJ1aWx0aW5zLmNwcAkocmV2
aXNpb24gMjE4MDcwKQorKysgU291cmNlL1dlYkNvcmUvYmluZGluZ3Mvc2NyaXB0cy90ZXN0L0pT
L0pTVGVzdE92ZXJyaWRlQnVpbHRpbnMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMSw2ICsyMSw3
IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiSlNUZXN0T3ZlcnJpZGVCdWlsdGlu
cy5oIgogCisjaW5jbHVkZSAiSlNET01BYnN0cmFjdE9wZXJhdGlvbnMuaCIKICNpbmNsdWRlICJK
U0RPTUJpbmRpbmcuaCIKICNpbmNsdWRlICJKU0RPTUNvbnN0cnVjdG9yTm90Q29uc3RydWN0YWJs
ZS5oIgogI2luY2x1ZGUgIkpTRE9NQ29udmVydC5oIgpAQCAtMTQxLDQwICsxNDIsNDggQEAgYm9v
bCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zOjpnZXRPd25Qcm9wZQogewogICAgIGF1dG8qIHRoaXNP
YmplY3QgPSBqc0Nhc3Q8SlNUZXN0T3ZlcnJpZGVCdWlsdGlucyo+KG9iamVjdCk7CiAgICAgQVNT
RVJUX0dDX09CSkVDVF9JTkhFUklUUyh0aGlzT2JqZWN0LCBpbmZvKCkpOwotICAgIGlmICh0aGlz
T2JqZWN0LT5jbGFzc0luZm8oKSA9PSBpbmZvKCkgJiYgIXByb3BlcnR5TmFtZS5pc1N5bWJvbCgp
KSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0ZW0o
cHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlmICgh
SURMSW50ZXJmYWNlPE5vZGU+Ojppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAgc2xv
dC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExJbnRlcmZhY2U8Tm9kZT4+
KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBpdGVtKSk7Ci0gICAgICAgICAg
ICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQotICAgIH0KLSAgICBpZiAoQmFzZTo6Z2V0T3duUHJv
cGVydHlTbG90KHRoaXNPYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpKQorICAgIHVz
aW5nIEdldHRlcklETFR5cGUgPSBJRExJbnRlcmZhY2U8Tm9kZT47CisgICAgYXV0byBnZXR0ZXJG
dW5jdG9yID0gW10gKGF1dG8mIHRoaXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6
Om9wdGlvbmFsPHR5cGVuYW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4gewor
ICAgICAgICBhdXRvIHJlc3VsdCA9IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9w
ZXJ0eU5hbWVUb0F0b21pY1N0cmluZyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0
ZXJJRExUeXBlOjppc051bGxWYWx1ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVu
YW1lIEdldHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4
dHJhY3RWYWx1ZUZyb21OdWxsYWJsZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51
bGxvcHQ7CisgICAgfTsKKyAgICBpZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJs
ZU5hbWVkUHJvcGVydHk8T3ZlcnJpZGVCdWlsdGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0
LCBwcm9wZXJ0eU5hbWUsIGdldHRlckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0
b0pTPElETEludGVyZmFjZTxOb2RlPj4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0
KCksIFdURk1vdmUobmFtZWRQcm9wZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFs
dWUodGhpc09iamVjdCwgUmVhZE9ubHksIHZhbHVlKTsKICAgICAgICAgcmV0dXJuIHRydWU7Ci0g
ICAgcmV0dXJuIGZhbHNlOworICAgIH0KKyAgICByZXR1cm4gSlNPYmplY3Q6OmdldE93blByb3Bl
cnR5U2xvdChvYmplY3QsIHN0YXRlLCBwcm9wZXJ0eU5hbWUsIHNsb3QpOwogfQogCiBib29sIEpT
VGVzdE92ZXJyaWRlQnVpbHRpbnM6OmdldE93blByb3BlcnR5U2xvdEJ5SW5kZXgoSlNPYmplY3Qq
IG9iamVjdCwgRXhlY1N0YXRlKiBzdGF0ZSwgdW5zaWduZWQgaW5kZXgsIFByb3BlcnR5U2xvdCYg
c2xvdCkKIHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJyaWRlQnVp
bHRpbnMqPihvYmplY3QpOwogICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVj
dCwgaW5mbygpKTsKLSAgICBJZGVudGlmaWVyIHByb3BlcnR5TmFtZSA9IElkZW50aWZpZXI6OmZy
b20oc3RhdGUsIGluZGV4KTsKLSAgICBpZiAodGhpc09iamVjdC0+Y2xhc3NJbmZvKCkgPT0gaW5m
bygpKSB7Ci0gICAgICAgIGF1dG8gaXRlbSA9IHRoaXNPYmplY3QtPndyYXBwZWQoKS5uYW1lZEl0
ZW0ocHJvcGVydHlOYW1lVG9BdG9taWNTdHJpbmcocHJvcGVydHlOYW1lKSk7Ci0gICAgICAgIGlm
ICghSURMSW50ZXJmYWNlPE5vZGU+Ojppc051bGxWYWx1ZShpdGVtKSkgewotICAgICAgICAgICAg
c2xvdC5zZXRWYWx1ZSh0aGlzT2JqZWN0LCBSZWFkT25seSwgdG9KUzxJRExJbnRlcmZhY2U8Tm9k
ZT4+KCpzdGF0ZSwgKnRoaXNPYmplY3QtPmdsb2JhbE9iamVjdCgpLCBpdGVtKSk7Ci0gICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKLSAgICAgICAgfQorICAgIGF1dG8gcHJvcGVydHlOYW1lID0gSWRl
bnRpZmllcjo6ZnJvbShzdGF0ZSwgaW5kZXgpOworICAgIHVzaW5nIEdldHRlcklETFR5cGUgPSBJ
RExJbnRlcmZhY2U8Tm9kZT47CisgICAgYXV0byBnZXR0ZXJGdW5jdG9yID0gW10gKGF1dG8mIHRo
aXNPYmplY3QsIGF1dG8gcHJvcGVydHlOYW1lKSAtPiBzdGQ6Om9wdGlvbmFsPHR5cGVuYW1lIEdl
dHRlcklETFR5cGU6OkltcGxlbWVudGF0aW9uVHlwZT4geworICAgICAgICBhdXRvIHJlc3VsdCA9
IHRoaXNPYmplY3Qud3JhcHBlZCgpLm5hbWVkSXRlbShwcm9wZXJ0eU5hbWVUb0F0b21pY1N0cmlu
Zyhwcm9wZXJ0eU5hbWUpKTsKKyAgICAgICAgaWYgKCFHZXR0ZXJJRExUeXBlOjppc051bGxWYWx1
ZShyZXN1bHQpKQorICAgICAgICAgICAgcmV0dXJuIHR5cGVuYW1lIEdldHRlcklETFR5cGU6Oklt
cGxlbWVudGF0aW9uVHlwZSB7IEdldHRlcklETFR5cGU6OmV4dHJhY3RWYWx1ZUZyb21OdWxsYWJs
ZShyZXN1bHQpIH07CisgICAgICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CisgICAgfTsKKyAgICBp
ZiAoYXV0byBuYW1lZFByb3BlcnR5ID0gYWNjZXNzVmlzaWJsZU5hbWVkUHJvcGVydHk8T3ZlcnJp
ZGVCdWlsdGluczo6WWVzPigqc3RhdGUsICp0aGlzT2JqZWN0LCBwcm9wZXJ0eU5hbWUsIGdldHRl
ckZ1bmN0b3IpKSB7CisgICAgICAgIGF1dG8gdmFsdWUgPSB0b0pTPElETEludGVyZmFjZTxOb2Rl
Pj4oKnN0YXRlLCAqdGhpc09iamVjdC0+Z2xvYmFsT2JqZWN0KCksIFdURk1vdmUobmFtZWRQcm9w
ZXJ0eS52YWx1ZSgpKSk7CisgICAgICAgIHNsb3Quc2V0VmFsdWUodGhpc09iamVjdCwgUmVhZE9u
bHksIHZhbHVlKTsKKyAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBCYXNl
OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KHRoaXNPYmplY3QsIHN0YXRlLCBpbmRleCwgc2xv
dCk7CisgICAgcmV0dXJuIEpTT2JqZWN0OjpnZXRPd25Qcm9wZXJ0eVNsb3RCeUluZGV4KG9iamVj
dCwgc3RhdGUsIGluZGV4LCBzbG90KTsKIH0KIAogdm9pZCBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5z
OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKEpTT2JqZWN0KiBvYmplY3QsIEV4ZWNTdGF0ZSogc3RhdGUs
IFByb3BlcnR5TmFtZUFycmF5JiBwcm9wZXJ0eU5hbWVzLCBFbnVtZXJhdGlvbk1vZGUgbW9kZSkK
IHsKICAgICBhdXRvKiB0aGlzT2JqZWN0ID0ganNDYXN0PEpTVGVzdE92ZXJyaWRlQnVpbHRpbnMq
PihvYmplY3QpOwotICAgIEFTU0VSVF9HQ19PQkpFQ1RfSU5IRVJJVFModGhpc09iamVjdCwgaW5m
bygpKTsKKyAgICBBU1NFUlRfR0NfT0JKRUNUX0lOSEVSSVRTKG9iamVjdCwgaW5mbygpKTsKICAg
ICBmb3IgKGF1dG8mIHByb3BlcnR5TmFtZSA6IHRoaXNPYmplY3QtPndyYXBwZWQoKS5zdXBwb3J0
ZWRQcm9wZXJ0eU5hbWVzKCkpCiAgICAgICAgIHByb3BlcnR5TmFtZXMuYWRkKElkZW50aWZpZXI6
OmZyb21TdHJpbmcoc3RhdGUsIHByb3BlcnR5TmFtZSkpOwotICAgIEJhc2U6OmdldE93blByb3Bl
cnR5TmFtZXModGhpc09iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMsIG1vZGUpOworICAgIEpT
T2JqZWN0OjpnZXRPd25Qcm9wZXJ0eU5hbWVzKG9iamVjdCwgc3RhdGUsIHByb3BlcnR5TmFtZXMs
IG1vZGUpOwogfQogCiB0ZW1wbGF0ZTw+IGlubGluZSBKU1Rlc3RPdmVycmlkZUJ1aWx0aW5zKiBJ
RExPcGVyYXRpb248SlNUZXN0T3ZlcnJpZGVCdWlsdGlucz46OmNhc3QoRXhlY1N0YXRlJiBzdGF0
ZSkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Pci5oCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJDb3JlL2RvbS9FeGNlcHRpb25Pci5oCShyZXZpc2lvbiAyMTgwNzApCisrKyBT
b3VyY2UvV2ViQ29yZS9kb20vRXhjZXB0aW9uT3IuaAkod29ya2luZyBjb3B5KQpAQCAtNDAsOCAr
NDAsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFeGNlcHRpb24oKSBjb25zdDsKICAgICBjb25z
dCBFeGNlcHRpb24mIGV4Y2VwdGlvbigpIGNvbnN0OwogICAgIEV4Y2VwdGlvbiYmIHJlbGVhc2VF
eGNlcHRpb24oKTsKKyAgICBjb25zdCBSZXR1cm5UeXBlJiByZXR1cm5WYWx1ZSgpIGNvbnN0Owog
ICAgIFJldHVyblR5cGUmJiByZWxlYXNlUmV0dXJuVmFsdWUoKTsKLQorICAgIAogcHJpdmF0ZToK
ICAgICBFeHBlY3RlZDxSZXR1cm5UeXBlLCBFeGNlcHRpb24+IG1fdmFsdWU7CiB9OwpAQCAtNTQs
OCArNTUsOSBAQCBwdWJsaWM6CiAgICAgYm9vbCBoYXNFeGNlcHRpb24oKSBjb25zdDsKICAgICBj
b25zdCBFeGNlcHRpb24mIGV4Y2VwdGlvbigpIGNvbnN0OwogICAgIEV4Y2VwdGlvbiYmIHJlbGVh
c2VFeGNlcHRpb24oKTsKKyAgICBjb25zdCBSZXR1cm5SZWZlcmVuY2VUeXBlJiByZXR1cm5WYWx1
ZSgpIGNvbnN0OwogICAgIFJldHVyblJlZmVyZW5jZVR5cGUmIHJlbGVhc2VSZXR1cm5WYWx1ZSgp
OwotCisgICAgCiBwcml2YXRlOgogICAgIEV4Y2VwdGlvbk9yPFJldHVyblJlZmVyZW5jZVR5cGUq
PiBtX3ZhbHVlOwogfTsKQEAgLTk1LDE0ICs5NywxOSBAQCB0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1
cm5UeXBlPiBpbmxpbmUgYm9vCiAgICAgcmV0dXJuICFtX3ZhbHVlLmhhc1ZhbHVlKCk7CiB9CiAK
K3RlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGluZSBjb25zdCBFeGNlcHRpb24mIEV4
Y2VwdGlvbk9yPFJldHVyblR5cGU+OjpleGNlcHRpb24oKSBjb25zdAoreworICAgIHJldHVybiBt
X3ZhbHVlLmVycm9yKCk7Cit9CisKIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+IGlubGlu
ZSBFeGNlcHRpb24mJiBFeGNlcHRpb25PcjxSZXR1cm5UeXBlPjo6cmVsZWFzZUV4Y2VwdGlvbigp
CiB7CiAgICAgcmV0dXJuIFdURk1vdmUobV92YWx1ZS5lcnJvcigpKTsKIH0KIAotdGVtcGxhdGU8
dHlwZW5hbWUgUmV0dXJuVHlwZT4gaW5saW5lIGNvbnN0IEV4Y2VwdGlvbiYgRXhjZXB0aW9uT3I8
UmV0dXJuVHlwZT46OmV4Y2VwdGlvbigpIGNvbnN0Cit0ZW1wbGF0ZTx0eXBlbmFtZSBSZXR1cm5U
eXBlPiBpbmxpbmUgY29uc3QgUmV0dXJuVHlwZSYgRXhjZXB0aW9uT3I8UmV0dXJuVHlwZT46OnJl
dHVyblZhbHVlKCkgY29uc3QKIHsKLSAgICByZXR1cm4gbV92YWx1ZS5lcnJvcigpOworICAgIHJl
dHVybiBtX3ZhbHVlLnZhbHVlKCk7CiB9CiAKIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblR5cGU+
IGlubGluZSBSZXR1cm5UeXBlJiYgRXhjZXB0aW9uT3I8UmV0dXJuVHlwZT46OnJlbGVhc2VSZXR1
cm5WYWx1ZSgpCkBAIC0xMzUsNiArMTQyLDExIEBAIHRlbXBsYXRlPHR5cGVuYW1lIFJldHVyblJl
ZmVyZW5jZVR5cGU+IGkKICAgICByZXR1cm4gbV92YWx1ZS5yZWxlYXNlRXhjZXB0aW9uKCk7CiB9
CiAKK3RlbXBsYXRlPHR5cGVuYW1lIFJldHVyblJlZmVyZW5jZVR5cGU+IGlubGluZSBjb25zdCBS
ZXR1cm5SZWZlcmVuY2VUeXBlJiBFeGNlcHRpb25PcjxSZXR1cm5SZWZlcmVuY2VUeXBlJj46OnJl
dHVyblZhbHVlKCkgY29uc3QKK3sKKyAgICByZXR1cm4gKm1fdmFsdWUucmV0dXJuVmFsdWUoKTsK
K30KKwogdGVtcGxhdGU8dHlwZW5hbWUgUmV0dXJuUmVmZXJlbmNlVHlwZT4gaW5saW5lIFJldHVy
blJlZmVyZW5jZVR5cGUmIEV4Y2VwdGlvbk9yPFJldHVyblJlZmVyZW5jZVR5cGUmPjo6cmVsZWFz
ZVJldHVyblZhbHVlKCkKIHsKICAgICByZXR1cm4gKm1fdmFsdWUucmVsZWFzZVJldHVyblZhbHVl
KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MRG9jdW1lbnQuY3BwCShyZXZpc2lvbiAyMTgw
NzApCisrKyBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1bWVudC5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTY1LDExICs2NSwxMyBAQAogI2luY2x1ZGUgIkZyYW1lVHJlZS5oIgogI2luY2x1ZGUg
IkZyYW1lVmlldy5oIgogI2luY2x1ZGUgIkhUTUxCb2R5RWxlbWVudC5oIgorI2luY2x1ZGUgIkhU
TUxDb2xsZWN0aW9uLmgiCiAjaW5jbHVkZSAiSFRNTERvY3VtZW50UGFyc2VyLmgiCiAjaW5jbHVk
ZSAiSFRNTEVsZW1lbnRGYWN0b3J5LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lT3duZXJFbGVtZW50
LmgiCiAjaW5jbHVkZSAiSFRNTEZyYW1lU2V0RWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxIdG1s
RWxlbWVudC5oIgorI2luY2x1ZGUgIkhUTUxJRnJhbWVFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRN
TE5hbWVzLmgiCiAjaW5jbHVkZSAiSGFzaFRvb2xzLmgiCiAjaW5jbHVkZSAiU2NyaXB0Q29udHJv
bGxlci5oIgpAQCAtMTc0LDEyICsxNzYsMTkgQEAgdm9pZCBIVE1MRG9jdW1lbnQ6OnNldFZsaW5r
Q29sb3IoY29uc3QgUwogICAgICAgICBib2R5RWxlbWVudC0+c2V0QXR0cmlidXRlV2l0aG91dFN5
bmNocm9uaXphdGlvbih2bGlua0F0dHIsIHZhbHVlKTsKIH0KIAordm9pZCBIVE1MRG9jdW1lbnQ6
OmNsZWFyKCkKK3sKKyAgICAvLyBQZXIgaHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0
aXBhZ2Uvb2Jzb2xldGUuaHRtbCNkb20tZG9jdW1lbnQtY2xlYXIsIHRoaXMgbWV0aG9kIGRvZXMg
bm90aGluZy4KK30KKwogdm9pZCBIVE1MRG9jdW1lbnQ6OmNhcHR1cmVFdmVudHMoKQogeworICAg
IC8vIFBlciBodHRwczovL2h0bWwuc3BlYy53aGF0d2cub3JnL211bHRpcGFnZS9vYnNvbGV0ZS5o
dG1sI2RvbS1kb2N1bWVudC1jYXB0dXJlZXZlbnRzLCB0aGlzIG1ldGhvZCBkb2VzIG5vdGhpbmcu
CiB9CiAKIHZvaWQgSFRNTERvY3VtZW50OjpyZWxlYXNlRXZlbnRzKCkKIHsKKyAgICAvLyBQZXIg
aHR0cHM6Ly9odG1sLnNwZWMud2hhdHdnLm9yZy9tdWx0aXBhZ2Uvb2Jzb2xldGUuaHRtbCNkb20t
ZG9jdW1lbnQtcmVsZWFzZWV2ZW50cywgdGhpcyBtZXRob2QgZG9lcyBub3RoaW5nLgogfQogCiBS
ZWY8RG9jdW1lbnRQYXJzZXI+IEhUTUxEb2N1bWVudDo6Y3JlYXRlUGFyc2VyKCkKQEAgLTE4Nywx
MCArMTk2LDYgQEAgUmVmPERvY3VtZW50UGFyc2VyPiBIVE1MRG9jdW1lbnQ6OmNyZWF0ZQogICAg
IHJldHVybiBIVE1MRG9jdW1lbnRQYXJzZXI6OmNyZWF0ZSgqdGhpcyk7CiB9CiAKLS8vIC0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tCi0vLyBub3QgcGFydCBvZiB0aGUgRE9NCi0vLyAtLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LQotCiBzdGF0aWMgdm9pZCBhZGRMb2NhbE5hbWVUb1NldChIYXNoU2V0PEF0b21pY1N0cmluZ0lt
cGwqPiogc2V0LCBjb25zdCBRdWFsaWZpZWROYW1lJiBxTmFtZSkKIHsKICAgICBzZXQtPmFkZChx
TmFtZS5sb2NhbE5hbWUoKS5pbXBsKCkpOwpAQCAtMjUxLDYgKzI1Niw0NyBAQCBzdGF0aWMgSGFz
aFNldDxBdG9taWNTdHJpbmdJbXBsKj4qIGNyZWF0CiAgICAgcmV0dXJuIGF0dHJTZXQ7CiB9CiAK
Ky8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1sI2RvbS1k
b2N1bWVudC1uYW1lZGl0ZW0KK3N0ZDo6b3B0aW9uYWw8VmFyaWFudDxSZWZQdHI8RE9NV2luZG93
PiwgUmVmUHRyPEVsZW1lbnQ+LCBSZWZQdHI8SFRNTENvbGxlY3Rpb24+Pj4gSFRNTERvY3VtZW50
OjpuYW1lZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nJiBuYW1lKQoreworICAgIGlmIChuYW1lLmlz
TnVsbCgpIHx8ICFoYXNEb2N1bWVudE5hbWVkSXRlbSgqbmFtZS5pbXBsKCkpKQorICAgICAgICBy
ZXR1cm4gc3RkOjpudWxsb3B0OworCisgICAgaWYgKFVOTElLRUxZKGRvY3VtZW50TmFtZWRJdGVt
Q29udGFpbnNNdWx0aXBsZUVsZW1lbnRzKCpuYW1lLmltcGwoKSkpKSB7CisgICAgICAgIGF1dG8g
Y29sbGVjdGlvbiA9IGRvY3VtZW50TmFtZWRJdGVtcyhuYW1lKTsKKyAgICAgICAgQVNTRVJUKGNv
bGxlY3Rpb24tPmxlbmd0aCgpID4gMSk7CisgICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxE
T01XaW5kb3c+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+IHsgUmVm
UHRyPEhUTUxDb2xsZWN0aW9uPiB7IFdURk1vdmUoY29sbGVjdGlvbikgfSB9OworICAgIH0KKwor
ICAgIGF1dG8mIGVsZW1lbnQgPSAqZG9jdW1lbnROYW1lZEl0ZW0oKm5hbWUuaW1wbCgpKTsKKyAg
ICBpZiAoVU5MSUtFTFkoaXM8SFRNTElGcmFtZUVsZW1lbnQ+KGVsZW1lbnQpKSkgeworICAgICAg
ICBpZiAoYXV0byogZG9tV2luZG93ID0gZG93bmNhc3Q8SFRNTElGcmFtZUVsZW1lbnQ+KGVsZW1l
bnQpLmNvbnRlbnRXaW5kb3coKSkKKyAgICAgICAgICAgIHJldHVybiBWYXJpYW50PFJlZlB0cjxE
T01XaW5kb3c+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+IHsgUmVm
UHRyPERPTVdpbmRvdz4geyBkb21XaW5kb3cgfSB9OworICAgIH0KKworICAgIHJldHVybiBWYXJp
YW50PFJlZlB0cjxET01XaW5kb3c+LCBSZWZQdHI8RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVj
dGlvbj4+IHsgUmVmUHRyPEVsZW1lbnQ+IHsgJmVsZW1lbnQgfSB9OworfQorCitWZWN0b3I8QXRv
bWljU3RyaW5nPiBIVE1MRG9jdW1lbnQ6OnN1cHBvcnRlZFByb3BlcnR5TmFtZXMoKSBjb25zdAor
eworICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL2RvbS5odG1s
I2RvbS1kb2N1bWVudC1uYW1lZEl0ZW0td2hpY2gKKyAgICAvLworICAgIC8vIC4uLiBUaGUgc3Vw
cG9ydGVkIHByb3BlcnR5IG5hbWVzIG9mIGEgRG9jdW1lbnQgb2JqZWN0IGRvY3VtZW50IGF0IGFu
eSBtb21lbnQgY29uc2lzdCBvZiB0aGUgZm9sbG93aW5nLCBpbgorICAgIC8vIHRyZWUgb3JkZXIg
YWNjb3JkaW5nIHRvIHRoZSBlbGVtZW50IHRoYXQgY29udHJpYnV0ZWQgdGhlbSwgaWdub3Jpbmcg
bGF0ZXIgZHVwbGljYXRlcywgYW5kIHdpdGggdmFsdWVzIGZyb20KKyAgICAvLyBpZCBhdHRyaWJ1
dGVzIGNvbWluZyBiZWZvcmUgdmFsdWVzIGZyb20gbmFtZSBhdHRyaWJ1dGVzIHdoZW4gdGhlIHNh
bWUgZWxlbWVudCBjb250cmlidXRlcyBib3RoOgorICAgIC8vCisgICAgLy8gLSB0aGUgdmFsdWUg
b2YgdGhlIG5hbWUgY29udGVudCBhdHRyaWJ1dGUgZm9yIGFsbCBhcHBsZXQsIGV4cG9zZWQgZW1i
ZWQsIGZvcm0sIGlmcmFtZSwgaW1nLCBhbmQgZXhwb3NlZAorICAgIC8vICAgb2JqZWN0IGVsZW1l
bnRzIHRoYXQgaGF2ZSBhIG5vbi1lbXB0eSBuYW1lIGNvbnRlbnQgYXR0cmlidXRlIGFuZCBhcmUg
aW4gYSBkb2N1bWVudCB0cmVlIHdpdGggZG9jdW1lbnQKKyAgICAvLyAgIGFzIHRoZWlyIHJvb3Q7
CisgICAgLy8gLSB0aGUgdmFsdWUgb2YgdGhlIGlkIGNvbnRlbnQgYXR0cmlidXRlIGZvciBhbGwg
YXBwbGV0IGFuZCBleHBvc2VkIG9iamVjdCBlbGVtZW50cyB0aGF0IGhhdmUgYSBub24tZW1wdHkK
KyAgICAvLyAgIGlkIGNvbnRlbnQgYXR0cmlidXRlIGFuZCBhcmUgaW4gYSBkb2N1bWVudCB0cmVl
IHdpdGggZG9jdW1lbnQgYXMgdGhlaXIgcm9vdDsgYW5kCisgICAgLy8gLSB0aGUgdmFsdWUgb2Yg
dGhlIGlkIGNvbnRlbnQgYXR0cmlidXRlIGZvciBhbGwgaW1nIGVsZW1lbnRzIHRoYXQgaGF2ZSBi
b3RoIGEgbm9uLWVtcHR5IGlkIGNvbnRlbnQgYXR0cmlidXRlCisgICAgLy8gICBhbmQgYSBub24t
ZW1wdHkgbmFtZSBjb250ZW50IGF0dHJpYnV0ZSwgYW5kIGFyZSBpbiBhIGRvY3VtZW50IHRyZWUg
d2l0aCBkb2N1bWVudCBhcyB0aGVpciByb290LgorCisgICAgLy8gRklYTUU6IEltcGxlbWVudC4K
KyAgICByZXR1cm4geyB9OworfQorCiB2b2lkIEhUTUxEb2N1bWVudDo6YWRkRG9jdW1lbnROYW1l
ZEl0ZW0oY29uc3QgQXRvbWljU3RyaW5nSW1wbCYgbmFtZSwgRWxlbWVudCYgaXRlbSkKIHsKICAg
ICBtX2RvY3VtZW50TmFtZWRJdGVtLmFkZChuYW1lLCBpdGVtLCAqdGhpcyk7CkBAIC0yNzksMTMg
KzMyNSw2IEBAIGJvb2wgSFRNTERvY3VtZW50Ojppc0Nhc2VTZW5zaXRpdmVBdHRyaWIKICAgICBy
ZXR1cm4gIWlzUG9zc2libGVIVE1MQXR0ciB8fCAhaHRtbENhc2VJbnNlbnNpdGl2ZUF0dHJpYnV0
ZXNTZXQtPmNvbnRhaW5zKGF0dHJpYnV0ZU5hbWUubG9jYWxOYW1lKCkuaW1wbCgpKTsKIH0KIAot
dm9pZCBIVE1MRG9jdW1lbnQ6OmNsZWFyKCkKLXsKLSAgICAvLyBGSVhNRTogVGhpcyBkb2VzIG5v
dGhpbmcsIGFuZCB0aGF0IHNlZW1zIHVubGlrZWx5IHRvIGJlIGNvcnJlY3QuCi0gICAgLy8gV2Un
dmUgbG9uZyBoYWQgYSBjb21tZW50IHNheWluZyB0aGF0IElFIGRvZXNuJ3Qgc3VwcG9ydCB0aGlz
LgotICAgIC8vIEJ1dCBJIGRvIHNlZSBpdCBpbiB0aGUgZG9jdW1lbnRhdGlvbiBmb3IgTW96aWxs
YS4KLX0KLQogYm9vbCBIVE1MRG9jdW1lbnQ6OmlzRnJhbWVTZXQoKSBjb25zdAogewogICAgIGlm
ICghZG9jdW1lbnRFbGVtZW50KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxEb2N1
bWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJ
KHJldmlzaW9uIDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmgJ
KHdvcmtpbmcgY29weSkKQEAgLTUzLDExICs1MywxMyBAQCBwdWJsaWM6CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRMaW5rQ29sb3IoY29uc3QgU3RyaW5nJik7CiAgICAgV0VCQ09SRV9FWFBP
UlQgY29uc3QgQXRvbWljU3RyaW5nJiB2bGlua0NvbG9yKCkgY29uc3Q7CiAgICAgV0VCQ09SRV9F
WFBPUlQgdm9pZCBzZXRWbGlua0NvbG9yKGNvbnN0IFN0cmluZyYpOwotCisgICAgCiAgICAgV0VC
Q09SRV9FWFBPUlQgdm9pZCBjbGVhcigpOwotCiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCBjYXB0
dXJlRXZlbnRzKCk7CiAgICAgV0VCQ09SRV9FWFBPUlQgdm9pZCByZWxlYXNlRXZlbnRzKCk7Cisg
ICAgCisgICAgc3RkOjpvcHRpb25hbDxWYXJpYW50PFJlZlB0cjxET01XaW5kb3c+LCBSZWZQdHI8
RWxlbWVudD4sIFJlZlB0cjxIVE1MQ29sbGVjdGlvbj4+PiBuYW1lZEl0ZW0oY29uc3QgQXRvbWlj
U3RyaW5nJik7CisgICAgVmVjdG9yPEF0b21pY1N0cmluZz4gc3VwcG9ydGVkUHJvcGVydHlOYW1l
cygpIGNvbnN0OwogCiAgICAgRWxlbWVudCogZG9jdW1lbnROYW1lZEl0ZW0oY29uc3QgQXRvbWlj
U3RyaW5nSW1wbCYgbmFtZSkgY29uc3QgeyByZXR1cm4gbV9kb2N1bWVudE5hbWVkSXRlbS5nZXRF
bGVtZW50QnlEb2N1bWVudE5hbWVkSXRlbShuYW1lLCAqdGhpcyk7IH0KICAgICBib29sIGhhc0Rv
Y3VtZW50TmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZ0ltcGwmIG5hbWUpIGNvbnN0IHsgcmV0
dXJuIG1fZG9jdW1lbnROYW1lZEl0ZW0uY29udGFpbnMobmFtZSk7IH0KSW5kZXg6IFNvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxEb2N1bWVudC5pZGwJKHJldmlzaW9uIDIxODA3MCkKKysrIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTERvY3VtZW50LmlkbAkod29ya2luZyBjb3B5KQpAQCAtMjAsNyArMjAsNiBA
QAogCiBbCiAgICAgQ3VzdG9tR2V0T3duUHJvcGVydHlTbG90LAotICAgIEN1c3RvbU5hbWVkR2V0
dGVyLAogICAgIEN1c3RvbVRvSlNPYmplY3QsCiAgICAgTmV3SW1wdXJlUHJvcGVydHlGaXJlc1dh
dGNocG9pbnRzLAogICAgIE92ZXJyaWRlQnVpbHRpbnMsCkBAIC0yOSwxMSArMjgsMTIgQEAKICAg
ICB2b2lkIGNsb3NlKCk7CiAgICAgW0NFUmVhY3Rpb25zLCBDdXN0b21dIHZvaWQgd3JpdGUob3B0
aW9uYWwgRE9NU3RyaW5nIHRleHQpOwogICAgIFtDRVJlYWN0aW9ucywgQ3VzdG9tXSB2b2lkIHdy
aXRlbG4ob3B0aW9uYWwgRE9NU3RyaW5nIHRleHQpOwotCisgICAgCisgICAgZ2V0dGVyIChET01X
aW5kb3cgb3IgRWxlbWVudCBvciBIVE1MQ29sbGVjdGlvbikgKERPTVN0cmluZyBuYW1lKTsKKyAg
ICAKICAgICBbQ3VzdG9tLCBSZXBsYWNlYWJsZV0gcmVhZG9ubHkgYXR0cmlidXRlIEhUTUxBbGxD
b2xsZWN0aW9uIGFsbDsKIAogICAgIHZvaWQgY2xlYXIoKTsKLQogICAgIHZvaWQgY2FwdHVyZUV2
ZW50cygpOwogICAgIHZvaWQgcmVsZWFzZUV2ZW50cygpOwogCkluZGV4OiBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAJKHJldmlzaW9uIDIxODA3MCkKKysrIFNv
dXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTMzLDYgKzMzLDggQEAKICNpbmNsdWRlICJGcmFtZUxvYWRlci5oIgogI2luY2x1ZGUgIkZy
YW1lTG9hZGVyQ2xpZW50LmgiCiAjaW5jbHVkZSAiSFRNTEJvZHlFbGVtZW50LmgiCisjaW5jbHVk
ZSAiSFRNTENvbGxlY3Rpb24uaCIKKyNpbmNsdWRlICJIVE1MRnJhbWVFbGVtZW50LmgiCiAjaW5j
bHVkZSAiSFRNTE5hbWVzLmgiCiAjaW5jbHVkZSAiTGVuZ3RoLmgiCiAjaW5jbHVkZSAiTW91c2VF
dmVudC5oIgpAQCAtMjI2LDQgKzIyOCwyMiBAQCB2b2lkIEhUTUxGcmFtZVNldEVsZW1lbnQ6OnJl
bW92ZWRGcm9tKENvCiAgICAgfQogfQogCitET01XaW5kb3cqIEhUTUxGcmFtZVNldEVsZW1lbnQ6
Om5hbWVkSXRlbShjb25zdCBBdG9taWNTdHJpbmcmIG5hbWUpCit7CisgICAgYXV0byogZnJhbWVF
bGVtZW50ID0gY2hpbGRyZW4oKS0+bmFtZWRJdGVtKG5hbWUpOworICAgIGlmICghaXM8SFRNTEZy
YW1lRWxlbWVudD4oZnJhbWVFbGVtZW50KSkKKyAgICAgICAgcmV0dXJuIG51bGxwdHI7CisKKyAg
ICBpZiAoYXV0byogZG9jdW1lbnQgPSBkb3duY2FzdDxIVE1MRnJhbWVFbGVtZW50PigqZnJhbWVF
bGVtZW50KS5jb250ZW50RG9jdW1lbnQoKSkKKyAgICAgICAgcmV0dXJuIGRvY3VtZW50LT5kb21X
aW5kb3coKTsKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKworVmVjdG9yPEF0b21pY1N0cmluZz4g
SFRNTEZyYW1lU2V0RWxlbWVudDo6c3VwcG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0Cit7Cisg
ICAgLy8gTk9URTogTGVmdCBlbXB0eSBhcyBubyBzcGVjaWZpY2F0aW9uIGRlZmluZXMgdGhpcyBu
YW1lZCBnZXR0ZXIgYW5kIHdlCisgICAgLy8gICAgICAgaGF2ZSBub3QgaGlzdG9yaWNhbGx5IGV4
cG9zZWQgdGhlc2UgbmFtZWQgaXRlbXMgZm9yIGVudW1lcmF0aW9uLgorICAgIHJldHVybiB7IH07
Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwv
SFRNTEZyYW1lU2V0RWxlbWVudC5oCShyZXZpc2lvbiAyMTgwNzApCisrKyBTb3VyY2UvV2ViQ29y
ZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaAkod29ya2luZyBjb3B5KQpAQCAtNDUsNiArNDUs
OSBAQCBwdWJsaWM6CiAgICAgY29uc3QgTGVuZ3RoKiBjb2xMZW5ndGhzKCkgY29uc3QgeyByZXR1
cm4gbV9jb2xMZW5ndGhzLmdldCgpOyB9CiAKICAgICBzdGF0aWMgSFRNTEZyYW1lU2V0RWxlbWVu
dCogZmluZENvbnRhaW5pbmcoRWxlbWVudCogZGVzY2VuZGFudCk7CisgICAgCisgICAgVmVjdG9y
PEF0b21pY1N0cmluZz4gc3VwcG9ydGVkUHJvcGVydHlOYW1lcygpIGNvbnN0OworICAgIERPTVdp
bmRvdyogbmFtZWRJdGVtKGNvbnN0IEF0b21pY1N0cmluZyYpOwogCiBwcml2YXRlOgogICAgIEhU
TUxGcmFtZVNldEVsZW1lbnQoY29uc3QgUXVhbGlmaWVkTmFtZSYsIERvY3VtZW50Jik7CkluZGV4
OiBTb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxGcmFtZVNldEVsZW1lbnQuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJKHJldmlzaW9u
IDIxODA3MCkKKysrIFNvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTEZyYW1lU2V0RWxlbWVudC5pZGwJ
KHdvcmtpbmcgY29weSkKQEAgLTE4LDkgKzE4LDcgQEAKICAqIEJvc3RvbiwgTUEgMDIxMTAtMTMw
MSwgVVNBLgogICovCiAKLVsKLSAgICBDdXN0b21OYW1lZEdldHRlcgotXSBpbnRlcmZhY2UgSFRN
TEZyYW1lU2V0RWxlbWVudCA6IEhUTUxFbGVtZW50IHsKK2ludGVyZmFjZSBIVE1MRnJhbWVTZXRF
bGVtZW50IDogSFRNTEVsZW1lbnQgewogICAgIFtSZWZsZWN0XSBhdHRyaWJ1dGUgRE9NU3RyaW5n
IGNvbHM7CiAgICAgW1JlZmxlY3RdIGF0dHJpYnV0ZSBET01TdHJpbmcgcm93czsKIApAQCAtMzcs
NiArMzUsMTAgQEAKICAgICBbTm90RW51bWVyYWJsZSwgV2luZG93RXZlbnRIYW5kbGVyLCBDb25k
aXRpb25hbD1XSUxMX1JFVkVBTF9FREdFX0VWRU5UU10gYXR0cmlidXRlIEV2ZW50SGFuZGxlciBv
bndlYmtpdHdpbGxyZXZlYWxsZWZ0OwogICAgIFtOb3RFbnVtZXJhYmxlLCBXaW5kb3dFdmVudEhh
bmRsZXIsIENvbmRpdGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBhdHRyaWJ1dGUgRXZl
bnRIYW5kbGVyIG9ud2Via2l0d2lsbHJldmVhbHJpZ2h0OwogICAgIFtOb3RFbnVtZXJhYmxlLCBX
aW5kb3dFdmVudEhhbmRsZXIsIENvbmRpdGlvbmFsPVdJTExfUkVWRUFMX0VER0VfRVZFTlRTXSBh
dHRyaWJ1dGUgRXZlbnRIYW5kbGVyIG9ud2Via2l0d2lsbHJldmVhbHRvcDsKKyAgICAKKyAgICAv
LyBOb24tc3RhbmRhcmQgbmFtZWQgZ2V0dGVyCisgICAgLy8gRklYTUU6IFRoaXMgaXMgbm90IGlu
IHRoZSBzdGFuZGFyZCwgY2FuIHdlIHJlbW92ZSB0aGlzPworICAgIGdldHRlciBET01XaW5kb3cg
KERPTVN0cmluZyBuYW1lKTsKIH07CiAKIEhUTUxGcmFtZVNldEVsZW1lbnQgaW1wbGVtZW50cyBX
aW5kb3dFdmVudEhhbmRsZXJzOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjE4MDcwKQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjQgQEAKKzIwMTctMDYt
MTAgIFNhbSBXZWluaWcgIDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2ViSURMXSBSZS1p
bXBsZW1lbnQgR2V0T3duUHJvcGVydHlTbG90W0J5SW5kZXhdIGdlbmVyYXRpb24gdG8gbW9yZSBj
bG9zZWx5IGZvbGxvdyBXZWJJREwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE3MzIyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEp
LgorCisgICAgICAgICogZmFzdC9kb20vSFRNTERvY3VtZW50L2RvY3VtZW50LXNwZWNpYWwtcHJv
cGVydGllcy1leHBlY3RlZC50eHQ6CisgICAgICAgIFVwZGF0ZSByZXN1bHRzLiBOYW1lZCBwcm9w
ZXJ0aWVzIG9uIEhUTUxEb2N1bWVudCBubyBsb25nZXIgb3ZlcnJpZGUgb3duIHByb3BlcnRpZXMs
IHRoZXkgCisgICAgICAgIG9ubHkgb3ZlcnJpZGUgcHJvcGVydGllcyBmcm9tIHRoZSBwcm90b3R5
cGUgY2hhaW4gKGFzIHBlciB0aGUgV2ViSURMIHNwZWNpZmljYXRpb24gZm9yIAorICAgICAgICBP
dmVycmlkZUJ1aWx0aW5zKS4gVGhlc2UgcmVzdWx0cyBub3cgYWxzbyBtYXRjaCBGaXJlZm94Lgor
CisgICAgICAgICoganMvZG9tL2RmZy1wcm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVy
ZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNC5odG1sOgorICAgICAgICAqIGpzL2RvbS9k
ZmctcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1z
bG90LXRyYXBzLTUuaHRtbDoKKyAgICAgICAgKiBqcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hp
bmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTQuaHRtbDoKKyAgICAg
ICAgKiBqcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1w
cm9wZXJ0eS1zbG90LXRyYXBzLTUtc2hvcnQuaHRtbDoKKyAgICAgICAgKiBqcy9kb20vcHJvdG90
eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBz
LTUuaHRtbDoKKyAgICAgICAgVXBkYXRlIHRlc3RzIHRvIHVzZSBhIHByb3BlcnR5IG9uIHRoZSBw
cm90b3R5cGUsIHJhdGhlciB0aGFuIHRoZSBpbnN0YW5jZSwgdG8gdGVzdCAKKyAgICAgICAgb3Zl
cnJpZGluZyB0aGUgW0dldE93blByb3BlcnR5XSBob29rLiBUaGlzIGlzIG5lZWRlZCBub3cgdGhh
dCBIVE1MRG9jdW1lbnQgY29ycmVjdGx5CisgICAgICAgIGZvbGxvd3MgdGhlIE92ZXJyaWRlQnVp
bHRpbnMgcnVsZXMgYXMgZXhwbGFpbmVkIGFib3ZlLgorCiAyMDE3LTA2LTA5ICBBbnRvaW5lIFF1
aW50ICA8Z3Jhb3V0c0BhcHBsZS5jb20+CiAKICAgICAgICAgUmViYXNlbGluZSBtZWRpYS9tb2Rl
cm4tbWVkaWEtY29udHJvbHMvbGF5b3V0LW5vZGUKSW5kZXg6IExheW91dFRlc3RzL2Zhc3QvZG9t
L0hUTUxEb2N1bWVudC9kb2N1bWVudC1zcGVjaWFsLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxEb2N1bWVudC9kb2N1bWVudC1z
cGVjaWFsLXByb3BlcnRpZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyMTgwNzApCisrKyBMYXlv
dXRUZXN0cy9mYXN0L2RvbS9IVE1MRG9jdW1lbnQvZG9jdW1lbnQtc3BlY2lhbC1wcm9wZXJ0aWVz
LWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtNjgsNiArNjgsNiBAQCBOdW1lcmljIDEy
OiB1bmRlZmluZWQKIE51bWVyaWMgMTM6IHVuZGVmaW5lZAogCiBDb25mbGljdGluZyBpbWFnZTog
c2luZ2xlIElNRyhuYW1lKQotQ29uZmxpY3RpbmcgaW1hZ2UgKGN1c3RvbSBwcm9wZXJ0eSk6IHNp
bmdsZSBJTUcobmFtZSkKLUNvbmZsaWN0aW5nIGlmcmFtZTogc2luZ2xlIFdJTkRPVworQ29uZmxp
Y3RpbmcgaW1hZ2UgKGN1c3RvbSBwcm9wZXJ0eSk6IHNpbmdsZSBPVEhFUgorQ29uZmxpY3Rpbmcg
aWZyYW1lOiBzaW5nbGUgT1RIRVIKIApJbmRleDogTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0No
YW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CShyZXZpc2lvbiAyMTgwNzApCisrKyBMYXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9n
CSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMDYtMTAgIFNhbSBXZWluaWcg
IDxzYW1Ad2Via2l0Lm9yZz4KKworICAgICAgICBbV2ViSURMXSBSZS1pbXBsZW1lbnQgR2V0T3du
UHJvcGVydHlTbG90W0J5SW5kZXhdIGdlbmVyYXRpb24gdG8gbW9yZSBjbG9zZWx5IGZvbGxvdyBX
ZWJJREwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE3
MzIyOQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL2h0bWwvc2VtYW50aWNzL2Zvcm1zL3RoZS1mb3JtLWVsZW1lbnQv
Zm9ybS1uYW1lZGl0ZW0tZXhwZWN0ZWQudHh0OgorICAgICAgICBVcGRhdGUgcmVzdWx0cyBmb3Ig
bW9yZSBwYXNzaW5nIHRlc3RzLgorCiAyMDE3LTA2LTA5ICBGcmVkZXJpYyBXYW5nICA8ZndhbmdA
aWdhbGlhLmNvbT4KIAogICAgICAgICBBZGQgZmxhZyBhbGxvdy1wb3B1cHMtdG8tZXNjYXBlLXNh
bmRib3ggdG8gaWZyYW1lIHNhbmRib3gKSW5kZXg6IExheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvaHRtbC9zZW1hbnRpY3MvZm9ybXMvdGhlLWZvcm0tZWxlbWVudC9m
b3JtLW5hbWVkaXRlbS1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFudGljcy9mb3Jtcy90aGUtZm9y
bS1lbGVtZW50L2Zvcm0tbmFtZWRpdGVtLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjE4MDcwKQor
KysgTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy9odG1sL3NlbWFu
dGljcy9mb3Jtcy90aGUtZm9ybS1lbGVtZW50L2Zvcm0tbmFtZWRpdGVtLWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMTIsMTIgKzEyLDkgQEAgUEFTUyBOYW1lZCBpdGVtcyBvdXRzaWRl
IHRoZSBmb3JtIHNob3VsZAogUEFTUyBUaGUgZm9ybSBhdHRyaWJ1dGUgc2hvdWxkIGJlIHRha2Vu
IGludG8gYWNjb3VudCBmb3IgbmFtZWQgZ2V0dGVycyAoc2luZ2xlIGVsZW1lbnQpIAogUEFTUyBU
aGUgZm9ybSBhdHRyaWJ1dGUgc2hvdWxkIGJlIHRha2VuIGludG8gYWNjb3VudCBmb3IgbmFtZWQg
Z2V0dGVycyAobXVsdGlwbGUgZWxlbWVudHMpIAogUEFTUyBJbnB1dCBzaG91bGQgb25seSBiZSBh
IG5hbWVkIHByb3BlcnR5IG9uIHRoZSBpbm5lcm1vc3QgZm9ybSB0aGF0IGNvbnRhaW5zIGl0IAot
RkFJTCBUcnlpbmcgdG8gc2V0IGFuIGV4cGFuZG8gdGhhdCB3b3VsZCBzaGFkb3cgYW4gYWxyZWFk
eS1leGlzdGluZyBuYW1lZCBwcm9wZXJ0eSBhc3NlcnRfdGhyb3dzOiBmdW5jdGlvbiAiZnVuY3Rp
b24gKCkgewotICAgICJ1c2Ugc3RyaWN0IjsKLSAgICBmb3JtWyJsMSJdID0gNTsKLSAgfSIgZGlk
IG5vdCB0aHJvdwotRkFJTCBUcnlpbmcgdG8gc2V0IGFuIGV4cGFuZG8gdGhhdCBzaGFkb3dzIGEg
bmFtZWQgcHJvcGVydHkgdGhhdCBnZXRzIGFkZGVkIGxhdGVyIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChudW1iZXIpIDUgYnV0IGdvdCAob2JqZWN0KSBFbGVtZW50IG5vZGUgPGlucHV0IG5hbWU9
Im5ldy1uYW1lIj48L2lucHV0PgotRkFJTCBUcnlpbmcgdG8gc2V0IGEgbm9uLWNvbmZpZ3VyYWJs
ZSBleHBhbmRvIHRoYXQgc2hhZG93cyBhIG5hbWVkIHByb3BlcnR5IHRoYXQgZ2V0cyBhZGRlZCBs
YXRlciBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAobnVtYmVyKSA1IGJ1dCBnb3QgKG9iamVjdCkg
RWxlbWVudCBub2RlIDxpbnB1dCBuYW1lPSJuZXctbmFtZTIiPjwvaW5wdXQ+CitGQUlMIFRyeWlu
ZyB0byBzZXQgYW4gZXhwYW5kbyB0aGF0IHdvdWxkIHNoYWRvdyBhbiBhbHJlYWR5LWV4aXN0aW5n
IG5hbWVkIHByb3BlcnR5IGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChvYmplY3QpIEVsZW1lbnQg
bm9kZSA8YnV0dG9uIG5hbWU9ImwxIj48L2J1dHRvbj4gYnV0IGdvdCAobnVtYmVyKSA1CitQQVNT
IFRyeWluZyB0byBzZXQgYW4gZXhwYW5kbyB0aGF0IHNoYWRvd3MgYSBuYW1lZCBwcm9wZXJ0eSB0
aGF0IGdldHMgYWRkZWQgbGF0ZXIgCitQQVNTIFRyeWluZyB0byBzZXQgYSBub24tY29uZmlndXJh
YmxlIGV4cGFuZG8gdGhhdCBzaGFkb3dzIGEgbmFtZWQgcHJvcGVydHkgdGhhdCBnZXRzIGFkZGVk
IGxhdGVyIAogUEFTUyBQYXN0IG5hbWVzIG1hcCBzaG91bGQgd29yayBjb3JyZWN0bHkgCiAgICAK
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20v
ZGZnLXByb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHkt
c2xvdC10cmFwcy00Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2RmZy1w
cm90b3R5cGUtY2hhaW4tY2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3Qt
dHJhcHMtNC5odG1sCShyZXZpc2lvbiAyMTgwNzApCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZGZn
LXByb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xv
dC10cmFwcy00Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGRlc2NyaXB0aW9u
KCJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UKIAogdmFyIG9iaiA9IHt9Owogb2JqLl9fcHJv
dG9fXyA9IGRvY3VtZW50OwotZG9jdW1lbnQuZm9vID0gZnVuY3Rpb24gKCkge307CitEb2N1bWVu
dC5wcm90b3R5cGUuZm9vID0gZnVuY3Rpb24gKCkge307CiAKIGZ1bmN0aW9uIGYoKSB7CiAgICAg
cmV0dXJuIG9iai5mb287CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vZGZnLXByb3RvdHlwZS1j
aGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy01Lmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvanMvZG9tL2RmZy1wcm90b3R5cGUtY2hhaW4t
Y2FjaGluZy13aXRoLWltcHVyZS1nZXQtb3duLXByb3BlcnR5LXNsb3QtdHJhcHMtNS5odG1sCShy
ZXZpc2lvbiAyMTgwNzApCisrKyBMYXlvdXRUZXN0cy9qcy9kb20vZGZnLXByb3RvdHlwZS1jaGFp
bi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy01Lmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAKIGRlc2NyaXB0aW9uKCJUZXN0cyB3aGF0
IGhhcHBlbnMgd2hlbiB5b3UgbWFrZSBwcm90b3R5cGUgY2hhaW4gYWNjZXNzZXMgd2l0aCBpbXB1
cmUgR2V0T3duUHJvcGVydHlTbG90IHRyYXBzIGluIHRoZSB3YXkuIik7CiAKLWRvY3VtZW50LmZv
byA9IGZ1bmN0aW9uICgpIHt9OworRG9jdW1lbnQucHJvdG90eXBlLmZvbyA9IGZ1bmN0aW9uICgp
IHt9OwogCiBmdW5jdGlvbiBmKCkgewogICAgIHJldHVybiBkb2N1bWVudC5mb287CkluZGV4OiBM
YXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0
LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9w
ZXJ0eS1zbG90LXRyYXBzLTQuaHRtbAkocmV2aXNpb24gMjE4MDcwKQorKysgTGF5b3V0VGVzdHMv
anMvZG9tL3Byb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVy
dHktc2xvdC10cmFwcy00Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTgsNyArOCw3IEBAIGRlc2Ny
aXB0aW9uKCJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UKIAogdmFyIG9iaiA9IHt9Owogb2Jq
Ll9fcHJvdG9fXyA9IGRvY3VtZW50OwotZG9jdW1lbnQuZm9vID0gZnVuY3Rpb24gKCkge307CitE
b2N1bWVudC5wcm90b3R5cGUuZm9vID0gZnVuY3Rpb24gKCkge307CiAKIGZ1bmN0aW9uIGYoKSB7
CiAgICAgcmV0dXJuIG9iai5mb287CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBl
LWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUt
c2hvcnQuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNo
YWluLWNhY2hpbmctd2l0aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUtc2hv
cnQuaHRtbAkocmV2aXNpb24gMjE4MDcwKQorKysgTGF5b3V0VGVzdHMvanMvZG9tL3Byb3RvdHlw
ZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdldC1vd24tcHJvcGVydHktc2xvdC10cmFwcy01
LXNob3J0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyArNiw3IEBACiAKIGRlc2NyaXB0aW9u
KCJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgbWFrZSBwcm90b3R5cGUgY2hhaW4gYWNjZXNz
ZXMgd2l0aCBpbXB1cmUgR2V0T3duUHJvcGVydHlTbG90IHRyYXBzIGluIHRoZSB3YXkuIik7CiAK
LWRvY3VtZW50LmZvbyA9IGZ1bmN0aW9uICgpIHt9OworRG9jdW1lbnQucHJvdG90eXBlLmZvbyA9
IGZ1bmN0aW9uICgpIHt9OwogCiBmdW5jdGlvbiBmKCkgewogICAgIHJldHVybiBkb2N1bWVudC5m
b287CkluZGV4OiBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0
aC1pbXB1cmUtZ2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUuaHRtbAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBMYXlvdXRUZXN0cy9qcy9kb20vcHJvdG90eXBlLWNoYWluLWNhY2hpbmctd2l0aC1pbXB1cmUt
Z2V0LW93bi1wcm9wZXJ0eS1zbG90LXRyYXBzLTUuaHRtbAkocmV2aXNpb24gMjE4MDcwKQorKysg
TGF5b3V0VGVzdHMvanMvZG9tL3Byb3RvdHlwZS1jaGFpbi1jYWNoaW5nLXdpdGgtaW1wdXJlLWdl
dC1vd24tcHJvcGVydHktc2xvdC10cmFwcy01Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTYsNyAr
Niw3IEBACiAKIGRlc2NyaXB0aW9uKCJUZXN0cyB3aGF0IGhhcHBlbnMgd2hlbiB5b3UgbWFrZSBw
cm90b3R5cGUgY2hhaW4gYWNjZXNzZXMgd2l0aCBpbXB1cmUgR2V0T3duUHJvcGVydHlTbG90IHRy
YXBzIGluIHRoZSB3YXkuIik7CiAKLWRvY3VtZW50LmZvbyA9IGZ1bmN0aW9uICgpIHt9OworRG9j
dW1lbnQucHJvdG90eXBlLmZvbyA9IGZ1bmN0aW9uICgpIHt9OwogCiBmdW5jdGlvbiBmKCkgewog
ICAgIHJldHVybiBkb2N1bWVudC5mb287Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>